Imported Upstream version 63.1 42/191742/1 upstream/63.1
authorHyunjee Kim <hj0426.kim@samsung.com>
Tue, 23 Oct 2018 06:39:52 +0000 (15:39 +0900)
committerHyunjee Kim <hj0426.kim@samsung.com>
Tue, 23 Oct 2018 06:40:16 +0000 (15:40 +0900)
Change-Id: I5934009a22ab0e5575a2c2fac9752b7e8231e1f1
Signed-off-by: Hyunjee Kim <hj0426.kim@samsung.com>
1628 files changed:
.gitignore [deleted file]
APIChangeReport.html
as_is/bomlist.py
as_is/bomlist.txt
readme.html
source/Doxyfile.in
source/Makefile.in
source/allinone/Build.Windows.Library.ProjectConfiguration.props [new file with mode: 0644]
source/allinone/Build.Windows.ProjectConfiguration.props
source/allinone/Build.Windows.UWP.ProjectConfiguration.props
source/allinone/Windows.CopyUnicodeHeaderFiles.targets
source/allinone/icucheck.bat
source/common/Makefile.in
source/common/bmpset.cpp
source/common/bytesinkutil.cpp
source/common/bytesinkutil.h
source/common/bytestriebuilder.cpp
source/common/characterproperties.cpp [new file with mode: 0644]
source/common/charstr.cpp
source/common/charstr.h
source/common/cmemory.h
source/common/common.vcxproj
source/common/common.vcxproj.filters
source/common/common_uwp.vcxproj
source/common/dictbe.cpp
source/common/edits.cpp
source/common/loadednormalizer2impl.cpp
source/common/locdspnm.cpp
source/common/locid.cpp
source/common/mutex.h
source/common/norm2_nfc_data.h
source/common/normalizer2.cpp
source/common/normalizer2impl.cpp
source/common/normalizer2impl.h
source/common/propname_data.h
source/common/putil.cpp
source/common/putilimp.h
source/common/rbbi.cpp
source/common/rbbi_cache.cpp
source/common/rbbirb.cpp
source/common/rbbiscan.cpp
source/common/rbbitblb.cpp
source/common/rbbitblb.h
source/common/serv.cpp
source/common/sharedobject.h
source/common/static_unicode_sets.cpp
source/common/stringtriebuilder.cpp
source/common/ubidi.cpp
source/common/ubiditransform.cpp
source/common/ucase.cpp
source/common/ucln_cmn.h
source/common/ucnv.cpp
source/common/ucnv2022.cpp
source/common/ucnv_ct.cpp
source/common/ucnv_u16.cpp
source/common/ucnv_u32.cpp
source/common/ucnv_u8.cpp
source/common/ucnvhz.cpp
source/common/ucnvmbcs.cpp
source/common/ucnvsel.cpp
source/common/ucol_swp.cpp
source/common/ucptrie.cpp [new file with mode: 0644]
source/common/ucptrie_impl.h [new file with mode: 0644]
source/common/ucurr.cpp
source/common/udata.cpp
source/common/udataswp.h
source/common/uhash.cpp
source/common/uinvchar.h
source/common/ulayout_props_data.h [new file with mode: 0644]
source/common/uloc.cpp
source/common/uloc_keytype.cpp
source/common/uloc_tag.cpp
source/common/ulocimp.h
source/common/umapfile.cpp
source/common/umapfile.h
source/common/umutablecptrie.cpp [new file with mode: 0644]
source/common/umutex.h
source/common/unames.cpp
source/common/unicode/bytestream.h
source/common/unicode/casemap.h
source/common/unicode/char16ptr.h
source/common/unicode/docmain.h
source/common/unicode/edits.h
source/common/unicode/enumset.h
source/common/unicode/filteredbrk.h
source/common/unicode/icuplug.h
source/common/unicode/locid.h
source/common/unicode/messagepattern.h
source/common/unicode/normalizer2.h
source/common/unicode/platform.h
source/common/unicode/ptypes.h
source/common/unicode/rbbi.h
source/common/unicode/stringoptions.h
source/common/unicode/stringtriebuilder.h
source/common/unicode/ubidi.h
source/common/unicode/ubiditransform.h
source/common/unicode/uchar.h
source/common/unicode/ucnv.h
source/common/unicode/uconfig.h
source/common/unicode/ucpmap.h [new file with mode: 0644]
source/common/unicode/ucptrie.h [new file with mode: 0644]
source/common/unicode/ucurr.h
source/common/unicode/uenum.h
source/common/unicode/umachine.h
source/common/unicode/umutablecptrie.h [new file with mode: 0644]
source/common/unicode/uniset.h
source/common/unicode/unistr.h
source/common/unicode/uobject.h
source/common/unicode/urename.h
source/common/unicode/uset.h
source/common/unicode/ustring.h
source/common/unicode/utf16.h
source/common/unicode/utypes.h
source/common/unicode/uvernum.h
source/common/unifiedcache.cpp
source/common/uniset.cpp
source/common/uniset_props.cpp
source/common/unistr.cpp
source/common/uprops.cpp
source/common/uprops.h
source/common/uresbund.cpp
source/common/uresdata.h
source/common/ushape.cpp
source/common/usprep.cpp
source/common/ustrcase.cpp
source/common/utext.cpp
source/common/utrie.h
source/common/utrie2.cpp
source/common/utrie2.h
source/common/utrie2_builder.cpp
source/common/utrie2_impl.h
source/common/utrie_swap.cpp [new file with mode: 0644]
source/common/uts46.cpp
source/common/wintz.cpp
source/common/wintz.h
source/config/mh-mingw
source/config/mh-mingw64
source/configure
source/configure.ac
source/data/brkitr/brkfiles.mk
source/data/brkitr/fi.txt [deleted file]
source/data/brkitr/ja.txt
source/data/brkitr/root.txt
source/data/brkitr/rules/line.txt
source/data/brkitr/rules/line_fi.txt [deleted file]
source/data/brkitr/rules/line_loose.txt
source/data/brkitr/rules/line_loose_cj.txt
source/data/brkitr/rules/line_loose_fi.txt [deleted file]
source/data/brkitr/rules/line_normal.txt
source/data/brkitr/rules/line_normal_cj.txt
source/data/brkitr/rules/line_normal_fi.txt [deleted file]
source/data/build.xml
source/data/cldr-icu-readme.txt
source/data/coll/af.txt
source/data/coll/am.txt
source/data/coll/ar.txt
source/data/coll/as.txt
source/data/coll/az.txt
source/data/coll/be.txt
source/data/coll/bg.txt
source/data/coll/bn.txt
source/data/coll/bs.txt
source/data/coll/bs_Cyrl.txt
source/data/coll/ca.txt
source/data/coll/chr.txt
source/data/coll/colfiles.mk
source/data/coll/cs.txt
source/data/coll/cy.txt
source/data/coll/da.txt
source/data/coll/de.txt
source/data/coll/de_AT.txt
source/data/coll/dsb.txt
source/data/coll/ee.txt
source/data/coll/el.txt
source/data/coll/en_US_POSIX.txt
source/data/coll/eo.txt
source/data/coll/es.txt
source/data/coll/et.txt
source/data/coll/fa.txt
source/data/coll/fa_AF.txt
source/data/coll/fi.txt
source/data/coll/fil.txt
source/data/coll/fo.txt
source/data/coll/fr_CA.txt
source/data/coll/gl.txt
source/data/coll/gu.txt
source/data/coll/ha.txt
source/data/coll/haw.txt
source/data/coll/he.txt
source/data/coll/hi.txt
source/data/coll/hr.txt
source/data/coll/hsb.txt
source/data/coll/hu.txt
source/data/coll/hy.txt
source/data/coll/ig.txt
source/data/coll/is.txt
source/data/coll/ja.txt
source/data/coll/ka.txt
source/data/coll/kk.txt
source/data/coll/kl.txt
source/data/coll/km.txt
source/data/coll/kn.txt
source/data/coll/ko.txt
source/data/coll/kok.txt
source/data/coll/ku.txt [new file with mode: 0644]
source/data/coll/ky.txt
source/data/coll/lkt.txt
source/data/coll/ln.txt
source/data/coll/lo.txt
source/data/coll/lt.txt
source/data/coll/lv.txt
source/data/coll/mk.txt
source/data/coll/ml.txt
source/data/coll/mn.txt
source/data/coll/mr.txt
source/data/coll/mt.txt
source/data/coll/my.txt
source/data/coll/nb.txt
source/data/coll/ne.txt
source/data/coll/nn.txt
source/data/coll/om.txt
source/data/coll/or.txt
source/data/coll/pa.txt
source/data/coll/pl.txt
source/data/coll/ps.txt
source/data/coll/ro.txt
source/data/coll/root.txt
source/data/coll/ru.txt
source/data/coll/se.txt
source/data/coll/si.txt
source/data/coll/sk.txt
source/data/coll/sl.txt
source/data/coll/smn.txt
source/data/coll/sq.txt
source/data/coll/sr.txt
source/data/coll/sr_Latn.txt
source/data/coll/sv.txt
source/data/coll/ta.txt
source/data/coll/te.txt
source/data/coll/th.txt
source/data/coll/tk.txt [new file with mode: 0644]
source/data/coll/to.txt
source/data/coll/tr.txt
source/data/coll/ug.txt
source/data/coll/uk.txt
source/data/coll/ur.txt
source/data/coll/uz.txt
source/data/coll/vi.txt
source/data/coll/wo.txt
source/data/coll/xh.txt [moved from source/data/locales/ff_CM.txt with 77% similarity]
source/data/coll/yi.txt
source/data/coll/yo.txt
source/data/coll/zh.txt
source/data/curr/af.txt
source/data/curr/am.txt
source/data/curr/ar.txt
source/data/curr/as.txt
source/data/curr/ast.txt
source/data/curr/az.txt
source/data/curr/az_Cyrl.txt
source/data/curr/be.txt
source/data/curr/bg.txt
source/data/curr/bn.txt
source/data/curr/bo.txt
source/data/curr/br.txt
source/data/curr/brx.txt
source/data/curr/bs.txt
source/data/curr/bs_Cyrl.txt
source/data/curr/ca.txt
source/data/curr/ccp.txt
source/data/curr/ce.txt
source/data/curr/chr.txt
source/data/curr/ckb.txt
source/data/curr/cs.txt
source/data/curr/cy.txt
source/data/curr/da.txt
source/data/curr/de.txt
source/data/curr/de_CH.txt
source/data/curr/dsb.txt
source/data/curr/dz.txt
source/data/curr/ee.txt
source/data/curr/el.txt
source/data/curr/en.txt
source/data/curr/en_001.txt
source/data/curr/en_AU.txt
source/data/curr/en_BE.txt
source/data/curr/en_CA.txt
source/data/curr/en_GB.txt
source/data/curr/en_HK.txt
source/data/curr/en_IE.txt
source/data/curr/en_IN.txt
source/data/curr/en_JM.txt
source/data/curr/en_NZ.txt
source/data/curr/en_ZW.txt
source/data/curr/es.txt
source/data/curr/es_419.txt
source/data/curr/es_AR.txt
source/data/curr/es_CO.txt
source/data/curr/es_MX.txt
source/data/curr/es_PY.txt
source/data/curr/es_US.txt
source/data/curr/es_UY.txt
source/data/curr/es_VE.txt
source/data/curr/et.txt
source/data/curr/eu.txt
source/data/curr/fa.txt
source/data/curr/fa_AF.txt
source/data/curr/ff_MR.txt [deleted file]
source/data/curr/fi.txt
source/data/curr/fil.txt
source/data/curr/fo.txt
source/data/curr/fr.txt
source/data/curr/fr_CA.txt
source/data/curr/fur.txt
source/data/curr/fy.txt
source/data/curr/ga.txt
source/data/curr/gd.txt
source/data/curr/gl.txt
source/data/curr/gsw.txt
source/data/curr/gu.txt
source/data/curr/ha.txt
source/data/curr/haw.txt
source/data/curr/he.txt
source/data/curr/hi.txt
source/data/curr/hr.txt
source/data/curr/hsb.txt
source/data/curr/hu.txt
source/data/curr/hy.txt
source/data/curr/ia.txt [new file with mode: 0644]
source/data/curr/id.txt
source/data/curr/ig.txt
source/data/curr/ii.txt
source/data/curr/is.txt
source/data/curr/it.txt
source/data/curr/ja.txt
source/data/curr/jgo.txt
source/data/curr/jv.txt [new file with mode: 0644]
source/data/curr/ka.txt
source/data/curr/kab.txt
source/data/curr/kea.txt
source/data/curr/kk.txt
source/data/curr/kl.txt
source/data/curr/km.txt
source/data/curr/kn.txt
source/data/curr/ko.txt
source/data/curr/kok.txt
source/data/curr/ks.txt
source/data/curr/ksh.txt
source/data/curr/ku.txt [new file with mode: 0644]
source/data/curr/kw.txt
source/data/curr/ky.txt
source/data/curr/lb.txt
source/data/curr/lo.txt
source/data/curr/lrc.txt
source/data/curr/lt.txt
source/data/curr/lv.txt
source/data/curr/mg.txt
source/data/curr/mgo.txt
source/data/curr/mi.txt [new file with mode: 0644]
source/data/curr/mk.txt
source/data/curr/ml.txt
source/data/curr/mn.txt
source/data/curr/mr.txt
source/data/curr/ms.txt
source/data/curr/mt.txt
source/data/curr/my.txt
source/data/curr/mzn.txt
source/data/curr/nb.txt
source/data/curr/ne.txt
source/data/curr/nl.txt
source/data/curr/nn.txt
source/data/curr/om.txt
source/data/curr/or.txt
source/data/curr/os.txt
source/data/curr/pa.txt
source/data/curr/pl.txt
source/data/curr/pool.res
source/data/curr/ps.txt
source/data/curr/pt.txt
source/data/curr/pt_AO.txt
source/data/curr/pt_MZ.txt
source/data/curr/pt_PT.txt
source/data/curr/pt_ST.txt
source/data/curr/qu.txt
source/data/curr/resfiles.mk
source/data/curr/rm.txt
source/data/curr/ro.txt
source/data/curr/root.txt
source/data/curr/ru.txt
source/data/curr/rw.txt
source/data/curr/sah.txt
source/data/curr/sd.txt [new file with mode: 0644]
source/data/curr/se.txt
source/data/curr/si.txt
source/data/curr/sk.txt
source/data/curr/sl.txt
source/data/curr/sn.txt
source/data/curr/so.txt
source/data/curr/so_KE.txt
source/data/curr/sq.txt
source/data/curr/sr.txt
source/data/curr/sr_Latn.txt
source/data/curr/supplementalData.txt
source/data/curr/sv.txt
source/data/curr/sw.txt
source/data/curr/sw_CD.txt
source/data/curr/ta.txt
source/data/curr/te.txt
source/data/curr/tg.txt
source/data/curr/th.txt
source/data/curr/ti.txt
source/data/curr/ti_ER.txt
source/data/curr/tk.txt [new file with mode: 0644]
source/data/curr/to.txt
source/data/curr/tr.txt
source/data/curr/tt.txt
source/data/curr/ug.txt
source/data/curr/uk.txt
source/data/curr/ur.txt
source/data/curr/ur_IN.txt
source/data/curr/uz.txt
source/data/curr/uz_Cyrl.txt
source/data/curr/vi.txt
source/data/curr/wae.txt
source/data/curr/wo.txt
source/data/curr/xh.txt [new file with mode: 0644]
source/data/curr/yi.txt
source/data/curr/yo.txt
source/data/curr/yo_BJ.txt
source/data/curr/yue.txt
source/data/curr/yue_Hans.txt
source/data/curr/zgh.txt
source/data/curr/zh.txt
source/data/curr/zh_Hant.txt
source/data/curr/zh_Hant_HK.txt
source/data/curr/zh_Hant_MO.txt
source/data/curr/zu.txt
source/data/icu-config.xml
source/data/icu4j-readme.txt
source/data/in/icudt63l.dat [moved from source/data/in/icudt62l.dat with 80% similarity]
source/data/in/nfc.nrm
source/data/in/nfkc.nrm
source/data/in/nfkc_cf.nrm
source/data/in/pnames.icu
source/data/in/uts46.nrm
source/data/lang/af.txt
source/data/lang/am.txt
source/data/lang/ar.txt
source/data/lang/ar_SA.txt
source/data/lang/as.txt
source/data/lang/ast.txt
source/data/lang/az.txt
source/data/lang/az_Cyrl.txt
source/data/lang/be.txt
source/data/lang/bg.txt
source/data/lang/bn.txt
source/data/lang/bn_IN.txt
source/data/lang/br.txt
source/data/lang/brx.txt
source/data/lang/bs.txt
source/data/lang/bs_Cyrl.txt
source/data/lang/ca.txt
source/data/lang/ccp.txt
source/data/lang/ce.txt
source/data/lang/chr.txt
source/data/lang/ckb.txt
source/data/lang/cs.txt
source/data/lang/cy.txt
source/data/lang/da.txt
source/data/lang/de.txt
source/data/lang/de_AT.txt
source/data/lang/de_CH.txt
source/data/lang/dsb.txt
source/data/lang/dz.txt
source/data/lang/ee.txt
source/data/lang/el.txt
source/data/lang/en.txt
source/data/lang/en_001.txt
source/data/lang/en_AU.txt
source/data/lang/en_BE.txt
source/data/lang/en_CA.txt
source/data/lang/en_GB.txt
source/data/lang/en_HK.txt
source/data/lang/en_IE.txt
source/data/lang/en_IN.txt
source/data/lang/en_JM.txt
source/data/lang/en_NZ.txt
source/data/lang/en_ZW.txt
source/data/lang/es.txt
source/data/lang/es_419.txt
source/data/lang/es_AR.txt
source/data/lang/es_CO.txt
source/data/lang/es_MX.txt
source/data/lang/es_PY.txt
source/data/lang/es_US.txt
source/data/lang/es_UY.txt
source/data/lang/es_VE.txt
source/data/lang/et.txt
source/data/lang/eu.txt
source/data/lang/fa.txt
source/data/lang/fa_AF.txt
source/data/lang/fi.txt
source/data/lang/fil.txt
source/data/lang/fo.txt
source/data/lang/fr.txt
source/data/lang/fr_BE.txt
source/data/lang/fr_CA.txt
source/data/lang/fr_CH.txt
source/data/lang/fy.txt
source/data/lang/ga.txt
source/data/lang/gd.txt
source/data/lang/gl.txt
source/data/lang/gsw.txt
source/data/lang/gu.txt
source/data/lang/ha.txt
source/data/lang/haw.txt
source/data/lang/he.txt
source/data/lang/hi.txt
source/data/lang/hr.txt
source/data/lang/hsb.txt
source/data/lang/hu.txt
source/data/lang/hy.txt
source/data/lang/ia.txt [new file with mode: 0644]
source/data/lang/id.txt
source/data/lang/ig.txt
source/data/lang/is.txt
source/data/lang/it.txt
source/data/lang/ja.txt
source/data/lang/jv.txt [new file with mode: 0644]
source/data/lang/ka.txt
source/data/lang/kab.txt
source/data/lang/kea.txt
source/data/lang/kk.txt
source/data/lang/kl.txt
source/data/lang/km.txt
source/data/lang/kn.txt
source/data/lang/ko.txt
source/data/lang/kok.txt
source/data/lang/ks.txt
source/data/lang/ksh.txt
source/data/lang/ku.txt [new file with mode: 0644]
source/data/lang/kw.txt
source/data/lang/ky.txt
source/data/lang/lb.txt
source/data/lang/lo.txt
source/data/lang/lrc.txt
source/data/lang/lt.txt
source/data/lang/lv.txt
source/data/lang/mg.txt
source/data/lang/mi.txt [new file with mode: 0644]
source/data/lang/mk.txt
source/data/lang/ml.txt
source/data/lang/mn.txt
source/data/lang/mr.txt
source/data/lang/ms.txt
source/data/lang/mt.txt
source/data/lang/my.txt
source/data/lang/mzn.txt
source/data/lang/nb.txt
source/data/lang/ne.txt
source/data/lang/nl.txt
source/data/lang/nn.txt
source/data/lang/om.txt
source/data/lang/or.txt
source/data/lang/pa.txt
source/data/lang/pl.txt
source/data/lang/pool.res
source/data/lang/ps.txt
source/data/lang/pt.txt
source/data/lang/pt_PT.txt
source/data/lang/qu.txt
source/data/lang/resfiles.mk
source/data/lang/rm.txt
source/data/lang/ro.txt
source/data/lang/root.txt
source/data/lang/ru.txt
source/data/lang/rw.txt
source/data/lang/sah.txt
source/data/lang/sd.txt [new file with mode: 0644]
source/data/lang/se.txt
source/data/lang/se_FI.txt
source/data/lang/si.txt
source/data/lang/sk.txt
source/data/lang/sl.txt
source/data/lang/sn.txt
source/data/lang/so.txt
source/data/lang/sq.txt
source/data/lang/sr.txt
source/data/lang/sr_Cyrl_BA.txt
source/data/lang/sr_Cyrl_ME.txt
source/data/lang/sr_Latn.txt
source/data/lang/sr_Latn_BA.txt
source/data/lang/sr_Latn_ME.txt
source/data/lang/sv.txt
source/data/lang/sw.txt
source/data/lang/sw_CD.txt
source/data/lang/sw_KE.txt
source/data/lang/ta.txt
source/data/lang/te.txt
source/data/lang/tg.txt
source/data/lang/th.txt
source/data/lang/ti.txt
source/data/lang/tk.txt [new file with mode: 0644]
source/data/lang/to.txt
source/data/lang/tr.txt
source/data/lang/tt.txt
source/data/lang/ug.txt
source/data/lang/uk.txt
source/data/lang/ur.txt
source/data/lang/ur_IN.txt
source/data/lang/uz.txt
source/data/lang/uz_Cyrl.txt
source/data/lang/vi.txt
source/data/lang/wo.txt
source/data/lang/xh.txt [new file with mode: 0644]
source/data/lang/yo.txt
source/data/lang/yo_BJ.txt
source/data/lang/yue.txt
source/data/lang/yue_Hans.txt
source/data/lang/zgh.txt
source/data/lang/zh.txt
source/data/lang/zh_Hant.txt
source/data/lang/zh_Hant_HK.txt
source/data/lang/zh_Hant_MO.txt
source/data/lang/zu.txt
source/data/locales/af.txt
source/data/locales/am.txt
source/data/locales/ar.txt
source/data/locales/ar_SA.txt
source/data/locales/as.txt
source/data/locales/ast.txt
source/data/locales/az.txt
source/data/locales/az_Cyrl.txt
source/data/locales/be.txt
source/data/locales/bg.txt
source/data/locales/bn.txt
source/data/locales/bn_IN.txt
source/data/locales/br.txt
source/data/locales/brx.txt
source/data/locales/bs.txt
source/data/locales/bs_Cyrl.txt
source/data/locales/ca.txt
source/data/locales/ccp.txt
source/data/locales/ce.txt
source/data/locales/chr.txt
source/data/locales/ckb.txt
source/data/locales/cs.txt
source/data/locales/cy.txt
source/data/locales/da.txt
source/data/locales/de.txt
source/data/locales/de_AT.txt
source/data/locales/de_CH.txt
source/data/locales/dsb.txt
source/data/locales/dz.txt
source/data/locales/ee.txt
source/data/locales/el.txt
source/data/locales/en.txt
source/data/locales/en_001.txt
source/data/locales/en_AU.txt
source/data/locales/en_BE.txt
source/data/locales/en_CA.txt
source/data/locales/en_GB.txt
source/data/locales/en_HK.txt
source/data/locales/en_IE.txt
source/data/locales/en_IN.txt
source/data/locales/en_JM.txt
source/data/locales/en_NZ.txt
source/data/locales/en_ZW.txt
source/data/locales/es.txt
source/data/locales/es_419.txt
source/data/locales/es_AR.txt
source/data/locales/es_CO.txt
source/data/locales/es_MX.txt
source/data/locales/es_PY.txt
source/data/locales/es_US.txt
source/data/locales/es_UY.txt
source/data/locales/es_VE.txt
source/data/locales/et.txt
source/data/locales/eu.txt
source/data/locales/fa.txt
source/data/locales/fa_AF.txt
source/data/locales/ff_MR.txt [deleted file]
source/data/locales/fi.txt
source/data/locales/fil.txt
source/data/locales/fo.txt
source/data/locales/fr.txt
source/data/locales/fr_BE.txt
source/data/locales/fr_CA.txt
source/data/locales/fr_CH.txt
source/data/locales/fy.txt
source/data/locales/ga.txt
source/data/locales/gd.txt
source/data/locales/gl.txt
source/data/locales/gsw.txt
source/data/locales/gu.txt
source/data/locales/ha.txt
source/data/locales/ha_NE.txt
source/data/locales/haw.txt
source/data/locales/he.txt
source/data/locales/hi.txt
source/data/locales/hr.txt
source/data/locales/hsb.txt
source/data/locales/hu.txt
source/data/locales/hy.txt
source/data/locales/ia.txt [new file with mode: 0644]
source/data/locales/ia_001.txt [new file with mode: 0644]
source/data/locales/id.txt
source/data/locales/ig.txt
source/data/locales/is.txt
source/data/locales/it.txt
source/data/locales/ja.txt
source/data/locales/jv.txt [new file with mode: 0644]
source/data/locales/jv_ID.txt [moved from source/data/locales/ff_GN.txt with 77% similarity]
source/data/locales/ka.txt
source/data/locales/kab.txt
source/data/locales/kea.txt
source/data/locales/kk.txt
source/data/locales/kl.txt
source/data/locales/km.txt
source/data/locales/kn.txt
source/data/locales/ko.txt
source/data/locales/kok.txt
source/data/locales/ks.txt
source/data/locales/ksh.txt
source/data/locales/ku.txt [new file with mode: 0644]
source/data/locales/ku_TR.txt [new file with mode: 0644]
source/data/locales/kw.txt
source/data/locales/ky.txt
source/data/locales/lb.txt
source/data/locales/lo.txt
source/data/locales/lrc.txt
source/data/locales/lt.txt
source/data/locales/lv.txt
source/data/locales/mg.txt
source/data/locales/mi.txt [new file with mode: 0644]
source/data/locales/mi_NZ.txt [new file with mode: 0644]
source/data/locales/mk.txt
source/data/locales/ml.txt
source/data/locales/mn.txt
source/data/locales/mr.txt
source/data/locales/ms.txt
source/data/locales/mt.txt
source/data/locales/my.txt
source/data/locales/mzn.txt
source/data/locales/nb.txt
source/data/locales/ne.txt
source/data/locales/nl.txt
source/data/locales/nl_BE.txt
source/data/locales/nn.txt
source/data/locales/om.txt
source/data/locales/or.txt
source/data/locales/pa.txt
source/data/locales/pl.txt
source/data/locales/pool.res
source/data/locales/ps.txt
source/data/locales/pt.txt
source/data/locales/pt_PT.txt
source/data/locales/qu.txt
source/data/locales/resfiles.mk
source/data/locales/rm.txt
source/data/locales/ro.txt
source/data/locales/root.txt
source/data/locales/ru.txt
source/data/locales/ru_UA.txt
source/data/locales/rw.txt
source/data/locales/sah.txt
source/data/locales/sd.txt [new file with mode: 0644]
source/data/locales/sd_PK.txt [new file with mode: 0644]
source/data/locales/se.txt
source/data/locales/se_FI.txt
source/data/locales/si.txt
source/data/locales/sk.txt
source/data/locales/sl.txt
source/data/locales/sn.txt
source/data/locales/so.txt
source/data/locales/sq.txt
source/data/locales/sr.txt
source/data/locales/sr_Cyrl_BA.txt
source/data/locales/sr_Cyrl_ME.txt
source/data/locales/sr_Latn.txt
source/data/locales/sr_Latn_BA.txt
source/data/locales/sr_Latn_ME.txt
source/data/locales/sv.txt
source/data/locales/sw.txt
source/data/locales/sw_CD.txt
source/data/locales/sw_KE.txt
source/data/locales/ta.txt
source/data/locales/te.txt
source/data/locales/tg.txt
source/data/locales/th.txt
source/data/locales/ti.txt
source/data/locales/ti_ER.txt
source/data/locales/tk.txt [new file with mode: 0644]
source/data/locales/tk_TM.txt [moved from source/data/locales/ff_SN.txt with 92% similarity]
source/data/locales/to.txt
source/data/locales/tr.txt
source/data/locales/tt.txt
source/data/locales/ug.txt
source/data/locales/uk.txt
source/data/locales/ur.txt
source/data/locales/ur_IN.txt
source/data/locales/uz.txt
source/data/locales/uz_Cyrl.txt
source/data/locales/vi.txt
source/data/locales/wo.txt
source/data/locales/xh.txt [new file with mode: 0644]
source/data/locales/xh_ZA.txt [new file with mode: 0644]
source/data/locales/yo.txt
source/data/locales/yo_BJ.txt
source/data/locales/yue.txt
source/data/locales/yue_Hans.txt
source/data/locales/zgh.txt
source/data/locales/zh.txt
source/data/locales/zh_Hant.txt
source/data/locales/zh_Hant_HK.txt
source/data/locales/zh_Hant_MO.txt
source/data/locales/zu.txt
source/data/makedata.mak
source/data/misc/currencyNumericCodes.txt
source/data/misc/icuver.txt
source/data/misc/keyTypeData.txt
source/data/misc/likelySubtags.txt
source/data/misc/metadata.txt
source/data/misc/miscfiles.mk
source/data/misc/pluralRanges.txt [new file with mode: 0644]
source/data/misc/plurals.txt
source/data/misc/supplementalData.txt
source/data/misc/windowsZones.txt
source/data/rbnf/ar.txt
source/data/rbnf/de_CH.txt
source/data/rbnf/hu.txt
source/data/rbnf/rbnffiles.mk
source/data/rbnf/sr_Latn.txt
source/data/rbnf/yue_Hans.txt
source/data/region/af.txt
source/data/region/am.txt
source/data/region/ar.txt
source/data/region/ar_SA.txt
source/data/region/as.txt
source/data/region/ast.txt
source/data/region/az.txt
source/data/region/az_Cyrl.txt
source/data/region/be.txt
source/data/region/bg.txt
source/data/region/bn.txt
source/data/region/bn_IN.txt
source/data/region/br.txt
source/data/region/brx.txt
source/data/region/bs.txt
source/data/region/bs_Cyrl.txt
source/data/region/ca.txt
source/data/region/ccp.txt
source/data/region/ce.txt
source/data/region/chr.txt
source/data/region/ckb.txt
source/data/region/cs.txt
source/data/region/cy.txt
source/data/region/da.txt
source/data/region/de.txt
source/data/region/de_AT.txt
source/data/region/de_CH.txt
source/data/region/dsb.txt
source/data/region/dz.txt
source/data/region/ee.txt
source/data/region/el.txt
source/data/region/en.txt
source/data/region/en_AU.txt
source/data/region/en_BE.txt
source/data/region/en_CA.txt
source/data/region/en_GB.txt
source/data/region/en_HK.txt
source/data/region/en_IE.txt
source/data/region/en_IN.txt
source/data/region/en_JM.txt
source/data/region/en_NZ.txt
source/data/region/en_ZW.txt
source/data/region/es.txt
source/data/region/es_419.txt
source/data/region/es_AR.txt
source/data/region/es_CO.txt
source/data/region/es_MX.txt
source/data/region/es_PY.txt
source/data/region/es_US.txt
source/data/region/es_UY.txt
source/data/region/es_VE.txt
source/data/region/et.txt
source/data/region/eu.txt
source/data/region/fa.txt
source/data/region/fa_AF.txt
source/data/region/fi.txt
source/data/region/fil.txt
source/data/region/fo.txt
source/data/region/fr.txt
source/data/region/fr_BE.txt
source/data/region/fr_CA.txt
source/data/region/fy.txt
source/data/region/ga.txt
source/data/region/gd.txt
source/data/region/gl.txt
source/data/region/gsw.txt
source/data/region/gu.txt
source/data/region/ha.txt
source/data/region/haw.txt
source/data/region/he.txt
source/data/region/hi.txt
source/data/region/hr.txt
source/data/region/hsb.txt
source/data/region/hu.txt
source/data/region/hy.txt
source/data/region/ia.txt [new file with mode: 0644]
source/data/region/id.txt
source/data/region/ig.txt
source/data/region/is.txt
source/data/region/it.txt
source/data/region/ja.txt
source/data/region/jv.txt [new file with mode: 0644]
source/data/region/ka.txt
source/data/region/kab.txt
source/data/region/kea.txt
source/data/region/kk.txt
source/data/region/kl.txt
source/data/region/km.txt
source/data/region/kn.txt
source/data/region/ko.txt
source/data/region/kok.txt
source/data/region/ks.txt
source/data/region/ksh.txt
source/data/region/ku.txt [new file with mode: 0644]
source/data/region/kw.txt
source/data/region/ky.txt
source/data/region/lb.txt
source/data/region/lo.txt
source/data/region/lrc.txt
source/data/region/lt.txt
source/data/region/lv.txt
source/data/region/mg.txt
source/data/region/mi.txt [new file with mode: 0644]
source/data/region/mk.txt
source/data/region/ml.txt
source/data/region/mn.txt
source/data/region/mr.txt
source/data/region/ms.txt
source/data/region/mt.txt
source/data/region/my.txt
source/data/region/mzn.txt
source/data/region/nb.txt
source/data/region/ne.txt
source/data/region/nl.txt
source/data/region/nn.txt
source/data/region/om.txt
source/data/region/or.txt
source/data/region/pa.txt
source/data/region/pl.txt
source/data/region/pool.res
source/data/region/ps.txt
source/data/region/pt.txt
source/data/region/pt_PT.txt
source/data/region/qu.txt
source/data/region/resfiles.mk
source/data/region/rm.txt
source/data/region/ro.txt
source/data/region/root.txt
source/data/region/ru.txt
source/data/region/ru_UA.txt
source/data/region/rw.txt
source/data/region/sah.txt
source/data/region/sd.txt [new file with mode: 0644]
source/data/region/se.txt
source/data/region/se_FI.txt
source/data/region/si.txt
source/data/region/sk.txt
source/data/region/sl.txt
source/data/region/sn.txt
source/data/region/so.txt
source/data/region/sq.txt
source/data/region/sr.txt
source/data/region/sr_Cyrl_BA.txt
source/data/region/sr_Cyrl_ME.txt
source/data/region/sr_Latn.txt
source/data/region/sr_Latn_BA.txt
source/data/region/sr_Latn_ME.txt
source/data/region/sv.txt
source/data/region/sw.txt
source/data/region/sw_CD.txt
source/data/region/sw_KE.txt
source/data/region/ta.txt
source/data/region/te.txt
source/data/region/tg.txt
source/data/region/th.txt
source/data/region/ti.txt
source/data/region/tk.txt [new file with mode: 0644]
source/data/region/to.txt
source/data/region/tr.txt
source/data/region/tt.txt
source/data/region/ug.txt
source/data/region/uk.txt
source/data/region/ur.txt
source/data/region/ur_IN.txt
source/data/region/uz.txt
source/data/region/uz_Cyrl.txt
source/data/region/vi.txt
source/data/region/wo.txt
source/data/region/xh.txt [moved from source/data/curr/ff_GN.txt with 52% similarity]
source/data/region/yo.txt
source/data/region/yo_BJ.txt
source/data/region/yue.txt
source/data/region/yue_Hans.txt
source/data/region/zgh.txt
source/data/region/zh.txt
source/data/region/zh_Hant.txt
source/data/region/zh_Hant_HK.txt
source/data/region/zh_Hant_MO.txt
source/data/region/zu.txt
source/data/translit/Hans_Hant.txt
source/data/translit/Zawgyi_my.txt
source/data/translit/my_Zawgyi.txt [new file with mode: 0644]
source/data/translit/root.txt
source/data/translit/ug_ug_FONIPA.txt [new file with mode: 0644]
source/data/unidata/changes.txt
source/data/unidata/norm2/uts46.txt
source/data/unit/af.txt
source/data/unit/am.txt
source/data/unit/ar.txt
source/data/unit/as.txt
source/data/unit/ast.txt
source/data/unit/az.txt
source/data/unit/az_Cyrl.txt
source/data/unit/be.txt
source/data/unit/bg.txt
source/data/unit/bn.txt
source/data/unit/br.txt
source/data/unit/brx.txt
source/data/unit/bs.txt
source/data/unit/bs_Cyrl.txt
source/data/unit/ca.txt
source/data/unit/ccp.txt
source/data/unit/ce.txt
source/data/unit/chr.txt
source/data/unit/ckb.txt
source/data/unit/cs.txt
source/data/unit/cy.txt
source/data/unit/da.txt
source/data/unit/de.txt
source/data/unit/de_CH.txt
source/data/unit/dsb.txt
source/data/unit/dz.txt
source/data/unit/ee.txt
source/data/unit/el.txt
source/data/unit/en.txt
source/data/unit/en_001.txt
source/data/unit/en_AU.txt
source/data/unit/en_BE.txt
source/data/unit/en_CA.txt
source/data/unit/en_GB.txt
source/data/unit/en_HK.txt
source/data/unit/en_IE.txt
source/data/unit/en_IN.txt
source/data/unit/en_JM.txt
source/data/unit/en_NZ.txt
source/data/unit/en_ZW.txt
source/data/unit/es.txt
source/data/unit/es_419.txt
source/data/unit/es_AR.txt
source/data/unit/es_CO.txt
source/data/unit/es_MX.txt
source/data/unit/es_PY.txt
source/data/unit/es_US.txt
source/data/unit/es_UY.txt
source/data/unit/es_VE.txt
source/data/unit/et.txt
source/data/unit/eu.txt
source/data/unit/fa.txt
source/data/unit/fi.txt
source/data/unit/fil.txt
source/data/unit/fo.txt
source/data/unit/fr.txt
source/data/unit/fr_CA.txt
source/data/unit/fy.txt
source/data/unit/ga.txt
source/data/unit/gd.txt
source/data/unit/gl.txt
source/data/unit/gsw.txt
source/data/unit/gu.txt
source/data/unit/ha.txt
source/data/unit/haw.txt
source/data/unit/he.txt
source/data/unit/hi.txt
source/data/unit/hr.txt
source/data/unit/hsb.txt
source/data/unit/hu.txt
source/data/unit/hy.txt
source/data/unit/ia.txt [new file with mode: 0644]
source/data/unit/id.txt
source/data/unit/ig.txt
source/data/unit/is.txt
source/data/unit/it.txt
source/data/unit/ja.txt
source/data/unit/jv.txt [new file with mode: 0644]
source/data/unit/ka.txt
source/data/unit/kab.txt
source/data/unit/kea.txt
source/data/unit/kk.txt
source/data/unit/kl.txt
source/data/unit/km.txt
source/data/unit/kn.txt
source/data/unit/ko.txt
source/data/unit/kok.txt
source/data/unit/ks.txt
source/data/unit/ksh.txt
source/data/unit/ku.txt [new file with mode: 0644]
source/data/unit/kw.txt
source/data/unit/ky.txt
source/data/unit/lb.txt
source/data/unit/lo.txt
source/data/unit/lrc.txt
source/data/unit/lt.txt
source/data/unit/lv.txt
source/data/unit/mg.txt
source/data/unit/mi.txt [new file with mode: 0644]
source/data/unit/mk.txt
source/data/unit/ml.txt
source/data/unit/mn.txt
source/data/unit/mr.txt
source/data/unit/ms.txt
source/data/unit/mt.txt
source/data/unit/my.txt
source/data/unit/mzn.txt
source/data/unit/nb.txt
source/data/unit/ne.txt
source/data/unit/nl.txt
source/data/unit/nn.txt
source/data/unit/om.txt
source/data/unit/or.txt
source/data/unit/pa.txt
source/data/unit/pl.txt
source/data/unit/pool.res
source/data/unit/ps.txt
source/data/unit/pt.txt
source/data/unit/pt_PT.txt
source/data/unit/qu.txt
source/data/unit/resfiles.mk
source/data/unit/rm.txt
source/data/unit/ro.txt
source/data/unit/root.txt
source/data/unit/ru.txt
source/data/unit/rw.txt
source/data/unit/sah.txt
source/data/unit/sd.txt [new file with mode: 0644]
source/data/unit/se.txt
source/data/unit/si.txt
source/data/unit/sk.txt
source/data/unit/sl.txt
source/data/unit/sn.txt
source/data/unit/so.txt
source/data/unit/sq.txt
source/data/unit/sr.txt
source/data/unit/sr_Latn.txt
source/data/unit/sv.txt
source/data/unit/sw.txt
source/data/unit/ta.txt
source/data/unit/te.txt
source/data/unit/tg.txt
source/data/unit/th.txt
source/data/unit/ti.txt
source/data/unit/tk.txt [new file with mode: 0644]
source/data/unit/to.txt
source/data/unit/tr.txt
source/data/unit/tt.txt
source/data/unit/ug.txt
source/data/unit/uk.txt
source/data/unit/ur.txt
source/data/unit/ur_IN.txt
source/data/unit/uz.txt
source/data/unit/uz_Cyrl.txt
source/data/unit/vi.txt
source/data/unit/wo.txt
source/data/unit/xh.txt [new file with mode: 0644]
source/data/unit/yo.txt
source/data/unit/yue.txt
source/data/unit/yue_Hans.txt
source/data/unit/zgh.txt
source/data/unit/zh.txt
source/data/unit/zh_Hant.txt
source/data/unit/zh_Hant_HK.txt
source/data/unit/zh_Hant_MO.txt
source/data/unit/zu.txt
source/data/xml/brkitr/de.xml
source/data/xml/brkitr/el.xml
source/data/xml/brkitr/en.xml
source/data/xml/brkitr/en_US.xml
source/data/xml/brkitr/en_US_POSIX.xml
source/data/xml/brkitr/es.xml
source/data/xml/brkitr/fi.xml [deleted file]
source/data/xml/brkitr/fr.xml
source/data/xml/brkitr/it.xml
source/data/xml/brkitr/ja.xml
source/data/xml/brkitr/pt.xml
source/data/xml/brkitr/root.xml
source/data/xml/brkitr/ru.xml
source/data/xml/collation/root.xml
source/data/xml/main/root.xml
source/data/xml/rbnf/be.xml
source/data/xml/rbnf/bg.xml
source/data/xml/rbnf/ca.xml
source/data/xml/rbnf/cy.xml
source/data/xml/rbnf/da.xml
source/data/xml/rbnf/de.xml
source/data/xml/rbnf/en.xml
source/data/xml/rbnf/fo.xml
source/data/xml/rbnf/ga.xml
source/data/xml/rbnf/is.xml
source/data/xml/rbnf/mk.xml
source/data/xml/rbnf/mt.xml
source/data/xml/rbnf/nb.xml
source/data/xml/rbnf/nn.xml
source/data/xml/rbnf/root.xml
source/data/xml/rbnf/ru.xml
source/data/xml/rbnf/sr.xml
source/data/xml/rbnf/uk.xml
source/data/zone/af.txt
source/data/zone/am.txt
source/data/zone/ar.txt
source/data/zone/as.txt
source/data/zone/ast.txt
source/data/zone/az.txt
source/data/zone/az_Cyrl.txt
source/data/zone/be.txt
source/data/zone/bg.txt
source/data/zone/bn.txt
source/data/zone/br.txt
source/data/zone/brx.txt
source/data/zone/bs.txt
source/data/zone/bs_Cyrl.txt
source/data/zone/ca.txt
source/data/zone/ccp.txt
source/data/zone/ce.txt
source/data/zone/chr.txt
source/data/zone/ckb.txt
source/data/zone/cs.txt
source/data/zone/cy.txt
source/data/zone/da.txt
source/data/zone/de.txt
source/data/zone/de_CH.txt
source/data/zone/dsb.txt
source/data/zone/dz.txt
source/data/zone/ee.txt
source/data/zone/el.txt
source/data/zone/en.txt
source/data/zone/en_001.txt
source/data/zone/en_AU.txt
source/data/zone/en_BE.txt
source/data/zone/en_CA.txt
source/data/zone/en_GB.txt
source/data/zone/en_HK.txt
source/data/zone/en_IE.txt
source/data/zone/en_IN.txt
source/data/zone/en_JM.txt
source/data/zone/en_NZ.txt
source/data/zone/en_ZW.txt
source/data/zone/es.txt
source/data/zone/es_419.txt
source/data/zone/es_AR.txt
source/data/zone/es_CO.txt
source/data/zone/es_MX.txt
source/data/zone/es_PY.txt
source/data/zone/es_US.txt
source/data/zone/es_UY.txt
source/data/zone/es_VE.txt
source/data/zone/et.txt
source/data/zone/eu.txt
source/data/zone/fa.txt
source/data/zone/fi.txt
source/data/zone/fil.txt
source/data/zone/fo.txt
source/data/zone/fr.txt
source/data/zone/fr_CA.txt
source/data/zone/fy.txt
source/data/zone/ga.txt
source/data/zone/gd.txt
source/data/zone/gl.txt
source/data/zone/gsw.txt
source/data/zone/gu.txt
source/data/zone/ha.txt
source/data/zone/haw.txt
source/data/zone/he.txt
source/data/zone/hi.txt
source/data/zone/hr.txt
source/data/zone/hsb.txt
source/data/zone/hu.txt
source/data/zone/hy.txt
source/data/zone/ia.txt [new file with mode: 0644]
source/data/zone/id.txt
source/data/zone/ig.txt
source/data/zone/is.txt
source/data/zone/it.txt
source/data/zone/ja.txt
source/data/zone/jv.txt [new file with mode: 0644]
source/data/zone/ka.txt
source/data/zone/kab.txt
source/data/zone/kea.txt
source/data/zone/kk.txt
source/data/zone/kl.txt
source/data/zone/km.txt
source/data/zone/kn.txt
source/data/zone/ko.txt
source/data/zone/kok.txt
source/data/zone/ks.txt
source/data/zone/ksh.txt
source/data/zone/ku.txt [new file with mode: 0644]
source/data/zone/kw.txt
source/data/zone/ky.txt
source/data/zone/lb.txt
source/data/zone/lo.txt
source/data/zone/lrc.txt
source/data/zone/lt.txt
source/data/zone/lv.txt
source/data/zone/mg.txt
source/data/zone/mi.txt [new file with mode: 0644]
source/data/zone/mk.txt
source/data/zone/ml.txt
source/data/zone/mn.txt
source/data/zone/mr.txt
source/data/zone/ms.txt
source/data/zone/mt.txt
source/data/zone/my.txt
source/data/zone/mzn.txt
source/data/zone/nb.txt
source/data/zone/ne.txt
source/data/zone/nl.txt
source/data/zone/nn.txt
source/data/zone/om.txt
source/data/zone/or.txt
source/data/zone/pa.txt
source/data/zone/pl.txt
source/data/zone/pool.res
source/data/zone/ps.txt
source/data/zone/pt.txt
source/data/zone/pt_PT.txt
source/data/zone/qu.txt
source/data/zone/resfiles.mk
source/data/zone/rm.txt
source/data/zone/ro.txt
source/data/zone/root.txt
source/data/zone/ru.txt
source/data/zone/rw.txt
source/data/zone/sah.txt
source/data/zone/sd.txt [new file with mode: 0644]
source/data/zone/se.txt
source/data/zone/se_FI.txt
source/data/zone/si.txt
source/data/zone/sk.txt
source/data/zone/sl.txt
source/data/zone/sn.txt
source/data/zone/so.txt
source/data/zone/sq.txt
source/data/zone/sr.txt
source/data/zone/sr_Latn.txt
source/data/zone/sv.txt
source/data/zone/sw.txt
source/data/zone/ta.txt
source/data/zone/te.txt
source/data/zone/tg.txt
source/data/zone/th.txt
source/data/zone/ti.txt
source/data/zone/tk.txt [new file with mode: 0644]
source/data/zone/to.txt
source/data/zone/tr.txt
source/data/zone/tt.txt
source/data/zone/ug.txt
source/data/zone/uk.txt
source/data/zone/ur.txt
source/data/zone/ur_IN.txt
source/data/zone/uz.txt
source/data/zone/uz_Cyrl.txt
source/data/zone/vi.txt
source/data/zone/wo.txt
source/data/zone/xh.txt [new file with mode: 0644]
source/data/zone/yo.txt
source/data/zone/yue.txt
source/data/zone/yue_Hans.txt
source/data/zone/zgh.txt
source/data/zone/zh.txt
source/data/zone/zh_Hant.txt
source/data/zone/zh_Hant_HK.txt
source/data/zone/zh_Hant_MO.txt
source/data/zone/zu.txt
source/i18n/Makefile.in
source/i18n/alphaindex.cpp
source/i18n/anytrans.cpp
source/i18n/calendar.cpp
source/i18n/coll.cpp
source/i18n/collationkeys.cpp
source/i18n/csrmbcs.cpp
source/i18n/currpinf.cpp
source/i18n/currunit.cpp
source/i18n/dcfmtsym.cpp
source/i18n/decimfmt.cpp
source/i18n/dtfmtsym.cpp
source/i18n/dtitvfmt.cpp
source/i18n/dtitvinf.cpp
source/i18n/dtptngen.cpp
source/i18n/dtptngen_impl.h
source/i18n/erarules.cpp [new file with mode: 0644]
source/i18n/erarules.h [new file with mode: 0644]
source/i18n/fphdlimp.h
source/i18n/gregocal.cpp
source/i18n/gregoimp.h
source/i18n/i18n.vcxproj
source/i18n/i18n.vcxproj.filters
source/i18n/i18n_uwp.vcxproj
source/i18n/indiancal.cpp
source/i18n/indiancal.h
source/i18n/japancal.cpp
source/i18n/japancal.h
source/i18n/listformatter.cpp [moved from source/common/listformatter.cpp with 71% similarity]
source/i18n/measfmt.cpp
source/i18n/measunit.cpp
source/i18n/msgfmt.cpp
source/i18n/nfrule.cpp
source/i18n/nfrule.h
source/i18n/number_compact.cpp
source/i18n/number_decimalquantity.cpp
source/i18n/number_decimfmtprops.cpp
source/i18n/number_fluent.cpp
source/i18n/number_formatimpl.cpp
source/i18n/number_formatimpl.h
source/i18n/number_grouping.cpp
source/i18n/number_longnames.cpp
source/i18n/number_longnames.h
source/i18n/number_mapper.cpp
source/i18n/number_modifiers.cpp
source/i18n/number_modifiers.h
source/i18n/number_multiplier.cpp
source/i18n/number_multiplier.h
source/i18n/number_padding.cpp
source/i18n/number_patternmodifier.cpp
source/i18n/number_patternmodifier.h
source/i18n/number_scientific.cpp
source/i18n/number_scientific.h
source/i18n/number_stringbuilder.cpp
source/i18n/number_stringbuilder.h
source/i18n/number_types.h
source/i18n/numfmt.cpp
source/i18n/numparse_currency.cpp
source/i18n/numparse_impl.cpp
source/i18n/numparse_scientific.cpp
source/i18n/numrange_fluent.cpp [new file with mode: 0644]
source/i18n/numrange_impl.cpp [new file with mode: 0644]
source/i18n/numrange_impl.h [new file with mode: 0644]
source/i18n/numsys.cpp
source/i18n/numsys_impl.h
source/i18n/olsontz.cpp
source/i18n/plurrule.cpp
source/i18n/plurrule_impl.h
source/i18n/rbnf.cpp
source/i18n/rbt.h
source/i18n/rbt_pars.cpp
source/i18n/regexcmp.cpp
source/i18n/region.cpp
source/i18n/reldatefmt.cpp
source/i18n/reldtfmt.cpp
source/i18n/reldtfmt.h
source/i18n/rematch.cpp
source/i18n/rulebasedcollator.cpp
source/i18n/scriptset.cpp
source/i18n/shareddateformatsymbols.h
source/i18n/smpdtfmt.cpp
source/i18n/timezone.cpp
source/i18n/transreg.cpp
source/i18n/tzfmt.cpp
source/i18n/tzgnames.cpp
source/i18n/tznames.cpp
source/i18n/tznames_impl.cpp
source/i18n/ucln_in.h
source/i18n/ucol_res.cpp
source/i18n/udat.cpp
source/i18n/ulistformatter.cpp [moved from source/common/ulistformatter.cpp with 100% similarity]
source/i18n/ulocdata.cpp
source/i18n/unicode/alphaindex.h
source/i18n/unicode/calendar.h
source/i18n/unicode/coll.h
source/i18n/unicode/compactdecimalformat.h
source/i18n/unicode/currpinf.h
source/i18n/unicode/currunit.h
source/i18n/unicode/datefmt.h
source/i18n/unicode/dcfmtsym.h
source/i18n/unicode/decimfmt.h
source/i18n/unicode/dtptngen.h
source/i18n/unicode/fmtable.h
source/i18n/unicode/gender.h
source/i18n/unicode/listformatter.h [moved from source/common/unicode/listformatter.h with 79% similarity]
source/i18n/unicode/measfmt.h
source/i18n/unicode/measunit.h
source/i18n/unicode/msgfmt.h
source/i18n/unicode/numberformatter.h
source/i18n/unicode/numberrangeformatter.h [new file with mode: 0644]
source/i18n/unicode/numfmt.h
source/i18n/unicode/plurfmt.h
source/i18n/unicode/plurrule.h
source/i18n/unicode/rbnf.h
source/i18n/unicode/region.h
source/i18n/unicode/reldatefmt.h
source/i18n/unicode/smpdtfmt.h
source/i18n/unicode/translit.h
source/i18n/unicode/tzfmt.h
source/i18n/unicode/ucal.h
source/i18n/unicode/ucol.h
source/i18n/unicode/ugender.h
source/i18n/unicode/ulistformatter.h [moved from source/common/unicode/ulistformatter.h with 90% similarity]
source/i18n/unicode/unumberformatter.h
source/i18n/unicode/usearch.h
source/i18n/unicode/uspoof.h
source/i18n/uregex.cpp
source/i18n/usearch.cpp
source/i18n/uspoof_impl.h
source/i18n/vtzone.cpp
source/i18n/zonemeta.cpp
source/io/io.vcxproj
source/io/ufmt_cmn.cpp
source/io/uprintf.cpp
source/io/ustream.cpp
source/layoutex/layout/ParagraphLayout.h
source/layoutex/layoutex.vcxproj
source/runConfigureICU
source/samples/all/samplecheck.bat
source/samples/date/date.c
source/stubdata/stubdata.vcxproj
source/test/Makefile.in
source/test/cintltst/Makefile.in
source/test/cintltst/callcoll.c
source/test/cintltst/cbiapts.c
source/test/cintltst/cintltst.vcxproj
source/test/cintltst/cintltst.vcxproj.filters
source/test/cintltst/cldrtest.c
source/test/cintltst/cloctst.c
source/test/cintltst/cloctst.h
source/test/cintltst/cnmdptst.c
source/test/cintltst/cucdtst.c
source/test/cintltst/cutiltst.c
source/test/cintltst/trie2test.c
source/test/cintltst/ucptrietest.c [new file with mode: 0644]
source/test/cintltst/uregiontest.c
source/test/depstest/dependencies.py
source/test/depstest/dependencies.txt
source/test/depstest/depstest.py
source/test/hdrtst/cxxfiles.txt
source/test/intltest/Makefile.in
source/test/intltest/calregts.cpp
source/test/intltest/compactdecimalformattest.cpp
source/test/intltest/cpdtrtst.h
source/test/intltest/dtifmtts.cpp
source/test/intltest/erarulestest.cpp [new file with mode: 0644]
source/test/intltest/erarulestest.h [new file with mode: 0644]
source/test/intltest/intltest.vcxproj
source/test/intltest/intltest.vcxproj.filters
source/test/intltest/itformat.cpp
source/test/intltest/itutil.cpp
source/test/intltest/listformattertest.cpp
source/test/intltest/listformattertest.h
source/test/intltest/loctest.cpp
source/test/intltest/loctest.h
source/test/intltest/measfmttest.cpp
source/test/intltest/numbertest.h
source/test/intltest/numbertest_api.cpp
source/test/intltest/numbertest_modifiers.cpp
source/test/intltest/numbertest_patternmodifier.cpp
source/test/intltest/numbertest_range.cpp [new file with mode: 0644]
source/test/intltest/numfmtspectest.cpp
source/test/intltest/numfmtst.cpp
source/test/intltest/numfmtst.h
source/test/intltest/numrgts.cpp
source/test/intltest/rbbimonkeytest.cpp
source/test/intltest/rbbimonkeytest.h
source/test/intltest/rbbitst.cpp
source/test/intltest/regiontst.cpp
source/test/intltest/reldatefmttest.cpp
source/test/intltest/strcase.cpp
source/test/intltest/tmsgfmt.cpp
source/test/intltest/tsmthred.cpp
source/test/intltest/tsmthred.h
source/test/intltest/tstnorm.cpp
source/test/intltest/ucdtest.cpp
source/test/intltest/ucdtest.h
source/test/intltest/ustrtest.cpp
source/test/intltest/ustrtest.h
source/test/iotest/filetst.c
source/test/iotest/iotest.cpp
source/test/iotest/trnstst.c
source/test/perf/normperf/Makefile.in
source/test/perf/normperf/simplenormperf.cpp [new file with mode: 0644]
source/test/testdata/break_rules/line.txt
source/test/testdata/break_rules/line_loose.txt
source/test/testdata/break_rules/line_loose_cj.txt
source/test/testdata/break_rules/line_normal.txt
source/test/testdata/break_rules/line_normal_cj.txt
source/test/testdata/format.txt
source/test/testdata/numberformattestspecification.txt
source/test/testdata/rbbitst.txt
source/test/testdata/regextst.txt
source/test/testdata/root.txt
source/test/testdata/structLocale.txt
source/test/testdata/testnorm.txt
source/tools/ctestfw/ctestfw.vcxproj
source/tools/ctestfw/tstdtmod.cpp
source/tools/ctestfw/unicode/testlog.h
source/tools/gencfu/gencfu.cpp
source/tools/gencnval/gencnval.c
source/tools/gennorm2/gennorm2.cpp
source/tools/gennorm2/n2builder.cpp
source/tools/gennorm2/n2builder.h
source/tools/gennorm2/norms.cpp
source/tools/gennorm2/norms.h
source/tools/genrb/parse.cpp
source/tools/genrb/reslist.cpp
source/tools/genren/genren.pl
source/tools/gensprep/gensprep.c
source/tools/icu-file-utf8-check.py [new file with mode: 0755]
source/tools/icu-svnprops-check.py [deleted file]
source/tools/pkgdata/pkgdata.cpp
source/tools/toolutil/filestrm.cpp
source/tools/toolutil/filetools.cpp
source/tools/toolutil/package.cpp
source/tools/toolutil/swapimpl.cpp
source/tools/toolutil/toolutil.vcxproj
source/tools/toolutil/udbgutil.cpp
source/tools/toolutil/unewdata.cpp
source/tools/toolutil/writesrc.cpp
source/tools/toolutil/writesrc.h

diff --git a/.gitignore b/.gitignore
deleted file mode 100644 (file)
index 563eb51..0000000
+++ /dev/null
@@ -1,93 +0,0 @@
-# Copyright (C) 2016 and later: Unicode, Inc. and others.
-# License & terms of use: http://www.unicode.org/copyright.html
-Makefile
-*.o
-*.d
-bin/
-*.1
-*.8
-*.ao
-*.dylib
-lib/
-bin64/
-lib64/
-bin32uwp/
-lib32uwp/
-bin64uwp/
-lib64uwp/
-commondata/
-
-icudefs.mk
-pkgdata.inc
-common/svchook.mk
-config.log
-config.status
-config/Makefile.inc
-config/icu-config
-config/icu*.pc
-config/icucross.inc
-config/icucross.mk
-config/pkgdata.inc
-config/pkgdataMakefile
-data/build-dir
-data/build-local
-data/icupkg.inc
-data/out/
-data/data/
-data/packagedata
-data/pkgdataMakefile
-extra/uconv/pkgdata.inc
-extra/uconv/pkgdataMakefile
-extra/uconv/uconvmsg/
-samples/cal/icucal
-samples/date/icudate
-stubdata/libicudata.so*
-test/testdata/pkgdataMakefile
-tools/ctestfw/libicutest.so*
-tools/gentest/gentest
-tools/icuinfo/icuinfo
-*.lib
-*.dll
-*.exp
-/source/common/svchook.mk
-/source/config/Makefile.inc
-/source/config/icu-config
-/source/config/icu-i18n.pc
-/source/config/icu-io.pc
-/source/config/icu-uc.pc
-/source/config/icu.pc
-/source/config/icucross.inc
-/source/config/icucross.mk
-/source/config/icuinfo.xml
-/source/config/pkgdataMakefile
-/source/data/build-dir
-/source/data/build-local
-/source/data/icupkg.inc
-/source/data/out/
-/source/data/packagedata
-/source/data/pkgdataMakefile
-/source/extra/uconv/pkgdataMakefile
-/source/extra/uconv/uconvmsg/
-/source/samples/cal/icucal
-/source/samples/date/icudate
-/source/test/cintltst/cintltst
-/source/test/intltest/intltest
-/source/test/iotest/iotest
-/source/test/testdata/out/
-/source/test/testdata/pkgdataMakefile
-/source/tools/escapesrc/output-*.cpp
-/source/tools/gentest/gentest
-/source/tools/icuinfo/icuinfo
-
-*.ncb
-*.opt
-*.suo
-*.sdf
-*.opensdf
-ipch
-.vs
-Debug
-*.db
-*.opendb
-*.so
-*.so.*
index cd89b46..155b6c7 100644 (file)
        -->
 <head>
 <META http-equiv="Content-Type" content="text/html; charset=utf-8">
-<title>ICU4C API Comparison: ICU 61 with ICU 62</title>
+<title>ICU4C API Comparison: ICU 62 with ICU 63</title>
 <link type="text/css" href="icu4c.css" rel="stylesheet">
 </head>
 <body>
 <a name="#_top"></a>
-<h1>ICU4C API Comparison: ICU 61 with ICU 62</h1>
+<h1>ICU4C API Comparison: ICU 62 with ICU 63</h1>
 <div id="toc">
 <ul>
 <li>
-<a href="#notes">Notes</a><sup style="background-color: yellow; font-size: smallest;">(new)</sup>
+<a href="#removed">Removed from ICU 62</a>
 </li>
 <li>
-<a href="#removed">Removed from ICU 61</a>
+<a href="#deprecated">Deprecated or Obsoleted in ICU 63</a>
 </li>
 <li>
-<a href="#deprecated">Deprecated or Obsoleted in ICU 62</a>
+<a href="#changed">Changed in  ICU 63</a>
 </li>
 <li>
-<a href="#changed">Changed in  ICU 62</a>
+<a href="#promoted">Promoted to stable in ICU 63</a>
 </li>
 <li>
-<a href="#promoted">Promoted to stable in ICU 62</a>
+<a href="#added">Added in ICU 63</a>
 </li>
 <li>
-<a href="#added">Added in ICU 62</a>
-</li>
-<li>
-<a href="#other">Other existing drafts in ICU 62</a>
+<a href="#other">Other existing drafts in ICU 63</a>
 </li>
 <li>
 <a href="#purevirtual">Signature Simplifications</a><sup style="background-color: yellow; font-size: smallest;">(new)</sup>
 </li>
 </ul>
-</div>
-<hr>
-<a name="notes"></a>
-<h2>Notes</h2>
-<ul>
-<li>Several type names including “Rounder” were renamed to use “Precision”. The signatures below reflect the new names. The old names have been <code>typedef</code>’d to the new names, but those typedefs will be removed in ICU 64:<br>
-<code>
-typedef Precision Rounder;<br>
-typedef FractionPrecision FractionRounder;<br>
-typedef IncrementPrecision IncrementRounder;<br>
-typedef CurrencyPrecision CurrencyRounder;
-</code>
-</li>
-</ul>
-<a href="#_top">(jump back to top)</a>
 <hr>
+</div>
 <a name="removed"></a>
-<h2>Removed from ICU 61</h2>
+<h2>Removed from ICU 62</h2>
 <table BORDER="1" class="genTable">
 <THEAD>
 <tr>
-<th>File</th><th>API</th><th>ICU 61</th><th>ICU 62</th>
+<th>File</th><th>API</th><th>ICU 62</th><th>ICU 63</th>
 </tr>
 </THEAD>
+
+<!-- delete whole "Removed from ICU 62 contents.
+
+<tr class="row1">
+<td class="file">enumset.h</td><td class="proto">UBool icu::EnumSet&lt; T, minValue, limitValue &gt;::isValidEnum(T) const</td><td class=""><i>(untagged)</i></td><td>(missing)<br>
+<span class=""><span></span></span></td>
+</tr>
+<tr class="row0">
+<td class="file">enumset.h</td><td class="proto">UBool icu::EnumSet&lt; T, minValue, limitValue &gt;::isValidValue(int32_t) const</td><td class=""><i>(untagged)</i></td><td>(missing)<br>
+<span class=""><span></span></span></td>
+</tr>
 <tr class="row1">
-<td class="file">compactdecimalformat.h</td><td class="proto">UBool icu::CompactDecimalFormat::operator==(const Format&amp;)</td><td class="stabchange">Stable<br>ICU 51</td><td>(missing)<br>
+<td class="file">enumset.h</td><td class="proto">const EnumSet&lt;T, minValue, limitValue&gt;&amp; icu::EnumSet&lt; T, minValue, limitValue &gt;::operator=(const EnumSet&lt;,, limitValue &gt;&amp;)</td><td class=""><i>(untagged)</i></td><td>(missing)<br>
 <span class=""><span></span></span></td>
 </tr>
 <tr class="row0">
-<td class="file">compactdecimalformat.h</td><td class="proto">UnicodeString&amp; icu::CompactDecimalFormat::format(StringPiece, UnicodeString&amp;, FieldPositionIterator*, UErrorCode&amp;)</td><td class="">Internal</td><td>(missing)<br>
+<td class="file">enumset.h</td><td class="proto">icu::EnumSet&lt; T, minValue, limitValue &gt;::EnumSet()</td><td class=""><i>(untagged)</i></td><td>(missing)<br>
 <span class=""><span></span></span></td>
 </tr>
 <tr class="row1">
-<td class="file">compactdecimalformat.h</td><td class="proto">UnicodeString&amp; icu::CompactDecimalFormat::format(const DigitList&amp;, UnicodeString&amp;, FieldPosition&amp;, UErrorCode&amp;)</td><td class="">Internal</td><td>(missing)<br>
+<td class="file">enumset.h</td><td class="proto">icu::EnumSet&lt; T, minValue, limitValue &gt;::EnumSet(const EnumSet&lt;,, limitValue &gt;&amp;)</td><td class=""><i>(untagged)</i></td><td>(missing)<br>
 <span class=""><span></span></span></td>
 </tr>
 <tr class="row0">
-<td class="file">compactdecimalformat.h</td><td class="proto">UnicodeString&amp; icu::CompactDecimalFormat::format(const DigitList&amp;, UnicodeString&amp;, FieldPositionIterator*, UErrorCode&amp;)</td><td class="">Internal</td><td>(missing)<br>
+<td class="file">enumset.h</td><td class="proto">icu::EnumSet&lt; T, minValue, limitValue &gt;::~EnumSet()</td><td class=""><i>(untagged)</i></td><td>(missing)<br>
 <span class=""><span></span></span></td>
 </tr>
 <tr class="row1">
-<td class="file">compactdecimalformat.h</td><td class="proto">UnicodeString&amp; icu::CompactDecimalFormat::format(double, UnicodeString&amp;, FieldPosition&amp;)</td><td class="stabchange">Stable<br>ICU 51</td><td>(missing)<br>
+<td class="file">enumset.h</td><td class="proto">int32_t icu::EnumSet&lt; T, minValue, limitValue &gt;::contains(T) const</td><td class=""><i>(untagged)</i></td><td>(missing)<br>
 <span class=""><span></span></span></td>
 </tr>
 <tr class="row0">
-<td class="file">compactdecimalformat.h</td><td class="proto">UnicodeString&amp; icu::CompactDecimalFormat::format(double, UnicodeString&amp;, FieldPosition&amp;, UErrorCode&amp;)</td><td class="">Internal</td><td>(missing)<br>
+<td class="file">enumset.h</td><td class="proto">int32_t icu::EnumSet&lt; T, minValue, limitValue &gt;::get(T) const</td><td class=""><i>(untagged)</i></td><td>(missing)<br>
 <span class=""><span></span></span></td>
 </tr>
 <tr class="row1">
-<td class="file">compactdecimalformat.h</td><td class="proto">UnicodeString&amp; icu::CompactDecimalFormat::format(double, UnicodeString&amp;, FieldPositionIterator*, UErrorCode&amp;)</td><td class="">Internal</td><td>(missing)<br>
+<td class="file">enumset.h</td><td class="proto">uint32_t icu::EnumSet&lt; T, minValue, limitValue &gt;::getAll() const</td><td class=""><i>(untagged)</i></td><td>(missing)<br>
 <span class=""><span></span></span></td>
 </tr>
 <tr class="row0">
-<td class="file">compactdecimalformat.h</td><td class="proto">UnicodeString&amp; icu::CompactDecimalFormat::format(int32_t, UnicodeString&amp;, FieldPosition&amp;)</td><td class="stabchange">Stable<br>ICU 56</td><td>(missing)<br>
+<td class="file">enumset.h</td><td class="proto">void icu::EnumSet&lt; T, minValue, limitValue &gt;::add(T)</td><td class=""><i>(untagged)</i></td><td>(missing)<br>
 <span class=""><span></span></span></td>
 </tr>
 <tr class="row1">
-<td class="file">compactdecimalformat.h</td><td class="proto">UnicodeString&amp; icu::CompactDecimalFormat::format(int32_t, UnicodeString&amp;, FieldPosition&amp;, UErrorCode&amp;)</td><td class="">Internal</td><td>(missing)<br>
+<td class="file">enumset.h</td><td class="proto">void icu::EnumSet&lt; T, minValue, limitValue &gt;::clear()</td><td class=""><i>(untagged)</i></td><td>(missing)<br>
 <span class=""><span></span></span></td>
 </tr>
 <tr class="row0">
-<td class="file">compactdecimalformat.h</td><td class="proto">UnicodeString&amp; icu::CompactDecimalFormat::format(int32_t, UnicodeString&amp;, FieldPositionIterator*, UErrorCode&amp;)</td><td class="">Internal</td><td>(missing)<br>
+<td class="file">enumset.h</td><td class="proto">void icu::EnumSet&lt; T, minValue, limitValue &gt;::remove(T)</td><td class=""><i>(untagged)</i></td><td>(missing)<br>
 <span class=""><span></span></span></td>
 </tr>
 <tr class="row1">
-<td class="file">compactdecimalformat.h</td><td class="proto">UnicodeString&amp; icu::CompactDecimalFormat::format(int64_t, UnicodeString&amp;, FieldPosition&amp;)</td><td class="stabchange">Stable<br>ICU 51</td><td>(missing)<br>
+<td class="file">enumset.h</td><td class="proto">void icu::EnumSet&lt; T, minValue, limitValue &gt;::set(T, int32_t)</td><td class=""><i>(untagged)</i></td><td>(missing)<br>
 <span class=""><span></span></span></td>
 </tr>
 <tr class="row0">
-<td class="file">compactdecimalformat.h</td><td class="proto">UnicodeString&amp; icu::CompactDecimalFormat::format(int64_t, UnicodeString&amp;, FieldPosition&amp;, UErrorCode&amp;)</td><td class="">Internal</td><td>(missing)<br>
+<td class="file">numberformatter.h</td><td class="proto">Appendable&amp; icu::number::FormattedNumber::appendTo(Appendable&amp;, UErrorCode&amp;)</td><td class="">Draft<br>ICU 62</td><td>(missing)<br>
 <span class=""><span></span></span></td>
 </tr>
 <tr class="row1">
-<td class="file">compactdecimalformat.h</td><td class="proto">UnicodeString&amp; icu::CompactDecimalFormat::format(int64_t, UnicodeString&amp;, FieldPositionIterator*, UErrorCode&amp;)</td><td class="">Internal</td><td>(missing)<br>
+<td class="file">numberformatter.h</td><td class="proto">Derived icu::number::NumberFormatterSettings&lt; Derived &gt;::grouping(UGroupingStrategy) const&amp;</td><td class="">Draft<br>ICU 61</td><td>(missing)<br>
 <span class=""><span></span></span></td>
 </tr>
 <tr class="row0">
-<td class="file">decimfmt.h</td><td class="proto">FixedDecimal icu::DecimalFormat::getFixedDecimal(DigitList&amp;, UErrorCode&amp;)</td><td class="">Internal</td><td>(missing)<br>
+<td class="file">numberformatter.h</td><td class="proto">Derived icu::number::NumberFormatterSettings&lt; Derived &gt;::grouping(UGroupingStrategy)&amp;&amp;</td><td class="">Draft<br>ICU 62</td><td>(missing)<br>
 <span class=""><span></span></span></td>
 </tr>
 <tr class="row1">
-<td class="file">decimfmt.h</td><td class="proto">FixedDecimal icu::DecimalFormat::getFixedDecimal(const Formattable&amp;, UErrorCode&amp;)</td><td class="">Internal</td><td>(missing)<br>
+<td class="file">numberformatter.h</td><td class="proto">icu::number::impl::Grouper::Grouper(int16_t, int16_t, int16_t, UGroupingStrategy)</td><td class="">Internal</td><td>(missing)<br>
 <span class=""><span></span></span></td>
 </tr>
 <tr class="row0">
-<td class="file">decimfmt.h</td><td class="proto">FixedDecimal icu::DecimalFormat::getFixedDecimal(double, UErrorCode&amp;)</td><td class="">Internal</td><td>(missing)<br>
+<td class="file">numberformatter.h</td><td class="proto"><tt>static</tt> Grouper icu::number::impl::Grouper::forStrategy(UGroupingStrategy)</td><td class="">Internal</td><td>(missing)<br>
 <span class=""><span></span></span></td>
 </tr>
 <tr class="row1">
-<td class="file">decimfmt.h</td><td class="proto">UnicodeString&amp; icu::DecimalFormat::format(const DigitList&amp;, UnicodeString&amp;, FieldPosition&amp;, UErrorCode&amp;)</td><td class="">Internal</td><td>(missing)<br>
+<td class="file">plurfmt.h</td><td class="proto">UnicodeString icu::PluralFormat::PluralSelector::select(void*, double, UErrorCode&amp;) const</td><td class="">Internal</td><td>(missing)<br>
 <span class=""><span></span></span></td>
 </tr>
 <tr class="row0">
-<td class="file">decimfmt.h</td><td class="proto">UnicodeString&amp; icu::DecimalFormat::format(const DigitList&amp;, UnicodeString&amp;, FieldPositionIterator*, UErrorCode&amp;)</td><td class="">Internal</td><td>(missing)<br>
+<td class="file">plurfmt.h</td><td class="proto">UnicodeString icu::PluralFormat::PluralSelectorAdapter::select(void*, double, UErrorCode&amp;) const</td><td class="">Internal</td><td>(missing)<br>
 <span class=""><span></span></span></td>
 </tr>
 <tr class="row1">
-<td class="file">decimfmt.h</td><td class="proto">UnicodeString&amp; icu::DecimalFormat::format(const VisibleDigitsWithExponent&amp;, UnicodeString&amp;, FieldPosition&amp;, UErrorCode&amp;)</td><td class="">Internal</td><td>(missing)<br>
+<td class="file">plurfmt.h</td><td class="proto">UnicodeString&amp; icu::PluralFormat::format(const Formattable&amp;, double, UnicodeString&amp;, FieldPosition&amp;, UErrorCode&amp;) const</td><td class="">Internal</td><td>(missing)<br>
 <span class=""><span></span></span></td>
 </tr>
 <tr class="row0">
-<td class="file">decimfmt.h</td><td class="proto">UnicodeString&amp; icu::DecimalFormat::format(const VisibleDigitsWithExponent&amp;, UnicodeString&amp;, FieldPositionIterator*, UErrorCode&amp;)</td><td class="">Internal</td><td>(missing)<br>
+<td class="file">plurfmt.h</td><td class="proto">icu::PluralFormat::PluralFormat()</td><td class=""><i>(untagged)</i></td><td>(missing)<br>
 <span class=""><span></span></span></td>
 </tr>
 <tr class="row1">
-<td class="file">decimfmt.h</td><td class="proto">VisibleDigitsWithExponent&amp; icu::DecimalFormat::initVisibleDigitsWithExponent(DigitList&amp;, VisibleDigitsWithExponent&amp;, UErrorCode&amp;)</td><td class="">Internal</td><td>(missing)<br>
+<td class="file">plurfmt.h</td><td class="proto">icu::PluralFormat::PluralSelector::~PluralSelector()</td><td class=""><i>(untagged)</i></td><td>(missing)<br>
 <span class=""><span></span></span></td>
 </tr>
 <tr class="row0">
-<td class="file">decimfmt.h</td><td class="proto">VisibleDigitsWithExponent&amp; icu::DecimalFormat::initVisibleDigitsWithExponent(const Formattable&amp;, VisibleDigitsWithExponent&amp;, UErrorCode&amp;)</td><td class="">Internal</td><td>(missing)<br>
+<td class="file">plurfmt.h</td><td class="proto">icu::PluralFormat::PluralSelectorAdapter::PluralSelectorAdapter()</td><td class=""><i>(untagged)</i></td><td>(missing)<br>
 <span class=""><span></span></span></td>
 </tr>
 <tr class="row1">
-<td class="file">decimfmt.h</td><td class="proto">VisibleDigitsWithExponent&amp; icu::DecimalFormat::initVisibleDigitsWithExponent(double, VisibleDigitsWithExponent&amp;, UErrorCode&amp;)</td><td class="">Internal</td><td>(missing)<br>
+<td class="file">plurfmt.h</td><td class="proto">icu::PluralFormat::PluralSelectorAdapter::~PluralSelectorAdapter()</td><td class=""><i>(untagged)</i></td><td>(missing)<br>
 <span class=""><span></span></span></td>
 </tr>
 <tr class="row0">
-<td class="file">decimfmt.h</td><td class="proto"><tt>static</tt> const char icu::DecimalFormat::fgNumberPatterns[]</td><td class="">Deprecated<br>ICU 3.4</td><td>(missing)<br>
+<td class="file">plurfmt.h</td><td class="proto"><tt>static</tt> int32_t icu::PluralFormat::findSubMessage(const MessagePattern&amp;, int32_t, const PluralSelector&amp;, void*, double, UErrorCode&amp;)</td><td class="">Internal</td><td>(missing)<br>
 <span class=""><span></span></span></td>
 </tr>
 <tr class="row1">
-<td class="file">decimfmt.h</td><td class="proto">void icu::DecimalFormat::setContext(UDisplayContext, UErrorCode&amp;)</td><td class="stabchange">Stable<br>ICU 53</td><td>(missing)<br>
-<span class=""><span>no longer overrides<br>method in parent<br>NumberFormat</span></span></td>
+<td class="file">plurfmt.h</td><td class="proto">void icu::PluralFormat::PluralSelectorAdapter::reset()</td><td class=""><i>(untagged)</i></td><td>(missing)<br>
+<span class=""><span></span></span></td>
 </tr>
 <tr class="row0">
-<td class="file">fmtable.h</td><td class="proto"><tt>#define</tt> UNUM_INTERNAL_STACKARRAY_SIZE</td><td class="">Internal</td><td>(missing)<br>
+<td class="file">plurfmt.h</td><td class="proto">void icu::PluralFormat::copyObjects(const PluralFormat&amp;)</td><td class=""><i>(untagged)</i></td><td>(missing)<br>
 <span class=""><span></span></span></td>
 </tr>
 <tr class="row1">
-<td class="file">fmtable.h</td><td class="proto">DigitList* icu::Formattable::getDigitList()</td><td class="">Internal</td><td>(missing)<br>
+<td class="file">plurfmt.h</td><td class="proto">void icu::PluralFormat::init(const PluralRules*, UPluralType, UErrorCode&amp;)</td><td class=""><i>(untagged)</i></td><td>(missing)<br>
 <span class=""><span></span></span></td>
 </tr>
 <tr class="row0">
-<td class="file">fmtable.h</td><td class="proto">DigitList* icu::Formattable::getInternalDigitList()</td><td class="">Internal</td><td>(missing)<br>
+<td class="file">plurfmt.h</td><td class="proto">void icu::PluralFormat::parseType(const UnicodeString&amp;, const NFRule*, Formattable&amp;, FieldPosition&amp;) const</td><td class=""><i>(untagged)</i></td><td>(missing)<br>
 <span class=""><span></span></span></td>
 </tr>
 <tr class="row1">
-<td class="file">fmtable.h</td><td class="proto">void icu::Formattable::adoptDigitList(DigitList*)</td><td class="">Internal</td><td>(missing)<br>
+<td class="file">stringtriebuilder.h</td><td class="proto"><tt>static</tt> UBool icu::StringTrieBuilder::equalNodes(const void*, const void*)</td><td class="">Internal</td><td>(missing)<br>
 <span class=""><span></span></span></td>
 </tr>
 <tr class="row0">
-<td class="file">numberformatter.h</td><td class="proto">Derived icu::number::NumberFormatterSettings&lt; Derived &gt;::padding(const impl::Padder&amp;) const</td><td class="">Internal<br>ICU 60</td><td>(missing)<br>
+<td class="file">stringtriebuilder.h</td><td class="proto"><tt>static</tt> UBool icu::StringTrieBuilder::hashNode(const void*)</td><td class="">Internal</td><td>(missing)<br>
 <span class=""><span></span></span></td>
 </tr>
 <tr class="row1">
-<td class="file">numberformatter.h</td><td class="proto">Derived icu::number::NumberFormatterSettings&lt; Derived &gt;::rounding(const Precision&amp;) const</td><td class="">Draft<br>ICU 60</td><td>(missing)<br>
+<td class="file">uconfig.h</td><td class="proto"><tt>#define</tt> UCONFIG_FORMAT_FASTPATHS_49</td><td class="">Internal</td><td>(missing)<br>
 <span class=""><span></span></span></td>
 </tr>
 <tr class="row0">
-<td class="file">numberformatter.h</td><td class="proto">Derived icu::number::NumberFormatterSettings&lt; Derived &gt;::threshold(int32_t) const</td><td class="">Internal<br>ICU 60</td><td>(missing)<br>
+<td class="file">unumberformatter.h</td><td class="proto"><tt>enum</tt> UGroupingStrategy::UNUM_GROUPING_AUTO</td><td class="">Draft<br>ICU 61</td><td>(missing)<br>
 <span class=""><span></span></span></td>
 </tr>
 <tr class="row1">
-<td class="file">numberformatter.h</td><td class="proto">icu::number::impl::Grouper::Grouper(int16_t, int16_t, int16_t)</td><td class="">Internal</td><td>(missing)<br>
+<td class="file">unumberformatter.h</td><td class="proto"><tt>enum</tt> UGroupingStrategy::UNUM_GROUPING_COUNT</td><td class="">Internal<br>ICU 62</td><td>(missing)<br>
 <span class=""><span></span></span></td>
 </tr>
 <tr class="row0">
-<td class="file">numfmt.h</td><td class="proto">UnicodeString&amp; icu::NumberFormat::format(const DigitList&amp;, UnicodeString&amp;, FieldPosition&amp;, UErrorCode&amp;)</td><td class="">Internal</td><td>(missing)<br>
+<td class="file">unumberformatter.h</td><td class="proto"><tt>enum</tt> UGroupingStrategy::UNUM_GROUPING_MIN2</td><td class="">Draft<br>ICU 61</td><td>(missing)<br>
 <span class=""><span></span></span></td>
 </tr>
 <tr class="row1">
-<td class="file">numfmt.h</td><td class="proto">UnicodeString&amp; icu::NumberFormat::format(const DigitList&amp;, UnicodeString&amp;, FieldPositionIterator*, UErrorCode&amp;)</td><td class="">Internal</td><td>(missing)<br>
+<td class="file">unumberformatter.h</td><td class="proto"><tt>enum</tt> UGroupingStrategy::UNUM_GROUPING_OFF</td><td class="">Draft<br>ICU 61</td><td>(missing)<br>
 <span class=""><span></span></span></td>
 </tr>
 <tr class="row0">
-<td class="file">platform.h</td><td class="proto"><tt>#define</tt> UPRV_INCOMPLETE_CPP11_SUPPORT</td><td class="">Internal</td><td>(missing)<br>
+<td class="file">unumberformatter.h</td><td class="proto"><tt>enum</tt> UGroupingStrategy::UNUM_GROUPING_ON_ALIGNED</td><td class="">Draft<br>ICU 61</td><td>(missing)<br>
 <span class=""><span></span></span></td>
 </tr>
 <tr class="row1">
-<td class="file">plurrule.h</td><td class="proto">UnicodeString icu::PluralRules::select(const Formattable&amp;, const NumberFormat&amp;, UErrorCode&amp;)</td><td class="">Internal<br>ICU 59</td><td>(missing)<br>
+<td class="file">unumberformatter.h</td><td class="proto"><tt>enum</tt> UGroupingStrategy::UNUM_GROUPING_THOUSANDS</td><td class="">Draft<br>ICU 61</td><td>(missing)<br>
 <span class=""><span></span></span></td>
 </tr>
 <tr class="row0">
-<td class="file">plurrule.h</td><td class="proto">UnicodeString icu::PluralRules::select(const VisibleDigitsWithExponent&amp;)</td><td class="">Internal</td><td>(missing)<br>
+<td class="file">uspoof.h</td><td class="proto">U_DEFINE_LOCAL_OPEN_POINTER(LocalUSpoofCheckResultPointer,,)</td><td class=""><i>(untagged)</i></td><td>(missing)<br>
 <span class=""><span></span></span></td>
 </tr>
+
+-->
+
 </table>
 <P></P>
 <a href="#_top">(jump back to top)</a>
 <hr>
 <a name="deprecated"></a>
-<h2>Deprecated or Obsoleted in ICU 62</h2>
+<h2>Deprecated or Obsoleted in ICU 63</h2>
 <table BORDER="1" class="genTable">
 <THEAD>
 <tr>
-<th>File</th><th>API</th><th>ICU 61</th><th>ICU 62</th>
+<th>File</th><th>API</th><th>ICU 62</th><th>ICU 63</th>
 </tr>
 </THEAD>
-<tr class="row1">
-<td class="file">numberformatter.h</td><td class="proto">Appendable&amp; icu::number::FormattedNumber::appendTo(Appendable&amp;)</td><td class="">Draft<br>ICU 60</td><td>Deprecated<br>
-<span class="verchange"><span>ICU 62</span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">numberformatter.h</td><td class="proto">Derived icu::number::NumberFormatterSettings&lt; Derived &gt;::rounding(const Rounder&amp;) const&amp;</td><td class="">(missing)</td><td>Deprecated<br>
-<span class=""><span>ICU 62</span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">numberformatter.h</td><td class="proto">Precision icu::number::Precision::withMode(UNumberFormatRoundingMode)</td><td class="">Draft<br>ICU 60</td><td>Deprecated<br>
-<span class="verchange"><span>ICU 62</span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">numberformatter.h</td><td class="proto">UnicodeString icu::number::FormattedNumber::toString()</td><td class="">Draft<br>ICU 60</td><td>Deprecated<br>
-<span class="verchange"><span>ICU 62</span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">numberformatter.h</td><td class="proto"><tt>static</tt> SignificantDigitsPrecision icu::number::Precision::fixedDigits(int32_t)</td><td class="">Draft<br>ICU 60</td><td>Deprecated<br>
-<span class="verchange"><span>ICU 62</span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">numberformatter.h</td><td class="proto"><tt>static</tt> SignificantDigitsPrecision icu::number::Precision::maxDigits(int32_t)</td><td class="">Draft<br>ICU 60</td><td>Deprecated<br>
-<span class="verchange"><span>ICU 62</span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">numberformatter.h</td><td class="proto"><tt>static</tt> SignificantDigitsPrecision icu::number::Precision::minDigits(int32_t)</td><td class="">Draft<br>ICU 60</td><td>Deprecated<br>
-<span class="verchange"><span>ICU 62</span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">numberformatter.h</td><td class="proto"><tt>static</tt> SignificantDigitsPrecision icu::number::Precision::minMaxDigits(int32_t, int32_t)</td><td class="">Draft<br>ICU 60</td><td>Deprecated<br>
-<span class="verchange"><span>ICU 62</span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">numberformatter.h</td><td class="proto">void icu::number::FormattedNumber::populateFieldPosition(FieldPosition&amp;, UErrorCode&amp;)</td><td class="">Draft<br>ICU 60</td><td>Deprecated<br>
-<span class="verchange"><span>ICU 62</span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">numberformatter.h</td><td class="proto">void icu::number::FormattedNumber::populateFieldPositionIterator(FieldPositionIterator&amp;, UErrorCode&amp;)</td><td class="">Draft<br>ICU 60</td><td>Deprecated<br>
-<span class="verchange"><span>ICU 62</span></span></td>
-</tr>
 </table>
 <P></P>
 <a href="#_top">(jump back to top)</a>
 <hr>
 <a name="changed"></a>
-<h2>Changed in  ICU 62 (old, new)</h2>
+<h2>Changed in  ICU 63 (old, new)</h2>
 <table BORDER="1" class="genTable">
 <THEAD>
 <tr>
-<th>File</th><th>API</th><th>ICU 61</th><th>ICU 62</th>
+<th>File</th><th>API</th><th>ICU 62</th><th>ICU 63</th>
 </tr>
 </THEAD>
 <tr class="row1">
-<td class="file">numberformatter.h</td><td class="proto">Appendable&amp; icu::number::FormattedNumber::appendTo(Appendable&amp;)</td><td class="">Draft<br>ICU 60</td><td>Deprecated<br>
-<span class="verchange"><span>ICU 62</span></span></td>
+<td class="file">bytestream.h</td><td class="proto">icu::StringByteSink&lt; StringClass &gt;::StringByteSink(StringClass*, int32_t)</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 60</td>
 </tr>
 <tr class="row0">
-<td class="file">numberformatter.h</td><td class="proto">Precision icu::number::Precision::withMode(UNumberFormatRoundingMode)</td><td class="">Draft<br>ICU 60</td><td>Deprecated<br>
-<span class="verchange"><span>ICU 62</span></span></td>
+<td class="file">casemap.h</td><td class="proto"><tt>static</tt> void icu::CaseMap::utf8Fold(uint32_t, StringPiece, ByteSink&amp;, Edits*, UErrorCode&amp;)</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 60</td>
 </tr>
 <tr class="row1">
-<td class="file">numberformatter.h</td><td class="proto">UnicodeString icu::number::FormattedNumber::toString()</td><td class="">Draft<br>ICU 60</td><td>Deprecated<br>
-<span class="verchange"><span>ICU 62</span></span></td>
+<td class="file">casemap.h</td><td class="proto"><tt>static</tt> void icu::CaseMap::utf8ToLower(const char*, uint32_t, StringPiece, ByteSink&amp;, Edits*, UErrorCode&amp;)</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 60</td>
 </tr>
 <tr class="row0">
-<td class="file">numberformatter.h</td><td class="proto"><tt>static</tt> SignificantDigitsPrecision icu::number::Precision::fixedDigits(int32_t)</td><td class="">Draft<br>ICU 60</td><td>Deprecated<br>
-<span class="verchange"><span>ICU 62</span></span></td>
+<td class="file">casemap.h</td><td class="proto"><tt>static</tt> void icu::CaseMap::utf8ToTitle(const char*, uint32_t, BreakIterator*, StringPiece, ByteSink&amp;, Edits*, UErrorCode&amp;)</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 60</td>
 </tr>
 <tr class="row1">
-<td class="file">numberformatter.h</td><td class="proto"><tt>static</tt> SignificantDigitsPrecision icu::number::Precision::maxDigits(int32_t)</td><td class="">Draft<br>ICU 60</td><td>Deprecated<br>
-<span class="verchange"><span>ICU 62</span></span></td>
+<td class="file">casemap.h</td><td class="proto"><tt>static</tt> void icu::CaseMap::utf8ToUpper(const char*, uint32_t, StringPiece, ByteSink&amp;, Edits*, UErrorCode&amp;)</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 60</td>
 </tr>
 <tr class="row0">
-<td class="file">numberformatter.h</td><td class="proto"><tt>static</tt> SignificantDigitsPrecision icu::number::Precision::minDigits(int32_t)</td><td class="">Draft<br>ICU 60</td><td>Deprecated<br>
-<span class="verchange"><span>ICU 62</span></span></td>
+<td class="file">currunit.h</td><td class="proto">icu::CurrencyUnit::CurrencyUnit()</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 60</td>
 </tr>
 <tr class="row1">
-<td class="file">numberformatter.h</td><td class="proto"><tt>static</tt> SignificantDigitsPrecision icu::number::Precision::minMaxDigits(int32_t, int32_t)</td><td class="">Draft<br>ICU 60</td><td>Deprecated<br>
-<span class="verchange"><span>ICU 62</span></span></td>
+<td class="file">currunit.h</td><td class="proto">icu::CurrencyUnit::CurrencyUnit(const MeasureUnit&amp;, UErrorCode&amp;)</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 60</td>
 </tr>
 <tr class="row0">
-<td class="file">numberformatter.h</td><td class="proto">void icu::number::FormattedNumber::populateFieldPosition(FieldPosition&amp;, UErrorCode&amp;)</td><td class="">Draft<br>ICU 60</td><td>Deprecated<br>
-<span class="verchange"><span>ICU 62</span></span></td>
+<td class="file">dcfmtsym.h</td><td class="proto">icu::DecimalFormatSymbols::DecimalFormatSymbols(const Locale&amp;, const NumberingSystem&amp;, UErrorCode&amp;)</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 60</td>
 </tr>
 <tr class="row1">
-<td class="file">numberformatter.h</td><td class="proto">void icu::number::FormattedNumber::populateFieldPositionIterator(FieldPositionIterator&amp;, UErrorCode&amp;)</td><td class="">Draft<br>ICU 60</td><td>Deprecated<br>
-<span class="verchange"><span>ICU 62</span></span></td>
+<td class="file">edits.h</td><td class="proto">Edits&amp; icu::Edits::mergeAndAppend(const Edits&amp;, const Edits&amp;, UErrorCode&amp;)</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 60</td>
 </tr>
-</table>
-<P></P>
-<a href="#_top">(jump back to top)</a>
-<hr>
-<a name="promoted"></a>
-<h2>Promoted to stable in ICU 62</h2>
-<table BORDER="1" class="genTable">
-<THEAD>
-<tr>
-<th>File</th><th>API</th><th>ICU 61</th><th>ICU 62</th>
+<tr class="row0">
+<td class="file">edits.h</td><td class="proto">Edits&amp; icu::Edits::operator=(Edits&amp;&amp;)</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 60</td>
+</tr>
+<tr class="row1">
+<td class="file">edits.h</td><td class="proto">Edits&amp; icu::Edits::operator=(const Edits&amp;)</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 60</td>
+</tr>
+<tr class="row0">
+<td class="file">edits.h</td><td class="proto">icu::Edits::Edits(Edits&amp;&amp;)</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 60</td>
 </tr>
-</THEAD>
 <tr class="row1">
-<td class="file">decimfmt.h</td><td class="proto">void icu::DecimalFormat::setLenient(UBool)</td><td class="">(missing)</td><td>Stable<br>
-<span class=""><span>ICU 4.8</span></span></td>
+<td class="file">edits.h</td><td class="proto">icu::Edits::Edits(const Edits&amp;)</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 60</td>
 </tr>
 <tr class="row0">
-<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UBlockCode::UBLOCK_CHESS_SYMBOLS</td><td class="">(missing)</td><td>Stable<br>
-<span class=""><span>ICU 62</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
+<td class="file">edits.h</td><td class="proto">int32_t icu::Edits::numberOfChanges() const</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 60</td>
 </tr>
 <tr class="row1">
-<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UBlockCode::UBLOCK_DOGRA</td><td class="">(missing)</td><td>Stable<br>
-<span class=""><span>ICU 62</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
+<td class="file">filteredbrk.h</td><td class="proto">BreakIterator* icu::FilteredBreakIteratorBuilder::wrapIteratorWithFilter(BreakIterator*, UErrorCode&amp;)</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 60</td>
 </tr>
 <tr class="row0">
-<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UBlockCode::UBLOCK_GEORGIAN_EXTENDED</td><td class="">(missing)</td><td>Stable<br>
-<span class=""><span>ICU 62</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
+<td class="file">filteredbrk.h</td><td class="proto"><tt>static</tt> FilteredBreakIteratorBuilder* icu::FilteredBreakIteratorBuilder::createEmptyInstance(UErrorCode&amp;)</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 60</td>
 </tr>
 <tr class="row1">
-<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UBlockCode::UBLOCK_GUNJALA_GONDI</td><td class="">(missing)</td><td>Stable<br>
-<span class=""><span>ICU 62</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
+<td class="file">normalizer2.h</td><td class="proto">UBool icu::FilteredNormalizer2::isNormalizedUTF8(StringPiece, UErrorCode&amp;) const</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 60</td>
 </tr>
 <tr class="row0">
-<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UBlockCode::UBLOCK_HANIFI_ROHINGYA</td><td class="">(missing)</td><td>Stable<br>
-<span class=""><span>ICU 62</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
+<td class="file">normalizer2.h</td><td class="proto">UBool icu::Normalizer2::isNormalizedUTF8(StringPiece, UErrorCode&amp;) const</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 60</td>
 </tr>
 <tr class="row1">
-<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UBlockCode::UBLOCK_INDIC_SIYAQ_NUMBERS</td><td class="">(missing)</td><td>Stable<br>
-<span class=""><span>ICU 62</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
+<td class="file">normalizer2.h</td><td class="proto">void icu::FilteredNormalizer2::normalizeUTF8(uint32_t, StringPiece, ByteSink&amp;, Edits*, UErrorCode&amp;) const</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 60</td>
 </tr>
 <tr class="row0">
-<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UBlockCode::UBLOCK_MAKASAR</td><td class="">(missing)</td><td>Stable<br>
-<span class=""><span>ICU 62</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
+<td class="file">normalizer2.h</td><td class="proto">void icu::Normalizer2::normalizeUTF8(uint32_t, StringPiece, ByteSink&amp;, Edits*, UErrorCode&amp;) const</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 60</td>
 </tr>
+
+
+<!-- start of edited numberformatter stuff -->
+
 <tr class="row1">
-<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UBlockCode::UBLOCK_MAYAN_NUMERALS</td><td class="">(missing)</td><td>Stable<br>
-<span class=""><span>ICU 62</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
+<td class="file">numberformatter.h</td><td class="proto">Appendable&amp; icu::number::FormattedNumber::appendTo(Appendable&amp;, UErrorCode&amp;) <b><i>const</i></b></td>
+<td colspan="2" align="center">Draft (const)<br> ICU 62 </td>
 </tr>
+
 <tr class="row0">
-<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UBlockCode::UBLOCK_MEDEFAIDRIN</td><td class="">(missing)</td><td>Stable<br>
-<span class=""><span>ICU 62</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
+<td class="file">numberformatter.h</td><td class="proto">Derived icu::number::NumberFormatterSettings&lt; Derived &gt;::grouping(U<b><i>Number</i></b>GroupingStrategy) const&amp;</td>
+<td colspan="2" align="center">Draft (rename)<br>ICU 61 </td>
+</tr>
+
+<tr class="row1">
+<td class="file">numberformatter.h</td><td class="proto">Derived icu::number::NumberFormatterSettings&lt; Derived &gt;::grouping(U<b><i>Number</i></b>GroupingStrategy)&amp;&amp;</td>
+<td colspan="2" align="center">Draft (rename)<br>ICU 62 </td>
 </tr>
+
+<tr class="row0"> <td class="proto" colspan="4">&nbsp; </td> </tr>
+<!--  End of edited numberformatter stufff -->
+
 <tr class="row1">
-<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UBlockCode::UBLOCK_OLD_SOGDIAN</td><td class="">(missing)</td><td>Stable<br>
-<span class=""><span>ICU 62</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
+<td class="file">numfmt.h</td><td class="proto">ERoundingMode icu::NumberFormat::getRoundingMode() const</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 60</td>
 </tr>
 <tr class="row0">
-<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UBlockCode::UBLOCK_SOGDIAN</td><td class="">(missing)</td><td>Stable<br>
-<span class=""><span>ICU 62</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
+<td class="file">numfmt.h</td><td class="proto">void icu::NumberFormat::setRoundingMode(ERoundingMode)</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 60</td>
 </tr>
 <tr class="row1">
-<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UJoiningGroup::U_JG_HANIFI_ROHINGYA_KINNA_YA</td><td class="">(missing)</td><td>Stable<br>
-<span class=""><span>ICU 62</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
+<td class="file">rbnf.h</td><td class="proto">ERoundingMode icu::RuleBasedNumberFormat::getRoundingMode() const</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 60</td>
 </tr>
 <tr class="row0">
-<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UJoiningGroup::U_JG_HANIFI_ROHINGYA_PA</td><td class="">(missing)</td><td>Stable<br>
-<span class=""><span>ICU 62</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
+<td class="file">rbnf.h</td><td class="proto">void icu::RuleBasedNumberFormat::setRoundingMode(ERoundingMode)</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 60</td>
 </tr>
 <tr class="row1">
-<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UProperty::UCHAR_EXTENDED_PICTOGRAPHIC</td><td class="">(missing)</td><td>Stable<br>
-<span class=""><span>ICU 62</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
+<td class="file">stringoptions.h</td><td class="proto"><tt>#define</tt> U_EDITS_NO_RESET</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 60</td>
 </tr>
 <tr class="row0">
-<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UWordBreakValues::U_WB_WSEGSPACE</td><td class="">(missing)</td><td>Stable<br>
-<span class=""><span>ICU 62</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
+<td class="file">stringoptions.h</td><td class="proto"><tt>#define</tt> U_OMIT_UNCHANGED_TEXT</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 60</td>
 </tr>
 <tr class="row1">
-<td class="file">uscript.h</td><td class="proto"><tt>enum</tt> UScriptCode::USCRIPT_DOGRA</td><td class="">(missing)</td><td>Stable<br>
-<span class=""><span>ICU 62</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
+<td class="file">stringoptions.h</td><td class="proto"><tt>#define</tt> U_TITLECASE_ADJUST_TO_CASED</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 60</td>
 </tr>
 <tr class="row0">
-<td class="file">uscript.h</td><td class="proto"><tt>enum</tt> UScriptCode::USCRIPT_GUNJALA_GONDI</td><td class="">(missing)</td><td>Stable<br>
-<span class=""><span>ICU 62</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
+<td class="file">stringoptions.h</td><td class="proto"><tt>#define</tt> U_TITLECASE_SENTENCES</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 60</td>
 </tr>
 <tr class="row1">
-<td class="file">uscript.h</td><td class="proto"><tt>enum</tt> UScriptCode::USCRIPT_HANIFI_ROHINGYA</td><td class="">(missing)</td><td>Stable<br>
-<span class=""><span>ICU 62</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
+<td class="file">stringoptions.h</td><td class="proto"><tt>#define</tt> U_TITLECASE_WHOLE_STRING</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 60</td>
 </tr>
+
+<!-- remove usearch.h line. Tool error.
+
 <tr class="row0">
-<td class="file">uscript.h</td><td class="proto"><tt>enum</tt> UScriptCode::USCRIPT_MAKASAR</td><td class="">(missing)</td><td>Stable<br>
-<span class=""><span>ICU 62</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
+<td class="file">usearch.h</td><td class="proto"><tt>enum</tt> USearchAttributeValue::USEARCH_ANY_BASE_WEIGHT_IS_WILDCARD</td><td class="stabchange">Stable<br>ICU 2.4</td><td>Stable<br>
+<span class="verchange"><span>ICU 4.4</span>
+<br>
+<b class="bigwarn" title="A stable API changed version.">(changed)</b></span></td>
 </tr>
+-->
+<tr class="row0"> <td class="proto" colspan="4">&nbsp; </td> </tr>
+
 <tr class="row1">
-<td class="file">uscript.h</td><td class="proto"><tt>enum</tt> UScriptCode::USCRIPT_MEDEFAIDRIN</td><td class="">(missing)</td><td>Stable<br>
-<span class=""><span>ICU 62</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
+<td class="file">utf16.h</td><td class="proto"><tt>#define</tt> U16_GET_OR_FFFD</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 60</td>
 </tr>
 <tr class="row0">
-<td class="file">uscript.h</td><td class="proto"><tt>enum</tt> UScriptCode::USCRIPT_OLD_SOGDIAN</td><td class="">(missing)</td><td>Stable<br>
-<span class=""><span>ICU 62</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
+<td class="file">utf16.h</td><td class="proto"><tt>#define</tt> U16_NEXT_OR_FFFD</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 60</td>
 </tr>
 <tr class="row1">
-<td class="file">uscript.h</td><td class="proto"><tt>enum</tt> UScriptCode::USCRIPT_SOGDIAN</td><td class="">(missing)</td><td>Stable<br>
-<span class=""><span>ICU 62</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
+<td class="file">utf16.h</td><td class="proto"><tt>#define</tt> U16_PREV_OR_FFFD</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 60</td>
 </tr>
 </table>
 <P></P>
 <a href="#_top">(jump back to top)</a>
 <hr>
-<a name="added"></a>
-<h2>Added in ICU 62</h2>
+<a name="promoted"></a>
+<h2>Promoted to stable in ICU 63</h2>
 <table BORDER="1" class="genTable">
 <THEAD>
 <tr>
-<th>File</th><th>API</th><th>ICU 61</th><th>ICU 62</th>
+<th>File</th><th>API</th><th>ICU 62</th><th>ICU 63</th>
 </tr>
 </THEAD>
 <tr class="row1">
-<td class="file">decimfmt.h</td><td class="proto">UBool icu::DecimalFormat::isFormatFailIfMoreThanMaxDigits()</td><td class="">(missing)</td><td>Internal<br>
-<span class=""><span></span></span></td>
+<td class="file">bytestream.h</td><td class="proto">icu::StringByteSink&lt; StringClass &gt;::StringByteSink(StringClass*, int32_t)</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 60</td>
 </tr>
 <tr class="row0">
-<td class="file">decimfmt.h</td><td class="proto">UBool icu::DecimalFormat::isParseCaseSensitive()</td><td class="">(missing)</td><td>Internal<br>
-<span class=""><span></span></span></td>
+<td class="file">casemap.h</td><td class="proto"><tt>static</tt> void icu::CaseMap::utf8Fold(uint32_t, StringPiece, ByteSink&amp;, Edits*, UErrorCode&amp;)</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 60</td>
 </tr>
 <tr class="row1">
-<td class="file">decimfmt.h</td><td class="proto">UBool icu::DecimalFormat::isParseNoExponent()</td><td class="">(missing)</td><td>Internal<br>
-<span class=""><span></span></span></td>
+<td class="file">casemap.h</td><td class="proto"><tt>static</tt> void icu::CaseMap::utf8ToLower(const char*, uint32_t, StringPiece, ByteSink&amp;, Edits*, UErrorCode&amp;)</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 60</td>
 </tr>
 <tr class="row0">
-<td class="file">decimfmt.h</td><td class="proto">UBool icu::DecimalFormat::isSignAlwaysShown()</td><td class="">(missing)</td><td>Internal<br>
-<span class=""><span></span></span></td>
+<td class="file">casemap.h</td><td class="proto"><tt>static</tt> void icu::CaseMap::utf8ToTitle(const char*, uint32_t, BreakIterator*, StringPiece, ByteSink&amp;, Edits*, UErrorCode&amp;)</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 60</td>
 </tr>
 <tr class="row1">
-<td class="file">decimfmt.h</td><td class="proto">UnicodeString&amp; icu::DecimalFormat::format(const number::impl::DecimalQuantity&amp;, UnicodeString&amp;, FieldPosition&amp;, UErrorCode&amp;)</td><td class="">(missing)</td><td>Internal<br>
-<span class=""><span></span></span></td>
+<td class="file">casemap.h</td><td class="proto"><tt>static</tt> void icu::CaseMap::utf8ToUpper(const char*, uint32_t, StringPiece, ByteSink&amp;, Edits*, UErrorCode&amp;)</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 60</td>
 </tr>
 <tr class="row0">
-<td class="file">decimfmt.h</td><td class="proto">UnicodeString&amp; icu::DecimalFormat::format(const number::impl::DecimalQuantity&amp;, UnicodeString&amp;, FieldPositionIterator*, UErrorCode&amp;)</td><td class="">(missing)</td><td>Internal<br>
-<span class=""><span></span></span></td>
+<td class="file">currunit.h</td><td class="proto">icu::CurrencyUnit::CurrencyUnit()</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 60</td>
 </tr>
 <tr class="row1">
-<td class="file">decimfmt.h</td><td class="proto">const number::LocalizedNumberFormatter&amp; icu::DecimalFormat::toNumberFormatter()</td><td class="">(missing)</td><td>Draft<br>
-<span class=""><span>ICU 62</span></span></td>
+<td class="file">currunit.h</td><td class="proto">icu::CurrencyUnit::CurrencyUnit(const MeasureUnit&amp;, UErrorCode&amp;)</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 60</td>
 </tr>
 <tr class="row0">
-<td class="file">decimfmt.h</td><td class="proto">int32_t icu::DecimalFormat::getMultiplierScale()</td><td class="">(missing)</td><td>Draft<br>
-<span class=""><span>ICU 62</span></span></td>
+<td class="file">dcfmtsym.h</td><td class="proto">icu::DecimalFormatSymbols::DecimalFormatSymbols(const Locale&amp;, const NumberingSystem&amp;, UErrorCode&amp;)</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 60</td>
 </tr>
 <tr class="row1">
-<td class="file">decimfmt.h</td><td class="proto">void icu::DecimalFormat::formatToDecimalQuantity(const Formattable&amp;, number::impl::DecimalQuantity&amp;, UErrorCode&amp;)</td><td class="">(missing)</td><td>Internal<br>
-<span class=""><span></span></span></td>
+<td class="file">edits.h</td><td class="proto">Edits&amp; icu::Edits::mergeAndAppend(const Edits&amp;, const Edits&amp;, UErrorCode&amp;)</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 60</td>
 </tr>
 <tr class="row0">
-<td class="file">decimfmt.h</td><td class="proto">void icu::DecimalFormat::formatToDecimalQuantity(double, number::impl::DecimalQuantity&amp;, UErrorCode&amp;)</td><td class="">(missing)</td><td>Internal<br>
-<span class=""><span></span></span></td>
+<td class="file">edits.h</td><td class="proto">Edits&amp; icu::Edits::operator=(Edits&amp;&amp;)</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 60</td>
 </tr>
 <tr class="row1">
-<td class="file">decimfmt.h</td><td class="proto">void icu::DecimalFormat::setFormatFailIfMoreThanMaxDigits(UBool)</td><td class="">(missing)</td><td>Internal<br>
-<span class=""><span></span></span></td>
+<td class="file">edits.h</td><td class="proto">Edits&amp; icu::Edits::operator=(const Edits&amp;)</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 60</td>
 </tr>
 <tr class="row0">
-<td class="file">decimfmt.h</td><td class="proto">void icu::DecimalFormat::setLenient(UBool)</td><td class="">(missing)</td><td>Stable<br>
-<span class=""><span>ICU 4.8</span></span></td>
+<td class="file">edits.h</td><td class="proto">icu::Edits::Edits(Edits&amp;&amp;)</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 60</td>
 </tr>
 <tr class="row1">
-<td class="file">decimfmt.h</td><td class="proto">void icu::DecimalFormat::setMultiplierScale(int32_t)</td><td class="">(missing)</td><td>Draft<br>
-<span class=""><span>ICU 62</span></span></td>
+<td class="file">edits.h</td><td class="proto">icu::Edits::Edits(const Edits&amp;)</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 60</td>
 </tr>
 <tr class="row0">
-<td class="file">decimfmt.h</td><td class="proto">void icu::DecimalFormat::setParseCaseSensitive(UBool)</td><td class="">(missing)</td><td>Internal<br>
-<span class=""><span></span></span></td>
+<td class="file">edits.h</td><td class="proto">int32_t icu::Edits::numberOfChanges() const</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 60</td>
 </tr>
 <tr class="row1">
-<td class="file">decimfmt.h</td><td class="proto">void icu::DecimalFormat::setParseNoExponent(UBool)</td><td class="">(missing)</td><td>Internal<br>
-<span class=""><span></span></span></td>
+<td class="file">filteredbrk.h</td><td class="proto">BreakIterator* icu::FilteredBreakIteratorBuilder::wrapIteratorWithFilter(BreakIterator*, UErrorCode&amp;)</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 60</td>
 </tr>
 <tr class="row0">
-<td class="file">decimfmt.h</td><td class="proto">void icu::DecimalFormat::setSignAlwaysShown(UBool)</td><td class="">(missing)</td><td>Internal<br>
-<span class=""><span></span></span></td>
+<td class="file">filteredbrk.h</td><td class="proto"><tt>static</tt> FilteredBreakIteratorBuilder* icu::FilteredBreakIteratorBuilder::createEmptyInstance(UErrorCode&amp;)</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 60</td>
 </tr>
 <tr class="row1">
-<td class="file">fmtable.h</td><td class="proto">number::impl::DecimalQuantity* icu::Formattable::getDecimalQuantity()</td><td class="">(missing)</td><td>Internal<br>
-<span class=""><span></span></span></td>
+<td class="file">normalizer2.h</td><td class="proto">UBool icu::FilteredNormalizer2::isNormalizedUTF8(StringPiece, UErrorCode&amp;) const</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 60</td>
 </tr>
 <tr class="row0">
-<td class="file">fmtable.h</td><td class="proto">void icu::Formattable::adoptDecimalQuantity(number::impl::DecimalQuantity*)</td><td class="">(missing)</td><td>Internal<br>
-<span class=""><span></span></span></td>
+<td class="file">normalizer2.h</td><td class="proto">UBool icu::Normalizer2::isNormalizedUTF8(StringPiece, UErrorCode&amp;) const</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 60</td>
 </tr>
 <tr class="row1">
-<td class="file">fmtable.h</td><td class="proto">void icu::Formattable::populateDecimalQuantity(number::impl::DecimalQuantity&amp;, UErrorCode&amp;)</td><td class="">(missing)</td><td>Internal<br>
-<span class=""><span></span></span></td>
+<td class="file">normalizer2.h</td><td class="proto">void icu::FilteredNormalizer2::normalizeUTF8(uint32_t, StringPiece, ByteSink&amp;, Edits*, UErrorCode&amp;) const</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 60</td>
 </tr>
 <tr class="row0">
-<td class="file">numberformatter.h</td><td class="proto">Appendable&amp; icu::number::FormattedNumber::appendTo(Appendable&amp;, UErrorCode&amp;)</td><td class="">(missing)</td><td>Draft<br>
-<span class=""><span>ICU 62</span></span></td>
+<td class="file">normalizer2.h</td><td class="proto">void icu::Normalizer2::normalizeUTF8(uint32_t, StringPiece, ByteSink&amp;, Edits*, UErrorCode&amp;) const</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 60</td>
 </tr>
 <tr class="row1">
-<td class="file">numberformatter.h</td><td class="proto">Derived icu::number::NumberFormatterSettings&lt; Derived &gt;::adoptPerUnit(icu::MeasureUnit*)&amp;&amp;</td><td class="">(missing)</td><td>Draft<br>
-<span class=""><span>ICU 62</span></span></td>
+<td class="file">numfmt.h</td><td class="proto">ERoundingMode icu::NumberFormat::getRoundingMode() const</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 60</td>
 </tr>
 <tr class="row0">
-<td class="file">numberformatter.h</td><td class="proto">Derived icu::number::NumberFormatterSettings&lt; Derived &gt;::adoptSymbols(NumberingSystem*)&amp;&amp;</td><td class="">(missing)</td><td>Draft<br>
-<span class=""><span>ICU 62</span></span></td>
+<td class="file">numfmt.h</td><td class="proto">void icu::NumberFormat::setRoundingMode(ERoundingMode)</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 60</td>
 </tr>
 <tr class="row1">
-<td class="file">numberformatter.h</td><td class="proto">Derived icu::number::NumberFormatterSettings&lt; Derived &gt;::adoptUnit(icu::MeasureUnit*)&amp;&amp;</td><td class="">(missing)</td><td>Draft<br>
-<span class=""><span>ICU 62</span></span></td>
+<td class="file">rbnf.h</td><td class="proto">ERoundingMode icu::RuleBasedNumberFormat::getRoundingMode() const</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 60</td>
 </tr>
 <tr class="row0">
-<td class="file">numberformatter.h</td><td class="proto">Derived icu::number::NumberFormatterSettings&lt; Derived &gt;::decimal(UNumberDecimalSeparatorDisplay)&amp;&amp;</td><td class="">(missing)</td><td>Draft<br>
-<span class=""><span>ICU 62</span></span></td>
+<td class="file">rbnf.h</td><td class="proto">void icu::RuleBasedNumberFormat::setRoundingMode(ERoundingMode)</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 60</td>
 </tr>
 <tr class="row1">
-<td class="file">numberformatter.h</td><td class="proto">Derived icu::number::NumberFormatterSettings&lt; Derived &gt;::grouping(UGroupingStrategy)&amp;&amp;</td><td class="">(missing)</td><td>Draft<br>
-<span class=""><span>ICU 62</span></span></td>
+<td class="file">stringoptions.h</td><td class="proto"><tt>#define</tt> U_EDITS_NO_RESET</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 60</td>
 </tr>
 <tr class="row0">
-<td class="file">numberformatter.h</td><td class="proto">Derived icu::number::NumberFormatterSettings&lt; Derived &gt;::integerWidth(const IntegerWidth&amp;)&amp;&amp;</td><td class="">(missing)</td><td>Draft<br>
-<span class=""><span>ICU 62</span></span></td>
+<td class="file">stringoptions.h</td><td class="proto"><tt>#define</tt> U_OMIT_UNCHANGED_TEXT</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 60</td>
 </tr>
 <tr class="row1">
-<td class="file">numberformatter.h</td><td class="proto">Derived icu::number::NumberFormatterSettings&lt; Derived &gt;::macros(const impl::MacroProps&amp;) const&amp;</td><td class="">(missing)</td><td>Internal<br>
-<span class=""><span>ICU 60</span></span></td>
+<td class="file">stringoptions.h</td><td class="proto"><tt>#define</tt> U_TITLECASE_ADJUST_TO_CASED</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 60</td>
 </tr>
 <tr class="row0">
-<td class="file">numberformatter.h</td><td class="proto">Derived icu::number::NumberFormatterSettings&lt; Derived &gt;::macros(const impl::MacroProps&amp;)&amp;&amp;</td><td class="">(missing)</td><td>Internal<br>
-<span class=""><span></span></span></td>
+<td class="file">stringoptions.h</td><td class="proto"><tt>#define</tt> U_TITLECASE_SENTENCES</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 60</td>
 </tr>
 <tr class="row1">
-<td class="file">numberformatter.h</td><td class="proto">Derived icu::number::NumberFormatterSettings&lt; Derived &gt;::macros(impl::MacroProps&amp;&amp;) const&amp;</td><td class="">(missing)</td><td>Internal<br>
-<span class=""><span></span></span></td>
+<td class="file">stringoptions.h</td><td class="proto"><tt>#define</tt> U_TITLECASE_WHOLE_STRING</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 60</td>
 </tr>
 <tr class="row0">
-<td class="file">numberformatter.h</td><td class="proto">Derived icu::number::NumberFormatterSettings&lt; Derived &gt;::macros(impl::MacroProps&amp;&amp;)&amp;&amp;</td><td class="">(missing)</td><td>Internal<br>
-<span class=""><span></span></span></td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UIndicPositionalCategory::U_INPC_BOTTOM_AND_LEFT</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 63</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
 </tr>
 <tr class="row1">
-<td class="file">numberformatter.h</td><td class="proto">Derived icu::number::NumberFormatterSettings&lt; Derived &gt;::notation(const Notation&amp;)&amp;&amp;</td><td class="">(missing)</td><td>Draft<br>
-<span class=""><span>ICU 62</span></span></td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UIndicPositionalCategory::U_INPC_BOTTOM_AND_RIGHT</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 63</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
 </tr>
 <tr class="row0">
-<td class="file">numberformatter.h</td><td class="proto">Derived icu::number::NumberFormatterSettings&lt; Derived &gt;::padding(const impl::Padder&amp;) const&amp;</td><td class="">(missing)</td><td>Internal<br>
-<span class=""><span>ICU 60</span></span></td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UIndicPositionalCategory::U_INPC_BOTTOM</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 63</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
 </tr>
 <tr class="row1">
-<td class="file">numberformatter.h</td><td class="proto">Derived icu::number::NumberFormatterSettings&lt; Derived &gt;::padding(const impl::Padder&amp;)&amp;&amp;</td><td class="">(missing)</td><td>Internal<br>
-<span class=""><span></span></span></td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UIndicPositionalCategory::U_INPC_LEFT_AND_RIGHT</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 63</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
 </tr>
 <tr class="row0">
-<td class="file">numberformatter.h</td><td class="proto">Derived icu::number::NumberFormatterSettings&lt; Derived &gt;::perUnit(const icu::MeasureUnit&amp;)&amp;&amp;</td><td class="">(missing)</td><td>Draft<br>
-<span class=""><span>ICU 62</span></span></td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UIndicPositionalCategory::U_INPC_LEFT</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 63</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
 </tr>
 <tr class="row1">
-<td class="file">numberformatter.h</td><td class="proto">Derived icu::number::NumberFormatterSettings&lt; Derived &gt;::precision(const Precision&amp;) const&amp;</td><td class="">(missing)</td><td>Draft<br>
-<span class=""><span>ICU 62</span></span></td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UIndicPositionalCategory::U_INPC_NA</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 63</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
 </tr>
 <tr class="row0">
-<td class="file">numberformatter.h</td><td class="proto">Derived icu::number::NumberFormatterSettings&lt; Derived &gt;::precision(const Precision&amp;)&amp;&amp;</td><td class="">(missing)</td><td>Draft<br>
-<span class=""><span>ICU 62</span></span></td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UIndicPositionalCategory::U_INPC_OVERSTRUCK</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 63</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
 </tr>
 <tr class="row1">
-<td class="file">numberformatter.h</td><td class="proto">Derived icu::number::NumberFormatterSettings&lt; Derived &gt;::rounding(const Rounder&amp;) const&amp;</td><td class="">(missing)</td><td>Deprecated<br>
-<span class=""><span>ICU 62</span></span></td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UIndicPositionalCategory::U_INPC_RIGHT</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 63</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
 </tr>
 <tr class="row0">
-<td class="file">numberformatter.h</td><td class="proto">Derived icu::number::NumberFormatterSettings&lt; Derived &gt;::roundingMode(UNumberFormatRoundingMode) const&amp;</td><td class="">(missing)</td><td>Draft<br>
-<span class=""><span>ICU 62</span></span></td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UIndicPositionalCategory::U_INPC_TOP_AND_BOTTOM_AND_RIGHT</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 63</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
 </tr>
 <tr class="row1">
-<td class="file">numberformatter.h</td><td class="proto">Derived icu::number::NumberFormatterSettings&lt; Derived &gt;::roundingMode(UNumberFormatRoundingMode)&amp;&amp;</td><td class="">(missing)</td><td>Draft<br>
-<span class=""><span>ICU 62</span></span></td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UIndicPositionalCategory::U_INPC_TOP_AND_BOTTOM</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 63</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
 </tr>
 <tr class="row0">
-<td class="file">numberformatter.h</td><td class="proto">Derived icu::number::NumberFormatterSettings&lt; Derived &gt;::scale(const Scale&amp;) const&amp;</td><td class="">(missing)</td><td>Draft<br>
-<span class=""><span>ICU 62</span></span></td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UIndicPositionalCategory::U_INPC_TOP_AND_LEFT_AND_RIGHT</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 63</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
 </tr>
 <tr class="row1">
-<td class="file">numberformatter.h</td><td class="proto">Derived icu::number::NumberFormatterSettings&lt; Derived &gt;::scale(const Scale&amp;)&amp;&amp;</td><td class="">(missing)</td><td>Draft<br>
-<span class=""><span>ICU 62</span></span></td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UIndicPositionalCategory::U_INPC_TOP_AND_LEFT</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 63</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
 </tr>
 <tr class="row0">
-<td class="file">numberformatter.h</td><td class="proto">Derived icu::number::NumberFormatterSettings&lt; Derived &gt;::sign(UNumberSignDisplay)&amp;&amp;</td><td class="">(missing)</td><td>Draft<br>
-<span class=""><span>ICU 62</span></span></td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UIndicPositionalCategory::U_INPC_TOP_AND_RIGHT</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 63</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
 </tr>
 <tr class="row1">
-<td class="file">numberformatter.h</td><td class="proto">Derived icu::number::NumberFormatterSettings&lt; Derived &gt;::symbols(const DecimalFormatSymbols&amp;)&amp;&amp;</td><td class="">(missing)</td><td>Draft<br>
-<span class=""><span>ICU 62</span></span></td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UIndicPositionalCategory::U_INPC_TOP</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 63</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
 </tr>
 <tr class="row0">
-<td class="file">numberformatter.h</td><td class="proto">Derived icu::number::NumberFormatterSettings&lt; Derived &gt;::threshold(int32_t) const&amp;</td><td class="">(missing)</td><td>Internal<br>
-<span class=""><span>ICU 60</span></span></td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UIndicPositionalCategory::U_INPC_VISUAL_ORDER_LEFT</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 63</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
 </tr>
 <tr class="row1">
-<td class="file">numberformatter.h</td><td class="proto">Derived icu::number::NumberFormatterSettings&lt; Derived &gt;::threshold(int32_t)&amp;&amp;</td><td class="">(missing)</td><td>Internal<br>
-<span class=""><span></span></span></td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UIndicSyllabicCategory::U_INSC_AVAGRAHA</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 63</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
 </tr>
 <tr class="row0">
-<td class="file">numberformatter.h</td><td class="proto">Derived icu::number::NumberFormatterSettings&lt; Derived &gt;::unit(const icu::MeasureUnit&amp;)&amp;&amp;</td><td class="">(missing)</td><td>Draft<br>
-<span class=""><span>ICU 62</span></span></td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UIndicSyllabicCategory::U_INSC_BINDU</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 63</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
 </tr>
 <tr class="row1">
-<td class="file">numberformatter.h</td><td class="proto">Derived icu::number::NumberFormatterSettings&lt; Derived &gt;::unitWidth(UNumberUnitWidth)&amp;&amp;</td><td class="">(missing)</td><td>Draft<br>
-<span class=""><span>ICU 62</span></span></td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UIndicSyllabicCategory::U_INSC_BRAHMI_JOINING_NUMBER</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 63</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
 </tr>
 <tr class="row0">
-<td class="file">numberformatter.h</td><td class="proto">Format* icu::number::LocalizedNumberFormatter::toFormat(UErrorCode&amp;)</td><td class="">(missing)</td><td>Draft<br>
-<span class=""><span>ICU 62</span></span></td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UIndicSyllabicCategory::U_INSC_CANTILLATION_MARK</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 63</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
 </tr>
 <tr class="row1">
-<td class="file">numberformatter.h</td><td class="proto">FormattedNumber icu::number::LocalizedNumberFormatter::formatDecimalQuantity(const impl::DecimalQuantity&amp;, UErrorCode&amp;)</td><td class="">(missing)</td><td>Internal<br>
-<span class=""><span></span></span></td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UIndicSyllabicCategory::U_INSC_CONSONANT_DEAD</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 63</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
 </tr>
 <tr class="row0">
-<td class="file">numberformatter.h</td><td class="proto">FormattedNumber&amp; icu::number::FormattedNumber::operator=(FormattedNumber&amp;&amp;)</td><td class="">(missing)</td><td>Draft<br>
-<span class=""><span>ICU 62</span></span></td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UIndicSyllabicCategory::U_INSC_CONSONANT_FINAL</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 63</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
 </tr>
 <tr class="row1">
-<td class="file">numberformatter.h</td><td class="proto">LocalizedNumberFormatter icu::number::UnlocalizedNumberFormatter::locale(const icu::Locale&amp;)&amp;&amp;</td><td class="">(missing)</td><td>Draft<br>
-<span class=""><span>ICU 62</span></span></td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UIndicSyllabicCategory::U_INSC_CONSONANT_HEAD_LETTER</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 63</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
 </tr>
 <tr class="row0">
-<td class="file">numberformatter.h</td><td class="proto">LocalizedNumberFormatter&amp; icu::number::LocalizedNumberFormatter::operator=(LocalizedNumberFormatter&amp;&amp;)</td><td class="">(missing)</td><td>Draft<br>
-<span class=""><span>ICU 62</span></span></td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UIndicSyllabicCategory::U_INSC_CONSONANT_INITIAL_POSTFIXED</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 63</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
 </tr>
 <tr class="row1">
-<td class="file">numberformatter.h</td><td class="proto">LocalizedNumberFormatter&amp; icu::number::LocalizedNumberFormatter::operator=(const LocalizedNumberFormatter&amp;)</td><td class="">(missing)</td><td>Draft<br>
-<span class=""><span>ICU 62</span></span></td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UIndicSyllabicCategory::U_INSC_CONSONANT_KILLER</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 63</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
 </tr>
 <tr class="row0">
-<td class="file">numberformatter.h</td><td class="proto">Scale&amp; icu::number::Scale::operator=(Scale&amp;&amp;)</td><td class="">(missing)</td><td>Draft<br>
-<span class=""><span>ICU 62</span></span></td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UIndicSyllabicCategory::U_INSC_CONSONANT_MEDIAL</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 63</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
 </tr>
 <tr class="row1">
-<td class="file">numberformatter.h</td><td class="proto">Scale&amp; icu::number::Scale::operator=(const Scale&amp;)</td><td class="">(missing)</td><td>Draft<br>
-<span class=""><span>ICU 62</span></span></td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UIndicSyllabicCategory::U_INSC_CONSONANT_PLACEHOLDER</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 63</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
 </tr>
 <tr class="row0">
-<td class="file">numberformatter.h</td><td class="proto">SymbolsWrapper&amp; icu::number::impl::SymbolsWrapper::operator=(SymbolsWrapper&amp;&amp;)</td><td class="">(missing)</td><td>Internal<br>
-<span class=""><span></span></span></td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UIndicSyllabicCategory::U_INSC_CONSONANT_PRECEDING_REPHA</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 63</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
 </tr>
 <tr class="row1">
-<td class="file">numberformatter.h</td><td class="proto">UBool icu::number::FormattedNumber::nextFieldPosition(FieldPosition&amp;, UErrorCode&amp;)</td><td class="">(missing)</td><td>Draft<br>
-<span class=""><span>ICU 62</span></span></td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UIndicSyllabicCategory::U_INSC_CONSONANT_PREFIXED</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 63</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
 </tr>
 <tr class="row0">
-<td class="file">numberformatter.h</td><td class="proto">UnicodeString icu::number::FormattedNumber::toString(UErrorCode&amp;)</td><td class="">(missing)</td><td>Draft<br>
-<span class=""><span>ICU 62</span></span></td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UIndicSyllabicCategory::U_INSC_CONSONANT_SUBJOINED</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 63</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
 </tr>
 <tr class="row1">
-<td class="file">numberformatter.h</td><td class="proto">UnicodeString icu::number::NumberFormatterSettings&lt; Derived &gt;::toSkeleton(UErrorCode&amp;)</td><td class="">(missing)</td><td>Draft<br>
-<span class=""><span>ICU 62</span></span></td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UIndicSyllabicCategory::U_INSC_CONSONANT_SUCCEEDING_REPHA</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 63</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
 </tr>
 <tr class="row0">
-<td class="file">numberformatter.h</td><td class="proto">UnlocalizedNumberFormatter&amp; icu::number::UnlocalizedNumberFormatter::operator=(UnlocalizedNumberFormatter&amp;&amp;)</td><td class="">(missing)</td><td>Draft<br>
-<span class=""><span>ICU 62</span></span></td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UIndicSyllabicCategory::U_INSC_CONSONANT_WITH_STACKER</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 63</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
 </tr>
 <tr class="row1">
-<td class="file">numberformatter.h</td><td class="proto">UnlocalizedNumberFormatter&amp; icu::number::UnlocalizedNumberFormatter::operator=(const UnlocalizedNumberFormatter&amp;)</td><td class="">(missing)</td><td>Draft<br>
-<span class=""><span>ICU 62</span></span></td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UIndicSyllabicCategory::U_INSC_CONSONANT</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 63</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
 </tr>
 <tr class="row0">
-<td class="file">numberformatter.h</td><td class="proto">const impl::NumberFormatterImpl* icu::number::LocalizedNumberFormatter::getCompiled()</td><td class="">(missing)</td><td>Internal<br>
-<span class=""><span></span></span></td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UIndicSyllabicCategory::U_INSC_GEMINATION_MARK</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 63</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
 </tr>
 <tr class="row1">
-<td class="file">numberformatter.h</td><td class="proto">icu::number::FormattedNumber::FormattedNumber(FormattedNumber&amp;&amp;)</td><td class="">(missing)</td><td>Draft<br>
-<span class=""><span>ICU 62</span></span></td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UIndicSyllabicCategory::U_INSC_INVISIBLE_STACKER</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 63</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
 </tr>
 <tr class="row0">
-<td class="file">numberformatter.h</td><td class="proto">icu::number::LocalizedNumberFormatter::LocalizedNumberFormatter()=default</td><td class="">(missing)</td><td>Draft<br>
-<span class=""><span>ICU 62</span></span></td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UIndicSyllabicCategory::U_INSC_JOINER</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 63</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
 </tr>
 <tr class="row1">
-<td class="file">numberformatter.h</td><td class="proto">icu::number::LocalizedNumberFormatter::LocalizedNumberFormatter(LocalizedNumberFormatter&amp;&amp;)</td><td class="">(missing)</td><td>Draft<br>
-<span class=""><span>ICU 62</span></span></td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UIndicSyllabicCategory::U_INSC_MODIFYING_LETTER</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 63</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
 </tr>
 <tr class="row0">
-<td class="file">numberformatter.h</td><td class="proto">icu::number::Scale::Scale(Scale&amp;&amp;)</td><td class="">(missing)</td><td>Draft<br>
-<span class=""><span>ICU 62</span></span></td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UIndicSyllabicCategory::U_INSC_NON_JOINER</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 63</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
 </tr>
 <tr class="row1">
-<td class="file">numberformatter.h</td><td class="proto">icu::number::Scale::Scale(const Scale&amp;)</td><td class="">(missing)</td><td>Draft<br>
-<span class=""><span>ICU 62</span></span></td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UIndicSyllabicCategory::U_INSC_NUKTA</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 63</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
 </tr>
 <tr class="row0">
-<td class="file">numberformatter.h</td><td class="proto">icu::number::Scale::Scale(int32_t, impl::DecNum*)</td><td class="">(missing)</td><td>Internal<br>
-<span class=""><span></span></span></td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UIndicSyllabicCategory::U_INSC_NUMBER_JOINER</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 63</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
 </tr>
 <tr class="row1">
-<td class="file">numberformatter.h</td><td class="proto">icu::number::Scale::~Scale()</td><td class="">(missing)</td><td>Draft<br>
-<span class=""><span>ICU 62</span></span></td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UIndicSyllabicCategory::U_INSC_NUMBER</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 63</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
 </tr>
 <tr class="row0">
-<td class="file">numberformatter.h</td><td class="proto">icu::number::UnlocalizedNumberFormatter::UnlocalizedNumberFormatter()=default</td><td class="">(missing)</td><td>Draft<br>
-<span class=""><span>ICU 62</span></span></td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UIndicSyllabicCategory::U_INSC_OTHER</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 63</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
 </tr>
 <tr class="row1">
-<td class="file">numberformatter.h</td><td class="proto">icu::number::UnlocalizedNumberFormatter::UnlocalizedNumberFormatter(UnlocalizedNumberFormatter&amp;&amp;)</td><td class="">(missing)</td><td>Draft<br>
-<span class=""><span>ICU 62</span></span></td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UIndicSyllabicCategory::U_INSC_PURE_KILLER</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 63</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
 </tr>
 <tr class="row0">
-<td class="file">numberformatter.h</td><td class="proto">icu::number::impl::Grouper::Grouper(int16_t, int16_t, int16_t, UGroupingStrategy)</td><td class="">(missing)</td><td>Internal<br>
-<span class=""><span></span></span></td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UIndicSyllabicCategory::U_INSC_REGISTER_SHIFTER</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 63</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
 </tr>
 <tr class="row1">
-<td class="file">numberformatter.h</td><td class="proto">icu::number::impl::SymbolsWrapper::SymbolsWrapper(SymbolsWrapper&amp;&amp;)</td><td class="">(missing)</td><td>Internal<br>
-<span class=""><span></span></span></td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UIndicSyllabicCategory::U_INSC_SYLLABLE_MODIFIER</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 63</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
 </tr>
 <tr class="row0">
-<td class="file">numberformatter.h</td><td class="proto">int16_t icu::number::impl::Grouper::getPrimary()</td><td class="">(missing)</td><td>Internal<br>
-<span class=""><span></span></span></td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UIndicSyllabicCategory::U_INSC_TONE_LETTER</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 63</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
 </tr>
 <tr class="row1">
-<td class="file">numberformatter.h</td><td class="proto">int16_t icu::number::impl::Grouper::getSecondary()</td><td class="">(missing)</td><td>Internal<br>
-<span class=""><span></span></span></td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UIndicSyllabicCategory::U_INSC_TONE_MARK</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 63</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
 </tr>
 <tr class="row0">
-<td class="file">numberformatter.h</td><td class="proto">int32_t icu::number::LocalizedNumberFormatter::getCallCount()</td><td class="">(missing)</td><td>Internal<br>
-<span class=""><span></span></span></td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UIndicSyllabicCategory::U_INSC_VIRAMA</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 63</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
 </tr>
 <tr class="row1">
-<td class="file">numberformatter.h</td><td class="proto"><tt>static</tt> Grouper icu::number::impl::Grouper::forProperties(const DecimalFormatProperties&amp;)</td><td class="">(missing)</td><td>Internal<br>
-<span class=""><span></span></span></td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UIndicSyllabicCategory::U_INSC_VISARGA</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 63</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
 </tr>
 <tr class="row0">
-<td class="file">numberformatter.h</td><td class="proto"><tt>static</tt> Padder icu::number::impl::Padder::forProperties(const DecimalFormatProperties&amp;)</td><td class="">(missing)</td><td>Internal<br>
-<span class=""><span></span></span></td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UIndicSyllabicCategory::U_INSC_VOWEL_DEPENDENT</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 63</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
 </tr>
 <tr class="row1">
-<td class="file">numberformatter.h</td><td class="proto"><tt>static</tt> Scale icu::number::Scale::byDecimal(StringPiece)</td><td class="">(missing)</td><td>Draft<br>
-<span class=""><span>ICU 62</span></span></td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UIndicSyllabicCategory::U_INSC_VOWEL_INDEPENDENT</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 63</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
 </tr>
 <tr class="row0">
-<td class="file">numberformatter.h</td><td class="proto"><tt>static</tt> Scale icu::number::Scale::byDouble(double)</td><td class="">(missing)</td><td>Draft<br>
-<span class=""><span>ICU 62</span></span></td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UIndicSyllabicCategory::U_INSC_VOWEL</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 63</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
 </tr>
 <tr class="row1">
-<td class="file">numberformatter.h</td><td class="proto"><tt>static</tt> Scale icu::number::Scale::byDoubleAndPowerOfTen(double, int32_t)</td><td class="">(missing)</td><td>Draft<br>
-<span class=""><span>ICU 62</span></span></td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UProperty::UCHAR_INDIC_POSITIONAL_CATEGORY</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 63</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
 </tr>
 <tr class="row0">
-<td class="file">numberformatter.h</td><td class="proto"><tt>static</tt> Scale icu::number::Scale::none()</td><td class="">(missing)</td><td>Draft<br>
-<span class=""><span>ICU 62</span></span></td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UProperty::UCHAR_INDIC_SYLLABIC_CATEGORY</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 63</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
 </tr>
 <tr class="row1">
-<td class="file">numberformatter.h</td><td class="proto"><tt>static</tt> Scale icu::number::Scale::powerOfTen(int32_t)</td><td class="">(missing)</td><td>Draft<br>
-<span class=""><span>ICU 62</span></span></td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UProperty::UCHAR_VERTICAL_ORIENTATION</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 63</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
 </tr>
 <tr class="row0">
-<td class="file">numberformatter.h</td><td class="proto"><tt>static</tt> SignificantDigitsPrecision icu::number::Precision::fixedSignificantDigits(int32_t)</td><td class="">(missing)</td><td>Draft<br>
-<span class=""><span>ICU 62</span></span></td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UVerticalOrientation::U_VO_ROTATED</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 63</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
 </tr>
 <tr class="row1">
-<td class="file">numberformatter.h</td><td class="proto"><tt>static</tt> SignificantDigitsPrecision icu::number::Precision::maxSignificantDigits(int32_t)</td><td class="">(missing)</td><td>Draft<br>
-<span class=""><span>ICU 62</span></span></td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UVerticalOrientation::U_VO_TRANSFORMED_ROTATED</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 63</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
 </tr>
 <tr class="row0">
-<td class="file">numberformatter.h</td><td class="proto"><tt>static</tt> SignificantDigitsPrecision icu::number::Precision::minMaxSignificantDigits(int32_t, int32_t)</td><td class="">(missing)</td><td>Draft<br>
-<span class=""><span>ICU 62</span></span></td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UVerticalOrientation::U_VO_TRANSFORMED_UPRIGHT</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 63</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
 </tr>
 <tr class="row1">
-<td class="file">numberformatter.h</td><td class="proto"><tt>static</tt> SignificantDigitsPrecision icu::number::Precision::minSignificantDigits(int32_t)</td><td class="">(missing)</td><td>Draft<br>
-<span class=""><span>ICU 62</span></span></td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UVerticalOrientation::U_VO_UPRIGHT</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 63</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
 </tr>
+
+<!--
 <tr class="row0">
-<td class="file">numberformatter.h</td><td class="proto"><tt>static</tt> UnlocalizedNumberFormatter icu::number::NumberFormatter::forSkeleton(const UnicodeString&amp;, UErrorCode&amp;)</td><td class="">(missing)</td><td>Draft<br>
-<span class=""><span>ICU 62</span></span></td>
+<td class="file">uobject.h</td><td class="proto"><tt>#define</tt> U_NO_THROW</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 4.2</span></span></td>
 </tr>
+-->
+<tr class="row0"> <td class="proto" colspan="4">&nbsp; </td> </tr>
+
+
 <tr class="row1">
-<td class="file">numberformatter.h</td><td class="proto">void icu::number::FormattedNumber::getAllFieldPositions(FieldPositionIterator&amp;, UErrorCode&amp;)</td><td class="">(missing)</td><td>Draft<br>
-<span class=""><span>ICU 62</span></span></td>
+<td class="file">utf16.h</td><td class="proto"><tt>#define</tt> U16_GET_OR_FFFD</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 60</td>
 </tr>
 <tr class="row0">
-<td class="file">numberformatter.h</td><td class="proto">void icu::number::FormattedNumber::getAllFieldPositionsImpl(FieldPositionIteratorHandler&amp;, UErrorCode&amp;)</td><td class="">(missing)</td><td>Internal<br>
-<span class=""><span></span></span></td>
+<td class="file">utf16.h</td><td class="proto"><tt>#define</tt> U16_NEXT_OR_FFFD</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 60</td>
 </tr>
 <tr class="row1">
-<td class="file">numberformatter.h</td><td class="proto">void icu::number::FormattedNumber::getDecimalQuantity(impl::DecimalQuantity&amp;, UErrorCode&amp;)</td><td class="">(missing)</td><td>Internal<br>
-<span class=""><span></span></span></td>
+<td class="file">utf16.h</td><td class="proto"><tt>#define</tt> U16_PREV_OR_FFFD</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 60</td>
 </tr>
+
+<!--
 <tr class="row0">
-<td class="file">numberformatter.h</td><td class="proto">void icu::number::LocalizedNumberFormatter::formatImpl(impl::UFormattedNumberData*, UErrorCode&amp;)</td><td class="">(missing)</td><td>Internal<br>
-<span class=""><span></span></span></td>
+<td class="file">utypes.h</td><td class="proto"><tt>#define</tt> U_COMBINED_IMPLEMENTATION</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 2.0</span></span></td>
+</tr>
+-->
+
+</table>
+<P></P>
+<a href="#_top">(jump back to top)</a>
+<hr>
+<a name="added"></a>
+<h2>Added in ICU 63</h2>
+<table BORDER="1" class="genTable">
+<THEAD>
+<tr>
+<th>File</th><th>API</th><th>ICU 62</th><th>ICU 63</th>
 </tr>
+</THEAD>
+<!--  
 <tr class="row1">
-<td class="file">numberformatter.h</td><td class="proto">void icu::number::LocalizedNumberFormatter::getAffixImpl(bool, bool, UnicodeString&amp;, UErrorCode&amp;)</td><td class="">(missing)</td><td>Internal<br>
+<td class="file">char16ptr.h</td><td class="proto"><tt>#define</tt> U_ALIASING_BARRIER</td><td class="">(missing)</td><td>Internal<br>
 <span class=""><span></span></span></td>
 </tr>
+-->
 <tr class="row0">
-<td class="file">numfmt.h</td><td class="proto">UnicodeString&amp; icu::NumberFormat::format(const number::impl::DecimalQuantity&amp;, UnicodeString&amp;, FieldPosition&amp;, UErrorCode&amp;)</td><td class="">(missing)</td><td>Internal<br>
-<span class=""><span></span></span></td>
+<td class="file">listformatter.h</td><td class="proto">UnicodeString&amp; icu::ListFormatter::format(const UnicodeString items[], int32_t, UnicodeString&amp;, FieldPositionIterator*, UErrorCode&amp;) const</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 63</span></span></td>
 </tr>
 <tr class="row1">
-<td class="file">numfmt.h</td><td class="proto">UnicodeString&amp; icu::NumberFormat::format(const number::impl::DecimalQuantity&amp;, UnicodeString&amp;, FieldPositionIterator*, UErrorCode&amp;)</td><td class="">(missing)</td><td>Internal<br>
-<span class=""><span></span></span></td>
+<td class="file">locid.h</td><td class="proto">Locale&amp; icu::Locale::operator=(Locale&amp;&amp;)</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 63</span></span></td>
 </tr>
 <tr class="row0">
-<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UBlockCode::UBLOCK_CHESS_SYMBOLS</td><td class="">(missing)</td><td>Stable<br>
-<span class=""><span>ICU 62</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
+<td class="file">locid.h</td><td class="proto">StringClass icu::Locale::getKeywordValue(StringPiece, UErrorCode&amp;) const</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 63</span></span></td>
 </tr>
 <tr class="row1">
-<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UBlockCode::UBLOCK_DOGRA</td><td class="">(missing)</td><td>Stable<br>
-<span class=""><span>ICU 62</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
+<td class="file">locid.h</td><td class="proto">StringClass icu::Locale::getUnicodeKeywordValue(StringPiece, UErrorCode&amp;) const</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 63</span></span></td>
 </tr>
 <tr class="row0">
-<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UBlockCode::UBLOCK_GEORGIAN_EXTENDED</td><td class="">(missing)</td><td>Stable<br>
-<span class=""><span>ICU 62</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
+<td class="file">locid.h</td><td class="proto">StringClass icu::Locale::toLanguageTag(UErrorCode&amp;) const</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 63</span></span></td>
 </tr>
 <tr class="row1">
-<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UBlockCode::UBLOCK_GUNJALA_GONDI</td><td class="">(missing)</td><td>Stable<br>
-<span class=""><span>ICU 62</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
+<td class="file">locid.h</td><td class="proto">StringEnumeration* icu::Locale::createUnicodeKeywords(UErrorCode&amp;) const</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 63</span></span></td>
 </tr>
 <tr class="row0">
-<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UBlockCode::UBLOCK_HANIFI_ROHINGYA</td><td class="">(missing)</td><td>Stable<br>
-<span class=""><span>ICU 62</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
+<td class="file">locid.h</td><td class="proto">icu::Locale::Locale(Locale&amp;&amp;)</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 63</span></span></td>
 </tr>
 <tr class="row1">
-<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UBlockCode::UBLOCK_INDIC_SIYAQ_NUMBERS</td><td class="">(missing)</td><td>Stable<br>
-<span class=""><span>ICU 62</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
+<td class="file">locid.h</td><td class="proto"><tt>static</tt> Locale icu::Locale::forLanguageTag(StringPiece, UErrorCode&amp;)</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 63</span></span></td>
 </tr>
 <tr class="row0">
-<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UBlockCode::UBLOCK_MAKASAR</td><td class="">(missing)</td><td>Stable<br>
-<span class=""><span>ICU 62</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
+<td class="file">locid.h</td><td class="proto">void icu::Locale::addLikelySubtags(UErrorCode&amp;)</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 63</span></span></td>
 </tr>
 <tr class="row1">
-<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UBlockCode::UBLOCK_MAYAN_NUMERALS</td><td class="">(missing)</td><td>Stable<br>
-<span class=""><span>ICU 62</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
+<td class="file">locid.h</td><td class="proto">void icu::Locale::getKeywordValue(StringPiece, ByteSink&amp;, UErrorCode&amp;) const</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 63</span></span></td>
 </tr>
 <tr class="row0">
-<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UBlockCode::UBLOCK_MEDEFAIDRIN</td><td class="">(missing)</td><td>Stable<br>
-<span class=""><span>ICU 62</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
+<td class="file">locid.h</td><td class="proto">void icu::Locale::getKeywords(OutputIterator, UErrorCode&amp;) const</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 63</span></span></td>
 </tr>
 <tr class="row1">
-<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UBlockCode::UBLOCK_OLD_SOGDIAN</td><td class="">(missing)</td><td>Stable<br>
-<span class=""><span>ICU 62</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
+<td class="file">locid.h</td><td class="proto">void icu::Locale::getUnicodeKeywordValue(StringPiece, ByteSink&amp;, UErrorCode&amp;) const</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 63</span></span></td>
 </tr>
 <tr class="row0">
-<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UBlockCode::UBLOCK_SOGDIAN</td><td class="">(missing)</td><td>Stable<br>
-<span class=""><span>ICU 62</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
+<td class="file">locid.h</td><td class="proto">void icu::Locale::getUnicodeKeywords(OutputIterator, UErrorCode&amp;) const</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 63</span></span></td>
 </tr>
 <tr class="row1">
-<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UJoiningGroup::U_JG_HANIFI_ROHINGYA_KINNA_YA</td><td class="">(missing)</td><td>Stable<br>
-<span class=""><span>ICU 62</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
+<td class="file">locid.h</td><td class="proto">void icu::Locale::minimizeSubtags(UErrorCode&amp;)</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 63</span></span></td>
 </tr>
 <tr class="row0">
-<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UJoiningGroup::U_JG_HANIFI_ROHINGYA_PA</td><td class="">(missing)</td><td>Stable<br>
-<span class=""><span>ICU 62</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
+<td class="file">locid.h</td><td class="proto">void icu::Locale::setKeywordValue(StringPiece, StringPiece, UErrorCode&amp;)</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 63</span></span></td>
 </tr>
 <tr class="row1">
-<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UProperty::UCHAR_EXTENDED_PICTOGRAPHIC</td><td class="">(missing)</td><td>Stable<br>
-<span class=""><span>ICU 62</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
+<td class="file">locid.h</td><td class="proto">void icu::Locale::setUnicodeKeywordValue(StringPiece, StringPiece, UErrorCode&amp;)</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 63</span></span></td>
 </tr>
 <tr class="row0">
-<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UWordBreakValues::U_WB_WSEGSPACE</td><td class="">(missing)</td><td>Stable<br>
-<span class=""><span>ICU 62</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
+<td class="file">locid.h</td><td class="proto">void icu::Locale::toLanguageTag(ByteSink&amp;, UErrorCode&amp;) const</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 63</span></span></td>
 </tr>
 <tr class="row1">
-<td class="file">unum.h</td><td class="proto"><tt>enum</tt> UNumberFormatAttribute::UNUM_PARSE_CASE_SENSITIVE</td><td class="">(missing)</td><td>Internal<br>
-<span class=""><span></span></span></td>
+<td class="file">measunit.h</td><td class="proto"><tt>static</tt> MeasureUnit* icu::MeasureUnit::createAtmosphere(UErrorCode&amp;)</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 63</span></span></td>
 </tr>
 <tr class="row0">
-<td class="file">unum.h</td><td class="proto"><tt>enum</tt> UNumberFormatAttribute::UNUM_SIGN_ALWAYS_SHOWN</td><td class="">(missing)</td><td>Internal<br>
-<span class=""><span></span></span></td>
+<td class="file">measunit.h</td><td class="proto"><tt>static</tt> MeasureUnit* icu::MeasureUnit::createPercent(UErrorCode&amp;)</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 63</span></span></td>
 </tr>
 <tr class="row1">
-<td class="file">unumberformatter.h</td><td class="proto">UBool unumf_resultNextFieldPosition(const UFormattedNumber*, UFieldPosition*, UErrorCode*)</td><td class="">(missing)</td><td>Draft<br>
-<span class=""><span>ICU 62</span></span></td>
+<td class="file">measunit.h</td><td class="proto"><tt>static</tt> MeasureUnit* icu::MeasureUnit::createPermille(UErrorCode&amp;)</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 63</span></span></td>
 </tr>
 <tr class="row0">
-<td class="file">unumberformatter.h</td><td class="proto">UFormattedNumber* unumf_openResult(UErrorCode*)</td><td class="">(missing)</td><td>Draft<br>
-<span class=""><span>ICU 62</span></span></td>
+<td class="file">measunit.h</td><td class="proto"><tt>static</tt> MeasureUnit* icu::MeasureUnit::createPetabyte(UErrorCode&amp;)</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 63</span></span></td>
 </tr>
+
+<!--   exclude numberformatter.h
+
 <tr class="row1">
-<td class="file">unumberformatter.h</td><td class="proto">UNumberFormatter* unumf_openForSkeletonAndLocale(const UChar*, int32_t, const char*, UErrorCode*)</td><td class="">(missing)</td><td>Draft<br>
-<span class=""><span>ICU 62</span></span></td>
+<td class="file">numberformatter.h</td><td class="proto">Appendable&amp; icu::number::FormattedNumber::appendTo(Appendable&amp;, UErrorCode&amp;) const</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 62</span>
+<br>
+<b class="bigwarn" title="A draft API has the wrong version.">(should be ICU 63)</b></span></td>
 </tr>
 <tr class="row0">
-<td class="file">unumberformatter.h</td><td class="proto"><tt>enum</tt> UGroupingStrategy::UNUM_GROUPING_COUNT</td><td class="">(missing)</td><td>Internal<br>
-<span class=""><span>ICU 62</span></span></td>
+<td class="file">numberformatter.h</td><td class="proto">Derived icu::number::NumberFormatterSettings&lt; Derived &gt;::grouping(UNumberGroupingStrategy) const&amp;</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 61</span>
+<br>
+<b class="bigwarn" title="A draft API has the wrong version.">(should be ICU 63)</b></span></td>
 </tr>
 <tr class="row1">
-<td class="file">unumberformatter.h</td><td class="proto">int32_t unumf_resultToString(const UFormattedNumber*, UChar*, int32_t, UErrorCode*)</td><td class="">(missing)</td><td>Draft<br>
-<span class=""><span>ICU 62</span></span></td>
+<td class="file">numberformatter.h</td><td class="proto">Derived icu::number::NumberFormatterSettings&lt; Derived &gt;::grouping(UNumberGroupingStrategy)&amp;&amp;</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 62</span>
+<br>
+<b class="bigwarn" title="A draft API has the wrong version.">(should be ICU 63)</b></span></td>
 </tr>
 <tr class="row0">
-<td class="file">unumberformatter.h</td><td class="proto">void unumf_close(UNumberFormatter*)</td><td class="">(missing)</td><td>Draft<br>
-<span class=""><span>ICU 62</span></span></td>
+<td class="file">numberformatter.h</td><td class="proto">icu::number::impl::Grouper::Grouper(int16_t, int16_t, int16_t, UNumberGroupingStrategy)</td><td class="">(missing)</td><td>Internal<br>
+<span class=""><span></span></span></td>
 </tr>
 <tr class="row1">
-<td class="file">unumberformatter.h</td><td class="proto">void unumf_closeResult(UFormattedNumber*)</td><td class="">(missing)</td><td>Draft<br>
-<span class=""><span>ICU 62</span></span></td>
+<td class="file">numberformatter.h</td><td class="proto"><tt>static</tt> Grouper icu::number::impl::Grouper::forStrategy(UNumberGroupingStrategy)</td><td class="">(missing)</td><td>Internal<br>
+<span class=""><span></span></span></td>
 </tr>
+-->
+<tr class="row1"> <td class="proto" colspan="4">&nbsp; </td> </tr>
+
 <tr class="row0">
-<td class="file">unumberformatter.h</td><td class="proto">void unumf_formatDecimal(const UNumberFormatter*, const char*, int32_t, UFormattedNumber*, UErrorCode*)</td><td class="">(missing)</td><td>Draft<br>
-<span class=""><span>ICU 62</span></span></td>
+<td class="file">numberrangeformatter.h</td><td class="proto">Appendable&amp; icu::number::FormattedNumberRange::appendTo(Appendable&amp;, UErrorCode&amp;) const</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 63</span></span></td>
 </tr>
 <tr class="row1">
-<td class="file">unumberformatter.h</td><td class="proto">void unumf_formatDouble(const UNumberFormatter*, double, UFormattedNumber*, UErrorCode*)</td><td class="">(missing)</td><td>Draft<br>
-<span class=""><span>ICU 62</span></span></td>
+<td class="file">numberrangeformatter.h</td><td class="proto">Derived icu::number::NumberRangeFormatterSettings&lt; Derived &gt;::collapse(UNumberRangeCollapse) const&amp;</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 63</span></span></td>
 </tr>
 <tr class="row0">
-<td class="file">unumberformatter.h</td><td class="proto">void unumf_formatInt(const UNumberFormatter*, int64_t, UFormattedNumber*, UErrorCode*)</td><td class="">(missing)</td><td>Draft<br>
-<span class=""><span>ICU 62</span></span></td>
+<td class="file">numberrangeformatter.h</td><td class="proto">Derived icu::number::NumberRangeFormatterSettings&lt; Derived &gt;::collapse(UNumberRangeCollapse)&amp;&amp;</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 63</span></span></td>
 </tr>
 <tr class="row1">
-<td class="file">unumberformatter.h</td><td class="proto">void unumf_resultGetAllFieldPositions(const UFormattedNumber*, UFieldPositionIterator*, UErrorCode*)</td><td class="">(missing)</td><td>Draft<br>
-<span class=""><span>ICU 62</span></span></td>
+<td class="file">numberrangeformatter.h</td><td class="proto">Derived icu::number::NumberRangeFormatterSettings&lt; Derived &gt;::identityFallback(UNumberRangeIdentityFallback) const&amp;</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 63</span></span></td>
 </tr>
 <tr class="row0">
-<td class="file">uscript.h</td><td class="proto"><tt>enum</tt> UScriptCode::USCRIPT_DOGRA</td><td class="">(missing)</td><td>Stable<br>
-<span class=""><span>ICU 62</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
+<td class="file">numberrangeformatter.h</td><td class="proto">Derived icu::number::NumberRangeFormatterSettings&lt; Derived &gt;::identityFallback(UNumberRangeIdentityFallback)&amp;&amp;</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 63</span></span></td>
 </tr>
 <tr class="row1">
-<td class="file">uscript.h</td><td class="proto"><tt>enum</tt> UScriptCode::USCRIPT_GUNJALA_GONDI</td><td class="">(missing)</td><td>Stable<br>
-<span class=""><span>ICU 62</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
+<td class="file">numberrangeformatter.h</td><td class="proto">Derived icu::number::NumberRangeFormatterSettings&lt; Derived &gt;::numberFormatterBoth(UnlocalizedNumberFormatter&amp;&amp;) const&amp;</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 63</span></span></td>
 </tr>
 <tr class="row0">
-<td class="file">uscript.h</td><td class="proto"><tt>enum</tt> UScriptCode::USCRIPT_HANIFI_ROHINGYA</td><td class="">(missing)</td><td>Stable<br>
-<span class=""><span>ICU 62</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
+<td class="file">numberrangeformatter.h</td><td class="proto">Derived icu::number::NumberRangeFormatterSettings&lt; Derived &gt;::numberFormatterBoth(UnlocalizedNumberFormatter&amp;&amp;)&amp;&amp;</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 63</span></span></td>
 </tr>
 <tr class="row1">
-<td class="file">uscript.h</td><td class="proto"><tt>enum</tt> UScriptCode::USCRIPT_MAKASAR</td><td class="">(missing)</td><td>Stable<br>
-<span class=""><span>ICU 62</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
+<td class="file">numberrangeformatter.h</td><td class="proto">Derived icu::number::NumberRangeFormatterSettings&lt; Derived &gt;::numberFormatterBoth(const UnlocalizedNumberFormatter&amp;) const&amp;</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 63</span></span></td>
 </tr>
 <tr class="row0">
-<td class="file">uscript.h</td><td class="proto"><tt>enum</tt> UScriptCode::USCRIPT_MEDEFAIDRIN</td><td class="">(missing)</td><td>Stable<br>
-<span class=""><span>ICU 62</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
+<td class="file">numberrangeformatter.h</td><td class="proto">Derived icu::number::NumberRangeFormatterSettings&lt; Derived &gt;::numberFormatterBoth(const UnlocalizedNumberFormatter&amp;)&amp;&amp;</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 63</span></span></td>
 </tr>
 <tr class="row1">
-<td class="file">uscript.h</td><td class="proto"><tt>enum</tt> UScriptCode::USCRIPT_OLD_SOGDIAN</td><td class="">(missing)</td><td>Stable<br>
-<span class=""><span>ICU 62</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
+<td class="file">numberrangeformatter.h</td><td class="proto">Derived icu::number::NumberRangeFormatterSettings&lt; Derived &gt;::numberFormatterFirst(UnlocalizedNumberFormatter&amp;&amp;) const&amp;</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 63</span></span></td>
 </tr>
 <tr class="row0">
-<td class="file">uscript.h</td><td class="proto"><tt>enum</tt> UScriptCode::USCRIPT_SOGDIAN</td><td class="">(missing)</td><td>Stable<br>
-<span class=""><span>ICU 62</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
+<td class="file">numberrangeformatter.h</td><td class="proto">Derived icu::number::NumberRangeFormatterSettings&lt; Derived &gt;::numberFormatterFirst(UnlocalizedNumberFormatter&amp;&amp;)&amp;&amp;</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 63</span></span></td>
 </tr>
 <tr class="row1">
-<td class="file">uspoof.h</td><td class="proto"><tt>enum</tt> USpoofChecks::USPOOF_HIDDEN_OVERLAY</td><td class="">(missing)</td><td>Draft<br>
-<span class=""><span>ICU 62</span></span></td>
+<td class="file">numberrangeformatter.h</td><td class="proto">Derived icu::number::NumberRangeFormatterSettings&lt; Derived &gt;::numberFormatterFirst(const UnlocalizedNumberFormatter&amp;) const&amp;</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 63</span></span></td>
 </tr>
-</table>
-<P></P>
-<a href="#_top">(jump back to top)</a>
-<hr>
-<a name="other"></a>
-<h2>Other existing drafts in ICU 62</h2>
-<div class="other">
-<table BORDER="1" class="genTable">
-<THEAD>
-<tr>
-<th>File</th><th>API</th><th>ICU 61</th><th>ICU 62</th>
+<tr class="row0">
+<td class="file">numberrangeformatter.h</td><td class="proto">Derived icu::number::NumberRangeFormatterSettings&lt; Derived &gt;::numberFormatterFirst(const UnlocalizedNumberFormatter&amp;)&amp;&amp;</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 63</span></span></td>
 </tr>
-</THEAD>
 <tr class="row1">
-<td class="file">bytestream.h</td><td class="proto">icu::StringByteSink&lt; StringClass &gt;::StringByteSink(StringClass*, int32_t)</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+<td class="file">numberrangeformatter.h</td><td class="proto">Derived icu::number::NumberRangeFormatterSettings&lt; Derived &gt;::numberFormatterSecond(UnlocalizedNumberFormatter&amp;&amp;) const&amp;</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 63</span></span></td>
 </tr>
 <tr class="row0">
-<td class="file">casemap.h</td><td class="proto"><tt>static</tt> void icu::CaseMap::utf8Fold(uint32_t, StringPiece, ByteSink&amp;, Edits*, UErrorCode&amp;)</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+<td class="file">numberrangeformatter.h</td><td class="proto">Derived icu::number::NumberRangeFormatterSettings&lt; Derived &gt;::numberFormatterSecond(UnlocalizedNumberFormatter&amp;&amp;)&amp;&amp;</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 63</span></span></td>
 </tr>
 <tr class="row1">
-<td class="file">casemap.h</td><td class="proto"><tt>static</tt> void icu::CaseMap::utf8ToLower(const char*, uint32_t, StringPiece, ByteSink&amp;, Edits*, UErrorCode&amp;)</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+<td class="file">numberrangeformatter.h</td><td class="proto">Derived icu::number::NumberRangeFormatterSettings&lt; Derived &gt;::numberFormatterSecond(const UnlocalizedNumberFormatter&amp;) const&amp;</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 63</span></span></td>
 </tr>
 <tr class="row0">
-<td class="file">casemap.h</td><td class="proto"><tt>static</tt> void icu::CaseMap::utf8ToTitle(const char*, uint32_t, BreakIterator*, StringPiece, ByteSink&amp;, Edits*, UErrorCode&amp;)</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+<td class="file">numberrangeformatter.h</td><td class="proto">Derived icu::number::NumberRangeFormatterSettings&lt; Derived &gt;::numberFormatterSecond(const UnlocalizedNumberFormatter&amp;)&amp;&amp;</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 63</span></span></td>
 </tr>
 <tr class="row1">
-<td class="file">casemap.h</td><td class="proto"><tt>static</tt> void icu::CaseMap::utf8ToUpper(const char*, uint32_t, StringPiece, ByteSink&amp;, Edits*, UErrorCode&amp;)</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+<td class="file">numberrangeformatter.h</td><td class="proto">FormattedNumberRange icu::number::LocalizedNumberRangeFormatter::formatFormattableRange(const Formattable&amp;, const Formattable&amp;, UErrorCode&amp;) const</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 63</span></span></td>
 </tr>
 <tr class="row0">
-<td class="file">currunit.h</td><td class="proto">icu::CurrencyUnit::CurrencyUnit()</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+<td class="file">numberrangeformatter.h</td><td class="proto">FormattedNumberRange&amp; icu::number::FormattedNumberRange::operator=(FormattedNumberRange&amp;&amp;)</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 63</span></span></td>
 </tr>
+
+<!--
 <tr class="row1">
-<td class="file">currunit.h</td><td class="proto">icu::CurrencyUnit::CurrencyUnit(const MeasureUnit&amp;, UErrorCode&amp;)</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+<td class="file">numberrangeformatter.h</td><td class="proto">FormattedNumberRange&amp; icu::number::FormattedNumberRange::operator=(const FormattedNumberRange&amp;)=delete</td><td class="">(missing)</td><td>
+<br>
+<span class=""><span></span>
+<br>
+<b class="bigwarn" title="A new API was introduced that was not tagged.">(untagged)</b></span></td>
 </tr>
+-->
+<tr class="row1"> <td class="proto" colspan="4">&nbsp; </td> </tr>
+
 <tr class="row0">
-<td class="file">dcfmtsym.h</td><td class="proto">icu::DecimalFormatSymbols::DecimalFormatSymbols(const Locale&amp;, const NumberingSystem&amp;, UErrorCode&amp;)</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+<td class="file">numberrangeformatter.h</td><td class="proto">LocalizedNumberRangeFormatter icu::number::UnlocalizedNumberRangeFormatter::locale(const icu::Locale&amp;) const&amp;</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 63</span></span></td>
 </tr>
 <tr class="row1">
-<td class="file">dtptngen.h</td><td class="proto">UnicodeString icu::DateTimePatternGenerator::getFieldDisplayName(UDateTimePatternField, UDateTimePGDisplayWidth)</td><td class="" colspan="2" align="center">Draft<br>ICU 61</td>
+<td class="file">numberrangeformatter.h</td><td class="proto">LocalizedNumberRangeFormatter icu::number::UnlocalizedNumberRangeFormatter::locale(const icu::Locale&amp;)&amp;&amp;</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 63</span></span></td>
 </tr>
 <tr class="row0">
-<td class="file">edits.h</td><td class="proto">Edits&amp; icu::Edits::mergeAndAppend(const Edits&amp;, const Edits&amp;, UErrorCode&amp;)</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+<td class="file">numberrangeformatter.h</td><td class="proto">LocalizedNumberRangeFormatter&amp; icu::number::LocalizedNumberRangeFormatter::operator=(LocalizedNumberRangeFormatter&amp;&amp;)</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 63</span></span></td>
 </tr>
 <tr class="row1">
-<td class="file">edits.h</td><td class="proto">Edits&amp; icu::Edits::operator=(Edits&amp;&amp;)</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+<td class="file">numberrangeformatter.h</td><td class="proto">LocalizedNumberRangeFormatter&amp; icu::number::LocalizedNumberRangeFormatter::operator=(const LocalizedNumberRangeFormatter&amp;)</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 63</span></span></td>
 </tr>
 <tr class="row0">
-<td class="file">edits.h</td><td class="proto">Edits&amp; icu::Edits::operator=(const Edits&amp;)</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+<td class="file">numberrangeformatter.h</td><td class="proto">UBool icu::number::FormattedNumberRange::nextFieldPosition(FieldPosition&amp;, UErrorCode&amp;) const</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 63</span></span></td>
 </tr>
 <tr class="row1">
-<td class="file">edits.h</td><td class="proto">icu::Edits::Edits(Edits&amp;&amp;)</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+<td class="file">numberrangeformatter.h</td><td class="proto">UBool icu::number::NumberRangeFormatterSettings&lt; Derived &gt;::copyErrorTo(UErrorCode&amp;) const</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 63</span></span></td>
 </tr>
 <tr class="row0">
-<td class="file">edits.h</td><td class="proto">icu::Edits::Edits(const Edits&amp;)</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+<td class="file">numberrangeformatter.h</td><td class="proto">UNumberRangeIdentityResult icu::number::FormattedNumberRange::getIdentityResult(UErrorCode&amp;) const</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 63</span></span></td>
 </tr>
 <tr class="row1">
-<td class="file">edits.h</td><td class="proto">int32_t icu::Edits::numberOfChanges()</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+<td class="file">numberrangeformatter.h</td><td class="proto">UnicodeString icu::number::FormattedNumberRange::getFirstDecimal(UErrorCode&amp;) const</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 63</span></span></td>
 </tr>
 <tr class="row0">
-<td class="file">filteredbrk.h</td><td class="proto">BreakIterator* icu::FilteredBreakIteratorBuilder::wrapIteratorWithFilter(BreakIterator*, UErrorCode&amp;)</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+<td class="file">numberrangeformatter.h</td><td class="proto">UnicodeString icu::number::FormattedNumberRange::getSecondDecimal(UErrorCode&amp;) const</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 63</span></span></td>
 </tr>
 <tr class="row1">
-<td class="file">filteredbrk.h</td><td class="proto"><tt>static</tt> FilteredBreakIteratorBuilder* icu::FilteredBreakIteratorBuilder::createEmptyInstance(UErrorCode&amp;)</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+<td class="file">numberrangeformatter.h</td><td class="proto">UnicodeString icu::number::FormattedNumberRange::toString(UErrorCode&amp;) const</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 63</span></span></td>
 </tr>
 <tr class="row0">
-<td class="file">localpointer.h</td><td class="proto">LocalArray&lt;T&gt;&amp; icu::LocalArray&lt; T &gt;::moveFrom(LocalArray&lt; T &gt;&amp;)</td><td class="" colspan="2" align="center">Draft<br>ICU 56</td>
+<td class="file">numberrangeformatter.h</td><td class="proto">UnlocalizedNumberRangeFormatter&amp; icu::number::UnlocalizedNumberRangeFormatter::operator=(UnlocalizedNumberRangeFormatter&amp;&amp;)</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 63</span></span></td>
 </tr>
 <tr class="row1">
-<td class="file">localpointer.h</td><td class="proto">LocalPointer&lt;T&gt;&amp; icu::LocalPointer&lt; T &gt;::moveFrom(LocalPointer&lt; T &gt;&amp;)</td><td class="" colspan="2" align="center">Draft<br>ICU 56</td>
+<td class="file">numberrangeformatter.h</td><td class="proto">UnlocalizedNumberRangeFormatter&amp; icu::number::UnlocalizedNumberRangeFormatter::operator=(const UnlocalizedNumberRangeFormatter&amp;)</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 63</span></span></td>
 </tr>
 <tr class="row0">
-<td class="file">measfmt.h</td><td class="proto">void icu::MeasureFormat::parseObject(const UnicodeString&amp;, Formattable&amp;, ParsePosition&amp;)</td><td class="" colspan="2" align="center">Draft<br>ICU 53</td>
+<td class="file">numberrangeformatter.h</td><td class="proto"><tt>enum</tt> UNumberRangeCollapse::UNUM_RANGE_COLLAPSE_ALL</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 63</span></span></td>
 </tr>
 <tr class="row1">
-<td class="file">normalizer2.h</td><td class="proto">UBool icu::FilteredNormalizer2::isNormalizedUTF8(StringPiece, UErrorCode&amp;)</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+<td class="file">numberrangeformatter.h</td><td class="proto"><tt>enum</tt> UNumberRangeCollapse::UNUM_RANGE_COLLAPSE_AUTO</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 63</span></span></td>
 </tr>
 <tr class="row0">
-<td class="file">normalizer2.h</td><td class="proto">UBool icu::Normalizer2::isNormalizedUTF8(StringPiece, UErrorCode&amp;)</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+<td class="file">numberrangeformatter.h</td><td class="proto"><tt>enum</tt> UNumberRangeCollapse::UNUM_RANGE_COLLAPSE_NONE</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 63</span></span></td>
 </tr>
 <tr class="row1">
-<td class="file">normalizer2.h</td><td class="proto">void icu::FilteredNormalizer2::normalizeUTF8(uint32_t, StringPiece, ByteSink&amp;, Edits*, UErrorCode&amp;)</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+<td class="file">numberrangeformatter.h</td><td class="proto"><tt>enum</tt> UNumberRangeCollapse::UNUM_RANGE_COLLAPSE_UNIT</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 63</span></span></td>
 </tr>
 <tr class="row0">
-<td class="file">normalizer2.h</td><td class="proto">void icu::Normalizer2::normalizeUTF8(uint32_t, StringPiece, ByteSink&amp;, Edits*, UErrorCode&amp;)</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+<td class="file">numberrangeformatter.h</td><td class="proto"><tt>enum</tt> UNumberRangeIdentityFallback::UNUM_IDENTITY_FALLBACK_APPROXIMATELY_OR_SINGLE_VALUE</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 63</span></span></td>
 </tr>
 <tr class="row1">
-<td class="file">nounit.h</td><td class="proto">UClassID icu::NoUnit::getDynamicClassID()</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+<td class="file">numberrangeformatter.h</td><td class="proto"><tt>enum</tt> UNumberRangeIdentityFallback::UNUM_IDENTITY_FALLBACK_APPROXIMATELY</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 63</span></span></td>
 </tr>
 <tr class="row0">
-<td class="file">nounit.h</td><td class="proto">UObject* icu::NoUnit::clone()</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+<td class="file">numberrangeformatter.h</td><td class="proto"><tt>enum</tt> UNumberRangeIdentityFallback::UNUM_IDENTITY_FALLBACK_RANGE</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 63</span></span></td>
 </tr>
 <tr class="row1">
-<td class="file">nounit.h</td><td class="proto">icu::NoUnit::NoUnit(const NoUnit&amp;)</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+<td class="file">numberrangeformatter.h</td><td class="proto"><tt>enum</tt> UNumberRangeIdentityFallback::UNUM_IDENTITY_FALLBACK_SINGLE_VALUE</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 63</span></span></td>
 </tr>
+
+<!-- 
 <tr class="row0">
-<td class="file">nounit.h</td><td class="proto">icu::NoUnit::~NoUnit()</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+<td class="file">numberrangeformatter.h</td><td class="proto"><tt>enum</tt> UNumberRangeIdentityResult::UNUM_IDENTITY_RESULT_COUNT</td><td class="">(missing)</td><td>Internal<br>
+<span class=""><span></span></span></td>
 </tr>
+-->
+<tr class="row0"> <td class="proto" colspan="4">&nbsp; </td> </tr>
+
+
 <tr class="row1">
-<td class="file">nounit.h</td><td class="proto"><tt>static</tt> NoUnit icu::NoUnit::base()</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+<td class="file">numberrangeformatter.h</td><td class="proto"><tt>enum</tt> UNumberRangeIdentityResult::UNUM_IDENTITY_RESULT_EQUAL_AFTER_ROUNDING</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 63</span></span></td>
 </tr>
 <tr class="row0">
-<td class="file">nounit.h</td><td class="proto"><tt>static</tt> NoUnit icu::NoUnit::percent()</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+<td class="file">numberrangeformatter.h</td><td class="proto"><tt>enum</tt> UNumberRangeIdentityResult::UNUM_IDENTITY_RESULT_EQUAL_BEFORE_ROUNDING</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 63</span></span></td>
 </tr>
 <tr class="row1">
-<td class="file">nounit.h</td><td class="proto"><tt>static</tt> NoUnit icu::NoUnit::permille()</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+<td class="file">numberrangeformatter.h</td><td class="proto"><tt>enum</tt> UNumberRangeIdentityResult::UNUM_IDENTITY_RESULT_NOT_EQUAL</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 63</span></span></td>
 </tr>
 <tr class="row0">
-<td class="file">nounit.h</td><td class="proto"><tt>static</tt> UClassID icu::NoUnit::getStaticClassID()</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+<td class="file">numberrangeformatter.h</td><td class="proto">icu::number::FormattedNumberRange::FormattedNumberRange(FormattedNumberRange&amp;&amp;)</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 63</span></span></td>
 </tr>
+
+<!--
 <tr class="row1">
-<td class="file">numberformatter.h</td><td class="proto">Derived icu::number::NumberFormatterSettings&lt; Derived &gt;::adoptPerUnit(icu::MeasureUnit*) const&amp;</td><td class="" colspan="2" align="center">Draft<br>
-ICU 61</td>
+<td class="file">numberrangeformatter.h</td><td class="proto">icu::number::FormattedNumberRange::FormattedNumberRange(const FormattedNumberRange&amp;)=delete</td><td class="">(missing)</td><td>
+<br>
+<span class=""><span></span>
+<br>
+<b class="bigwarn" title="A new API was introduced that was not tagged.">(untagged)</b></span></td>
 </tr>
+-->
+<tr class="row1"> <td class="proto" colspan="4">&nbsp; </td> </tr>
+
 <tr class="row0">
-<td class="file">numberformatter.h</td><td class="proto">Derived icu::number::NumberFormatterSettings&lt; Derived &gt;::adoptSymbols(NumberingSystem*) const&amp;</td><td class="" colspan="2" align="center">Draft<br>
-ICU 60</td>
+<td class="file">numberrangeformatter.h</td><td class="proto">icu::number::FormattedNumberRange::~FormattedNumberRange()</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 63</span></span></td>
 </tr>
 <tr class="row1">
-<td class="file">numberformatter.h</td><td class="proto">Derived icu::number::NumberFormatterSettings&lt; Derived &gt;::adoptUnit(icu::MeasureUnit*) const&amp;</td><td class="" colspan="2" align="center">Draft<br>
-ICU 60</td>
+<td class="file">numberrangeformatter.h</td><td class="proto">icu::number::LocalizedNumberRangeFormatter::LocalizedNumberRangeFormatter()=default</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 63</span></span></td>
 </tr>
 <tr class="row0">
-<td class="file">numberformatter.h</td><td class="proto">Derived icu::number::NumberFormatterSettings&lt; Derived &gt;::decimal(UNumberDecimalSeparatorDisplay) const&amp;</td><td class="" colspan="2" align="center">Draft<br>
-ICU 60</td>
+<td class="file">numberrangeformatter.h</td><td class="proto">icu::number::LocalizedNumberRangeFormatter::LocalizedNumberRangeFormatter(LocalizedNumberRangeFormatter&amp;&amp;)</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 63</span></span></td>
 </tr>
 <tr class="row1">
-<td class="file">numberformatter.h</td><td class="proto">Derived icu::number::NumberFormatterSettings&lt; Derived &gt;::grouping(UGroupingStrategy) const&amp;</td><td class="" colspan="2" align="center">Draft<br>
-ICU 61</td>
+<td class="file">numberrangeformatter.h</td><td class="proto">icu::number::LocalizedNumberRangeFormatter::LocalizedNumberRangeFormatter(const LocalizedNumberRangeFormatter&amp;)</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 63</span></span></td>
 </tr>
 <tr class="row0">
-<td class="file">numberformatter.h</td><td class="proto">Derived icu::number::NumberFormatterSettings&lt; Derived &gt;::integerWidth(const IntegerWidth&amp;) const&amp;</td><td class="" colspan="2" align="center">Draft<br>
-ICU 60</td>
+<td class="file">numberrangeformatter.h</td><td class="proto">icu::number::LocalizedNumberRangeFormatter::~LocalizedNumberRangeFormatter()</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 63</span></span></td>
 </tr>
+
+<!--
 <tr class="row1">
-<td class="file">numberformatter.h</td><td class="proto">Derived icu::number::NumberFormatterSettings&lt; Derived &gt;::notation(const Notation&amp;) const&amp;</td><td class="" colspan="2" align="center">Draft<br>
-ICU 60</td>
+<td class="file">numberrangeformatter.h</td><td class="proto">icu::number::NumberRangeFormatter::NumberRangeFormatter()=delete</td><td class="">(missing)</td><td>
+<br>
+<span class=""><span></span>
+<br>
+<b class="bigwarn" title="A new API was introduced that was not tagged.">(untagged)</b></span></td>
 </tr>
+-->
+<tr class="row1"> <td class="proto" colspan="4">&nbsp; </td> </tr>
+
+
 <tr class="row0">
-<td class="file">numberformatter.h</td><td class="proto">Derived icu::number::NumberFormatterSettings&lt; Derived &gt;::perUnit(const icu::MeasureUnit&amp;) const&amp;</td><td class="" colspan="2" align="center">Draft<br>
-ICU 61</td>
+<td class="file">numberrangeformatter.h</td><td class="proto">icu::number::UnlocalizedNumberRangeFormatter::UnlocalizedNumberRangeFormatter()=default</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 63</span></span></td>
 </tr>
 <tr class="row1">
-<td class="file">numberformatter.h</td><td class="proto">Derived icu::number::NumberFormatterSettings&lt; Derived &gt;::sign(UNumberSignDisplay) const&amp;</td><td class="" colspan="2" align="center">Draft<br>
-ICU 60</td>
+<td class="file">numberrangeformatter.h</td><td class="proto">icu::number::UnlocalizedNumberRangeFormatter::UnlocalizedNumberRangeFormatter(UnlocalizedNumberRangeFormatter&amp;&amp;)</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 63</span></span></td>
 </tr>
 <tr class="row0">
-<td class="file">numberformatter.h</td><td class="proto">Derived icu::number::NumberFormatterSettings&lt; Derived &gt;::symbols(const DecimalFormatSymbols&amp;) const&amp;</td><td class="" colspan="2" align="center">Draft<br>
-ICU 60</td>
+<td class="file">numberrangeformatter.h</td><td class="proto">icu::number::UnlocalizedNumberRangeFormatter::UnlocalizedNumberRangeFormatter(const UnlocalizedNumberRangeFormatter&amp;)</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 63</span></span></td>
 </tr>
 <tr class="row1">
-<td class="file">numberformatter.h</td><td class="proto">Derived icu::number::NumberFormatterSettings&lt; Derived &gt;::unit(const icu::MeasureUnit&amp;) const&amp;</td><td class="" colspan="2" align="center">Draft<br>
-ICU 60</td>
+<td class="file">numberrangeformatter.h</td><td class="proto"><tt>static</tt> LocalizedNumberRangeFormatter icu::number::NumberRangeFormatter::withLocale(const Locale&amp;)</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 63</span></span></td>
 </tr>
 <tr class="row0">
-<td class="file">numberformatter.h</td><td class="proto">Derived icu::number::NumberFormatterSettings&lt; Derived &gt;::unitWidth(UNumberUnitWidth) const&amp;</td><td class="" colspan="2" align="center">Draft<br>
-ICU 60</td>
+<td class="file">numberrangeformatter.h</td><td class="proto"><tt>static</tt> UnlocalizedNumberRangeFormatter icu::number::NumberRangeFormatter::with()</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 63</span></span></td>
 </tr>
 <tr class="row1">
-<td class="file">numberformatter.h</td><td class="proto">FormattedNumber icu::number::LocalizedNumberFormatter::formatDecimal(StringPiece, UErrorCode&amp;)</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+<td class="file">numberrangeformatter.h</td><td class="proto">void icu::number::FormattedNumberRange::getAllFieldPositions(FieldPositionIterator&amp;, UErrorCode&amp;) const</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 63</span></span></td>
 </tr>
+
+<!--
 <tr class="row0">
-<td class="file">numberformatter.h</td><td class="proto">FormattedNumber icu::number::LocalizedNumberFormatter::formatDouble(double, UErrorCode&amp;)</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+<td class="file">numberrangeformatter.h</td><td class="proto">void icu::number::LocalizedNumberRangeFormatter::formatImpl(impl::UFormattedNumberRangeData&amp;, bool, UErrorCode&amp;) const</td><td class="">(missing)</td><td>Internal<br>
+<span class=""><span></span></span></td>
 </tr>
+-->
+
+<!--
 <tr class="row1">
-<td class="file">numberformatter.h</td><td class="proto">FormattedNumber icu::number::LocalizedNumberFormatter::formatInt(int64_t, UErrorCode&amp;)</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+<td class="file">platform.h</td><td class="proto"><tt>#define</tt> CYGWINMSVC</td><td class="">(missing)</td><td>Internal<br>
+<span class=""><span></span></span></td>
 </tr>
 <tr class="row0">
-<td class="file">numberformatter.h</td><td class="proto">IntegerWidth icu::number::IntegerWidth::truncateAt(int32_t)</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+<td class="file">platform.h</td><td class="proto"><tt>#define</tt> U_DECLARE_UTF16</td><td class="">(missing)</td><td>Internal<br>
+<span class=""><span></span></span></td>
 </tr>
 <tr class="row1">
-<td class="file">numberformatter.h</td><td class="proto">LocalizedNumberFormatter icu::number::UnlocalizedNumberFormatter::locale(const icu::Locale&amp;) const&amp;</td><td class="" colspan="2" align="center">Draft<br>
-ICU 60</td>
+<td class="file">platform.h</td><td class="proto"><tt>#define</tt> U_NOEXCEPT</td><td class="">(missing)</td><td>Internal<br>
+<span class=""><span></span></span></td>
 </tr>
 <tr class="row0">
-<td class="file">numberformatter.h</td><td class="proto">Precision icu::number::CurrencyPrecision::withCurrency(const CurrencyUnit&amp;) const</td><td class="" colspan="2" align="center">Draft<br>
-ICU 60</td>
+<td class="file">platform.h</td><td class="proto"><tt>#define</tt> __has_declspec_attribute</td><td class="">(missing)</td><td>Internal<br>
+<span class=""><span></span></span></td>
 </tr>
+-->
+<tr class="row0"> <td class="proto" colspan="4">&nbsp; </td> </tr>
+
+
 <tr class="row1">
-<td class="file">numberformatter.h</td><td class="proto">Precision icu::number::FractionPrecision::withMaxDigits(int32_t)</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+<td class="file">reldatefmt.h</td><td class="proto"><tt>enum</tt> UDateAbsoluteUnit::UDAT_ABSOLUTE_QUARTER</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 63</span></span></td>
 </tr>
 <tr class="row0">
-<td class="file">numberformatter.h</td><td class="proto">Precision icu::number::FractionPrecision::withMinDigits(int32_t)</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+<td class="file">uchar.h</td><td class="proto">const UCPMap* u_getIntPropertyMap(UProperty, UErrorCode*)</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 63</span></span></td>
 </tr>
 <tr class="row1">
-<td class="file">numberformatter.h</td><td class="proto">Precision icu::number::IncrementPrecision::withMinFraction(int32_t)</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+<td class="file">uchar.h</td><td class="proto">const USet* u_getBinaryPropertySet(UProperty, UErrorCode*)</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 63</span></span></td>
 </tr>
 <tr class="row0">
-<td class="file">numberformatter.h</td><td class="proto">ScientificNotation icu::number::ScientificNotation::withExponentSignDisplay(UNumberSignDisplay)</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UIndicPositionalCategory::U_INPC_BOTTOM_AND_LEFT</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 63</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
 </tr>
 <tr class="row1">
-<td class="file">numberformatter.h</td><td class="proto">ScientificNotation icu::number::ScientificNotation::withMinExponentDigits(int32_t)</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UIndicPositionalCategory::U_INPC_BOTTOM_AND_RIGHT</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 63</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
 </tr>
 <tr class="row0">
-<td class="file">numberformatter.h</td><td class="proto">UBool icu::number::NumberFormatterSettings&lt; Derived &gt;::copyErrorTo(UErrorCode&amp;)</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UIndicPositionalCategory::U_INPC_BOTTOM</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 63</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
 </tr>
 <tr class="row1">
-<td class="file">numberformatter.h</td><td class="proto">icu::number::FormattedNumber::~FormattedNumber()</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UIndicPositionalCategory::U_INPC_LEFT_AND_RIGHT</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 63</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
 </tr>
 <tr class="row0">
-<td class="file">numberformatter.h</td><td class="proto">icu::number::LocalizedNumberFormatter::LocalizedNumberFormatter(const LocalizedNumberFormatter&amp;)</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UIndicPositionalCategory::U_INPC_LEFT</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 63</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
 </tr>
 <tr class="row1">
-<td class="file">numberformatter.h</td><td class="proto">icu::number::LocalizedNumberFormatter::~LocalizedNumberFormatter()</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UIndicPositionalCategory::U_INPC_NA</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 63</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
 </tr>
 <tr class="row0">
-<td class="file">numberformatter.h</td><td class="proto">icu::number::UnlocalizedNumberFormatter::UnlocalizedNumberFormatter(const UnlocalizedNumberFormatter&amp;)</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UIndicPositionalCategory::U_INPC_OVERSTRUCK</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 63</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
 </tr>
 <tr class="row1">
-<td class="file">numberformatter.h</td><td class="proto"><tt>static</tt> CompactNotation icu::number::Notation::compactLong()</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UIndicPositionalCategory::U_INPC_RIGHT</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 63</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
 </tr>
 <tr class="row0">
-<td class="file">numberformatter.h</td><td class="proto"><tt>static</tt> CompactNotation icu::number::Notation::compactShort()</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UIndicPositionalCategory::U_INPC_TOP_AND_BOTTOM_AND_RIGHT</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 63</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
 </tr>
 <tr class="row1">
-<td class="file">numberformatter.h</td><td class="proto"><tt>static</tt> CurrencyPrecision icu::number::Precision::currency(UCurrencyUsage)</td><td class="" colspan="2" align="center">Draft<br>
-ICU 60</td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UIndicPositionalCategory::U_INPC_TOP_AND_BOTTOM</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 63</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
 </tr>
 <tr class="row0">
-<td class="file">numberformatter.h</td><td class="proto"><tt>static</tt> FractionPrecision icu::number::Precision::fixedFraction(int32_t)</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UIndicPositionalCategory::U_INPC_TOP_AND_LEFT_AND_RIGHT</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 63</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
 </tr>
 <tr class="row1">
-<td class="file">numberformatter.h</td><td class="proto"><tt>static</tt> FractionPrecision icu::number::Precision::integer()</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UIndicPositionalCategory::U_INPC_TOP_AND_LEFT</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 63</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
 </tr>
 <tr class="row0">
-<td class="file">numberformatter.h</td><td class="proto"><tt>static</tt> FractionPrecision icu::number::Precision::maxFraction(int32_t)</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UIndicPositionalCategory::U_INPC_TOP_AND_RIGHT</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 63</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
 </tr>
 <tr class="row1">
-<td class="file">numberformatter.h</td><td class="proto"><tt>static</tt> FractionPrecision icu::number::Precision::minFraction(int32_t)</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UIndicPositionalCategory::U_INPC_TOP</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 63</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
 </tr>
 <tr class="row0">
-<td class="file">numberformatter.h</td><td class="proto"><tt>static</tt> FractionPrecision icu::number::Precision::minMaxFraction(int32_t, int32_t)</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UIndicPositionalCategory::U_INPC_VISUAL_ORDER_LEFT</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 63</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
 </tr>
 <tr class="row1">
-<td class="file">numberformatter.h</td><td class="proto"><tt>static</tt> IncrementPrecision icu::number::Precision::increment(double)</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UIndicSyllabicCategory::U_INSC_AVAGRAHA</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 63</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
 </tr>
 <tr class="row0">
-<td class="file">numberformatter.h</td><td class="proto"><tt>static</tt> IntegerWidth icu::number::IntegerWidth::zeroFillTo(int32_t)</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UIndicSyllabicCategory::U_INSC_BINDU</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 63</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
 </tr>
 <tr class="row1">
-<td class="file">numberformatter.h</td><td class="proto"><tt>static</tt> LocalizedNumberFormatter icu::number::NumberFormatter::withLocale(const Locale&amp;)</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UIndicSyllabicCategory::U_INSC_BRAHMI_JOINING_NUMBER</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 63</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
 </tr>
 <tr class="row0">
-<td class="file">numberformatter.h</td><td class="proto"><tt>static</tt> Precision icu::number::Precision::unlimited()</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UIndicSyllabicCategory::U_INSC_CANTILLATION_MARK</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 63</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
 </tr>
 <tr class="row1">
-<td class="file">numberformatter.h</td><td class="proto"><tt>static</tt> ScientificNotation icu::number::Notation::engineering()</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UIndicSyllabicCategory::U_INSC_CONSONANT_DEAD</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 63</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
 </tr>
 <tr class="row0">
-<td class="file">numberformatter.h</td><td class="proto"><tt>static</tt> ScientificNotation icu::number::Notation::scientific()</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UIndicSyllabicCategory::U_INSC_CONSONANT_FINAL</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 63</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
 </tr>
 <tr class="row1">
-<td class="file">numberformatter.h</td><td class="proto"><tt>static</tt> SimpleNotation icu::number::Notation::simple()</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UIndicSyllabicCategory::U_INSC_CONSONANT_HEAD_LETTER</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 63</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
 </tr>
 <tr class="row0">
-<td class="file">numberformatter.h</td><td class="proto"><tt>static</tt> UnlocalizedNumberFormatter icu::number::NumberFormatter::with()</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UIndicSyllabicCategory::U_INSC_CONSONANT_INITIAL_POSTFIXED</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 63</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
 </tr>
 <tr class="row1">
-<td class="file">numfmt.h</td><td class="proto">ERoundingMode icu::NumberFormat::getRoundingMode()</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UIndicSyllabicCategory::U_INSC_CONSONANT_KILLER</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 63</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
 </tr>
 <tr class="row0">
-<td class="file">numfmt.h</td><td class="proto">void icu::NumberFormat::setRoundingMode(ERoundingMode)</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UIndicSyllabicCategory::U_INSC_CONSONANT_MEDIAL</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 63</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
 </tr>
 <tr class="row1">
-<td class="file">rbnf.h</td><td class="proto">ERoundingMode icu::RuleBasedNumberFormat::getRoundingMode()</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UIndicSyllabicCategory::U_INSC_CONSONANT_PLACEHOLDER</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 63</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
 </tr>
 <tr class="row0">
-<td class="file">rbnf.h</td><td class="proto">void icu::RuleBasedNumberFormat::setRoundingMode(ERoundingMode)</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UIndicSyllabicCategory::U_INSC_CONSONANT_PRECEDING_REPHA</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 63</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
 </tr>
 <tr class="row1">
-<td class="file">stringoptions.h</td><td class="proto"><tt>#define</tt> U_EDITS_NO_RESET</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UIndicSyllabicCategory::U_INSC_CONSONANT_PREFIXED</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 63</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
 </tr>
 <tr class="row0">
-<td class="file">stringoptions.h</td><td class="proto"><tt>#define</tt> U_OMIT_UNCHANGED_TEXT</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UIndicSyllabicCategory::U_INSC_CONSONANT_SUBJOINED</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 63</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
 </tr>
 <tr class="row1">
-<td class="file">stringoptions.h</td><td class="proto"><tt>#define</tt> U_TITLECASE_ADJUST_TO_CASED</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UIndicSyllabicCategory::U_INSC_CONSONANT_SUCCEEDING_REPHA</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 63</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
 </tr>
 <tr class="row0">
-<td class="file">stringoptions.h</td><td class="proto"><tt>#define</tt> U_TITLECASE_SENTENCES</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UIndicSyllabicCategory::U_INSC_CONSONANT_WITH_STACKER</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 63</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
 </tr>
 <tr class="row1">
-<td class="file">stringoptions.h</td><td class="proto"><tt>#define</tt> U_TITLECASE_WHOLE_STRING</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UIndicSyllabicCategory::U_INSC_CONSONANT</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 63</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
 </tr>
 <tr class="row0">
-<td class="file">ucurr.h</td><td class="proto"><tt>enum</tt> UCurrNameStyle::UCURR_NARROW_SYMBOL_NAME</td><td class="" colspan="2" align="center">Draft<br>ICU 61</td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UIndicSyllabicCategory::U_INSC_GEMINATION_MARK</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 63</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
 </tr>
 <tr class="row1">
-<td class="file">udatpg.h</td><td class="proto"><tt>enum</tt> UDateTimePGDisplayWidth::UDATPG_ABBREVIATED</td><td class="" colspan="2" align="center">Draft<br>ICU 61</td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UIndicSyllabicCategory::U_INSC_INVISIBLE_STACKER</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 63</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
 </tr>
 <tr class="row0">
-<td class="file">udatpg.h</td><td class="proto"><tt>enum</tt> UDateTimePGDisplayWidth::UDATPG_NARROW</td><td class="" colspan="2" align="center">Draft<br>ICU 61</td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UIndicSyllabicCategory::U_INSC_JOINER</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 63</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
 </tr>
 <tr class="row1">
-<td class="file">udatpg.h</td><td class="proto"><tt>enum</tt> UDateTimePGDisplayWidth::UDATPG_WIDE</td><td class="" colspan="2" align="center">Draft<br>ICU 61</td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UIndicSyllabicCategory::U_INSC_MODIFYING_LETTER</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 63</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
 </tr>
 <tr class="row0">
-<td class="file">udatpg.h</td><td class="proto">int32_t udatpg_getFieldDisplayName(const UDateTimePatternGenerator*, UDateTimePatternField, UDateTimePGDisplayWidth, UChar*, int32_t, UErrorCode*)</td><td class="" colspan="2" align="center">Draft<br>ICU 61</td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UIndicSyllabicCategory::U_INSC_NON_JOINER</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 63</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
 </tr>
 <tr class="row1">
-<td class="file">unistr.h</td><td class="proto">UnicodeString&amp; icu::UnicodeString::moveFrom(UnicodeString&amp;)</td><td class="" colspan="2" align="center">Draft<br>ICU 56</td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UIndicSyllabicCategory::U_INSC_NUKTA</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 63</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
 </tr>
 <tr class="row0">
-<td class="file">unumberformatter.h</td><td class="proto"><tt>enum</tt> UGroupingStrategy::UNUM_GROUPING_AUTO</td><td class="" colspan="2" align="center">Draft<br>ICU 61</td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UIndicSyllabicCategory::U_INSC_NUMBER_JOINER</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 63</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
 </tr>
 <tr class="row1">
-<td class="file">unumberformatter.h</td><td class="proto"><tt>enum</tt> UGroupingStrategy::UNUM_GROUPING_MIN2</td><td class="" colspan="2" align="center">Draft<br>ICU 61</td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UIndicSyllabicCategory::U_INSC_NUMBER</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 63</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
 </tr>
 <tr class="row0">
-<td class="file">unumberformatter.h</td><td class="proto"><tt>enum</tt> UGroupingStrategy::UNUM_GROUPING_OFF</td><td class="" colspan="2" align="center">Draft<br>ICU 61</td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UIndicSyllabicCategory::U_INSC_OTHER</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 63</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
 </tr>
 <tr class="row1">
-<td class="file">unumberformatter.h</td><td class="proto"><tt>enum</tt> UGroupingStrategy::UNUM_GROUPING_ON_ALIGNED</td><td class="" colspan="2" align="center">Draft<br>ICU 61</td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UIndicSyllabicCategory::U_INSC_PURE_KILLER</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 63</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
 </tr>
 <tr class="row0">
-<td class="file">unumberformatter.h</td><td class="proto"><tt>enum</tt> UGroupingStrategy::UNUM_GROUPING_THOUSANDS</td><td class="" colspan="2" align="center">Draft<br>ICU 61</td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UIndicSyllabicCategory::U_INSC_REGISTER_SHIFTER</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 63</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
 </tr>
 <tr class="row1">
-<td class="file">unumberformatter.h</td><td class="proto"><tt>enum</tt> UNumberDecimalSeparatorDisplay::UNUM_DECIMAL_SEPARATOR_ALWAYS</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UIndicSyllabicCategory::U_INSC_SYLLABLE_MODIFIER</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 63</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
 </tr>
 <tr class="row0">
-<td class="file">unumberformatter.h</td><td class="proto"><tt>enum</tt> UNumberDecimalSeparatorDisplay::UNUM_DECIMAL_SEPARATOR_AUTO</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UIndicSyllabicCategory::U_INSC_TONE_LETTER</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 63</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
 </tr>
 <tr class="row1">
-<td class="file">unumberformatter.h</td><td class="proto"><tt>enum</tt> UNumberSignDisplay::UNUM_SIGN_ACCOUNTING_ALWAYS</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UIndicSyllabicCategory::U_INSC_TONE_MARK</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 63</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
 </tr>
 <tr class="row0">
-<td class="file">unumberformatter.h</td><td class="proto"><tt>enum</tt> UNumberSignDisplay::UNUM_SIGN_ACCOUNTING_EXCEPT_ZERO</td><td class="" colspan="2" align="center">Draft<br>ICU 61</td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UIndicSyllabicCategory::U_INSC_VIRAMA</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 63</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
 </tr>
 <tr class="row1">
-<td class="file">unumberformatter.h</td><td class="proto"><tt>enum</tt> UNumberSignDisplay::UNUM_SIGN_ACCOUNTING</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UIndicSyllabicCategory::U_INSC_VISARGA</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 63</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
 </tr>
 <tr class="row0">
-<td class="file">unumberformatter.h</td><td class="proto"><tt>enum</tt> UNumberSignDisplay::UNUM_SIGN_ALWAYS</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UIndicSyllabicCategory::U_INSC_VOWEL_DEPENDENT</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 63</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
 </tr>
 <tr class="row1">
-<td class="file">unumberformatter.h</td><td class="proto"><tt>enum</tt> UNumberSignDisplay::UNUM_SIGN_AUTO</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UIndicSyllabicCategory::U_INSC_VOWEL_INDEPENDENT</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 63</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
 </tr>
 <tr class="row0">
-<td class="file">unumberformatter.h</td><td class="proto"><tt>enum</tt> UNumberSignDisplay::UNUM_SIGN_EXCEPT_ZERO</td><td class="" colspan="2" align="center">Draft<br>ICU 61</td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UIndicSyllabicCategory::U_INSC_VOWEL</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 63</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
 </tr>
 <tr class="row1">
-<td class="file">unumberformatter.h</td><td class="proto"><tt>enum</tt> UNumberSignDisplay::UNUM_SIGN_NEVER</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UProperty::UCHAR_INDIC_POSITIONAL_CATEGORY</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 63</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
 </tr>
 <tr class="row0">
-<td class="file">unumberformatter.h</td><td class="proto"><tt>enum</tt> UNumberUnitWidth::UNUM_UNIT_WIDTH_FULL_NAME</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UProperty::UCHAR_INDIC_SYLLABIC_CATEGORY</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 63</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
 </tr>
 <tr class="row1">
-<td class="file">unumberformatter.h</td><td class="proto"><tt>enum</tt> UNumberUnitWidth::UNUM_UNIT_WIDTH_HIDDEN</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UProperty::UCHAR_VERTICAL_ORIENTATION</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 63</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
 </tr>
 <tr class="row0">
-<td class="file">unumberformatter.h</td><td class="proto"><tt>enum</tt> UNumberUnitWidth::UNUM_UNIT_WIDTH_ISO_CODE</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UVerticalOrientation::U_VO_ROTATED</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 63</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
 </tr>
 <tr class="row1">
-<td class="file">unumberformatter.h</td><td class="proto"><tt>enum</tt> UNumberUnitWidth::UNUM_UNIT_WIDTH_NARROW</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UVerticalOrientation::U_VO_TRANSFORMED_ROTATED</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 63</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
 </tr>
 <tr class="row0">
-<td class="file">unumberformatter.h</td><td class="proto"><tt>enum</tt> UNumberUnitWidth::UNUM_UNIT_WIDTH_SHORT</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UVerticalOrientation::U_VO_TRANSFORMED_UPRIGHT</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 63</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
 </tr>
 <tr class="row1">
-<td class="file">uregex.h</td><td class="proto"><tt>enum</tt> URegexpFlag::UREGEX_CANON_EQ</td><td class="" colspan="2" align="center">Draft<br>ICU 2.4</td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UVerticalOrientation::U_VO_UPRIGHT</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 63</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
 </tr>
+
+<!--
 <tr class="row0">
-<td class="file">utf16.h</td><td class="proto"><tt>#define</tt> U16_GET_OR_FFFD</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+<td class="file">uconfig.h</td><td class="proto"><tt>#define</tt> UCONFIG_ENABLE_PLUGINS</td><td class="">(missing)</td><td>Internal<br>
+<span class=""><span></span></span></td>
 </tr>
 <tr class="row1">
-<td class="file">utf16.h</td><td class="proto"><tt>#define</tt> U16_NEXT_OR_FFFD</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+<td class="file">uconfig.h</td><td class="proto"><tt>#define</tt> U_HAVE_LIB_SUFFIX</td><td class="">(missing)</td><td>Internal<br>
+<span class=""><span></span></span></td>
 </tr>
+-->
+
 <tr class="row0">
-<td class="file">utf16.h</td><td class="proto"><tt>#define</tt> U16_PREV_OR_FFFD</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+<td class="file">ucpmap.h</td><td class="proto">UChar32 ucpmap_getRange(const UCPMap*, UChar32, UCPMapRangeOption, uint32_t, UCPMapValueFilter*, const void*, uint32_t*)</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 63</span></span></td>
 </tr>
 <tr class="row1">
-<td class="file">utf8.h</td><td class="proto"><tt>#define</tt> U8_TRUNCATE_IF_INCOMPLETE</td><td class="" colspan="2" align="center">Draft<br>ICU 61</td>
+<td class="file">ucpmap.h</td><td class="proto"><tt>enum</tt> UCPMapRangeOption::UCPMAP_RANGE_FIXED_ALL_SURROGATES</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 63</span></span></td>
+</tr>
+<tr class="row0">
+<td class="file">ucpmap.h</td><td class="proto"><tt>enum</tt> UCPMapRangeOption::UCPMAP_RANGE_FIXED_LEAD_SURROGATES</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 63</span></span></td>
+</tr>
+<tr class="row1">
+<td class="file">ucpmap.h</td><td class="proto"><tt>enum</tt> UCPMapRangeOption::UCPMAP_RANGE_NORMAL</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 63</span></span></td>
+</tr>
+<tr class="row0">
+<td class="file">ucpmap.h</td><td class="proto">uint32_t ucpmap_get(const UCPMap*, UChar32)</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 63</span></span></td>
+</tr>
+<tr class="row1">
+<td class="file">ucptrie.h</td><td class="proto"><tt>#define</tt> UCPTRIE_16</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 63</span></span></td>
+</tr>
+<tr class="row0">
+<td class="file">ucptrie.h</td><td class="proto"><tt>#define</tt> UCPTRIE_32</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 63</span></span></td>
 </tr>
+<tr class="row1">
+<td class="file">ucptrie.h</td><td class="proto"><tt>#define</tt> UCPTRIE_8</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 63</span></span></td>
+</tr>
+<tr class="row0">
+<td class="file">ucptrie.h</td><td class="proto"><tt>#define</tt> UCPTRIE_ASCII_GET</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 63</span></span></td>
+</tr>
+<tr class="row1">
+<td class="file">ucptrie.h</td><td class="proto"><tt>#define</tt> UCPTRIE_FAST_BMP_GET</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 63</span></span></td>
+</tr>
+<tr class="row0">
+<td class="file">ucptrie.h</td><td class="proto"><tt>#define</tt> UCPTRIE_FAST_GET</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 63</span></span></td>
+</tr>
+<tr class="row1">
+<td class="file">ucptrie.h</td><td class="proto"><tt>#define</tt> UCPTRIE_FAST_SUPP_GET</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 63</span></span></td>
+</tr>
+<tr class="row0">
+<td class="file">ucptrie.h</td><td class="proto"><tt>#define</tt> UCPTRIE_FAST_U16_NEXT</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 63</span></span></td>
+</tr>
+<tr class="row1">
+<td class="file">ucptrie.h</td><td class="proto"><tt>#define</tt> UCPTRIE_FAST_U16_PREV</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 63</span></span></td>
+</tr>
+<tr class="row0">
+<td class="file">ucptrie.h</td><td class="proto"><tt>#define</tt> UCPTRIE_FAST_U8_NEXT</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 63</span></span></td>
+</tr>
+<tr class="row1">
+<td class="file">ucptrie.h</td><td class="proto"><tt>#define</tt> UCPTRIE_FAST_U8_PREV</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 63</span></span></td>
+</tr>
+<tr class="row0">
+<td class="file">ucptrie.h</td><td class="proto"><tt>#define</tt> UCPTRIE_SMALL_GET</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 63</span></span></td>
+</tr>
+<tr class="row1">
+<td class="file">ucptrie.h</td><td class="proto">UCPTrie* ucptrie_openFromBinary(UCPTrieType, UCPTrieValueWidth, const void*, int32_t, int32_t*, UErrorCode*)</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 63</span></span></td>
+</tr>
+<tr class="row0">
+<td class="file">ucptrie.h</td><td class="proto">UCPTrieType ucptrie_getType(const UCPTrie*)</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 63</span></span></td>
+</tr>
+<tr class="row1">
+<td class="file">ucptrie.h</td><td class="proto">UCPTrieValueWidth ucptrie_getValueWidth(const UCPTrie*)</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 63</span></span></td>
+</tr>
+<tr class="row0">
+<td class="file">ucptrie.h</td><td class="proto">UChar32 ucptrie_getRange(const UCPTrie*, UChar32, UCPMapRangeOption, uint32_t, UCPMapValueFilter*, const void*, uint32_t*)</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 63</span></span></td>
+</tr>
+<tr class="row1">
+<td class="file">ucptrie.h</td><td class="proto"><tt>enum</tt> UCPTrieType::UCPTRIE_TYPE_ANY</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 63</span></span></td>
+</tr>
+<tr class="row0">
+<td class="file">ucptrie.h</td><td class="proto"><tt>enum</tt> UCPTrieType::UCPTRIE_TYPE_FAST</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 63</span></span></td>
+</tr>
+<tr class="row1">
+<td class="file">ucptrie.h</td><td class="proto"><tt>enum</tt> UCPTrieType::UCPTRIE_TYPE_SMALL</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 63</span></span></td>
+</tr>
+<tr class="row0">
+<td class="file">ucptrie.h</td><td class="proto"><tt>enum</tt> UCPTrieValueWidth::UCPTRIE_VALUE_BITS_16</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 63</span></span></td>
+</tr>
+<tr class="row1">
+<td class="file">ucptrie.h</td><td class="proto"><tt>enum</tt> UCPTrieValueWidth::UCPTRIE_VALUE_BITS_32</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 63</span></span></td>
+</tr>
+<tr class="row0">
+<td class="file">ucptrie.h</td><td class="proto"><tt>enum</tt> UCPTrieValueWidth::UCPTRIE_VALUE_BITS_8</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 63</span></span></td>
+</tr>
+<tr class="row1">
+<td class="file">ucptrie.h</td><td class="proto"><tt>enum</tt> UCPTrieValueWidth::UCPTRIE_VALUE_BITS_ANY</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 63</span></span></td>
+</tr>
+<tr class="row0">
+<td class="file">ucptrie.h</td><td class="proto">int32_t ucptrie_toBinary(const UCPTrie*, void*, int32_t, UErrorCode*)</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 63</span></span></td>
+</tr>
+<tr class="row1">
+<td class="file">ucptrie.h</td><td class="proto">uint32_t ucptrie_get(const UCPTrie*, UChar32)</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 63</span></span></td>
+</tr>
+<tr class="row0">
+<td class="file">ucptrie.h</td><td class="proto">void ucptrie_close(UCPTrie*)</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 63</span></span></td>
+</tr>
+<tr class="row1">
+<td class="file">ulistformatter.h</td><td class="proto"><tt>enum</tt> UListFormatterField::ULISTFMT_ELEMENT_FIELD</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 63</span></span></td>
+</tr>
+<tr class="row0">
+<td class="file">ulistformatter.h</td><td class="proto"><tt>enum</tt> UListFormatterField::ULISTFMT_LITERAL_FIELD</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 63</span></span></td>
+</tr>
+
+<!--
+<tr class="row1">
+<td class="file">umachine.h</td><td class="proto"><tt>#define</tt> U_FINAL</td><td class="">(missing)</td><td>Internal<br>
+<span class=""><span></span></span></td>
+</tr>
+<tr class="row0">
+<td class="file">umachine.h</td><td class="proto"><tt>#define</tt> U_OVERRIDE</td><td class="">(missing)</td><td>Internal<br>
+<span class=""><span></span></span></td>
+</tr>
+-->
+
+<tr class="row1">
+<td class="file">umutablecptrie.h</td><td class="proto">UCPTrie* umutablecptrie_buildImmutable(UMutableCPTrie*, UCPTrieType, UCPTrieValueWidth, UErrorCode*)</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 63</span></span></td>
+</tr>
+<tr class="row0">
+<td class="file">umutablecptrie.h</td><td class="proto">UMutableCPTrie* umutablecptrie_clone(const UMutableCPTrie*, UErrorCode*)</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 63</span></span></td>
+</tr>
+<tr class="row1">
+<td class="file">umutablecptrie.h</td><td class="proto">UMutableCPTrie* umutablecptrie_fromUCPMap(const UCPMap*, UErrorCode*)</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 63</span></span></td>
+</tr>
+<tr class="row0">
+<td class="file">umutablecptrie.h</td><td class="proto">UMutableCPTrie* umutablecptrie_fromUCPTrie(const UCPTrie*, UErrorCode*)</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 63</span></span></td>
+</tr>
+<tr class="row1">
+<td class="file">umutablecptrie.h</td><td class="proto">UMutableCPTrie* umutablecptrie_open(uint32_t, uint32_t, UErrorCode*)</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 63</span></span></td>
+</tr>
+<tr class="row0">
+<td class="file">umutablecptrie.h</td><td class="proto">UChar32 umutablecptrie_getRange(const UMutableCPTrie*, UChar32, UCPMapRangeOption, uint32_t, UCPMapValueFilter*, const void*, uint32_t*)</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 63</span></span></td>
+</tr>
+<tr class="row1">
+<td class="file">umutablecptrie.h</td><td class="proto">uint32_t umutablecptrie_get(const UMutableCPTrie*, UChar32)</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 63</span></span></td>
+</tr>
+<tr class="row0">
+<td class="file">umutablecptrie.h</td><td class="proto">void umutablecptrie_close(UMutableCPTrie*)</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 63</span></span></td>
+</tr>
+<tr class="row1">
+<td class="file">umutablecptrie.h</td><td class="proto">void umutablecptrie_set(UMutableCPTrie*, UChar32, uint32_t, UErrorCode*)</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 63</span></span></td>
+</tr>
+<tr class="row0">
+<td class="file">umutablecptrie.h</td><td class="proto">void umutablecptrie_setRange(UMutableCPTrie*, UChar32, UChar32, uint32_t, UErrorCode*)</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 63</span></span></td>
+</tr>
+
+<!-- 
+<tr class="row1">
+<td class="file">unumberformatter.h</td><td class="proto"><tt>enum</tt> UNumberGroupingStrategy::UNUM_GROUPING_AUTO</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 61</span>
+<br>
+<b class="bigwarn" title="A draft API has the wrong version.">(should be ICU 63)</b></span></td>
+</tr>
+<tr class="row0">
+<td class="file">unumberformatter.h</td><td class="proto"><tt>enum</tt> UNumberGroupingStrategy::UNUM_GROUPING_COUNT</td><td class="">(missing)</td><td>Internal<br>
+<span class=""><span>ICU 62</span></span></td>
+</tr>
+<tr class="row1">
+<td class="file">unumberformatter.h</td><td class="proto"><tt>enum</tt> UNumberGroupingStrategy::UNUM_GROUPING_MIN2</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 61</span>
+<br>
+<b class="bigwarn" title="A draft API has the wrong version.">(should be ICU 63)</b></span></td>
+</tr>
+<tr class="row0">
+<td class="file">unumberformatter.h</td><td class="proto"><tt>enum</tt> UNumberGroupingStrategy::UNUM_GROUPING_OFF</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 61</span>
+<br>
+<b class="bigwarn" title="A draft API has the wrong version.">(should be ICU 63)</b></span></td>
+</tr>
+<tr class="row1">
+<td class="file">unumberformatter.h</td><td class="proto"><tt>enum</tt> UNumberGroupingStrategy::UNUM_GROUPING_ON_ALIGNED</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 61</span>
+<br>
+<b class="bigwarn" title="A draft API has the wrong version.">(should be ICU 63)</b></span></td>
+</tr>
+<tr class="row0">
+<td class="file">unumberformatter.h</td><td class="proto"><tt>enum</tt> UNumberGroupingStrategy::UNUM_GROUPING_THOUSANDS</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 61</span>
+<br>
+<b class="bigwarn" title="A draft API has the wrong version.">(should be ICU 63)</b></span></td>
+</tr>
+-->
+
+<!--
+<tr class="row1">
+<td class="file">uobject.h</td><td class="proto"><tt>#define</tt> U_NO_THROW</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 4.2</span></span></td>
+</tr>
+<tr class="row0">
+<td class="file">utypes.h</td><td class="proto"><tt>#define</tt> U_COMBINED_IMPLEMENTATION</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 2.0</span></span></td>
+</tr>
+-->
+
 </table>
-</div>
 <P></P>
 <a href="#_top">(jump back to top)</a>
 <hr>
-<a name="purevirtual"></a>
-<h2>Signature Simplifications</h2>
-<i>This section shows cases where the signature was "simplified" for the sake of comparison. The simplified form is in bold, followed by
-       all possible variations in "original" form.</i>
+<a name="other"></a>
+<h2>Other existing drafts in ICU 63</h2>
 <div class="other">
 <table BORDER="1" class="genTable">
 <THEAD>
 <tr>
-<th>File</th><th>API</th><th>Status</th><th>In ICU version</th>
+<th>File</th><th>API</th><th>ICU 62</th><th>ICU 63</th>
 </tr>
 </THEAD>
-
-<tr>
-<td class="file">numberformatter.h</td><td class="proto"><strong>Derived icu::number::NumberFormatterSettings&lt; Derived &gt;::decimal(UNumberDecimalSeparatorDisplay) const&amp;</strong></td><td class="">Draft<br>ICU 60</td><td class="">ICU 62</td>
+<tr class="row1">
+<td class="file">decimfmt.h</td><td class="proto">const number::LocalizedNumberFormatter&amp; icu::DecimalFormat::toNumberFormatter() const</td><td class="" colspan="2" align="center">Draft<br>ICU 62</td>
 </tr>
-<tr>
-<td class="file">numberformatter.h</td><td class="proto">Derived icu::number::NumberFormatterSettings&lt; Derived &gt;::decimal(const UNumberDecimalSeparatorDisplay&amp;) const</td><td class="">Draft<br>ICU 60</td><td class="">ICU 61</td>
+<tr class="row0">
+<td class="file">decimfmt.h</td><td class="proto">int32_t icu::DecimalFormat::getMultiplierScale() const</td><td class="" colspan="2" align="center">Draft<br>ICU 62</td>
 </tr>
-
-<tr>
-<td class="file">numberformatter.h</td><td class="proto"><strong>Derived icu::number::NumberFormatterSettings&lt; Derived &gt;::grouping(UGroupingStrategy) const&amp;</strong></td><td class="">Draft<br>ICU 61</td><td class="">ICU 62</td>
+<tr class="row1">
+<td class="file">decimfmt.h</td><td class="proto">void icu::DecimalFormat::setMultiplierScale(int32_t)</td><td class="" colspan="2" align="center">Draft<br>ICU 62</td>
 </tr>
-<tr>
-<td class="file">numberformatter.h</td><td class="proto">Derived icu::number::NumberFormatterSettings&lt; Derived &gt;::grouping(const UGroupingStrategy&amp;) const</td><td class="">Draft<br>ICU 61</td><td class="">ICU 61</td>
+<tr class="row0">
+<td class="file">dtptngen.h</td><td class="proto">UnicodeString icu::DateTimePatternGenerator::getFieldDisplayName(UDateTimePatternField, UDateTimePGDisplayWidth) const</td><td class="" colspan="2" align="center">Draft<br>ICU 61</td>
 </tr>
-
-<tr>
-<td class="file">numberformatter.h</td><td class="proto"><strong>Derived icu::number::NumberFormatterSettings&lt; Derived &gt;::sign(UNumberSignDisplay) const&amp;</strong></td><td class="">Draft<br>ICU 60</td><td class="">ICU 62</td>
+<tr class="row1">
+<td class="file">localpointer.h</td><td class="proto">LocalArray&lt;T&gt;&amp; icu::LocalArray&lt; T &gt;::moveFrom(LocalArray&lt; T &gt;&amp;)</td><td class="" colspan="2" align="center">Draft<br>ICU 56</td>
 </tr>
-<tr>
-<td class="file">numberformatter.h</td><td class="proto">Derived icu::number::NumberFormatterSettings&lt; Derived &gt;::sign(const UNumberSignDisplay&amp;) const</td><td class="">Draft<br>ICU 60</td><td class="">ICU 61</td>
+<tr class="row0">
+<td class="file">localpointer.h</td><td class="proto">LocalPointer&lt;T&gt;&amp; icu::LocalPointer&lt; T &gt;::moveFrom(LocalPointer&lt; T &gt;&amp;)</td><td class="" colspan="2" align="center">Draft<br>ICU 56</td>
 </tr>
-
-<tr>
-<td class="file">numberformatter.h</td><td class="proto"><strong>Derived icu::number::NumberFormatterSettings&lt; Derived &gt;::unitWidth(UNumberUnitWidth) const&amp;</strong></td><td class="">Draft<br>ICU 60</td><td class="">ICU 62</td>
+<tr class="row1">
+<td class="file">measfmt.h</td><td class="proto">void icu::MeasureFormat::parseObject(const UnicodeString&amp;, Formattable&amp;, ParsePosition&amp;) const</td><td class="" colspan="2" align="center">Draft<br>ICU 53</td>
 </tr>
-<tr>
-<td class="file">numberformatter.h</td><td class="proto">Derived icu::number::NumberFormatterSettings&lt; Derived &gt;::unitWidth(const UNumberUnitWidth&amp;) const</td><td class="">Draft<br>ICU 60</td><td class="">ICU 61</td>
+<tr class="row0">
+<td class="file">nounit.h</td><td class="proto">UClassID icu::NoUnit::getDynamicClassID() const</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+</tr>
+<tr class="row1">
+<td class="file">nounit.h</td><td class="proto">UObject* icu::NoUnit::clone() const</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+</tr>
+<tr class="row0">
+<td class="file">nounit.h</td><td class="proto">icu::NoUnit::NoUnit(const NoUnit&amp;)</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+</tr>
+<tr class="row1">
+<td class="file">nounit.h</td><td class="proto">icu::NoUnit::~NoUnit()</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+</tr>
+<tr class="row0">
+<td class="file">nounit.h</td><td class="proto"><tt>static</tt> NoUnit icu::NoUnit::base()</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+</tr>
+<tr class="row1">
+<td class="file">nounit.h</td><td class="proto"><tt>static</tt> NoUnit icu::NoUnit::percent()</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+</tr>
+<tr class="row0">
+<td class="file">nounit.h</td><td class="proto"><tt>static</tt> NoUnit icu::NoUnit::permille()</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+</tr>
+<tr class="row1">
+<td class="file">nounit.h</td><td class="proto"><tt>static</tt> UClassID icu::NoUnit::getStaticClassID()</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+</tr>
+<tr class="row0">
+<td class="file">numberformatter.h</td><td class="proto">Appendable&amp; icu::number::FormattedNumber::appendTo(Appendable&amp;, UErrorCode&amp;) <b><i>const</i></b></td><td class="">(const added)<br>
+</td><td>Draft<br>
+<span class=""><span>ICU 62</span></span></td>
+</tr>
+<tr class="row1">
+<td class="file">numberformatter.h</td><td class="proto">Derived icu::number::NumberFormatterSettings&lt; Derived &gt;::adoptPerUnit(icu::MeasureUnit*) const&amp;</td><td class="" colspan="2" align="center">Draft<br>ICU 61</td>
+</tr>
+<tr class="row0">
+<td class="file">numberformatter.h</td><td class="proto">Derived icu::number::NumberFormatterSettings&lt; Derived &gt;::adoptPerUnit(icu::MeasureUnit*)&amp;&amp;</td><td class="" colspan="2" align="center">Draft<br>ICU 62</td>
+</tr>
+<tr class="row1">
+<td class="file">numberformatter.h</td><td class="proto">Derived icu::number::NumberFormatterSettings&lt; Derived &gt;::adoptSymbols(NumberingSystem*) const&amp;</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+</tr>
+<tr class="row0">
+<td class="file">numberformatter.h</td><td class="proto">Derived icu::number::NumberFormatterSettings&lt; Derived &gt;::adoptSymbols(NumberingSystem*)&amp;&amp;</td><td class="" colspan="2" align="center">Draft<br>ICU 62</td>
+</tr>
+<tr class="row1">
+<td class="file">numberformatter.h</td><td class="proto">Derived icu::number::NumberFormatterSettings&lt; Derived &gt;::adoptUnit(icu::MeasureUnit*) const&amp;</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+</tr>
+<tr class="row0">
+<td class="file">numberformatter.h</td><td class="proto">Derived icu::number::NumberFormatterSettings&lt; Derived &gt;::adoptUnit(icu::MeasureUnit*)&amp;&amp;</td><td class="" colspan="2" align="center">Draft<br>ICU 62</td>
+</tr>
+<tr class="row1">
+<td class="file">numberformatter.h</td><td class="proto">Derived icu::number::NumberFormatterSettings&lt; Derived &gt;::decimal(UNumberDecimalSeparatorDisplay) const&amp;</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+</tr>
+<tr class="row0">
+<td class="file">numberformatter.h</td><td class="proto">Derived icu::number::NumberFormatterSettings&lt; Derived &gt;::decimal(UNumberDecimalSeparatorDisplay)&amp;&amp;</td><td class="" colspan="2" align="center">Draft<br>ICU 62</td>
+</tr>
+<tr class="row1">
+<td class="file">numberformatter.h</td><td class="proto">Derived icu::number::NumberFormatterSettings&lt; Derived &gt;::grouping(U<b><i>Number</i></b>GroupingStrategy) const&amp;</td><td class="">(renamed)<br>
+</td><td>Draft<br>
+<span class=""><span>ICU 61</span></span></td>
+</tr>
+<tr class="row0">
+<td class="file">numberformatter.h</td><td class="proto">Derived icu::number::NumberFormatterSettings&lt; Derived &gt;::grouping(U<b><i>Number</i></b>GroupingStrategy)&amp;&amp;</td><td class="">(renamed)<br>
+</td><td>Draft<br>
+<span class=""><span>ICU 62</span></span></td>
+</tr>
+<tr class="row1">
+<td class="file">numberformatter.h</td><td class="proto">Derived icu::number::NumberFormatterSettings&lt; Derived &gt;::integerWidth(const IntegerWidth&amp;) const&amp;</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+</tr>
+<tr class="row0">
+<td class="file">numberformatter.h</td><td class="proto">Derived icu::number::NumberFormatterSettings&lt; Derived &gt;::integerWidth(const IntegerWidth&amp;)&amp;&amp;</td><td class="" colspan="2" align="center">Draft<br>ICU 62</td>
+</tr>
+<tr class="row1">
+<td class="file">numberformatter.h</td><td class="proto">Derived icu::number::NumberFormatterSettings&lt; Derived &gt;::notation(const Notation&amp;) const&amp;</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+</tr>
+<tr class="row0">
+<td class="file">numberformatter.h</td><td class="proto">Derived icu::number::NumberFormatterSettings&lt; Derived &gt;::notation(const Notation&amp;)&amp;&amp;</td><td class="" colspan="2" align="center">Draft<br>ICU 62</td>
+</tr>
+<tr class="row1">
+<td class="file">numberformatter.h</td><td class="proto">Derived icu::number::NumberFormatterSettings&lt; Derived &gt;::perUnit(const icu::MeasureUnit&amp;) const&amp;</td><td class="" colspan="2" align="center">Draft<br>ICU 61</td>
+</tr>
+<tr class="row0">
+<td class="file">numberformatter.h</td><td class="proto">Derived icu::number::NumberFormatterSettings&lt; Derived &gt;::perUnit(const icu::MeasureUnit&amp;)&amp;&amp;</td><td class="" colspan="2" align="center">Draft<br>ICU 62</td>
+</tr>
+<tr class="row1">
+<td class="file">numberformatter.h</td><td class="proto">Derived icu::number::NumberFormatterSettings&lt; Derived &gt;::precision(const Precision&amp;) const&amp;</td><td class="" colspan="2" align="center">Draft<br>ICU 62</td>
+</tr>
+<tr class="row0">
+<td class="file">numberformatter.h</td><td class="proto">Derived icu::number::NumberFormatterSettings&lt; Derived &gt;::precision(const Precision&amp;)&amp;&amp;</td><td class="" colspan="2" align="center">Draft<br>ICU 62</td>
+</tr>
+<tr class="row1">
+<td class="file">numberformatter.h</td><td class="proto">Derived icu::number::NumberFormatterSettings&lt; Derived &gt;::roundingMode(UNumberFormatRoundingMode) const&amp;</td><td class="" colspan="2" align="center">Draft<br>ICU 62</td>
+</tr>
+<tr class="row0">
+<td class="file">numberformatter.h</td><td class="proto">Derived icu::number::NumberFormatterSettings&lt; Derived &gt;::roundingMode(UNumberFormatRoundingMode)&amp;&amp;</td><td class="" colspan="2" align="center">Draft<br>ICU 62</td>
+</tr>
+<tr class="row1">
+<td class="file">numberformatter.h</td><td class="proto">Derived icu::number::NumberFormatterSettings&lt; Derived &gt;::scale(const Scale&amp;) const&amp;</td><td class="" colspan="2" align="center">Draft<br>ICU 62</td>
+</tr>
+<tr class="row0">
+<td class="file">numberformatter.h</td><td class="proto">Derived icu::number::NumberFormatterSettings&lt; Derived &gt;::scale(const Scale&amp;)&amp;&amp;</td><td class="" colspan="2" align="center">Draft<br>ICU 62</td>
+</tr>
+<tr class="row1">
+<td class="file">numberformatter.h</td><td class="proto">Derived icu::number::NumberFormatterSettings&lt; Derived &gt;::sign(UNumberSignDisplay) const&amp;</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+</tr>
+<tr class="row0">
+<td class="file">numberformatter.h</td><td class="proto">Derived icu::number::NumberFormatterSettings&lt; Derived &gt;::sign(UNumberSignDisplay)&amp;&amp;</td><td class="" colspan="2" align="center">Draft<br>ICU 62</td>
+</tr>
+<tr class="row1">
+<td class="file">numberformatter.h</td><td class="proto">Derived icu::number::NumberFormatterSettings&lt; Derived &gt;::symbols(const DecimalFormatSymbols&amp;) const&amp;</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+</tr>
+<tr class="row0">
+<td class="file">numberformatter.h</td><td class="proto">Derived icu::number::NumberFormatterSettings&lt; Derived &gt;::symbols(const DecimalFormatSymbols&amp;)&amp;&amp;</td><td class="" colspan="2" align="center">Draft<br>ICU 62</td>
+</tr>
+<tr class="row1">
+<td class="file">numberformatter.h</td><td class="proto">Derived icu::number::NumberFormatterSettings&lt; Derived &gt;::unit(const icu::MeasureUnit&amp;) const&amp;</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+</tr>
+<tr class="row0">
+<td class="file">numberformatter.h</td><td class="proto">Derived icu::number::NumberFormatterSettings&lt; Derived &gt;::unit(const icu::MeasureUnit&amp;)&amp;&amp;</td><td class="" colspan="2" align="center">Draft<br>ICU 62</td>
+</tr>
+<tr class="row1">
+<td class="file">numberformatter.h</td><td class="proto">Derived icu::number::NumberFormatterSettings&lt; Derived &gt;::unitWidth(UNumberUnitWidth) const&amp;</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+</tr>
+<tr class="row0">
+<td class="file">numberformatter.h</td><td class="proto">Derived icu::number::NumberFormatterSettings&lt; Derived &gt;::unitWidth(UNumberUnitWidth)&amp;&amp;</td><td class="" colspan="2" align="center">Draft<br>ICU 62</td>
+</tr>
+<tr class="row1">
+<td class="file">numberformatter.h</td><td class="proto">Format* icu::number::LocalizedNumberFormatter::toFormat(UErrorCode&amp;) const</td><td class="" colspan="2" align="center">Draft<br>ICU 62</td>
+</tr>
+<tr class="row0">
+<td class="file">numberformatter.h</td><td class="proto">FormattedNumber icu::number::LocalizedNumberFormatter::formatDecimal(StringPiece, UErrorCode&amp;) const</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+</tr>
+<tr class="row1">
+<td class="file">numberformatter.h</td><td class="proto">FormattedNumber icu::number::LocalizedNumberFormatter::formatDouble(double, UErrorCode&amp;) const</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+</tr>
+<tr class="row0">
+<td class="file">numberformatter.h</td><td class="proto">FormattedNumber icu::number::LocalizedNumberFormatter::formatInt(int64_t, UErrorCode&amp;) const</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+</tr>
+<tr class="row1">
+<td class="file">numberformatter.h</td><td class="proto">FormattedNumber&amp; icu::number::FormattedNumber::operator=(FormattedNumber&amp;&amp;)</td><td class="" colspan="2" align="center">Draft<br>ICU 62</td>
+</tr>
+<tr class="row0">
+<td class="file">numberformatter.h</td><td class="proto">IntegerWidth icu::number::IntegerWidth::truncateAt(int32_t)</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+</tr>
+<tr class="row1">
+<td class="file">numberformatter.h</td><td class="proto">LocalizedNumberFormatter icu::number::UnlocalizedNumberFormatter::locale(const icu::Locale&amp;) const&amp;</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+</tr>
+<tr class="row0">
+<td class="file">numberformatter.h</td><td class="proto">LocalizedNumberFormatter icu::number::UnlocalizedNumberFormatter::locale(const icu::Locale&amp;)&amp;&amp;</td><td class="" colspan="2" align="center">Draft<br>ICU 62</td>
+</tr>
+<tr class="row1">
+<td class="file">numberformatter.h</td><td class="proto">LocalizedNumberFormatter&amp; icu::number::LocalizedNumberFormatter::operator=(LocalizedNumberFormatter&amp;&amp;)</td><td class="" colspan="2" align="center">Draft<br>ICU 62</td>
+</tr>
+<tr class="row0">
+<td class="file">numberformatter.h</td><td class="proto">LocalizedNumberFormatter&amp; icu::number::LocalizedNumberFormatter::operator=(const LocalizedNumberFormatter&amp;)</td><td class="" colspan="2" align="center">Draft<br>ICU 62</td>
+</tr>
+<tr class="row1">
+<td class="file">numberformatter.h</td><td class="proto">Precision icu::number::CurrencyPrecision::withCurrency(const CurrencyUnit&amp;) const</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+</tr>
+<tr class="row0">
+<td class="file">numberformatter.h</td><td class="proto">Precision icu::number::FractionPrecision::withMaxDigits(int32_t) const</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+</tr>
+<tr class="row1">
+<td class="file">numberformatter.h</td><td class="proto">Precision icu::number::FractionPrecision::withMinDigits(int32_t) const</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+</tr>
+<tr class="row0">
+<td class="file">numberformatter.h</td><td class="proto">Precision icu::number::IncrementPrecision::withMinFraction(int32_t) const</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+</tr>
+<tr class="row1">
+<td class="file">numberformatter.h</td><td class="proto">Scale&amp; icu::number::Scale::operator=(Scale&amp;&amp;)</td><td class="" colspan="2" align="center">Draft<br>ICU 62</td>
+</tr>
+<tr class="row0">
+<td class="file">numberformatter.h</td><td class="proto">Scale&amp; icu::number::Scale::operator=(const Scale&amp;)</td><td class="" colspan="2" align="center">Draft<br>ICU 62</td>
+</tr>
+<tr class="row1">
+<td class="file">numberformatter.h</td><td class="proto">ScientificNotation icu::number::ScientificNotation::withExponentSignDisplay(UNumberSignDisplay) const</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+</tr>
+<tr class="row0">
+<td class="file">numberformatter.h</td><td class="proto">ScientificNotation icu::number::ScientificNotation::withMinExponentDigits(int32_t) const</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+</tr>
+<tr class="row1">
+<td class="file">numberformatter.h</td><td class="proto">UBool icu::number::FormattedNumber::nextFieldPosition(FieldPosition&amp;, UErrorCode&amp;) const</td><td class="" colspan="2" align="center">Draft<br>ICU 62</td>
+</tr>
+<tr class="row0">
+<td class="file">numberformatter.h</td><td class="proto">UBool icu::number::NumberFormatterSettings&lt; Derived &gt;::copyErrorTo(UErrorCode&amp;) const</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+</tr>
+<tr class="row1">
+<td class="file">numberformatter.h</td><td class="proto">UnicodeString icu::number::FormattedNumber::toString(UErrorCode&amp;) const</td><td class="" colspan="2" align="center">Draft<br>ICU 62</td>
+</tr>
+<tr class="row0">
+<td class="file">numberformatter.h</td><td class="proto">UnicodeString icu::number::NumberFormatterSettings&lt; Derived &gt;::toSkeleton(UErrorCode&amp;) const</td><td class="" colspan="2" align="center">Draft<br>ICU 62</td>
+</tr>
+<tr class="row1">
+<td class="file">numberformatter.h</td><td class="proto">UnlocalizedNumberFormatter&amp; icu::number::UnlocalizedNumberFormatter::operator=(UnlocalizedNumberFormatter&amp;&amp;)</td><td class="" colspan="2" align="center">Draft<br>ICU 62</td>
+</tr>
+<tr class="row0">
+<td class="file">numberformatter.h</td><td class="proto">UnlocalizedNumberFormatter&amp; icu::number::UnlocalizedNumberFormatter::operator=(const UnlocalizedNumberFormatter&amp;)</td><td class="" colspan="2" align="center">Draft<br>ICU 62</td>
+</tr>
+<tr class="row1">
+<td class="file">numberformatter.h</td><td class="proto">icu::number::FormattedNumber::FormattedNumber(FormattedNumber&amp;&amp;)</td><td class="" colspan="2" align="center">Draft<br>ICU 62</td>
+</tr>
+<tr class="row0">
+<td class="file">numberformatter.h</td><td class="proto">icu::number::FormattedNumber::~FormattedNumber()</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+</tr>
+<tr class="row1">
+<td class="file">numberformatter.h</td><td class="proto">icu::number::LocalizedNumberFormatter::LocalizedNumberFormatter()=default</td><td class="" colspan="2" align="center">Draft<br>ICU 62</td>
+</tr>
+<tr class="row0">
+<td class="file">numberformatter.h</td><td class="proto">icu::number::LocalizedNumberFormatter::LocalizedNumberFormatter(LocalizedNumberFormatter&amp;&amp;)</td><td class="" colspan="2" align="center">Draft<br>ICU 62</td>
+</tr>
+<tr class="row1">
+<td class="file">numberformatter.h</td><td class="proto">icu::number::LocalizedNumberFormatter::LocalizedNumberFormatter(const LocalizedNumberFormatter&amp;)</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+</tr>
+<tr class="row0">
+<td class="file">numberformatter.h</td><td class="proto">icu::number::LocalizedNumberFormatter::~LocalizedNumberFormatter()</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+</tr>
+<tr class="row1">
+<td class="file">numberformatter.h</td><td class="proto">icu::number::Scale::Scale(Scale&amp;&amp;)</td><td class="" colspan="2" align="center">Draft<br>ICU 62</td>
+</tr>
+<tr class="row0">
+<td class="file">numberformatter.h</td><td class="proto">icu::number::Scale::Scale(const Scale&amp;)</td><td class="" colspan="2" align="center">Draft<br>ICU 62</td>
+</tr>
+<tr class="row1">
+<td class="file">numberformatter.h</td><td class="proto">icu::number::Scale::~Scale()</td><td class="" colspan="2" align="center">Draft<br>ICU 62</td>
+</tr>
+<tr class="row0">
+<td class="file">numberformatter.h</td><td class="proto">icu::number::UnlocalizedNumberFormatter::UnlocalizedNumberFormatter()=default</td><td class="" colspan="2" align="center">Draft<br>ICU 62</td>
+</tr>
+<tr class="row1">
+<td class="file">numberformatter.h</td><td class="proto">icu::number::UnlocalizedNumberFormatter::UnlocalizedNumberFormatter(UnlocalizedNumberFormatter&amp;&amp;)</td><td class="" colspan="2" align="center">Draft<br>ICU 62</td>
+</tr>
+<tr class="row0">
+<td class="file">numberformatter.h</td><td class="proto">icu::number::UnlocalizedNumberFormatter::UnlocalizedNumberFormatter(const UnlocalizedNumberFormatter&amp;)</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+</tr>
+<tr class="row1">
+<td class="file">numberformatter.h</td><td class="proto"><tt>static</tt> CompactNotation icu::number::Notation::compactLong()</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+</tr>
+<tr class="row0">
+<td class="file">numberformatter.h</td><td class="proto"><tt>static</tt> CompactNotation icu::number::Notation::compactShort()</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+</tr>
+<tr class="row1">
+<td class="file">numberformatter.h</td><td class="proto"><tt>static</tt> CurrencyPrecision icu::number::Precision::currency(UCurrencyUsage)</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+</tr>
+<tr class="row0">
+<td class="file">numberformatter.h</td><td class="proto"><tt>static</tt> FractionPrecision icu::number::Precision::fixedFraction(int32_t)</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+</tr>
+<tr class="row1">
+<td class="file">numberformatter.h</td><td class="proto"><tt>static</tt> FractionPrecision icu::number::Precision::integer()</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+</tr>
+<tr class="row0">
+<td class="file">numberformatter.h</td><td class="proto"><tt>static</tt> FractionPrecision icu::number::Precision::maxFraction(int32_t)</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+</tr>
+<tr class="row1">
+<td class="file">numberformatter.h</td><td class="proto"><tt>static</tt> FractionPrecision icu::number::Precision::minFraction(int32_t)</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+</tr>
+<tr class="row0">
+<td class="file">numberformatter.h</td><td class="proto"><tt>static</tt> FractionPrecision icu::number::Precision::minMaxFraction(int32_t, int32_t)</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+</tr>
+<tr class="row1">
+<td class="file">numberformatter.h</td><td class="proto"><tt>static</tt> IncrementPrecision icu::number::Precision::increment(double)</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+</tr>
+<tr class="row0">
+<td class="file">numberformatter.h</td><td class="proto"><tt>static</tt> IntegerWidth icu::number::IntegerWidth::zeroFillTo(int32_t)</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+</tr>
+<tr class="row1">
+<td class="file">numberformatter.h</td><td class="proto"><tt>static</tt> LocalizedNumberFormatter icu::number::NumberFormatter::withLocale(const Locale&amp;)</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+</tr>
+<tr class="row0">
+<td class="file">numberformatter.h</td><td class="proto"><tt>static</tt> Precision icu::number::Precision::unlimited()</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+</tr>
+<tr class="row1">
+<td class="file">numberformatter.h</td><td class="proto"><tt>static</tt> Scale icu::number::Scale::byDecimal(StringPiece)</td><td class="" colspan="2" align="center">Draft<br>ICU 62</td>
+</tr>
+<tr class="row0">
+<td class="file">numberformatter.h</td><td class="proto"><tt>static</tt> Scale icu::number::Scale::byDouble(double)</td><td class="" colspan="2" align="center">Draft<br>ICU 62</td>
+</tr>
+<tr class="row1">
+<td class="file">numberformatter.h</td><td class="proto"><tt>static</tt> Scale icu::number::Scale::byDoubleAndPowerOfTen(double, int32_t)</td><td class="" colspan="2" align="center">Draft<br>ICU 62</td>
+</tr>
+<tr class="row0">
+<td class="file">numberformatter.h</td><td class="proto"><tt>static</tt> Scale icu::number::Scale::none()</td><td class="" colspan="2" align="center">Draft<br>ICU 62</td>
+</tr>
+<tr class="row1">
+<td class="file">numberformatter.h</td><td class="proto"><tt>static</tt> Scale icu::number::Scale::powerOfTen(int32_t)</td><td class="" colspan="2" align="center">Draft<br>ICU 62</td>
+</tr>
+<tr class="row0">
+<td class="file">numberformatter.h</td><td class="proto"><tt>static</tt> ScientificNotation icu::number::Notation::engineering()</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+</tr>
+<tr class="row1">
+<td class="file">numberformatter.h</td><td class="proto"><tt>static</tt> ScientificNotation icu::number::Notation::scientific()</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+</tr>
+<tr class="row0">
+<td class="file">numberformatter.h</td><td class="proto"><tt>static</tt> SignificantDigitsPrecision icu::number::Precision::fixedSignificantDigits(int32_t)</td><td class="" colspan="2" align="center">Draft<br>ICU 62</td>
+</tr>
+<tr class="row1">
+<td class="file">numberformatter.h</td><td class="proto"><tt>static</tt> SignificantDigitsPrecision icu::number::Precision::maxSignificantDigits(int32_t)</td><td class="" colspan="2" align="center">Draft<br>ICU 62</td>
+</tr>
+<tr class="row0">
+<td class="file">numberformatter.h</td><td class="proto"><tt>static</tt> SignificantDigitsPrecision icu::number::Precision::minMaxSignificantDigits(int32_t, int32_t)</td><td class="" colspan="2" align="center">Draft<br>ICU 62</td>
+</tr>
+<tr class="row1">
+<td class="file">numberformatter.h</td><td class="proto"><tt>static</tt> SignificantDigitsPrecision icu::number::Precision::minSignificantDigits(int32_t)</td><td class="" colspan="2" align="center">Draft<br>ICU 62</td>
+</tr>
+<tr class="row0">
+<td class="file">numberformatter.h</td><td class="proto"><tt>static</tt> SimpleNotation icu::number::Notation::simple()</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+</tr>
+<tr class="row1">
+<td class="file">numberformatter.h</td><td class="proto"><tt>static</tt> UnlocalizedNumberFormatter icu::number::NumberFormatter::forSkeleton(const UnicodeString&amp;, UErrorCode&amp;)</td><td class="" colspan="2" align="center">Draft<br>ICU 62</td>
+</tr>
+<tr class="row0">
+<td class="file">numberformatter.h</td><td class="proto"><tt>static</tt> UnlocalizedNumberFormatter icu::number::NumberFormatter::with()</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+</tr>
+<tr class="row1">
+<td class="file">numberformatter.h</td><td class="proto">void icu::number::FormattedNumber::getAllFieldPositions(FieldPositionIterator&amp;, UErrorCode&amp;) const</td><td class="" colspan="2" align="center">Draft<br>ICU 62</td>
+</tr>
+<tr class="row0">
+<td class="file">ucurr.h</td><td class="proto"><tt>enum</tt> UCurrNameStyle::UCURR_NARROW_SYMBOL_NAME</td><td class="" colspan="2" align="center">Draft<br>ICU 61</td>
+</tr>
+<tr class="row1">
+<td class="file">udatpg.h</td><td class="proto"><tt>enum</tt> UDateTimePGDisplayWidth::UDATPG_ABBREVIATED</td><td class="" colspan="2" align="center">Draft<br>ICU 61</td>
+</tr>
+<tr class="row0">
+<td class="file">udatpg.h</td><td class="proto"><tt>enum</tt> UDateTimePGDisplayWidth::UDATPG_NARROW</td><td class="" colspan="2" align="center">Draft<br>ICU 61</td>
+</tr>
+<tr class="row1">
+<td class="file">udatpg.h</td><td class="proto"><tt>enum</tt> UDateTimePGDisplayWidth::UDATPG_WIDE</td><td class="" colspan="2" align="center">Draft<br>ICU 61</td>
+</tr>
+<tr class="row0">
+<td class="file">udatpg.h</td><td class="proto">int32_t udatpg_getFieldDisplayName(const UDateTimePatternGenerator*, UDateTimePatternField, UDateTimePGDisplayWidth, UChar*, int32_t, UErrorCode*)</td><td class="" colspan="2" align="center">Draft<br>ICU 61</td>
+</tr>
+<tr class="row1">
+<td class="file">unistr.h</td><td class="proto">UnicodeString&amp; icu::UnicodeString::moveFrom(UnicodeString&amp;)</td><td class="" colspan="2" align="center">Draft<br>ICU 56</td>
+</tr>
+<tr class="row0">
+<td class="file">unumberformatter.h</td><td class="proto">UBool unumf_resultNextFieldPosition(const UFormattedNumber*, UFieldPosition*, UErrorCode*)</td><td class="" colspan="2" align="center">Draft<br>ICU 62</td>
+</tr>
+<tr class="row1">
+<td class="file">unumberformatter.h</td><td class="proto">UFormattedNumber* unumf_openResult(UErrorCode*)</td><td class="" colspan="2" align="center">Draft<br>ICU 62</td>
+</tr>
+<tr class="row0">
+<td class="file">unumberformatter.h</td><td class="proto">UNumberFormatter* unumf_openForSkeletonAndLocale(const UChar*, int32_t, const char*, UErrorCode*)</td><td class="" colspan="2" align="center">Draft<br>ICU 62</td>
+</tr>
+<tr class="row1">
+<td class="file">unumberformatter.h</td><td class="proto"><tt>enum</tt> UNumberDecimalSeparatorDisplay::UNUM_DECIMAL_SEPARATOR_ALWAYS</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+</tr>
+<tr class="row0">
+<td class="file">unumberformatter.h</td><td class="proto"><tt>enum</tt> UNumberDecimalSeparatorDisplay::UNUM_DECIMAL_SEPARATOR_AUTO</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+</tr>
+<tr class="row1">
+<td class="file">unumberformatter.h</td><td class="proto"><tt>enum</tt> U<b><i>Number</i></b>GroupingStrategy::UNUM_GROUPING_AUTO</td><td class="">(renamed)<br>
+</td><td>Draft<br>
+<span class=""><span>ICU 61</span></span></td>
+</tr>
+<tr class="row0">
+<td class="file">unumberformatter.h</td><td class="proto"><tt>enum</tt> U<b><i>Number</i></b>GroupingStrategy::UNUM_GROUPING_MIN2</td><td class="">(renamed)<br>
+</td><td>Draft<br>
+<span class=""><span>ICU 61</span></span></td>
+</tr>
+<tr class="row1">
+<td class="file">unumberformatter.h</td><td class="proto"><tt>enum</tt> U<b><i>Number</i></b>GroupingStrategy::UNUM_GROUPING_OFF</td><td class="">(renamed)<br>
+</td><td>Draft<br>
+<span class=""><span>ICU 61</span></span></td>
+</tr>
+<tr class="row0">
+<td class="file">unumberformatter.h</td><td class="proto"><tt>enum</tt> U<b><i>Number</i></b>GroupingStrategy::UNUM_GROUPING_ON_ALIGNED</td><td class="">(renamed)<br>
+</td><td>Draft<br>
+<span class=""><span>ICU 61</span></span></td>
+</tr>
+<tr class="row1">
+<td class="file">unumberformatter.h</td><td class="proto"><tt>enum</tt> U<b><i>Number</i></b>GroupingStrategy::UNUM_GROUPING_THOUSANDS</td><td class="">(renamed)<br>
+</td><td>Draft<br>
+<span class=""><span>ICU 61</span></span></td>
+</tr>
+<tr class="row0">
+<td class="file">unumberformatter.h</td><td class="proto"><tt>enum</tt> UNumberSignDisplay::UNUM_SIGN_ACCOUNTING_ALWAYS</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+</tr>
+<tr class="row1">
+<td class="file">unumberformatter.h</td><td class="proto"><tt>enum</tt> UNumberSignDisplay::UNUM_SIGN_ACCOUNTING_EXCEPT_ZERO</td><td class="" colspan="2" align="center">Draft<br>ICU 61</td>
+</tr>
+<tr class="row0">
+<td class="file">unumberformatter.h</td><td class="proto"><tt>enum</tt> UNumberSignDisplay::UNUM_SIGN_ACCOUNTING</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+</tr>
+<tr class="row1">
+<td class="file">unumberformatter.h</td><td class="proto"><tt>enum</tt> UNumberSignDisplay::UNUM_SIGN_ALWAYS</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+</tr>
+<tr class="row0">
+<td class="file">unumberformatter.h</td><td class="proto"><tt>enum</tt> UNumberSignDisplay::UNUM_SIGN_AUTO</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+</tr>
+<tr class="row1">
+<td class="file">unumberformatter.h</td><td class="proto"><tt>enum</tt> UNumberSignDisplay::UNUM_SIGN_EXCEPT_ZERO</td><td class="" colspan="2" align="center">Draft<br>ICU 61</td>
+</tr>
+<tr class="row0">
+<td class="file">unumberformatter.h</td><td class="proto"><tt>enum</tt> UNumberSignDisplay::UNUM_SIGN_NEVER</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+</tr>
+<tr class="row1">
+<td class="file">unumberformatter.h</td><td class="proto"><tt>enum</tt> UNumberUnitWidth::UNUM_UNIT_WIDTH_FULL_NAME</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+</tr>
+<tr class="row0">
+<td class="file">unumberformatter.h</td><td class="proto"><tt>enum</tt> UNumberUnitWidth::UNUM_UNIT_WIDTH_HIDDEN</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+</tr>
+<tr class="row1">
+<td class="file">unumberformatter.h</td><td class="proto"><tt>enum</tt> UNumberUnitWidth::UNUM_UNIT_WIDTH_ISO_CODE</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+</tr>
+<tr class="row0">
+<td class="file">unumberformatter.h</td><td class="proto"><tt>enum</tt> UNumberUnitWidth::UNUM_UNIT_WIDTH_NARROW</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+</tr>
+<tr class="row1">
+<td class="file">unumberformatter.h</td><td class="proto"><tt>enum</tt> UNumberUnitWidth::UNUM_UNIT_WIDTH_SHORT</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+</tr>
+<tr class="row0">
+<td class="file">unumberformatter.h</td><td class="proto">int32_t unumf_resultToString(const UFormattedNumber*, UChar*, int32_t, UErrorCode*)</td><td class="" colspan="2" align="center">Draft<br>ICU 62</td>
+</tr>
+<tr class="row1">
+<td class="file">unumberformatter.h</td><td class="proto">void unumf_close(UNumberFormatter*)</td><td class="" colspan="2" align="center">Draft<br>ICU 62</td>
+</tr>
+<tr class="row0">
+<td class="file">unumberformatter.h</td><td class="proto">void unumf_closeResult(UFormattedNumber*)</td><td class="" colspan="2" align="center">Draft<br>ICU 62</td>
+</tr>
+<tr class="row1">
+<td class="file">unumberformatter.h</td><td class="proto">void unumf_formatDecimal(const UNumberFormatter*, const char*, int32_t, UFormattedNumber*, UErrorCode*)</td><td class="" colspan="2" align="center">Draft<br>ICU 62</td>
+</tr>
+<tr class="row0">
+<td class="file">unumberformatter.h</td><td class="proto">void unumf_formatDouble(const UNumberFormatter*, double, UFormattedNumber*, UErrorCode*)</td><td class="" colspan="2" align="center">Draft<br>ICU 62</td>
+</tr>
+<tr class="row1">
+<td class="file">unumberformatter.h</td><td class="proto">void unumf_formatInt(const UNumberFormatter*, int64_t, UFormattedNumber*, UErrorCode*)</td><td class="" colspan="2" align="center">Draft<br>ICU 62</td>
+</tr>
+<tr class="row0">
+<td class="file">unumberformatter.h</td><td class="proto">void unumf_resultGetAllFieldPositions(const UFormattedNumber*, UFieldPositionIterator*, UErrorCode*)</td><td class="" colspan="2" align="center">Draft<br>ICU 62</td>
+</tr>
+<tr class="row1">
+<td class="file">uregex.h</td><td class="proto"><tt>enum</tt> URegexpFlag::UREGEX_CANON_EQ</td><td class="" colspan="2" align="center">Draft<br>ICU 2.4</td>
+</tr>
+<tr class="row0">
+<td class="file">uspoof.h</td><td class="proto"><tt>enum</tt> USpoofChecks::USPOOF_HIDDEN_OVERLAY</td><td class="" colspan="2" align="center">Draft<br>ICU 62</td>
+</tr>
+<tr class="row1">
+<td class="file">utf8.h</td><td class="proto"><tt>#define</tt> U8_TRUNCATE_IF_INCOMPLETE</td><td class="" colspan="2" align="center">Draft<br>ICU 61</td>
 </tr>
-
 </table>
 </div>
 <P></P>
 <a href="#_top">(jump back to top)</a>
 <hr>
+<a name="purevirtual"></a>
+<h2>Signature Simplifications</h2>
+<i>This section shows cases where the signature was "simplified" for the sake of comparison. The simplified form is in bold, followed by
+       all possible variations in "original" form.</i>
+<div class="other">
+<ul></ul>
+</div>
+<P></P>
+<a href="#_top">(jump back to top)</a>
+<hr>
 <p>
-<i><font size="-1">Contents generated by StableAPI tool on Wed May 30 15:07:37 PDT 2018<br>Copyright (C) 2018, International Business Machines Corporation, All Rights Reserved.</font></i>
+<i><font size="-1">Contents generated by StableAPI tool on Wed Sep 26 13:17:43 PDT 2018<br>Copyright (C) 2018, International Business Machines Corporation, All Rights Reserved.</font></i>
 </p>
 </body>
 </html>
index b606dc8..ae28c25 100755 (executable)
@@ -1,4 +1,4 @@
-#!/usr/bin/python
+#!/usr/bin/python -B
 
 # Copyright (C) 2016 and later: Unicode, Inc. and others.
 # License & terms of use: http://www.unicode.org/copyright.html
index 3f81a3b..1daeb9a 100644 (file)
+icu/source/data/makedata.vcxproj
+icu/source/data/makedata.vcxproj.filters
+icu/source/data/makedata_uwp.vcxproj
+icu/source/data/unidata/confusables.txt
+icu/source/data/unidata/confusablesWholeScript.txt
+icu/source/data/unidata/UCARules.txt
+icu/source/data/unidata/changes.txt
 icu/source/io/io.vcxproj.filters
 icu/source/io/io.vcxproj
-icu/source/test/iotest/iotest.vcxproj
+icu/source/test/thaitest/space.txt
+icu/source/test/cintltst/cintltst.vcxproj
+icu/source/test/cintltst/cintltst.vcxproj.filters
+icu/source/test/intltest/intltest.vcxproj
+icu/source/test/intltest/intltest.vcxproj.filters
 icu/source/test/iotest/iotest.vcxproj.filters
-icu/source/test/letest/cletest.sln
-icu/source/test/letest/letest.vcxproj
-icu/source/test/letest/gendata.vcxproj.filters
-icu/source/test/letest/gendata.vcxproj
-icu/source/test/letest/letest.vcxproj.filters
-icu/source/test/letest/cletest.vcxproj
-icu/source/test/letest/cletest.vcxproj.filters
-icu/source/test/perf/strsrchperf/strsrchperf.vcxproj
-icu/source/test/perf/strsrchperf/strsrchperf.vcxproj.filters
-icu/source/test/perf/utrie2perf/utrie2perf.vcxproj
+icu/source/test/iotest/iotest.vcxproj
 icu/source/test/perf/collperf2/collperf2.vcxproj
 icu/source/test/perf/collperf2/collperf2.vcxproj.filters
-icu/source/test/perf/DateFmtPerf/DateFmtPerf.vcxproj
+icu/source/test/perf/unisetperf/unisetperf.vcxproj
 icu/source/test/perf/DateFmtPerf/DateFmtPerf.vcxproj.filters
-icu/source/test/perf/ustrperf/stringperf.vcxproj.filters
+icu/source/test/perf/DateFmtPerf/DateFmtPerf.vcxproj
+icu/source/test/perf/ucnvavailperf/ucnvavailperf.vcxproj
 icu/source/test/perf/ustrperf/stringperf.vcxproj
-icu/source/test/perf/normperf/normperf.vcxproj.filters
+icu/source/test/perf/ustrperf/stringperf.vcxproj.filters
+icu/source/test/perf/utrie2perf/utrie2perf.vcxproj
+icu/source/test/perf/strsrchperf/strsrchperf.vcxproj
+icu/source/test/perf/strsrchperf/strsrchperf.vcxproj.filters
+icu/source/test/perf/charperf/charperf.vcxproj.filters
+icu/source/test/perf/charperf/charperf.vcxproj
+icu/source/test/perf/ubrkperf/ubrkperf.vcxproj.filters
+icu/source/test/perf/ubrkperf/ubrkperf.vcxproj
 icu/source/test/perf/normperf/dtfmtrtperf.vcxproj.filters
 icu/source/test/perf/normperf/normperf.vcxproj
 icu/source/test/perf/normperf/dtfmtrtperf.vcxproj
+icu/source/test/perf/normperf/normperf.vcxproj.filters
 icu/source/test/perf/convperf/convperf.vcxproj.filters
 icu/source/test/perf/convperf/convperf.vcxproj
 icu/source/test/perf/collperf/collperf.vcxproj.filters
 icu/source/test/perf/collperf/collperf.vcxproj
 icu/source/test/perf/utfperf/utfperf.vcxproj.filters
 icu/source/test/perf/utfperf/utfperf.vcxproj
-icu/source/test/perf/charperf/charperf.vcxproj
-icu/source/test/perf/charperf/charperf.vcxproj.filters
-icu/source/test/perf/unisetperf/unisetperf.vcxproj
-icu/source/test/perf/ubrkperf/ubrkperf.vcxproj.filters
-icu/source/test/perf/ubrkperf/ubrkperf.vcxproj
 icu/source/test/perf/usetperf/usetperf.vcxproj
 icu/source/test/perf/usetperf/usetperf.vcxproj.filters
-icu/source/test/perf/ucnvavailperf/ucnvavailperf.vcxproj
-icu/source/test/thaitest/space.txt
+icu/source/test/letest/cletest.vcxproj
+icu/source/test/letest/cletest.sln
+icu/source/test/letest/cletest.vcxproj.filters
+icu/source/test/letest/letest.vcxproj.filters
+icu/source/test/letest/letest.vcxproj
+icu/source/test/letest/gendata.vcxproj.filters
+icu/source/test/letest/gendata.vcxproj
+icu/source/test/testdata/ConverterSelectorTestUTF8.txt
+icu/source/test/testdata/dcfmtest.txt
+icu/source/test/testdata/regextst.txt
 icu/source/test/testdata/NumberFormatTestCases.txt
-icu/source/test/testdata/collationtest.txt
+icu/source/test/testdata/riwords.txt
 icu/source/test/testdata/te_IN.txt
 icu/source/test/testdata/idna_conf.txt
-icu/source/test/testdata/ConverterSelectorTestUTF8.txt
 icu/source/test/testdata/casing.txt
-icu/source/test/testdata/riwords.txt
 icu/source/test/testdata/rbbitst.txt
-icu/source/test/testdata/dcfmtest.txt
 icu/source/test/testdata/windowsZones.txt
-icu/source/test/testdata/metaZones.txt
-icu/source/test/testdata/regextst.txt
 icu/source/test/testdata/format.txt
+icu/source/test/testdata/metaZones.txt
 icu/source/test/testdata/timezoneTypes.txt
-icu/source/test/testdata/break_rules/line_loose.txt
-icu/source/test/testdata/break_rules/sentence.txt
+icu/source/test/testdata/collationtest.txt
+icu/source/test/testdata/break_rules/line.txt
 icu/source/test/testdata/break_rules/readme.txt
+icu/source/test/testdata/break_rules/sentence.txt
+icu/source/test/testdata/break_rules/word_POSIX.txt
 icu/source/test/testdata/break_rules/line_normal.txt
 icu/source/test/testdata/break_rules/word.txt
+icu/source/test/testdata/break_rules/line_normal_cj.txt
 icu/source/test/testdata/break_rules/line_loose_cj.txt
 icu/source/test/testdata/break_rules/grapheme.txt
-icu/source/test/testdata/break_rules/line_normal_cj.txt
-icu/source/test/testdata/break_rules/line.txt
-icu/source/test/testdata/break_rules/word_POSIX.txt
-icu/source/test/cintltst/cintltst.vcxproj
-icu/source/test/cintltst/cintltst.vcxproj.filters
-icu/source/test/intltest/intltest.vcxproj
-icu/source/test/intltest/intltest.vcxproj.filters
-icu/source/stubdata/stubdata.vcxproj
-icu/source/stubdata/stubdata.vcxproj.filters
-icu/source/tools/genbrk/genbrk.vcxproj.filters
-icu/source/tools/genbrk/genbrk.vcxproj
-icu/source/tools/icuinfo/testplug.vcxproj.filters
-icu/source/tools/icuinfo/testplug.vcxproj
-icu/source/tools/icuinfo/icuinfo.vcxproj
-icu/source/tools/gensprep/gensprep.vcxproj
-icu/source/tools/gensprep/gensprep.vcxproj.filters
-icu/source/tools/toolutil/toolutil.vcxproj
-icu/source/tools/gencnval/gencnval.vcxproj.filters
-icu/source/tools/gencnval/gencnval.vcxproj
-icu/source/tools/gentest/gentest.vcxproj.filters
+icu/source/test/testdata/break_rules/line_loose.txt
+icu/source/layoutex/layoutex.vcxproj.filters
+icu/source/layoutex/layoutex.vcxproj
+icu/source/common/common_uwp.vcxproj
+icu/source/common/common.vcxproj
+icu/source/common/common.vcxproj.filters
+icu/source/tools/icupkg/icupkg.vcxproj
 icu/source/tools/gentest/gentest.vcxproj
-icu/source/tools/tzcode/icuzdump.vcxproj
+icu/source/tools/gentest/gentest.vcxproj.filters
+icu/source/tools/gendict/gendict.vcxproj
+icu/source/tools/gendict/gendict.vcxproj.filters
+icu/source/tools/toolutil/toolutil.vcxproj
 icu/source/tools/tzcode/icuzdump.vcxproj.filters
+icu/source/tools/tzcode/icuzdump.vcxproj
+icu/source/tools/genbrk/genbrk.vcxproj.filters
+icu/source/tools/genbrk/genbrk.vcxproj
 icu/source/tools/gennorm2/gennorm2.vcxproj
-icu/source/tools/genrb/genrb.vcxproj.filters
-icu/source/tools/genrb/derb.vcxproj.filters
-icu/source/tools/genrb/derb.vcxproj
-icu/source/tools/genrb/genrb.vcxproj
+icu/source/tools/icuswap/icuswap.vcxproj
 icu/source/tools/genccode/genccode.vcxproj
 icu/source/tools/genccode/genccode.vcxproj.filters
-icu/source/tools/icuswap/icuswap.vcxproj
-icu/source/tools/gencmn/gencmn.vcxproj.filters
 icu/source/tools/gencmn/gencmn.vcxproj
-icu/source/tools/gencfu/gencfu.vcxproj
+icu/source/tools/gencmn/gencmn.vcxproj.filters
 icu/source/tools/gencfu/gencfu.vcxproj.filters
-icu/source/tools/pkgdata/pkgdata.vcxproj.filters
-icu/source/tools/pkgdata/pkgdata.vcxproj
+icu/source/tools/gencfu/gencfu.vcxproj
 icu/source/tools/ctestfw/ctestfw.vcxproj.filters
 icu/source/tools/ctestfw/ctestfw.vcxproj
-icu/source/tools/icupkg/icupkg.vcxproj
+icu/source/tools/pkgdata/pkgdata.vcxproj
+icu/source/tools/pkgdata/pkgdata.vcxproj.filters
+icu/source/tools/gencnval/gencnval.vcxproj.filters
+icu/source/tools/gencnval/gencnval.vcxproj
 icu/source/tools/makeconv/makeconv.vcxproj
 icu/source/tools/makeconv/makeconv.vcxproj.filters
-icu/source/tools/gendict/gendict.vcxproj.filters
-icu/source/tools/gendict/gendict.vcxproj
-icu/source/allinone/Windows.CopyUnicodeHeaderFiles.targets
-icu/source/common/common.vcxproj
-icu/source/common/common_uwp.vcxproj
-icu/source/common/common.vcxproj.filters
-icu/source/samples/dtitvfmtsample/dtitvfmtsample.vcxproj
+icu/source/tools/gensprep/gensprep.vcxproj.filters
+icu/source/tools/gensprep/gensprep.vcxproj
+icu/source/tools/icuinfo/testplug.vcxproj.filters
+icu/source/tools/icuinfo/testplug.vcxproj
+icu/source/tools/icuinfo/icuinfo.vcxproj
+icu/source/tools/genrb/genrb.vcxproj
+icu/source/tools/genrb/derb.vcxproj.filters
+icu/source/tools/genrb/genrb.vcxproj.filters
+icu/source/tools/genrb/derb.vcxproj
+icu/source/extra/uconv/uconv.vcxproj.filters
+icu/source/extra/uconv/uconv.vcxproj
+icu/source/extra/uconv/samples/utf8/russian.txt
+icu/source/extra/uconv/samples/utf8/hangul.txt
+icu/source/extra/uconv/samples/utf8/croat.txt
+icu/source/extra/uconv/samples/utf8/korean.txt
+icu/source/extra/uconv/samples/utf8/greek.txt
+icu/source/extra/uconv/samples/utf8/jap.txt
+icu/source/extra/uconv/samples/utf8/simplechinese.txt
+icu/source/extra/uconv/samples/utf8/many.txt
+icu/source/extra/uconv/samples/utf8/hania.txt
+icu/source/extra/uconv/samples/utf8/maopoem.txt
+icu/source/extra/uconv/samples/utf8/linji.txt
+icu/source/extra/uconv/samples/utf8/utf-8-demo.txt
+icu/source/extra/uconv/samples/utf8/turkish.txt
+icu/source/extra/uconv/samples/utf8/danish.txt
+icu/source/extra/uconv/samples/utf8/chinese-ulysses.txt
+icu/source/extra/uconv/samples/utf8/banviet.txt
+icu/source/extra/uconv/samples/utf8/armenian.txt
+icu/source/extra/uconv/resources/fr.txt
+icu/source/extra/uconv/resources/root.txt
 icu/source/samples/dtitvfmtsample/dtitvfmtsample.vcxproj.filters
-icu/source/samples/dtptngsample/dtptngsample.vcxproj
-icu/source/samples/dtptngsample/dtptngsample.vcxproj.filters
+icu/source/samples/dtitvfmtsample/dtitvfmtsample.vcxproj
+icu/source/samples/citer/citer.vcxproj.filters
+icu/source/samples/citer/citer.vcxproj
+icu/source/samples/ucnv/ucnv.vcxproj
+icu/source/samples/ucnv/ucnv.vcxproj.filters
+icu/source/samples/ucnv/data06.txt
+icu/source/samples/ucnv/data01.txt
+icu/source/samples/uciter8/uciter8.vcxproj.filters
+icu/source/samples/uciter8/uciter8.vcxproj
+icu/source/samples/numfmt/numfmt.vcxproj.filters
+icu/source/samples/numfmt/numfmt.vcxproj
+icu/source/samples/break/break.vcxproj
+icu/source/samples/break/break.vcxproj.filters
+icu/source/samples/legacy/legacy.vcxproj
+icu/source/samples/legacy/legacy.vcxproj.filters
+icu/source/samples/case/case.vcxproj
+icu/source/samples/case/case.vcxproj.filters
+icu/source/samples/layout/Sample.txt
+icu/source/samples/layout/layout.vcxproj
+icu/source/samples/layout/layout.vcxproj.filters
+icu/source/samples/plurfmtsample/plurfmtsample.vcxproj.filters
+icu/source/samples/plurfmtsample/plurfmtsample.vcxproj
 icu/source/samples/cal/cal.vcxproj
 icu/source/samples/cal/cal.vcxproj.filters
+icu/source/samples/ugrep/ugrep.vcxproj.filters
+icu/source/samples/ugrep/ugrep.vcxproj
+icu/source/samples/strsrch/strsrch.vcxproj.filters
+icu/source/samples/strsrch/strsrch.vcxproj
+icu/source/samples/msgfmt/msgfmt.vcxproj
+icu/source/samples/msgfmt/msgfmt.vcxproj.filters
 icu/source/samples/coll/coll.vcxproj
 icu/source/samples/coll/coll.vcxproj.filters
-icu/source/samples/uciter8/uciter8.vcxproj
-icu/source/samples/uciter8/uciter8.vcxproj.filters
-icu/source/samples/ugrep/ugrep.vcxproj
-icu/source/samples/ugrep/ugrep.vcxproj.filters
-icu/source/samples/break/break.vcxproj
-icu/source/samples/break/break.vcxproj.filters
-icu/source/samples/csdet/csdet.vcxproj
-icu/source/samples/csdet/csdet.vcxproj.filters
-icu/source/samples/udata/writer.vcxproj.filters
+icu/source/samples/udata/reader.vcxproj.filters
 icu/source/samples/udata/writer.vcxproj
 icu/source/samples/udata/reader.vcxproj
-icu/source/samples/udata/reader.vcxproj.filters
+icu/source/samples/udata/writer.vcxproj.filters
+icu/source/samples/translit/translit.vcxproj
+icu/source/samples/translit/translit.vcxproj.filters
+icu/source/samples/date/date.vcxproj
+icu/source/samples/date/date.vcxproj.filters
 icu/source/samples/datefmt/datefmt.vcxproj
 icu/source/samples/datefmt/datefmt.vcxproj.filters
-icu/source/samples/date/date.vcxproj.filters
-icu/source/samples/date/date.vcxproj
-icu/source/samples/layout/layout.vcxproj.filters
-icu/source/samples/layout/layout.vcxproj
-icu/source/samples/layout/Sample.txt
-icu/source/samples/msgfmt/msgfmt.vcxproj.filters
-icu/source/samples/msgfmt/msgfmt.vcxproj
-icu/source/samples/numfmt/numfmt.vcxproj
-icu/source/samples/numfmt/numfmt.vcxproj.filters
-icu/source/samples/ustring/ustring.vcxproj
-icu/source/samples/ustring/ustring.vcxproj.filters
-icu/source/samples/case/case.vcxproj
-icu/source/samples/case/case.vcxproj.filters
-icu/source/samples/plurfmtsample/plurfmtsample.vcxproj.filters
-icu/source/samples/plurfmtsample/plurfmtsample.vcxproj
-icu/source/samples/ufortune/ufortune.vcxproj
 icu/source/samples/ufortune/ufortune.vcxproj.filters
+icu/source/samples/ufortune/ufortune.vcxproj
 icu/source/samples/ufortune/resources/es.txt
+icu/source/samples/dtptngsample/dtptngsample.vcxproj
+icu/source/samples/dtptngsample/dtptngsample.vcxproj.filters
 icu/source/samples/props/props.vcxproj.filters
 icu/source/samples/props/props.vcxproj
-icu/source/samples/strsrch/strsrch.vcxproj.filters
-icu/source/samples/strsrch/strsrch.vcxproj
-icu/source/samples/translit/translit.vcxproj.filters
-icu/source/samples/translit/translit.vcxproj
-icu/source/samples/legacy/legacy.vcxproj.filters
-icu/source/samples/legacy/legacy.vcxproj
-icu/source/samples/citer/citer.vcxproj.filters
-icu/source/samples/citer/citer.vcxproj
-icu/source/samples/ucnv/ucnv.vcxproj
-icu/source/samples/ucnv/data06.txt
-icu/source/samples/ucnv/ucnv.vcxproj.filters
-icu/source/samples/ucnv/data01.txt
+icu/source/samples/csdet/csdet.vcxproj
+icu/source/samples/csdet/csdet.vcxproj.filters
+icu/source/samples/uresb/uresb.vcxproj.filters
 icu/source/samples/uresb/resources.vcxproj
 icu/source/samples/uresb/resources.vcxproj.filters
 icu/source/samples/uresb/uresb.vcxproj
-icu/source/samples/uresb/uresb.vcxproj.filters
-icu/source/extra/uconv/uconv.vcxproj.filters
-icu/source/extra/uconv/uconv.vcxproj
-icu/source/extra/uconv/samples/utf8/korean.txt
-icu/source/extra/uconv/samples/utf8/greek.txt
-icu/source/extra/uconv/samples/utf8/danish.txt
-icu/source/extra/uconv/samples/utf8/many.txt
-icu/source/extra/uconv/samples/utf8/jap.txt
-icu/source/extra/uconv/samples/utf8/simplechinese.txt
-icu/source/extra/uconv/samples/utf8/turkish.txt
-icu/source/extra/uconv/samples/utf8/hania.txt
-icu/source/extra/uconv/samples/utf8/linji.txt
-icu/source/extra/uconv/samples/utf8/utf-8-demo.txt
-icu/source/extra/uconv/samples/utf8/hangul.txt
-icu/source/extra/uconv/samples/utf8/chinese-ulysses.txt
-icu/source/extra/uconv/samples/utf8/maopoem.txt
-icu/source/extra/uconv/samples/utf8/armenian.txt
-icu/source/extra/uconv/samples/utf8/russian.txt
-icu/source/extra/uconv/samples/utf8/banviet.txt
-icu/source/extra/uconv/samples/utf8/croat.txt
-icu/source/extra/uconv/resources/root.txt
-icu/source/extra/uconv/resources/fr.txt
-icu/source/data/makedata_uwp.vcxproj
-icu/source/data/makedata.vcxproj
-icu/source/data/makedata.vcxproj.filters
-icu/source/data/unidata/changes.txt
-icu/source/data/unidata/confusablesWholeScript.txt
-icu/source/data/unidata/UCARules.txt
-icu/source/data/unidata/confusables.txt
-icu/source/layoutex/layoutex.vcxproj.filters
-icu/source/layoutex/layoutex.vcxproj
-icu/source/i18n/i18n.vcxproj
-icu/source/i18n/i18n.vcxproj.filters
+icu/source/samples/ustring/ustring.vcxproj
+icu/source/samples/ustring/ustring.vcxproj.filters
+icu/source/allinone/Windows.CopyUnicodeHeaderFiles.targets
+icu/source/stubdata/stubdata.vcxproj
+icu/source/stubdata/stubdata.vcxproj.filters
 icu/source/i18n/i18n_uwp.vcxproj
+icu/source/i18n/i18n.vcxproj.filters
+icu/source/i18n/i18n.vcxproj
index 15cade5..dba98b4 100644 (file)
@@ -3,7 +3,7 @@
 
 <html lang="en-US" xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-US">
   <head>
-    <title>ReadMe for ICU 62.1</title>
+    <title>ReadMe for ICU 63.1</title>
     <meta name="COPYRIGHT" content=
     "Copyright (C) 2016 and later: Unicode, Inc. and others. License &amp; terms of use: http://www.unicode.org/copyright.html"/>
     <!-- meta name="COPYRIGHT" content=
@@ -32,7 +32,7 @@
       International Components for Unicode<br/>
       <span class="only-rc">Release Candidate</span>
       <span class="only-milestone">(Milestone Release)</span>
-      <abbr title="International Components for Unicode">ICU</abbr> 62.1 ReadMe
+      <abbr title="International Components for Unicode">ICU</abbr> 63.1 ReadMe
     </h1>
 
     <!-- Shouldn't need to comment/uncomment this paragraph, just change the body class -->
@@ -44,7 +44,7 @@
     <p class="note only-rc">This is a release candidate version of ICU4C.
       It is not recommended for production use.</p>
 
-    <p>Last updated: 2018-June-12<br/>
+    <p>Last updated: 2018-Oct-05<br/>
       Copyright &copy; 2016 and later: Unicode, Inc. and others. License &amp; terms of use:
       <a href="http://www.unicode.org/copyright.html">http://www.unicode.org/copyright.html</a><br/>
       Copyright &copy; 1997-2016 International Business Machines Corporation and others.
 
     <h2><a name="News" href="#News" id="News">What Is New In This Release?</a></h2>
 
-    <p>See the <a href="http://site.icu-project.org/download/62">ICU 62 download page</a>
+    <p>See the <a href="http://site.icu-project.org/download/63">ICU 63 download page</a>
     for an overview of this release, important changes, new features, bug fixes, known issues,
     changes to supported platforms and build environments,
     and migration issues for existing applications migrating from previous ICU releases.</p>
       most other platforms.<br />
        Please unzip this file. </li>
 
-      <li><strong>Subversion Source Repository:</strong><br />
+      <li><strong>GitHub Source Repository:</strong><br />
        If you are interested in developing features, patches, or bug fixes for
       ICU, you should probably be working with the latest version of the ICU
-      source code. You will need to check the code out of our Subversion repository to
+      source code. You will need to clone and checkout the code from our GitHub repository to
       ensure that you have the most recent version of all of the files. See our
       <a href="http://site.icu-project.org/repository">source
       repository</a> for details.</li>
index 8c6c5de..25b535c 100644 (file)
@@ -1,4 +1,5 @@
-# Doxyfile 1.3.7
+# Doxyfile 1.8.13
+
 # Copyright (C) 2016 and later: Unicode, Inc. and others.
 # License & terms of use: http://www.unicode.org/copyright.html
 #  ********************************************************************
 #  * and others. All Rights Reserved.
 #  ********************************************************************
 
+# This file describes the settings to be used by the documentation system
+# doxygen (www.doxygen.org) for a project.
+#
+# All text after a double hash (##) is considered a comment and is placed in
+# front of the TAG it is preceding.
+#
+# All text after a single hash (#) is considered a comment and will be ignored.
+# The format is:
+# TAG = value [value, ...]
+# For lists, items can also be appended using:
+# TAG += value [value, ...]
+# Values that contain spaces should be placed between quotes (\" \").
+
 #---------------------------------------------------------------------------
 # Project related configuration options
 #---------------------------------------------------------------------------
+
+# This tag specifies the encoding used for all characters in the config file
+# that follow. The default is UTF-8 which is also the encoding used for all text
+# before the first occurrence of this tag. Doxygen uses libiconv (or the iconv
+# built into libc) for the transcoding. See http://www.gnu.org/software/libiconv
+# for the list of possible encodings.
+# The default value is: UTF-8.
+
+DOXYFILE_ENCODING      = UTF-8
+
+# The PROJECT_NAME tag is a single word (or a sequence of words surrounded by
+# double-quotes, unless you are using Doxywizard) that should identify the
+# project for which the documentation is generated. This name is used in the
+# title of most generated pages and in a few other places.
+# The default value is: My Project.
+
 PROJECT_NAME           = "ICU @VERSION@"
+
+# The PROJECT_NUMBER tag can be used to enter a project or revision number. This
+# could be handy for archiving the generated documentation or if some version
+# control system is used.
+
 PROJECT_NUMBER         = @VERSION@
+
+# Using the PROJECT_BRIEF tag one can provide an optional one line description
+# for a project that appears at the top of each page and should give viewer a
+# quick idea about the purpose of the project. Keep the description short.
+
+PROJECT_BRIEF          =
+
+# With the PROJECT_LOGO tag one can specify a logo or an icon that is included
+# in the documentation. The maximum height of the logo should not exceed 55
+# pixels and the maximum width should not exceed 200 pixels. Doxygen will copy
+# the logo to the output directory.
+
+PROJECT_LOGO           =
+
+# The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute) path
+# into which the generated documentation will be written. If a relative path is
+# entered, it will be relative to the location where doxygen was started. If
+# left blank the current directory will be used.
+
 OUTPUT_DIRECTORY       = doc
+
+# If the CREATE_SUBDIRS tag is set to YES then doxygen will create 4096 sub-
+# directories (in 2 levels) under the output directory of each output format and
+# will distribute the generated files over these directories. Enabling this
+# option can be useful when feeding doxygen a huge amount of source files, where
+# putting all generated files in the same directory would otherwise causes
+# performance problems for the file system.
+# The default value is: NO.
+
 CREATE_SUBDIRS         = NO
+
+# If the ALLOW_UNICODE_NAMES tag is set to YES, doxygen will allow non-ASCII
+# characters to appear in the names of generated files. If set to NO, non-ASCII
+# characters will be escaped, for example _xE3_x81_x84 will be used for Unicode
+# U+3044.
+# The default value is: NO.
+
+ALLOW_UNICODE_NAMES    = NO
+
+# The OUTPUT_LANGUAGE tag is used to specify the language in which all
+# documentation generated by doxygen is written. Doxygen will use this
+# information to generate all constant output in the proper language.
+# Possible values are: Afrikaans, Arabic, Armenian, Brazilian, Catalan, Chinese,
+# Chinese-Traditional, Croatian, Czech, Danish, Dutch, English (United States),
+# Esperanto, Farsi (Persian), Finnish, French, German, Greek, Hungarian,
+# Indonesian, Italian, Japanese, Japanese-en (Japanese with English messages),
+# Korean, Korean-en (Korean with English messages), Latvian, Lithuanian,
+# Macedonian, Norwegian, Persian (Farsi), Polish, Portuguese, Romanian, Russian,
+# Serbian, Serbian-Cyrillic, Slovak, Slovene, Spanish, Swedish, Turkish,
+# Ukrainian and Vietnamese.
+# The default value is: English.
+
 OUTPUT_LANGUAGE        = English
-#USE_WINDOWS_ENCODING   = YES
-DOXYFILE_ENCODING      = UTF-8
+
+# If the BRIEF_MEMBER_DESC tag is set to YES, doxygen will include brief member
+# descriptions after the members that are listed in the file and class
+# documentation (similar to Javadoc). Set to NO to disable this.
+# The default value is: YES.
+
 BRIEF_MEMBER_DESC      = YES
+
+# If the REPEAT_BRIEF tag is set to YES, doxygen will prepend the brief
+# description of a member or function before the detailed description
+#
+# Note: If both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the
+# brief descriptions will be completely suppressed.
+# The default value is: YES.
+
 REPEAT_BRIEF           = YES
-ABBREVIATE_BRIEF       = 
+
+# This tag implements a quasi-intelligent brief description abbreviator that is
+# used to form the text in various listings. Each string in this list, if found
+# as the leading text of the brief description, will be stripped from the text
+# and the result, after processing the whole list, is used as the annotated
+# text. Otherwise, the brief description is used as-is. If left blank, the
+# following values are used ($name is automatically replaced with the name of
+# the entity):The $name class, The $name widget, The $name file, is, provides,
+# specifies, contains, represents, a, an and the.
+
+ABBREVIATE_BRIEF       =
+
+# If the ALWAYS_DETAILED_SEC and REPEAT_BRIEF tags are both set to YES then
+# doxygen will generate a detailed section even if there is only a brief
+# description.
+# The default value is: NO.
+
 ALWAYS_DETAILED_SEC    = NO
+
+# If the INLINE_INHERITED_MEMB tag is set to YES, doxygen will show all
+# inherited members of a class in the documentation of that class as if those
+# members were ordinary class members. Constructors, destructors and assignment
+# operators of the base classes will not be shown.
+# The default value is: NO.
+
 INLINE_INHERITED_MEMB  = NO
+
+# If the FULL_PATH_NAMES tag is set to YES, doxygen will prepend the full path
+# before files name in the file list and in the header files. If set to NO the
+# shortest path that makes the file name unique will be used
+# The default value is: YES.
+
 FULL_PATH_NAMES        = NO
-STRIP_FROM_PATH        = 
-STRIP_FROM_INC_PATH    = 
+
+# The STRIP_FROM_PATH tag can be used to strip a user-defined part of the path.
+# Stripping is only done if one of the specified strings matches the left-hand
+# part of the path. The tag can be used to show relative paths in the file list.
+# If left blank the directory from which doxygen is run is used as the path to
+# strip.
+#
+# Note that you can specify absolute paths here, but also relative paths, which
+# will be relative from the directory where doxygen is started.
+# This tag requires that the tag FULL_PATH_NAMES is set to YES.
+
+STRIP_FROM_PATH        =
+
+# The STRIP_FROM_INC_PATH tag can be used to strip a user-defined part of the
+# path mentioned in the documentation of a class, which tells the reader which
+# header file to include in order to use a class. If left blank only the name of
+# the header file containing the class definition is used. Otherwise one should
+# specify the list of include paths that are normally passed to the compiler
+# using the -I flag.
+
+STRIP_FROM_INC_PATH    =
+
+# If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter (but
+# less readable) file names. This can be useful is your file systems doesn't
+# support long names like on DOS, Mac, or CD-ROM.
+# The default value is: NO.
+
 SHORT_NAMES            = NO
+
+# If the JAVADOC_AUTOBRIEF tag is set to YES then doxygen will interpret the
+# first line (until the first dot) of a Javadoc-style comment as the brief
+# description. If set to NO, the Javadoc-style will behave just like regular Qt-
+# style comments (thus requiring an explicit @brief command for a brief
+# description.)
+# The default value is: NO.
+
 JAVADOC_AUTOBRIEF      = YES
+
+# If the QT_AUTOBRIEF tag is set to YES then doxygen will interpret the first
+# line (until the first dot) of a Qt-style comment as the brief description. If
+# set to NO, the Qt-style will behave just like regular Qt-style comments (thus
+# requiring an explicit \brief command for a brief description.)
+# The default value is: NO.
+
+QT_AUTOBRIEF           = NO
+
+# The MULTILINE_CPP_IS_BRIEF tag can be set to YES to make doxygen treat a
+# multi-line C++ special comment block (i.e. a block of //! or /// comments) as
+# a brief description. This used to be the default behavior. The new default is
+# to treat a multi-line C++ comment block as a detailed description. Set this
+# tag to YES if you prefer the old behavior instead.
+#
+# Note that setting this tag to YES also means that rational rose comments are
+# not recognized any more.
+# The default value is: NO.
+
 MULTILINE_CPP_IS_BRIEF = NO
-#DETAILS_AT_TOP         = NO
+
+# If the INHERIT_DOCS tag is set to YES then an undocumented member inherits the
+# documentation from any documented member that it re-implements.
+# The default value is: YES.
+
 INHERIT_DOCS           = YES
-DISTRIBUTE_GROUP_DOC   = YES
+
+# If the SEPARATE_MEMBER_PAGES tag is set to YES then doxygen will produce a new
+# page for each member. If set to NO, the documentation of a member will be part
+# of the file/class/namespace that contains it.
+# The default value is: NO.
+
+SEPARATE_MEMBER_PAGES  = NO
+
+# The TAB_SIZE tag can be used to set the number of spaces in a tab. Doxygen
+# uses this value to replace tabs by spaces in code fragments.
+# Minimum value: 1, maximum value: 16, default value: 4.
+
 TAB_SIZE               = 8
+
+# This tag can be used to specify a number of aliases that act as commands in
+# the documentation. An alias has the form:
+# name=value
+# For example adding
+# "sideeffect=@par Side Effects:\n"
+# will allow you to put the command \sideeffect (or @sideeffect) in the
+# documentation, which will result in a user-defined paragraph with heading
+# "Side Effects:". You can put \n's in the value part of an alias to insert
+# newlines.
+
 ALIASES                = "memo=\par Note:\n" \
                          "draft=\xrefitem draft \"Draft\" \"Draft List\"  This API may be changed in the future versions and was introduced in" \
                          "stable=\xrefitem stable \"Stable\" \"Stable List\"" \
                          "deprecated=\xrefitem deprecated \"Deprecated\" \"Deprecated List\"" \
                          "obsolete=\xrefitem obsolete \"Obsolete\" \"Obsolete List\"" \
                          "system=\xrefitem system \"System\" \"System List\" \n Do not use unless you know what you are doing." \
-                         "internal=\xrefitem internal \"Internal\"  \"Internal List\"  Do not use. This API is for internal use only." 
+                         "internal=\xrefitem internal \"Internal\"  \"Internal List\"  Do not use. This API is for internal use only."
+
+# This tag can be used to specify a number of word-keyword mappings (TCL only).
+# A mapping has the form "name=value". For example adding "class=itcl::class"
+# will allow you to use the command class in the itcl::class meaning.
+
+TCL_SUBST              =
+
+# Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C sources
+# only. Doxygen will then generate output that is more tailored for C. For
+# instance, some of the names that are used will be different. The list of all
+# members will be omitted, etc.
+# The default value is: NO.
 
 OPTIMIZE_OUTPUT_FOR_C  = YES
+
+# Set the OPTIMIZE_OUTPUT_JAVA tag to YES if your project consists of Java or
+# Python sources only. Doxygen will then generate output that is more tailored
+# for that language. For instance, namespaces will be presented as packages,
+# qualified scopes will look different, etc.
+# The default value is: NO.
+
 OPTIMIZE_OUTPUT_JAVA   = NO
+
+# Set the OPTIMIZE_FOR_FORTRAN tag to YES if your project consists of Fortran
+# sources. Doxygen will then generate output that is tailored for Fortran.
+# The default value is: NO.
+
+OPTIMIZE_FOR_FORTRAN   = NO
+
+# Set the OPTIMIZE_OUTPUT_VHDL tag to YES if your project consists of VHDL
+# sources. Doxygen will then generate output that is tailored for VHDL.
+# The default value is: NO.
+
+OPTIMIZE_OUTPUT_VHDL   = NO
+
+# Doxygen selects the parser to use depending on the extension of the files it
+# parses. With this tag you can assign which parser to use for a given
+# extension. Doxygen has a built-in mapping, but you can override or extend it
+# using this tag. The format is ext=language, where ext is a file extension, and
+# language is one of the parsers supported by doxygen: IDL, Java, Javascript,
+# C#, C, C++, D, PHP, Objective-C, Python, Fortran (fixed format Fortran:
+# FortranFixed, free formatted Fortran: FortranFree, unknown formatted Fortran:
+# Fortran. In the later case the parser tries to guess whether the code is fixed
+# or free formatted code, this is the default for Fortran type files), VHDL. For
+# instance to make doxygen treat .inc files as Fortran files (default is PHP),
+# and .f files as C (default is Fortran), use: inc=Fortran f=C.
+#
+# Note: For files without extension you can use no_extension as a placeholder.
+#
+# Note that for custom extensions you also need to set FILE_PATTERNS otherwise
+# the files are not read by doxygen.
+
+EXTENSION_MAPPING      =
+
+# If the MARKDOWN_SUPPORT tag is enabled then doxygen pre-processes all comments
+# according to the Markdown format, which allows for more readable
+# documentation. See http://daringfireball.net/projects/markdown/ for details.
+# The output of markdown processing is further processed by doxygen, so you can
+# mix doxygen, HTML, and XML commands with Markdown formatting. Disable only in
+# case of backward compatibilities issues.
+# The default value is: YES.
+
+MARKDOWN_SUPPORT       = YES
+
+# When the TOC_INCLUDE_HEADINGS tag is set to a non-zero value, all headings up
+# to that level are automatically included in the table of contents, even if
+# they do not have an id attribute.
+# Note: This feature currently applies only to Markdown headings.
+# Minimum value: 0, maximum value: 99, default value: 0.
+# This tag requires that the tag MARKDOWN_SUPPORT is set to YES.
+
+TOC_INCLUDE_HEADINGS   = 0
+
+# When enabled doxygen tries to link words that correspond to documented
+# classes, or namespaces to their corresponding documentation. Such a link can
+# be prevented in individual cases by putting a % sign in front of the word or
+# globally by setting AUTOLINK_SUPPORT to NO.
+# The default value is: YES.
+
+AUTOLINK_SUPPORT       = YES
+
+# If you use STL classes (i.e. std::string, std::vector, etc.) but do not want
+# to include (a tag file for) the STL sources as input, then you should set this
+# tag to YES in order to let doxygen match functions declarations and
+# definitions whose arguments contain STL classes (e.g. func(std::string);
+# versus func(std::string) {}). This also make the inheritance and collaboration
+# diagrams that involve STL classes more complete and accurate.
+# The default value is: NO.
+
+BUILTIN_STL_SUPPORT    = NO
+
+# If you use Microsoft's C++/CLI language, you should set this option to YES to
+# enable parsing support.
+# The default value is: NO.
+
+CPP_CLI_SUPPORT        = NO
+
+# Set the SIP_SUPPORT tag to YES if your project consists of sip (see:
+# http://www.riverbankcomputing.co.uk/software/sip/intro) sources only. Doxygen
+# will parse them like normal C++ but will assume all classes use public instead
+# of private inheritance when no explicit protection keyword is present.
+# The default value is: NO.
+
+SIP_SUPPORT            = NO
+
+# For Microsoft's IDL there are propget and propput attributes to indicate
+# getter and setter methods for a property. Setting this option to YES will make
+# doxygen to replace the get and set methods by a property in the documentation.
+# This will only work if the methods are indeed getting or setting a simple
+# type. If this is not the case, or you want to show the methods anyway, you
+# should set this option to NO.
+# The default value is: YES.
+
+IDL_PROPERTY_SUPPORT   = YES
+
+# If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC
+# tag is set to YES then doxygen will reuse the documentation of the first
+# member in the group (if any) for the other members of the group. By default
+# all members of a group must be documented explicitly.
+# The default value is: NO.
+
+DISTRIBUTE_GROUP_DOC   = YES
+
+# If one adds a struct or class to a group and this option is enabled, then also
+# any nested class or struct is added to the same group. By default this option
+# is disabled and one has to add nested compounds explicitly via \ingroup.
+# The default value is: NO.
+
+GROUP_NESTED_COMPOUNDS = NO
+
+# Set the SUBGROUPING tag to YES to allow class member groups of the same type
+# (for instance a group of public functions) to be put as a subgroup of that
+# type (e.g. under the Public Functions section). Set it to NO to prevent
+# subgrouping. Alternatively, this can be done per class using the
+# \nosubgrouping command.
+# The default value is: YES.
+
 SUBGROUPING            = YES
+
+# When the INLINE_GROUPED_CLASSES tag is set to YES, classes, structs and unions
+# are shown inside the group in which they are included (e.g. using \ingroup)
+# instead of on a separate page (for HTML and Man pages) or section (for LaTeX
+# and RTF).
+#
+# Note that this feature does not work in combination with
+# SEPARATE_MEMBER_PAGES.
+# The default value is: NO.
+
+INLINE_GROUPED_CLASSES = NO
+
+# When the INLINE_SIMPLE_STRUCTS tag is set to YES, structs, classes, and unions
+# with only public data fields or simple typedef fields will be shown inline in
+# the documentation of the scope in which they are defined (i.e. file,
+# namespace, or group documentation), provided this scope is documented. If set
+# to NO, structs, classes, and unions are shown on a separate page (for HTML and
+# Man pages) or section (for LaTeX and RTF).
+# The default value is: NO.
+
+INLINE_SIMPLE_STRUCTS  = NO
+
+# When TYPEDEF_HIDES_STRUCT tag is enabled, a typedef of a struct, union, or
+# enum is documented as struct, union, or enum with the name of the typedef. So
+# typedef struct TypeS {} TypeT, will appear in the documentation as a struct
+# with name TypeT. When disabled the typedef will appear as a member of a file,
+# namespace, or class. And the struct will be named TypeS. This can typically be
+# useful for C code in case the coding convention dictates that all compound
+# types are typedef'ed and only the typedef is referenced, never the tag name.
+# The default value is: NO.
+
+TYPEDEF_HIDES_STRUCT   = NO
+
+# The size of the symbol lookup cache can be set using LOOKUP_CACHE_SIZE. This
+# cache is used to resolve symbols given their name and scope. Since this can be
+# an expensive process and often the same symbol appears multiple times in the
+# code, doxygen keeps a cache of pre-resolved symbols. If the cache is too small
+# doxygen will become slower. If the cache is too large, memory is wasted. The
+# cache size is given by this formula: 2^(16+LOOKUP_CACHE_SIZE). The valid range
+# is 0..9, the default is 0, corresponding to a cache size of 2^16=65536
+# symbols. At the end of a run doxygen will report the cache usage and suggest
+# the optimal cache size from a speed point of view.
+# Minimum value: 0, maximum value: 9, default value: 0.
+
+LOOKUP_CACHE_SIZE      = 0
+
 #---------------------------------------------------------------------------
 # Build related configuration options
 #---------------------------------------------------------------------------
+
+# If the EXTRACT_ALL tag is set to YES, doxygen will assume all entities in
+# documentation are documented, even if no documentation was available. Private
+# class members and static file members will be hidden unless the
+# EXTRACT_PRIVATE respectively EXTRACT_STATIC tags are set to YES.
+# Note: This will also disable the warnings about undocumented members that are
+# normally produced when WARNINGS is set to YES.
+# The default value is: NO.
+
 EXTRACT_ALL            = NO
+
+# If the EXTRACT_PRIVATE tag is set to YES, all private members of a class will
+# be included in the documentation.
+# The default value is: NO.
+
 EXTRACT_PRIVATE        = NO
+
+# If the EXTRACT_PACKAGE tag is set to YES, all members with package or internal
+# scope will be included in the documentation.
+# The default value is: NO.
+
+EXTRACT_PACKAGE        = NO
+
+# If the EXTRACT_STATIC tag is set to YES, all static members of a file will be
+# included in the documentation.
+# The default value is: NO.
+
 EXTRACT_STATIC         = NO
+
+# If the EXTRACT_LOCAL_CLASSES tag is set to YES, classes (and structs) defined
+# locally in source files will be included in the documentation. If set to NO,
+# only classes defined in header files are included. Does not have any effect
+# for Java sources.
+# The default value is: YES.
+
 EXTRACT_LOCAL_CLASSES  = YES
+
+# This flag is only useful for Objective-C code. If set to YES, local methods,
+# which are defined in the implementation section but not in the interface are
+# included in the documentation. If set to NO, only methods in the interface are
+# included.
+# The default value is: NO.
+
 EXTRACT_LOCAL_METHODS  = NO
+
+# If this flag is set to YES, the members of anonymous namespaces will be
+# extracted and appear in the documentation as a namespace called
+# 'anonymous_namespace{file}', where file will be replaced with the base name of
+# the file that contains the anonymous namespace. By default anonymous namespace
+# are hidden.
+# The default value is: NO.
+
+EXTRACT_ANON_NSPACES   = NO
+
+# If the HIDE_UNDOC_MEMBERS tag is set to YES, doxygen will hide all
+# undocumented members inside documented classes or files. If set to NO these
+# members will be included in the various overviews, but no documentation
+# section is generated. This option has no effect if EXTRACT_ALL is enabled.
+# The default value is: NO.
+
 HIDE_UNDOC_MEMBERS     = NO
+
+# If the HIDE_UNDOC_CLASSES tag is set to YES, doxygen will hide all
+# undocumented classes that are normally visible in the class hierarchy. If set
+# to NO, these classes will be included in the various overviews. This option
+# has no effect if EXTRACT_ALL is enabled.
+# The default value is: NO.
+
 HIDE_UNDOC_CLASSES     = NO
+
+# If the HIDE_FRIEND_COMPOUNDS tag is set to YES, doxygen will hide all friend
+# (class|struct|union) declarations. If set to NO, these declarations will be
+# included in the documentation.
+# The default value is: NO.
+
 HIDE_FRIEND_COMPOUNDS  = NO
+
+# If the HIDE_IN_BODY_DOCS tag is set to YES, doxygen will hide any
+# documentation blocks found inside the body of a function. If set to NO, these
+# blocks will be appended to the function's detailed documentation block.
+# The default value is: NO.
+
 HIDE_IN_BODY_DOCS      = NO
+
+# The INTERNAL_DOCS tag determines if documentation that is typed after a
+# \internal command is included. If the tag is set to NO then the documentation
+# will be excluded. Set it to YES to include the internal documentation.
+# The default value is: NO.
+
 INTERNAL_DOCS          = YES
+
+# If the CASE_SENSE_NAMES tag is set to NO then doxygen will only generate file
+# names in lower-case letters. If set to YES, upper-case letters are also
+# allowed. This is useful if you have classes or files whose names only differ
+# in case and if your file system supports case sensitive file names. Windows
+# and Mac users are advised to set this option to NO.
+# The default value is: system dependent.
+
 CASE_SENSE_NAMES       = YES
+
+# If the HIDE_SCOPE_NAMES tag is set to NO then doxygen will show members with
+# their full class and namespace scopes in the documentation. If set to YES, the
+# scope will be hidden.
+# The default value is: NO.
+
 HIDE_SCOPE_NAMES       = NO
+
+# If the HIDE_COMPOUND_REFERENCE tag is set to NO (default) then doxygen will
+# append additional text to a page's title, such as Class Reference. If set to
+# YES the compound reference will be hidden.
+# The default value is: NO.
+
+HIDE_COMPOUND_REFERENCE= NO
+
+# If the SHOW_INCLUDE_FILES tag is set to YES then doxygen will put a list of
+# the files that are included by a file in the documentation of that file.
+# The default value is: YES.
+
 SHOW_INCLUDE_FILES     = YES
+
+# If the SHOW_GROUPED_MEMB_INC tag is set to YES then Doxygen will add for each
+# grouped member an include statement to the documentation, telling the reader
+# which file to include in order to use the member.
+# The default value is: NO.
+
+SHOW_GROUPED_MEMB_INC  = NO
+
+# If the FORCE_LOCAL_INCLUDES tag is set to YES then doxygen will list include
+# files with double quotes in the documentation rather than with sharp brackets.
+# The default value is: NO.
+
+FORCE_LOCAL_INCLUDES   = NO
+
+# If the INLINE_INFO tag is set to YES then a tag [inline] is inserted in the
+# documentation for inline members.
+# The default value is: YES.
+
 INLINE_INFO            = YES
+
+# If the SORT_MEMBER_DOCS tag is set to YES then doxygen will sort the
+# (detailed) documentation of file and class members alphabetically by member
+# name. If set to NO, the members will appear in declaration order.
+# The default value is: YES.
+
 SORT_MEMBER_DOCS       = YES
+
+# If the SORT_BRIEF_DOCS tag is set to YES then doxygen will sort the brief
+# descriptions of file, namespace and class members alphabetically by member
+# name. If set to NO, the members will appear in declaration order. Note that
+# this will also influence the order of the classes in the class list.
+# The default value is: NO.
+
 SORT_BRIEF_DOCS        = NO
+
+# If the SORT_MEMBERS_CTORS_1ST tag is set to YES then doxygen will sort the
+# (brief and detailed) documentation of class members so that constructors and
+# destructors are listed first. If set to NO the constructors will appear in the
+# respective orders defined by SORT_BRIEF_DOCS and SORT_MEMBER_DOCS.
+# Note: If SORT_BRIEF_DOCS is set to NO this option is ignored for sorting brief
+# member documentation.
+# Note: If SORT_MEMBER_DOCS is set to NO this option is ignored for sorting
+# detailed member documentation.
+# The default value is: NO.
+
+SORT_MEMBERS_CTORS_1ST = NO
+
+# If the SORT_GROUP_NAMES tag is set to YES then doxygen will sort the hierarchy
+# of group names into alphabetical order. If set to NO the group names will
+# appear in their defined order.
+# The default value is: NO.
+
+SORT_GROUP_NAMES       = NO
+
+# If the SORT_BY_SCOPE_NAME tag is set to YES, the class list will be sorted by
+# fully-qualified names, including namespaces. If set to NO, the class list will
+# be sorted only by class name, not including the namespace part.
+# Note: This option is not very useful if HIDE_SCOPE_NAMES is set to YES.
+# Note: This option applies only to the class list, not to the alphabetical
+# list.
+# The default value is: NO.
+
 SORT_BY_SCOPE_NAME     = NO
+
+# If the STRICT_PROTO_MATCHING option is enabled and doxygen fails to do proper
+# type resolution of all parameters of a function it will reject a match between
+# the prototype and the implementation of a member function even if there is
+# only one candidate or it is obvious which candidate to choose by doing a
+# simple string match. By disabling STRICT_PROTO_MATCHING doxygen will still
+# accept a match between prototype and implementation in such cases.
+# The default value is: NO.
+
+STRICT_PROTO_MATCHING  = NO
+
+# The GENERATE_TODOLIST tag can be used to enable (YES) or disable (NO) the todo
+# list. This list is created by putting \todo commands in the documentation.
+# The default value is: YES.
+
 GENERATE_TODOLIST      = YES
+
+# The GENERATE_TESTLIST tag can be used to enable (YES) or disable (NO) the test
+# list. This list is created by putting \test commands in the documentation.
+# The default value is: YES.
+
 GENERATE_TESTLIST      = YES
+
+# The GENERATE_BUGLIST tag can be used to enable (YES) or disable (NO) the bug
+# list. This list is created by putting \bug commands in the documentation.
+# The default value is: YES.
+
 GENERATE_BUGLIST       = YES
+
+# The GENERATE_DEPRECATEDLIST tag can be used to enable (YES) or disable (NO)
+# the deprecated list. This list is created by putting \deprecated commands in
+# the documentation.
+# The default value is: YES.
+
 GENERATE_DEPRECATEDLIST= YES
-ENABLED_SECTIONS       = 
+
+# The ENABLED_SECTIONS tag can be used to enable conditional documentation
+# sections, marked by \if <section_label> ... \endif and \cond <section_label>
+# ... \endcond blocks.
+
+ENABLED_SECTIONS       =
+
+# The MAX_INITIALIZER_LINES tag determines the maximum number of lines that the
+# initial value of a variable or macro / define can have for it to appear in the
+# documentation. If the initializer consists of more lines than specified here
+# it will be hidden. Use a value of 0 to hide initializers completely. The
+# appearance of the value of individual variables and macros / defines can be
+# controlled using \showinitializer or \hideinitializer command in the
+# documentation regardless of this setting.
+# Minimum value: 0, maximum value: 10000, default value: 30.
+
 MAX_INITIALIZER_LINES  = 30
+
+# Set the SHOW_USED_FILES tag to NO to disable the list of files generated at
+# the bottom of the documentation of classes and structs. If set to YES, the
+# list will mention the files that were used to generate the documentation.
+# The default value is: YES.
+
 SHOW_USED_FILES        = YES
 
-# docset
-GENERATE_DOCSET        = NO
-DOCSET_FEEDNAME        = "ICU @VERSION@"
-DOCSET_BUNDLE_ID       = org.icu-project.icu4c
+# Set the SHOW_FILES tag to NO to disable the generation of the Files page. This
+# will remove the Files entry from the Quick Index and from the Folder Tree View
+# (if specified).
+# The default value is: YES.
+
+SHOW_FILES             = YES
+
+# Set the SHOW_NAMESPACES tag to NO to disable the generation of the Namespaces
+# page. This will remove the Namespaces entry from the Quick Index and from the
+# Folder Tree View (if specified).
+# The default value is: YES.
+
+SHOW_NAMESPACES        = YES
+
+# The FILE_VERSION_FILTER tag can be used to specify a program or script that
+# doxygen should invoke to get the current version for each file (typically from
+# the version control system). Doxygen will invoke the program by executing (via
+# popen()) the command command input-file, where command is the value of the
+# FILE_VERSION_FILTER tag, and input-file is the name of an input file provided
+# by doxygen. Whatever the program writes to standard output is used as the file
+# version. For an example see the documentation.
+
+FILE_VERSION_FILTER    =
+
+# The LAYOUT_FILE tag can be used to specify a layout file which will be parsed
+# by doxygen. The layout file controls the global structure of the generated
+# output files in an output format independent way. To create the layout file
+# that represents doxygen's defaults, run doxygen with the -l option. You can
+# optionally specify a file name after the option, if omitted DoxygenLayout.xml
+# will be used as the name of the layout file.
+#
+# Note that if you run doxygen from a directory containing a file called
+# DoxygenLayout.xml, doxygen will parse it automatically even if the LAYOUT_FILE
+# tag is left empty.
+
+LAYOUT_FILE            =
+
+# The CITE_BIB_FILES tag can be used to specify one or more bib files containing
+# the reference definitions. This must be a list of .bib files. The .bib
+# extension is automatically appended if omitted. This requires the bibtex tool
+# to be installed. See also http://en.wikipedia.org/wiki/BibTeX for more info.
+# For LaTeX the style of the bibliography can be controlled using
+# LATEX_BIB_STYLE. To use this feature you need bibtex and perl available in the
+# search path. See also \cite for info how to create references.
+
+CITE_BIB_FILES         =
 
 #---------------------------------------------------------------------------
-# configuration options related to warning and progress messages
+# Configuration options related to warning and progress messages
 #---------------------------------------------------------------------------
+
+# The QUIET tag can be used to turn on/off the messages that are generated to
+# standard output by doxygen. If QUIET is set to YES this implies that the
+# messages are off.
+# The default value is: NO.
+
 QUIET                  = NO
+
+# The WARNINGS tag can be used to turn on/off the warning messages that are
+# generated to standard error (stderr) by doxygen. If WARNINGS is set to YES
+# this implies that the warnings are on.
+#
+# Tip: Turn warnings on while writing the documentation.
+# The default value is: YES.
+
 WARNINGS               = YES
+
+# If the WARN_IF_UNDOCUMENTED tag is set to YES then doxygen will generate
+# warnings for undocumented members. If EXTRACT_ALL is set to YES then this flag
+# will automatically be disabled.
+# The default value is: YES.
+
 WARN_IF_UNDOCUMENTED   = YES
+
+# If the WARN_IF_DOC_ERROR tag is set to YES, doxygen will generate warnings for
+# potential errors in the documentation, such as not documenting some parameters
+# in a documented function, or documenting parameters that don't exist or using
+# markup commands wrongly.
+# The default value is: YES.
+
 WARN_IF_DOC_ERROR      = YES
+
+# This WARN_NO_PARAMDOC option can be enabled to get warnings for functions that
+# are documented, but have no documentation for their parameters or return
+# value. If set to NO, doxygen will only warn about wrong or incomplete
+# parameter documentation, but not about the absence of documentation.
+# The default value is: NO.
+
+WARN_NO_PARAMDOC       = NO
+
+# If the WARN_AS_ERROR tag is set to YES then doxygen will immediately stop when
+# a warning is encountered.
+# The default value is: NO.
+
+WARN_AS_ERROR          = NO
+
+# The WARN_FORMAT tag determines the format of the warning messages that doxygen
+# can produce. The string should contain the $file, $line, and $text tags, which
+# will be replaced by the file and line number from which the warning originated
+# and the warning text. Optionally the format may contain $version, which will
+# be replaced by the version of the file (if it could be obtained via
+# FILE_VERSION_FILTER)
+# The default value is: $file:$line: $text.
+
 WARN_FORMAT            = "$file:$line: $text"
-WARN_LOGFILE           = 
+
+# The WARN_LOGFILE tag can be used to specify a file to which warning and error
+# messages should be written. If left blank the output is written to standard
+# error (stderr).
+
+WARN_LOGFILE           =
+
 #---------------------------------------------------------------------------
-# configuration options related to the input files
+# Configuration options related to the input files
 #---------------------------------------------------------------------------
-INPUT                  = @srcdir@/common/unicode @srcdir@/i18n/unicode @srcdir@/io/unicode @srcdir@/layout/LEFontInstance.h @srcdir@/layout/LEGlyphStorage.h @srcdir@/layout/LELanguages.h @srcdir@/layout/LEScripts.h @srcdir@/layout/LESwaps.h @srcdir@/layout/LETypes.h @srcdir@/layout/LayoutEngine.h @srcdir@/layoutex/layout
+
+# The INPUT tag is used to specify the files and/or directories that contain
+# documented source files. You may enter file names like myfile.cpp or
+# directories like /usr/src/myproject. Separate the files or directories with
+# spaces. See also FILE_PATTERNS and EXTENSION_MAPPING
+# Note: If this tag is empty the current directory is searched.
+
+INPUT                  = @srcdir@/common/unicode \
+                         @srcdir@/i18n/unicode \
+                         @srcdir@/io/unicode \
+                         @srcdir@/layoutex/layout
+
+# This tag can be used to specify the character encoding of the source files
+# that doxygen parses. Internally doxygen uses the UTF-8 encoding. Doxygen uses
+# libiconv (or the iconv built into libc) for the transcoding. See the libiconv
+# documentation (see: http://www.gnu.org/software/libiconv) for the list of
+# possible encodings.
+# The default value is: UTF-8.
+
+INPUT_ENCODING         = UTF-8
+
+# If the value of the INPUT tag contains directories, you can use the
+# FILE_PATTERNS tag to specify one or more wildcard patterns (like *.cpp and
+# *.h) to filter out the source-files in the directories.
+#
+# Note that for custom extensions or not directly supported extensions you also
+# need to set EXTENSION_MAPPING for the extension otherwise the files are not
+# read by doxygen.
+#
+# If left blank the following patterns are tested:*.c, *.cc, *.cxx, *.cpp,
+# *.c++, *.java, *.ii, *.ixx, *.ipp, *.i++, *.inl, *.idl, *.ddl, *.odl, *.h,
+# *.hh, *.hxx, *.hpp, *.h++, *.cs, *.d, *.php, *.php4, *.php5, *.phtml, *.inc,
+# *.m, *.markdown, *.md, *.mm, *.dox, *.py, *.pyw, *.f90, *.f95, *.f03, *.f08,
+# *.f, *.for, *.tcl, *.vhd, *.vhdl, *.ucf and *.qsf.
+
 FILE_PATTERNS          = *.h
+
+# The RECURSIVE tag can be used to specify whether or not subdirectories should
+# be searched for input files as well.
+# The default value is: NO.
+
 RECURSIVE              = NO
-EXCLUDE                = @srcdir@/common/unicode/urename.h @srcdir@/common/unicode/udraft.h @srcdir@/common/unicode/udeprctd.h @srcdir@/common/unicode/uobslete.h @srcdir@/common/unicode/ppalmos.h  
+
+# The EXCLUDE tag can be used to specify files and/or directories that should be
+# excluded from the INPUT source files. This way you can easily exclude a
+# subdirectory from a directory tree whose root is specified with the INPUT tag.
+#
+# Note that relative paths are relative to the directory from which doxygen is
+# run.
+
+EXCLUDE                = @srcdir@/common/unicode/urename.h \
+                         @srcdir@/common/unicode/udraft.h \
+                         @srcdir@/common/unicode/udeprctd.h \
+                         @srcdir@/common/unicode/uobslete.h \
+                         @srcdir@/common/unicode/ppalmos.h
+
+# The EXCLUDE_SYMLINKS tag can be used to select whether or not files or
+# directories that are symbolic links (a Unix file system feature) are excluded
+# from the input.
+# The default value is: NO.
+
 EXCLUDE_SYMLINKS       = NO
+
+# If the value of the INPUT tag contains directories, you can use the
+# EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude
+# certain files from those directories.
+#
+# Note that the wildcards are matched against the file with absolute path, so to
+# exclude all test directories for example use the pattern */test/*
+
 EXCLUDE_PATTERNS       = config*.h
+
+# The EXCLUDE_SYMBOLS tag can be used to specify one or more symbol names
+# (namespaces, classes, functions, etc.) that should be excluded from the
+# output. The symbol name can be a fully qualified name, a word, or if the
+# wildcard * is used, a substring. Examples: ANamespace, AClass,
+# AClass::ANamespace, ANamespace::*Test
+#
+# Note that the wildcards are matched against the file with absolute path, so to
+# exclude all test directories use the pattern */test/*
+
+EXCLUDE_SYMBOLS        =
+
+# The EXAMPLE_PATH tag can be used to specify one or more files or directories
+# that contain example code fragments that are included (see the \include
+# command).
+
 EXAMPLE_PATH           = @srcdir@/
-EXAMPLE_PATTERNS       = 
+
+# If the value of the EXAMPLE_PATH tag contains directories, you can use the
+# EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp and
+# *.h) to filter out the source-files in the directories. If left blank all
+# files are included.
+
+EXAMPLE_PATTERNS       =
+
+# If the EXAMPLE_RECURSIVE tag is set to YES then subdirectories will be
+# searched for input files to be used with the \include or \dontinclude commands
+# irrespective of the value of the RECURSIVE tag.
+# The default value is: NO.
+
 EXAMPLE_RECURSIVE      = NO
-IMAGE_PATH             = 
-INPUT_FILTER           = 
+
+# The IMAGE_PATH tag can be used to specify one or more files or directories
+# that contain images that are to be included in the documentation (see the
+# \image command).
+
+IMAGE_PATH             =
+
+# The INPUT_FILTER tag can be used to specify a program that doxygen should
+# invoke to filter for each input file. Doxygen will invoke the filter program
+# by executing (via popen()) the command:
+#
+# <filter> <input-file>
+#
+# where <filter> is the value of the INPUT_FILTER tag, and <input-file> is the
+# name of an input file. Doxygen will then use the output that the filter
+# program writes to standard output. If FILTER_PATTERNS is specified, this tag
+# will be ignored.
+#
+# Note that the filter must not add or remove lines; it is applied before the
+# code is scanned, but not when the output code is generated. If lines are added
+# or removed, the anchors will not be placed correctly.
+#
+# Note that for custom extensions or not directly supported extensions you also
+# need to set EXTENSION_MAPPING for the extension otherwise the files are not
+# properly processed by doxygen.
+
+INPUT_FILTER           =
+
+# The FILTER_PATTERNS tag can be used to specify filters on a per file pattern
+# basis. Doxygen will compare the file name with each pattern and apply the
+# filter if there is a match. The filters are a list of the form: pattern=filter
+# (like *.cpp=my_cpp_filter). See INPUT_FILTER for further information on how
+# filters are used. If the FILTER_PATTERNS tag is empty or if none of the
+# patterns match the file name, INPUT_FILTER is applied.
+#
+# Note that for custom extensions or not directly supported extensions you also
+# need to set EXTENSION_MAPPING for the extension otherwise the files are not
+# properly processed by doxygen.
+
+FILTER_PATTERNS        =
+
+# If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using
+# INPUT_FILTER) will also be used to filter the input files that are used for
+# producing the source files to browse (i.e. when SOURCE_BROWSER is set to YES).
+# The default value is: NO.
+
 FILTER_SOURCE_FILES    = NO
+
+# The FILTER_SOURCE_PATTERNS tag can be used to specify source filters per file
+# pattern. A pattern will override the setting for FILTER_PATTERN (if any) and
+# it is also possible to disable source filtering for a specific pattern using
+# *.ext= (so without naming a filter).
+# This tag requires that the tag FILTER_SOURCE_FILES is set to YES.
+
+FILTER_SOURCE_PATTERNS =
+
+# If the USE_MDFILE_AS_MAINPAGE tag refers to the name of a markdown file that
+# is part of the input, its contents will be placed on the main page
+# (index.html). This can be useful if you have a project on for instance GitHub
+# and want to reuse the introduction page also for the doxygen output.
+
+USE_MDFILE_AS_MAINPAGE =
+
 #---------------------------------------------------------------------------
-# configuration options related to source browsing
+# Configuration options related to source browsing
 #---------------------------------------------------------------------------
+
+# If the SOURCE_BROWSER tag is set to YES then a list of source files will be
+# generated. Documented entities will be cross-referenced with these sources.
+#
+# Note: To get rid of all source code in the generated output, make sure that
+# also VERBATIM_HEADERS is set to NO.
+# The default value is: NO.
+
 SOURCE_BROWSER         = YES
+
+# Setting the INLINE_SOURCES tag to YES will include the body of functions,
+# classes and enums directly into the documentation.
+# The default value is: NO.
+
 INLINE_SOURCES         = NO
+
+# Setting the STRIP_CODE_COMMENTS tag to YES will instruct doxygen to hide any
+# special comment blocks from generated source code fragments. Normal C, C++ and
+# Fortran comments will always remain visible.
+# The default value is: YES.
+
 STRIP_CODE_COMMENTS    = YES
+
+# If the REFERENCED_BY_RELATION tag is set to YES then for each documented
+# function all documented functions referencing it will be listed.
+# The default value is: NO.
+
 REFERENCED_BY_RELATION = YES
+
+# If the REFERENCES_RELATION tag is set to YES then for each documented function
+# all documented entities called/used by that function will be listed.
+# The default value is: NO.
+
 REFERENCES_RELATION    = YES
+
+# If the REFERENCES_LINK_SOURCE tag is set to YES and SOURCE_BROWSER tag is set
+# to YES then the hyperlinks from functions in REFERENCES_RELATION and
+# REFERENCED_BY_RELATION lists will link to the source code. Otherwise they will
+# link to the documentation.
+# The default value is: YES.
+
+REFERENCES_LINK_SOURCE = YES
+
+# If SOURCE_TOOLTIPS is enabled (the default) then hovering a hyperlink in the
+# source code will show a tooltip with additional information such as prototype,
+# brief description and links to the definition and documentation. Since this
+# will make the HTML file larger and loading of large files a bit slower, you
+# can opt to disable this feature.
+# The default value is: YES.
+# This tag requires that the tag SOURCE_BROWSER is set to YES.
+
+SOURCE_TOOLTIPS        = YES
+
+# If the USE_HTAGS tag is set to YES then the references to source code will
+# point to the HTML generated by the htags(1) tool instead of doxygen built-in
+# source browser. The htags tool is part of GNU's global source tagging system
+# (see http://www.gnu.org/software/global/global.html). You will need version
+# 4.8.6 or higher.
+#
+# To use it do the following:
+# - Install the latest version of global
+# - Enable SOURCE_BROWSER and USE_HTAGS in the config file
+# - Make sure the INPUT points to the root of the source tree
+# - Run doxygen as normal
+#
+# Doxygen will invoke htags (and that will in turn invoke gtags), so these
+# tools must be available from the command line (i.e. in the search path).
+#
+# The result: instead of the source browser generated by doxygen, the links to
+# source code will now point to the output of htags.
+# The default value is: NO.
+# This tag requires that the tag SOURCE_BROWSER is set to YES.
+
+USE_HTAGS              = NO
+
+# If the VERBATIM_HEADERS tag is set the YES then doxygen will generate a
+# verbatim copy of the header file for each class for which an include is
+# specified. Set to NO to disable this.
+# See also: Section \class.
+# The default value is: YES.
+
 VERBATIM_HEADERS       = YES
+
+# If the CLANG_ASSISTED_PARSING tag is set to YES then doxygen will use the
+# clang parser (see: http://clang.llvm.org/) for more accurate parsing at the
+# cost of reduced performance. This can be particularly helpful with template
+# rich C++ code for which doxygen's built-in parser lacks the necessary type
+# information.
+# Note: The availability of this option depends on whether or not doxygen was
+# generated with the -Duse-libclang=ON option for CMake.
+# The default value is: NO.
+
+CLANG_ASSISTED_PARSING = NO
+
+# If clang assisted parsing is enabled you can provide the compiler with command
+# line options that you would normally use when invoking the compiler. Note that
+# the include paths will already be set by doxygen for the files and directories
+# specified with INPUT and INCLUDE_PATH.
+# This tag requires that the tag CLANG_ASSISTED_PARSING is set to YES.
+
+CLANG_OPTIONS          =
+
 #---------------------------------------------------------------------------
-# configuration options related to the alphabetical class index
+# Configuration options related to the alphabetical class index
 #---------------------------------------------------------------------------
+
+# If the ALPHABETICAL_INDEX tag is set to YES, an alphabetical index of all
+# compounds will be generated. Enable this if the project contains a lot of
+# classes, structs, unions or interfaces.
+# The default value is: YES.
+
 ALPHABETICAL_INDEX     = YES
+
+# The COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns in
+# which the alphabetical index list will be split.
+# Minimum value: 1, maximum value: 20, default value: 5.
+# This tag requires that the tag ALPHABETICAL_INDEX is set to YES.
+
 COLS_IN_ALPHA_INDEX    = 5
-IGNORE_PREFIX          = 
+
+# In case all classes in a project start with a common prefix, all classes will
+# be put under the same header in the alphabetical index. The IGNORE_PREFIX tag
+# can be used to specify a prefix (or a list of prefixes) that should be ignored
+# while generating the index headers.
+# This tag requires that the tag ALPHABETICAL_INDEX is set to YES.
+
+IGNORE_PREFIX          =
+
 #---------------------------------------------------------------------------
-# configuration options related to the HTML output
+# Configuration options related to the HTML output
 #---------------------------------------------------------------------------
+
+# If the GENERATE_HTML tag is set to YES, doxygen will generate HTML output
+# The default value is: YES.
+
 GENERATE_HTML          = YES
+
+# The HTML_OUTPUT tag is used to specify where the HTML docs will be put. If a
+# relative path is entered the value of OUTPUT_DIRECTORY will be put in front of
+# it.
+# The default directory is: html.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
 HTML_OUTPUT            = html
+
+# The HTML_FILE_EXTENSION tag can be used to specify the file extension for each
+# generated HTML page (for example: .htm, .php, .asp).
+# The default value is: .html.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
 HTML_FILE_EXTENSION    = .html
-HTML_HEADER            = 
-HTML_FOOTER            = 
-HTML_STYLESHEET        = 
-HTML_ALIGN_MEMBERS     = YES
+
+# The HTML_HEADER tag can be used to specify a user-defined HTML header file for
+# each generated HTML page. If the tag is left blank doxygen will generate a
+# standard header.
+#
+# To get valid HTML the header file that includes any scripts and style sheets
+# that doxygen needs, which is dependent on the configuration options used (e.g.
+# the setting GENERATE_TREEVIEW). It is highly recommended to start with a
+# default header using
+# doxygen -w html new_header.html new_footer.html new_stylesheet.css
+# YourConfigFile
+# and then modify the file new_header.html. See also section "Doxygen usage"
+# for information on how to generate the default header that doxygen normally
+# uses.
+# Note: The header is subject to change so you typically have to regenerate the
+# default header when upgrading to a newer version of doxygen. For a description
+# of the possible markers and block names see the documentation.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+HTML_HEADER            =
+
+# The HTML_FOOTER tag can be used to specify a user-defined HTML footer for each
+# generated HTML page. If the tag is left blank doxygen will generate a standard
+# footer. See HTML_HEADER for more information on how to generate a default
+# footer and what special commands can be used inside the footer. See also
+# section "Doxygen usage" for information on how to generate the default footer
+# that doxygen normally uses.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+HTML_FOOTER            =
+
+# The HTML_STYLESHEET tag can be used to specify a user-defined cascading style
+# sheet that is used by each HTML page. It can be used to fine-tune the look of
+# the HTML output. If left blank doxygen will generate a default style sheet.
+# See also section "Doxygen usage" for information on how to generate the style
+# sheet that doxygen normally uses.
+# Note: It is recommended to use HTML_EXTRA_STYLESHEET instead of this tag, as
+# it is more robust and this tag (HTML_STYLESHEET) will in the future become
+# obsolete.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+HTML_STYLESHEET        =
+
+# The HTML_EXTRA_STYLESHEET tag can be used to specify additional user-defined
+# cascading style sheets that are included after the standard style sheets
+# created by doxygen. Using this option one can overrule certain style aspects.
+# This is preferred over using HTML_STYLESHEET since it does not replace the
+# standard style sheet and is therefore more robust against future updates.
+# Doxygen will copy the style sheet files to the output directory.
+# Note: The order of the extra style sheet files is of importance (e.g. the last
+# style sheet in the list overrules the setting of the previous ones in the
+# list). For an example see the documentation.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+HTML_EXTRA_STYLESHEET  =
+
+# The HTML_EXTRA_FILES tag can be used to specify one or more extra images or
+# other source files which should be copied to the HTML output directory. Note
+# that these files will be copied to the base HTML output directory. Use the
+# $relpath^ marker in the HTML_HEADER and/or HTML_FOOTER files to load these
+# files. In the HTML_STYLESHEET file, use the file name only. Also note that the
+# files will be copied as-is; there are no commands or markers available.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+HTML_EXTRA_FILES       =
+
+# The HTML_COLORSTYLE_HUE tag controls the color of the HTML output. Doxygen
+# will adjust the colors in the style sheet and background images according to
+# this color. Hue is specified as an angle on a colorwheel, see
+# http://en.wikipedia.org/wiki/Hue for more information. For instance the value
+# 0 represents red, 60 is yellow, 120 is green, 180 is cyan, 240 is blue, 300
+# purple, and 360 is red again.
+# Minimum value: 0, maximum value: 359, default value: 220.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+HTML_COLORSTYLE_HUE    = 220
+
+# The HTML_COLORSTYLE_SAT tag controls the purity (or saturation) of the colors
+# in the HTML output. For a value of 0 the output will use grayscales only. A
+# value of 255 will produce the most vivid colors.
+# Minimum value: 0, maximum value: 255, default value: 100.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+HTML_COLORSTYLE_SAT    = 100
+
+# The HTML_COLORSTYLE_GAMMA tag controls the gamma correction applied to the
+# luminance component of the colors in the HTML output. Values below 100
+# gradually make the output lighter, whereas values above 100 make the output
+# darker. The value divided by 100 is the actual gamma applied, so 80 represents
+# a gamma of 0.8, The value 220 represents a gamma of 2.2, and 100 does not
+# change the gamma.
+# Minimum value: 40, maximum value: 240, default value: 80.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+HTML_COLORSTYLE_GAMMA  = 80
+
+# If the HTML_TIMESTAMP tag is set to YES then the footer of each generated HTML
+# page will contain the date and time when the page was generated. Setting this
+# to YES can help to show when doxygen was last run and thus if the
+# documentation is up to date.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+HTML_TIMESTAMP         = NO
+
+# If the HTML_DYNAMIC_SECTIONS tag is set to YES then the generated HTML
+# documentation will contain sections that can be hidden and shown after the
+# page has loaded.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+HTML_DYNAMIC_SECTIONS  = NO
+
+# With HTML_INDEX_NUM_ENTRIES one can control the preferred number of entries
+# shown in the various tree structured indices initially; the user can expand
+# and collapse entries dynamically later on. Doxygen will expand the tree to
+# such a level that at most the specified number of entries are visible (unless
+# a fully collapsed tree already exceeds this amount). So setting the number of
+# entries 1 will produce a full collapsed tree by default. 0 is a special value
+# representing an infinite number of entries and will result in a full expanded
+# tree by default.
+# Minimum value: 0, maximum value: 9999, default value: 100.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+HTML_INDEX_NUM_ENTRIES = 100
+
+# If the GENERATE_DOCSET tag is set to YES, additional index files will be
+# generated that can be used as input for Apple's Xcode 3 integrated development
+# environment (see: http://developer.apple.com/tools/xcode/), introduced with
+# OSX 10.5 (Leopard). To create a documentation set, doxygen will generate a
+# Makefile in the HTML output directory. Running make will produce the docset in
+# that directory and running make install will install the docset in
+# ~/Library/Developer/Shared/Documentation/DocSets so that Xcode will find it at
+# startup. See http://developer.apple.com/tools/creatingdocsetswithdoxygen.html
+# for more information.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+GENERATE_DOCSET        = NO
+
+# This tag determines the name of the docset feed. A documentation feed provides
+# an umbrella under which multiple documentation sets from a single provider
+# (such as a company or product suite) can be grouped.
+# The default value is: Doxygen generated docs.
+# This tag requires that the tag GENERATE_DOCSET is set to YES.
+
+DOCSET_FEEDNAME        = "ICU @VERSION@"
+
+# This tag specifies a string that should uniquely identify the documentation
+# set bundle. This should be a reverse domain-name style string, e.g.
+# com.mycompany.MyDocSet. Doxygen will append .docset to the name.
+# The default value is: org.doxygen.Project.
+# This tag requires that the tag GENERATE_DOCSET is set to YES.
+
+DOCSET_BUNDLE_ID       = org.icu-project.icu4c
+
+# The DOCSET_PUBLISHER_ID tag specifies a string that should uniquely identify
+# the documentation publisher. This should be a reverse domain-name style
+# string, e.g. com.mycompany.MyDocSet.documentation.
+# The default value is: org.doxygen.Publisher.
+# This tag requires that the tag GENERATE_DOCSET is set to YES.
+
+DOCSET_PUBLISHER_ID    = org.doxygen.Publisher
+
+# The DOCSET_PUBLISHER_NAME tag identifies the documentation publisher.
+# The default value is: Publisher.
+# This tag requires that the tag GENERATE_DOCSET is set to YES.
+
+DOCSET_PUBLISHER_NAME  = Publisher
+
+# If the GENERATE_HTMLHELP tag is set to YES then doxygen generates three
+# additional HTML index files: index.hhp, index.hhc, and index.hhk. The
+# index.hhp is a project file that can be read by Microsoft's HTML Help Workshop
+# (see: http://www.microsoft.com/en-us/download/details.aspx?id=21138) on
+# Windows.
+#
+# The HTML Help Workshop contains a compiler that can convert all HTML output
+# generated by doxygen into a single compiled HTML file (.chm). Compiled HTML
+# files are now used as the Windows 98 help format, and will replace the old
+# Windows help format (.hlp) on all Windows platforms in the future. Compressed
+# HTML files also contain an index, a table of contents, and you can search for
+# words in the documentation. The HTML workshop also contains a viewer for
+# compressed HTML files.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
 GENERATE_HTMLHELP      = NO
-CHM_FILE               = 
-HHC_LOCATION           = 
+
+# The CHM_FILE tag can be used to specify the file name of the resulting .chm
+# file. You can add a path in front of the file if the result should not be
+# written to the html output directory.
+# This tag requires that the tag GENERATE_HTMLHELP is set to YES.
+
+CHM_FILE               =
+
+# The HHC_LOCATION tag can be used to specify the location (absolute path
+# including file name) of the HTML help compiler (hhc.exe). If non-empty,
+# doxygen will try to run the HTML help compiler on the generated index.hhp.
+# The file has to be specified with full path.
+# This tag requires that the tag GENERATE_HTMLHELP is set to YES.
+
+HHC_LOCATION           =
+
+# The GENERATE_CHI flag controls if a separate .chi index file is generated
+# (YES) or that it should be included in the master .chm file (NO).
+# The default value is: NO.
+# This tag requires that the tag GENERATE_HTMLHELP is set to YES.
+
 GENERATE_CHI           = NO
+
+# The CHM_INDEX_ENCODING is used to encode HtmlHelp index (hhk), content (hhc)
+# and project file content.
+# This tag requires that the tag GENERATE_HTMLHELP is set to YES.
+
+CHM_INDEX_ENCODING     =
+
+# The BINARY_TOC flag controls whether a binary table of contents is generated
+# (YES) or a normal table of contents (NO) in the .chm file. Furthermore it
+# enables the Previous and Next buttons.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_HTMLHELP is set to YES.
+
 BINARY_TOC             = NO
+
+# The TOC_EXPAND flag can be set to YES to add extra items for group members to
+# the table of contents of the HTML help documentation and to the tree view.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_HTMLHELP is set to YES.
+
 TOC_EXPAND             = NO
+
+# If the GENERATE_QHP tag is set to YES and both QHP_NAMESPACE and
+# QHP_VIRTUAL_FOLDER are set, an additional index file will be generated that
+# can be used as input for Qt's qhelpgenerator to generate a Qt Compressed Help
+# (.qch) of the generated HTML documentation.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+GENERATE_QHP           = NO
+
+# If the QHG_LOCATION tag is specified, the QCH_FILE tag can be used to specify
+# the file name of the resulting .qch file. The path specified is relative to
+# the HTML output folder.
+# This tag requires that the tag GENERATE_QHP is set to YES.
+
+QCH_FILE               =
+
+# The QHP_NAMESPACE tag specifies the namespace to use when generating Qt Help
+# Project output. For more information please see Qt Help Project / Namespace
+# (see: http://qt-project.org/doc/qt-4.8/qthelpproject.html#namespace).
+# The default value is: org.doxygen.Project.
+# This tag requires that the tag GENERATE_QHP is set to YES.
+
+QHP_NAMESPACE          = org.doxygen.Project
+
+# The QHP_VIRTUAL_FOLDER tag specifies the namespace to use when generating Qt
+# Help Project output. For more information please see Qt Help Project / Virtual
+# Folders (see: http://qt-project.org/doc/qt-4.8/qthelpproject.html#virtual-
+# folders).
+# The default value is: doc.
+# This tag requires that the tag GENERATE_QHP is set to YES.
+
+QHP_VIRTUAL_FOLDER     = doc
+
+# If the QHP_CUST_FILTER_NAME tag is set, it specifies the name of a custom
+# filter to add. For more information please see Qt Help Project / Custom
+# Filters (see: http://qt-project.org/doc/qt-4.8/qthelpproject.html#custom-
+# filters).
+# This tag requires that the tag GENERATE_QHP is set to YES.
+
+QHP_CUST_FILTER_NAME   =
+
+# The QHP_CUST_FILTER_ATTRS tag specifies the list of the attributes of the
+# custom filter to add. For more information please see Qt Help Project / Custom
+# Filters (see: http://qt-project.org/doc/qt-4.8/qthelpproject.html#custom-
+# filters).
+# This tag requires that the tag GENERATE_QHP is set to YES.
+
+QHP_CUST_FILTER_ATTRS  =
+
+# The QHP_SECT_FILTER_ATTRS tag specifies the list of the attributes this
+# project's filter section matches. Qt Help Project / Filter Attributes (see:
+# http://qt-project.org/doc/qt-4.8/qthelpproject.html#filter-attributes).
+# This tag requires that the tag GENERATE_QHP is set to YES.
+
+QHP_SECT_FILTER_ATTRS  =
+
+# The QHG_LOCATION tag can be used to specify the location of Qt's
+# qhelpgenerator. If non-empty doxygen will try to run qhelpgenerator on the
+# generated .qhp file.
+# This tag requires that the tag GENERATE_QHP is set to YES.
+
+QHG_LOCATION           =
+
+# If the GENERATE_ECLIPSEHELP tag is set to YES, additional index files will be
+# generated, together with the HTML files, they form an Eclipse help plugin. To
+# install this plugin and make it available under the help contents menu in
+# Eclipse, the contents of the directory containing the HTML and XML files needs
+# to be copied into the plugins directory of eclipse. The name of the directory
+# within the plugins directory should be the same as the ECLIPSE_DOC_ID value.
+# After copying Eclipse needs to be restarted before the help appears.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+GENERATE_ECLIPSEHELP   = NO
+
+# A unique identifier for the Eclipse help plugin. When installing the plugin
+# the directory name containing the HTML and XML files should also have this
+# name. Each documentation set should have its own identifier.
+# The default value is: org.doxygen.Project.
+# This tag requires that the tag GENERATE_ECLIPSEHELP is set to YES.
+
+ECLIPSE_DOC_ID         = org.doxygen.Project
+
+# If you want full control over the layout of the generated HTML pages it might
+# be necessary to disable the index and replace it with your own. The
+# DISABLE_INDEX tag can be used to turn on/off the condensed index (tabs) at top
+# of each HTML page. A value of NO enables the index and the value YES disables
+# it. Since the tabs in the index contain the same information as the navigation
+# tree, you can set this option to YES if you also set GENERATE_TREEVIEW to YES.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
 DISABLE_INDEX          = NO
-ENUM_VALUES_PER_LINE   = 4
+
+# The GENERATE_TREEVIEW tag is used to specify whether a tree-like index
+# structure should be generated to display hierarchical information. If the tag
+# value is set to YES, a side panel will be generated containing a tree-like
+# index structure (just like the one that is generated for HTML Help). For this
+# to work a browser that supports JavaScript, DHTML, CSS and frames is required
+# (i.e. any modern browser). Windows users are probably better off using the
+# HTML help feature. Via custom style sheets (see HTML_EXTRA_STYLESHEET) one can
+# further fine-tune the look of the index. As an example, the default style
+# sheet generated by doxygen has an example that shows how to put an image at
+# the root of the tree instead of the PROJECT_NAME. Since the tree basically has
+# the same information as the tab index, you could consider setting
+# DISABLE_INDEX to YES when enabling this option.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
 GENERATE_TREEVIEW      = NO
+
+# The ENUM_VALUES_PER_LINE tag can be used to set the number of enum values that
+# doxygen will group on one line in the generated HTML documentation.
+#
+# Note that a value of 0 will completely suppress the enum values from appearing
+# in the overview section.
+# Minimum value: 0, maximum value: 20, default value: 4.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+ENUM_VALUES_PER_LINE   = 4
+
+# If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be used
+# to set the initial width (in pixels) of the frame in which the tree is shown.
+# Minimum value: 0, maximum value: 1500, default value: 250.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
 TREEVIEW_WIDTH         = 250
+
+# If the EXT_LINKS_IN_WINDOW option is set to YES, doxygen will open links to
+# external symbols imported via tag files in a separate window.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+EXT_LINKS_IN_WINDOW    = NO
+
+# Use this tag to change the font size of LaTeX formulas included as images in
+# the HTML documentation. When you change the font size after a successful
+# doxygen run you need to manually remove any form_*.png images from the HTML
+# output directory to force them to be regenerated.
+# Minimum value: 8, maximum value: 50, default value: 10.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+FORMULA_FONTSIZE       = 10
+
+# Use the FORMULA_TRANPARENT tag to determine whether or not the images
+# generated for formulas are transparent PNGs. Transparent PNGs are not
+# supported properly for IE 6.0, but are supported on all modern browsers.
+#
+# Note that when changing this option you need to delete any form_*.png files in
+# the HTML output directory before the changes have effect.
+# The default value is: YES.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+FORMULA_TRANSPARENT    = YES
+
+# Enable the USE_MATHJAX option to render LaTeX formulas using MathJax (see
+# http://www.mathjax.org) which uses client side Javascript for the rendering
+# instead of using pre-rendered bitmaps. Use this if you do not have LaTeX
+# installed or if you want to formulas look prettier in the HTML output. When
+# enabled you may also need to install MathJax separately and configure the path
+# to it using the MATHJAX_RELPATH option.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+USE_MATHJAX            = NO
+
+# When MathJax is enabled you can set the default output format to be used for
+# the MathJax output. See the MathJax site (see:
+# http://docs.mathjax.org/en/latest/output.html) for more details.
+# Possible values are: HTML-CSS (which is slower, but has the best
+# compatibility), NativeMML (i.e. MathML) and SVG.
+# The default value is: HTML-CSS.
+# This tag requires that the tag USE_MATHJAX is set to YES.
+
+MATHJAX_FORMAT         = HTML-CSS
+
+# When MathJax is enabled you need to specify the location relative to the HTML
+# output directory using the MATHJAX_RELPATH option. The destination directory
+# should contain the MathJax.js script. For instance, if the mathjax directory
+# is located at the same level as the HTML output directory, then
+# MATHJAX_RELPATH should be ../mathjax. The default value points to the MathJax
+# Content Delivery Network so you can quickly see the result without installing
+# MathJax. However, it is strongly recommended to install a local copy of
+# MathJax from http://www.mathjax.org before deployment.
+# The default value is: http://cdn.mathjax.org/mathjax/latest.
+# This tag requires that the tag USE_MATHJAX is set to YES.
+
+MATHJAX_RELPATH        = http://cdn.mathjax.org/mathjax/latest
+
+# The MATHJAX_EXTENSIONS tag can be used to specify one or more MathJax
+# extension names that should be enabled during MathJax rendering. For example
+# MATHJAX_EXTENSIONS = TeX/AMSmath TeX/AMSsymbols
+# This tag requires that the tag USE_MATHJAX is set to YES.
+
+MATHJAX_EXTENSIONS     =
+
+# The MATHJAX_CODEFILE tag can be used to specify a file with javascript pieces
+# of code that will be used on startup of the MathJax code. See the MathJax site
+# (see: http://docs.mathjax.org/en/latest/output.html) for more details. For an
+# example see the documentation.
+# This tag requires that the tag USE_MATHJAX is set to YES.
+
+MATHJAX_CODEFILE       =
+
+# When the SEARCHENGINE tag is enabled doxygen will generate a search box for
+# the HTML output. The underlying search engine uses javascript and DHTML and
+# should work on any modern browser. Note that when using HTML help
+# (GENERATE_HTMLHELP), Qt help (GENERATE_QHP), or docsets (GENERATE_DOCSET)
+# there is already a search function so this one should typically be disabled.
+# For large projects the javascript based search engine can be slow, then
+# enabling SERVER_BASED_SEARCH may provide a better solution. It is possible to
+# search using the keyboard; to jump to the search box use <access key> + S
+# (what the <access key> is depends on the OS and browser, but it is typically
+# <CTRL>, <ALT>/<option>, or both). Inside the search box use the <cursor down
+# key> to jump into the search results window, the results can be navigated
+# using the <cursor keys>. Press <Enter> to select an item or <escape> to cancel
+# the search. The filter options can be selected when the cursor is inside the
+# search box by pressing <Shift>+<cursor down>. Also here use the <cursor keys>
+# to select a filter and <Enter> or <escape> to activate or cancel the filter
+# option.
+# The default value is: YES.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+SEARCHENGINE           = NO
+
+# When the SERVER_BASED_SEARCH tag is enabled the search engine will be
+# implemented using a web server instead of a web client using Javascript. There
+# are two flavors of web server based searching depending on the EXTERNAL_SEARCH
+# setting. When disabled, doxygen will generate a PHP script for searching and
+# an index file used by the script. When EXTERNAL_SEARCH is enabled the indexing
+# and searching needs to be provided by external tools. See the section
+# "External Indexing and Searching" for details.
+# The default value is: NO.
+# This tag requires that the tag SEARCHENGINE is set to YES.
+
+SERVER_BASED_SEARCH    = NO
+
+# When EXTERNAL_SEARCH tag is enabled doxygen will no longer generate the PHP
+# script for searching. Instead the search results are written to an XML file
+# which needs to be processed by an external indexer. Doxygen will invoke an
+# external search engine pointed to by the SEARCHENGINE_URL option to obtain the
+# search results.
+#
+# Doxygen ships with an example indexer (doxyindexer) and search engine
+# (doxysearch.cgi) which are based on the open source search engine library
+# Xapian (see: http://xapian.org/).
+#
+# See the section "External Indexing and Searching" for details.
+# The default value is: NO.
+# This tag requires that the tag SEARCHENGINE is set to YES.
+
+EXTERNAL_SEARCH        = NO
+
+# The SEARCHENGINE_URL should point to a search engine hosted by a web server
+# which will return the search results when EXTERNAL_SEARCH is enabled.
+#
+# Doxygen ships with an example indexer (doxyindexer) and search engine
+# (doxysearch.cgi) which are based on the open source search engine library
+# Xapian (see: http://xapian.org/). See the section "External Indexing and
+# Searching" for details.
+# This tag requires that the tag SEARCHENGINE is set to YES.
+
+SEARCHENGINE_URL       =
+
+# When SERVER_BASED_SEARCH and EXTERNAL_SEARCH are both enabled the unindexed
+# search data is written to a file for indexing by an external tool. With the
+# SEARCHDATA_FILE tag the name of this file can be specified.
+# The default file is: searchdata.xml.
+# This tag requires that the tag SEARCHENGINE is set to YES.
+
+SEARCHDATA_FILE        = searchdata.xml
+
+# When SERVER_BASED_SEARCH and EXTERNAL_SEARCH are both enabled the
+# EXTERNAL_SEARCH_ID tag can be used as an identifier for the project. This is
+# useful in combination with EXTRA_SEARCH_MAPPINGS to search through multiple
+# projects and redirect the results back to the right project.
+# This tag requires that the tag SEARCHENGINE is set to YES.
+
+EXTERNAL_SEARCH_ID     =
+
+# The EXTRA_SEARCH_MAPPINGS tag can be used to enable searching through doxygen
+# projects other than the one defined by this configuration file, but that are
+# all added to the same external search index. Each project needs to have a
+# unique id set via EXTERNAL_SEARCH_ID. The search mapping then maps the id of
+# to a relative location where the documentation can be found. The format is:
+# EXTRA_SEARCH_MAPPINGS = tagname1=loc1 tagname2=loc2 ...
+# This tag requires that the tag SEARCHENGINE is set to YES.
+
+EXTRA_SEARCH_MAPPINGS  =
+
 #---------------------------------------------------------------------------
-# configuration options related to the LaTeX output
+# Configuration options related to the LaTeX output
 #---------------------------------------------------------------------------
+
+# If the GENERATE_LATEX tag is set to YES, doxygen will generate LaTeX output.
+# The default value is: YES.
+
 GENERATE_LATEX         = NO
+
+# The LATEX_OUTPUT tag is used to specify where the LaTeX docs will be put. If a
+# relative path is entered the value of OUTPUT_DIRECTORY will be put in front of
+# it.
+# The default directory is: latex.
+# This tag requires that the tag GENERATE_LATEX is set to YES.
+
 LATEX_OUTPUT           = latex
+
+# The LATEX_CMD_NAME tag can be used to specify the LaTeX command name to be
+# invoked.
+#
+# Note that when enabling USE_PDFLATEX this option is only used for generating
+# bitmaps for formulas in the HTML output, but not in the Makefile that is
+# written to the output directory.
+# The default file is: latex.
+# This tag requires that the tag GENERATE_LATEX is set to YES.
+
 LATEX_CMD_NAME         = latex
+
+# The MAKEINDEX_CMD_NAME tag can be used to specify the command name to generate
+# index for LaTeX.
+# The default file is: makeindex.
+# This tag requires that the tag GENERATE_LATEX is set to YES.
+
 MAKEINDEX_CMD_NAME     = makeindex
+
+# If the COMPACT_LATEX tag is set to YES, doxygen generates more compact LaTeX
+# documents. This may be useful for small projects and may help to save some
+# trees in general.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_LATEX is set to YES.
+
 COMPACT_LATEX          = NO
+
+# The PAPER_TYPE tag can be used to set the paper type that is used by the
+# printer.
+# Possible values are: a4 (210 x 297 mm), letter (8.5 x 11 inches), legal (8.5 x
+# 14 inches) and executive (7.25 x 10.5 inches).
+# The default value is: a4.
+# This tag requires that the tag GENERATE_LATEX is set to YES.
+
 PAPER_TYPE             = a4wide
-EXTRA_PACKAGES         = 
-LATEX_HEADER           = 
+
+# The EXTRA_PACKAGES tag can be used to specify one or more LaTeX package names
+# that should be included in the LaTeX output. The package can be specified just
+# by its name or with the correct syntax as to be used with the LaTeX
+# \usepackage command. To get the times font for instance you can specify :
+# EXTRA_PACKAGES=times or EXTRA_PACKAGES={times}
+# To use the option intlimits with the amsmath package you can specify:
+# EXTRA_PACKAGES=[intlimits]{amsmath}
+# If left blank no extra packages will be included.
+# This tag requires that the tag GENERATE_LATEX is set to YES.
+
+EXTRA_PACKAGES         =
+
+# The LATEX_HEADER tag can be used to specify a personal LaTeX header for the
+# generated LaTeX document. The header should contain everything until the first
+# chapter. If it is left blank doxygen will generate a standard header. See
+# section "Doxygen usage" for information on how to let doxygen write the
+# default header to a separate file.
+#
+# Note: Only use a user-defined header if you know what you are doing! The
+# following commands have a special meaning inside the header: $title,
+# $datetime, $date, $doxygenversion, $projectname, $projectnumber,
+# $projectbrief, $projectlogo. Doxygen will replace $title with the empty
+# string, for the replacement values of the other commands the user is referred
+# to HTML_HEADER.
+# This tag requires that the tag GENERATE_LATEX is set to YES.
+
+LATEX_HEADER           =
+
+# The LATEX_FOOTER tag can be used to specify a personal LaTeX footer for the
+# generated LaTeX document. The footer should contain everything after the last
+# chapter. If it is left blank doxygen will generate a standard footer. See
+# LATEX_HEADER for more information on how to generate a default footer and what
+# special commands can be used inside the footer.
+#
+# Note: Only use a user-defined footer if you know what you are doing!
+# This tag requires that the tag GENERATE_LATEX is set to YES.
+
+LATEX_FOOTER           =
+
+# The LATEX_EXTRA_STYLESHEET tag can be used to specify additional user-defined
+# LaTeX style sheets that are included after the standard style sheets created
+# by doxygen. Using this option one can overrule certain style aspects. Doxygen
+# will copy the style sheet files to the output directory.
+# Note: The order of the extra style sheet files is of importance (e.g. the last
+# style sheet in the list overrules the setting of the previous ones in the
+# list).
+# This tag requires that the tag GENERATE_LATEX is set to YES.
+
+LATEX_EXTRA_STYLESHEET =
+
+# The LATEX_EXTRA_FILES tag can be used to specify one or more extra images or
+# other source files which should be copied to the LATEX_OUTPUT output
+# directory. Note that the files will be copied as-is; there are no commands or
+# markers available.
+# This tag requires that the tag GENERATE_LATEX is set to YES.
+
+LATEX_EXTRA_FILES      =
+
+# If the PDF_HYPERLINKS tag is set to YES, the LaTeX that is generated is
+# prepared for conversion to PDF (using ps2pdf or pdflatex). The PDF file will
+# contain links (just like the HTML output) instead of page references. This
+# makes the output suitable for online browsing using a PDF viewer.
+# The default value is: YES.
+# This tag requires that the tag GENERATE_LATEX is set to YES.
+
 PDF_HYPERLINKS         = NO
+
+# If the USE_PDFLATEX tag is set to YES, doxygen will use pdflatex to generate
+# the PDF file directly from the LaTeX files. Set this option to YES, to get a
+# higher quality PDF documentation.
+# The default value is: YES.
+# This tag requires that the tag GENERATE_LATEX is set to YES.
+
 USE_PDFLATEX           = NO
+
+# If the LATEX_BATCHMODE tag is set to YES, doxygen will add the \batchmode
+# command to the generated LaTeX files. This will instruct LaTeX to keep running
+# if errors occur, instead of asking the user for help. This option is also used
+# when generating formulas in HTML.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_LATEX is set to YES.
+
 LATEX_BATCHMODE        = NO
+
+# If the LATEX_HIDE_INDICES tag is set to YES then doxygen will not include the
+# index chapters (such as File Index, Compound Index, etc.) in the output.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_LATEX is set to YES.
+
 LATEX_HIDE_INDICES     = NO
+
+# If the LATEX_SOURCE_CODE tag is set to YES then doxygen will include source
+# code with syntax highlighting in the LaTeX output.
+#
+# Note that which sources are shown also depends on other settings such as
+# SOURCE_BROWSER.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_LATEX is set to YES.
+
+LATEX_SOURCE_CODE      = NO
+
+# The LATEX_BIB_STYLE tag can be used to specify the style to use for the
+# bibliography, e.g. plainnat, or ieeetr. See
+# http://en.wikipedia.org/wiki/BibTeX and \cite for more info.
+# The default value is: plain.
+# This tag requires that the tag GENERATE_LATEX is set to YES.
+
+LATEX_BIB_STYLE        = plain
+
+# If the LATEX_TIMESTAMP tag is set to YES then the footer of each generated
+# page will contain the date and time when the page was generated. Setting this
+# to NO can help when comparing the output of multiple runs.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_LATEX is set to YES.
+
+LATEX_TIMESTAMP        = NO
+
 #---------------------------------------------------------------------------
-# configuration options related to the RTF output
+# Configuration options related to the RTF output
 #---------------------------------------------------------------------------
+
+# If the GENERATE_RTF tag is set to YES, doxygen will generate RTF output. The
+# RTF output is optimized for Word 97 and may not look too pretty with other RTF
+# readers/editors.
+# The default value is: NO.
+
 GENERATE_RTF           = NO
+
+# The RTF_OUTPUT tag is used to specify where the RTF docs will be put. If a
+# relative path is entered the value of OUTPUT_DIRECTORY will be put in front of
+# it.
+# The default directory is: rtf.
+# This tag requires that the tag GENERATE_RTF is set to YES.
+
 RTF_OUTPUT             = rtf
+
+# If the COMPACT_RTF tag is set to YES, doxygen generates more compact RTF
+# documents. This may be useful for small projects and may help to save some
+# trees in general.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_RTF is set to YES.
+
 COMPACT_RTF            = NO
+
+# If the RTF_HYPERLINKS tag is set to YES, the RTF that is generated will
+# contain hyperlink fields. The RTF file will contain links (just like the HTML
+# output) instead of page references. This makes the output suitable for online
+# browsing using Word or some other Word compatible readers that support those
+# fields.
+#
+# Note: WordPad (write) and others do not support links.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_RTF is set to YES.
+
 RTF_HYPERLINKS         = NO
-RTF_STYLESHEET_FILE    = 
-RTF_EXTENSIONS_FILE    = 
+
+# Load stylesheet definitions from file. Syntax is similar to doxygen's config
+# file, i.e. a series of assignments. You only have to provide replacements,
+# missing definitions are set to their default value.
+#
+# See also section "Doxygen usage" for information on how to generate the
+# default style sheet that doxygen normally uses.
+# This tag requires that the tag GENERATE_RTF is set to YES.
+
+RTF_STYLESHEET_FILE    =
+
+# Set optional variables used in the generation of an RTF document. Syntax is
+# similar to doxygen's config file. A template extensions file can be generated
+# using doxygen -e rtf extensionFile.
+# This tag requires that the tag GENERATE_RTF is set to YES.
+
+RTF_EXTENSIONS_FILE    =
+
+# If the RTF_SOURCE_CODE tag is set to YES then doxygen will include source code
+# with syntax highlighting in the RTF output.
+#
+# Note that which sources are shown also depends on other settings such as
+# SOURCE_BROWSER.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_RTF is set to YES.
+
+RTF_SOURCE_CODE        = NO
+
 #---------------------------------------------------------------------------
-# configuration options related to the man page output
+# Configuration options related to the man page output
 #---------------------------------------------------------------------------
+
+# If the GENERATE_MAN tag is set to YES, doxygen will generate man pages for
+# classes and files.
+# The default value is: NO.
+
 GENERATE_MAN           = NO
+
+# The MAN_OUTPUT tag is used to specify where the man pages will be put. If a
+# relative path is entered the value of OUTPUT_DIRECTORY will be put in front of
+# it. A directory man3 will be created inside the directory specified by
+# MAN_OUTPUT.
+# The default directory is: man.
+# This tag requires that the tag GENERATE_MAN is set to YES.
+
 MAN_OUTPUT             = man
+
+# The MAN_EXTENSION tag determines the extension that is added to the generated
+# man pages. In case the manual section does not start with a number, the number
+# 3 is prepended. The dot (.) at the beginning of the MAN_EXTENSION tag is
+# optional.
+# The default value is: .3.
+# This tag requires that the tag GENERATE_MAN is set to YES.
+
 MAN_EXTENSION          = .3
+
+# The MAN_SUBDIR tag determines the name of the directory created within
+# MAN_OUTPUT in which the man pages are placed. If defaults to man followed by
+# MAN_EXTENSION with the initial . removed.
+# This tag requires that the tag GENERATE_MAN is set to YES.
+
+MAN_SUBDIR             =
+
+# If the MAN_LINKS tag is set to YES and doxygen generates man output, then it
+# will generate one additional man file for each entity documented in the real
+# man page(s). These additional files only source the real man page, but without
+# them the man command would be unable to find the correct page.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_MAN is set to YES.
+
 MAN_LINKS              = NO
+
 #---------------------------------------------------------------------------
-# configuration options related to the XML output
+# Configuration options related to the XML output
 #---------------------------------------------------------------------------
+
+# If the GENERATE_XML tag is set to YES, doxygen will generate an XML file that
+# captures the structure of the code including all documentation.
+# The default value is: NO.
+
 GENERATE_XML           = NO
+
+# The XML_OUTPUT tag is used to specify where the XML pages will be put. If a
+# relative path is entered the value of OUTPUT_DIRECTORY will be put in front of
+# it.
+# The default directory is: xml.
+# This tag requires that the tag GENERATE_XML is set to YES.
+
 XML_OUTPUT             = xml
-XML_SCHEMA             = 
-XML_DTD                = 
+
+# If the XML_PROGRAMLISTING tag is set to YES, doxygen will dump the program
+# listings (including syntax highlighting and cross-referencing information) to
+# the XML output. Note that enabling this will significantly increase the size
+# of the XML output.
+# The default value is: YES.
+# This tag requires that the tag GENERATE_XML is set to YES.
+
 XML_PROGRAMLISTING     = YES
+
 #---------------------------------------------------------------------------
-# configuration options for the AutoGen Definitions output
+# Configuration options related to the DOCBOOK output
 #---------------------------------------------------------------------------
+
+# If the GENERATE_DOCBOOK tag is set to YES, doxygen will generate Docbook files
+# that can be used to generate PDF.
+# The default value is: NO.
+
+GENERATE_DOCBOOK       = NO
+
+# The DOCBOOK_OUTPUT tag is used to specify where the Docbook pages will be put.
+# If a relative path is entered the value of OUTPUT_DIRECTORY will be put in
+# front of it.
+# The default directory is: docbook.
+# This tag requires that the tag GENERATE_DOCBOOK is set to YES.
+
+DOCBOOK_OUTPUT         = docbook
+
+# If the DOCBOOK_PROGRAMLISTING tag is set to YES, doxygen will include the
+# program listings (including syntax highlighting and cross-referencing
+# information) to the DOCBOOK output. Note that enabling this will significantly
+# increase the size of the DOCBOOK output.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_DOCBOOK is set to YES.
+
+DOCBOOK_PROGRAMLISTING = NO
+
+#---------------------------------------------------------------------------
+# Configuration options for the AutoGen Definitions output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_AUTOGEN_DEF tag is set to YES, doxygen will generate an
+# AutoGen Definitions (see http://autogen.sf.net) file that captures the
+# structure of the code including all documentation. Note that this feature is
+# still experimental and incomplete at the moment.
+# The default value is: NO.
+
 GENERATE_AUTOGEN_DEF   = NO
+
 #---------------------------------------------------------------------------
-# configuration options related to the Perl module output
+# Configuration options related to the Perl module output
 #---------------------------------------------------------------------------
-GENERATE_PERLMOD       = NO 
+
+# If the GENERATE_PERLMOD tag is set to YES, doxygen will generate a Perl module
+# file that captures the structure of the code including all documentation.
+#
+# Note that this feature is still experimental and incomplete at the moment.
+# The default value is: NO.
+
+GENERATE_PERLMOD       = NO
+
+# If the PERLMOD_LATEX tag is set to YES, doxygen will generate the necessary
+# Makefile rules, Perl scripts and LaTeX code to be able to generate PDF and DVI
+# output from the Perl module output.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_PERLMOD is set to YES.
+
 PERLMOD_LATEX          = YES
+
+# If the PERLMOD_PRETTY tag is set to YES, the Perl module output will be nicely
+# formatted so it can be parsed by a human reader. This is useful if you want to
+# understand what is going on. On the other hand, if this tag is set to NO, the
+# size of the Perl module output will be much smaller and Perl will parse it
+# just the same.
+# The default value is: YES.
+# This tag requires that the tag GENERATE_PERLMOD is set to YES.
+
 PERLMOD_PRETTY         = YES
-PERLMOD_MAKEVAR_PREFIX = 
+
+# The names of the make variables in the generated doxyrules.make file are
+# prefixed with the string contained in PERLMOD_MAKEVAR_PREFIX. This is useful
+# so different doxyrules.make files included by the same Makefile don't
+# overwrite each other's variables.
+# This tag requires that the tag GENERATE_PERLMOD is set to YES.
+
+PERLMOD_MAKEVAR_PREFIX =
+
 #---------------------------------------------------------------------------
-# Configuration options related to the preprocessor   
+# Configuration options related to the preprocessor
 #---------------------------------------------------------------------------
+
+# If the ENABLE_PREPROCESSING tag is set to YES, doxygen will evaluate all
+# C-preprocessor directives found in the sources and include files.
+# The default value is: YES.
+
 ENABLE_PREPROCESSING   = YES
+
+# If the MACRO_EXPANSION tag is set to YES, doxygen will expand all macro names
+# in the source code. If set to NO, only conditional compilation will be
+# performed. Macro expansion can be done in a controlled way by setting
+# EXPAND_ONLY_PREDEF to YES.
+# The default value is: NO.
+# This tag requires that the tag ENABLE_PREPROCESSING is set to YES.
+
 MACRO_EXPANSION        = YES
+
+# If the EXPAND_ONLY_PREDEF and MACRO_EXPANSION tags are both set to YES then
+# the macro expansion is limited to the macros specified with the PREDEFINED and
+# EXPAND_AS_DEFINED tags.
+# The default value is: NO.
+# This tag requires that the tag ENABLE_PREPROCESSING is set to YES.
+
 EXPAND_ONLY_PREDEF     = YES
+
+# If the SEARCH_INCLUDES tag is set to YES, the include files in the
+# INCLUDE_PATH will be searched if a #include is found.
+# The default value is: YES.
+# This tag requires that the tag ENABLE_PREPROCESSING is set to YES.
+
 SEARCH_INCLUDES        = YES
-INCLUDE_PATH           = 
-INCLUDE_FILE_PATTERNS  = 
-PREDEFINED             = U_EXPORT2= U_STABLE= U_DRAFT= U_INTERNAL= U_SYSTEM= U_DEPRECATED= U_OBSOLETE= U_CALLCONV_FPTR= U_CALLCONV= U_CDECL_BEGIN= U_CDECL_END=  U_NO_THROW=\  "U_NAMESPACE_BEGIN=namespace icu{" "U_NAMESPACE_END=}" U_SHOW_CPLUSPLUS_API=1 U_DEFINE_LOCAL_OPEN_POINTER()= U_IN_DOXYGEN=1 U_OVERRIDE= U_FINAL=final UCONFIG_ENABLE_PLUGINS=1 U_CHAR16_IS_TYPEDEF=0 U_CPLUSPLUS_VERSION=11 U_WCHAR_IS_UTF16 U_NOEXCEPT=
-EXPAND_AS_DEFINED      = 
+
+# The INCLUDE_PATH tag can be used to specify one or more directories that
+# contain include files that are not input files but should be processed by the
+# preprocessor.
+# This tag requires that the tag SEARCH_INCLUDES is set to YES.
+
+INCLUDE_PATH           =
+
+# You can use the INCLUDE_FILE_PATTERNS tag to specify one or more wildcard
+# patterns (like *.h and *.hpp) to filter out the header-files in the
+# directories. If left blank, the patterns specified with FILE_PATTERNS will be
+# used.
+# This tag requires that the tag ENABLE_PREPROCESSING is set to YES.
+
+INCLUDE_FILE_PATTERNS  =
+
+# The PREDEFINED tag can be used to specify one or more macro names that are
+# defined before the preprocessor is started (similar to the -D option of e.g.
+# gcc). The argument of the tag is a list of macros of the form: name or
+# name=definition (no spaces). If the definition and the "=" are omitted, "=1"
+# is assumed. To prevent a macro definition from being undefined via #undef or
+# recursively expanded use the := operator instead of the = operator.
+# This tag requires that the tag ENABLE_PREPROCESSING is set to YES.
+
+PREDEFINED             = U_EXPORT2= \
+                         U_STABLE= \
+                         U_DRAFT= \
+                         U_INTERNAL= \
+                         U_SYSTEM= \
+                         U_DEPRECATED= \
+                         U_OBSOLETE= \
+                         U_CALLCONV_FPTR= \
+                         U_CALLCONV= \
+                         U_CDECL_BEGIN= \
+                         U_CDECL_END= \
+                         "U_NAMESPACE_BEGIN=namespace icu{" \
+                         "U_NAMESPACE_END=}" \
+                         U_SHOW_CPLUSPLUS_API=1 \
+                         U_DEFINE_LOCAL_OPEN_POINTER()= \
+                         U_IN_DOXYGEN=1 \
+                         U_CHAR16_IS_TYPEDEF=0 \
+                         U_CPLUSPLUS_VERSION=11 \
+                         U_WCHAR_IS_UTF16 \
+                         U_FINAL=final
+
+# If the MACRO_EXPANSION and EXPAND_ONLY_PREDEF tags are set to YES then this
+# tag can be used to specify a list of macro names that should be expanded. The
+# macro definition that is found in the sources will be used. Use the PREDEFINED
+# tag if you want to use a different macro definition that overrules the
+# definition found in the source code.
+# This tag requires that the tag ENABLE_PREPROCESSING is set to YES.
+
+EXPAND_AS_DEFINED      =
+
+# If the SKIP_FUNCTION_MACROS tag is set to YES then doxygen's preprocessor will
+# remove all references to function-like macros that are alone on a line, have
+# an all uppercase name, and do not end with a semicolon. Such function macros
+# are typically used for boiler-plate code, and will confuse the parser if not
+# removed.
+# The default value is: YES.
+# This tag requires that the tag ENABLE_PREPROCESSING is set to YES.
+
 SKIP_FUNCTION_MACROS   = YES
+
 #---------------------------------------------------------------------------
-# Configuration::additions related to external references   
+# Configuration options related to external references
 #---------------------------------------------------------------------------
-TAGFILES               = 
-GENERATE_TAGFILE       =  "@builddir@/doc/html/icudocs.tag"
+
+# The TAGFILES tag can be used to specify one or more tag files. For each tag
+# file the location of the external documentation should be added. The format of
+# a tag file without this location is as follows:
+# TAGFILES = file1 file2 ...
+# Adding location for the tag files is done as follows:
+# TAGFILES = file1=loc1 "file2 = loc2" ...
+# where loc1 and loc2 can be relative or absolute paths or URLs. See the
+# section "Linking to external documentation" for more information about the use
+# of tag files.
+# Note: Each tag file must have a unique name (where the name does NOT include
+# the path). If a tag file is not located in the directory in which doxygen is
+# run, you must also specify the path to the tagfile here.
+
+TAGFILES               =
+
+# When a file name is specified after GENERATE_TAGFILE, doxygen will create a
+# tag file that is based on the input files it reads. See section "Linking to
+# external documentation" for more information about the usage of tag files.
+
+GENERATE_TAGFILE       = "@builddir@/doc/html/icudocs.tag"
+
+# If the ALLEXTERNALS tag is set to YES, all external class will be listed in
+# the class index. If set to NO, only the inherited external classes will be
+# listed.
+# The default value is: NO.
+
 ALLEXTERNALS           = NO
+
+# If the EXTERNAL_GROUPS tag is set to YES, all external groups will be listed
+# in the modules index. If set to NO, only the current project's groups will be
+# listed.
+# The default value is: YES.
+
 EXTERNAL_GROUPS        = YES
+
+# If the EXTERNAL_PAGES tag is set to YES, all external pages will be listed in
+# the related pages index. If set to NO, only the current project's pages will
+# be listed.
+# The default value is: YES.
+
+EXTERNAL_PAGES         = YES
+
+# The PERL_PATH should be the absolute path and name of the perl script
+# interpreter (i.e. the result of 'which perl').
+# The default file (with absolute path) is: /usr/bin/perl.
+
 PERL_PATH              = /usr/bin/perl
+
 #---------------------------------------------------------------------------
-# Configuration options related to the dot tool   
+# Configuration options related to the dot tool
 #---------------------------------------------------------------------------
+
+# If the CLASS_DIAGRAMS tag is set to YES, doxygen will generate a class diagram
+# (in HTML and LaTeX) for classes with base or super classes. Setting the tag to
+# NO turns the diagrams off. Note that this option also works with HAVE_DOT
+# disabled, but it is recommended to install and use dot, since it yields more
+# powerful graphs.
+# The default value is: YES.
+
 CLASS_DIAGRAMS         = YES
+
+# You can define message sequence charts within doxygen comments using the \msc
+# command. Doxygen will then run the mscgen tool (see:
+# http://www.mcternan.me.uk/mscgen/)) to produce the chart and insert it in the
+# documentation. The MSCGEN_PATH tag allows you to specify the directory where
+# the mscgen tool resides. If left empty the tool is assumed to be found in the
+# default search path.
+
+MSCGEN_PATH            =
+
+# You can include diagrams made with dia in doxygen documentation. Doxygen will
+# then run dia to produce the diagram and insert it in the documentation. The
+# DIA_PATH tag allows you to specify the directory where the dia binary resides.
+# If left empty dia is assumed to be found in the default search path.
+
+DIA_PATH               =
+
+# If set to YES the inheritance and collaboration graphs will hide inheritance
+# and usage relations if the target is undocumented or is not a class.
+# The default value is: YES.
+
 HIDE_UNDOC_RELATIONS   = YES
+
+# If you set the HAVE_DOT tag to YES then doxygen will assume the dot tool is
+# available from the path. This tool is part of Graphviz (see:
+# http://www.graphviz.org/), a graph visualization toolkit from AT&T and Lucent
+# Bell Labs. The other options in this section have no effect if this option is
+# set to NO
+# The default value is: YES.
+
 HAVE_DOT               = NO
+
+# The DOT_NUM_THREADS specifies the number of dot invocations doxygen is allowed
+# to run in parallel. When set to 0 doxygen will base this on the number of
+# processors available in the system. You can set it explicitly to a value
+# larger than 0 to get control over the balance between CPU load and processing
+# speed.
+# Minimum value: 0, maximum value: 32, default value: 0.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+DOT_NUM_THREADS        = 0
+
+# When you want a differently looking font in the dot files that doxygen
+# generates you can specify the font name using DOT_FONTNAME. You need to make
+# sure dot is able to find the font, which can be done by putting it in a
+# standard location or by setting the DOTFONTPATH environment variable or by
+# setting DOT_FONTPATH to the directory containing the font.
+# The default value is: Helvetica.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+DOT_FONTNAME           = Helvetica
+
+# The DOT_FONTSIZE tag can be used to set the size (in points) of the font of
+# dot graphs.
+# Minimum value: 4, maximum value: 24, default value: 10.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+DOT_FONTSIZE           = 10
+
+# By default doxygen will tell dot to use the default font as specified with
+# DOT_FONTNAME. If you specify a different font using DOT_FONTNAME you can set
+# the path where dot can find it using this tag.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+DOT_FONTPATH           =
+
+# If the CLASS_GRAPH tag is set to YES then doxygen will generate a graph for
+# each documented class showing the direct and indirect inheritance relations.
+# Setting this tag to YES will force the CLASS_DIAGRAMS tag to NO.
+# The default value is: YES.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
 CLASS_GRAPH            = YES
+
+# If the COLLABORATION_GRAPH tag is set to YES then doxygen will generate a
+# graph for each documented class showing the direct and indirect implementation
+# dependencies (inheritance, containment, and class references variables) of the
+# class with other documented classes.
+# The default value is: YES.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
 COLLABORATION_GRAPH    = YES
+
+# If the GROUP_GRAPHS tag is set to YES then doxygen will generate a graph for
+# groups, showing the direct groups dependencies.
+# The default value is: YES.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+GROUP_GRAPHS           = YES
+
+# If the UML_LOOK tag is set to YES, doxygen will generate inheritance and
+# collaboration diagrams in a style similar to the OMG's Unified Modeling
+# Language.
+# The default value is: NO.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
 UML_LOOK               = NO
+
+# If the UML_LOOK tag is enabled, the fields and methods are shown inside the
+# class node. If there are many fields or methods and many nodes the graph may
+# become too big to be useful. The UML_LIMIT_NUM_FIELDS threshold limits the
+# number of items for each type to make the size more manageable. Set this to 0
+# for no limit. Note that the threshold may be exceeded by 50% before the limit
+# is enforced. So when you set the threshold to 10, up to 15 fields may appear,
+# but if the number exceeds 15, the total amount of fields shown is limited to
+# 10.
+# Minimum value: 0, maximum value: 100, default value: 10.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+UML_LIMIT_NUM_FIELDS   = 10
+
+# If the TEMPLATE_RELATIONS tag is set to YES then the inheritance and
+# collaboration graphs will show the relations between templates and their
+# instances.
+# The default value is: NO.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
 TEMPLATE_RELATIONS     = NO
+
+# If the INCLUDE_GRAPH, ENABLE_PREPROCESSING and SEARCH_INCLUDES tags are set to
+# YES then doxygen will generate a graph for each documented file showing the
+# direct and indirect include dependencies of the file with other documented
+# files.
+# The default value is: YES.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
 INCLUDE_GRAPH          = YES
+
+# If the INCLUDED_BY_GRAPH, ENABLE_PREPROCESSING and SEARCH_INCLUDES tags are
+# set to YES then doxygen will generate a graph for each documented file showing
+# the direct and indirect include dependencies of the file with other documented
+# files.
+# The default value is: YES.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
 INCLUDED_BY_GRAPH      = YES
+
+# If the CALL_GRAPH tag is set to YES then doxygen will generate a call
+# dependency graph for every global function or class method.
+#
+# Note that enabling this option will significantly increase the time of a run.
+# So in most cases it will be better to enable call graphs for selected
+# functions only using the \callgraph command. Disabling a call graph can be
+# accomplished by means of the command \hidecallgraph.
+# The default value is: NO.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
 CALL_GRAPH             = NO
-CALLER_GRAPH           = NO
+
+# If the CALLER_GRAPH tag is set to YES then doxygen will generate a caller
+# dependency graph for every global function or class method.
+#
+# Note that enabling this option will significantly increase the time of a run.
+# So in most cases it will be better to enable caller graphs for selected
+# functions only using the \callergraph command. Disabling a caller graph can be
+# accomplished by means of the command \hidecallergraph.
+# The default value is: NO.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+CALLER_GRAPH           = NO
+
+# If the GRAPHICAL_HIERARCHY tag is set to YES then doxygen will graphical
+# hierarchy of all classes instead of a textual one.
+# The default value is: YES.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
 GRAPHICAL_HIERARCHY    = YES
+
+# If the DIRECTORY_GRAPH tag is set to YES then doxygen will show the
+# dependencies a directory has on other directories in a graphical way. The
+# dependency relations are determined by the #include relations between the
+# files in the directories.
+# The default value is: YES.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+DIRECTORY_GRAPH        = YES
+
+# The DOT_IMAGE_FORMAT tag can be used to set the image format of the images
+# generated by dot. For an explanation of the image formats see the section
+# output formats in the documentation of the dot tool (Graphviz (see:
+# http://www.graphviz.org/)).
+# Note: If you choose svg you need to set HTML_FILE_EXTENSION to xhtml in order
+# to make the SVG files visible in IE 9+ (other browsers do not have this
+# requirement).
+# Possible values are: png, png:cairo, png:cairo:cairo, png:cairo:gd, png:gd,
+# png:gd:gd, jpg, jpg:cairo, jpg:cairo:gd, jpg:gd, jpg:gd:gd, gif, gif:cairo,
+# gif:cairo:gd, gif:gd, gif:gd:gd, svg, png:gd, png:gd:gd, png:cairo,
+# png:cairo:gd, png:cairo:cairo, png:cairo:gdiplus, png:gdiplus and
+# png:gdiplus:gdiplus.
+# The default value is: png.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
 DOT_IMAGE_FORMAT       = png
-DOT_PATH               = 
-#DOT_FONTNAME         = FreeSans
-DOTFILE_DIRS           = 
-MAX_DOT_GRAPH_WIDTH    = 1024
-MAX_DOT_GRAPH_HEIGHT   = 1024
+
+# If DOT_IMAGE_FORMAT is set to svg, then this option can be set to YES to
+# enable generation of interactive SVG images that allow zooming and panning.
+#
+# Note that this requires a modern browser other than Internet Explorer. Tested
+# and working are Firefox, Chrome, Safari, and Opera.
+# Note: For IE 9+ you need to set HTML_FILE_EXTENSION to xhtml in order to make
+# the SVG files visible. Older versions of IE do not have SVG support.
+# The default value is: NO.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+INTERACTIVE_SVG        = NO
+
+# The DOT_PATH tag can be used to specify the path where the dot tool can be
+# found. If left blank, it is assumed the dot tool can be found in the path.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+DOT_PATH               =
+
+# The DOTFILE_DIRS tag can be used to specify one or more directories that
+# contain dot files that are included in the documentation (see the \dotfile
+# command).
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+DOTFILE_DIRS           =
+
+# The MSCFILE_DIRS tag can be used to specify one or more directories that
+# contain msc files that are included in the documentation (see the \mscfile
+# command).
+
+MSCFILE_DIRS           =
+
+# The DIAFILE_DIRS tag can be used to specify one or more directories that
+# contain dia files that are included in the documentation (see the \diafile
+# command).
+
+DIAFILE_DIRS           =
+
+# When using plantuml, the PLANTUML_JAR_PATH tag should be used to specify the
+# path where java can find the plantuml.jar file. If left blank, it is assumed
+# PlantUML is not used or called during a preprocessing step. Doxygen will
+# generate a warning when it encounters a \startuml command in this case and
+# will not generate output for the diagram.
+
+PLANTUML_JAR_PATH      =
+
+# When using plantuml, the PLANTUML_CFG_FILE tag can be used to specify a
+# configuration file for plantuml.
+
+PLANTUML_CFG_FILE      =
+
+# When using plantuml, the specified paths are searched for files specified by
+# the !include statement in a plantuml block.
+
+PLANTUML_INCLUDE_PATH  =
+
+# The DOT_GRAPH_MAX_NODES tag can be used to set the maximum number of nodes
+# that will be shown in the graph. If the number of nodes in a graph becomes
+# larger than this value, doxygen will truncate the graph, which is visualized
+# by representing a node as a red box. Note that doxygen if the number of direct
+# children of the root node in a graph is already larger than
+# DOT_GRAPH_MAX_NODES then the graph will not be shown at all. Also note that
+# the size of a graph can be further restricted by MAX_DOT_GRAPH_DEPTH.
+# Minimum value: 0, maximum value: 10000, default value: 50.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+DOT_GRAPH_MAX_NODES    = 50
+
+# The MAX_DOT_GRAPH_DEPTH tag can be used to set the maximum depth of the graphs
+# generated by dot. A depth value of 3 means that only nodes reachable from the
+# root by following a path via at most 3 edges will be shown. Nodes that lay
+# further from the root node will be omitted. Note that setting this option to 1
+# or 2 may greatly reduce the computation time needed for large code bases. Also
+# note that the size of a graph can be further restricted by
+# DOT_GRAPH_MAX_NODES. Using a depth of 0 means no depth restriction.
+# Minimum value: 0, maximum value: 1000, default value: 0.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
 MAX_DOT_GRAPH_DEPTH    = 0
+
+# Set the DOT_TRANSPARENT tag to YES to generate images with a transparent
+# background. This is disabled by default, because dot on Windows does not seem
+# to support this out of the box.
+#
+# Warning: Depending on the platform used, enabling this option may lead to
+# badly anti-aliased labels on the edges of a graph (i.e. they become hard to
+# read).
+# The default value is: NO.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+DOT_TRANSPARENT        = NO
+
+# Set the DOT_MULTI_TARGETS tag to YES to allow dot to generate multiple output
+# files in one run (i.e. multiple -o and -T options on the command line). This
+# makes dot run faster, but since only newer versions of dot (>1.8.10) support
+# this, this feature is disabled by default.
+# The default value is: NO.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+DOT_MULTI_TARGETS      = NO
+
+# If the GENERATE_LEGEND tag is set to YES doxygen will generate a legend page
+# explaining the meaning of the various boxes and arrows in the dot generated
+# graphs.
+# The default value is: YES.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
 GENERATE_LEGEND        = YES
+
+# If the DOT_CLEANUP tag is set to YES, doxygen will remove the intermediate dot
+# files that are used to generate the various graphs.
+# The default value is: YES.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
 DOT_CLEANUP            = YES
-#---------------------------------------------------------------------------
-# Configuration::additions related to the search engine   
-#---------------------------------------------------------------------------
-SEARCHENGINE           = NO
index c1db15b..be9435b 100644 (file)
@@ -48,6 +48,8 @@ ALL_PKGCONFIG_SUFFIX=uc i18n
 DOXYGEN = @DOXYGEN@
 DOCZIP = icu-docs.zip
 
+INSTALL_ICU_CONFIG = @INSTALL_ICU_CONFIG@
+
 ## Files to remove for 'make clean'
 CLEANFILES = *~
 
@@ -64,7 +66,9 @@ SUBDIRS =  stubdata common i18n $(LAYOUTEX) $(ICUIO) $(TOOLS) $(DATASUBDIR) $(EX
 
 SECTION = 1
 
+ifeq ($(INSTALL_ICU_CONFIG),true)
 MANX_FILES = config/icu-config.$(SECTION)
+endif
 
 ALL_MAN_FILES = $(MANX_FILES)
 
@@ -187,13 +191,15 @@ install-icu: $(INSTALLED_BUILT_FILES)
        @$(MKINSTALLDIRS) $(DESTDIR)$(libdir)/pkgconfig
        $(INSTALL_DATA) $(ALL_PKGCONFIG_FILES) $(DESTDIR)$(libdir)/pkgconfig/
        $(INSTALL_DATA) $(top_srcdir)/../LICENSE $(DESTDIR)$(pkgdatadir)/LICENSE
+ifeq ($(INSTALL_ICU_CONFIG),true)
        $(INSTALL_SCRIPT) $(top_builddir)/config/icu-config $(DESTDIR)$(bindir)/icu-config
+endif
        $(INSTALL_DATA) $(top_builddir)/config/Makefile.inc $(DESTDIR)$(pkglibdir)/Makefile.inc
        $(INSTALL_DATA) $(top_builddir)/config/pkgdata.inc $(DESTDIR)$(pkglibdir)/pkgdata.inc
 #      @echo icuinfo.xml is built after make check.
 #      -$(INSTALL_DATA) $(top_builddir)/config/icuinfo.xml $(DESTDIR)$(pkglibdir)/icuinfo.xml
        cd $(DESTDIR)$(pkglibdir)/..; \
-           $(RM) current && ln -s $(VERSION) current; \
+           $(RMV) current && ln -s $(VERSION) current; \
            $(RM) Makefile.inc && ln -s current/Makefile.inc Makefile.inc; \
            $(RM) pkgdata.inc && ln -s current/pkgdata.inc pkgdata.inc
 
@@ -350,7 +356,9 @@ config.status: $(srcdir)/configure $(srcdir)/common/unicode/uvernum.h
 
 install-manx: $(MANX_FILES)
        $(MKINSTALLDIRS) $(DESTDIR)$(mandir)/man$(SECTION)
+ifneq ($(MANX_FILES),)
        $(INSTALL_DATA) $? $(DESTDIR)$(mandir)/man$(SECTION)
+endif
 
 config/%.$(SECTION): $(srcdir)/config/%.$(SECTION).in
        cd $(top_builddir) \
diff --git a/source/allinone/Build.Windows.Library.ProjectConfiguration.props b/source/allinone/Build.Windows.Library.ProjectConfiguration.props
new file mode 100644 (file)
index 0000000..07e3c1b
--- /dev/null
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2018 and later: Unicode, Inc. and others. License & terms of use: http://www.unicode.org/copyright.html -->
+<Project DefaultTargets="Build" ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <!-- This file is used to set configurations that are common to *all* ICU library code (common, i18n, and io). -->
+  <!-- Note: These options are for *all* configurations for *all* library projects.  -->
+  <ItemDefinitionGroup>
+    <ClCompile>
+      <!-- ICU does not use exceptions in library code. -->
+      <PreprocessorDefinitions>
+        _HAS_EXCEPTIONS=0;
+        %(PreprocessorDefinitions)
+      </PreprocessorDefinitions>
+    </ClCompile>
+  </ItemDefinitionGroup>
+  <PropertyGroup>
+    <!-- Disable MSBuild warning about Linker OutputFile. -->
+    <!-- Ex: MSBuild complains that the common project creates "icuuc62.dll" rather than "common.dll". However, this is intentional. -->
+    <MSBuildWarningsAsMessages>MSB8012</MSBuildWarningsAsMessages>
+  </PropertyGroup>
+</Project>
index 0a16384..0e74cb4 100644 (file)
-<?xml version="1.0" encoding="utf-8"?>\r
-<!-- Copyright (C) 2016 and later: Unicode, Inc. and others. License & terms of use: http://www.unicode.org/copyright.html -->\r
-<Project DefaultTargets="Build" ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">\r
-  <!-- This file is used to set default configuration options for all non-UWP Visual Studio projects. -->\r
-  <!-- These are the default project configurations for building. -->\r
-  <ItemGroup Label="ProjectConfigurations">\r
-    <ProjectConfiguration Include="Debug|Win32">\r
-      <Configuration>Debug</Configuration>\r
-      <Platform>Win32</Platform>\r
-    </ProjectConfiguration>\r
-    <ProjectConfiguration Include="Debug|x64">\r
-      <Configuration>Debug</Configuration>\r
-      <Platform>x64</Platform>\r
-    </ProjectConfiguration>\r
-    <ProjectConfiguration Include="Release|Win32">\r
-      <Configuration>Release</Configuration>\r
-      <Platform>Win32</Platform>\r
-    </ProjectConfiguration>\r
-    <ProjectConfiguration Include="Release|x64">\r
-      <Configuration>Release</Configuration>\r
-      <Platform>x64</Platform>\r
-    </ProjectConfiguration>\r
-  </ItemGroup>\r
-  <PropertyGroup>\r
-    <!-- This is the version of the MSVC tool-set to use. -->\r
-    <!-- v140 is the Visual Studio 2015 toolset. -->\r
-    <!-- v141 is the Visual Studio 2017 toolset. -->\r
-    <PlatformToolset>v141</PlatformToolset>\r
-  </PropertyGroup>\r
-  <PropertyGroup>\r
-    <!-- This is the default SDK target. -->\r
-    <!-- Note that the Windows 8.1 SDK is backwards compatible down-level to Windows 7, so\r
-         setting this to 8.1 does not actually imply targeting Windows 8.1. -->\r
-    <WindowsTargetPlatformVersion>8.1</WindowsTargetPlatformVersion>\r
-  </PropertyGroup>\r
-  <PropertyGroup>\r
-    <!-- We need to explicitly set the target version to Windows 7. -->\r
-    <Win32_WinNTVersion>0x0601</Win32_WinNTVersion>\r
-  </PropertyGroup>\r
-  <!-- Options that are common to *all* configurations for *all* projects. -->\r
-  <ItemDefinitionGroup>\r
-    <Midl>\r
-      <MkTypLibCompatible>true</MkTypLibCompatible>\r
-      <SuppressStartupBanner>true</SuppressStartupBanner>\r
-    </Midl>\r
-    <ClCompile>\r
-      <!-- Note: These preprocessor defines are for *all* configurations for *all* projects.  -->\r
-      <!-- Note: See ticket #5750 for the macro '_CRT_SECURE_NO_DEPRECATE'. -->\r
-      <PreprocessorDefinitions>\r
-        WINVER=$(Win32_WinNTVersion);\r
-        _WIN32_WINNT=$(Win32_WinNTVersion);\r
-        _CRT_SECURE_NO_DEPRECATE;\r
-        %(PreprocessorDefinitions)\r
-      </PreprocessorDefinitions>\r
-      <!-- We always want to treat wchar_t as a "real" C++ type, instead of a typedef. -->\r
-      <TreatWChar_tAsBuiltInType>true</TreatWChar_tAsBuiltInType>\r
-      <SuppressStartupBanner>true</SuppressStartupBanner>\r
-      <!-- Set the source encoding and runtime encoding to UTF-8 by default. -->\r
-      <AdditionalOptions>/utf-8 %(AdditionalOptions)</AdditionalOptions>\r
-      <!-- Enable parallel compilation for faster builds. -->\r
-      <MultiProcessorCompilation>true</MultiProcessorCompilation>\r
-    </ClCompile>\r
-    <ResourceCompile>\r
-      <Culture>0x0409</Culture>\r
-    </ResourceCompile>\r
-    <Link>\r
-      <SuppressStartupBanner>true</SuppressStartupBanner>\r
-    </Link>\r
-  </ItemDefinitionGroup>\r
-  <!-- Options that are common to all 'Release' configurations for *all* projects. -->\r
-  <ItemDefinitionGroup Condition="'$(Configuration)'=='Release'">\r
-    <Midl>\r
-      <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
-    </Midl>\r
-    <ClCompile>\r
-      <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
-      <StringPooling>true</StringPooling>\r
-    </ClCompile>\r
-    <ResourceCompile>\r
-      <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
-    </ResourceCompile>\r
-    <Link>\r
-      <EnableCOMDATFolding>true</EnableCOMDATFolding>\r
-    </Link>\r
-  </ItemDefinitionGroup>\r
-  <!-- Options that are common to all 'Debug' configurations for *all* projects. -->\r
-  <ItemDefinitionGroup Condition="'$(Configuration)'=='Debug'">\r
-    <Midl>\r
-      <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
-    </Midl>\r
-    <ClCompile>\r
-      <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
-      <Optimization>Disabled</Optimization>\r
-      <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>\r
-      <BufferSecurityCheck>true</BufferSecurityCheck>\r
-    </ClCompile>\r
-    <ResourceCompile>\r
-      <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
-    </ResourceCompile>\r
-    <Link>\r
-      <GenerateDebugInformation>true</GenerateDebugInformation>\r
-      <ImageHasSafeExceptionHandlers>false</ImageHasSafeExceptionHandlers>\r
-    </Link>\r
-  </ItemDefinitionGroup>\r
-  <!-- Options that are common to all 32-bit configurations for *all* projects. -->\r
-  <ItemDefinitionGroup Condition="'$(Platform)'=='Win32'">\r
-    <Midl>\r
-      <TargetEnvironment>Win32</TargetEnvironment>\r
-    </Midl>\r
-    <ClCompile>\r
-      <PreprocessorDefinitions>WIN32;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
-    </ClCompile>\r
-    <Link>\r
-      <TargetMachine>MachineX86</TargetMachine>\r
-    </Link>\r
-  </ItemDefinitionGroup>\r
-  <!-- Options that are common to all 64-bit configurations for *all* projects. -->\r
-  <ItemDefinitionGroup Condition="'$(Platform)'=='x64'">\r
-    <Midl>\r
-      <TargetEnvironment>X64</TargetEnvironment>\r
-    </Midl>\r
-    <ClCompile>\r
-      <PreprocessorDefinitions>WIN64;WIN32;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
-    </ClCompile>\r
-    <Link>\r
-      <TargetMachine>MachineX64</TargetMachine>\r
-    </Link>\r
-  </ItemDefinitionGroup>\r
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2016 and later: Unicode, Inc. and others. License & terms of use: http://www.unicode.org/copyright.html -->
+<Project DefaultTargets="Build" ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <!-- This file is used to set default configuration options for all non-UWP Visual Studio projects. -->
+  <!-- These are the default project configurations for building. -->
+  <ItemGroup Label="ProjectConfigurations">
+    <ProjectConfiguration Include="Debug|Win32">
+      <Configuration>Debug</Configuration>
+      <Platform>Win32</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Debug|x64">
+      <Configuration>Debug</Configuration>
+      <Platform>x64</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Release|Win32">
+      <Configuration>Release</Configuration>
+      <Platform>Win32</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Release|x64">
+      <Configuration>Release</Configuration>
+      <Platform>x64</Platform>
+    </ProjectConfiguration>
+  </ItemGroup>
+  <PropertyGroup>
+    <!-- This is the version of the MSVC tool-set to use. -->
+    <!-- v140 is the Visual Studio 2015 toolset. -->
+    <!-- v141 is the Visual Studio 2017 toolset. -->
+    <PlatformToolset>v141</PlatformToolset>
+  </PropertyGroup>
+  <PropertyGroup>
+    <!-- This is the default SDK target. -->
+    <!-- Note that the Windows 8.1 SDK is backwards compatible down-level to Windows 7, so
+         setting this to 8.1 does not actually imply targeting Windows 8.1. -->
+    <WindowsTargetPlatformVersion>8.1</WindowsTargetPlatformVersion>
+  </PropertyGroup>
+  <PropertyGroup>
+    <!-- We need to explicitly set the target version to Windows 7. -->
+    <Win32_WinNTVersion>0x0601</Win32_WinNTVersion>
+  </PropertyGroup>
+  <!-- Options that are common to *all* configurations for *all* projects. -->
+  <ItemDefinitionGroup>
+    <Midl>
+      <MkTypLibCompatible>true</MkTypLibCompatible>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+    </Midl>
+    <ClCompile>
+      <!-- Note: These preprocessor defines are for *all* configurations for *all* projects.  -->
+      <!-- Note: See ticket #5750 for the macro '_CRT_SECURE_NO_DEPRECATE'. -->
+      <PreprocessorDefinitions>
+        WINVER=$(Win32_WinNTVersion);
+        _WIN32_WINNT=$(Win32_WinNTVersion);
+        _CRT_SECURE_NO_DEPRECATE;
+        %(PreprocessorDefinitions)
+      </PreprocessorDefinitions>
+      <!-- We always want to treat wchar_t as a "real" C++ type, instead of a typedef. -->
+      <TreatWChar_tAsBuiltInType>true</TreatWChar_tAsBuiltInType>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <!-- Set the source encoding and runtime encoding to UTF-8 by default. -->
+      <AdditionalOptions>/utf-8 %(AdditionalOptions)</AdditionalOptions>
+      <!-- Enable parallel compilation for faster builds. -->
+      <MultiProcessorCompilation>true</MultiProcessorCompilation>
+    </ClCompile>
+    <ResourceCompile>
+      <Culture>0x0409</Culture>
+    </ResourceCompile>
+    <Link>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+    </Link>
+  </ItemDefinitionGroup>
+  <!-- Options that are common to all 'Release' configurations for *all* projects. -->
+  <ItemDefinitionGroup Condition="'$(Configuration)'=='Release'">
+    <Midl>
+      <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+    </Midl>
+    <ClCompile>
+      <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <StringPooling>true</StringPooling>
+    </ClCompile>
+    <ResourceCompile>
+      <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+    </ResourceCompile>
+    <Link>
+      <EnableCOMDATFolding>true</EnableCOMDATFolding>
+    </Link>
+  </ItemDefinitionGroup>
+  <!-- Options that are common to all 'Debug' configurations for *all* projects. -->
+  <ItemDefinitionGroup Condition="'$(Configuration)'=='Debug'">
+    <Midl>
+      <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+    </Midl>
+    <ClCompile>
+      <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <Optimization>Disabled</Optimization>
+      <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
+      <BufferSecurityCheck>true</BufferSecurityCheck>
+    </ClCompile>
+    <ResourceCompile>
+      <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+    </ResourceCompile>
+    <Link>
+      <GenerateDebugInformation>true</GenerateDebugInformation>
+      <ImageHasSafeExceptionHandlers>false</ImageHasSafeExceptionHandlers>
+    </Link>
+  </ItemDefinitionGroup>
+  <!-- Options that are common to all 32-bit configurations for *all* projects. -->
+  <ItemDefinitionGroup Condition="'$(Platform)'=='Win32'">
+    <Midl>
+      <TargetEnvironment>Win32</TargetEnvironment>
+    </Midl>
+    <ClCompile>
+      <PreprocessorDefinitions>WIN32;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+    </ClCompile>
+    <Link>
+      <TargetMachine>MachineX86</TargetMachine>
+    </Link>
+  </ItemDefinitionGroup>
+  <!-- Options that are common to all 64-bit configurations for *all* projects. -->
+  <ItemDefinitionGroup Condition="'$(Platform)'=='x64'">
+    <Midl>
+      <TargetEnvironment>X64</TargetEnvironment>
+    </Midl>
+    <ClCompile>
+      <PreprocessorDefinitions>WIN64;WIN32;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+    </ClCompile>
+    <Link>
+      <TargetMachine>MachineX64</TargetMachine>
+    </Link>
+  </ItemDefinitionGroup>
 </Project>
\ No newline at end of file
index 4b51960..5988c73 100644 (file)
@@ -1,41 +1,41 @@
-<?xml version="1.0" encoding="utf-8"?>\r
-<!-- Copyright (C) 2016 and later: Unicode, Inc. and others. License & terms of use: http://www.unicode.org/copyright.html -->\r
-<Project DefaultTargets="Build" ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">\r
-  <!-- This file is used to set common configuration options for all *_uwp projects. -->\r
-  <PropertyGroup>\r
-    <!-- If not already set, use this version of the Win10 SDK -->\r
-    <WindowsTargetPlatformVersion>10.0.16299.0</WindowsTargetPlatformVersion>\r
-    <!-- If not already set, set the minimum Win10 SDK version to TH1/RTM -->\r
-    <WindowsTargetPlatformMinVersion>10.0.10240.0</WindowsTargetPlatformMinVersion>\r
-    \r
-    <MinimumVisualStudioVersion>14.0</MinimumVisualStudioVersion>\r
-    <AppContainerApplication>true</AppContainerApplication>\r
-    <ApplicationType>Windows Store</ApplicationType>\r
-    <ApplicationTypeRevision>10.0</ApplicationTypeRevision>\r
-  </PropertyGroup>\r
-  <PropertyGroup>\r
-    <!-- This is the version of the MSVC tool-set to use. -->\r
-    <!-- v141 is the Visual Studio 2017 toolset. -->\r
-    <PlatformToolset>v141</PlatformToolset>\r
-  </PropertyGroup>\r
-  <ItemDefinitionGroup>\r
-    <Midl>\r
-      <PreprocessorDefinitions>\r
-        %(PreprocessorDefinitions)\r
-        U_PLATFORM_HAS_WINUWP_API=1;\r
-      </PreprocessorDefinitions>\r
-    </Midl>\r
-    <ClCompile>\r
-      <PreprocessorDefinitions>\r
-        %(PreprocessorDefinitions);\r
-        U_PLATFORM_HAS_WINUWP_API=1;\r
-      </PreprocessorDefinitions>\r
-    </ClCompile>\r
-    <ResourceCompile>\r
-      <PreprocessorDefinitions>\r
-        %(PreprocessorDefinitions)\r
-        U_PLATFORM_HAS_WINUWP_API=1;\r
-      </PreprocessorDefinitions>\r
-    </ResourceCompile>\r
-  </ItemDefinitionGroup>\r
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2016 and later: Unicode, Inc. and others. License & terms of use: http://www.unicode.org/copyright.html -->
+<Project DefaultTargets="Build" ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <!-- This file is used to set common configuration options for all *_uwp projects. -->
+  <PropertyGroup>
+    <!-- If not already set, use this version of the Win10 SDK -->
+    <WindowsTargetPlatformVersion>10.0.16299.0</WindowsTargetPlatformVersion>
+    <!-- If not already set, set the minimum Win10 SDK version to TH1/RTM -->
+    <WindowsTargetPlatformMinVersion>10.0.10240.0</WindowsTargetPlatformMinVersion>
+    
+    <MinimumVisualStudioVersion>14.0</MinimumVisualStudioVersion>
+    <AppContainerApplication>true</AppContainerApplication>
+    <ApplicationType>Windows Store</ApplicationType>
+    <ApplicationTypeRevision>10.0</ApplicationTypeRevision>
+  </PropertyGroup>
+  <PropertyGroup>
+    <!-- This is the version of the MSVC tool-set to use. -->
+    <!-- v141 is the Visual Studio 2017 toolset. -->
+    <PlatformToolset>v141</PlatformToolset>
+  </PropertyGroup>
+  <ItemDefinitionGroup>
+    <Midl>
+      <PreprocessorDefinitions>
+        %(PreprocessorDefinitions)
+        U_PLATFORM_HAS_WINUWP_API=1;
+      </PreprocessorDefinitions>
+    </Midl>
+    <ClCompile>
+      <PreprocessorDefinitions>
+        %(PreprocessorDefinitions);
+        U_PLATFORM_HAS_WINUWP_API=1;
+      </PreprocessorDefinitions>
+    </ClCompile>
+    <ResourceCompile>
+      <PreprocessorDefinitions>
+        %(PreprocessorDefinitions)
+        U_PLATFORM_HAS_WINUWP_API=1;
+      </PreprocessorDefinitions>
+    </ResourceCompile>
+  </ItemDefinitionGroup>
 </Project>
\ No newline at end of file
index b6ece38..f6374ac 100644 (file)
@@ -1,27 +1,27 @@
-<?xml version="1.0" encoding="utf-8"?>\r
-<!-- Copyright (C) 2016 and later: Unicode, Inc. and others. License & terms of use: http://www.unicode.org/copyright.html -->\r
-<!--\r
-  This file is used to copy all of the header files (*.h) from a project's "unicode" folder to a common output folder.\r
--->\r
-<Project ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">\r
-  <PropertyGroup>\r
-    <!-- This is the location of the common output folder. -->\r
-    <CopyDestionationPath>$(SolutionDir)\..\..\include\unicode</CopyDestionationPath>\r
-    <BuildDependsOn>\r
-      $(BuildDependsOn);\r
-      CopyUnicodeHeaderFiles;\r
-    </BuildDependsOn>\r
-  </PropertyGroup>\r
-  <Target Name="CopyUnicodeHeaderFiles">\r
-    <ItemGroup>\r
-      <!-- Generate a list of all files that end in .h from the 'unicode' folder, relative to the current project. -->\r
-      <OutputFiles Include=".\unicode\**\*.h" />\r
-    </ItemGroup>\r
-    <!-- This message will be logged in the project's build output. -->\r
-    <Message Text="Copying @(OutputFiles->Count()) header files to $(CopyDestionationPath). Files copied: @(OutputFiles)" Importance="high"/>\r
-    <!-- Perform the copy. -->\r
-    <Copy SourceFiles="@(OutputFiles)" \r
-          DestinationFolder="$(CopyDestionationPath)\%(RecursiveDir)"\r
-          SkipUnchangedFiles="false"></Copy>\r
-  </Target>\r
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2016 and later: Unicode, Inc. and others. License & terms of use: http://www.unicode.org/copyright.html -->
+<!--
+  This file is used to copy all of the header files (*.h) from a project's "unicode" folder to a common output folder.
+-->
+<Project ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <PropertyGroup>
+    <!-- This is the location of the common output folder. -->
+    <CopyDestionationPath>$(SolutionDir)\..\..\include\unicode</CopyDestionationPath>
+    <BuildDependsOn>
+      $(BuildDependsOn);
+      CopyUnicodeHeaderFiles;
+    </BuildDependsOn>
+  </PropertyGroup>
+  <Target Name="CopyUnicodeHeaderFiles">
+    <ItemGroup>
+      <!-- Generate a list of all files that end in .h from the 'unicode' folder, relative to the current project. -->
+      <OutputFiles Include=".\unicode\**\*.h" />
+    </ItemGroup>
+    <!-- This message will be logged in the project's build output. -->
+    <Message Text="Copying @(OutputFiles->Count()) header files to $(CopyDestionationPath). Files copied: @(OutputFiles)" Importance="high"/>
+    <!-- Perform the copy. -->
+    <Copy SourceFiles="@(OutputFiles)" 
+          DestinationFolder="$(CopyDestionationPath)\%(RecursiveDir)"
+          SkipUnchangedFiles="false"></Copy>
+  </Target>
 </Project>
\ No newline at end of file
index 119bc99..9fc56fa 100644 (file)
@@ -52,7 +52,7 @@ set ICUFAILCNT=0
 @echo ==== %THT% =========================================================================
 %ICUINFO_CMD% %ICUINFO_OPTS%
 
-@IF NOT ERRORLEVEL 1 GOTO OK_%THT%
+@IF %ERRORLEVEL% EQU 0 GOTO OK_%THT%
 @set ICUFAILED=%ICUFAILED% %THT%
 @set ICUFAILCNT=1
 :OK_icuinfo
@@ -63,7 +63,7 @@ set ICUFAILCNT=0
 @cd %ICU_ICUDIR%\source\test\intltest
 %INTLTEST_CMD% %INTLTEST_OPTS%
 
-@IF NOT ERRORLEVEL 1 GOTO OK_%THT%
+@IF %ERRORLEVEL% EQU 0 GOTO OK_%THT%
 @set ICUFAILED=%ICUFAILED% %THT%
 @set ICUFAILCNT=1
 :OK_intltest
@@ -74,7 +74,7 @@ set ICUFAILCNT=0
 @cd %ICU_ICUDIR%\source\test\iotest
 %IOTEST_CMD% %IOTEST_OPTS%
 
-@IF NOT ERRORLEVEL 1 GOTO OK_%THT%
+@IF %ERRORLEVEL% EQU 0 GOTO OK_%THT%
 @set ICUFAILED=%ICUFAILED% %THT%
 @set ICUFAILCNT=1
 :OK_IOTEST
@@ -85,7 +85,7 @@ set ICUFAILCNT=0
 @cd %ICU_ICUDIR%\source\test\cintltst
 %CINTLTST_CMD% %CINTLTST_OPTS%
 
-@IF NOT ERRORLEVEL 1 GOTO OK_%THT%
+@IF %ERRORLEVEL% EQU 0 GOTO OK_%THT%
 @set ICUFAILED=%ICUFAILED% %THT%
 @set ICUFAILCNT=1
 :OK_cintltst
@@ -97,7 +97,7 @@ set ICUFAILCNT=0
 @REM  @cd %ICU_ICUDIR%\source\test\letest
 @REM  %LETST_CMD% %LETEST_OPTS%
 
-@REM  @IF NOT ERRORLEVEL 1 GOTO OK_%THT%
+@REM  @IF %ERRORLEVEL% EQU 0 GOTO OK_%THT%
 @REM  @set ICUFAILED=%ICUFAILED% %THT%
 @REM  @set ICUFAILCNT=1
 @REM  :OK_letest
index 391ef28..e10d3a2 100644 (file)
@@ -81,7 +81,7 @@ LIBS = $(LIBICUDT) $(DEFAULT_LIBS)
 
 OBJECTS = errorcode.o putil.o umath.o utypes.o uinvchar.o umutex.o ucln_cmn.o \
 uinit.o uobject.o cmemory.o charstr.o cstr.o \
-udata.o ucmndata.o udatamem.o umapfile.o udataswp.o ucol_swp.o utrace.o \
+udata.o ucmndata.o udatamem.o umapfile.o udataswp.o utrie_swap.o ucol_swp.o utrace.o \
 uhash.o uhash_us.o uenum.o ustrenum.o uvector.o ustack.o uvectr32.o uvectr64.o \
 ucnv.o ucnv_bld.o ucnv_cnv.o ucnv_io.o ucnv_cb.o ucnv_err.o ucnvlat1.o \
 ucnv_u7.o ucnv_u8.o ucnv_u16.o ucnv_u32.o ucnvscsu.o ucnvbocu.o \
@@ -100,15 +100,17 @@ utf_impl.o ustring.o ustrcase.o ucasemap.o ucasemap_titlecase_brkiter.o cstring.
 unistr_case_locale.o ustrcase_locale.o unistr_titlecase_brkiter.o ustr_titlecase_brkiter.o \
 normalizer2impl.o normalizer2.o filterednormalizer2.o normlzr.o unorm.o unormcmp.o loadednormalizer2impl.o \
 chariter.o schriter.o uchriter.o uiter.o \
-patternprops.o uchar.o uprops.o ucase.o propname.o ubidi_props.o ubidi.o ubidiwrt.o ubidiln.o ushape.o \
+patternprops.o uchar.o uprops.o ucase.o propname.o ubidi_props.o characterproperties.o \
+ubidi.o ubidiwrt.o ubidiln.o ushape.o \
 uscript.o uscript_props.o usc_impl.o unames.o \
-utrie.o utrie2.o utrie2_builder.o bmpset.o unisetspan.o uset_props.o uniset_props.o uniset_closure.o uset.o uniset.o usetiter.o ruleiter.o caniter.o unifilt.o unifunct.o \
+utrie.o utrie2.o utrie2_builder.o ucptrie.o umutablecptrie.o \
+bmpset.o unisetspan.o uset_props.o uniset_props.o uniset_closure.o uset.o uniset.o usetiter.o ruleiter.o caniter.o unifilt.o unifunct.o \
 uarrsort.o brkiter.o ubrk.o brkeng.o dictbe.o filteredbrk.o \
 rbbi.o rbbidata.o rbbinode.o rbbirb.o rbbiscan.o rbbisetb.o rbbistbl.o rbbitblb.o rbbi_cache.o \
 serv.o servnotf.o servls.o servlk.o servlkf.o servrbf.o servslkf.o \
 uidna.o usprep.o uts46.o punycode.o \
 util.o util_props.o parsepos.o locbased.o cwchar.o wintz.o dtintrv.o ucnvsel.o propsvec.o \
-ulist.o uloc_tag.o icudataver.o icuplug.o listformatter.o ulistformatter.o \
+ulist.o uloc_tag.o icudataver.o icuplug.o \
 sharedobject.o simpleformatter.o unifiedcache.o uloc_keytype.o \
 ubiditransform.o \
 pluralmap.o \
index 35bc80d..bc79f5e 100644 (file)
@@ -241,13 +241,13 @@ void BMPSet::overrideIllegal() {
             bmpBlockBits[i]|=bits;
         }
 
-        mask=~(0x10001<<0xd);   // Lead byte 0xED.
+        mask= static_cast<uint32_t>(~(0x10001<<0xd));   // Lead byte 0xED.
         bits=1<<0xd;
         for(i=32; i<64; ++i) {  // Second half of 4k block.
             bmpBlockBits[i]=(bmpBlockBits[i]&mask)|bits;
         }
     } else {
-        mask=~(0x10001<<0xd);   // Lead byte 0xED.
+        mask= static_cast<uint32_t>(~(0x10001<<0xd));   // Lead byte 0xED.
         for(i=32; i<64; ++i) {  // Second half of 4k block.
             bmpBlockBits[i]&=mask;
         }
index 6af7ddf..c64a845 100644 (file)
@@ -11,6 +11,7 @@
 #include "unicode/utf8.h"
 #include "unicode/utf16.h"
 #include "bytesinkutil.h"
+#include "charstr.h"
 #include "cmemory.h"
 #include "uassert.h"
 
@@ -120,4 +121,41 @@ ByteSinkUtil::appendUnchanged(const uint8_t *s, const uint8_t *limit,
     return TRUE;
 }
 
+CharStringByteSink::CharStringByteSink(CharString* dest) : dest_(*dest) {
+}
+
+CharStringByteSink::~CharStringByteSink() = default;
+
+void
+CharStringByteSink::Append(const char* bytes, int32_t n) {
+    UErrorCode status = U_ZERO_ERROR;
+    dest_.append(bytes, n, status);
+    // Any errors are silently ignored.
+}
+
+char*
+CharStringByteSink::GetAppendBuffer(int32_t min_capacity,
+                                    int32_t desired_capacity_hint,
+                                    char* scratch,
+                                    int32_t scratch_capacity,
+                                    int32_t* result_capacity) {
+    if (min_capacity < 1 || scratch_capacity < min_capacity) {
+        *result_capacity = 0;
+        return nullptr;
+    }
+
+    UErrorCode status = U_ZERO_ERROR;
+    char* result = dest_.getAppendBuffer(
+            min_capacity,
+            desired_capacity_hint,
+            *result_capacity,
+            status);
+    if (U_SUCCESS(status)) {
+        return result;
+    }
+
+    *result_capacity = scratch_capacity;
+    return scratch;
+}
+
 U_NAMESPACE_END
index 8287ffe..69e4cbc 100644 (file)
@@ -13,6 +13,7 @@
 U_NAMESPACE_BEGIN
 
 class ByteSink;
+class CharString;
 class Edits;
 
 class U_COMMON_API ByteSinkUtil {
@@ -58,4 +59,25 @@ private:
                                         ByteSink &sink, uint32_t options, Edits *edits);
 };
 
+class CharStringByteSink : public ByteSink {
+public:
+    CharStringByteSink(CharString* dest);
+    ~CharStringByteSink() override;
+
+    CharStringByteSink() = delete;
+    CharStringByteSink(const CharStringByteSink&) = delete;
+    CharStringByteSink& operator=(const CharStringByteSink&) = delete;
+
+    void Append(const char* bytes, int32_t n) override;
+
+    char* GetAppendBuffer(int32_t min_capacity,
+                          int32_t desired_capacity_hint,
+                          char* scratch,
+                          int32_t scratch_capacity,
+                          int32_t* result_capacity) override;
+
+private:
+    CharString& dest_;
+};
+
 U_NAMESPACE_END
index 581505e..ec1ab7d 100644 (file)
@@ -339,7 +339,8 @@ BytesTrieBuilder::indexOfElementWithNextUnit(int32_t i, int32_t byteIndex, UChar
 
 BytesTrieBuilder::BTLinearMatchNode::BTLinearMatchNode(const char *bytes, int32_t len, Node *nextNode)
         : LinearMatchNode(len, nextNode), s(bytes) {
-    hash=hash*37+ustr_hashCharsN(bytes, len);
+    hash=static_cast<int32_t>(
+        static_cast<uint32_t>(hash)*37u + static_cast<uint32_t>(ustr_hashCharsN(bytes, len)));
 }
 
 UBool
diff --git a/source/common/characterproperties.cpp b/source/common/characterproperties.cpp
new file mode 100644 (file)
index 0000000..3aff85b
--- /dev/null
@@ -0,0 +1,336 @@
+// © 2018 and later: Unicode, Inc. and others.
+// License & terms of use: http://www.unicode.org/copyright.html
+
+// characterproperties.cpp
+// created: 2018sep03 Markus W. Scherer
+
+#include "unicode/utypes.h"
+#include "unicode/localpointer.h"
+#include "unicode/uchar.h"
+#include "unicode/ucpmap.h"
+#include "unicode/ucptrie.h"
+#include "unicode/umutablecptrie.h"
+#include "unicode/uniset.h"
+#include "unicode/uscript.h"
+#include "unicode/uset.h"
+#include "cmemory.h"
+#include "mutex.h"
+#include "normalizer2impl.h"
+#include "uassert.h"
+#include "ubidi_props.h"
+#include "ucase.h"
+#include "ucln_cmn.h"
+#include "umutex.h"
+#include "uprops.h"
+
+using icu::UInitOnce;
+using icu::UnicodeSet;
+
+namespace {
+
+UBool U_CALLCONV characterproperties_cleanup();
+
+struct Inclusion {
+    UnicodeSet  *fSet;
+    UInitOnce    fInitOnce;
+};
+Inclusion gInclusions[UPROPS_SRC_COUNT]; // cached getInclusions()
+
+UnicodeSet *sets[UCHAR_BINARY_LIMIT] = {};
+
+UCPMap *maps[UCHAR_INT_LIMIT - UCHAR_INT_START] = {};
+
+UMutex cpMutex = U_MUTEX_INITIALIZER;
+
+//----------------------------------------------------------------
+// Inclusions list
+//----------------------------------------------------------------
+
+// USetAdder implementation
+// Does not use uset.h to reduce code dependencies
+void U_CALLCONV
+_set_add(USet *set, UChar32 c) {
+    ((UnicodeSet *)set)->add(c);
+}
+
+void U_CALLCONV
+_set_addRange(USet *set, UChar32 start, UChar32 end) {
+    ((UnicodeSet *)set)->add(start, end);
+}
+
+void U_CALLCONV
+_set_addString(USet *set, const UChar *str, int32_t length) {
+    ((UnicodeSet *)set)->add(icu::UnicodeString((UBool)(length<0), str, length));
+}
+
+UBool U_CALLCONV characterproperties_cleanup() {
+    for (Inclusion &in: gInclusions) {
+        delete in.fSet;
+        in.fSet = nullptr;
+        in.fInitOnce.reset();
+    }
+    for (int32_t i = 0; i < UPRV_LENGTHOF(sets); ++i) {
+        delete sets[i];
+        sets[i] = nullptr;
+    }
+    for (int32_t i = 0; i < UPRV_LENGTHOF(maps); ++i) {
+        ucptrie_close(reinterpret_cast<UCPTrie *>(maps[i]));
+        maps[i] = nullptr;
+    }
+    return TRUE;
+}
+
+}  // namespace
+
+U_NAMESPACE_BEGIN
+
+/*
+Reduce excessive reallocation, and make it easier to detect initialization problems.
+Usually you don't see smaller sets than this for Unicode 5.0.
+*/
+constexpr int32_t DEFAULT_INCLUSION_CAPACITY = 3072;
+
+void U_CALLCONV CharacterProperties::initInclusion(UPropertySource src, UErrorCode &errorCode) {
+    // This function is invoked only via umtx_initOnce().
+    // This function is a friend of class UnicodeSet.
+
+    U_ASSERT(0 <= src && src < UPROPS_SRC_COUNT);
+    if (src == UPROPS_SRC_NONE) {
+        errorCode = U_INTERNAL_PROGRAM_ERROR;
+        return;
+    }
+    UnicodeSet * &incl = gInclusions[src].fSet;
+    U_ASSERT(incl == nullptr);
+
+    incl = new UnicodeSet();
+    if (incl == nullptr) {
+        errorCode = U_MEMORY_ALLOCATION_ERROR;
+        return;
+    }
+    USetAdder sa = {
+        (USet *)incl,
+        _set_add,
+        _set_addRange,
+        _set_addString,
+        nullptr, // don't need remove()
+        nullptr // don't need removeRange()
+    };
+
+    incl->ensureCapacity(DEFAULT_INCLUSION_CAPACITY, errorCode);
+    switch(src) {
+    case UPROPS_SRC_CHAR:
+        uchar_addPropertyStarts(&sa, &errorCode);
+        break;
+    case UPROPS_SRC_PROPSVEC:
+        upropsvec_addPropertyStarts(&sa, &errorCode);
+        break;
+    case UPROPS_SRC_CHAR_AND_PROPSVEC:
+        uchar_addPropertyStarts(&sa, &errorCode);
+        upropsvec_addPropertyStarts(&sa, &errorCode);
+        break;
+#if !UCONFIG_NO_NORMALIZATION
+    case UPROPS_SRC_CASE_AND_NORM: {
+        const Normalizer2Impl *impl=Normalizer2Factory::getNFCImpl(errorCode);
+        if(U_SUCCESS(errorCode)) {
+            impl->addPropertyStarts(&sa, errorCode);
+        }
+        ucase_addPropertyStarts(&sa, &errorCode);
+        break;
+    }
+    case UPROPS_SRC_NFC: {
+        const Normalizer2Impl *impl=Normalizer2Factory::getNFCImpl(errorCode);
+        if(U_SUCCESS(errorCode)) {
+            impl->addPropertyStarts(&sa, errorCode);
+        }
+        break;
+    }
+    case UPROPS_SRC_NFKC: {
+        const Normalizer2Impl *impl=Normalizer2Factory::getNFKCImpl(errorCode);
+        if(U_SUCCESS(errorCode)) {
+            impl->addPropertyStarts(&sa, errorCode);
+        }
+        break;
+    }
+    case UPROPS_SRC_NFKC_CF: {
+        const Normalizer2Impl *impl=Normalizer2Factory::getNFKC_CFImpl(errorCode);
+        if(U_SUCCESS(errorCode)) {
+            impl->addPropertyStarts(&sa, errorCode);
+        }
+        break;
+    }
+    case UPROPS_SRC_NFC_CANON_ITER: {
+        const Normalizer2Impl *impl=Normalizer2Factory::getNFCImpl(errorCode);
+        if(U_SUCCESS(errorCode)) {
+            impl->addCanonIterPropertyStarts(&sa, errorCode);
+        }
+        break;
+    }
+#endif
+    case UPROPS_SRC_CASE:
+        ucase_addPropertyStarts(&sa, &errorCode);
+        break;
+    case UPROPS_SRC_BIDI:
+        ubidi_addPropertyStarts(&sa, &errorCode);
+        break;
+    case UPROPS_SRC_INPC:
+    case UPROPS_SRC_INSC:
+    case UPROPS_SRC_VO:
+        uprops_addPropertyStarts((UPropertySource)src, &sa, &errorCode);
+        break;
+    default:
+        errorCode = U_INTERNAL_PROGRAM_ERROR;
+        break;
+    }
+
+    if (U_FAILURE(errorCode)) {
+        delete incl;
+        incl = nullptr;
+        return;
+    }
+    // Compact for caching
+    incl->compact();
+    ucln_common_registerCleanup(UCLN_COMMON_CHARACTERPROPERTIES, characterproperties_cleanup);
+}
+
+const UnicodeSet *getInclusionsForSource(UPropertySource src, UErrorCode &errorCode) {
+    if (U_FAILURE(errorCode)) { return nullptr; }
+    if (src < 0 || UPROPS_SRC_COUNT <= src) {
+        errorCode = U_ILLEGAL_ARGUMENT_ERROR;
+        return nullptr;
+    }
+    Inclusion &i = gInclusions[src];
+    umtx_initOnce(i.fInitOnce, &CharacterProperties::initInclusion, src, errorCode);
+    return i.fSet;
+}
+
+const UnicodeSet *CharacterProperties::getInclusionsForProperty(
+        UProperty prop, UErrorCode &errorCode) {
+    if (U_FAILURE(errorCode)) { return nullptr; }
+    UPropertySource src = uprops_getSource(prop);
+    return getInclusionsForSource(src, errorCode);
+}
+
+U_NAMESPACE_END
+
+namespace {
+
+UnicodeSet *makeSet(UProperty property, UErrorCode &errorCode) {
+    if (U_FAILURE(errorCode)) { return nullptr; }
+    icu::LocalPointer<UnicodeSet> set(new UnicodeSet());
+    if (set.isNull()) {
+        errorCode = U_MEMORY_ALLOCATION_ERROR;
+        return nullptr;
+    }
+    const UnicodeSet *inclusions =
+        icu::CharacterProperties::getInclusionsForProperty(property, errorCode);
+    if (U_FAILURE(errorCode)) { return nullptr; }
+    int32_t numRanges = inclusions->getRangeCount();
+    UChar32 startHasProperty = -1;
+
+    for (int32_t i = 0; i < numRanges; ++i) {
+        UChar32 rangeEnd = inclusions->getRangeEnd(i);
+        for (UChar32 c = inclusions->getRangeStart(i); c <= rangeEnd; ++c) {
+            // TODO: Get a UCharacterProperty.BinaryProperty to avoid the property dispatch.
+            if (u_hasBinaryProperty(c, property)) {
+                if (startHasProperty < 0) {
+                    // Transition from false to true.
+                    startHasProperty = c;
+                }
+            } else if (startHasProperty >= 0) {
+                // Transition from true to false.
+                set->add(startHasProperty, c - 1);
+                startHasProperty = -1;
+            }
+        }
+    }
+    if (startHasProperty >= 0) {
+        set->add(startHasProperty, 0x10FFFF);
+    }
+    set->freeze();
+    return set.orphan();
+}
+
+UCPMap *makeMap(UProperty property, UErrorCode &errorCode) {
+    if (U_FAILURE(errorCode)) { return nullptr; }
+    uint32_t nullValue = property == UCHAR_SCRIPT ? USCRIPT_UNKNOWN : 0;
+    icu::LocalUMutableCPTriePointer mutableTrie(
+        umutablecptrie_open(nullValue, nullValue, &errorCode));
+    const UnicodeSet *inclusions =
+        icu::CharacterProperties::getInclusionsForProperty(property, errorCode);
+    if (U_FAILURE(errorCode)) { return nullptr; }
+    int32_t numRanges = inclusions->getRangeCount();
+    UChar32 start = 0;
+    uint32_t value = nullValue;
+
+    for (int32_t i = 0; i < numRanges; ++i) {
+        UChar32 rangeEnd = inclusions->getRangeEnd(i);
+        for (UChar32 c = inclusions->getRangeStart(i); c <= rangeEnd; ++c) {
+            // TODO: Get a UCharacterProperty.IntProperty to avoid the property dispatch.
+            uint32_t nextValue = u_getIntPropertyValue(c, property);
+            if (value != nextValue) {
+                if (value != nullValue) {
+                    umutablecptrie_setRange(mutableTrie.getAlias(), start, c - 1, value, &errorCode);
+                }
+                start = c;
+                value = nextValue;
+            }
+        }
+    }
+    if (value != 0) {
+        umutablecptrie_setRange(mutableTrie.getAlias(), start, 0x10FFFF, value, &errorCode);
+    }
+
+    UCPTrieType type;
+    if (property == UCHAR_BIDI_CLASS || property == UCHAR_GENERAL_CATEGORY) {
+        type = UCPTRIE_TYPE_FAST;
+    } else {
+        type = UCPTRIE_TYPE_SMALL;
+    }
+    UCPTrieValueWidth valueWidth;
+    // TODO: UCharacterProperty.IntProperty
+    int32_t max = u_getIntPropertyMaxValue(property);
+    if (max <= 0xff) {
+        valueWidth = UCPTRIE_VALUE_BITS_8;
+    } else if (max <= 0xffff) {
+        valueWidth = UCPTRIE_VALUE_BITS_16;
+    } else {
+        valueWidth = UCPTRIE_VALUE_BITS_32;
+    }
+    return reinterpret_cast<UCPMap *>(
+        umutablecptrie_buildImmutable(mutableTrie.getAlias(), type, valueWidth, &errorCode));
+}
+
+}  // namespace
+
+U_NAMESPACE_USE
+
+U_CAPI const USet * U_EXPORT2
+u_getBinaryPropertySet(UProperty property, UErrorCode *pErrorCode) {
+    if (U_FAILURE(*pErrorCode)) { return nullptr; }
+    if (property < 0 || UCHAR_BINARY_LIMIT <= property) {
+        *pErrorCode = U_ILLEGAL_ARGUMENT_ERROR;
+        return nullptr;
+    }
+    Mutex m(&cpMutex);
+    UnicodeSet *set = sets[property];
+    if (set == nullptr) {
+        sets[property] = set = makeSet(property, *pErrorCode);
+    }
+    if (U_FAILURE(*pErrorCode)) { return nullptr; }
+    return set->toUSet();
+}
+
+U_CAPI const UCPMap * U_EXPORT2
+u_getIntPropertyMap(UProperty property, UErrorCode *pErrorCode) {
+    if (U_FAILURE(*pErrorCode)) { return nullptr; }
+    if (property < UCHAR_INT_START || UCHAR_INT_LIMIT <= property) {
+        *pErrorCode = U_ILLEGAL_ARGUMENT_ERROR;
+        return nullptr;
+    }
+    Mutex m(&cpMutex);
+    UCPMap *map = maps[property - UCHAR_INT_START];
+    if (map == nullptr) {
+        maps[property - UCHAR_INT_START] = map = makeMap(property, *pErrorCode);
+    }
+    return map;
+}
index 353f1d5..852cc53 100644 (file)
@@ -79,7 +79,7 @@ CharString &CharString::append(const char *s, int32_t sLength, UErrorCode &error
         return *this;
     }
     if(sLength<0) {
-        sLength=uprv_strlen(s);
+        sLength= static_cast<int32_t>(uprv_strlen(s));
     }
     if(sLength>0) {
         if(s==(buffer.getAlias()+len)) {
@@ -126,15 +126,21 @@ char *CharString::getAppendBuffer(int32_t minCapacity,
 }
 
 CharString &CharString::appendInvariantChars(const UnicodeString &s, UErrorCode &errorCode) {
+    return appendInvariantChars(s.getBuffer(), s.length(), errorCode);
+}
+
+CharString &CharString::appendInvariantChars(const UChar* uchars, int32_t ucharsLen, UErrorCode &errorCode) {
     if(U_FAILURE(errorCode)) {
         return *this;
     }
-    if (!uprv_isInvariantUnicodeString(s)) {
+    if (!uprv_isInvariantUString(uchars, ucharsLen)) {
         errorCode = U_INVARIANT_CONVERSION_ERROR;
         return *this;
     }
-    if(ensureCapacity(len+s.length()+1, 0, errorCode)) {
-        len+=s.extract(0, 0x7fffffff, buffer.getAlias()+len, buffer.getCapacity()-len, US_INV);
+    if(ensureCapacity(len+ucharsLen+1, 0, errorCode)) {
+        u_UCharsToChars(uchars, buffer.getAlias()+len, ucharsLen);
+        len += ucharsLen;
+        buffer[len] = 0;
     }
     return *this;
 }
index 86f69c3..1a97e01 100644 (file)
@@ -123,6 +123,7 @@ public:
                           UErrorCode &errorCode);
 
     CharString &appendInvariantChars(const UnicodeString &s, UErrorCode &errorCode);
+    CharString &appendInvariantChars(const UChar* uchars, int32_t ucharsLen, UErrorCode& errorCode);
 
     /**
      * Appends a filename/path part, e.g., a directory name.
index e3532c7..f1eef4e 100644 (file)
@@ -172,7 +172,7 @@ public:
      * @return *this
      */
     LocalMemory<T> &moveFrom(LocalMemory<T> &src) U_NOEXCEPT {
-        delete[] LocalPointerBase<T>::ptr;
+        uprv_free(LocalPointerBase<T>::ptr);
         LocalPointerBase<T>::ptr=src.ptr;
         src.ptr=NULL;
         return *this;
@@ -279,6 +279,10 @@ inline T *LocalMemory<T>::allocateInsteadAndCopy(int32_t newCapacity, int32_t le
  *
  * Unlike LocalMemory and LocalArray, this class never adopts
  * (takes ownership of) another array.
+ *
+ * WARNING: MaybeStackArray only works with primitive (plain-old data) types.
+ * It does NOT know how to call a destructor! If you work with classes with
+ * destructors, consider LocalArray in localpointer.h.
  */
 template<typename T, int32_t stackCapacity>
 class MaybeStackArray {
index 0f50140..7df7f15 100644 (file)
@@ -2,7 +2,8 @@
 <Project DefaultTargets="Build" ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
   <!-- The following import will include the 'default' configuration options for VS projects. -->
   <Import Project="..\allinone\Build.Windows.ProjectConfiguration.props" />
-
+  <!-- The following import will include the library configuration options for VS projects. -->
+  <Import Project="..\allinone\Build.Windows.Library.ProjectConfiguration.props" />
   <PropertyGroup Label="Globals">
     <ProjectGuid>{73C0A65B-D1F2-4DE1-B3A6-15DAD2C23F3D}</ProjectGuid>
   </PropertyGroup>
@@ -85,7 +86,7 @@
       <ProgramDataBaseFileName>.\x86\Release/</ProgramDataBaseFileName>
     </ClCompile>
     <Link>
-      <OutputFile>..\..\bin\icuuc62.dll</OutputFile>
+      <OutputFile>..\..\bin\icuuc63.dll</OutputFile>
       <AdditionalLibraryDirectories>.\..\..\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
       <ProgramDatabaseFile>.\..\..\lib\icuuc.pdb</ProgramDatabaseFile>
       <DataExecutionPrevention>
       <DebugInformationFormat>EditAndContinue</DebugInformationFormat>
     </ClCompile>
     <Link>
-      <OutputFile>..\..\bin\icuuc62d.dll</OutputFile>
+      <OutputFile>..\..\bin\icuuc63d.dll</OutputFile>
       <AdditionalLibraryDirectories>.\..\..\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
       <ProgramDatabaseFile>.\..\..\lib\icuucd.pdb</ProgramDatabaseFile>
       <DataExecutionPrevention>
       <ProgramDataBaseFileName>.\x64\Release/</ProgramDataBaseFileName>
     </ClCompile>
     <Link>
-      <OutputFile>..\..\bin64\icuuc62.dll</OutputFile>
+      <OutputFile>..\..\bin64\icuuc63.dll</OutputFile>
       <AdditionalLibraryDirectories>.\..\..\lib64;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
       <ProgramDatabaseFile>.\..\..\lib64\icuuc.pdb</ProgramDatabaseFile>
       <ImportLibrary>..\..\lib64\icuuc.lib</ImportLibrary>
       <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
     </ClCompile>
     <Link>
-      <OutputFile>..\..\bin64\icuuc62d.dll</OutputFile>
+      <OutputFile>..\..\bin64\icuuc63d.dll</OutputFile>
       <AdditionalLibraryDirectories>.\..\..\lib64;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
       <ProgramDatabaseFile>.\..\..\lib64\icuucd.pdb</ProgramDatabaseFile>
       <ImportLibrary>..\..\lib64\icuucd.lib</ImportLibrary>
     <ClCompile Include="ustack.cpp" />
     <ClCompile Include="ustrenum.cpp" />
     <ClCompile Include="utrie.cpp" />
+    <ClCompile Include="utrie_swap.cpp" />
     <ClCompile Include="utrie2.cpp" />
     <ClCompile Include="utrie2_builder.cpp" />
     <ClCompile Include="uvector.cpp" />
     <ClCompile Include="ruleiter.cpp" />
     <ClCompile Include="ucase.cpp" />
     <ClCompile Include="uchar.cpp" />
+    <ClCompile Include="characterproperties.cpp" />
     <ClCompile Include="unames.cpp" />
     <ClCompile Include="unifiedcache.cpp" />
     <ClCompile Include="unifilt.cpp" />
     <ClCompile Include="ucharstriebuilder.cpp" />
     <ClCompile Include="ucharstrieiterator.cpp" />
     <ClCompile Include="uchriter.cpp" />
+    <ClCompile Include="ucptrie.cpp" />
     <ClCompile Include="uinvchar.cpp" />
     <ClCompile Include="uiter.cpp" />
+    <ClCompile Include="umutablecptrie.cpp" />
     <ClCompile Include="unistr.cpp" />
     <ClCompile Include="unistr_case.cpp" />
     <ClCompile Include="unistr_case_locale.cpp" />
     <ClCompile Include="ustrtrns.cpp" />
     <ClCompile Include="utext.cpp" />
     <ClCompile Include="utf_impl.cpp" />
-    <ClCompile Include="listformatter.cpp" />
-    <ClCompile Include="ulistformatter.cpp" />
     <ClCompile Include="static_unicode_sets.cpp" />
     <ClInclude Include="localsvc.h" />
     <ClInclude Include="msvcres.h" />
index 20863f1..99ed94f 100644 (file)
     <ClCompile Include="utrie.cpp">
       <Filter>collections</Filter>
     </ClCompile>
+    <ClCompile Include="utrie_swap.cpp">
+      <Filter>collections</Filter>
+    </ClCompile>
     <ClCompile Include="utrie2.cpp">
       <Filter>collections</Filter>
     </ClCompile>
     <ClCompile Include="bmpset.cpp">
       <Filter>properties &amp; sets</Filter>
     </ClCompile>
+    <ClCompile Include="characterproperties.cpp">
+      <Filter>properties &amp; sets</Filter>
+    </ClCompile>
     <ClCompile Include="propname.cpp">
       <Filter>properties &amp; sets</Filter>
     </ClCompile>
     <ClCompile Include="bytestriebuilder.cpp">
       <Filter>collections</Filter>
     </ClCompile>
-    <ClCompile Include="listformatter.cpp">
-      <Filter>formatting</Filter>
-    </ClCompile>
-    <ClCompile Include="ulistformatter.cpp">
-      <Filter>formatting</Filter>
-    </ClCompile>
     <ClCompile Include="messagepattern.cpp">
       <Filter>formatting</Filter>
     </ClCompile>
     <ClCompile Include="ucharstrieiterator.cpp">
       <Filter>collections</Filter>
     </ClCompile>
+    <ClCompile Include="ucptrie.cpp">
+      <Filter>collections</Filter>
+    </ClCompile>
+    <ClCompile Include="umutablecptrie.cpp">
+      <Filter>collections</Filter>
+    </ClCompile>
     <ClCompile Include="patternprops.cpp">
       <Filter>properties &amp; sets</Filter>
     </ClCompile>
     <CustomBuild Include="unicode\messagepattern.h">
       <Filter>formatting</Filter>
     </CustomBuild>
-    <CustomBuild Include="unicode\listformatter.h">
-      <Filter>formatting</Filter>
-    </CustomBuild>
-    <CustomBuild Include="unicode\ulistformatter.h">
-      <Filter>formatting</Filter>
-    </CustomBuild>
     <CustomBuild Include="unicode\appendable.h">
       <Filter>strings</Filter>
     </CustomBuild>
     <CustomBuild Include="unicode\ucharstriebuilder.h">
       <Filter>collections</Filter>
     </CustomBuild>
+    <CustomBuild Include="unicode\ucptrie.h">
+      <Filter>collections</Filter>
+    </CustomBuild>
+    <CustomBuild Include="unicode\umutablecptrie.h">
+      <Filter>collections</Filter>
+    </CustomBuild>
     <CustomBuild Include="unicode\enumset.h">
       <Filter>data &amp; memory</Filter>
     </CustomBuild>
       <Filter>strings</Filter>
     </CustomBuild>
   </ItemGroup>
-</Project>
\ No newline at end of file
+</Project>
index ee11e5d..f532cff 100644 (file)
@@ -1,6 +1,9 @@
 <?xml version="1.0" encoding="utf-8"?>
 <Project DefaultTargets="Build" ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <!-- The following import will include the UWP configuration options for VS projects. -->
   <Import Project="..\allinone\Build.Windows.UWP.ProjectConfiguration.props" />
+  <!-- The following import will include the library configuration options for VS projects. -->
+  <Import Project="..\allinone\Build.Windows.Library.ProjectConfiguration.props" />
   <ItemGroup Label="ProjectConfigurations">
     <ProjectConfiguration Include="Debug|Win32">
       <Configuration>Debug</Configuration>
       <ProgramDataBaseFileName>.\x86\ReleaseUWP/</ProgramDataBaseFileName>
     </ClCompile>
     <Link>
-      <OutputFile>..\..\bin32uwp\icuuc62.dll</OutputFile>
+      <OutputFile>..\..\bin32uwp\icuuc63.dll</OutputFile>
       <ProgramDatabaseFile>.\..\..\lib32uwp\icuuc.pdb</ProgramDatabaseFile>
       <ImportLibrary>..\..\lib32uwp\icuuc.lib</ImportLibrary>
     </Link>
       <ProgramDataBaseFileName>.\x86\DebugUWP/</ProgramDataBaseFileName>
     </ClCompile>
     <Link>
-      <OutputFile>..\..\bin32uwp\icuuc62d.dll</OutputFile>
+      <OutputFile>..\..\bin32uwp\icuuc63d.dll</OutputFile>
       <ProgramDatabaseFile>.\..\..\lib32uwp\icuucd.pdb</ProgramDatabaseFile>
       <ImportLibrary>..\..\lib32uwp\icuucd.lib</ImportLibrary>
     </Link>
       <ProgramDataBaseFileName>.\x64\ReleaseUWP/</ProgramDataBaseFileName>
     </ClCompile>
     <Link>
-      <OutputFile>..\..\bin64uwp\icuuc62.dll</OutputFile>
+      <OutputFile>..\..\bin64uwp\icuuc63.dll</OutputFile>
       <ProgramDatabaseFile>.\..\..\lib64uwp\icuuc.pdb</ProgramDatabaseFile>
       <ImportLibrary>..\..\lib64uwp\icuuc.lib</ImportLibrary>
     </Link>
       <ProgramDataBaseFileName>.\x64\DebugUWP/</ProgramDataBaseFileName>
     </ClCompile>
     <Link>
-      <OutputFile>..\..\bin64uwp\icuuc62d.dll</OutputFile>
+      <OutputFile>..\..\bin64uwp\icuuc63d.dll</OutputFile>
       <ProgramDatabaseFile>.\..\..\lib64uwp\icuucd.pdb</ProgramDatabaseFile>
       <ImportLibrary>..\..\lib64uwp\icuucd.lib</ImportLibrary>
     </Link>
       <ProgramDataBaseFileName>.\ARM\ReleaseUWP/</ProgramDataBaseFileName>
     </ClCompile>
     <Link>
-      <OutputFile>..\..\binARMuwp\icuuc62.dll</OutputFile>
+      <OutputFile>..\..\binARMuwp\icuuc63.dll</OutputFile>
       <ProgramDatabaseFile>.\..\..\libARMuwp\icuuc.pdb</ProgramDatabaseFile>
       <ImportLibrary>..\..\libARMuwp\icuuc.lib</ImportLibrary>
     </Link>
       <ProgramDataBaseFileName>.\ARM\DebugUWP/</ProgramDataBaseFileName>
     </ClCompile>
     <Link>
-      <OutputFile>..\..\binARMuwp\icuuc62d.dll</OutputFile>
+      <OutputFile>..\..\binARMuwp\icuuc63d.dll</OutputFile>
       <ProgramDatabaseFile>.\..\..\libARMuwp\icuucd.pdb</ProgramDatabaseFile>
       <ImportLibrary>..\..\libARMuwp\icuucd.lib</ImportLibrary>
     </Link>
     <ClCompile Include="ustack.cpp" />
     <ClCompile Include="ustrenum.cpp" />
     <ClCompile Include="utrie.cpp" />
+    <ClCompile Include="utrie_swap.cpp" />
     <ClCompile Include="utrie2.cpp" />
     <ClCompile Include="utrie2_builder.cpp" />
     <ClCompile Include="uvector.cpp" />
     <ClCompile Include="umutex.cpp" />
     <ClCompile Include="utrace.cpp" />
     <ClCompile Include="utypes.cpp" />
-    <ClCompile Include="wintz.cpp">
-      <ExcludedFromBuild>true</ExcludedFromBuild>
-    </ClCompile>
+    <ClCompile Include="wintz.cpp" />
     <ClCompile Include="ucnv.cpp" />
     <ClCompile Include="ucnv2022.cpp" />
     <ClCompile Include="ucnv_bld.cpp" />
     <ClCompile Include="ruleiter.cpp" />
     <ClCompile Include="ucase.cpp" />
     <ClCompile Include="uchar.cpp" />
+    <ClCompile Include="characterproperties.cpp" />
     <ClCompile Include="unames.cpp" />
     <ClCompile Include="unifiedcache.cpp" />
     <ClCompile Include="unifilt.cpp" />
     <ClCompile Include="ucharstrie.cpp" />
     <ClCompile Include="ucharstriebuilder.cpp" />
     <ClCompile Include="ucharstrieiterator.cpp" />
+    <ClCompile Include="ucptrie.cpp" />
     <ClCompile Include="uchriter.cpp" />
     <ClCompile Include="uinvchar.cpp" />
     <ClCompile Include="uiter.cpp" />
+    <ClCompile Include="umutablecptrie.cpp" />
     <ClCompile Include="unistr.cpp" />
     <ClCompile Include="unistr_case.cpp" />
     <ClCompile Include="unistr_case_locale.cpp" />
     <ClCompile Include="ustrtrns.cpp" />
     <ClCompile Include="utext.cpp" />
     <ClCompile Include="utf_impl.cpp" />
-    <ClCompile Include="listformatter.cpp" />
-    <ClCompile Include="ulistformatter.cpp" />
     <ClCompile Include="static_unicode_sets.cpp" />
   </ItemGroup>
   <ItemGroup>
index d8ae45c..cdef793 100644 (file)
@@ -325,9 +325,9 @@ foundBest:
                         // two characters after uc were not 0x0E4C THANTHAKHAT before
                         // checking the dictionary. That is just a performance filter,
                         // but it's not clear it's faster than checking the trie.
-                        int32_t candidates = words[(wordsFound + 1) % THAI_LOOKAHEAD].candidates(text, fDictionary, rangeEnd);
+                        int32_t num_candidates = words[(wordsFound + 1) % THAI_LOOKAHEAD].candidates(text, fDictionary, rangeEnd);
                         utext_setNativeIndex(text, current + cuWordLength + chars);
-                        if (candidates > 0) {
+                        if (num_candidates > 0) {
                             break;
                         }
                     }
@@ -555,9 +555,9 @@ foundBest:
                     if (fEndWordSet.contains(pc) && fBeginWordSet.contains(uc)) {
                         // Maybe. See if it's in the dictionary.
                         // TODO: this looks iffy; compare with old code.
-                        int32_t candidates = words[(wordsFound + 1) % LAO_LOOKAHEAD].candidates(text, fDictionary, rangeEnd);
+                        int32_t num_candidates = words[(wordsFound + 1) % LAO_LOOKAHEAD].candidates(text, fDictionary, rangeEnd);
                         utext_setNativeIndex(text, current + cuWordLength + chars);
-                        if (candidates > 0) {
+                        if (num_candidates > 0) {
                             break;
                         }
                     }
@@ -748,9 +748,9 @@ foundBest:
                     if (fEndWordSet.contains(pc) && fBeginWordSet.contains(uc)) {
                         // Maybe. See if it's in the dictionary.
                         // TODO: this looks iffy; compare with old code.
-                        int32_t candidates = words[(wordsFound + 1) % BURMESE_LOOKAHEAD].candidates(text, fDictionary, rangeEnd);
+                        int32_t num_candidates = words[(wordsFound + 1) % BURMESE_LOOKAHEAD].candidates(text, fDictionary, rangeEnd);
                         utext_setNativeIndex(text, current + cuWordLength + chars);
-                        if (candidates > 0) {
+                        if (num_candidates > 0) {
                             break;
                         }
                     }
@@ -953,9 +953,9 @@ foundBest:
                     uc = utext_current32(text);
                     if (fEndWordSet.contains(pc) && fBeginWordSet.contains(uc)) {
                         // Maybe. See if it's in the dictionary.
-                        int32_t candidates = words[(wordsFound + 1) % KHMER_LOOKAHEAD].candidates(text, fDictionary, rangeEnd);
+                        int32_t num_candidates = words[(wordsFound + 1) % KHMER_LOOKAHEAD].candidates(text, fDictionary, rangeEnd);
                         utext_setNativeIndex(text, current+cuWordLength+chars);
-                        if (candidates > 0) {
+                        if (num_candidates > 0) {
                             break;
                         }
                     }
index 3b3611f..00a8d60 100644 (file)
@@ -276,7 +276,7 @@ Edits &Edits::mergeAndAppend(const Edits &ab, const Edits &bc, UErrorCode &error
         // ab deletions meet bc insertions at the same intermediate-string index.
         // Some users expect the bc insertions to come first, so we fetch from bc first.
         if (bc_bLength == 0) {
-            if (bcHasNext && (bcHasNext = bcIter.next(errorCode))) {
+            if (bcHasNext && (bcHasNext = bcIter.next(errorCode)) != 0) {
                 bc_bLength = bcIter.oldLength();
                 cLength = bcIter.newLength();
                 if (bc_bLength == 0) {
@@ -293,7 +293,7 @@ Edits &Edits::mergeAndAppend(const Edits &ab, const Edits &bc, UErrorCode &error
             // else see if the other iterator is done, too.
         }
         if (ab_bLength == 0) {
-            if (abHasNext && (abHasNext = abIter.next(errorCode))) {
+            if (abHasNext && (abHasNext = abIter.next(errorCode)) != 0) {
                 aLength = abIter.oldLength();
                 ab_bLength = abIter.newLength();
                 if (ab_bLength == 0) {
index 288a7d6..82cb325 100644 (file)
@@ -18,6 +18,7 @@
 #include "unicode/udata.h"
 #include "unicode/localpointer.h"
 #include "unicode/normalizer2.h"
+#include "unicode/ucptrie.h"
 #include "unicode/unistr.h"
 #include "unicode/unorm.h"
 #include "cstring.h"
@@ -42,12 +43,12 @@ private:
     isAcceptable(void *context, const char *type, const char *name, const UDataInfo *pInfo);
 
     UDataMemory *memory;
-    UTrie2 *ownedTrie;
+    UCPTrie *ownedTrie;
 };
 
 LoadedNormalizer2Impl::~LoadedNormalizer2Impl() {
     udata_close(memory);
-    utrie2_close(ownedTrie);
+    ucptrie_close(ownedTrie);
 }
 
 UBool U_CALLCONV
@@ -62,7 +63,7 @@ LoadedNormalizer2Impl::isAcceptable(void * /*context*/,
         pInfo->dataFormat[1]==0x72 &&
         pInfo->dataFormat[2]==0x6d &&
         pInfo->dataFormat[3]==0x32 &&
-        pInfo->formatVersion[0]==3
+        pInfo->formatVersion[0]==4
     ) {
         // Normalizer2Impl *me=(Normalizer2Impl *)context;
         // uprv_memcpy(me->dataVersion, pInfo->dataVersion, 4);
@@ -91,9 +92,9 @@ LoadedNormalizer2Impl::load(const char *packageName, const char *name, UErrorCod
 
     int32_t offset=inIndexes[IX_NORM_TRIE_OFFSET];
     int32_t nextOffset=inIndexes[IX_EXTRA_DATA_OFFSET];
-    ownedTrie=utrie2_openFromSerialized(UTRIE2_16_VALUE_BITS,
-                                        inBytes+offset, nextOffset-offset, NULL,
-                                        &errorCode);
+    ownedTrie=ucptrie_openFromBinary(UCPTRIE_TYPE_FAST, UCPTRIE_VALUE_BITS_16,
+                                     inBytes+offset, nextOffset-offset, NULL,
+                                     &errorCode);
     if(U_FAILURE(errorCode)) {
         return;
     }
@@ -131,15 +132,26 @@ U_CDECL_BEGIN
 static UBool U_CALLCONV uprv_loaded_normalizer2_cleanup();
 U_CDECL_END
 
-static Norm2AllModes *nfkcSingleton;
-static Norm2AllModes *nfkc_cfSingleton;
-static UHashtable    *cache=NULL;
+#if !NORM2_HARDCODE_NFC_DATA
+static Norm2AllModes *nfcSingleton;
+static icu::UInitOnce nfcInitOnce = U_INITONCE_INITIALIZER;
+#endif
 
+static Norm2AllModes *nfkcSingleton;
 static icu::UInitOnce nfkcInitOnce = U_INITONCE_INITIALIZER;
+
+static Norm2AllModes *nfkc_cfSingleton;
 static icu::UInitOnce nfkc_cfInitOnce = U_INITONCE_INITIALIZER;
 
+static UHashtable    *cache=NULL;
+
 // UInitOnce singleton initialization function
 static void U_CALLCONV initSingletons(const char *what, UErrorCode &errorCode) {
+#if !NORM2_HARDCODE_NFC_DATA
+    if (uprv_strcmp(what, "nfc") == 0) {
+        nfcSingleton    = Norm2AllModes::createInstance(NULL, "nfc", errorCode);
+    } else
+#endif
     if (uprv_strcmp(what, "nfkc") == 0) {
         nfkcSingleton    = Norm2AllModes::createInstance(NULL, "nfkc", errorCode);
     } else if (uprv_strcmp(what, "nfkc_cf") == 0) {
@@ -157,19 +169,36 @@ static void U_CALLCONV deleteNorm2AllModes(void *allModes) {
 }
 
 static UBool U_CALLCONV uprv_loaded_normalizer2_cleanup() {
+#if !NORM2_HARDCODE_NFC_DATA
+    delete nfcSingleton;
+    nfcSingleton = NULL;
+    nfcInitOnce.reset();
+#endif
+
     delete nfkcSingleton;
     nfkcSingleton = NULL;
+    nfkcInitOnce.reset();
+
     delete nfkc_cfSingleton;
     nfkc_cfSingleton = NULL;
+    nfkc_cfInitOnce.reset();
+
     uhash_close(cache);
     cache=NULL;
-    nfkcInitOnce.reset(); 
-    nfkc_cfInitOnce.reset(); 
     return TRUE;
 }
 
 U_CDECL_END
 
+#if !NORM2_HARDCODE_NFC_DATA
+const Norm2AllModes *
+Norm2AllModes::getNFCInstance(UErrorCode &errorCode) {
+    if(U_FAILURE(errorCode)) { return NULL; }
+    umtx_initOnce(nfcInitOnce, &initSingletons, "nfc", errorCode);
+    return nfcSingleton;
+}
+#endif
+
 const Norm2AllModes *
 Norm2AllModes::getNFKCInstance(UErrorCode &errorCode) {
     if(U_FAILURE(errorCode)) { return NULL; }
@@ -184,6 +213,36 @@ Norm2AllModes::getNFKC_CFInstance(UErrorCode &errorCode) {
     return nfkc_cfSingleton;
 }
 
+#if !NORM2_HARDCODE_NFC_DATA
+const Normalizer2 *
+Normalizer2::getNFCInstance(UErrorCode &errorCode) {
+    const Norm2AllModes *allModes=Norm2AllModes::getNFCInstance(errorCode);
+    return allModes!=NULL ? &allModes->comp : NULL;
+}
+
+const Normalizer2 *
+Normalizer2::getNFDInstance(UErrorCode &errorCode) {
+    const Norm2AllModes *allModes=Norm2AllModes::getNFCInstance(errorCode);
+    return allModes!=NULL ? &allModes->decomp : NULL;
+}
+
+const Normalizer2 *Normalizer2Factory::getFCDInstance(UErrorCode &errorCode) {
+    const Norm2AllModes *allModes=Norm2AllModes::getNFCInstance(errorCode);
+    return allModes!=NULL ? &allModes->fcd : NULL;
+}
+
+const Normalizer2 *Normalizer2Factory::getFCCInstance(UErrorCode &errorCode) {
+    const Norm2AllModes *allModes=Norm2AllModes::getNFCInstance(errorCode);
+    return allModes!=NULL ? &allModes->fcc : NULL;
+}
+
+const Normalizer2Impl *
+Normalizer2Factory::getNFCImpl(UErrorCode &errorCode) {
+    const Norm2AllModes *allModes=Norm2AllModes::getNFCInstance(errorCode);
+    return allModes!=NULL ? allModes->impl : NULL;
+}
+#endif
+
 const Normalizer2 *
 Normalizer2::getNFKCInstance(UErrorCode &errorCode) {
     const Norm2AllModes *allModes=Norm2AllModes::getNFKCInstance(errorCode);
@@ -247,7 +306,7 @@ Normalizer2::getInstance(const char *packageName,
                 }
                 void *temp=uhash_get(cache, name);
                 if(temp==NULL) {
-                    int32_t keyLength=uprv_strlen(name)+1;
+                    int32_t keyLength= static_cast<int32_t>(uprv_strlen(name)+1);
                     char *nameCopy=(char *)uprv_malloc(keyLength);
                     if(nameCopy==NULL) {
                         errorCode=U_MEMORY_ALLOCATION_ERROR;
index 6ceb6cf..2d9389e 100644 (file)
@@ -45,9 +45,9 @@ static int32_t ncat(char *buffer, uint32_t buflen, ...) {
   }
 
   va_start(args, buflen);
-  while ((str = va_arg(args, char *))) {
+  while ((str = va_arg(args, char *)) != 0) {
     char c;
-    while (p != e && (c = *str++)) {
+    while (p != e && (c = *str++) != 0) {
       *p++ = c;
     }
   }
@@ -98,7 +98,7 @@ ICUDataTable::ICUDataTable(const char* path, const Locale& locale)
     : path(NULL), locale(Locale::getRoot())
 {
   if (path) {
-    int32_t len = uprv_strlen(path);
+    int32_t len = static_cast<int32_t>(uprv_strlen(path));
     this->path = (const char*) uprv_malloc(len + 1);
     if (this->path) {
       uprv_strcpy((char *)this->path, path);
@@ -560,21 +560,21 @@ LocaleDisplayNamesImpl::adjustForUsageAndContext(CapContextUsage usage,
 }
 
 UnicodeString&
-LocaleDisplayNamesImpl::localeDisplayName(const Locale& locale,
+LocaleDisplayNamesImpl::localeDisplayName(const Locale& loc,
                                           UnicodeString& result) const {
-  if (locale.isBogus()) {
+  if (loc.isBogus()) {
     result.setToBogus();
     return result;
   }
   UnicodeString resultName;
 
-  const char* lang = locale.getLanguage();
+  const char* lang = loc.getLanguage();
   if (uprv_strlen(lang) == 0) {
     lang = "root";
   }
-  const char* script = locale.getScript();
-  const char* country = locale.getCountry();
-  const char* variant = locale.getVariant();
+  const char* script = loc.getScript();
+  const char* country = loc.getCountry();
+  const char* variant = loc.getVariant();
 
   UBool hasScript = uprv_strlen(script) > 0;
   UBool hasCountry = uprv_strlen(country) > 0;
@@ -630,14 +630,14 @@ LocaleDisplayNamesImpl::localeDisplayName(const Locale& locale,
   resultRemainder.findAndReplace(formatOpenParen, formatReplaceOpenParen);
   resultRemainder.findAndReplace(formatCloseParen, formatReplaceCloseParen);
 
-  LocalPointer<StringEnumeration> e(locale.createKeywords(status));
+  LocalPointer<StringEnumeration> e(loc.createKeywords(status));
   if (e.isValid() && U_SUCCESS(status)) {
     UnicodeString temp2;
     char value[ULOC_KEYWORD_AND_VALUES_CAPACITY]; // sigh, no ULOC_VALUE_CAPACITY
     const char* key;
     while ((key = e->next((int32_t *)0, status)) != NULL) {
       value[0] = 0;
-      locale.getKeywordValue(key, value, ULOC_KEYWORD_AND_VALUES_CAPACITY, status);
+      loc.getKeywordValue(key, value, ULOC_KEYWORD_AND_VALUES_CAPACITY, status);
       if (U_FAILURE(status) || status == U_STRING_NOT_TERMINATED_WARNING) {
         return result;
       }
index 36508ac..e0dcc8a 100644 (file)
 ******************************************************************************
 */
 
+#include <utility>
 
+#include "unicode/bytestream.h"
 #include "unicode/locid.h"
 #include "unicode/strenum.h"
+#include "unicode/stringpiece.h"
 #include "unicode/uloc.h"
 #include "putilimp.h"
 #include "mutex.h"
 #include "cstring.h"
 #include "uassert.h"
 #include "uhash.h"
+#include "ulocimp.h"
 #include "ucln_cmn.h"
 #include "ustr_imp.h"
 #include "charstr.h"
+#include "bytesinkutil.h"
 
 U_CDECL_BEGIN
 static UBool U_CALLCONV locale_cleanup(void);
@@ -424,49 +429,70 @@ Locale::Locale(const Locale &other)
     *this = other;
 }
 
-Locale &Locale::operator=(const Locale &other)
-{
+Locale::Locale(Locale&& other) U_NOEXCEPT
+    : UObject(other), fullName(fullNameBuffer), baseName(fullName) {
+  *this = std::move(other);
+}
+
+Locale& Locale::operator=(const Locale& other) {
     if (this == &other) {
         return *this;
     }
 
-    /* Free our current storage */
-    if (baseName != fullName) {
-        uprv_free(baseName);
+    setToBogus();
+
+    if (other.fullName == other.fullNameBuffer) {
+        uprv_strcpy(fullNameBuffer, other.fullNameBuffer);
+    } else if (other.fullName == nullptr) {
+        fullName = nullptr;
+    } else {
+        fullName = uprv_strdup(other.fullName);
+        if (fullName == nullptr) return *this;
     }
-    baseName = NULL;
-    if(fullName != fullNameBuffer) {
-        uprv_free(fullName);
-        fullName = fullNameBuffer;
+
+    if (other.baseName == other.fullName) {
+        baseName = fullName;
+    } else if (other.baseName != nullptr) {
+        baseName = uprv_strdup(other.baseName);
+        if (baseName == nullptr) return *this;
     }
 
-    /* Allocate the full name if necessary */
-    if(other.fullName != other.fullNameBuffer) {
-        fullName = (char *)uprv_malloc(sizeof(char)*(uprv_strlen(other.fullName)+1));
-        if (fullName == NULL) {
-            return *this;
-        }
+    uprv_strcpy(language, other.language);
+    uprv_strcpy(script, other.script);
+    uprv_strcpy(country, other.country);
+
+    variantBegin = other.variantBegin;
+    fIsBogus = other.fIsBogus;
+
+    return *this;
+}
+
+Locale& Locale::operator=(Locale&& other) U_NOEXCEPT {
+    if (baseName != fullName) uprv_free(baseName);
+    if (fullName != fullNameBuffer) uprv_free(fullName);
+
+    if (other.fullName == other.fullNameBuffer) {
+        uprv_strcpy(fullNameBuffer, other.fullNameBuffer);
+        fullName = fullNameBuffer;
+    } else {
+        fullName = other.fullName;
     }
-    /* Copy the full name */
-    uprv_strcpy(fullName, other.fullName);
 
-    /* Copy the baseName if it differs from fullName. */
     if (other.baseName == other.fullName) {
         baseName = fullName;
     } else {
-        if (other.baseName) {
-            baseName = uprv_strdup(other.baseName);
-        }
+        baseName = other.baseName;
     }
 
-    /* Copy the language and country fields */
     uprv_strcpy(language, other.language);
     uprv_strcpy(script, other.script);
     uprv_strcpy(country, other.country);
 
-    /* The variantBegin is an offset, just copy it */
     variantBegin = other.variantBegin;
     fIsBogus = other.fIsBogus;
+
+    other.baseName = other.fullName = other.fullNameBuffer;
+
     return *this;
 }
 
@@ -545,7 +571,7 @@ Locale& Locale::init(const char* localeID, UBool canonicalize)
         /* after uloc_getName/canonicalize() we know that only '_' are separators */
         separator = field[0] = fullName;
         fieldIdx = 1;
-        while ((separator = uprv_strchr(field[fieldIdx-1], SEP_CHAR)) && fieldIdx < UPRV_LENGTHOF(field)-1) {
+        while ((separator = uprv_strchr(field[fieldIdx-1], SEP_CHAR)) != 0 && fieldIdx < UPRV_LENGTHOF(field)-1) {
             field[fieldIdx] = separator + 1;
             fieldLen[fieldIdx-1] = (int32_t)(separator - field[fieldIdx-1]);
             fieldIdx++;
@@ -652,7 +678,7 @@ Locale::initBaseName(UErrorCode &status) {
 int32_t
 Locale::hashCode() const
 {
-    return ustr_hashCharsN(fullName, uprv_strlen(fullName));
+    return ustr_hashCharsN(fullName, static_cast<int32_t>(uprv_strlen(fullName)));
 }
 
 void
@@ -704,6 +730,276 @@ Locale::setDefault( const   Locale&     newLocale,
     locale_set_default_internal(localeID, status);
 }
 
+void
+Locale::addLikelySubtags(UErrorCode& status) {
+    if (U_FAILURE(status)) {
+        return;
+    }
+
+    // The maximized locale ID string is often longer, but there is no good
+    // heuristic to estimate just how much longer. Leave that to CharString.
+    CharString maximizedLocaleID;
+    int32_t maximizedLocaleIDCapacity = static_cast<int32_t>(uprv_strlen(fullName));
+
+    char* buffer;
+    int32_t reslen;
+
+    for (;;) {
+        buffer = maximizedLocaleID.getAppendBuffer(
+                /*minCapacity=*/maximizedLocaleIDCapacity,
+                /*desiredCapacityHint=*/maximizedLocaleIDCapacity,
+                maximizedLocaleIDCapacity,
+                status);
+
+        if (U_FAILURE(status)) {
+            return;
+        }
+
+        reslen = uloc_addLikelySubtags(
+                fullName,
+                buffer,
+                maximizedLocaleIDCapacity,
+                &status);
+
+        if (status != U_BUFFER_OVERFLOW_ERROR) {
+            break;
+        }
+
+        maximizedLocaleIDCapacity = reslen;
+        status = U_ZERO_ERROR;
+    }
+
+    if (U_FAILURE(status)) {
+        return;
+    }
+
+    maximizedLocaleID.append(buffer, reslen, status);
+    if (status == U_STRING_NOT_TERMINATED_WARNING) {
+        status = U_ZERO_ERROR;  // Terminators provided by CharString.
+    }
+
+    if (U_FAILURE(status)) {
+        return;
+    }
+
+    init(maximizedLocaleID.data(), /*canonicalize=*/FALSE);
+    if (isBogus()) {
+        status = U_ILLEGAL_ARGUMENT_ERROR;
+    }
+}
+
+void
+Locale::minimizeSubtags(UErrorCode& status) {
+    if (U_FAILURE(status)) {
+        return;
+    }
+
+    // Except for a few edge cases (like the empty string, that is minimized to
+    // "en__POSIX"), minimized locale ID strings will be either the same length
+    // or shorter than their input.
+    CharString minimizedLocaleID;
+    int32_t minimizedLocaleIDCapacity = static_cast<int32_t>(uprv_strlen(fullName));
+
+    char* buffer;
+    int32_t reslen;
+
+    for (;;) {
+        buffer = minimizedLocaleID.getAppendBuffer(
+                /*minCapacity=*/minimizedLocaleIDCapacity,
+                /*desiredCapacityHint=*/minimizedLocaleIDCapacity,
+                minimizedLocaleIDCapacity,
+                status);
+
+        if (U_FAILURE(status)) {
+            return;
+        }
+
+        reslen = uloc_minimizeSubtags(
+                fullName,
+                buffer,
+                minimizedLocaleIDCapacity,
+                &status);
+
+        if (status != U_BUFFER_OVERFLOW_ERROR) {
+            break;
+        }
+
+        // Because of the internal minimal buffer size of CharString, I can't
+        // think of any input data for which this could possibly ever happen.
+        // Maybe it would be better replaced with an assertion instead?
+        minimizedLocaleIDCapacity = reslen;
+        status = U_ZERO_ERROR;
+    }
+
+    if (U_FAILURE(status)) {
+        return;
+    }
+
+    minimizedLocaleID.append(buffer, reslen, status);
+    if (status == U_STRING_NOT_TERMINATED_WARNING) {
+        status = U_ZERO_ERROR;  // Terminators provided by CharString.
+    }
+
+    if (U_FAILURE(status)) {
+        return;
+    }
+
+    init(minimizedLocaleID.data(), /*canonicalize=*/FALSE);
+    if (isBogus()) {
+        status = U_ILLEGAL_ARGUMENT_ERROR;
+    }
+}
+
+Locale U_EXPORT2
+Locale::forLanguageTag(StringPiece tag, UErrorCode& status)
+{
+    Locale result(Locale::eBOGUS);
+
+    if (U_FAILURE(status)) {
+        return result;
+    }
+
+    // If a BCP-47 language tag is passed as the language parameter to the
+    // normal Locale constructor, it will actually fall back to invoking
+    // uloc_forLanguageTag() to parse it if it somehow is able to detect that
+    // the string actually is BCP-47. This works well for things like strings
+    // using BCP-47 extensions, but it does not at all work for things like
+    // BCP-47 grandfathered tags (eg. "en-GB-oed") which are possible to also
+    // interpret as ICU locale IDs and because of that won't trigger the BCP-47
+    // parsing. Therefore the code here explicitly calls uloc_forLanguageTag()
+    // and then Locale::init(), instead of just calling the normal constructor.
+
+    // All simple language tags will have the exact same length as ICU locale
+    // ID strings as they have as BCP-47 strings (like "en_US" for "en-US").
+    CharString localeID;
+    int32_t resultCapacity = tag.size();
+
+    char* buffer;
+    int32_t parsedLength, reslen;
+
+    for (;;) {
+        buffer = localeID.getAppendBuffer(
+                /*minCapacity=*/resultCapacity,
+                /*desiredCapacityHint=*/resultCapacity,
+                resultCapacity,
+                status);
+
+        if (U_FAILURE(status)) {
+            return result;
+        }
+
+        reslen = ulocimp_forLanguageTag(
+                tag.data(),
+                tag.length(),
+                buffer,
+                resultCapacity,
+                &parsedLength,
+                &status);
+
+        if (status != U_BUFFER_OVERFLOW_ERROR) {
+            break;
+        }
+
+        // For all BCP-47 language tags that use extensions, the corresponding
+        // ICU locale ID will be longer but uloc_forLanguageTag() does compute
+        // the exact length needed so this memory reallocation will be done at
+        // most once.
+        resultCapacity = reslen;
+        status = U_ZERO_ERROR;
+    }
+
+    if (U_FAILURE(status)) {
+        return result;
+    }
+
+    if (parsedLength != tag.size()) {
+        status = U_ILLEGAL_ARGUMENT_ERROR;
+        return result;
+    }
+
+    localeID.append(buffer, reslen, status);
+    if (status == U_STRING_NOT_TERMINATED_WARNING) {
+        status = U_ZERO_ERROR;  // Terminators provided by CharString.
+    }
+
+    if (U_FAILURE(status)) {
+        return result;
+    }
+
+    result.init(localeID.data(), /*canonicalize=*/FALSE);
+    if (result.isBogus()) {
+        status = U_ILLEGAL_ARGUMENT_ERROR;
+    }
+    return result;
+}
+
+void
+Locale::toLanguageTag(ByteSink& sink, UErrorCode& status) const
+{
+    if (U_FAILURE(status)) {
+        return;
+    }
+
+    if (fIsBogus) {
+        status = U_ILLEGAL_ARGUMENT_ERROR;
+        return;
+    }
+
+    // All simple language tags will have the exact same length as BCP-47
+    // strings as they have as ICU locale IDs (like "en-US" for "en_US").
+    LocalMemory<char> scratch;
+    int32_t scratch_capacity = static_cast<int32_t>(uprv_strlen(fullName));
+
+    if (scratch_capacity == 0) {
+        scratch_capacity = 3;  // "und"
+    }
+
+    char* buffer;
+    int32_t result_capacity, reslen;
+
+    for (;;) {
+        if (scratch.allocateInsteadAndReset(scratch_capacity) == nullptr) {
+            status = U_MEMORY_ALLOCATION_ERROR;
+            return;
+        }
+
+        buffer = sink.GetAppendBuffer(
+                /*min_capacity=*/scratch_capacity,
+                /*desired_capacity_hint=*/scratch_capacity,
+                scratch.getAlias(),
+                scratch_capacity,
+                &result_capacity);
+
+        reslen = uloc_toLanguageTag(
+                fullName,
+                buffer,
+                result_capacity,
+                /*strict=*/FALSE,
+                &status);
+
+        if (status != U_BUFFER_OVERFLOW_ERROR) {
+            break;
+        }
+
+        // For some very few edge cases a language tag will be longer as a
+        // BCP-47 string than it is as an ICU locale ID. Most notoriously "C"
+        // expands to the BCP-47 tag "en-US-u-va-posix", 16 times longer, and
+        // it'll take several calls to uloc_toLanguageTag() to figure that out.
+        // https://unicode-org.atlassian.net/browse/ICU-20132
+        scratch_capacity = reslen;
+        status = U_ZERO_ERROR;
+    }
+
+    if (U_FAILURE(status)) {
+        return;
+    }
+
+    sink.Append(buffer, reslen);
+    if (status == U_STRING_NOT_TERMINATED_WARNING) {
+        status = U_ZERO_ERROR;  // Terminators not used.
+    }
+}
+
 Locale U_EXPORT2
 Locale::createFromName (const char *name)
 {
@@ -1010,20 +1306,84 @@ KeywordEnumeration::~KeywordEnumeration() {
     uprv_free(keywords);
 }
 
+// A wrapper around KeywordEnumeration that calls uloc_toUnicodeLocaleKey() in
+// the next() method for each keyword before returning it.
+class UnicodeKeywordEnumeration : public KeywordEnumeration {
+public:
+    using KeywordEnumeration::KeywordEnumeration;
+    virtual ~UnicodeKeywordEnumeration();
+
+    virtual const char* next(int32_t* resultLength, UErrorCode& status) {
+        const char* legacy_key = KeywordEnumeration::next(nullptr, status);
+        if (U_SUCCESS(status) && legacy_key != nullptr) {
+            const char* key = uloc_toUnicodeLocaleKey(legacy_key);
+            if (key == nullptr) {
+                status = U_ILLEGAL_ARGUMENT_ERROR;
+            } else {
+                if (resultLength != nullptr) {
+                    *resultLength = static_cast<int32_t>(uprv_strlen(key));
+                }
+                return key;
+            }
+        }
+        if (resultLength != nullptr) *resultLength = 0;
+        return nullptr;
+    }
+};
+
+// Out-of-line virtual destructor to serve as the "key function".
+UnicodeKeywordEnumeration::~UnicodeKeywordEnumeration() = default;
+
 StringEnumeration *
 Locale::createKeywords(UErrorCode &status) const
 {
     char keywords[256];
-    int32_t keywordCapacity = 256;
+    int32_t keywordCapacity = sizeof keywords;
     StringEnumeration *result = NULL;
 
+    if (U_FAILURE(status)) {
+        return result;
+    }
+
     const char* variantStart = uprv_strchr(fullName, '@');
     const char* assignment = uprv_strchr(fullName, '=');
     if(variantStart) {
         if(assignment > variantStart) {
             int32_t keyLen = locale_getKeywords(variantStart+1, '@', keywords, keywordCapacity, NULL, 0, NULL, FALSE, &status);
-            if(keyLen) {
+            if(U_SUCCESS(status) && keyLen) {
                 result = new KeywordEnumeration(keywords, keyLen, 0, status);
+                if (!result) {
+                    status = U_MEMORY_ALLOCATION_ERROR;
+                }
+            }
+        } else {
+            status = U_INVALID_FORMAT_ERROR;
+        }
+    }
+    return result;
+}
+
+StringEnumeration *
+Locale::createUnicodeKeywords(UErrorCode &status) const
+{
+    char keywords[256];
+    int32_t keywordCapacity = sizeof keywords;
+    StringEnumeration *result = NULL;
+
+    if (U_FAILURE(status)) {
+        return result;
+    }
+
+    const char* variantStart = uprv_strchr(fullName, '@');
+    const char* assignment = uprv_strchr(fullName, '=');
+    if(variantStart) {
+        if(assignment > variantStart) {
+            int32_t keyLen = locale_getKeywords(variantStart+1, '@', keywords, keywordCapacity, NULL, 0, NULL, FALSE, &status);
+            if(U_SUCCESS(status) && keyLen) {
+                result = new UnicodeKeywordEnumeration(keywords, keyLen, 0, status);
+                if (!result) {
+                    status = U_MEMORY_ALLOCATION_ERROR;
+                }
             }
         } else {
             status = U_INVALID_FORMAT_ERROR;
@@ -1039,6 +1399,105 @@ Locale::getKeywordValue(const char* keywordName, char *buffer, int32_t bufLen, U
 }
 
 void
+Locale::getKeywordValue(StringPiece keywordName, ByteSink& sink, UErrorCode& status) const {
+    if (U_FAILURE(status)) {
+        return;
+    }
+
+    if (fIsBogus) {
+        status = U_ILLEGAL_ARGUMENT_ERROR;
+        return;
+    }
+
+    // TODO: Remove the need for a const char* to a NUL terminated buffer.
+    const CharString keywordName_nul(keywordName, status);
+    if (U_FAILURE(status)) {
+        return;
+    }
+
+    LocalMemory<char> scratch;
+    int32_t scratch_capacity = 16;  // Arbitrarily chosen default size.
+
+    char* buffer;
+    int32_t result_capacity, reslen;
+
+    for (;;) {
+        if (scratch.allocateInsteadAndReset(scratch_capacity) == nullptr) {
+            status = U_MEMORY_ALLOCATION_ERROR;
+            return;
+        }
+
+        buffer = sink.GetAppendBuffer(
+                /*min_capacity=*/scratch_capacity,
+                /*desired_capacity_hint=*/scratch_capacity,
+                scratch.getAlias(),
+                scratch_capacity,
+                &result_capacity);
+
+        reslen = uloc_getKeywordValue(
+                fullName,
+                keywordName_nul.data(),
+                buffer,
+                result_capacity,
+                &status);
+
+        if (status != U_BUFFER_OVERFLOW_ERROR) {
+            break;
+        }
+
+        scratch_capacity = reslen;
+        status = U_ZERO_ERROR;
+    }
+
+    if (U_FAILURE(status)) {
+        return;
+    }
+
+    sink.Append(buffer, reslen);
+    if (status == U_STRING_NOT_TERMINATED_WARNING) {
+        status = U_ZERO_ERROR;  // Terminators not used.
+    }
+}
+
+void
+Locale::getUnicodeKeywordValue(StringPiece keywordName,
+                               ByteSink& sink,
+                               UErrorCode& status) const {
+    // TODO: Remove the need for a const char* to a NUL terminated buffer.
+    const CharString keywordName_nul(keywordName, status);
+    if (U_FAILURE(status)) {
+        return;
+    }
+
+    const char* legacy_key = uloc_toLegacyKey(keywordName_nul.data());
+
+    if (legacy_key == nullptr) {
+        status = U_ILLEGAL_ARGUMENT_ERROR;
+        return;
+    }
+
+    CharString legacy_value;
+    {
+        CharStringByteSink sink(&legacy_value);
+        getKeywordValue(legacy_key, sink, status);
+    }
+
+    if (U_FAILURE(status)) {
+        return;
+    }
+
+    const char* unicode_value = uloc_toUnicodeLocaleType(
+            keywordName_nul.data(), legacy_value.data());
+
+    if (unicode_value == nullptr) {
+        status = U_ILLEGAL_ARGUMENT_ERROR;
+        return;
+    }
+
+    sink.Append(unicode_value, static_cast<int32_t>(uprv_strlen(unicode_value)));
+}
+
+void
 Locale::setKeywordValue(const char* keywordName, const char* keywordValue, UErrorCode &status)
 {
     uloc_setKeywordValue(keywordName, keywordValue, fullName, ULOC_FULLNAME_CAPACITY, &status);
@@ -1048,6 +1507,46 @@ Locale::setKeywordValue(const char* keywordName, const char* keywordValue, UErro
     }
 }
 
+void
+Locale::setKeywordValue(StringPiece keywordName,
+                        StringPiece keywordValue,
+                        UErrorCode& status) {
+    // TODO: Remove the need for a const char* to a NUL terminated buffer.
+    const CharString keywordName_nul(keywordName, status);
+    const CharString keywordValue_nul(keywordValue, status);
+    setKeywordValue(keywordName_nul.data(), keywordValue_nul.data(), status);
+}
+
+void
+Locale::setUnicodeKeywordValue(StringPiece keywordName,
+                               StringPiece keywordValue,
+                               UErrorCode& status) {
+    // TODO: Remove the need for a const char* to a NUL terminated buffer.
+    const CharString keywordName_nul(keywordName, status);
+    const CharString keywordValue_nul(keywordValue, status);
+
+    if (U_FAILURE(status)) {
+        return;
+    }
+
+    const char* legacy_key = uloc_toLegacyKey(keywordName_nul.data());
+
+    if (legacy_key == nullptr) {
+        status = U_ILLEGAL_ARGUMENT_ERROR;
+        return;
+    }
+
+    const char* legacy_value =
+        uloc_toLegacyType(keywordName_nul.data(), keywordValue_nul.data());
+
+    if (legacy_value == nullptr) {
+        status = U_ILLEGAL_ARGUMENT_ERROR;
+        return;
+    }
+
+    setKeywordValue(legacy_key, legacy_value, status);
+}
+
 const char *
 Locale::getBaseName() const {
     return baseName;
index bb45e7d..47f5e08 100644 (file)
@@ -34,9 +34,9 @@ U_NAMESPACE_BEGIN
 // private mutex where possible.
 
 // For example:
-// 
-// UMutex myMutex;
-// 
+//
+// UMutex myMutex = U_MUTEX_INITIALIZER;
+//
 // void Function(int arg1, int arg2)
 // {
 //    static Object* foo;     // Shared read-write object
index c8bf440..82a6809 100644 (file)
 
 #ifdef INCLUDED_FROM_NORMALIZER2_CPP
 
-static const UVersionInfo norm2_nfc_data_formatVersion={3,0,0,0};
+static const UVersionInfo norm2_nfc_data_formatVersion={4,0,0,0};
 static const UVersionInfo norm2_nfc_data_dataVersion={0xb,0,0,0};
 
 static const int32_t norm2_nfc_data_indexes[Normalizer2Impl::IX_COUNT]={
-0x50,0x4e50,0x8aa8,0x8ba8,0x8ba8,0x8ba8,0x8ba8,0x8ba8,0xc0,0x300,0xadc,0x29d0,0x3c56,0xfc00,0x1282,0x3b8c,
+0x50,0x4ab0,0x8708,0x8808,0x8808,0x8808,0x8808,0x8808,0xc0,0x300,0xadc,0x29d0,0x3c56,0xfc00,0x1282,0x3b8c,
 0x3c24,0x3c56,0x300,0
 };
 
-static const uint16_t norm2_nfc_data_trieIndex[9976]={
-0x2aa,0x2b2,0x2ba,0x2c2,0x2d0,0x2d8,0x2e0,0x2e8,0x2f0,0x2f8,0x300,0x308,0x310,0x318,0x31e,0x326,
-0x32e,0x336,0x2c9,0x2d1,0x33b,0x343,0x2c9,0x2d1,0x34b,0x353,0x35b,0x363,0x36b,0x373,0x37b,0x383,
-0x38b,0x393,0x39b,0x3a3,0x3ab,0x3b3,0x3bb,0x3c3,0x2c9,0x2d1,0x2c9,0x2d1,0x3ca,0x3d2,0x3da,0x3e2,
-0x3e6,0x3ee,0x3f4,0x3fc,0x2c9,0x2d1,0x404,0x40c,0x410,0x418,0x420,0x428,0x2c9,0x2d1,0x426,0x42e,
-0x436,0x43d,0x441,0x2c9,0x2c9,0x2c9,0x448,0x450,0x2c9,0x458,0x460,0x2c9,0x2c9,0x468,0x470,0x478,
-0x2c9,0x480,0x488,0x2c9,0x2c9,0x490,0x498,0x2c9,0x2c9,0x468,0x49f,0x2c9,0x4a7,0x4ad,0x4b5,0x2c9,
-0x2c9,0x2c9,0x4bc,0x2c9,0x2c9,0x4c2,0x4ca,0x2c9,0x2c9,0x4d0,0x4d8,0x2c9,0x2c9,0x2c9,0x4de,0x2c9,
-0x2c9,0x4e6,0x4ed,0x2c9,0x2c9,0x4f0,0x4f7,0x2c9,0x4fa,0x501,0x509,0x511,0x519,0x521,0x528,0x2c9,
-0x2c9,0x52f,0x2c9,0x2c9,0x536,0x2c9,0x2c9,0x2c9,0x96d,0x2c9,0x2c9,0x975,0x2c9,0x97b,0x983,0x2c9,
-0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x53a,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,
-0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,
-0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x542,0x542,0x2c9,0x2c9,0x2c9,0x2c9,0x548,0x2c9,
-0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x550,0x2c9,0x2c9,0x2c9,0x553,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,
-0x55a,0x2c9,0x2c9,0x562,0x2c9,0x56a,0x2c9,0x2c9,0x572,0x577,0x57f,0x585,0x2c9,0x58b,0x2c9,0x592,
-0x2c9,0x597,0x2c9,0x2c9,0x2c9,0x2c9,0x59d,0x5a5,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x5ad,0x5b2,
-0x5ba,0x5c2,0x5ca,0x5d2,0x5da,0x5e2,0x5ea,0x5f2,0x5fa,0x602,0x60a,0x612,0x61a,0x622,0x62a,0x632,
-0x63a,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x63e,0x646,0x2c9,0x64d,0x2c9,0x2c9,0x651,0x658,0x65d,0x2c9,
-0x665,0x66d,0x675,0x67d,0x685,0x68d,0x2c9,0x695,0x2c9,0x69b,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,
-0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,
-0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,
-0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,
-0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x69e,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,
-0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x6a6,0x2c9,0x2c9,0x2c9,0x6ab,0x2c9,0x2c9,0x2c9,0x6b3,
-0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,
-0x2c9,0x6bb,0x6c2,0x6ca,0x6d2,0x6da,0x6e2,0x6ea,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,
-0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,
-0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,
-0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,
-0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,
-0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,
-0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,
-0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,
-0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,
-0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,
-0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,
-0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,
-0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,
-0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,
-0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,
-0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,
-0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,
-0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,
-0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,
-0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,
-0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,
-0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,
-0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,
-0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,
-0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,
-0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,
-0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,
-0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,
-0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,
-0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,
-0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,
-0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,
-0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,
-0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,
-0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,
-0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,
-0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,
-0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,
-0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,
-0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,
-0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,
-0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,
-0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,
-0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,
-0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,
-0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,
-0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,
-0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,
-0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,
-0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,
-0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,
-0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,
-0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,
-0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,
-0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,
-0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,
-0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,
-0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,
-0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,
-0x2c9,0x2c9,0x2c9,0x6f2,0x6fa,0x2c9,0x2c9,0x702,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,
-0x709,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x710,0x718,0x2c9,0x71e,0x722,0x2c9,0x2c9,0x598,0x72a,0x2c9,
-0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x72e,0x736,0x739,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x498,
-0x98b,0x98c,0x98d,0x98e,0x98f,0x990,0x99f,0x98b,0x98c,0x98d,0x98e,0x98f,0x990,0x99f,0x98b,0x98c,
-0x98d,0x98e,0x98f,0x990,0x99f,0x98b,0x98c,0x98d,0x98e,0x98f,0x990,0x99f,0x98b,0x98c,0x98d,0x98e,
-0x98f,0x990,0x99f,0x98b,0x98c,0x98d,0x98e,0x98f,0x990,0x99f,0x98b,0x98c,0x98d,0x98e,0x98f,0x990,
-0x99f,0x98b,0x98c,0x98d,0x98e,0x98f,0x990,0x99f,0x98b,0x98c,0x98d,0x98e,0x98f,0x990,0x99f,0x98b,
-0x98c,0x98d,0x98e,0x98f,0x990,0x99f,0x98b,0x98c,0x98d,0x98e,0x98f,0x990,0x99f,0x98b,0x98c,0x98d,
-0x98e,0x98f,0x990,0x99f,0x98b,0x98c,0x98d,0x98e,0x98f,0x990,0x99f,0x98b,0x98c,0x98d,0x98e,0x98f,
-0x990,0x99f,0x98b,0x98c,0x98d,0x98e,0x98f,0x990,0x99f,0x98b,0x98c,0x98d,0x98e,0x98f,0x990,0x99f,
-0x98b,0x98c,0x98d,0x98e,0x98f,0x990,0x99f,0x98b,0x98c,0x98d,0x98e,0x98f,0x990,0x99f,0x98b,0x98c,
-0x98d,0x98e,0x98f,0x990,0x99f,0x98b,0x98c,0x98d,0x98e,0x98f,0x990,0x99f,0x98b,0x98c,0x98d,0x98e,
-0x98f,0x990,0x99f,0x98b,0x98c,0x98d,0x98e,0x98f,0x990,0x99f,0x98b,0x98c,0x98d,0x98e,0x98f,0x990,
-0x99f,0x98b,0x98c,0x98d,0x98e,0x98f,0x990,0x99f,0x98b,0x98c,0x98d,0x98e,0x98f,0x990,0x99f,0x98b,
-0x98c,0x98d,0x98e,0x98f,0x990,0x99f,0x98b,0x98c,0x98d,0x98e,0x98f,0x990,0x99f,0x98b,0x98c,0x98d,
-0x98e,0x98f,0x990,0x99f,0x98b,0x98c,0x98d,0x98e,0x98f,0x990,0x99f,0x98b,0x98c,0x98d,0x98e,0x98f,
-0x990,0x99f,0x98b,0x98c,0x98d,0x98e,0x98f,0x990,0x99f,0x98b,0x98c,0x98d,0x98e,0x98f,0x990,0x99f,
-0x98b,0x98c,0x98d,0x98e,0x98f,0x990,0x99f,0x98b,0x98c,0x98d,0x98e,0x98f,0x990,0x99f,0x98b,0x98c,
-0x98d,0x98e,0x98f,0x990,0x99f,0x98b,0x98c,0x98d,0x98e,0x98f,0x990,0x99f,0x98b,0x98c,0x98d,0x98e,
-0x98f,0x990,0x99f,0x98b,0x98c,0x98d,0x98e,0x98f,0x990,0x99f,0x98b,0x98c,0x98d,0x98e,0x98f,0x990,
-0x99f,0x98b,0x98c,0x98d,0x98e,0x98f,0x990,0x99f,0x98b,0x98c,0x98d,0x98e,0x98f,0x990,0x99f,0x98b,
-0x98c,0x98d,0x98e,0x98f,0x990,0x99f,0x98b,0x98c,0x98d,0x98e,0x98f,0x990,0x99f,0x98b,0x98c,0x98d,
-0x98e,0x98f,0x990,0x99f,0x98b,0x98c,0x98d,0x98e,0x98f,0x990,0x99f,0x98b,0x98c,0x98d,0x98e,0x98f,
-0x990,0x99f,0x98b,0x98c,0x98d,0x98e,0x98f,0x990,0x99f,0x98b,0x98c,0x98d,0x98e,0x98f,0x990,0x99f,
-0x98b,0x98c,0x98d,0x98e,0x98f,0x990,0x99f,0x98b,0x98c,0x98d,0x98e,0x98f,0x990,0x997,0x2c9,0x2c9,
-0x9a7,0x9ae,0x2aa,0x9b5,0x2aa,0x2aa,0x2aa,0x2aa,0x2aa,0x2aa,0x2aa,0x2aa,0x2aa,0x2aa,0x2aa,0x2aa,
-0x2aa,0x2aa,0x2aa,0x2aa,0x2aa,0x2aa,0x2aa,0x2aa,0x2aa,0x2aa,0x2aa,0x2aa,0x2aa,0x2aa,0x2aa,0x2aa,
-0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,
-0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,
-0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,
-0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,
-0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,
-0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,
-0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,
-0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,
-0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,
-0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,
-0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,
-0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,
-0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,
-0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,
-0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x741,0x749,0x751,0x759,0x761,0x769,0x771,0x779,
-0x781,0x789,0x791,0x799,0x7a1,0x7a9,0x7b1,0x2c9,0x7b8,0x7c0,0x7c8,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,
-0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,
-0x2c9,0x7d0,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,
-0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,
-0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,
-0xb28,0xb28,0xb40,0xb80,0xbc0,0xc00,0xc40,0xc78,0xcb8,0xb24,0xcec,0xb24,0xd2c,0xd6c,0xdac,0xdec,
-0xe2c,0xe6c,0xeac,0xeec,0xb24,0xb24,0xf28,0xf68,0xf98,0xfd0,0xb24,0x1010,0x1040,0x1080,0xb24,0x1098,
-0x880,0x8b0,0x8ee,0x92d,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x95a,0x188,0x188,
-0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x976,0x188,0x188,0x9ac,0x188,0x9ec,0xa26,0x188,0x188,
-0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,
-0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0xa66,
-0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x7d4,
-0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x7dc,0x2c9,0x2c9,0x2c9,0x7df,0x2c9,0x2c9,0x2c9,0x2c9,
-0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,
-0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,
-0x7e6,0x7ea,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x7f2,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,
-0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x7f9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,
-0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x800,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,
-0x709,0x6ab,0x805,0x80d,0x2c9,0x2c9,0x815,0x81c,0x2c9,0x598,0x2c9,0x2c9,0x824,0x2c9,0x2c9,0x827,
-0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x82d,0x2c9,0x830,0x838,0x83f,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,
-0x847,0x2c9,0x2c9,0x84f,0x857,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x85c,0x864,0x2c9,0x2c9,0x6ab,
-0x2c9,0x2c9,0x2c9,0x867,0x2c9,0x2c9,0x2c9,0x86d,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x870,0x2c9,
-0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x542,0x86e,
-0x2c9,0x877,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x6ab,0x2c9,
-0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x87f,0x2c9,0x882,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,
-0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,
-0x2c9,0x888,0x2c9,0x88e,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,
-0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,
-0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x894,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,
-0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,
-0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x89c,0x8a4,0x8ac,0x8b2,0x8ba,0x2c9,0x2c9,0x2c9,0x8c2,0x2c9,
-0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,
-0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,
-0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x8ca,0x8d2,0x2c9,0x2c9,
-0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,
-0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,
-0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,
-0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x8d6,0x2c9,0x2c9,0x2c9,
-0x8dd,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,
-0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,
-0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,
-0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x8e5,0x8ed,0x8f5,0x8fd,0x905,0x90d,0x915,0x91d,0x925,0x92d,
-0x935,0x93d,0x945,0x94d,0x955,0x95d,0x965,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,
-0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,
-0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,
-0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2a9,0x2a9,1,1,1,1,1,1,1,1,
-1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
-1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
-1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
-1,1,1,1,4,8,0xc,1,1,0x10,0x50,0x5c,0x70,0x88,0xcc,0xd0,
-0xec,0x108,0x144,0x148,0x15c,0x174,0x180,0x1a4,0x1e4,1,0x1ec,0x20c,0x228,0x244,0x290,0x298,
-0x2b0,0x2b8,0x2dc,1,1,1,1,1,1,0x2f4,0x334,0x340,0x354,0x36c,0x3b0,0x3b4,
-0x3d0,0x3f0,0x428,0x430,0x444,0x45c,0x468,0x48c,0x4cc,1,0x4d4,0x4f4,0x510,0x530,0x57c,0x584,
-0x5a0,0x5a8,0x5d0,1,1,1,1,1,1,1,1,1,1,1,1,1,
-1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
-1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
-1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
-1,1,1,1,1,1,1,1,0x5e8,1,1,1,1,1,1,1,
-1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
-0x1284,0x128a,0xade,0x1290,0xaf4,0xafe,0x5f4,0xb08,0x1296,0x129c,0xb12,0x12a2,0x12a8,0x12ae,0x12b4,0xb28,
-1,0x12ba,0x12c0,0x12c6,0xb32,0xb48,0xb5a,1,0x5fc,0x12cc,0x12d2,0x12d8,0xb64,0x12de,1,1,
-0x12e4,0x12ea,0xb7a,0x12f0,0xb90,0xb9a,0x600,0xba4,0x12f6,0x12fc,0xbae,0x1302,0x1308,0x130e,0x1314,0xbc4,
-1,0x131a,0x1320,0x1326,0xbce,0xbe4,0xbf6,1,0x608,0x132c,0x1332,0x1338,0xc00,0x133e,1,0x1344,
-0x134a,0x1350,0xc16,0xc2c,0x1357,0x135d,0x1362,0x1368,0x136e,0x1374,0x137a,0x1380,0x1386,0x138c,0x1392,0x1398,
-1,1,0xc42,0xc50,0x139e,0x13a4,0x13aa,0x13b0,0x13b7,0x13bd,0x13c2,0x13c8,0x13ce,0x13d4,0x13da,0x13e0,
-0x13e6,0x13ec,0x13f3,0x13f9,0x13fe,0x1404,1,1,0x140a,0x1410,0x1416,0x141c,0x1422,0x1428,0x142f,0x1435,
-0x143a,1,1,1,0x1441,0x1447,0x144d,0x1453,1,0x1458,0x145e,0x1465,0x146b,0x1470,0x1476,1,
-1,1,1,0x147c,0x1482,0x1489,0x148f,0x1494,0x149a,1,1,1,0xc5e,0xc6c,0x14a0,0x14a6,
-0x14ac,0x14b2,1,1,0x14b8,0x14be,0x14c5,0x14cb,0x14d0,0x14d6,0xc7a,0xc84,0x14dc,0x14e2,0x14e9,0x14ef,
-0xc8e,0xc98,0x14f5,0x14fb,0x1500,0x1506,1,1,0xca2,0xcac,0xcb6,0xcc0,0x150c,0x1512,0x1518,0x151e,
-0x1524,0x152a,0x1531,0x1537,0x153c,0x1542,0x1548,0x154e,0x1554,0x155a,0x1560,0x1566,0x156c,0x1572,0x1578,0x60c,
-1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
-1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
-0xcca,0xce4,1,1,1,1,1,1,1,1,1,1,1,1,1,0xcfe,
-0xd18,1,1,1,1,1,1,0x610,1,1,1,1,1,1,1,1,
-1,1,1,1,1,0x157e,0x1584,0x158a,0x1590,0x1596,0x159c,0x15a2,0x15a8,0x15b0,0x15ba,0x15c4,
-0x15ce,0x15d8,0x15e2,0x15ec,0x15f6,1,0x1600,0x160a,0x1614,0x161e,0x1627,0x162d,1,1,0x1632,0x1638,
-0x163e,0x1644,0xd32,0xd3c,0x164d,0x1657,0x165f,0x1665,0x166b,1,1,1,0x1670,0x1676,1,1,
-0x167c,0x1682,0x168a,0x1694,0x169d,0x16a3,0x16a9,0x16af,0x16b4,0x16ba,0x16c0,0x16c6,0x16cc,0x16d2,0x16d8,0x16de,
-0x16e4,0x16ea,0x16f0,0x16f6,0x16fc,0x1702,0x1708,0x170e,0x1714,0x171a,0x1720,0x1726,0x172c,0x1732,0x1738,0x173e,
-0x1744,0x174a,0x1750,0x1756,1,1,0x175c,0x1762,1,1,1,1,1,1,0xd46,0xd50,
-0xd5a,0xd64,0x176a,0x1774,0x177e,0x1788,0xd6e,0xd78,0x1792,0x179c,0x17a4,0x17aa,1,1,1,1,
-1,1,1,1,1,1,1,1,1,1,1,1,1,1,0x614,1,
-1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
-1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
-1,1,1,1,1,1,1,1,1,1,1,1,0xfdcc,0xfdcc,0xfdcc,0xfdcc,
-0xfdcc,0xffcc,0xfdcc,0xfdcc,0xfdcc,0xfdcc,0xfdcc,0xfdcc,0xfdcc,0xffcc,0xffcc,0xfdcc,0xffcc,0xfdcc,0xffcc,0xfdcc,
-0xfdcc,0xffd0,0xffb8,0xffb8,0xffb8,0xffb8,0xffd0,0xfdb0,0xffb8,0xffb8,0xffb8,0xffb8,0xffb8,0xff94,0xff94,0xfdb8,
-0xfdb8,0xfdb8,0xfdb8,0xfd94,0xfd94,0xffb8,0xffb8,0xffb8,0xffb8,0xfdb8,0xfdb8,0xffb8,0xfdb8,0xfdb8,0xffb8,0xffb8,
-0xfe02,0xfe02,0xfe02,0xfe02,0xfc02,0xffb8,0xffb8,0xffb8,0xffb8,0xffcc,0xffcc,0xffcc,0x3c26,0x3c2c,0xfdcc,0x3c32,
-0x3c38,0xfde0,0xffcc,0xffb8,0xffb8,0xffb8,0xffcc,0xffcc,0xffcc,0xffb8,0xffb8,1,0xffcc,0xffcc,0xffcc,0xffb8,
-0xffb8,0xffb8,0xffb8,0xffcc,0xffd0,0xffb8,0xffb8,0xffcc,0xffd2,0xffd4,0xffd4,0xffd2,0xffd4,0xffd4,0xffd2,0xffcc,
-0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,1,1,1,1,
-0x29d1,1,1,1,1,1,1,1,1,1,0x29d5,1,1,1,1,1,
-1,0x17b1,0x17b7,0x29d9,0x17bd,0x17c3,0x17c9,1,0x17cf,1,0x17d5,0x17db,0x17e3,0x618,1,1,
-1,0x634,1,0x644,1,0x658,1,1,1,1,1,0x674,1,0x684,1,1,
-1,0x688,1,1,1,0x6a0,0x17eb,0x17f1,0xd82,0x17f7,0xd8c,0x17fd,0x1805,0x6b4,1,1,
-1,0x6d4,1,0x6e4,1,0x6fc,1,1,1,1,1,0x71c,1,0x72c,1,1,
-1,0x734,1,1,1,0x754,0xd96,0xda8,0x180d,0x1813,0xdba,1,1,1,0x76c,0x1819,
-0x181f,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
-1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
-1,1,1,1,1,1,1,1,1,1,1,1,0x1825,0x182b,1,0x1831,
-1,1,0x774,0x1837,1,1,1,1,0x183d,0x1843,0x1849,1,0x778,1,1,0x780,
-1,0x784,0x790,0x798,0x79c,0x184f,0x7ac,1,1,1,0x7b0,1,1,1,1,0x7b4,
-1,1,1,0x7c4,1,1,1,0x7c8,1,0x7cc,1,1,0x7d0,1,1,0x7d8,
-1,0x7dc,0x7e8,0x7f0,0x7f4,0x1855,0x804,1,1,1,0x808,1,1,1,1,0x80c,
-1,1,1,0x81c,1,1,1,0x820,1,0x824,1,1,0x185b,0x1861,1,0x1867,
-1,1,0x828,0x186d,1,1,1,1,0x1873,0x1879,0x187f,1,1,1,1,1,
-1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
-0x82c,0x830,0x1885,0x188b,1,1,1,1,1,1,1,1,1,1,1,0xffcc,
-0xffcc,0xffcc,0xffcc,0xffcc,1,1,1,1,1,1,1,1,1,1,1,1,
-1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
-1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
-1,1,1,1,1,1,1,1,1,1,1,1,1,0x1891,0x1897,1,
-1,1,1,1,1,1,1,1,1,1,1,1,0x189d,0x18a3,0x18a9,0x18af,
-1,1,0x18b5,0x18bb,0x834,0x838,0x18c1,0x18c7,0x18cd,0x18d3,0x18d9,0x18df,1,1,0x18e5,0x18eb,
-0x18f1,0x18f7,0x18fd,0x1903,0x83c,0x840,0x1909,0x190f,0x1915,0x191b,0x1921,0x1927,0x192d,0x1933,0x1939,0x193f,
-0x1945,0x194b,1,1,0x1951,0x1957,1,1,1,1,1,1,1,1,1,1,
+static const uint16_t norm2_nfc_data_trieIndex[1690]={
+0,0x40,0x7b,0xbb,0xfb,0x13a,0x17a,0x1b2,0x1f2,0x226,0x254,0x226,0x294,0x2d4,0x313,0x353,
+0x393,0x3d2,0x40f,0x44e,0x226,0x226,0x488,0x4c8,0x4f8,0x530,0x226,0x570,0x59f,0x5de,0x226,0x5f3,
+0x631,0x65f,0x226,0x68c,0x6cc,0x709,0x729,0x768,0x7a7,0x7e4,0x803,0x840,0x729,0x879,0x8a7,0x8e6,
+0x226,0x920,0x937,0x977,0x98e,0x9cd,0x226,0xa03,0xa23,0xa5e,0xa6a,0xaa4,0xacc,0xb09,0xb49,0xb83,
+0xb9e,0x226,0xbd9,0x226,0xc19,0xc38,0xc6e,0xcab,0x226,0x226,0x226,0x226,0x226,0xcce,0x226,0x226,
+0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0xcfa,0x226,0x226,0xd2f,
+0x226,0x226,0xd4d,0x226,0xd77,0x226,0x226,0x226,0xdb3,0xdd3,0xe13,0x226,0xe51,0xe91,0xec5,0xef1,
+0x808,0x226,0x226,0xf25,0x226,0x226,0x226,0xf65,0xfa5,0xfe5,0x1025,0x1065,0x10a5,0x10e5,0x1125,0x1165,
+0x11a5,0x226,0x226,0x11d5,0x1206,0x226,0x1236,0x1269,0x12a6,0x12e5,0x1325,0x135b,0x1389,0x226,0x226,0x226,
+0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,
+0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x13b4,0x226,0x226,0x226,0x226,
+0x226,0x226,0x226,0xcbc,0x226,0x13d1,0x226,0x1411,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,
+0x1451,0x148b,0x14c9,0x1509,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,
+0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,
+0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,
+0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,
+0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,
+0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,
+0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,
+0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,
+0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,
+0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,
+0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,
+0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,
+0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,
+0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,
+0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,
+0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,
+0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,
+0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,
+0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,
+0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,
+0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,
+0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,
+0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,
+0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,
+0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,
+0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,
+0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,
+0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,
+0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,
+0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x1548,0x1586,0x15a6,0x226,0x226,0x226,0x226,
+0x15e0,0x226,0x226,0x161c,0x164e,0x167c,0x80c,0x168f,0x226,0x226,0x169f,0x16df,0x226,0x226,0x226,0x13e3,
+0x171f,0x1727,0x172f,0x1737,0x1723,0x172b,0x1733,0x171f,0x1727,0x172f,0x1737,0x1723,0x172b,0x1733,0x171f,0x1727,
+0x172f,0x1737,0x1723,0x172b,0x1733,0x171f,0x1727,0x172f,0x1737,0x1723,0x172b,0x1733,0x171f,0x1727,0x172f,0x1737,
+0x1723,0x172b,0x1733,0x171f,0x1727,0x172f,0x1737,0x1723,0x172b,0x1733,0x171f,0x1727,0x172f,0x1737,0x1723,0x172b,
+0x1733,0x171f,0x1727,0x172f,0x1737,0x1723,0x172b,0x1733,0x171f,0x1727,0x172f,0x1737,0x1723,0x172b,0x1733,0x171f,
+0x1727,0x172f,0x1737,0x1723,0x172b,0x1733,0x171f,0x1727,0x172f,0x1737,0x1723,0x172b,0x1733,0x171f,0x1727,0x172f,
+0x1737,0x1723,0x172b,0x1733,0x171f,0x1727,0x172f,0x1737,0x1723,0x172b,0x1733,0x171f,0x1727,0x172f,0x1737,0x1723,
+0x172b,0x1733,0x171f,0x1727,0x172f,0x1737,0x1723,0x172b,0x1733,0x171f,0x1727,0x172f,0x1737,0x1723,0x172b,0x1733,
+0x171f,0x1727,0x172f,0x1737,0x1723,0x172b,0x1733,0x171f,0x1727,0x172f,0x1737,0x1723,0x172b,0x1733,0x171f,0x1727,
+0x172f,0x1737,0x1723,0x172b,0x1733,0x171f,0x1727,0x172f,0x1737,0x1723,0x172b,0x1733,0x171f,0x1727,0x172f,0x1737,
+0x1723,0x172b,0x1733,0x171f,0x1727,0x172f,0x1737,0x1723,0x172b,0x1733,0x171f,0x1727,0x172f,0x1737,0x1723,0x172b,
+0x1733,0x171f,0x1727,0x172f,0x1737,0x1723,0x172b,0x1733,0x171f,0x1727,0x172f,0x1737,0x1723,0x172b,0x176b,0x226,
+0x17ab,0x17e6,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,
+0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,
+0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,
+0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,
+0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,
+0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,
+0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,
+0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,
+0x226,0x226,0x226,0x226,0x1826,0x1866,0x18a6,0x18e6,0x1926,0x1966,0x19a6,0x19e6,0x1a09,0x1a49,0x226,0x226,
+0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x1a69,0x226,0x226,0x226,0x226,0x226,0x226,0x226,
+0x61f,0x62e,0x644,0x663,0x678,0x678,0x678,0x67c,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,
+0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,
+0x226,0x226,0x226,0x226,0x226,0x226,0x226,0xbd9,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,
+0x226,0x226,0x226,0x226,0x226,0x226,0x54f,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x40c,
+0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x1a9c,0x226,0x226,0x1aac,0x226,0x226,0x226,0x226,
+0x226,0x226,0x226,0x226,0x226,0x226,0xdc5,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,
+0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x1abc,0x226,0x226,0x226,0x226,0x226,0x226,
+0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x1ac6,0x54f,
+0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x7eb,0x226,0x226,0x9ba,0x226,0x1ad6,
+0x1ae3,0x1aef,0x226,0x226,0x226,0x226,0x414,0x226,0x1afa,0x1b0a,0x226,0x226,0x226,0x7e0,0x226,0x226,
+0x226,0x226,0x1b1a,0x226,0x226,0x226,0x1b25,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,
+0x226,0x1b2c,0x226,0x226,0x226,0x226,0x1b37,0x1b46,0x8f6,0x1b54,0x412,0x226,0x226,0x226,0x226,0x226,
+0x226,0x226,0x226,0x1b62,0x798,0x226,0x226,0x226,0x226,0x226,0x1b72,0x1b81,0x226,0x226,0x226,0x226,
+0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x8d6,0x1b89,0x1b99,0x226,0x226,0x226,0x9ba,
+0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x1ba3,0x226,0x226,0x226,0x226,0x226,0x226,0x7e6,0x226,
+0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x1ba0,0x226,0x226,0x226,
+0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,
+0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x7ed,0x7ea,0x226,0x226,0x226,0x226,0x7e8,
+0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,
+0x226,0x226,0x226,0x226,0x226,0x226,0x9ba,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,
+0x226,0x226,0x226,0x226,0x226,0x226,0x226,0xbd3,0x226,0x226,0x226,0x226,0x7ea,0x226,0x226,0x226,
+0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x1bb3,0x226,0x226,0x226,
+0xebe,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x1bb8,0x226,0x226,
+0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,
+0x226,0x226,0x226,0x226,0x1bc7,0x1bd7,0x1be5,0x1bf2,0x226,0x1bfe,0x1c0c,0x1c1c,0x226,0x226,0x226,0x226,
+0xce9,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,
+0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x1c2c,0x1c34,0x1c42,0x226,
+0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,
+0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x1c52,0x226,0x226,0x226,
+0x226,0x226,0x226,0x1c5e,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x1c6e,
+0x1c7e,0x1c8e,0x1c9e,0x1cae,0x1cbe,0x1cce,0x1cde,0x1cee,0x1cfe,0x1d0e,0x1d1e,0x1d2e,0x1d3e,0x1d4e,0x1d5e,0x1d6e,
+0x1d7e,0x1d8e,0x1d9e,0x1dae,0x1dbe,0x1dce,0x1dde,0x1dee,0x1dfe,0x1e0e,0x1e1e,0x1e2e,0x1e3e,0x1e4e,0x1e5e,0x1e6e,
+0x1e7e,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,
+0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x408,
+0x428,0xc4,0xc4,0xc4,0x448,0x457,0x46a,0x486,0x4a3,0x4bf,0x4dc,0x4f9,0x516,0x533,0xc4,0xc4,
+0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,
+0xc4,0xc4,0xc4,0x54d,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,
+0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,
+0xc4,0xc4,0x564,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0x56f,0x58c,0xc4,0xc4,0xc4,
+0xc4,0xc4,0xc4,0x5ac,0xc4,0xc4,0xc4,0x5bf,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,
+0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,
+0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0x5df,0x5ff
+};
+
+static const uint16_t norm2_nfc_data_trieData[7822]={
+1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,1,1,1,1,1,1,4,8,0xc,1,
+1,0x10,0x50,0x5c,0x70,0x88,0xcc,0xd0,0xec,0x108,0x144,0x148,0x15c,0x174,0x180,0x1a4,
+0x1e4,1,0x1ec,0x20c,0x228,0x244,0x290,0x298,0x2b0,0x2b8,0x2dc,1,1,1,1,1,
+1,0x2f4,0x334,0x340,0x354,0x36c,0x3b0,0x3b4,0x3d0,0x3f0,0x428,0x430,0x444,0x45c,0x468,0x48c,
+0x4cc,1,0x4d4,0x4f4,0x510,0x530,0x57c,0x584,0x5a0,0x5a8,0x5d0,1,1,1,1,1,
+1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
+1,1,1,0x5e8,1,1,1,1,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,1,1,1,1,1,0x1284,0x128a,0xade,0x1290,0xaf4,
+0xafe,0x5f4,0xb08,0x1296,0x129c,0xb12,0x12a2,0x12a8,0x12ae,0x12b4,0xb28,1,0x12ba,0x12c0,0x12c6,0xb32,
+0xb48,0xb5a,1,0x5fc,0x12cc,0x12d2,0x12d8,0xb64,0x12de,1,1,0x12e4,0x12ea,0xb7a,0x12f0,0xb90,
+0xb9a,0x600,0xba4,0x12f6,0x12fc,0xbae,0x1302,0x1308,0x130e,0x1314,0xbc4,1,0x131a,0x1320,0x1326,0xbce,
+0xbe4,0xbf6,1,0x608,0x132c,0x1332,0x1338,0xc00,0x133e,1,0x1344,0x134a,0x1350,0xc16,0xc2c,0x1357,
+0x135d,0x1362,0x1368,0x136e,0x1374,0x137a,0x1380,0x1386,0x138c,0x1392,0x1398,1,1,0xc42,0xc50,0x139e,
+0x13a4,0x13aa,0x13b0,0x13b7,0x13bd,0x13c2,0x13c8,0x13ce,0x13d4,0x13da,0x13e0,0x13e6,0x13ec,0x13f3,0x13f9,0x13fe,
+0x1404,1,1,0x140a,0x1410,0x1416,0x141c,0x1422,0x1428,0x142f,0x1435,0x143a,1,1,1,0x1441,
+0x1447,0x144d,0x1453,1,0x1458,0x145e,0x1465,0x146b,0x1470,0x1476,1,1,1,0x147c,0x1482,0x1489,
+0x148f,0x1494,0x149a,1,1,1,0xc5e,0xc6c,0x14a0,0x14a6,0x14ac,0x14b2,1,1,0x14b8,0x14be,
+0x14c5,0x14cb,0x14d0,0x14d6,0xc7a,0xc84,0x14dc,0x14e2,0x14e9,0x14ef,0xc8e,0xc98,0x14f5,0x14fb,0x1500,0x1506,
+1,1,0xca2,0xcac,0xcb6,0xcc0,0x150c,0x1512,0x1518,0x151e,0x1524,0x152a,0x1531,0x1537,0x153c,0x1542,
+0x1548,0x154e,0x1554,0x155a,0x1560,0x1566,0x156c,0x1572,0x1578,0x60c,1,1,1,1,1,1,
+1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,1,1,1,1,0xcca,0xce4,1,1,1,1,
+1,1,1,1,1,1,1,1,1,0xcfe,0xd18,1,1,1,1,1,
+1,0x610,1,1,1,1,1,1,1,1,1,1,1,1,1,0x157e,
+0x1584,0x158a,0x1590,0x1596,0x159c,0x15a2,0x15a8,0x15b0,0x15ba,0x15c4,0x15ce,0x15d8,0x15e2,0x15ec,0x15f6,1,
+0x1600,0x160a,0x1614,0x161e,0x1627,0x162d,1,1,0x1632,0x1638,0x163e,0x1644,0xd32,0xd3c,0x164d,0x1657,
+0x165f,0x1665,0x166b,1,1,1,0x1670,0x1676,1,1,0x167c,0x1682,0x168a,0x1694,0x169d,0x16a3,
+0x16a9,0x16af,0x16b4,0x16ba,0x16c0,0x16c6,0x16cc,0x16d2,0x16d8,0x16de,0x16e4,0x16ea,0x16f0,0x16f6,0x16fc,0x1702,
+0x1708,0x170e,0x1714,0x171a,0x1720,0x1726,0x172c,0x1732,0x1738,0x173e,0x1744,0x174a,0x1750,0x1756,1,1,
+0x175c,0x1762,1,1,1,1,1,1,0xd46,0xd50,0xd5a,0xd64,0x176a,0x1774,0x177e,0x1788,
+0xd6e,0xd78,0x1792,0x179c,0x17a4,0x17aa,1,1,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,0x614,1,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
+1,1,1,1,0xfdcc,0xfdcc,0xfdcc,0xfdcc,0xfdcc,0xffcc,0xfdcc,0xfdcc,0xfdcc,0xfdcc,0xfdcc,0xfdcc,
+0xfdcc,0xffcc,0xffcc,0xfdcc,0xffcc,0xfdcc,0xffcc,0xfdcc,0xfdcc,0xffd0,0xffb8,0xffb8,0xffb8,0xffb8,0xffd0,0xfdb0,
+0xffb8,0xffb8,0xffb8,0xffb8,0xffb8,0xff94,0xff94,0xfdb8,0xfdb8,0xfdb8,0xfdb8,0xfd94,0xfd94,0xffb8,0xffb8,0xffb8,
+0xffb8,0xfdb8,0xfdb8,0xffb8,0xfdb8,0xfdb8,0xffb8,0xffb8,0xfe02,0xfe02,0xfe02,0xfe02,0xfc02,0xffb8,0xffb8,0xffb8,
+0xffb8,0xffcc,0xffcc,0xffcc,0x3c26,0x3c2c,0xfdcc,0x3c32,0x3c38,0xfde0,0xffcc,0xffb8,0xffb8,0xffb8,0xffcc,0xffcc,
+0xffcc,0xffb8,0xffb8,1,0xffcc,0xffcc,0xffcc,0xffb8,0xffb8,0xffb8,0xffb8,0xffcc,0xffd0,0xffb8,0xffb8,0xffcc,
+0xffd2,0xffd4,0xffd4,0xffd2,0xffd4,0xffd4,0xffd2,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,
+0xffcc,0xffcc,0xffcc,0xffcc,1,1,1,1,0x29d1,1,1,1,1,1,1,1,
+1,1,0x29d5,1,1,1,1,1,0x17b1,0x17b7,0x29d9,0x17bd,0x17c3,0x17c9,1,0x17cf,
+1,0x17d5,0x17db,0x17e3,0x618,1,1,1,0x634,1,0x644,1,0x658,1,1,1,
+1,1,0x674,1,0x684,1,1,1,0x688,1,1,1,0x6a0,0x17eb,0x17f1,0xd82,
+0x17f7,0xd8c,0x17fd,0x1805,0x6b4,1,1,1,0x6d4,1,0x6e4,1,0x6fc,1,1,1,
+1,1,0x71c,1,0x72c,1,1,1,0x734,1,1,1,0x754,0xd96,0xda8,0x180d,
+0x1813,0xdba,1,1,1,0x76c,0x1819,0x181f,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
+1,1,1,0x1825,0x182b,1,0x1831,1,1,0x774,0x1837,1,1,1,1,0x183d,
+0x1843,0x1849,1,0x778,1,1,0x780,1,0x784,0x790,0x798,0x79c,0x184f,0x7ac,1,1,
+1,0x7b0,1,1,1,1,0x7b4,1,1,1,0x7c4,1,1,1,0x7c8,1,
+0x7cc,1,1,0x7d0,1,1,0x7d8,1,0x7dc,0x7e8,0x7f0,0x7f4,0x1855,0x804,1,1,
+1,0x808,1,1,1,0x80c,1,1,1,0x81c,1,1,1,0x820,1,0x824,
+1,1,0x185b,0x1861,1,0x1867,1,1,0x828,0x186d,1,1,1,1,0x1873,0x1879,
+0x187f,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,0x82c,0x830,0x1885,0x188b,1,1,1,1,1,1,
+1,1,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,1,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0x1891,
+0x1897,1,1,1,1,1,1,1,1,1,1,1,1,1,0x189d,0x18a3,
+0x18a9,0x18af,1,1,0x18b5,0x18bb,0x834,0x838,0x18c1,0x18c7,0x18cd,0x18d3,0x18d9,0x18df,1,1,
+0x18e5,0x18eb,0x18f1,0x18f7,0x18fd,0x1903,0x83c,0x840,0x1909,0x190f,0x1915,0x191b,0x1921,0x1927,0x192d,0x1933,
+0x1939,0x193f,0x1945,0x194b,1,1,0x1951,0x1957,1,1,1,1,1,1,1,1,
 1,1,1,1,1,1,1,1,1,0xffb8,0xffcc,0xffcc,0xffcc,0xffcc,0xffb8,0xffcc,
 0xffcc,0xffcc,0xffbc,0xffb8,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffb8,0xffb8,0xffb8,0xffb8,0xffb8,0xffb8,
 0xffcc,0xffcc,0xffb8,0xffcc,0xffcc,0xffbc,0xffc8,0xffcc,0xfe14,0xfe16,0xfe18,0xfe1a,0xfe1c,0xfe1e,0xfe20,0xfe22,
@@ -281,369 +220,415 @@ static const uint16_t norm2_nfc_data_trieIndex[9976]={
 1,1,0x85c,0x1987,1,0x860,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,1,1,0xffcc,
 0xffcc,0xffcc,0xffcc,0xffb8,0xffcc,1,1,0xffcc,0xffcc,1,0xffb8,0xffcc,0xffcc,0xffb8,1,1,
 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
-1,0xfe48,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
+0xfe48,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0xffcc,
+0xffb8,0xffcc,0xffcc,0xffb8,0xffcc,0xffcc,0xffb8,0xffb8,0xffb8,0xffcc,0xffb8,0xffb8,0xffcc,0xffb8,0xffcc,0xffcc,
+0xffb8,0xffcc,0xffb8,0xffcc,0xffb8,0xffcc,0xffb8,0xffcc,0xffcc,1,1,1,1,1,1,1,
 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
-0xffcc,0xffb8,0xffcc,0xffcc,0xffb8,0xffcc,0xffcc,0xffb8,0xffb8,0xffb8,0xffcc,0xffb8,0xffb8,0xffcc,0xffb8,0xffcc,
-0xffcc,0xffcc,0xffb8,0xffcc,0xffb8,0xffcc,0xffb8,0xffcc,0xffb8,0xffcc,0xffcc,1,1,1,1,1,
 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,1,1,1,1,1,1,1,1,0xffcc,0xffcc,
+0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffb8,0xffcc,1,1,1,1,1,1,1,1,1,
+0xffb8,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,1,0xffcc,0xffcc,0xffcc,0xffcc,1,0xffcc,0xffcc,0xffcc,0xffcc,
+0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,1,0xffcc,0xffcc,0xffcc,1,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,1,
 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,1,1,0xffb8,0xffb8,0xffb8,1,1,1,1,1,
 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
-1,1,1,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffb8,0xffcc,1,1,1,1,
-1,1,1,1,1,0xffb8,1,1,1,1,1,1,1,1,1,1,
-1,1,1,1,1,1,1,1,1,1,1,1,1,1,0xffcc,0xffcc,
-0xffcc,0xffcc,1,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,1,0xffcc,0xffcc,0xffcc,1,0xffcc,0xffcc,0xffcc,
-0xffcc,0xffcc,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
-1,1,1,1,1,1,1,1,1,1,1,1,1,0xffb8,0xffb8,0xffb8,
-1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
-1,1,1,0xffb8,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,
-0xffcc,0xffcc,1,0xffb8,0xffcc,0xffcc,0xffb8,0xffcc,0xffcc,0xffb8,0xffcc,0xffcc,0xffcc,0xffb8,0xffb8,0xffb8,
-0xfe36,0xfe38,0xfe3a,0xffcc,0xffcc,0xffcc,0xffb8,0xffcc,0xffcc,0xffb8,0xffb8,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,
-1,1,1,1,1,1,1,1,0x864,0x198d,1,1,1,1,1,1,
-0x868,0x1993,1,0x86c,0x1999,1,1,1,1,1,1,1,0xfc0e,1,1,1,
-1,1,1,1,1,1,1,1,1,1,1,1,1,0xfe12,1,1,
-1,0xffcc,0xffb8,0xffcc,0xffcc,1,1,1,0x29dc,0x29e2,0x29e8,0x29ee,0x29f4,0x29fa,0x2a00,0x2a06,
+1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0xffb8,
+0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,1,0xffb8,
+0xffcc,0xffcc,0xffb8,0xffcc,0xffcc,0xffb8,0xffcc,0xffcc,0xffcc,0xffb8,0xffb8,0xffb8,0xfe36,0xfe38,0xfe3a,0xffcc,
+0xffcc,0xffcc,0xffb8,0xffcc,0xffcc,0xffb8,0xffb8,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,1,1,1,1,
 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
-1,1,1,1,1,1,1,1,1,1,1,1,0xfe0e,1,0xfc00,1,
-1,1,1,1,1,1,1,0x870,1,1,1,0x199f,0x19a5,0xfe12,1,1,
-1,1,1,1,1,1,1,0xfc00,1,1,1,1,0x2a0c,0x2a12,1,0x2a18,
 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
-1,1,1,1,1,1,1,1,1,1,1,1,1,1,0xffcc,1,
+1,1,1,1,0x864,0x198d,1,1,1,1,1,1,0x868,0x1993,1,0x86c,
+0x1999,1,1,1,1,1,1,1,0xfc0e,1,1,1,1,1,1,1,
+1,1,1,1,1,1,0xfe12,1,1,1,0xffcc,0xffb8,0xffcc,0xffcc,1,1,
+1,0x29dc,0x29e2,0x29e8,0x29ee,0x29f4,0x29fa,0x2a00,0x2a06,1,1,1,1,1,1,1,
 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
-1,1,1,0x2a1e,1,1,0x2a24,1,1,1,1,1,0xfe0e,1,1,1,
-1,1,1,1,1,1,1,1,1,1,1,1,1,0xfe12,1,1,
-1,1,1,1,1,1,1,1,1,0x2a2a,0x2a30,0x2a36,1,1,0x2a3c,1,
 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
-1,1,1,1,1,1,1,1,1,1,1,1,0xfe0e,1,1,1,
+1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
+1,1,1,1,1,0xfe0e,1,0xfc00,1,1,1,1,1,1,1,0x870,
+1,1,1,0x199f,0x19a5,0xfe12,1,1,1,1,1,1,1,1,1,0xfc00,
+1,1,1,1,0x2a0c,0x2a12,1,0x2a18,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,0xffcc,1,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,1,1,1,1,0x2a1e,1,1,0x2a24,1,1,
+1,1,1,0xfe0e,1,1,1,1,1,1,1,1,1,1,1,1,
+1,0xfe12,1,1,1,1,1,1,1,1,1,1,1,0x2a2a,0x2a30,0x2a36,
+1,1,0x2a3c,1,1,1,1,1,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0xfe0e,
 1,1,1,1,1,1,1,1,1,1,1,1,1,0xfe12,1,1,
 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
-1,1,1,0x878,0x19ab,1,1,0x19b1,0x19b7,0xfe12,1,1,1,1,1,1,
-1,1,0xfc00,0xfc00,1,1,1,1,0x2a42,0x2a48,1,1,1,1,1,1,
-1,1,1,1,1,1,1,1,1,1,1,1,1,1,0x884,1,
-0x19bd,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
-1,1,0xfc00,1,1,1,1,1,1,1,0x888,0x890,1,1,0x19c3,0x19c9,
-0x19cf,0xfe12,1,1,1,1,1,1,1,1,1,0xfc00,1,1,1,1,
+1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
+0x878,0x19ab,1,1,0x19b1,0x19b7,0xfe12,1,1,1,1,1,1,1,1,0xfc00,
+0xfc00,1,1,1,1,0x2a42,0x2a48,1,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,1,1,1,0x884,1,0x19bd,1,1,1,1,
+1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
+1,1,1,1,1,0xfc00,1,1,1,1,1,1,0x888,0x890,1,1,
+0x19c3,0x19c9,0x19cf,0xfe12,1,1,1,1,1,1,1,1,1,0xfc00,1,1,
+1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
 1,1,1,1,1,1,0x894,1,0x19d5,1,1,1,1,0xfe12,1,1,
 1,1,1,1,1,0xfea8,0xfcb6,1,1,1,1,1,1,1,1,1,
 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
-1,1,1,1,0xfe0e,1,1,0x898,0x19db,1,0xfc00,1,1,1,0x89c,0x19e1,
-0x19e7,1,0xdc4,0x19ef,1,0xfe12,1,1,1,1,1,1,1,0xfc00,0xfc00,1,
-1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
-1,1,1,1,1,1,1,1,1,1,1,0xfe12,0xfe12,1,0xfc00,1,
-1,1,1,1,1,1,0x8a8,0x8b0,1,1,0x19f7,0x19fd,0x1a03,0xfe12,1,1,
-1,1,1,1,1,1,1,0xfc00,1,1,1,1,1,1,1,1,
-1,1,0xfc12,1,1,1,1,0xfc00,1,1,1,1,1,1,1,1,
-1,0x8b4,0x1a09,1,0xdce,0x1a11,0x1a19,0xfc00,1,1,1,1,1,1,1,1,
-1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
-0xfece,0xfece,0xfe12,1,1,1,1,1,1,1,1,1,0xfed6,0xfed6,0xfed6,0xfed6,
-1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
-1,1,1,1,1,1,1,1,0xfeec,0xfeec,1,1,1,1,1,1,
-1,1,1,1,0xfef4,0xfef4,0xfef4,0xfef4,1,1,1,1,1,1,1,1,
-1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
-0xffb8,0xffb8,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
-1,1,1,1,1,1,1,1,1,0xffb8,1,0xffb8,1,0xffb0,1,1,
-1,1,1,1,1,1,1,0x2a4f,1,1,1,1,1,1,1,1,
-1,0x2a55,1,1,1,1,0x2a5b,1,1,1,1,0x2a61,1,1,1,1,
-0x2a67,1,1,1,1,1,1,1,1,1,1,1,1,0x2a6d,1,1,
-1,1,1,1,1,0xff02,0xff04,0x3c40,0xff08,0x3c48,0x2a72,1,0x2a78,1,0xff04,0xff04,
-0xff04,0xff04,1,1,0xff04,0x3c50,0xffcc,0xffcc,0xfe12,1,0xffcc,0xffcc,1,1,1,1,
-1,1,1,1,1,1,1,0x2a7f,1,1,1,1,1,1,1,1,
-1,0x2a85,1,1,1,1,0x2a8b,1,1,1,1,0x2a91,1,1,1,1,
-0x2a97,1,1,1,1,1,1,1,1,1,1,1,1,0x2a9d,1,1,
+1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
+1,1,1,0xfe0e,1,1,0x898,0x19db,1,0xfc00,1,1,1,0x89c,0x19e1,0x19e7,
+1,0xdc4,0x19ef,1,0xfe12,1,1,1,1,1,1,1,0xfc00,0xfc00,1,1,
+1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,1,1,1,0xfe12,0xfe12,1,0xfc00,1,1,1,
+1,1,1,0x8a8,0x8b0,1,1,0x19f7,0x19fd,0x1a03,0xfe12,1,1,1,1,1,
+1,1,1,1,0xfc00,1,1,1,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,1,1,1,1,1,1,1,0xfc12,1,1,
+1,1,0xfc00,1,1,1,1,1,1,1,1,1,0x8b4,0x1a09,1,0xdce,
+0x1a11,0x1a19,0xfc00,1,1,1,1,1,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,1,1,1,1,1,0xfece,0xfece,0xfe12,1,1,
+1,1,1,1,1,1,0xfed6,0xfed6,0xfed6,0xfed6,1,1,1,1,1,1,
+1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
+1,1,0xfeec,0xfeec,1,1,1,1,1,1,1,1,0xfef4,0xfef4,0xfef4,0xfef4,
+1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
+1,1,1,1,0xffb8,0xffb8,1,1,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
+1,0xffb8,1,0xffb8,1,0xffb0,1,1,1,1,1,1,0x2a4f,1,1,1,
+1,1,1,1,1,1,0x2a55,1,1,1,1,0x2a5b,1,1,1,1,
+0x2a61,1,1,1,1,0x2a67,1,1,1,1,1,1,1,1,1,1,
+1,1,0x2a6d,1,1,1,1,1,1,1,0xff02,0xff04,0x3c40,0xff08,0x3c48,0x2a72,
+1,0x2a78,1,0xff04,0xff04,0xff04,0xff04,1,1,0xff04,0x3c50,0xffcc,0xffcc,0xfe12,1,0xffcc,
+0xffcc,1,1,1,1,1,1,1,1,1,1,1,0x2a7f,1,1,1,
+1,1,1,1,1,1,0x2a85,1,1,1,1,0x2a8b,1,1,1,1,
+0x2a91,1,1,1,1,0x2a97,1,1,1,1,1,1,1,1,1,1,
+1,1,0x2a9d,1,1,1,1,1,1,0xffb8,1,1,1,1,1,1,
+1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
+1,1,1,0x8c0,0x1a1f,1,1,1,1,1,1,1,0xfc00,1,1,1,
+1,1,1,1,1,0xfe0e,1,0xfe12,0xfe12,1,1,1,1,1,1,1,
 1,1,1,1,1,1,0xffb8,1,1,1,1,1,1,1,1,1,
 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
-1,0x8c0,0x1a1f,1,1,1,1,1,1,1,0xfc00,1,1,1,1,1,
-1,1,1,0xfe0e,1,0xfe12,0xfe12,1,1,1,1,1,1,1,1,1,
-1,1,1,1,1,0xffb8,1,1,1,1,1,1,1,1,1,1,
 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
-1,1,1,1,1,0xffcc,0xffcc,0xffcc,1,1,1,1,1,1,1,1,
-1,1,1,1,1,1,1,1,1,1,1,1,0xfe12,1,1,1,
+1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,
+2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,1,
 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
-1,1,0xfe12,1,1,1,1,1,1,1,1,1,1,0xffcc,1,1,
-1,1,1,1,1,1,1,1,1,0xffc8,1,1,1,1,1,1,
 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
-1,1,1,1,1,0xffbc,0xffcc,0xffb8,1,1,1,1,1,1,1,1,
-1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0xffcc,
-0xffb8,1,1,1,1,1,1,1,0xfe12,1,1,1,1,1,1,1,
-1,1,1,1,1,1,1,1,1,1,1,1,1,0xffcc,0xffcc,0xffcc,
-0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,1,1,0xffb8,1,1,1,1,1,1,1,1,
-1,1,1,1,1,1,1,1,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffb8,0xffb8,0xffb8,
-0xffb8,0xffb8,0xffb8,0xffcc,0xffcc,0xffb8,1,1,1,1,1,1,1,0x8c4,0x1a25,0x8c8,
-0x1a2b,0x8cc,0x1a31,0x8d0,0x1a37,0x8d4,0x1a3d,1,1,0x8d8,0x1a43,1,1,1,1,1,
-1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
-0xfe0e,0xfc00,1,1,1,1,0x8dc,0x1a49,0x8e0,0x1a4f,0x8e4,0x8e8,0x1a55,0x1a5b,0x8ec,0x1a61,
-0xfe12,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
-1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0xffcc,
-0xffb8,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,1,1,1,1,1,1,1,1,
-1,1,1,1,1,1,0xfe12,0xfe12,1,1,1,1,1,1,1,1,
-1,1,1,1,1,1,1,1,1,1,1,1,1,1,0xfe0e,1,
-1,1,1,1,1,1,1,1,1,1,0xfe12,0xfe12,1,1,1,1,
+1,1,1,1,1,1,1,1,1,0xfe00,0xfe00,0xfe00,0xfe00,0xfe00,0xfe00,0xfe00,
+0xfe00,0xfe00,0xfe00,0xfe00,0xfe00,0xfe00,0xfe00,0xfe00,0xfe00,0xfe00,0xfe00,0xfe00,0xfe00,0xfe00,1,1,
 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
-1,1,1,0xfe0e,1,1,1,1,1,1,1,1,1,1,1,1,
-1,1,1,1,0xffcc,0xffcc,0xffcc,1,0xfe02,0xffb8,0xffb8,0xffb8,0xffb8,0xffb8,0xffcc,0xffcc,
-0xffb8,0xffb8,0xffb8,0xffb8,0xffcc,1,0xfe02,0xfe02,0xfe02,0xfe02,0xfe02,0xfe02,0xfe02,1,1,1,
-1,0xffb8,1,1,1,1,1,1,0xffcc,1,1,1,0xffcc,0xffcc,1,1,
-1,1,1,1,0xffcc,0xffcc,0xffb8,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffb8,0xffcc,
-0xffcc,0xffd4,0xffac,0xffb8,0xff94,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,
-0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffd0,0xffc8,
-0xffc8,0xffb8,1,0xffcc,0xffd2,0xffb8,0xffcc,0xffb8,0x1a66,0x1a6c,0x1a72,0x1a78,0x1a7f,0x1a85,0x1a8b,0x1a91,
-0x1a99,0x1aa3,0x1aaa,0x1ab0,0x1ab6,0x1abc,0x1ac2,0x1ac8,0x1acf,0x1ad5,0x1ada,0x1ae0,0x1ae8,0x1af2,0x1afc,0x1b06,
-0x1b0e,0x1b14,0x1b1a,0x1b20,0x1b29,0x1b33,0x1b3b,0x1b41,0x1b46,0x1b4c,0x1b52,0x1b58,0x1b5e,0x1b64,0x1b6a,0x1b70,
-0x1b77,0x1b7d,0x1b82,0x1b88,0x1b8e,0x1b94,0x1b9c,0x1ba6,0x1bae,0x1bb4,0x1bba,0x1bc0,0x1bc6,0x1bcc,0xdd8,0xde2,
-0x1bd4,0x1bde,0x1be6,0x1bec,0x1bf2,0x1bf8,0x1bfe,0x1c04,0x1c0a,0x1c10,0x1c17,0x1c1d,0x1c22,0x1c28,0x1c2e,0x1c34,
-0x1c3a,0x1c40,0x1c46,0x1c4c,0x1c54,0x1c5e,0x1c68,0x1c72,0x1c7c,0x1c86,0x1c90,0x1c9a,0x1ca3,0x1ca9,0x1caf,0x1cb5,
-0x1cba,0x1cc0,0xdec,0xdf6,0x1cc8,0x1cd2,0x1cda,0x1ce0,0x1ce6,0x1cec,0xe00,0xe0a,0x1cf4,0x1cfe,0x1d08,0x1d12,
-0x1d1c,0x1d26,0x1d2e,0x1d34,0x1d3a,0x1d40,0x1d46,0x1d4c,0x1d52,0x1d58,0x1d5e,0x1d64,0x1d6a,0x1d70,0x1d76,0x1d7c,
-0x1d84,0x1d8e,0x1d98,0x1da2,0x1daa,0x1db0,0x1db7,0x1dbd,0x1dc2,0x1dc8,0x1dce,0x1dd4,0x1dda,0x1de0,0x1de6,0x1dec,
-0x1df3,0x1df9,0x1dff,0x1e05,0x1e0b,0x1e11,0x1e16,0x1e1c,0x1e22,0x1e28,0x1e2f,0x1e35,0x1e3b,0x1e41,0x1e46,0x1e4c,
-0x1e52,0x1e58,1,0x1e5f,1,1,1,1,0xe14,0xe22,0x1e64,0x1e6a,0x1e72,0x1e7c,0x1e86,0x1e90,
-0x1e9a,0x1ea4,0x1eae,0x1eb8,0x1ec2,0x1ecc,0x1ed6,0x1ee0,0x1eea,0x1ef4,0x1efe,0x1f08,0x1f12,0x1f1c,0x1f26,0x1f30,
-0xe30,0xe3a,0x1f38,0x1f3e,0x1f44,0x1f4a,0x1f52,0x1f5c,0x1f66,0x1f70,0x1f7a,0x1f84,0x1f8e,0x1f98,0x1fa2,0x1fac,
-0x1fb4,0x1fba,0x1fc0,0x1fc6,0xe44,0xe4e,0x1fcc,0x1fd2,0x1fda,0x1fe4,0x1fee,0x1ff8,0x2002,0x200c,0x2016,0x2020,
-0x202a,0x2034,0x203e,0x2048,0x2052,0x205c,0x2066,0x2070,0x207a,0x2084,0x208e,0x2098,0x20a0,0x20a6,0x20ac,0x20b2,
-0x20ba,0x20c4,0x20ce,0x20d8,0x20e2,0x20ec,0x20f6,0x2100,0x210a,0x2114,0x211c,0x2122,0x2129,0x212f,0x2134,0x213a,
-0x2140,0x2146,1,1,1,1,1,1,0xe58,0xe6e,0xe86,0xe94,0xea2,0xeb0,0xebe,0xecc,
-0xed8,0xeee,0xf06,0xf14,0xf22,0xf30,0xf3e,0xf4c,0xf58,0xf66,0x214f,0x2159,0x2163,0x216d,1,1,
-0xf74,0xf82,0x2177,0x2181,0x218b,0x2195,1,1,0xf90,0xfa6,0xfbe,0xfcc,0xfda,0xfe8,0xff6,0x1004,
-0x1010,0x1026,0x103e,0x104c,0x105a,0x1068,0x1076,0x1084,0x1090,0x10a2,0x219f,0x21a9,0x21b3,0x21bd,0x21c7,0x21d1,
-0x10b4,0x10c6,0x21db,0x21e5,0x21ef,0x21f9,0x2203,0x220d,0x10d8,0x10e6,0x2217,0x2221,0x222b,0x2235,1,1,
-0x10f4,0x1102,0x223f,0x2249,0x2253,0x225d,1,1,0x1110,0x1122,0x2267,0x2271,0x227b,0x2285,0x228f,0x2299,
-1,0x1134,1,0x22a3,1,0x22ad,1,0x22b7,0x1146,0x115c,0x1174,0x1182,0x1190,0x119e,0x11ac,0x11ba,
-0x11c6,0x11dc,0x11f4,0x1202,0x1210,0x121e,0x122c,0x123a,0x1246,0x3b8e,0x22bf,0x3b96,0x1250,0x3b9e,0x22c5,0x3ba6,
-0x22cb,0x3bae,0x22d1,0x3bb6,0x125a,0x3bbe,1,1,0x22d8,0x22e2,0x22f1,0x2301,0x2311,0x2321,0x2331,0x2341,
-0x234c,0x2356,0x2365,0x2375,0x2385,0x2395,0x23a5,0x23b5,0x23c0,0x23ca,0x23d9,0x23e9,0x23f9,0x2409,0x2419,0x2429,
-0x2434,0x243e,0x244d,0x245d,0x246d,0x247d,0x248d,0x249d,0x24a8,0x24b2,0x24c1,0x24d1,0x24e1,0x24f1,0x2501,0x2511,
-0x251c,0x2526,0x2535,0x2545,0x2555,0x2565,0x2575,0x2585,0x258f,0x2595,0x259d,0x25a4,0x25ad,1,0x1264,0x25b7,
-0x25bf,0x25c5,0x25cb,0x3bc6,0x25d0,1,0x2aa2,0x8f0,1,0x25d7,0x25df,0x25e6,0x25ef,1,0x126e,0x25f9,
-0x2601,0x3bce,0x2607,0x3bd6,0x260c,0x2613,0x2619,0x261f,0x2625,0x262b,0x2633,0x3be0,1,1,0x263b,0x2643,
-0x264b,0x2651,0x2657,0x3bea,1,0x265d,0x2663,0x2669,0x266f,0x2675,0x267d,0x3bf4,0x2685,0x268b,0x2691,0x2699,
-0x26a1,0x26a7,0x26ad,0x3bfe,0x26b3,0x26b9,0x3c06,0x2aa7,1,1,0x26c1,0x26c8,0x26d1,1,0x1278,0x26db,
-0x26e3,0x3c0e,0x26e9,0x3c16,0x26ee,0x2aab,0x8fc,1,0xfa09,0xfa09,1,1,1,1,1,1,
-1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
-1,1,1,1,1,1,1,1,0xffcc,0xffcc,0xfe02,0xfe02,0xffcc,0xffcc,0xffcc,0xffcc,
-0xfe02,0xfe02,0xfe02,0xffcc,0xffcc,1,1,1,1,0xffcc,1,1,1,0xfe02,0xfe02,0xffcc,
-0xffb8,0xffcc,0xfe02,0xfe02,0xffb8,0xffb8,0xffb8,0xffb8,0xffcc,1,1,1,1,1,1,1,
-1,1,1,1,1,1,1,1,1,1,0x2aae,1,1,1,0x2ab2,0x3c1e,
-1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
-1,1,1,1,0x908,1,0x90c,1,0x910,1,1,1,1,1,0x26f5,0x26fb,
-1,1,1,1,1,1,1,1,1,1,1,1,1,1,0x2701,1,
-1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
-1,0x2707,0x270d,0x2713,0x914,1,0x918,1,0x91c,1,1,1,1,1,1,1,
-1,1,1,1,1,1,1,0x920,0x2719,1,1,1,0x924,0x271f,1,0x928,
-0x2725,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
-1,1,1,1,1,1,1,0x92c,0x272b,0x930,0x2731,1,1,1,1,1,
-1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
-0x934,1,1,1,1,0x2737,1,0x938,0x273d,0x93c,1,0x2743,0x940,0x2749,1,1,
-1,0x944,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
-1,1,1,1,0x274f,0x948,0x2755,1,0x94c,0x950,1,1,1,1,1,1,
-1,0x275b,0x2761,0x2767,0x276d,0x2773,0x954,0x958,0x2779,0x277f,0x95c,0x960,0x2785,0x278b,0x964,0x968,
-0x96c,0x970,1,1,0x2791,0x2797,0x974,0x978,0x279d,0x27a3,0x97c,0x980,0x27a9,0x27af,1,1,
-1,1,1,1,1,0x984,0x988,1,1,1,1,1,1,1,1,1,
-1,1,1,1,1,1,0x98c,1,1,1,1,1,0x990,0x994,1,0x998,
-0x27b5,0x27bb,0x27c1,0x27c7,1,1,0x99c,0x9a0,0x9a4,0x9a8,1,1,1,1,1,1,
-1,1,1,1,0x27cd,0x27d3,0x27d9,0x27df,1,1,1,1,1,1,0x27e5,0x27eb,
-0x27f1,0x27f7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
-1,1,1,1,1,0x2ab7,0x2abb,1,1,1,1,1,1,1,1,1,
-1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
-1,1,1,1,0x2abf,1,1,1,1,1,1,1,1,1,1,1,
-1,1,1,1,1,1,1,0xffcc,0xffcc,0xffcc,1,1,1,1,1,1,
-1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
-1,1,1,1,1,1,1,1,1,1,1,0xfe12,0xffcc,0xffcc,0xffcc,0xffcc,
-0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,
-0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,1,1,1,1,
-1,1,1,1,1,1,0xffb4,0xffc8,0xffd0,0xffbc,0xffc0,0xffc0,1,1,1,1,
-1,1,1,1,1,1,1,1,1,1,1,1,1,1,0x9ac,1,
-1,1,1,0x9b0,0x27fd,0x9b4,0x2803,0x9b8,0x2809,0x9bc,0x280f,0x9c0,0x2815,0x9c4,0x281b,0x9c8,
-0x2821,0x9cc,0x2827,0x9d0,0x282d,0x9d4,0x2833,0x9d8,0x2839,0x9dc,0x283f,1,0x9e0,0x2845,0x9e4,0x284b,
-0x9e8,0x2851,1,1,1,1,1,0x9ec,0x2857,0x285d,0x9f4,0x2863,0x2869,0x9fc,0x286f,0x2875,
-0xa04,0x287b,0x2881,0xa0c,0x2887,0x288d,1,1,1,1,1,1,1,1,1,1,
-1,1,1,1,1,1,1,1,1,1,1,1,0x2893,1,1,1,
-1,0xfc10,0xfc10,1,1,0xa14,0x2899,1,1,1,1,1,1,1,0xa18,1,
-1,1,1,0xa1c,0x289f,0xa20,0x28a5,0xa24,0x28ab,0xa28,0x28b1,0xa2c,0x28b7,0xa30,0x28bd,0xa34,
-0x28c3,0xa38,0x28c9,0xa3c,0x28cf,0xa40,0x28d5,0xa44,0x28db,0xa48,0x28e1,1,0xa4c,0x28e7,0xa50,0x28ed,
-0xa54,0x28f3,1,1,1,1,1,0xa58,0x28f9,0x28ff,0xa60,0x2905,0x290b,0xa68,0x2911,0x2917,
-0xa70,0x291d,0x2923,0xa78,0x2929,0x292f,1,1,1,1,1,1,1,1,1,1,
-1,1,1,1,1,1,1,0xa80,0xa84,0xa88,0xa8c,1,0x2935,1,1,0x293b,
-0x2941,0x2947,0x294d,1,1,0xa90,0x2953,1,1,1,1,1,1,1,1,1,
-1,1,1,1,1,1,1,0xffcc,1,1,1,1,0xffcc,0xffcc,0xffcc,0xffcc,
-0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,1,1,1,1,1,1,1,1,1,1,
 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
-1,1,1,1,1,1,0xffcc,0xffcc,1,1,1,1,1,1,1,1,
-1,1,1,1,1,1,1,1,0xffcc,0xffcc,1,1,1,1,1,1,
-1,1,1,1,1,1,1,1,1,1,0xfe12,1,1,1,1,1,
+1,1,1,1,1,1,0xfe00,0xfe00,0xfe00,0xfe00,0xfe00,0xfe00,0xfe00,0xfe00,0xfe00,0xfe00,
+0xfe00,0xfe00,0xfe00,0xfe00,0xfe00,0xfe00,0xfe00,0xfe00,0xfe00,0xfe00,0xfe00,0xfe00,0xfe00,0xfe00,1,1,
 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
-1,1,1,1,0xfe12,1,1,1,1,1,1,1,1,1,1,1,
 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
-0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,
-0xffcc,0xffcc,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
-1,1,1,0xffb8,0xffb8,0xffb8,1,1,1,1,1,1,1,1,1,1,
-1,1,1,1,1,1,1,1,1,1,1,0xfe12,1,1,1,1,
-1,1,1,1,1,1,1,1,0xfe12,1,1,1,1,1,1,1,
 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
-1,1,1,1,1,1,1,1,0xffcc,1,0xffcc,0xffcc,0xffb8,1,1,0xffcc,
-0xffcc,1,1,1,1,1,0xffcc,0xffcc,1,0xffcc,1,1,1,1,1,1,
+1,1,1,1,1,1,1,1,1,1,1,0xffcc,0xffcc,0xffcc,1,1,
 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
-1,1,1,1,1,1,1,1,1,1,0xfe12,1,1,1,1,1,
-1,1,1,1,0x2ac5,0x2ac9,0x2acd,0x2ad1,0x2ad5,0x2ad9,0x2add,0x2ae1,0x2ae1,0x2ae5,0x2ae9,0x2aed,
-0x2af1,0x2af5,0x2af9,0x2afd,0x2b01,0x2b05,0x2b09,0x2b0d,0x2b11,0x2b15,0x2b19,0x2b1d,0x2b21,0x2b25,0x2b29,0x2b2d,
-0x2b31,0x2b35,0x2b39,0x2b3d,0x2b41,0x2b45,0x2b49,0x2b4d,0x2b51,0x2b55,0x2b59,0x2b5d,0x2b61,0x2b65,0x2b69,0x2b6d,
-0x2b71,0x2b75,0x2b79,0x2b7d,0x2b81,0x2b85,0x2b89,0x2b8d,0x2b91,0x2b95,0x2b99,0x2b9d,0x2ba1,0x2ba5,0x2ba9,0x2bad,
-0x2bb1,0x2bb5,0x2bb9,0x2bbd,0x2bc1,0x2bc5,0x2bc9,0x2bcd,0x2bd1,0x2bd5,0x2bd9,0x2bdd,0x2be1,0x2be5,0x2be9,0x2bed,
-0x2bf1,0x2bf5,0x2bf9,0x2bfd,0x2c01,0x2c05,0x2c09,0x2c0d,0x2c11,0x2c15,0x2c19,0x2c1d,0x2c21,0x2c25,0x2c29,0x2c2d,
-0x2b11,0x2c31,0x2c35,0x2c39,0x2c3d,0x2c41,0x2c45,0x2c49,0x2c4d,0x2c51,0x2c55,0x2c59,0x2c5d,0x2c61,0x2c65,0x2c69,
-0x2c6d,0x2c71,0x2c75,0x2c79,0x2c7d,0x2c81,0x2c85,0x2c89,0x2c8d,0x2c91,0x2c95,0x2c99,0x2c9d,0x2ca1,0x2ca5,0x2ca9,
-0x2cad,0x2cb1,0x2cb5,0x2cb9,0x2cbd,0x2cc1,0x2cc5,0x2cc9,0x2ccd,0x2cd1,0x2cd5,0x2cd9,0x2cdd,0x2ce1,0x2ce5,0x2ce9,
-0x2ced,0x2cf1,0x2cf5,0x2cf9,0x2cfd,0x2d01,0x2d05,0x2d09,0x2d0d,0x2d11,0x2d15,0x2d19,0x2d1d,0x2d21,0x2d25,0x2d29,
-0x2d2d,0x2d31,0x2d35,0x2d39,0x2d3d,0x2c79,0x2d41,0x2d45,0x2d49,0x2d4d,0x2d51,0x2d55,0x2d59,0x2d5d,0x2c39,0x2d61,
-0x2d65,0x2d69,0x2d6d,0x2d71,0x2d75,0x2d79,0x2d7d,0x2d81,0x2d85,0x2d89,0x2d8d,0x2d91,0x2d95,0x2d99,0x2d9d,0x2da1,
-0x2da5,0x2da9,0x2dad,0x2b11,0x2db1,0x2db5,0x2db9,0x2dbd,0x2dc1,0x2dc5,0x2dc9,0x2dcd,0x2dd1,0x2dd5,0x2dd9,0x2ddd,
-0x2de1,0x2de5,0x2de9,0x2ded,0x2df1,0x2df5,0x2df9,0x2dfd,0x2e01,0x2e05,0x2e09,0x2e0d,0x2e11,0x2e15,0x2e19,0x2c41,
-0x2e1d,0x2e21,0x2e25,0x2e29,0x2e2d,0x2e31,0x2e35,0x2e39,0x2e3d,0x2e41,0x2e45,0x2e49,0x2e4d,0x2e51,0x2e55,0x2e59,
-0x2e5d,0x2e61,0x2e65,0x2e69,0x2e6d,0x2e71,0x2e75,0x2e79,0x2e7d,0x2e81,0x2e85,0x2e89,0x2e8d,0x2e91,0x2e95,0x2e99,
-0x2e9d,0x2ea1,0x2ea5,0x2ea9,0x2ead,0x2eb1,0x2eb5,0x2eb9,0x2ebd,0x2ec1,0x2ec5,0x2ec9,0x2ecd,0x2ed1,0x2ed5,0x2ed9,
-0x2edd,0x2ee1,1,1,0x2ee5,1,0x2ee9,1,1,0x2eed,0x2ef1,0x2ef5,0x2ef9,0x2efd,0x2f01,0x2f05,
-0x2f09,0x2f0d,0x2f11,1,0x2f15,1,0x2f19,1,1,0x2f1d,0x2f21,1,1,1,0x2f25,0x2f29,
-0x2f2d,0x2f31,0x2f35,0x2f39,0x2f3d,0x2f41,0x2f45,0x2f49,0x2f4d,0x2f51,0x2f55,0x2f59,0x2f5d,0x2f61,0x2f65,0x2f69,
-0x2f6d,0x2f71,0x2f75,0x2f79,0x2f7d,0x2f81,0x2f85,0x2f89,0x2f8d,0x2f91,0x2f95,0x2f99,0x2f9d,0x2fa1,0x2fa5,0x2fa9,
-0x2fad,0x2fb1,0x2fb5,0x2fb9,0x2fbd,0x2fc1,0x2fc5,0x2fc9,0x2fcd,0x2fd1,0x2fd5,0x2d15,0x2fd9,0x2fdd,0x2fe1,0x2fe5,
-0x2fe9,0x2fed,0x2fed,0x2ff1,0x2ff5,0x2ff9,0x2ffd,0x3001,0x3005,0x3009,0x300d,0x2f1d,0x3011,0x3015,0x3019,0x301d,
-0x3021,0x3027,1,1,0x302b,0x302f,0x3033,0x3037,0x303b,0x303f,0x3043,0x3047,0x2f55,0x304b,0x304f,0x3053,
-0x2ee5,0x3057,0x305b,0x305f,0x3063,0x3067,0x306b,0x306f,0x3073,0x3077,0x307b,0x307f,0x3083,0x2f79,0x3087,0x2f7d,
-0x308b,0x308f,0x3093,0x3097,0x309b,0x2ee9,0x2b65,0x309f,0x30a3,0x30a7,0x2c7d,0x2dd9,0x30ab,0x30af,0x2f99,0x30b3,
-0x2f9d,0x30b7,0x30bb,0x30bf,0x2ef1,0x30c3,0x30c7,0x30cb,0x30cf,0x30d3,0x2ef5,0x30d7,0x30db,0x30df,0x30e3,0x30e7,
-0x30eb,0x2fd5,0x30ef,0x30f3,0x2d15,0x30f7,0x2fe5,0x30fb,0x30ff,0x3103,0x3107,0x310b,0x2ff9,0x310f,0x2f19,0x3113,
-0x2ffd,0x2c31,0x3117,0x3001,0x311b,0x3009,0x311f,0x3123,0x3127,0x312b,0x312f,0x3011,0x2f09,0x3133,0x3015,0x3137,
-0x3019,0x313b,0x2ae1,0x313f,0x3145,0x314b,0x3151,0x3155,0x3159,0x315d,0x3163,0x3169,0x316f,0x3173,1,1,
-1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
-1,1,1,1,1,1,1,1,1,1,1,1,1,0x3176,0xfe34,0x317c,
-1,1,1,1,1,1,1,1,1,1,0x3182,0x3188,0x3190,0x319a,0x31a2,0x31a8,
-0x31ae,0x31b4,0x31ba,0x31c0,0x31c6,0x31cc,0x31d2,1,0x31d8,0x31de,0x31e4,0x31ea,0x31f0,1,0x31f6,1,
-0x31fc,0x3202,1,0x3208,0x320e,1,0x3214,0x321a,0x3220,0x3226,0x322c,0x3232,0x3238,0x323e,0x3244,1,
-1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
-0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffb8,0xffb8,0xffb8,0xffb8,0xffb8,0xffb8,0xffb8,0xffcc,0xffcc,
-1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
-1,1,1,1,1,1,1,1,1,1,1,1,1,0xffb8,1,1,
-0xffb8,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,1,1,1,1,1,1,1,1,0xfe12,1,
 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
-1,1,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,1,1,1,1,1,1,1,1,1,
-1,1,1,1,1,0xffb8,1,0xffcc,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,1,1,1,1,1,1,1,1,0xfe12,1,
 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
-0xffcc,0xfe02,0xffb8,1,1,1,1,0xfe12,1,1,1,1,1,0xffcc,0xffb8,1,
+1,0xfe12,1,1,1,1,1,1,1,1,1,1,0xffcc,1,1,1,
 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
-1,1,1,1,1,1,1,1,0xffcc,0xffcc,0xffcc,0xffcc,1,1,1,1,
 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
-1,1,1,1,1,1,0xffb8,0xffb8,0xffcc,0xffcc,0xffcc,0xffb8,0xffcc,0xffb8,0xffb8,0xffb8,
-0xffb8,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
-1,1,1,1,1,1,1,1,1,1,1,1,1,0xa94,0x2959,0xa9a,
-0x2963,1,1,1,1,1,1,1,1,0xaa0,1,1,1,1,1,0x296d,
-1,1,1,1,1,1,1,1,1,1,1,1,1,0xfe12,0xfc0e,1,
-1,1,1,1,0xffcc,0xffcc,0xffcc,1,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,0xffc8,1,1,1,1,1,1,1,1,1,
 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
-1,1,1,1,1,1,1,0xfc00,1,1,1,1,1,1,0x2977,0x2981,
-1,0xaa6,0xaac,0xfe12,0xfe12,1,1,1,1,1,1,1,1,1,1,1,
-0xfe12,1,1,1,1,1,1,1,1,1,0xfe0e,1,1,1,1,1,
 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
-1,0xfe12,0xfe0e,1,1,1,1,1,1,1,1,1,1,0xfe0e,0xfe12,1,
 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
-1,1,1,1,1,1,1,1,1,1,1,0xfe0e,0xfe0e,1,0xfc00,1,
-1,1,1,1,1,1,1,0xab2,1,1,1,0x298b,0x2995,0xfe12,1,1,
-1,1,1,1,1,1,1,0xfc00,1,1,1,1,1,1,1,1,
-1,1,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,1,1,1,0xffcc,0xffcc,0xffcc,0xffcc,
-0xffcc,1,1,1,1,1,1,1,1,1,1,1,1,1,0xfe12,1,
-1,1,0xfe0e,1,1,1,1,1,1,1,1,1,1,1,1,1,
-1,1,1,1,1,1,1,1,1,1,0xffcc,1,1,1,1,1,
-1,1,1,1,1,1,1,1,1,1,1,1,0xfc00,1,1,1,
-1,1,1,1,1,0xabe,0xfc00,0x299f,0x29a9,0xfc00,0x29b3,1,1,1,0xfe12,0xfe0e,
+0xffbc,0xffcc,0xffb8,1,1,1,1,1,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,1,1,1,1,0xffcc,0xffb8,1,1,1,1,
 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
-1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0xfc00,
-1,1,1,1,1,1,1,1,0xad0,0xad6,0x29bd,0x29c7,1,1,1,0xfe12,
-0xfe0e,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
-1,1,0xfe12,0xfe0e,1,1,1,1,1,1,1,1,1,1,1,0xfe12,
+1,1,1,0xfe12,1,1,1,1,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,1,1,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,
+1,1,0xffb8,1,1,1,1,1,1,1,1,1,1,1,1,1,
 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
-1,1,1,1,1,1,1,1,1,0xfe12,0xfe0e,1,1,1,1,1,
 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
-1,1,1,1,1,0xfe12,1,1,1,1,1,1,1,1,0xfe0e,1,
-0xfe12,0xfe12,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
-1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0xfe12,
+1,1,1,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffb8,0xffb8,0xffb8,0xffb8,0xffb8,0xffb8,0xffcc,0xffcc,
+0xffb8,1,1,1,1,1,0x8c4,0x1a25,0x8c8,0x1a2b,0x8cc,0x1a31,0x8d0,0x1a37,0x8d4,0x1a3d,
+1,1,0x8d8,0x1a43,1,1,1,1,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
+1,1,1,1,1,0xfe0e,0xfc00,1,1,1,1,0x8dc,0x1a49,0x8e0,0x1a4f,0x8e4,
+0x8e8,0x1a55,0x1a5b,0x8ec,0x1a61,0xfe12,1,1,1,1,1,1,1,1,1,1,
 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
-0xfe02,0xfe02,0xfe02,0xfe02,0xfe02,1,1,1,1,1,1,1,1,1,1,1,
-1,1,1,1,1,1,1,1,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,1,
+1,1,1,1,1,1,1,1,1,1,1,1,0xffcc,0xffb8,0xffcc,0xffcc,
+0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,1,1,1,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0xfe12,
+0xfe12,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
-1,1,1,1,1,1,1,1,1,1,1,1,1,1,0xfe02,1,
+1,1,1,1,1,1,1,0xfe0e,1,1,1,1,1,1,1,1,
+1,1,1,0xfe12,0xfe12,1,1,1,1,1,1,1,1,1,1,1,
+1,1,1,1,1,0xffcc,0xffcc,0xffcc,1,0xfe02,0xffb8,0xffb8,0xffb8,0xffb8,0xffb8,0xffcc,
+0xffcc,0xffb8,0xffb8,0xffb8,0xffb8,0xffcc,1,0xfe02,0xfe02,0xfe02,0xfe02,0xfe02,0xfe02,0xfe02,1,1,
+1,1,0xffb8,1,1,1,1,1,1,0xffcc,1,1,1,0xffcc,0xffcc,1,
+1,1,1,1,1,0xffcc,0xffcc,0xffb8,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffb8,
+0xffcc,0xffcc,0xffd4,0xffac,0xffb8,0xff94,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,
+0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,
+0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffd0,0xffc8,0xffc8,0xffb8,1,
+0xffcc,0xffd2,0xffb8,0xffcc,0xffb8,0x1a66,0x1a6c,0x1a72,0x1a78,0x1a7f,0x1a85,0x1a8b,0x1a91,0x1a99,0x1aa3,0x1aaa,
+0x1ab0,0x1ab6,0x1abc,0x1ac2,0x1ac8,0x1acf,0x1ad5,0x1ada,0x1ae0,0x1ae8,0x1af2,0x1afc,0x1b06,0x1b0e,0x1b14,0x1b1a,
+0x1b20,0x1b29,0x1b33,0x1b3b,0x1b41,0x1b46,0x1b4c,0x1b52,0x1b58,0x1b5e,0x1b64,0x1b6a,0x1b70,0x1b77,0x1b7d,0x1b82,
+0x1b88,0x1b8e,0x1b94,0x1b9c,0x1ba6,0x1bae,0x1bb4,0x1bba,0x1bc0,0x1bc6,0x1bcc,0xdd8,0xde2,0x1bd4,0x1bde,0x1be6,
+0x1bec,0x1bf2,0x1bf8,0x1bfe,0x1c04,0x1c0a,0x1c10,0x1c17,0x1c1d,0x1c22,0x1c28,0x1c2e,0x1c34,0x1c3a,0x1c40,0x1c46,
+0x1c4c,0x1c54,0x1c5e,0x1c68,0x1c72,0x1c7c,0x1c86,0x1c90,0x1c9a,0x1ca3,0x1ca9,0x1caf,0x1cb5,0x1cba,0x1cc0,0xdec,
+0xdf6,0x1cc8,0x1cd2,0x1cda,0x1ce0,0x1ce6,0x1cec,0xe00,0xe0a,0x1cf4,0x1cfe,0x1d08,0x1d12,0x1d1c,0x1d26,0x1d2e,
+0x1d34,0x1d3a,0x1d40,0x1d46,0x1d4c,0x1d52,0x1d58,0x1d5e,0x1d64,0x1d6a,0x1d70,0x1d76,0x1d7c,0x1d84,0x1d8e,0x1d98,
+0x1da2,0x1daa,0x1db0,0x1db7,0x1dbd,0x1dc2,0x1dc8,0x1dce,0x1dd4,0x1dda,0x1de0,0x1de6,0x1dec,0x1df3,0x1df9,0x1dff,
+0x1e05,0x1e0b,0x1e11,0x1e16,0x1e1c,0x1e22,0x1e28,0x1e2f,0x1e35,0x1e3b,0x1e41,0x1e46,0x1e4c,0x1e52,0x1e58,1,
+0x1e5f,1,1,1,1,0xe14,0xe22,0x1e64,0x1e6a,0x1e72,0x1e7c,0x1e86,0x1e90,0x1e9a,0x1ea4,0x1eae,
+0x1eb8,0x1ec2,0x1ecc,0x1ed6,0x1ee0,0x1eea,0x1ef4,0x1efe,0x1f08,0x1f12,0x1f1c,0x1f26,0x1f30,0xe30,0xe3a,0x1f38,
+0x1f3e,0x1f44,0x1f4a,0x1f52,0x1f5c,0x1f66,0x1f70,0x1f7a,0x1f84,0x1f8e,0x1f98,0x1fa2,0x1fac,0x1fb4,0x1fba,0x1fc0,
+0x1fc6,0xe44,0xe4e,0x1fcc,0x1fd2,0x1fda,0x1fe4,0x1fee,0x1ff8,0x2002,0x200c,0x2016,0x2020,0x202a,0x2034,0x203e,
+0x2048,0x2052,0x205c,0x2066,0x2070,0x207a,0x2084,0x208e,0x2098,0x20a0,0x20a6,0x20ac,0x20b2,0x20ba,0x20c4,0x20ce,
+0x20d8,0x20e2,0x20ec,0x20f6,0x2100,0x210a,0x2114,0x211c,0x2122,0x2129,0x212f,0x2134,0x213a,0x2140,0x2146,1,
+1,1,1,1,1,0xe58,0xe6e,0xe86,0xe94,0xea2,0xeb0,0xebe,0xecc,0xed8,0xeee,0xf06,
+0xf14,0xf22,0xf30,0xf3e,0xf4c,0xf58,0xf66,0x214f,0x2159,0x2163,0x216d,1,1,0xf74,0xf82,0x2177,
+0x2181,0x218b,0x2195,1,1,0xf90,0xfa6,0xfbe,0xfcc,0xfda,0xfe8,0xff6,0x1004,0x1010,0x1026,0x103e,
+0x104c,0x105a,0x1068,0x1076,0x1084,0x1090,0x10a2,0x219f,0x21a9,0x21b3,0x21bd,0x21c7,0x21d1,0x10b4,0x10c6,0x21db,
+0x21e5,0x21ef,0x21f9,0x2203,0x220d,0x10d8,0x10e6,0x2217,0x2221,0x222b,0x2235,1,1,0x10f4,0x1102,0x223f,
+0x2249,0x2253,0x225d,1,1,0x1110,0x1122,0x2267,0x2271,0x227b,0x2285,0x228f,0x2299,1,0x1134,1,
+0x22a3,1,0x22ad,1,0x22b7,0x1146,0x115c,0x1174,0x1182,0x1190,0x119e,0x11ac,0x11ba,0x11c6,0x11dc,0x11f4,
+0x1202,0x1210,0x121e,0x122c,0x123a,0x1246,0x3b8e,0x22bf,0x3b96,0x1250,0x3b9e,0x22c5,0x3ba6,0x22cb,0x3bae,0x22d1,
+0x3bb6,0x125a,0x3bbe,1,1,0x22d8,0x22e2,0x22f1,0x2301,0x2311,0x2321,0x2331,0x2341,0x234c,0x2356,0x2365,
+0x2375,0x2385,0x2395,0x23a5,0x23b5,0x23c0,0x23ca,0x23d9,0x23e9,0x23f9,0x2409,0x2419,0x2429,0x2434,0x243e,0x244d,
+0x245d,0x246d,0x247d,0x248d,0x249d,0x24a8,0x24b2,0x24c1,0x24d1,0x24e1,0x24f1,0x2501,0x2511,0x251c,0x2526,0x2535,
+0x2545,0x2555,0x2565,0x2575,0x2585,0x258f,0x2595,0x259d,0x25a4,0x25ad,1,0x1264,0x25b7,0x25bf,0x25c5,0x25cb,
+0x3bc6,0x25d0,1,0x2aa2,0x8f0,1,0x25d7,0x25df,0x25e6,0x25ef,1,0x126e,0x25f9,0x2601,0x3bce,0x2607,
+0x3bd6,0x260c,0x2613,0x2619,0x261f,0x2625,0x262b,0x2633,0x3be0,1,1,0x263b,0x2643,0x264b,0x2651,0x2657,
+0x3bea,1,0x265d,0x2663,0x2669,0x266f,0x2675,0x267d,0x3bf4,0x2685,0x268b,0x2691,0x2699,0x26a1,0x26a7,0x26ad,
+0x3bfe,0x26b3,0x26b9,0x3c06,0x2aa7,1,1,0x26c1,0x26c8,0x26d1,1,0x1278,0x26db,0x26e3,0x3c0e,0x26e9,
+0x3c16,0x26ee,0x2aab,0x8fc,1,0xfa09,0xfa09,1,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
+1,1,1,1,1,0xffcc,0xffcc,0xfe02,0xfe02,0xffcc,0xffcc,0xffcc,0xffcc,0xfe02,0xfe02,0xfe02,
+0xffcc,0xffcc,1,1,1,1,0xffcc,1,1,1,0xfe02,0xfe02,0xffcc,0xffb8,0xffcc,0xfe02,
+0xfe02,0xffb8,0xffb8,0xffb8,0xffb8,0xffcc,1,1,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,1,1,1,1,1,1,0x2aae,1,1,1,
+0x2ab2,0x3c1e,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,0x908,1,0x90c,1,0x910,1,1,1,1,1,
+0x26f5,0x26fb,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
+1,1,1,1,0x2701,1,1,1,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,0x2707,0x270d,0x2713,0x914,1,0x918,1,0x91c,1,1,
+1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,1,1,1,0x920,0x2719,1,1,1,0x924,0x271f,
+1,0x928,0x2725,1,1,1,1,1,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,1,1,1,0x92c,0x272b,0x930,0x2731,1,1,1,
+1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
+1,1,0x934,1,1,1,0x2737,1,0x938,0x273d,0x93c,1,0x2743,0x940,0x2749,1,
+1,1,0x944,1,1,1,1,1,1,1,1,1,1,1,1,1,
+1,1,1,1,1,0x274f,0x948,0x2755,1,0x94c,0x950,1,1,1,1,1,
+1,1,0x275b,0x2761,0x2767,0x276d,0x2773,0x954,0x958,0x2779,0x277f,0x95c,0x960,0x2785,0x278b,0x964,
+0x968,0x96c,0x970,1,1,0x2791,0x2797,0x974,0x978,0x279d,0x27a3,0x97c,0x980,0x27a9,0x27af,1,
+1,1,1,1,1,1,0x984,0x988,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,1,0x98c,1,1,1,1,1,0x990,0x994,1,
+0x998,0x27b5,0x27bb,0x27c1,0x27c7,1,1,0x99c,0x9a0,0x9a4,0x9a8,1,1,1,1,1,
+1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,1,1,1,1,1,0x27cd,0x27d3,0x27d9,0x27df,1,
+1,1,1,1,1,0x27e5,0x27eb,0x27f1,0x27f7,1,1,1,1,1,1,1,
+1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
+1,1,0x2ab7,0x2abb,1,1,1,1,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
+0x2abf,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
-1,1,1,1,1,1,1,1,1,1,1,1,1,1,0x324a,0x3254,
-0x3268,0x3280,0x3298,0x32b0,0x32c8,0xffb0,0xffb0,0xfe02,0xfe02,0xfe02,1,1,1,0xffc4,0xffb0,0xffb0,
-0xffb0,0xffb0,0xffb0,1,1,1,1,1,1,1,1,0xffb8,0xffb8,0xffb8,0xffb8,0xffb8,
-0xffb8,0xffb8,0xffb8,1,1,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffb8,0xffb8,1,1,1,1,
 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
-1,1,0xffcc,0xffcc,0xffcc,0xffcc,1,1,1,1,1,1,1,1,1,1,
-1,1,1,0x32d6,0x32e0,0x32f4,0x330c,0x3324,0x333c,1,1,1,1,1,1,1,
 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
-1,1,1,1,1,1,1,1,1,1,0xffcc,0xffcc,0xffcc,1,1,1,
+0xfe12,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
-1,1,1,1,1,1,1,1,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,1,
+1,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,
 0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,
-0xffcc,1,1,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,1,0xffcc,0xffcc,1,0xffcc,0xffcc,
-0xffcc,0xffcc,0xffcc,1,1,1,1,1,1,1,1,1,1,1,1,1,
-1,1,1,1,1,1,1,1,0xffb8,0xffb8,0xffb8,0xffb8,0xffb8,0xffb8,0xffb8,1,
-1,1,1,1,1,1,1,1,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xfe0e,1,
-1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
-1,1,1,1,0x334b,0x334f,0x3353,0x3357,0x335d,0x2f3d,0x3361,0x3365,0x3369,0x336d,0x2f41,0x3371,
-0x3375,0x3379,0x2f45,0x337f,0x3383,0x3387,0x338b,0x3391,0x3395,0x3399,0x339d,0x33a3,0x33a7,0x33ab,0x33af,0x302f,
-0x33b3,0x33b9,0x33bd,0x33c1,0x33c5,0x33c9,0x33cd,0x33d1,0x33d5,0x3043,0x2f49,0x2f4d,0x3047,0x33d9,0x33dd,0x2c49,
-0x33e1,0x2f51,0x33e5,0x33e9,0x33ed,0x33f1,0x33f1,0x33f1,0x33f5,0x33fb,0x33ff,0x3403,0x3407,0x340d,0x3411,0x3415,
-0x3419,0x341d,0x3421,0x3425,0x3429,0x342d,0x3431,0x3435,0x3439,0x343d,0x343d,0x304f,0x3441,0x3445,0x3449,0x344d,
-0x2f59,0x3451,0x3455,0x3459,0x2ead,0x345d,0x3461,0x3465,0x3469,0x346d,0x3471,0x3475,0x3479,0x347d,0x3483,0x3487,
-0x348b,0x348f,0x3493,0x3497,0x349b,0x34a1,0x34a7,0x34ab,0x34af,0x34b3,0x34b7,0x34bb,0x34bf,0x34c3,0x34c7,0x34c7,
-0x34cb,0x34d1,0x34d5,0x2c39,0x34d9,0x34dd,0x34e3,0x34e7,0x34eb,0x34ef,0x34f3,0x34f7,0x2f6d,0x34fb,0x34ff,0x3503,
-0x3509,0x350d,0x3513,0x3517,0x351b,0x351f,0x3523,0x3527,0x352b,0x352f,0x3533,0x3537,0x353b,0x353f,0x3545,0x3549,
-0x354d,0x3551,0x2b61,0x3555,0x355b,0x355f,0x355f,0x3565,0x3569,0x3569,0x356d,0x3571,0x3577,0x357d,0x3581,0x3585,
-0x3589,0x358d,0x3591,0x3595,0x3599,0x359d,0x35a1,0x2f71,0x35a5,0x35ab,0x35af,0x35b3,0x307f,0x35b3,0x35b7,0x2f79,
-0x35bb,0x35bf,0x35c3,0x35c7,0x2f7d,0x2af5,0x35cb,0x35cf,0x35d3,0x35d7,0x35db,0x35df,0x35e3,0x35e9,0x35ed,0x35f1,
-0x35f5,0x35f9,0x35fd,0x3603,0x3607,0x360b,0x360f,0x3613,0x3617,0x361b,0x361f,0x3623,0x2f81,0x3627,0x362b,0x3631,
-0x3635,0x3639,0x363d,0x2f89,0x3641,0x3645,0x3649,0x364d,0x3651,0x3655,0x3659,0x365d,0x2b65,0x309f,0x3661,0x3665,
-0x3669,0x366d,0x3673,0x3677,0x367b,0x367f,0x2f8d,0x3683,0x3689,0x368d,0x3691,0x3151,0x3695,0x3699,0x369d,0x36a1,
-0x36a5,0x36ab,0x36af,0x36b3,0x36b7,0x36bd,0x36c1,0x36c5,0x36c9,0x2c7d,0x36cd,0x36d1,0x36d7,0x36dd,0x36e3,0x36e7,
-0x36ed,0x36f1,0x36f5,0x36f9,0x36fd,0x2f91,0x2dd9,0x3701,0x3705,0x3709,0x370d,0x3713,0x3717,0x371b,0x371f,0x30af,
-0x3723,0x3727,0x372d,0x3731,0x3735,0x373b,0x3741,0x3745,0x30b3,0x3749,0x374d,0x3751,0x3755,0x3759,0x375d,0x3761,
-0x3767,0x376b,0x3771,0x3775,0x377b,0x30bb,0x377f,0x3783,0x3789,0x378d,0x3791,0x3797,0x379d,0x37a1,0x37a5,0x37a9,
-0x37ad,0x37ad,0x37b1,0x37b5,0x30c3,0x37b9,0x37bd,0x37c1,0x37c5,0x37c9,0x37cf,0x37d3,0x2c45,0x37d9,0x37df,0x37e3,
-0x37e9,0x37ef,0x37f5,0x37f9,0x30db,0x37fd,0x3803,0x3809,0x380f,0x3815,0x3819,0x3819,0x30df,0x3159,0x381d,0x3821,
-0x3825,0x3829,0x382f,0x2bad,0x30e7,0x3833,0x3837,0x2fbd,0x383d,0x3843,0x2f05,0x3849,0x384d,0x2fcd,0x3851,0x3855,
-0x3859,0x385f,0x385f,0x3865,0x3869,0x386d,0x3873,0x3877,0x387b,0x387f,0x3885,0x3889,0x388d,0x3891,0x3895,0x3899,
-0x389f,0x38a3,0x38a7,0x38ab,0x38af,0x38b3,0x38b7,0x38bd,0x38c3,0x38c7,0x38cd,0x38d1,0x38d7,0x38db,0x2fe5,0x38df,
-0x38e5,0x38eb,0x38ef,0x38f5,0x38f9,0x38ff,0x3903,0x3907,0x390b,0x390f,0x3913,0x3917,0x391d,0x3923,0x3929,0x3565,
-0x392f,0x3933,0x3937,0x393b,0x393f,0x3943,0x3947,0x394b,0x394f,0x3953,0x3957,0x395b,0x2c8d,0x3961,0x3965,0x3969,
-0x396d,0x3971,0x3975,0x2ff1,0x3979,0x397d,0x3981,0x3985,0x3989,0x398f,0x3995,0x399b,0x399f,0x39a3,0x39a7,0x39ab,
-0x39b1,0x39b5,0x39bb,0x39bf,0x39c3,0x39c9,0x39cf,0x39d3,0x2b99,0x39d7,0x39db,0x39df,0x39e3,0x39e7,0x39eb,0x3103,
-0x39ef,0x39f3,0x39f7,0x39fb,0x39ff,0x3a03,0x3a07,0x3a0b,0x3a0f,0x3a13,0x3a19,0x3a1d,0x3a21,0x3a25,0x3a29,0x3a2d,
-0x3a33,0x3a39,0x3a3d,0x3a41,0x3117,0x311b,0x3a45,0x3a49,0x3a4f,0x3a53,0x3a57,0x3a5b,0x3a5f,0x3a65,0x3a6b,0x3a6f,
-0x3a73,0x3a77,0x3a7d,0x311f,0x3a81,0x3a87,0x3a8d,0x3a91,0x3a95,0x3a99,0x3a9f,0x3aa3,0x3aa7,0x3aab,0x3aaf,0x3ab3,
-0x3ab7,0x3abb,0x3ac1,0x3ac5,0x3ac9,0x3acd,0x3ad3,0x3ad7,0x3adb,0x3adf,0x3ae3,0x3ae9,0x3aef,0x3af3,0x3af7,0x3afb,
-0x3b01,0x3b05,0x3137,0x3137,0x3b0b,0x3b0f,0x3b15,0x3b19,0x3b1d,0x3b21,0x3b25,0x3b29,0x3b2d,0x3b31,0x313b,0x3b37,
-0x3b3b,0x3b3f,0x3b43,0x3b47,0x3b4b,0x3b51,0x3b55,0x3b5b,0x3b61,0x3b67,0x3b6b,0x3b6f,0x3b73,0x3b77,0x3b7b,0x3b7f,
-0x3b83,0x3b87,1,1,2,2,2,2,2,2,2,2,2,2,2,2,
-2,2,2,2,2,2,2,1,1,1,1,1,1,1,1,1,
-1,1,1,1,1,0xfe00,0xfe00,0xfe00,0xfe00,0xfe00,0xfe00,0xfe00,0xfe00,0xfe00,0xfe00,0xfe00,
-0xfe00,0xfe00,0xfe00,0xfe00,0xfe00,0xfe00,0xfe00,0xfe00,0xfe00,0xfe00,1,1,1,1,1,1,
-1,1,1,1,0xfe00,0xfe00,0xfe00,0xfe00,0xfe00,0xfe00,0xfe00,0xfe00,0xfe00,0xfe00,0xfe00,0xfe00,
-0xfe00,0xfe00,0xfe00,0xfe00,0xfe00,0xfe00,0xfe00,0xfe00,0xfe00,0xfe00,0xfe00,0xfe00,0xfe00,0xfe00,0xfe00,1,
-1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
-1,1,1,1,1,1,1,1,1,1,1,1,0xadc,0x1283,0x1283,0x1283,
-0x1283,0x1283,0x1283,0x1283,0x1283,0x1283,0x1283,0x1283,0x1283,0x1283,0x1283,0x1283,0x1283,0x1283,0x1283,0x1283,
-0x1283,0x1283,0x1283,0x1283,0x1283,0x1283,0x1283,0x1283,0xadc,0x1283,0x1283,0x1283,0x1283,0x1283,0x1283,0x1283,
-0x1283,0x1283,0x1283,0x1283,0x1283,0x1283,0x1283,0x1283,0x1283,0x1283,0x1283,0x1283,0x1283,0x1283,0x1283,0x1283,
+0xffcc,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,1,1,1,1,1,0xffb4,0xffc8,0xffd0,0xffbc,0xffc0,
+0xffc0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
+1,0x9ac,1,1,1,1,0x9b0,0x27fd,0x9b4,0x2803,0x9b8,0x2809,0x9bc,0x280f,0x9c0,0x2815,
+0x9c4,0x281b,0x9c8,0x2821,0x9cc,0x2827,0x9d0,0x282d,0x9d4,0x2833,0x9d8,0x2839,0x9dc,0x283f,1,0x9e0,
+0x2845,0x9e4,0x284b,0x9e8,0x2851,1,1,1,1,1,0x9ec,0x2857,0x285d,0x9f4,0x2863,0x2869,
+0x9fc,0x286f,0x2875,0xa04,0x287b,0x2881,0xa0c,0x2887,0x288d,1,1,1,1,1,1,1,
+1,1,1,1,1,1,1,1,1,1,1,1,1,0x2893,1,1,
+1,1,0xfc10,0xfc10,1,1,0xa14,0x2899,1,1,1,1,1,1,1,0xa18,
+1,1,1,1,0xa1c,0x289f,0xa20,0x28a5,0xa24,0x28ab,0xa28,0x28b1,0xa2c,0x28b7,0xa30,0x28bd,
+0xa34,0x28c3,0xa38,0x28c9,0xa3c,0x28cf,0xa40,0x28d5,0xa44,0x28db,0xa48,0x28e1,1,0xa4c,0x28e7,0xa50,
+0x28ed,0xa54,0x28f3,1,1,1,1,1,0xa58,0x28f9,0x28ff,0xa60,0x2905,0x290b,0xa68,0x2911,
+0x2917,0xa70,0x291d,0x2923,0xa78,0x2929,0x292f,1,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,1,1,0xa80,0xa84,0xa88,0xa8c,1,0x2935,1,1,
+0x293b,0x2941,0x2947,0x294d,1,1,0xa90,0x2953,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,1,0xffcc,1,1,1,1,0xffcc,0xffcc,0xffcc,0xffcc,
+0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,1,1,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
+1,1,1,1,0xffcc,0xffcc,1,1,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,0xffcc,0xffcc,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,0xfe12,1,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
-1,1,1,1,1,1,1,1,1,1,1,1,0x1283,0x1283,0x1283,0x1283,
-0xadc,0x1283,0x1283,0x1283,0x1283,0x1283,0x1283,0x1283,0x1283,0x1283,0x1283,0x1283,0x1283,0x1283,0x1283,0x1283,
-0x1283,0x1283,0x1283,0x1283,0x1283,0x1283,0x1283,0x1283,0x1283,0x1283,0x1283,0x1283,0x3c54,1,0x3c54,0x3c54,
-0x3c54,0x3c54,0x3c54,0x3c54,1,1,1,1,1,1,1,1,1,1,1,1,
-1,1,1,1,1,1,0x3c54,1,1,1,1,1,1,1,1,1,
-1,1,1,1,1,1,1,0x3c54,1,1,1,1,0x3c54,1,1,1,
-0x3c54,1,0x3c54,1,1,1,1,1,1,1,1,1,1,1,1,1,
 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
-1,1,0x3b87,1,1,1,1,1
+0xfe12,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,1,1,1,1,1,1,0xffcc,0xffcc,0xffcc,0xffcc,
+0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,1,1,
+1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,1,1,1,0xffb8,0xffb8,0xffb8,1,1,1,1,
+1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0xfe12,
+1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0xffcc,
+1,0xffcc,0xffcc,0xffb8,1,1,0xffcc,0xffcc,1,1,1,1,1,0xffcc,0xffcc,1,
+0xffcc,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
+1,1,1,1,1,0xfe12,1,1,1,1,1,1,1,1,1,0xadc,
+0x1283,0x1283,0x1283,0x1283,0x1283,0x1283,0x1283,0x1283,0x1283,0x1283,0x1283,0x1283,0x1283,0x1283,0x1283,0x1283,
+0x1283,0x1283,0x1283,0x1283,0x1283,0x1283,0x1283,0x1283,0x1283,0x1283,0x1283,0xadc,0x1283,0x1283,0x1283,0x1283,
+0x1283,0x1283,0x1283,0x1283,0x1283,0x1283,0x1283,0x1283,0x1283,0x1283,0x1283,0x1283,0x1283,0x1283,0x1283,0x1283,
+0x1283,0x1283,0x1283,0x1283,0x1283,0x1283,0x1283,0xadc,0x1283,0x1283,0x1283,0x1283,0x1283,0x1283,0x1283,0x1283,
+0x1283,0x1283,0x1283,0x1283,0x1283,0x1283,0x1283,0x1283,0x1283,0x1283,0x1283,0x1283,0x1283,0x1283,0x1283,0x1283,
+0x1283,0x1283,0x1283,0xadc,0x1283,0x1283,0x1283,0x1283,0x1283,0x1283,0x1283,0x1283,0x1283,0x1283,0x1283,0x1283,
+0x1283,0x1283,0x1283,0x1283,0x1283,0x1283,0x1283,0x1283,0x1283,0x1283,0x1283,0x1283,0x1283,0x1283,0x1283,1,
+1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,1,1,1,1,1,0x3c56,1,0x3c56,0x3c56,0x3c56,
+0x3c56,0x3c56,0x3c56,1,1,1,1,1,1,1,1,1,1,1,1,1,
+1,1,1,1,1,0x3c56,1,1,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,1,1,1,1,0x3c56,1,1,1,1,0x3c56,
+1,1,1,0x3c56,1,0x3c56,1,1,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
+1,1,1,1,0x3b87,1,0x2ac5,0x2ac9,0x2acd,0x2ad1,0x2ad5,0x2ad9,0x2add,0x2ae1,0x2ae1,0x2ae5,
+0x2ae9,0x2aed,0x2af1,0x2af5,0x2af9,0x2afd,0x2b01,0x2b05,0x2b09,0x2b0d,0x2b11,0x2b15,0x2b19,0x2b1d,0x2b21,0x2b25,
+0x2b29,0x2b2d,0x2b31,0x2b35,0x2b39,0x2b3d,0x2b41,0x2b45,0x2b49,0x2b4d,0x2b51,0x2b55,0x2b59,0x2b5d,0x2b61,0x2b65,
+0x2b69,0x2b6d,0x2b71,0x2b75,0x2b79,0x2b7d,0x2b81,0x2b85,0x2b89,0x2b8d,0x2b91,0x2b95,0x2b99,0x2b9d,0x2ba1,0x2ba5,
+0x2ba9,0x2bad,0x2bb1,0x2bb5,0x2bb9,0x2bbd,0x2bc1,0x2bc5,0x2bc9,0x2bcd,0x2bd1,0x2bd5,0x2bd9,0x2bdd,0x2be1,0x2be5,
+0x2be9,0x2bed,0x2bf1,0x2bf5,0x2bf9,0x2bfd,0x2c01,0x2c05,0x2c09,0x2c0d,0x2c11,0x2c15,0x2c19,0x2c1d,0x2c21,0x2c25,
+0x2c29,0x2c2d,0x2b11,0x2c31,0x2c35,0x2c39,0x2c3d,0x2c41,0x2c45,0x2c49,0x2c4d,0x2c51,0x2c55,0x2c59,0x2c5d,0x2c61,
+0x2c65,0x2c69,0x2c6d,0x2c71,0x2c75,0x2c79,0x2c7d,0x2c81,0x2c85,0x2c89,0x2c8d,0x2c91,0x2c95,0x2c99,0x2c9d,0x2ca1,
+0x2ca5,0x2ca9,0x2cad,0x2cb1,0x2cb5,0x2cb9,0x2cbd,0x2cc1,0x2cc5,0x2cc9,0x2ccd,0x2cd1,0x2cd5,0x2cd9,0x2cdd,0x2ce1,
+0x2ce5,0x2ce9,0x2ced,0x2cf1,0x2cf5,0x2cf9,0x2cfd,0x2d01,0x2d05,0x2d09,0x2d0d,0x2d11,0x2d15,0x2d19,0x2d1d,0x2d21,
+0x2d25,0x2d29,0x2d2d,0x2d31,0x2d35,0x2d39,0x2d3d,0x2c79,0x2d41,0x2d45,0x2d49,0x2d4d,0x2d51,0x2d55,0x2d59,0x2d5d,
+0x2c39,0x2d61,0x2d65,0x2d69,0x2d6d,0x2d71,0x2d75,0x2d79,0x2d7d,0x2d81,0x2d85,0x2d89,0x2d8d,0x2d91,0x2d95,0x2d99,
+0x2d9d,0x2da1,0x2da5,0x2da9,0x2dad,0x2b11,0x2db1,0x2db5,0x2db9,0x2dbd,0x2dc1,0x2dc5,0x2dc9,0x2dcd,0x2dd1,0x2dd5,
+0x2dd9,0x2ddd,0x2de1,0x2de5,0x2de9,0x2ded,0x2df1,0x2df5,0x2df9,0x2dfd,0x2e01,0x2e05,0x2e09,0x2e0d,0x2e11,0x2e15,
+0x2e19,0x2c41,0x2e1d,0x2e21,0x2e25,0x2e29,0x2e2d,0x2e31,0x2e35,0x2e39,0x2e3d,0x2e41,0x2e45,0x2e49,0x2e4d,0x2e51,
+0x2e55,0x2e59,0x2e5d,0x2e61,0x2e65,0x2e69,0x2e6d,0x2e71,0x2e75,0x2e79,0x2e7d,0x2e81,0x2e85,0x2e89,0x2e8d,0x2e91,
+0x2e95,0x2e99,0x2e9d,0x2ea1,0x2ea5,0x2ea9,0x2ead,0x2eb1,0x2eb5,0x2eb9,0x2ebd,0x2ec1,0x2ec5,0x2ec9,0x2ecd,0x2ed1,
+0x2ed5,0x2ed9,0x2edd,0x2ee1,1,1,0x2ee5,1,0x2ee9,1,1,0x2eed,0x2ef1,0x2ef5,0x2ef9,0x2efd,
+0x2f01,0x2f05,0x2f09,0x2f0d,0x2f11,1,0x2f15,1,0x2f19,1,1,0x2f1d,0x2f21,1,1,1,
+0x2f25,0x2f29,0x2f2d,0x2f31,0x2f35,0x2f39,0x2f3d,0x2f41,0x2f45,0x2f49,0x2f4d,0x2f51,0x2f55,0x2f59,0x2f5d,0x2f61,
+0x2f65,0x2f69,0x2f6d,0x2f71,0x2f75,0x2f79,0x2f7d,0x2f81,0x2f85,0x2f89,0x2f8d,0x2f91,0x2f95,0x2f99,0x2f9d,0x2fa1,
+0x2fa5,0x2fa9,0x2fad,0x2fb1,0x2fb5,0x2fb9,0x2fbd,0x2fc1,0x2fc5,0x2fc9,0x2fcd,0x2fd1,0x2fd5,0x2d15,0x2fd9,0x2fdd,
+0x2fe1,0x2fe5,0x2fe9,0x2fed,0x2fed,0x2ff1,0x2ff5,0x2ff9,0x2ffd,0x3001,0x3005,0x3009,0x300d,0x2f1d,0x3011,0x3015,
+0x3019,0x301d,0x3021,0x3027,1,1,0x302b,0x302f,0x3033,0x3037,0x303b,0x303f,0x3043,0x3047,0x2f55,0x304b,
+0x304f,0x3053,0x2ee5,0x3057,0x305b,0x305f,0x3063,0x3067,0x306b,0x306f,0x3073,0x3077,0x307b,0x307f,0x3083,0x2f79,
+0x3087,0x2f7d,0x308b,0x308f,0x3093,0x3097,0x309b,0x2ee9,0x2b65,0x309f,0x30a3,0x30a7,0x2c7d,0x2dd9,0x30ab,0x30af,
+0x2f99,0x30b3,0x2f9d,0x30b7,0x30bb,0x30bf,0x2ef1,0x30c3,0x30c7,0x30cb,0x30cf,0x30d3,0x2ef5,0x30d7,0x30db,0x30df,
+0x30e3,0x30e7,0x30eb,0x2fd5,0x30ef,0x30f3,0x2d15,0x30f7,0x2fe5,0x30fb,0x30ff,0x3103,0x3107,0x310b,0x2ff9,0x310f,
+0x2f19,0x3113,0x2ffd,0x2c31,0x3117,0x3001,0x311b,0x3009,0x311f,0x3123,0x3127,0x312b,0x312f,0x3011,0x2f09,0x3133,
+0x3015,0x3137,0x3019,0x313b,0x2ae1,0x313f,0x3145,0x314b,0x3151,0x3155,0x3159,0x315d,0x3163,0x3169,0x316f,0x3173,
+1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,0x3176,0xfe34,0x317c,1,1,1,1,1,1,1,
+1,1,1,0x3182,0x3188,0x3190,0x319a,0x31a2,0x31a8,0x31ae,0x31b4,0x31ba,0x31c0,0x31c6,0x31cc,0x31d2,
+1,0x31d8,0x31de,0x31e4,0x31ea,0x31f0,1,0x31f6,1,0x31fc,0x3202,1,0x3208,0x320e,1,0x3214,
+0x321a,0x3220,0x3226,0x322c,0x3232,0x3238,0x323e,0x3244,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,1,1,1,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,
+0xffb8,0xffb8,0xffb8,0xffb8,0xffb8,0xffb8,0xffb8,0xffcc,0xffcc,1,1,1,1,1,1,1,
+1,1,1,1,1,1,1,1,1,0xffb8,1,0xffcc,1,1,1,1,
+1,1,1,1,0xffcc,0xfe02,0xffb8,1,1,1,1,0xfe12,1,1,1,1,
+0xffcc,0xffcc,0xffcc,0xffcc,1,1,1,1,1,1,1,1,0xffb8,0xffb8,0xffcc,0xffcc,
+0xffcc,0xffb8,0xffcc,0xffb8,0xffb8,0xffb8,1,1,1,1,1,1,1,1,1,0xa94,
+0x2959,0xa9a,0x2963,1,1,1,1,1,0xaa0,1,1,1,1,1,0x296d,1,
+1,1,1,1,1,1,1,1,0xfe12,0xfc0e,1,1,1,1,1,1,
+1,0xfc00,1,1,1,1,1,1,0x2977,0x2981,1,0xaa6,0xaac,0xfe12,0xfe12,1,
+1,1,1,1,1,1,1,1,1,1,0xfe12,1,1,1,1,1,
+1,1,1,1,0xfe0e,1,1,1,1,1,0xfe12,0xfe0e,1,1,1,1,
+1,1,1,1,1,0xfe0e,0xfe12,1,1,1,1,1,1,1,1,1,
+1,1,0xfe0e,0xfe0e,1,0xfc00,1,1,1,1,1,1,1,0xab2,1,1,
+1,0x298b,0x2995,0xfe12,1,1,1,1,1,1,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,
+0xffcc,1,1,1,0xfe12,1,1,1,0xfe0e,1,1,1,1,1,1,1,
+1,1,0xfc00,1,1,1,1,1,1,1,1,0xabe,0xfc00,0x299f,0x29a9,0xfc00,
+0x29b3,1,1,0xfe12,0xfe0e,1,1,1,1,1,1,1,1,1,1,1,
+1,0xad0,0xad6,0x29bd,0x29c7,1,1,1,0xfe12,0xfe0e,1,1,1,1,1,1,
+1,1,1,1,1,1,1,1,1,0xfe12,0xfe0e,1,1,1,1,1,
+1,1,1,0xfe02,0xfe02,0xfe02,0xfe02,0xfe02,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,0xfe02,1,1,1,1,1,1,1,1,1,
+1,1,1,1,1,0x324a,0x3254,0x3268,0x3280,0x3298,0x32b0,0x32c8,0xffb0,0xffb0,0xfe02,0xfe02,
+0xfe02,1,1,1,0xffc4,0xffb0,0xffb0,0xffb0,1,1,1,1,1,1,1,1,
+0xffb8,0xffb8,0xffb8,0xffb8,0xffb8,1,1,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffb8,0xffb8,1,1,
+1,1,1,1,1,1,1,1,0xffcc,0xffcc,0xffcc,0xffcc,1,1,1,1,
+1,1,1,1,1,1,1,0x32d6,0x32e0,0x32f4,0x330c,0x3324,0x333c,1,1,1,
+1,1,1,1,1,1,1,1,1,1,1,1,0xffcc,0xffcc,0xffcc,0xffcc,
+0xffcc,0xffcc,0xffcc,1,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,1,1,0xffcc,
+0xffcc,0xffcc,0xffcc,0xffcc,1,0xffcc,0xffcc,1,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,1,1,1,
+1,1,0xffb8,0xffb8,0xffb8,0xffb8,0xffb8,0xffb8,0xffb8,1,1,1,1,1,1,1,
+1,1,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xfe0e,1,1,1,1,1,0x334b,0x334f,
+0x3353,0x3357,0x335d,0x2f3d,0x3361,0x3365,0x3369,0x336d,0x2f41,0x3371,0x3375,0x3379,0x2f45,0x337f,0x3383,0x3387,
+0x338b,0x3391,0x3395,0x3399,0x339d,0x33a3,0x33a7,0x33ab,0x33af,0x302f,0x33b3,0x33b9,0x33bd,0x33c1,0x33c5,0x33c9,
+0x33cd,0x33d1,0x33d5,0x3043,0x2f49,0x2f4d,0x3047,0x33d9,0x33dd,0x2c49,0x33e1,0x2f51,0x33e5,0x33e9,0x33ed,0x33f1,
+0x33f1,0x33f1,0x33f5,0x33fb,0x33ff,0x3403,0x3407,0x340d,0x3411,0x3415,0x3419,0x341d,0x3421,0x3425,0x3429,0x342d,
+0x3431,0x3435,0x3439,0x343d,0x343d,0x304f,0x3441,0x3445,0x3449,0x344d,0x2f59,0x3451,0x3455,0x3459,0x2ead,0x345d,
+0x3461,0x3465,0x3469,0x346d,0x3471,0x3475,0x3479,0x347d,0x3483,0x3487,0x348b,0x348f,0x3493,0x3497,0x349b,0x34a1,
+0x34a7,0x34ab,0x34af,0x34b3,0x34b7,0x34bb,0x34bf,0x34c3,0x34c7,0x34c7,0x34cb,0x34d1,0x34d5,0x2c39,0x34d9,0x34dd,
+0x34e3,0x34e7,0x34eb,0x34ef,0x34f3,0x34f7,0x2f6d,0x34fb,0x34ff,0x3503,0x3509,0x350d,0x3513,0x3517,0x351b,0x351f,
+0x3523,0x3527,0x352b,0x352f,0x3533,0x3537,0x353b,0x353f,0x3545,0x3549,0x354d,0x3551,0x2b61,0x3555,0x355b,0x355f,
+0x355f,0x3565,0x3569,0x3569,0x356d,0x3571,0x3577,0x357d,0x3581,0x3585,0x3589,0x358d,0x3591,0x3595,0x3599,0x359d,
+0x35a1,0x2f71,0x35a5,0x35ab,0x35af,0x35b3,0x307f,0x35b3,0x35b7,0x2f79,0x35bb,0x35bf,0x35c3,0x35c7,0x2f7d,0x2af5,
+0x35cb,0x35cf,0x35d3,0x35d7,0x35db,0x35df,0x35e3,0x35e9,0x35ed,0x35f1,0x35f5,0x35f9,0x35fd,0x3603,0x3607,0x360b,
+0x360f,0x3613,0x3617,0x361b,0x361f,0x3623,0x2f81,0x3627,0x362b,0x3631,0x3635,0x3639,0x363d,0x2f89,0x3641,0x3645,
+0x3649,0x364d,0x3651,0x3655,0x3659,0x365d,0x2b65,0x309f,0x3661,0x3665,0x3669,0x366d,0x3673,0x3677,0x367b,0x367f,
+0x2f8d,0x3683,0x3689,0x368d,0x3691,0x3151,0x3695,0x3699,0x369d,0x36a1,0x36a5,0x36ab,0x36af,0x36b3,0x36b7,0x36bd,
+0x36c1,0x36c5,0x36c9,0x2c7d,0x36cd,0x36d1,0x36d7,0x36dd,0x36e3,0x36e7,0x36ed,0x36f1,0x36f5,0x36f9,0x36fd,0x2f91,
+0x2dd9,0x3701,0x3705,0x3709,0x370d,0x3713,0x3717,0x371b,0x371f,0x30af,0x3723,0x3727,0x372d,0x3731,0x3735,0x373b,
+0x3741,0x3745,0x30b3,0x3749,0x374d,0x3751,0x3755,0x3759,0x375d,0x3761,0x3767,0x376b,0x3771,0x3775,0x377b,0x30bb,
+0x377f,0x3783,0x3789,0x378d,0x3791,0x3797,0x379d,0x37a1,0x37a5,0x37a9,0x37ad,0x37ad,0x37b1,0x37b5,0x30c3,0x37b9,
+0x37bd,0x37c1,0x37c5,0x37c9,0x37cf,0x37d3,0x2c45,0x37d9,0x37df,0x37e3,0x37e9,0x37ef,0x37f5,0x37f9,0x30db,0x37fd,
+0x3803,0x3809,0x380f,0x3815,0x3819,0x3819,0x30df,0x3159,0x381d,0x3821,0x3825,0x3829,0x382f,0x2bad,0x30e7,0x3833,
+0x3837,0x2fbd,0x383d,0x3843,0x2f05,0x3849,0x384d,0x2fcd,0x3851,0x3855,0x3859,0x385f,0x385f,0x3865,0x3869,0x386d,
+0x3873,0x3877,0x387b,0x387f,0x3885,0x3889,0x388d,0x3891,0x3895,0x3899,0x389f,0x38a3,0x38a7,0x38ab,0x38af,0x38b3,
+0x38b7,0x38bd,0x38c3,0x38c7,0x38cd,0x38d1,0x38d7,0x38db,0x2fe5,0x38df,0x38e5,0x38eb,0x38ef,0x38f5,0x38f9,0x38ff,
+0x3903,0x3907,0x390b,0x390f,0x3913,0x3917,0x391d,0x3923,0x3929,0x3565,0x392f,0x3933,0x3937,0x393b,0x393f,0x3943,
+0x3947,0x394b,0x394f,0x3953,0x3957,0x395b,0x2c8d,0x3961,0x3965,0x3969,0x396d,0x3971,0x3975,0x2ff1,0x3979,0x397d,
+0x3981,0x3985,0x3989,0x398f,0x3995,0x399b,0x399f,0x39a3,0x39a7,0x39ab,0x39b1,0x39b5,0x39bb,0x39bf,0x39c3,0x39c9,
+0x39cf,0x39d3,0x2b99,0x39d7,0x39db,0x39df,0x39e3,0x39e7,0x39eb,0x3103,0x39ef,0x39f3,0x39f7,0x39fb,0x39ff,0x3a03,
+0x3a07,0x3a0b,0x3a0f,0x3a13,0x3a19,0x3a1d,0x3a21,0x3a25,0x3a29,0x3a2d,0x3a33,0x3a39,0x3a3d,0x3a41,0x3117,0x311b,
+0x3a45,0x3a49,0x3a4f,0x3a53,0x3a57,0x3a5b,0x3a5f,0x3a65,0x3a6b,0x3a6f,0x3a73,0x3a77,0x3a7d,0x311f,0x3a81,0x3a87,
+0x3a8d,0x3a91,0x3a95,0x3a99,0x3a9f,0x3aa3,0x3aa7,0x3aab,0x3aaf,0x3ab3,0x3ab7,0x3abb,0x3ac1,0x3ac5,0x3ac9,0x3acd,
+0x3ad3,0x3ad7,0x3adb,0x3adf,0x3ae3,0x3ae9,0x3aef,0x3af3,0x3af7,0x3afb,0x3b01,0x3b05,0x3137,0x3137,0x3b0b,0x3b0f,
+0x3b15,0x3b19,0x3b1d,0x3b21,0x3b25,0x3b29,0x3b2d,0x3b31,0x313b,0x3b37,0x3b3b,0x3b3f,0x3b43,0x3b47,0x3b4b,0x3b51,
+0x3b55,0x3b5b,0x3b61,0x3b67,0x3b6b,0x3b6f,0x3b73,0x3b77,0x3b7b,0x3b7f,0x3b83,0x3b87,1,1
+};
+
+static const UCPTrie norm2_nfc_data_trie={
+    norm2_nfc_data_trieIndex,
+    { norm2_nfc_data_trieData },
+    1690, 7822,
+    0x2fc00, 0x30,
+    0, 0,
+    0, 0,
+    0xc4, 0x226,
+    0x1,
 };
 
 static const uint16_t norm2_nfc_data_extraData[7724]={
@@ -1151,19 +1136,4 @@ static const uint8_t norm2_nfc_data_smallFCD[256]={
 0,0,0,0,0,0,0,0,0,0,0,7,0,0,2,0
 };
 
-static const UTrie2 norm2_nfc_data_trie={
-    norm2_nfc_data_trieIndex,
-    norm2_nfc_data_trieIndex+2728,
-    NULL,
-    2728,
-    7248,
-    0x188,
-    0xb24,
-    0x1,
-    0x1,
-    0x30000,
-    0x26f4,
-    NULL, 0, FALSE, FALSE, 0, NULL
-};
-
 #endif  // INCLUDED_FROM_NORMALIZER2_CPP
index 0f12dfc..6be7e0b 100644 (file)
 
 using icu::Normalizer2Impl;
 
+#if NORM2_HARDCODE_NFC_DATA
 // NFC/NFD data machine-generated by gennorm2 --csource
 #define INCLUDED_FROM_NORMALIZER2_CPP
 #include "norm2_nfc_data.h"
+#endif
 
 U_NAMESPACE_BEGIN
 
@@ -176,6 +178,36 @@ FCDNormalizer2::~FCDNormalizer2() {}
 
 // instance cache ---------------------------------------------------------- ***
 
+U_CDECL_BEGIN
+static UBool U_CALLCONV uprv_normalizer2_cleanup();
+U_CDECL_END
+
+static Normalizer2   *noopSingleton;
+static icu::UInitOnce noopInitOnce = U_INITONCE_INITIALIZER;
+
+static void U_CALLCONV initNoopSingleton(UErrorCode &errorCode) {
+    if(U_FAILURE(errorCode)) {
+        return;
+    }
+    noopSingleton=new NoopNormalizer2;
+    if(noopSingleton==NULL) {
+        errorCode=U_MEMORY_ALLOCATION_ERROR;
+        return;
+    }
+    ucln_common_registerCleanup(UCLN_COMMON_NORMALIZER2, uprv_normalizer2_cleanup);
+}
+
+const Normalizer2 *Normalizer2Factory::getNoopInstance(UErrorCode &errorCode) {
+    if(U_FAILURE(errorCode)) { return NULL; }
+    umtx_initOnce(noopInitOnce, &initNoopSingleton, errorCode);
+    return noopSingleton;
+}
+
+const Normalizer2Impl *
+Normalizer2Factory::getImpl(const Normalizer2 *norm2) {
+    return &((Normalizer2WithImpl *)norm2)->impl;
+}
+
 Norm2AllModes::~Norm2AllModes() {
     delete impl;
 }
@@ -195,6 +227,7 @@ Norm2AllModes::createInstance(Normalizer2Impl *impl, UErrorCode &errorCode) {
     return allModes;
 }
 
+#if NORM2_HARDCODE_NFC_DATA
 Norm2AllModes *
 Norm2AllModes::createNFCInstance(UErrorCode &errorCode) {
     if(U_FAILURE(errorCode)) {
@@ -210,48 +243,15 @@ Norm2AllModes::createNFCInstance(UErrorCode &errorCode) {
     return createInstance(impl, errorCode);
 }
 
-U_CDECL_BEGIN
-static UBool U_CALLCONV uprv_normalizer2_cleanup();
-U_CDECL_END
-
 static Norm2AllModes *nfcSingleton;
-static Normalizer2   *noopSingleton;
 
 static icu::UInitOnce nfcInitOnce = U_INITONCE_INITIALIZER;
-static icu::UInitOnce noopInitOnce = U_INITONCE_INITIALIZER;
 
-// UInitOnce singleton initialization functions
 static void U_CALLCONV initNFCSingleton(UErrorCode &errorCode) {
     nfcSingleton=Norm2AllModes::createNFCInstance(errorCode);
     ucln_common_registerCleanup(UCLN_COMMON_NORMALIZER2, uprv_normalizer2_cleanup);
 }
 
-static void U_CALLCONV initNoopSingleton(UErrorCode &errorCode) {
-    if(U_FAILURE(errorCode)) {
-        return;
-    }
-    noopSingleton=new NoopNormalizer2;
-    if(noopSingleton==NULL) {
-        errorCode=U_MEMORY_ALLOCATION_ERROR;
-        return;
-    }
-    ucln_common_registerCleanup(UCLN_COMMON_NORMALIZER2, uprv_normalizer2_cleanup);
-}
-
-U_CDECL_BEGIN
-
-static UBool U_CALLCONV uprv_normalizer2_cleanup() {
-    delete nfcSingleton;
-    nfcSingleton = NULL;
-    delete noopSingleton;
-    noopSingleton = NULL;
-    nfcInitOnce.reset(); 
-    noopInitOnce.reset(); 
-    return TRUE;
-}
-
-U_CDECL_END
-
 const Norm2AllModes *
 Norm2AllModes::getNFCInstance(UErrorCode &errorCode) {
     if(U_FAILURE(errorCode)) { return NULL; }
@@ -281,23 +281,29 @@ const Normalizer2 *Normalizer2Factory::getFCCInstance(UErrorCode &errorCode) {
     return allModes!=NULL ? &allModes->fcc : NULL;
 }
 
-const Normalizer2 *Normalizer2Factory::getNoopInstance(UErrorCode &errorCode) {
-    if(U_FAILURE(errorCode)) { return NULL; }
-    umtx_initOnce(noopInitOnce, &initNoopSingleton, errorCode);
-    return noopSingleton;
-}
-
 const Normalizer2Impl *
 Normalizer2Factory::getNFCImpl(UErrorCode &errorCode) {
     const Norm2AllModes *allModes=Norm2AllModes::getNFCInstance(errorCode);
     return allModes!=NULL ? allModes->impl : NULL;
 }
+#endif  // NORM2_HARDCODE_NFC_DATA
 
-const Normalizer2Impl *
-Normalizer2Factory::getImpl(const Normalizer2 *norm2) {
-    return &((Normalizer2WithImpl *)norm2)->impl;
+U_CDECL_BEGIN
+
+static UBool U_CALLCONV uprv_normalizer2_cleanup() {
+    delete noopSingleton;
+    noopSingleton = NULL;
+    noopInitOnce.reset(); 
+#if NORM2_HARDCODE_NFC_DATA
+    delete nfcSingleton;
+    nfcSingleton = NULL;
+    nfcInitOnce.reset(); 
+#endif
+    return TRUE;
 }
 
+U_CDECL_END
+
 U_NAMESPACE_END
 
 // C API ------------------------------------------------------------------- ***
index 15b4a52..e7ae646 100644 (file)
@@ -16,6 +16,8 @@
 *   created by: Markus W. Scherer
 */
 
+// #define UCPTRIE_DEBUG
+
 #include "unicode/utypes.h"
 
 #if !UCONFIG_NO_NORMALIZATION
@@ -24,7 +26,9 @@
 #include "unicode/edits.h"
 #include "unicode/normalizer2.h"
 #include "unicode/stringoptions.h"
+#include "unicode/ucptrie.h"
 #include "unicode/udata.h"
+#include "unicode/umutablecptrie.h"
 #include "unicode/ustring.h"
 #include "unicode/utf16.h"
 #include "unicode/utf8.h"
@@ -34,8 +38,8 @@
 #include "normalizer2impl.h"
 #include "putilimp.h"
 #include "uassert.h"
+#include "ucptrie_impl.h"
 #include "uset_imp.h"
-#include "utrie2.h"
 #include "uvector.h"
 
 U_NAMESPACE_BEGIN
@@ -62,7 +66,7 @@ inline uint8_t leadByteForCP(UChar32 c) {
  * Returns the code point from one single well-formed UTF-8 byte sequence
  * between cpStart and cpLimit.
  *
- * UTrie2 UTF-8 macros do not assemble whole code points (for efficiency).
+ * Trie UTF-8 macros do not assemble whole code points (for efficiency).
  * When we do need the code point, we call this function.
  * We should not need it for normalization-inert data (norm16==0).
  * Illegal sequences yield the error value norm16==0 just like real normalization-inert code points.
@@ -122,7 +126,7 @@ int32_t getJamoTMinusBase(const uint8_t *src, const uint8_t *limit) {
             }
         } else if (src[1] == 0x87) {
             uint8_t t = src[2];
-            if ((int8_t)t <= (int8_t)0x82) {
+            if ((int8_t)t <= (int8_t)0x82u) {
                 return t - (0xa7 - 0x40);
             }
         }
@@ -253,7 +257,7 @@ UBool ReorderingBuffer::appendSupplementary(UChar32 c, uint8_t cc, UErrorCode &e
     return TRUE;
 }
 
-UBool ReorderingBuffer::append(const UChar *s, int32_t length,
+UBool ReorderingBuffer::append(const UChar *s, int32_t length, UBool isNFD,
                                uint8_t leadCC, uint8_t trailCC,
                                UErrorCode &errorCode) {
     if(length==0) {
@@ -280,8 +284,11 @@ UBool ReorderingBuffer::append(const UChar *s, int32_t length,
         while(i<length) {
             U16_NEXT(s, i, length, c);
             if(i<length) {
-                // s must be in NFD, otherwise we need to use getCC().
-                leadCC=Normalizer2Impl::getCCFromYesOrMaybe(impl.getNorm16(c));
+                if (isNFD) {
+                    leadCC = Normalizer2Impl::getCCFromYesOrMaybe(impl.getRawNorm16(c));
+                } else {
+                    leadCC = impl.getCC(impl.getNorm16(c));
+                }
             } else {
                 leadCC=trailCC;
             }
@@ -411,7 +418,8 @@ struct CanonIterData : public UMemory {
     CanonIterData(UErrorCode &errorCode);
     ~CanonIterData();
     void addToStartSet(UChar32 origin, UChar32 decompLead, UErrorCode &errorCode);
-    UTrie2 *trie;
+    UMutableCPTrie *mutableTrie;
+    UCPTrie *trie;
     UVector canonStartSets;  // contains UnicodeSet *
 };
 
@@ -420,22 +428,22 @@ Normalizer2Impl::~Normalizer2Impl() {
 }
 
 void
-Normalizer2Impl::init(const int32_t *inIndexes, const UTrie2 *inTrie,
+Normalizer2Impl::init(const int32_t *inIndexes, const UCPTrie *inTrie,
                       const uint16_t *inExtraData, const uint8_t *inSmallFCD) {
-    minDecompNoCP=inIndexes[IX_MIN_DECOMP_NO_CP];
-    minCompNoMaybeCP=inIndexes[IX_MIN_COMP_NO_MAYBE_CP];
-    minLcccCP=inIndexes[IX_MIN_LCCC_CP];
-
-    minYesNo=inIndexes[IX_MIN_YES_NO];
-    minYesNoMappingsOnly=inIndexes[IX_MIN_YES_NO_MAPPINGS_ONLY];
-    minNoNo=inIndexes[IX_MIN_NO_NO];
-    minNoNoCompBoundaryBefore=inIndexes[IX_MIN_NO_NO_COMP_BOUNDARY_BEFORE];
-    minNoNoCompNoMaybeCC=inIndexes[IX_MIN_NO_NO_COMP_NO_MAYBE_CC];
-    minNoNoEmpty=inIndexes[IX_MIN_NO_NO_EMPTY];
-    limitNoNo=inIndexes[IX_LIMIT_NO_NO];
-    minMaybeYes=inIndexes[IX_MIN_MAYBE_YES];
-    U_ASSERT((minMaybeYes&7)==0);  // 8-aligned for noNoDelta bit fields
-    centerNoNoDelta=(minMaybeYes>>DELTA_SHIFT)-MAX_DELTA-1;
+    minDecompNoCP = static_cast<UChar>(inIndexes[IX_MIN_DECOMP_NO_CP]);
+    minCompNoMaybeCP = static_cast<UChar>(inIndexes[IX_MIN_COMP_NO_MAYBE_CP]);
+    minLcccCP = static_cast<UChar>(inIndexes[IX_MIN_LCCC_CP]);
+
+    minYesNo = static_cast<uint16_t>(inIndexes[IX_MIN_YES_NO]);
+    minYesNoMappingsOnly = static_cast<uint16_t>(inIndexes[IX_MIN_YES_NO_MAPPINGS_ONLY]);
+    minNoNo = static_cast<uint16_t>(inIndexes[IX_MIN_NO_NO]);
+    minNoNoCompBoundaryBefore = static_cast<uint16_t>(inIndexes[IX_MIN_NO_NO_COMP_BOUNDARY_BEFORE]);
+    minNoNoCompNoMaybeCC = static_cast<uint16_t>(inIndexes[IX_MIN_NO_NO_COMP_NO_MAYBE_CC]);
+    minNoNoEmpty = static_cast<uint16_t>(inIndexes[IX_MIN_NO_NO_EMPTY]);
+    limitNoNo = static_cast<uint16_t>(inIndexes[IX_LIMIT_NO_NO]);
+    minMaybeYes = static_cast<uint16_t>(inIndexes[IX_MIN_MAYBE_YES]);
+    U_ASSERT((minMaybeYes & 7) == 0);  // 8-aligned for noNoDelta bit fields
+    centerNoNoDelta = (minMaybeYes >> DELTA_SHIFT) - MAX_DELTA - 1;
 
     normTrie=inTrie;
 
@@ -445,75 +453,8 @@ Normalizer2Impl::init(const int32_t *inIndexes, const UTrie2 *inTrie,
     smallFCD=inSmallFCD;
 }
 
-class LcccContext {
-public:
-    LcccContext(const Normalizer2Impl &ni, UnicodeSet &s) : impl(ni), set(s) {}
-
-    void handleRange(UChar32 start, UChar32 end, uint16_t norm16) {
-        if (norm16 > Normalizer2Impl::MIN_NORMAL_MAYBE_YES &&
-                norm16 != Normalizer2Impl::JAMO_VT) {
-            set.add(start, end);
-        } else if (impl.minNoNoCompNoMaybeCC <= norm16 && norm16 < impl.limitNoNo) {
-            uint16_t fcd16=impl.getFCD16(start);
-            if(fcd16>0xff) { set.add(start, end); }
-        }
-    }
-
-private:
-    const Normalizer2Impl &impl;
-    UnicodeSet &set;
-};
-
-namespace {
-
-struct PropertyStartsContext {
-    PropertyStartsContext(const Normalizer2Impl &ni, const USetAdder *adder)
-            : impl(ni), sa(adder) {}
-
-    const Normalizer2Impl &impl;
-    const USetAdder *sa;
-};
-
-}  // namespace
-
 U_CDECL_BEGIN
 
-static UBool U_CALLCONV
-enumLcccRange(const void *context, UChar32 start, UChar32 end, uint32_t value) {
-    ((LcccContext *)context)->handleRange(start, end, (uint16_t)value);
-    return TRUE;
-}
-
-static UBool U_CALLCONV
-enumNorm16PropertyStartsRange(const void *context, UChar32 start, UChar32 end, uint32_t value) {
-    /* add the start code point to the USet */
-    const PropertyStartsContext *ctx=(const PropertyStartsContext *)context;
-    const USetAdder *sa=ctx->sa;
-    sa->add(sa->set, start);
-    if (start != end && ctx->impl.isAlgorithmicNoNo((uint16_t)value) &&
-            (value & Normalizer2Impl::DELTA_TCCC_MASK) > Normalizer2Impl::DELTA_TCCC_1) {
-        // Range of code points with same-norm16-value algorithmic decompositions.
-        // They might have different non-zero FCD16 values.
-        uint16_t prevFCD16=ctx->impl.getFCD16(start);
-        while(++start<=end) {
-            uint16_t fcd16=ctx->impl.getFCD16(start);
-            if(fcd16!=prevFCD16) {
-                sa->add(sa->set, start);
-                prevFCD16=fcd16;
-            }
-        }
-    }
-    return TRUE;
-}
-
-static UBool U_CALLCONV
-enumPropertyStartsRange(const void *context, UChar32 start, UChar32 /*end*/, uint32_t /*value*/) {
-    /* add the start code point to the USet */
-    const USetAdder *sa=(const USetAdder *)context;
-    sa->add(sa->set, start);
-    return TRUE;
-}
-
 static uint32_t U_CALLCONV
 segmentStarterMapper(const void * /*context*/, uint32_t value) {
     return value&CANON_NOT_SEGMENT_STARTER;
@@ -523,15 +464,44 @@ U_CDECL_END
 
 void
 Normalizer2Impl::addLcccChars(UnicodeSet &set) const {
-    LcccContext context(*this, set);
-    utrie2_enum(normTrie, NULL, enumLcccRange, &context);
+    UChar32 start = 0, end;
+    uint32_t norm16;
+    while ((end = ucptrie_getRange(normTrie, start, UCPMAP_RANGE_FIXED_LEAD_SURROGATES, INERT,
+                                   nullptr, nullptr, &norm16)) >= 0) {
+        if (norm16 > Normalizer2Impl::MIN_NORMAL_MAYBE_YES &&
+                norm16 != Normalizer2Impl::JAMO_VT) {
+            set.add(start, end);
+        } else if (minNoNoCompNoMaybeCC <= norm16 && norm16 < limitNoNo) {
+            uint16_t fcd16 = getFCD16(start);
+            if (fcd16 > 0xff) { set.add(start, end); }
+        }
+        start = end + 1;
+    }
 }
 
 void
 Normalizer2Impl::addPropertyStarts(const USetAdder *sa, UErrorCode & /*errorCode*/) const {
-    /* add the start code point of each same-value range of each trie */
-    PropertyStartsContext context(*this, sa);
-    utrie2_enum(normTrie, NULL, enumNorm16PropertyStartsRange, &context);
+    // Add the start code point of each same-value range of the trie.
+    UChar32 start = 0, end;
+    uint32_t value;
+    while ((end = ucptrie_getRange(normTrie, start, UCPMAP_RANGE_FIXED_LEAD_SURROGATES, INERT,
+                                   nullptr, nullptr, &value)) >= 0) {
+        sa->add(sa->set, start);
+        if (start != end && isAlgorithmicNoNo((uint16_t)value) &&
+                (value & Normalizer2Impl::DELTA_TCCC_MASK) > Normalizer2Impl::DELTA_TCCC_1) {
+            // Range of code points with same-norm16-value algorithmic decompositions.
+            // They might have different non-zero FCD16 values.
+            uint16_t prevFCD16 = getFCD16(start);
+            while (++start <= end) {
+                uint16_t fcd16 = getFCD16(start);
+                if (fcd16 != prevFCD16) {
+                    sa->add(sa->set, start);
+                    prevFCD16 = fcd16;
+                }
+            }
+        }
+        start = end + 1;
+    }
 
     /* add Hangul LV syllables and LV+1 because of skippables */
     for(UChar c=Hangul::HANGUL_BASE; c<Hangul::HANGUL_LIMIT; c+=Hangul::JAMO_T_COUNT) {
@@ -543,10 +513,15 @@ Normalizer2Impl::addPropertyStarts(const USetAdder *sa, UErrorCode & /*errorCode
 
 void
 Normalizer2Impl::addCanonIterPropertyStarts(const USetAdder *sa, UErrorCode &errorCode) const {
-    /* add the start code point of each same-value range of the canonical iterator data trie */
-    if(ensureCanonIterData(errorCode)) {
-        // currently only used for the SEGMENT_STARTER property
-        utrie2_enum(fCanonIterData->trie, segmentStarterMapper, enumPropertyStartsRange, sa);
+    // Add the start code point of each same-value range of the canonical iterator data trie.
+    if (!ensureCanonIterData(errorCode)) { return; }
+    // Currently only used for the SEGMENT_STARTER property.
+    UChar32 start = 0, end;
+    uint32_t value;
+    while ((end = ucptrie_getRange(fCanonIterData->trie, start, UCPMAP_RANGE_NORMAL, 0,
+                                   segmentStarterMapper, nullptr, &value)) >= 0) {
+        sa->add(sa->set, start);
+        start = end + 1;
     }
 }
 
@@ -633,27 +608,23 @@ Normalizer2Impl::decompose(const UChar *src, const UChar *limit,
         // count code units below the minimum or with irrelevant data for the quick check
         for(prevSrc=src; src!=limit;) {
             if( (c=*src)<minNoCP ||
-                isMostDecompYesAndZeroCC(norm16=UTRIE2_GET16_FROM_U16_SINGLE_LEAD(normTrie, c))
+                isMostDecompYesAndZeroCC(norm16=UCPTRIE_FAST_BMP_GET(normTrie, UCPTRIE_16, c))
             ) {
                 ++src;
-            } else if(!U16_IS_SURROGATE(c)) {
+            } else if(!U16_IS_LEAD(c)) {
                 break;
             } else {
                 UChar c2;
-                if(U16_IS_SURROGATE_LEAD(c)) {
-                    if((src+1)!=limit && U16_IS_TRAIL(c2=src[1])) {
-                        c=U16_GET_SUPPLEMENTARY(c, c2);
-                    }
-                } else /* trail surrogate */ {
-                    if(prevSrc<src && U16_IS_LEAD(c2=*(src-1))) {
-                        --src;
-                        c=U16_GET_SUPPLEMENTARY(c2, c);
+                if((src+1)!=limit && U16_IS_TRAIL(c2=src[1])) {
+                    c=U16_GET_SUPPLEMENTARY(c, c2);
+                    norm16=UCPTRIE_FAST_SUPP_GET(normTrie, UCPTRIE_16, c);
+                    if(isMostDecompYesAndZeroCC(norm16)) {
+                        src+=2;
+                    } else {
+                        break;
                     }
-                }
-                if(isMostDecompYesAndZeroCC(norm16=getNorm16(c))) {
-                    src+=U16_LENGTH(c);
                 } else {
-                    break;
+                    ++src;  // unpaired lead surrogate: inert
                 }
             }
         }
@@ -713,7 +684,7 @@ Normalizer2Impl::decomposeShort(const UChar *src, const UChar *limit,
         const UChar *prevSrc = src;
         UChar32 c;
         uint16_t norm16;
-        UTRIE2_U16_NEXT16(normTrie, src, limit, c, norm16);
+        UCPTRIE_FAST_U16_NEXT(normTrie, UCPTRIE_16, src, limit, c, norm16);
         if (stopAtCompBoundary && norm16HasCompBoundaryBefore(norm16)) {
             return prevSrc;
         }
@@ -737,7 +708,7 @@ UBool Normalizer2Impl::decompose(UChar32 c, uint16_t norm16,
         }
         // Maps to an isCompYesAndZeroCC.
         c=mapAlgorithmic(c, norm16);
-        norm16=getNorm16(c);
+        norm16=getRawNorm16(c);
     }
     if (norm16 < minYesNo) {
         // c does not decompose
@@ -758,7 +729,7 @@ UBool Normalizer2Impl::decompose(UChar32 c, uint16_t norm16,
     } else {
         leadCC=0;
     }
-    return buffer.append((const UChar *)mapping+1, length, leadCC, trailCC, errorCode);
+    return buffer.append((const UChar *)mapping+1, length, TRUE, leadCC, trailCC, errorCode);
 }
 
 const uint8_t *
@@ -771,7 +742,7 @@ Normalizer2Impl::decomposeShort(const uint8_t *src, const uint8_t *limit,
     while (src < limit) {
         const uint8_t *prevSrc = src;
         uint16_t norm16;
-        UTRIE2_U8_NEXT16(normTrie, src, limit, norm16);
+        UCPTRIE_FAST_U8_NEXT(normTrie, UCPTRIE_16, src, limit, norm16);
         // Get the decomposition and the lead and trail cc's.
         UChar32 c = U_SENTINEL;
         if (norm16 >= limitNoNo) {
@@ -789,7 +760,7 @@ Normalizer2Impl::decomposeShort(const uint8_t *src, const uint8_t *limit,
             }
             c = codePointFromValidUTF8(prevSrc, src);
             c = mapAlgorithmic(c, norm16);
-            norm16 = getNorm16(c);
+            norm16 = getRawNorm16(c);
         } else if (stopAtCompBoundary && norm16 < minNoNoCompNoMaybeCC) {
             return prevSrc;
         }
@@ -828,7 +799,7 @@ Normalizer2Impl::decomposeShort(const uint8_t *src, const uint8_t *limit,
             } else {
                 leadCC = 0;
             }
-            if (!buffer.append((const char16_t *)mapping+1, length, leadCC, trailCC, errorCode)) {
+            if (!buffer.append((const char16_t *)mapping+1, length, TRUE, leadCC, trailCC, errorCode)) {
                 return nullptr;
             }
         }
@@ -854,7 +825,7 @@ Normalizer2Impl::getDecomposition(UChar32 c, UChar buffer[4], int32_t &length) c
         length=0;
         U16_APPEND_UNSAFE(buffer, length, c);
         // The mapping might decompose further.
-        norm16 = getNorm16(c);
+        norm16 = getRawNorm16(c);
     }
     if (norm16 < minYesNo) {
         return decomp;
@@ -926,19 +897,30 @@ void Normalizer2Impl::decomposeAndAppend(const UChar *src, const UChar *limit,
         return;
     }
     // Just merge the strings at the boundary.
-    ForwardUTrie2StringIterator iter(normTrie, src, limit);
-    uint8_t firstCC, prevCC, cc;
-    firstCC=prevCC=cc=getCC(iter.next16());
-    while(cc!=0) {
-        prevCC=cc;
-        cc=getCC(iter.next16());
-    };
+    bool isFirst = true;
+    uint8_t firstCC = 0, prevCC = 0, cc;
+    const UChar *p = src;
+    while (p != limit) {
+        const UChar *codePointStart = p;
+        UChar32 c;
+        uint16_t norm16;
+        UCPTRIE_FAST_U16_NEXT(normTrie, UCPTRIE_16, p, limit, c, norm16);
+        if ((cc = getCC(norm16)) == 0) {
+            p = codePointStart;
+            break;
+        }
+        if (isFirst) {
+            firstCC = cc;
+            isFirst = false;
+        }
+        prevCC = cc;
+    }
     if(limit==NULL) {  // appendZeroCC() needs limit!=NULL
-        limit=u_strchr(iter.codePointStart, 0);
+        limit=u_strchr(p, 0);
     }
 
-    if (buffer.append(src, (int32_t)(iter.codePointStart-src), firstCC, prevCC, errorCode)) {
-        buffer.appendZeroCC(iter.codePointStart, limit, errorCode);
+    if (buffer.append(src, (int32_t)(p - src), FALSE, firstCC, prevCC, errorCode)) {
+        buffer.appendZeroCC(p, limit, errorCode);
     }
 }
 
@@ -1085,7 +1067,7 @@ void Normalizer2Impl::addComposites(const uint16_t *list, UnicodeSet &set) const
         }
         UChar32 composite=compositeAndFwd>>1;
         if((compositeAndFwd&1)!=0) {
-            addComposites(getCompositionsListForComposite(getNorm16(composite)), set);
+            addComposites(getCompositionsListForComposite(getRawNorm16(composite)), set);
         }
         set.add(composite);
     } while((firstUnit&COMP_1_LAST_TUPLE)==0);
@@ -1124,7 +1106,7 @@ void Normalizer2Impl::recompose(ReorderingBuffer &buffer, int32_t recomposeStart
     prevCC=0;
 
     for(;;) {
-        UTRIE2_U16_NEXT16(normTrie, p, limit, c, norm16);
+        UCPTRIE_FAST_U16_NEXT(normTrie, UCPTRIE_16, p, limit, c, norm16);
         cc=getCCFromYesOrMaybe(norm16);
         if( // this character combines backward and
             isMaybe(norm16) &&
@@ -1229,7 +1211,7 @@ void Normalizer2Impl::recompose(ReorderingBuffer &buffer, int32_t recomposeStart
                 // Is the composite a starter that combines forward?
                 if(compositeAndFwd&1) {
                     compositionsList=
-                        getCompositionsListForComposite(getNorm16(composite));
+                        getCompositionsListForComposite(getRawNorm16(composite));
                 } else {
                     compositionsList=NULL;
                 }
@@ -1268,7 +1250,7 @@ void Normalizer2Impl::recompose(ReorderingBuffer &buffer, int32_t recomposeStart
 
 UChar32
 Normalizer2Impl::composePair(UChar32 a, UChar32 b) const {
-    uint16_t norm16=getNorm16(a);  // maps an out-of-range 'a' to inert norm16=0
+    uint16_t norm16=getNorm16(a);  // maps an out-of-range 'a' to inert norm16
     const uint16_t *list;
     if(isInert(norm16)) {
         return U_SENTINEL;
@@ -1359,29 +1341,23 @@ Normalizer2Impl::compose(const UChar *src, const UChar *limit,
                 return TRUE;
             }
             if( (c=*src)<minNoMaybeCP ||
-                isCompYesAndZeroCC(norm16=UTRIE2_GET16_FROM_U16_SINGLE_LEAD(normTrie, c))
+                isCompYesAndZeroCC(norm16=UCPTRIE_FAST_BMP_GET(normTrie, UCPTRIE_16, c))
             ) {
                 ++src;
             } else {
                 prevSrc = src++;
-                if(!U16_IS_SURROGATE(c)) {
+                if(!U16_IS_LEAD(c)) {
                     break;
                 } else {
                     UChar c2;
-                    if(U16_IS_SURROGATE_LEAD(c)) {
-                        if(src!=limit && U16_IS_TRAIL(c2=*src)) {
-                            ++src;
-                            c=U16_GET_SUPPLEMENTARY(c, c2);
-                        }
-                    } else /* trail surrogate */ {
-                        if(prevBoundary<prevSrc && U16_IS_LEAD(c2=*(prevSrc-1))) {
-                            --prevSrc;
-                            c=U16_GET_SUPPLEMENTARY(c2, c);
+                    if(src!=limit && U16_IS_TRAIL(c2=*src)) {
+                        ++src;
+                        c=U16_GET_SUPPLEMENTARY(c, c2);
+                        norm16=UCPTRIE_FAST_SUPP_GET(normTrie, UCPTRIE_16, c);
+                        if(!isCompYesAndZeroCC(norm16)) {
+                            break;
                         }
                     }
-                    if(!isCompYesAndZeroCC(norm16=getNorm16(c))) {
-                        break;
-                    }
                 }
             }
         }
@@ -1529,7 +1505,7 @@ Normalizer2Impl::compose(const UChar *src, const UChar *limit,
                     }
                     uint8_t prevCC = cc;
                     nextSrc = src;
-                    UTRIE2_U16_NEXT16(normTrie, nextSrc, limit, c, n16);
+                    UCPTRIE_FAST_U16_NEXT(normTrie, UCPTRIE_16, nextSrc, limit, c, n16);
                     if (n16 >= MIN_YES_YES_WITH_CC) {
                         cc = getCCFromNormalYesOrMaybe(n16);
                         if (prevCC > cc) {
@@ -1559,7 +1535,7 @@ Normalizer2Impl::compose(const UChar *src, const UChar *limit,
         // decompose and recompose.
         if (prevBoundary != prevSrc && !norm16HasCompBoundaryBefore(norm16)) {
             const UChar *p = prevSrc;
-            UTRIE2_U16_PREV16(normTrie, prevBoundary, p, c, norm16);
+            UCPTRIE_FAST_U16_PREV(normTrie, UCPTRIE_16, prevBoundary, p, c, norm16);
             if (!norm16HasCompBoundaryAfter(norm16, onlyContiguous)) {
                 prevSrc = p;
             }
@@ -1626,29 +1602,23 @@ Normalizer2Impl::composeQuickCheck(const UChar *src, const UChar *limit,
                 return src;
             }
             if( (c=*src)<minNoMaybeCP ||
-                isCompYesAndZeroCC(norm16=UTRIE2_GET16_FROM_U16_SINGLE_LEAD(normTrie, c))
+                isCompYesAndZeroCC(norm16=UCPTRIE_FAST_BMP_GET(normTrie, UCPTRIE_16, c))
             ) {
                 ++src;
             } else {
                 prevSrc = src++;
-                if(!U16_IS_SURROGATE(c)) {
+                if(!U16_IS_LEAD(c)) {
                     break;
                 } else {
                     UChar c2;
-                    if(U16_IS_SURROGATE_LEAD(c)) {
-                        if(src!=limit && U16_IS_TRAIL(c2=*src)) {
-                            ++src;
-                            c=U16_GET_SUPPLEMENTARY(c, c2);
-                        }
-                    } else /* trail surrogate */ {
-                        if(prevBoundary<prevSrc && U16_IS_LEAD(c2=*(prevSrc-1))) {
-                            --prevSrc;
-                            c=U16_GET_SUPPLEMENTARY(c2, c);
+                    if(src!=limit && U16_IS_TRAIL(c2=*src)) {
+                        ++src;
+                        c=U16_GET_SUPPLEMENTARY(c, c2);
+                        norm16=UCPTRIE_FAST_SUPP_GET(normTrie, UCPTRIE_16, c);
+                        if(!isCompYesAndZeroCC(norm16)) {
+                            break;
                         }
                     }
-                    if(!isCompYesAndZeroCC(norm16=getNorm16(c))) {
-                        break;
-                    }
                 }
             }
         }
@@ -1665,7 +1635,7 @@ Normalizer2Impl::composeQuickCheck(const UChar *src, const UChar *limit,
             } else {
                 const UChar *p = prevSrc;
                 uint16_t n16;
-                UTRIE2_U16_PREV16(normTrie, prevBoundary, p, c, n16);
+                UCPTRIE_FAST_U16_PREV(normTrie, UCPTRIE_16, prevBoundary, p, c, n16);
                 if (norm16HasCompBoundaryAfter(n16, onlyContiguous)) {
                     prevBoundary = prevSrc;
                 } else {
@@ -1699,7 +1669,7 @@ Normalizer2Impl::composeQuickCheck(const UChar *src, const UChar *limit,
                     }
                     uint8_t prevCC = cc;
                     nextSrc = src;
-                    UTRIE2_U16_NEXT16(normTrie, nextSrc, limit, c, norm16);
+                    UCPTRIE_FAST_U16_NEXT(normTrie, UCPTRIE_16, nextSrc, limit, c, norm16);
                     if (isMaybeOrNonZeroCC(norm16)) {
                         cc = getCCFromYesOrMaybe(norm16);
                         if (!(prevCC <= cc || cc == 0)) {
@@ -1786,7 +1756,7 @@ Normalizer2Impl::composeUTF8(uint32_t options, UBool onlyContiguous,
                 ++src;
             } else {
                 prevSrc = src;
-                UTRIE2_U8_NEXT16(normTrie, src, limit, norm16);
+                UCPTRIE_FAST_U8_NEXT(normTrie, UCPTRIE_16, src, limit, norm16);
                 if (!isCompYesAndZeroCC(norm16)) {
                     break;
                 }
@@ -1945,7 +1915,7 @@ Normalizer2Impl::composeUTF8(uint32_t options, UBool onlyContiguous,
                     }
                     uint8_t prevCC = cc;
                     nextSrc = src;
-                    UTRIE2_U8_NEXT16(normTrie, nextSrc, limit, n16);
+                    UCPTRIE_FAST_U8_NEXT(normTrie, UCPTRIE_16, nextSrc, limit, n16);
                     if (n16 >= MIN_YES_YES_WITH_CC) {
                         cc = getCCFromNormalYesOrMaybe(n16);
                         if (prevCC > cc) {
@@ -1975,7 +1945,7 @@ Normalizer2Impl::composeUTF8(uint32_t options, UBool onlyContiguous,
         // decompose and recompose.
         if (prevBoundary != prevSrc && !norm16HasCompBoundaryBefore(norm16)) {
             const uint8_t *p = prevSrc;
-            UTRIE2_U8_PREV16(normTrie, prevBoundary, p, norm16);
+            UCPTRIE_FAST_U8_PREV(normTrie, UCPTRIE_16, prevBoundary, p, norm16);
             if (!norm16HasCompBoundaryAfter(norm16, onlyContiguous)) {
                 prevSrc = p;
             }
@@ -2023,7 +1993,7 @@ UBool Normalizer2Impl::hasCompBoundaryBefore(const UChar *src, const UChar *limi
     }
     UChar32 c;
     uint16_t norm16;
-    UTRIE2_U16_NEXT16(normTrie, src, limit, c, norm16);
+    UCPTRIE_FAST_U16_NEXT(normTrie, UCPTRIE_16, src, limit, c, norm16);
     return norm16HasCompBoundaryBefore(norm16);
 }
 
@@ -2032,7 +2002,7 @@ UBool Normalizer2Impl::hasCompBoundaryBefore(const uint8_t *src, const uint8_t *
         return TRUE;
     }
     uint16_t norm16;
-    UTRIE2_U8_NEXT16(normTrie, src, limit, norm16);
+    UCPTRIE_FAST_U8_NEXT(normTrie, UCPTRIE_16, src, limit, norm16);
     return norm16HasCompBoundaryBefore(norm16);
 }
 
@@ -2043,7 +2013,7 @@ UBool Normalizer2Impl::hasCompBoundaryAfter(const UChar *start, const UChar *p,
     }
     UChar32 c;
     uint16_t norm16;
-    UTRIE2_U16_PREV16(normTrie, start, p, c, norm16);
+    UCPTRIE_FAST_U16_PREV(normTrie, UCPTRIE_16, start, p, c, norm16);
     return norm16HasCompBoundaryAfter(norm16, onlyContiguous);
 }
 
@@ -2053,36 +2023,42 @@ UBool Normalizer2Impl::hasCompBoundaryAfter(const uint8_t *start, const uint8_t
         return TRUE;
     }
     uint16_t norm16;
-    UTRIE2_U8_PREV16(normTrie, start, p, norm16);
+    UCPTRIE_FAST_U8_PREV(normTrie, UCPTRIE_16, start, p, norm16);
     return norm16HasCompBoundaryAfter(norm16, onlyContiguous);
 }
 
 const UChar *Normalizer2Impl::findPreviousCompBoundary(const UChar *start, const UChar *p,
                                                        UBool onlyContiguous) const {
-    BackwardUTrie2StringIterator iter(normTrie, start, p);
-    for(;;) {
-        uint16_t norm16=iter.previous16();
+    while (p != start) {
+        const UChar *codePointLimit = p;
+        UChar32 c;
+        uint16_t norm16;
+        UCPTRIE_FAST_U16_PREV(normTrie, UCPTRIE_16, start, p, c, norm16);
         if (norm16HasCompBoundaryAfter(norm16, onlyContiguous)) {
-            return iter.codePointLimit;
+            return codePointLimit;
         }
-        if (hasCompBoundaryBefore(iter.codePoint, norm16)) {
-            return iter.codePointStart;
+        if (hasCompBoundaryBefore(c, norm16)) {
+            return p;
         }
     }
+    return p;
 }
 
 const UChar *Normalizer2Impl::findNextCompBoundary(const UChar *p, const UChar *limit,
                                                    UBool onlyContiguous) const {
-    ForwardUTrie2StringIterator iter(normTrie, p, limit);
-    for(;;) {
-        uint16_t norm16=iter.next16();
-        if (hasCompBoundaryBefore(iter.codePoint, norm16)) {
-            return iter.codePointStart;
+    while (p != limit) {
+        const UChar *codePointStart = p;
+        UChar32 c;
+        uint16_t norm16;
+        UCPTRIE_FAST_U16_NEXT(normTrie, UCPTRIE_16, p, limit, c, norm16);
+        if (hasCompBoundaryBefore(c, norm16)) {
+            return codePointStart;
         }
         if (norm16HasCompBoundaryAfter(norm16, onlyContiguous)) {
-            return iter.codePointLimit;
+            return p;
         }
     }
+    return p;
 }
 
 uint8_t Normalizer2Impl::getPreviousTrailCC(const UChar *start, const UChar *p) const {
@@ -2130,7 +2106,7 @@ uint16_t Normalizer2Impl::getFCD16FromNormData(UChar32 c) const {
             }
             // Maps to an isCompYesAndZeroCC.
             c=mapAlgorithmic(c, norm16);
-            norm16=getNorm16(c);
+            norm16=getRawNorm16(c);
         }
     }
     if(norm16<=minYesNo || isHangulLVT(norm16)) {
@@ -2195,17 +2171,10 @@ Normalizer2Impl::makeFCD(const UChar *src, const UChar *limit,
                 prevFCD16=0;
                 ++src;
             } else {
-                if(U16_IS_SURROGATE(c)) {
+                if(U16_IS_LEAD(c)) {
                     UChar c2;
-                    if(U16_IS_SURROGATE_LEAD(c)) {
-                        if((src+1)!=limit && U16_IS_TRAIL(c2=src[1])) {
-                            c=U16_GET_SUPPLEMENTARY(c, c2);
-                        }
-                    } else /* trail surrogate */ {
-                        if(prevSrc<src && U16_IS_LEAD(c2=*(src-1))) {
-                            --src;
-                            c=U16_GET_SUPPLEMENTARY(c2, c);
-                        }
+                    if((src+1)!=limit && U16_IS_TRAIL(c2=src[1])) {
+                        c=U16_GET_SUPPLEMENTARY(c, c2);
                     }
                 }
                 if((fcd16=getFCD16FromNormData(c))<=0xff) {
@@ -2336,7 +2305,7 @@ const UChar *Normalizer2Impl::findPreviousFCDBoundary(const UChar *start, const
         const UChar *codePointLimit = p;
         UChar32 c;
         uint16_t norm16;
-        UTRIE2_U16_PREV16(normTrie, start, p, c, norm16);
+        UCPTRIE_FAST_U16_PREV(normTrie, UCPTRIE_16, start, p, c, norm16);
         if (c < minDecompNoCP || norm16HasDecompBoundaryAfter(norm16)) {
             return codePointLimit;
         }
@@ -2352,7 +2321,7 @@ const UChar *Normalizer2Impl::findNextFCDBoundary(const UChar *p, const UChar *l
         const UChar *codePointStart=p;
         UChar32 c;
         uint16_t norm16;
-        UTRIE2_U16_NEXT16(normTrie, p, limit, c, norm16);
+        UCPTRIE_FAST_U16_NEXT(normTrie, UCPTRIE_16, p, limit, c, norm16);
         if (c < minLcccCP || norm16HasDecompBoundaryBefore(norm16)) {
             return codePointStart;
         }
@@ -2366,19 +2335,20 @@ const UChar *Normalizer2Impl::findNextFCDBoundary(const UChar *p, const UChar *l
 // CanonicalIterator data -------------------------------------------------- ***
 
 CanonIterData::CanonIterData(UErrorCode &errorCode) :
-        trie(utrie2_open(0, 0, &errorCode)),
+        mutableTrie(umutablecptrie_open(0, 0, &errorCode)), trie(nullptr),
         canonStartSets(uprv_deleteUObject, NULL, errorCode) {}
 
 CanonIterData::~CanonIterData() {
-    utrie2_close(trie);
+    umutablecptrie_close(mutableTrie);
+    ucptrie_close(trie);
 }
 
 void CanonIterData::addToStartSet(UChar32 origin, UChar32 decompLead, UErrorCode &errorCode) {
-    uint32_t canonValue=utrie2_get32(trie, decompLead);
+    uint32_t canonValue = umutablecptrie_get(mutableTrie, decompLead);
     if((canonValue&(CANON_HAS_SET|CANON_VALUE_MASK))==0 && origin!=0) {
         // origin is the first character whose decomposition starts with
         // the character for which we are setting the value.
-        utrie2_set32(trie, decompLead, canonValue|origin, &errorCode);
+        umutablecptrie_set(mutableTrie, decompLead, canonValue|origin, &errorCode);
     } else {
         // origin is not the first character, or it is U+0000.
         UnicodeSet *set;
@@ -2390,7 +2360,7 @@ void CanonIterData::addToStartSet(UChar32 origin, UChar32 decompLead, UErrorCode
             }
             UChar32 firstOrigin=(UChar32)(canonValue&CANON_VALUE_MASK);
             canonValue=(canonValue&~CANON_VALUE_MASK)|CANON_HAS_SET|(uint32_t)canonStartSets.size();
-            utrie2_set32(trie, decompLead, canonValue, &errorCode);
+            umutablecptrie_set(mutableTrie, decompLead, canonValue, &errorCode);
             canonStartSets.addElement(set, errorCode);
             if(firstOrigin!=0) {
                 set->add(firstOrigin);
@@ -2406,7 +2376,6 @@ void CanonIterData::addToStartSet(UChar32 origin, UChar32 decompLead, UErrorCode
 class InitCanonIterData {
 public:
     static void doInit(Normalizer2Impl *impl, UErrorCode &errorCode);
-    static void handleRange(Normalizer2Impl *impl, UChar32 start, UChar32 end, uint16_t value, UErrorCode &errorCode);
 };
 
 U_CDECL_BEGIN
@@ -2417,18 +2386,6 @@ initCanonIterData(Normalizer2Impl *impl, UErrorCode &errorCode) {
     InitCanonIterData::doInit(impl, errorCode);
 }
 
-// Call Normalizer2Impl::makeCanonIterDataFromNorm16() for a range of same-norm16 characters.
-//     context: the Normalizer2Impl
-static UBool U_CALLCONV
-enumCIDRangeHandler(const void *context, UChar32 start, UChar32 end, uint32_t value) {
-    UErrorCode errorCode = U_ZERO_ERROR;
-    if (value != Normalizer2Impl::INERT) {
-        Normalizer2Impl *impl = (Normalizer2Impl *)context;
-        InitCanonIterData::handleRange(impl, start, end, (uint16_t)value, errorCode);
-    }
-    return U_SUCCESS(errorCode);
-}
-
 U_CDECL_END
 
 void InitCanonIterData::doInit(Normalizer2Impl *impl, UErrorCode &errorCode) {
@@ -2438,8 +2395,24 @@ void InitCanonIterData::doInit(Normalizer2Impl *impl, UErrorCode &errorCode) {
         errorCode=U_MEMORY_ALLOCATION_ERROR;
     }
     if (U_SUCCESS(errorCode)) {
-        utrie2_enum(impl->normTrie, NULL, enumCIDRangeHandler, impl);
-        utrie2_freeze(impl->fCanonIterData->trie, UTRIE2_32_VALUE_BITS, &errorCode);
+        UChar32 start = 0, end;
+        uint32_t value;
+        while ((end = ucptrie_getRange(impl->normTrie, start,
+                                       UCPMAP_RANGE_FIXED_LEAD_SURROGATES, Normalizer2Impl::INERT,
+                                       nullptr, nullptr, &value)) >= 0) {
+            // Call Normalizer2Impl::makeCanonIterDataFromNorm16() for a range of same-norm16 characters.
+            if (value != Normalizer2Impl::INERT) {
+                impl->makeCanonIterDataFromNorm16(start, end, value, *impl->fCanonIterData, errorCode);
+            }
+            start = end + 1;
+        }
+#ifdef UCPTRIE_DEBUG
+        umutablecptrie_setName(impl->fCanonIterData->mutableTrie, "CanonIterData");
+#endif
+        impl->fCanonIterData->trie = umutablecptrie_buildImmutable(
+            impl->fCanonIterData->mutableTrie, UCPTRIE_TYPE_SMALL, UCPTRIE_VALUE_BITS_32, &errorCode);
+        umutablecptrie_close(impl->fCanonIterData->mutableTrie);
+        impl->fCanonIterData->mutableTrie = nullptr;
     }
     if (U_FAILURE(errorCode)) {
         delete impl->fCanonIterData;
@@ -2447,11 +2420,6 @@ void InitCanonIterData::doInit(Normalizer2Impl *impl, UErrorCode &errorCode) {
     }
 }
 
-void InitCanonIterData::handleRange(
-        Normalizer2Impl *impl, UChar32 start, UChar32 end, uint16_t value, UErrorCode &errorCode) {
-    impl->makeCanonIterDataFromNorm16(start, end, value, *impl->fCanonIterData, errorCode);
-}
-
 void Normalizer2Impl::makeCanonIterDataFromNorm16(UChar32 start, UChar32 end, const uint16_t norm16,
                                                   CanonIterData &newData,
                                                   UErrorCode &errorCode) const {
@@ -2465,7 +2433,7 @@ void Normalizer2Impl::makeCanonIterDataFromNorm16(UChar32 start, UChar32 end, co
         return;
     }
     for(UChar32 c=start; c<=end; ++c) {
-        uint32_t oldValue=utrie2_get32(newData.trie, c);
+        uint32_t oldValue = umutablecptrie_get(newData.mutableTrie, c);
         uint32_t newValue=oldValue;
         if(isMaybeOrNonZeroCC(norm16)) {
             // not a segment starter if it occurs in a decomposition or has cc!=0
@@ -2483,7 +2451,7 @@ void Normalizer2Impl::makeCanonIterDataFromNorm16(UChar32 start, UChar32 end, co
             if (isDecompNoAlgorithmic(norm16_2)) {
                 // Maps to an isCompYesAndZeroCC.
                 c2 = mapAlgorithmic(c2, norm16_2);
-                norm16_2 = getNorm16(c2);
+                norm16_2 = getRawNorm16(c2);
                 // No compatibility mappings for the CanonicalIterator.
                 U_ASSERT(!(isHangulLV(norm16_2) || isHangulLVT(norm16_2)));
             }
@@ -2510,10 +2478,10 @@ void Normalizer2Impl::makeCanonIterDataFromNorm16(UChar32 start, UChar32 end, co
                     if(norm16_2>=minNoNo) {
                         while(i<length) {
                             U16_NEXT_UNSAFE(mapping, i, c2);
-                            uint32_t c2Value=utrie2_get32(newData.trie, c2);
+                            uint32_t c2Value = umutablecptrie_get(newData.mutableTrie, c2);
                             if((c2Value&CANON_NOT_SEGMENT_STARTER)==0) {
-                                utrie2_set32(newData.trie, c2, c2Value|CANON_NOT_SEGMENT_STARTER,
-                                             &errorCode);
+                                umutablecptrie_set(newData.mutableTrie, c2,
+                                                   c2Value|CANON_NOT_SEGMENT_STARTER, &errorCode);
                             }
                         }
                     }
@@ -2524,7 +2492,7 @@ void Normalizer2Impl::makeCanonIterDataFromNorm16(UChar32 start, UChar32 end, co
             }
         }
         if(newValue!=oldValue) {
-            utrie2_set32(newData.trie, c, newValue, &errorCode);
+            umutablecptrie_set(newData.mutableTrie, c, newValue, &errorCode);
         }
     }
 }
@@ -2537,7 +2505,7 @@ UBool Normalizer2Impl::ensureCanonIterData(UErrorCode &errorCode) const {
 }
 
 int32_t Normalizer2Impl::getCanonValue(UChar32 c) const {
-    return (int32_t)utrie2_get32(fCanonIterData->trie, c);
+    return (int32_t)ucptrie_get(fCanonIterData->trie, c);
 }
 
 const UnicodeSet &Normalizer2Impl::getCanonStartSet(int32_t n) const {
@@ -2561,7 +2529,7 @@ UBool Normalizer2Impl::getCanonStartSet(UChar32 c, UnicodeSet &set) const {
         set.add(value);
     }
     if((canonValue&CANON_HAS_COMPOSITIONS)!=0) {
-        uint16_t norm16=getNorm16(c);
+        uint16_t norm16=getRawNorm16(c);
         if(norm16==JAMO_L) {
             UChar32 syllable=
                 (UChar32)(Hangul::HANGUL_BASE+(c-Hangul::JAMO_L_BASE)*Hangul::JAMO_VT_COUNT);
@@ -2608,7 +2576,7 @@ unorm2_swap(const UDataSwapper *ds,
         pInfo->dataFormat[1]==0x72 &&
         pInfo->dataFormat[2]==0x6d &&
         pInfo->dataFormat[3]==0x32 &&
-        (1<=formatVersion0 && formatVersion0<=3)
+        (1<=formatVersion0 && formatVersion0<=4)
     )) {
         udata_printError(ds, "unorm2_swap(): data format %02x.%02x.%02x.%02x (format version %02x) is not recognized as Normalizer2 data\n",
                          pInfo->dataFormat[0], pInfo->dataFormat[1],
@@ -2669,9 +2637,9 @@ unorm2_swap(const UDataSwapper *ds,
         ds->swapArray32(ds, inBytes, nextOffset-offset, outBytes, pErrorCode);
         offset=nextOffset;
 
-        /* swap the UTrie2 */
+        /* swap the trie */
         nextOffset=indexes[Normalizer2Impl::IX_EXTRA_DATA_OFFSET];
-        utrie2_swap(ds, inBytes+offset, nextOffset-offset, outBytes+offset, pErrorCode);
+        utrie_swapAnyVersion(ds, inBytes+offset, nextOffset-offset, outBytes+offset, pErrorCode);
         offset=nextOffset;
 
         /* swap the uint16_t extraData[] */
index 9dd4d1e..2e6aff3 100644 (file)
 #if !UCONFIG_NO_NORMALIZATION
 
 #include "unicode/normalizer2.h"
+#include "unicode/ucptrie.h"
 #include "unicode/unistr.h"
 #include "unicode/unorm.h"
+#include "unicode/utf.h"
 #include "unicode/utf16.h"
 #include "mutex.h"
+#include "udataswp.h"
 #include "uset_imp.h"
-#include "utrie2.h"
+
+// When the nfc.nrm data is *not* hardcoded into the common library
+// (with this constant set to 0),
+// then it needs to be built into the data package:
+// Add nfc.nrm to icu4c/source/data/Makefile.in DAT_FILES_SHORT
+#define NORM2_HARDCODE_NFC_DATA 1
 
 U_NAMESPACE_BEGIN
 
@@ -118,7 +126,7 @@ public:
             buffer[0]=(UChar)(JAMO_L_BASE+c/JAMO_V_COUNT);
             buffer[1]=(UChar)(JAMO_V_BASE+c%JAMO_V_COUNT);
         } else {
-            buffer[0]=orig-c2;  // LV syllable
+            buffer[0]=(UChar)(orig-c2);  // LV syllable
             buffer[1]=(UChar)(JAMO_T_BASE+c2);
         }
     }
@@ -158,8 +166,7 @@ public:
             appendBMP((UChar)c, cc, errorCode) :
             appendSupplementary(c, cc, errorCode);
     }
-    // s must be in NFD, otherwise change the implementation.
-    UBool append(const UChar *s, int32_t length,
+    UBool append(const UChar *s, int32_t length, UBool isNFD,
                  uint8_t leadCC, uint8_t trailCC,
                  UErrorCode &errorCode);
     UBool appendBMP(UChar c, uint8_t cc, UErrorCode &errorCode) {
@@ -243,7 +250,7 @@ public:
     }
     virtual ~Normalizer2Impl();
 
-    void init(const int32_t *inIndexes, const UTrie2 *inTrie,
+    void init(const int32_t *inIndexes, const UCPTrie *inTrie,
               const uint16_t *inExtraData, const uint8_t *inSmallFCD);
 
     void addLcccChars(UnicodeSet &set) const;
@@ -254,7 +261,12 @@ public:
 
     UBool ensureCanonIterData(UErrorCode &errorCode) const;
 
-    uint16_t getNorm16(UChar32 c) const { return UTRIE2_GET16(normTrie, c); }
+    // The trie stores values for lead surrogate code *units*.
+    // Surrogate code *points* are inert.
+    uint16_t getNorm16(UChar32 c) const {
+        return U_IS_LEAD(c) ? INERT : UCPTRIE_FAST_GET(normTrie, UCPTRIE_16, c);
+    }
+    uint16_t getRawNorm16(UChar32 c) const { return UCPTRIE_FAST_GET(normTrie, UCPTRIE_16, c); }
 
     UNormalizationCheckResult getCompQuickCheck(uint16_t norm16) const {
         if(norm16<minNoNo || MIN_YES_YES_WITH_CC<=norm16) {
@@ -704,7 +716,7 @@ private:
     uint16_t centerNoNoDelta;
     uint16_t minMaybeYes;
 
-    const UTrie2 *normTrie;
+    const UCPTrie *normTrie;
     const uint16_t *maybeYesCompositions;
     const uint16_t *extraData;  // mappings and/or compositions for yesYes, yesNo & noNo characters
     const uint8_t *smallFCD;  // [0x100] one bit per 32 BMP code points, set if any FCD!=0
@@ -764,7 +776,7 @@ unorm_getFCD16(UChar32 c);
 
 /**
  * Format of Normalizer2 .nrm data files.
- * Format version 3.0.
+ * Format version 4.0.
  *
  * Normalizer2 .nrm data files provide data for the Unicode Normalization algorithms.
  * ICU ships with data files for standard Unicode Normalization Forms
@@ -818,7 +830,7 @@ unorm_getFCD16(UChar32 c);
  *          minMaybeYes=indexes[IX_MIN_MAYBE_YES];
  *      See the normTrie description below and the design doc for details.
  *
- * UTrie2 normTrie; -- see utrie2_impl.h and utrie2.h
+ * UCPTrie normTrie; -- see ucptrie_impl.h and ucptrie.h, same as Java CodePointTrie
  *
  *      The trie holds the main normalization data. Each code point is mapped to a 16-bit value.
  *      Rather than using independent bits in the value (which would require more than 16 bits),
@@ -946,6 +958,20 @@ unorm_getFCD16(UChar32 c);
  *   which is artificially assigned "worst case" values lccc=1 and tccc=255.
  *
  * - A mapping to an empty string has explicit lccc=1 and tccc=255 values.
+ *
+ * Changes from format version 3 to format version 4 (ICU 63) ------------------
+ *
+ * Switched from UTrie2 to UCPTrie/CodePointTrie.
+ *
+ * The new trie no longer stores different values for surrogate code *units* vs.
+ * surrogate code *points*.
+ * Lead surrogates still have values for optimized UTF-16 string processing.
+ * When looking up code point properties, the code now checks for lead surrogates and
+ * treats them as inert.
+ *
+ * gennorm2 now has to reject mappings for surrogate code points.
+ * UTS #46 maps unpaired surrogates to U+FFFD in code rather than via its
+ * custom normalization data file.
  */
 
 #endif  /* !UCONFIG_NO_NORMALIZATION */
index afa876c..15a3301 100644 (file)
 
 U_NAMESPACE_BEGIN
 
-const int32_t PropNameData::indexes[8]={0x20,0x1424,0x49e9,0x966c,0x966c,0x966c,0x2f,0};
+const int32_t PropNameData::indexes[8]={0x20,0x1548,0x4e03,0xa114,0xa114,0xa114,0x2f,0};
 
-const int32_t PropNameData::valueMaps[1281]={
-6,0,0x41,0,0xdd,0x356,0xdd,0x36c,0xdd,0x381,0xdd,0x397,0xdd,0x3a2,0xdd,0x3c3,
-0xdd,0x3d3,0xdd,0x3e2,0xdd,0x3f0,0xdd,0x414,0xdd,0x42b,0xdd,0x443,0xdd,0x45a,0xdd,0x469,
-0xdd,0x478,0xdd,0x489,0xdd,0x497,0xdd,0x4a9,0xdd,0x4c3,0xdd,0x4de,0xdd,0x4f3,0xdd,0x510,
-0xdd,0x521,0xdd,0x52c,0xdd,0x54b,0xdd,0x561,0xdd,0x572,0xdd,0x582,0xdd,0x59d,0xdd,0x5b6,
-0xdd,0x5c7,0xdd,0x5e1,0xdd,0x5f4,0xdd,0x604,0xdd,0x61e,0xdd,0x637,0xdd,0x64e,0xdd,0x662,
-0xdd,0x678,0xdd,0x68c,0xdd,0x6a2,0xdd,0x6bc,0xdd,0x6d4,0xdd,0x6f0,0xdd,0x6f8,0xdd,0x700,
-0xdd,0x708,0xdd,0x710,0xdd,0x719,0xdd,0x726,0xdd,0x739,0xdd,0x756,0xdd,0x773,0xdd,0x790,
-0xdd,0x7ae,0xdd,0x7cc,0xdd,0x7f0,0xdd,0x7fd,0xdd,0x817,0xdd,0x82c,0xdd,0x847,0xdd,0x85e,
-0xdd,0x875,0xdd,0x897,0xdd,0x1000,0x1016,0x8b6,0x157,0xad6,0x172,0x2c95,0xe3,0x2cb4,0x29a,0x2df2,
-0x2b0,0x2e4c,0x2ba,0x30a9,0x2dc,0x39a4,0x346,0x3a14,0x350,0x3cae,0x37f,0x3cec,0x387,0x474b,0x444,0x47c9,
-0x44e,0x47ee,0x454,0x4808,0x45a,0x4829,0x461,0x4843,0xe3,0x4868,0xe3,0x488e,0x468,0x4938,0x47e,0x49b1,
-0x491,0x4a63,0x4ac,0x2000,0x2001,0x4a9a,0x4b3,0x3000,0x3001,0x4b26,0,0x4000,0x400e,0x4b38,0,0x4b41,
-0,0x4b5b,0,0x4b6c,0,0x4b7d,0,0x4b93,0,0x4b9c,0,0x4bb9,0,0x4bd7,0,0x4bf5,
-0,0x4c13,0,0x4c29,0,0x4c3d,0,0x4c53,0,0x7000,0x7001,0x4c6c,0,0x77c,0x12,0,
-1,0x12,0x20,0x79a,0x49,0,1,7,8,9,0xa,0xb,0xc,0xd,0xe,0xf,
-0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1a,0x1b,0x1c,0x1d,0x1e,0x1f,
-0x20,0x21,0x22,0x23,0x24,0x54,0x5b,0x67,0x6b,0x76,0x7a,0x81,0x82,0x84,0x85,0xc8,
-0xca,0xd6,0xd8,0xda,0xdc,0xde,0xe0,0xe2,0xe4,0xe6,0xe8,0xe9,0xea,0xf0,0x2e,0x40,
-0x4c,0x56,0x67,0x72,0x7f,0x8c,0x99,0xa6,0xb3,0xc0,0xcd,0xda,0xe7,0xf4,0x101,0x10e,
-0x11b,0x128,0x135,0x142,0x14f,0x15c,0x169,0x176,0x183,0x190,0x19d,0x1aa,0x1b7,0x1c4,0x1d1,0x1de,
-0x1eb,0x1fa,0x209,0x218,0x227,0x236,0x245,0x254,0x263,0x27d,0x291,0x2a5,0x2c0,0x2cf,0x2d8,0x2e8,
-0x2f0,0x2f9,0x308,0x311,0x321,0x332,0x343,0x92c,1,0,0x17,0x8c5,0x8d6,0x8e7,0x8fb,0x912,
-0x92a,0x93c,0x951,0x968,0x97d,0x98d,0x99f,0x9bc,0x9d8,0x9ea,0xa07,0xa23,0xa3f,0xa54,0xa69,0xa83,
-0xa9e,0xab9,0xace,1,0,0x124,0xae1,0xaee,0xb01,0xb29,0xb47,0xb65,0xb7d,0xba8,0xbd2,0xbea,
-0xbfd,0xc10,0xc1f,0xc2e,0xc3d,0xc4c,0xc63,0xc74,0xc87,0xc9a,0xca7,0xcb4,0xcc3,0xcd4,0xce9,0xcfa,
-0xd05,0xd0e,0xd1f,0xd30,0xd43,0xd55,0xd68,0xd7b,0xdba,0xdc7,0xdd4,0xde1,0xdf6,0xe26,0xe40,0xe61,
-0xe8c,0xeaf,0xf0d,0xf34,0xf4f,0xf5e,0xf85,0xfad,0xfd0,0xff3,0x101d,0x1036,0x1055,0x1078,0x109c,0x10af,
-0x10c9,0x10f3,0x110b,0x1133,0x115c,0x116f,0x1182,0x1195,0x11bc,0x11cb,0x11eb,0x1219,0x1237,0x1265,0x1281,0x129c,
-0x12b5,0x12ce,0x12ef,0x131f,0x133e,0x1360,0x1394,0x13c1,0x1406,0x1427,0x1451,0x1472,0x149b,0x14ae,0x14e1,0x14f8,
-0x1507,0x1518,0x1543,0x155a,0x158b,0x15b9,0x15fc,0x1607,0x1640,0x1651,0x1662,0x166f,0x1682,0x16bc,0x16e0,0x1704,
-0x173e,0x1776,0x17a1,0x17b9,0x17e5,0x1811,0x181e,0x182d,0x184a,0x186c,0x189a,0x18ba,0x18e1,0x1908,0x1927,0x193a,
-0x194b,0x195c,0x1981,0x19a6,0x19cd,0x1a01,0x1a2e,0x1a4c,0x1a5f,0x1a78,0x1ab1,0x1ac0,0x1ae0,0x1b02,0x1b24,0x1b3b,
-0x1b52,0x1b7f,0x1b98,0x1bb1,0x1be2,0x1c0c,0x1c27,0x1c3a,0x1c59,0x1c62,0x1c75,0x1c93,0x1cb1,0x1cc4,0x1cdb,0x1cf0,
-0x1d25,0x1d49,0x1d5e,0x1d6d,0x1d80,0x1da4,0x1dad,0x1dd1,0x1de8,0x1dfb,0x1e0a,0x1e15,0x1e36,0x1e4e,0x1e5d,0x1e6c,
-0x1e7b,0x1e92,0x1ea7,0x1ebc,0x1ef5,0x1f08,0x1f24,0x1f2f,0x1f3c,0x1f6a,0x1f8e,0x1fb1,0x1fc4,0x1fe6,0x1ff9,0x2014,
-0x2037,0x205a,0x207f,0x2090,0x20bf,0x20ec,0x2103,0x211e,0x212d,0x2158,0x2190,0x21ca,0x21f8,0x2209,0x2216,0x223a,
-0x2249,0x2265,0x227f,0x229c,0x22d4,0x22e9,0x2316,0x2335,0x2363,0x2383,0x23b7,0x23c6,0x23f0,0x2413,0x243e,0x2449,
-0x245a,0x2475,0x2499,0x24a6,0x24bb,0x24e2,0x250d,0x2544,0x2557,0x2568,0x2598,0x25a9,0x25b8,0x25cd,0x25eb,0x25fe,
-0x2611,0x2628,0x2645,0x2650,0x2659,0x267b,0x2690,0x26b5,0x26cc,0x26f5,0x2710,0x2725,0x273e,0x275f,0x2794,0x27a5,
-0x27d6,0x27fa,0x280b,0x2824,0x282f,0x285c,0x287e,0x28ac,0x28df,0x28ee,0x28ff,0x291c,0x295e,0x2985,0x2992,0x29a7,
-0x29cb,0x29f1,0x2a2a,0x2a3b,0x2a5f,0x2a6a,0x2a77,0x2a86,0x2aab,0x2ad9,0x2af5,0x2b12,0x2b1f,0x2b30,0x2b4e,0x2b71,
-0x2b8e,0x2b9b,0x2bbb,0x2bd8,0x2bf9,0x2c22,0x2c33,0x2c52,0x2c6b,0x2c84,0x1cf4,1,0,0x12,0x2ccb,0x2cdb,
-0x2cee,0x2cfe,0x2d0e,0x2d1d,0x2d2d,0x2d3f,0x2d52,0x2d64,0x2d74,0x2d84,0x2d93,0x2da2,0x2db2,0x2dbf,0x2dce,0x2de2,
-0x1db2,1,0,6,0x2e07,0x2e12,0x2e1f,0x2e2c,0x2e39,0x2e44,0x1df6,1,0,0x1e,0x2e61,0x2e70,
-0x2e85,0x2e9a,0x2eaf,0x2ec3,0x2ed4,0x2ee8,0x2efb,0x2f0c,0x2f25,0x2f37,0x2f48,0x2f5c,0x2f6f,0x2f87,0x2f99,0x2fa4,
-0x2fb4,0x2fc2,0x2fd7,0x2fec,0x3002,0x301c,0x3032,0x3042,0x3056,0x306a,0x307b,0x3093,0x2021,1,0,0x66,
-0x30bb,0x30de,0x30e7,0x30f4,0x30ff,0x3108,0x3113,0x311c,0x3135,0x313a,0x3143,0x3160,0x3169,0x3176,0x317f,0x31a3,
-0x31aa,0x31b3,0x31c6,0x31d1,0x31da,0x31e5,0x31fe,0x3207,0x3216,0x3221,0x322a,0x3235,0x323e,0x3245,0x324e,0x3259,
-0x3262,0x327b,0x3284,0x3291,0x329c,0x32ad,0x32b8,0x32cd,0x32e4,0x32ed,0x32f6,0x330f,0x331a,0x3323,0x332c,0x3343,
-0x3360,0x336b,0x337c,0x3387,0x338e,0x339b,0x33a8,0x33d5,0x33ea,0x33f3,0x340e,0x3431,0x3452,0x3473,0x3498,0x34bf,
-0x34e0,0x3503,0x3524,0x354b,0x356c,0x3591,0x35b0,0x35cf,0x35ee,0x360b,0x362c,0x364d,0x3670,0x3695,0x36b4,0x36d3,
-0x36f4,0x371b,0x3740,0x375f,0x3780,0x37a3,0x37be,0x37d7,0x37f2,0x380b,0x3828,0x3843,0x3860,0x387f,0x389c,0x38b9,
-0x38d8,0x38f5,0x3910,0x392d,0x394a,0x397d,0x2366,1,0,6,0x39b5,0x39c4,0x39d4,0x39e4,0x39f4,0x3a05,
-0x23c4,1,0,0x2b,0x3a23,0x3a2f,0x3a3d,0x3a4c,0x3a5b,0x3a6b,0x3a7c,0x3a90,0x3aa5,0x3abb,0x3ace,0x3ae2,
-0x3af2,0x3afb,0x3b06,0x3b16,0x3b32,0x3b44,0x3b52,0x3b61,0x3b6d,0x3b82,0x3b96,0x3ba9,0x3bb7,0x3bcb,0x3bd9,0x3be3,
-0x3bf5,0x3c01,0x3c0f,0x3c1f,0x3c26,0x3c2d,0x3c34,0x3c3b,0x3c42,0x3c58,0x3c79,0x85e,0x3c8b,0x3c96,0x3ca5,0x261d,
-1,0,4,0x3cbf,0x3cca,0x3cd6,0x3ce0,0x2643,1,0,0xb9,0x3cf7,0x3d04,0x3d19,0x3d26,0x3d35,
-0x3d43,0x3d52,0x3d61,0x3d73,0x3d82,0x3d90,0x3da1,0x3db0,0x3dbf,0x3dcc,0x3dd8,0x3de7,0x3df6,0x3e00,0x3e0d,0x3e1a,
-0x3e29,0x3e37,0x3e46,0x3e52,0x3e5c,0x3e68,0x3e78,0x3e88,0x3e96,0x3ea2,0x3eb3,0x3ebf,0x3ecb,0x3ed9,0x3ee6,0x3ef2,
-0x3eff,0xcfa,0x3f0c,0x3f1a,0x3f34,0x3f3d,0x3f4b,0x3f59,0x3f65,0x3f74,0x3f82,0x3f90,0x3f9c,0x3fab,0x3fb9,0x3fc7,
-0x3fd4,0x3fe3,0x3ffe,0x400d,0x401e,0x402f,0x4042,0x4054,0x4063,0x4075,0x4084,0x4090,0x409b,0x1e0a,0x40a8,0x40b3,
-0x40be,0x40c9,0x40d4,0x40ef,0x40fa,0x4105,0x4110,0x4123,0x4137,0x4142,0x4151,0x4160,0x416b,0x4176,0x4183,0x4192,
-0x41a0,0x41ab,0x41c6,0x41d0,0x41e1,0x41f2,0x4201,0x4212,0x421d,0x4228,0x4233,0x423e,0x4249,0x4254,0x425f,0x4269,
-0x4274,0x4284,0x428f,0x429d,0x42aa,0x42b5,0x42c4,0x42d1,0x42de,0x42ed,0x42fa,0x430b,0x431d,0x432d,0x4338,0x434b,
-0x4362,0x4370,0x437d,0x4388,0x4395,0x43a6,0x43c2,0x43d8,0x43e3,0x4400,0x4410,0x441f,0x442a,0x4435,0x1f24,0x4441,
-0x444c,0x4464,0x4474,0x4483,0x4491,0x449f,0x44aa,0x44b5,0x44c9,0x44e0,0x44f8,0x4508,0x4518,0x4528,0x453a,0x4545,
-0x4550,0x455a,0x4566,0x4574,0x4587,0x4593,0x45a0,0x45ab,0x45c7,0x45d4,0x45e2,0x45fb,0x2824,0x460a,0x2645,0x4617,
-0x4625,0x4637,0x4645,0x4651,0x4661,0x2a5f,0x466f,0x467b,0x4686,0x4691,0x469c,0x46b0,0x46be,0x46d5,0x46e1,0x46f5,
-0x4703,0x4715,0x472b,0x4739,0x2fa6,1,0,6,0x4765,0x4778,0x4788,0x4796,0x47a7,0x47b7,0x3002,0x12,
-0,1,0x47e1,0x47e7,0x300f,0x12,0,1,0x47e1,0x47e7,0x301c,1,0,3,0x47e1,0x47e7,
-0x4820,0x3032,1,0,3,0x47e1,0x47e7,0x4820,0x3048,1,0,0x12,0x48aa,0x48b4,0x48c0,0x48c7,
-0x48d2,0x48d7,0x48de,0x48e5,0x48ee,0x48f3,0x48f8,0x4908,0x85e,0x3c8b,0x4914,0x3c96,0x4924,0x3ca5,0x30f1,1,
-0,0xf,0x48aa,0x494b,0x4955,0x495f,0x496a,0x3b61,0x4974,0x4980,0x4988,0x498f,0x4999,0x48c0,0x48c7,0x48d7,
-0x49a3,0x3178,1,0,0x17,0x48aa,0x49c0,0x495f,0x49cc,0x49d9,0x49e7,0x3b61,0x49f2,0x48c0,0x4a03,0x48d7,
-0x4a12,0x4a20,0x85e,0x3c79,0x4a2c,0x4a3d,0x3c8b,0x4914,0x3c96,0x4924,0x3ca5,0x4a4e,0x3295,1,0,3,
-0x4a81,0x4a89,0x4a91,0x32ae,0x36,1,2,4,8,0xe,0x10,0x20,0x3e,0x40,0x80,0x100,
-0x1c0,0x200,0x400,0x800,0xe00,0x1000,0x2000,0x4000,0x7000,0x8000,0x10000,0x20000,0x40000,0x78001,0x80000,0x100000,
-0x200000,0x400000,0x800000,0x1000000,0x2000000,0x4000000,0x8000000,0xf000000,0x10000000,0x20000000,0x30f80000,0x2e61,0x2e70,0x2e85,0x2e9a,0x4ac8,
-0x2eaf,0x2ec3,0x4abe,0x2ed4,0x2ee8,0x2efb,0x4ad9,0x2f0c,0x2f25,0x2f37,0x4af0,0x2f48,0x2f5c,0x2f6f,0x4b19,0x2f87,
-0x2f99,0x2fa4,0x2fb4,0x4ab5,0x2fc2,0x2fd7,0x2fec,0x3002,0x301c,0x3032,0x3042,0x3056,0x306a,0x4b0f,0x307b,0x3093,
-0x4afa
+const int32_t PropNameData::valueMaps[1354]={
+6,0,0x41,0,0xe3,0x356,0xe3,0x36c,0xe3,0x381,0xe3,0x397,0xe3,0x3a2,0xe3,0x3c3,
+0xe3,0x3d3,0xe3,0x3e2,0xe3,0x3f0,0xe3,0x414,0xe3,0x42b,0xe3,0x443,0xe3,0x45a,0xe3,0x469,
+0xe3,0x478,0xe3,0x489,0xe3,0x497,0xe3,0x4a9,0xe3,0x4c3,0xe3,0x4de,0xe3,0x4f3,0xe3,0x510,
+0xe3,0x521,0xe3,0x52c,0xe3,0x54b,0xe3,0x561,0xe3,0x572,0xe3,0x582,0xe3,0x59d,0xe3,0x5b6,
+0xe3,0x5c7,0xe3,0x5e1,0xe3,0x5f4,0xe3,0x604,0xe3,0x61e,0xe3,0x637,0xe3,0x64e,0xe3,0x662,
+0xe3,0x678,0xe3,0x68c,0xe3,0x6a2,0xe3,0x6bc,0xe3,0x6d4,0xe3,0x6f0,0xe3,0x6f8,0xe3,0x700,
+0xe3,0x708,0xe3,0x710,0xe3,0x719,0xe3,0x726,0xe3,0x739,0xe3,0x756,0xe3,0x773,0xe3,0x790,
+0xe3,0x7ae,0xe3,0x7cc,0xe3,0x7f0,0xe3,0x7fd,0xe3,0x817,0xe3,0x82c,0xe3,0x847,0xe3,0x85e,
+0xe3,0x875,0xe3,0x897,0xe3,0x1000,0x1019,0x8b6,0x15d,0xad6,0x178,0x2c95,0xe9,0x2cb4,0x2a0,0x2df2,
+0x2b6,0x2e4c,0x2c0,0x30a9,0x2e2,0x39a4,0x34c,0x3a14,0x356,0x3cae,0x385,0x3cec,0x38d,0x474b,0x44a,0x47c9,
+0x454,0x47ee,0x45a,0x4808,0x460,0x4829,0x467,0x4843,0xe9,0x4868,0xe9,0x488e,0x46e,0x4938,0x484,0x49b1,
+0x497,0x4a63,0x4b2,0x4a9a,0x4b9,0x4c49,0x4cc,0x50c9,0x4f4,0x2000,0x2001,0x5128,0x4fc,0x3000,0x3001,0x51b4,
+0,0x4000,0x400e,0x51c6,0,0x51cf,0,0x51e9,0,0x51fa,0,0x520b,0,0x5221,0,0x522a,
+0,0x5247,0,0x5265,0,0x5283,0,0x52a1,0,0x52b7,0,0x52cb,0,0x52e1,0,0x7000,
+0x7001,0x52fa,0,0x7d6,0x12,0,1,0x12,0x20,0x7f4,0x49,0,1,7,8,9,
+0xa,0xb,0xc,0xd,0xe,0xf,0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,
+0x1a,0x1b,0x1c,0x1d,0x1e,0x1f,0x20,0x21,0x22,0x23,0x24,0x54,0x5b,0x67,0x6b,0x76,
+0x7a,0x81,0x82,0x84,0x85,0xc8,0xca,0xd6,0xd8,0xda,0xdc,0xde,0xe0,0xe2,0xe4,0xe6,
+0xe8,0xe9,0xea,0xf0,0x2e,0x40,0x4c,0x56,0x67,0x72,0x7f,0x8c,0x99,0xa6,0xb3,0xc0,
+0xcd,0xda,0xe7,0xf4,0x101,0x10e,0x11b,0x128,0x135,0x142,0x14f,0x15c,0x169,0x176,0x183,0x190,
+0x19d,0x1aa,0x1b7,0x1c4,0x1d1,0x1de,0x1eb,0x1fa,0x209,0x218,0x227,0x236,0x245,0x254,0x263,0x27d,
+0x291,0x2a5,0x2c0,0x2cf,0x2d8,0x2e8,0x2f0,0x2f9,0x308,0x311,0x321,0x332,0x343,0x986,1,0,
+0x17,0x8c5,0x8d6,0x8e7,0x8fb,0x912,0x92a,0x93c,0x951,0x968,0x97d,0x98d,0x99f,0x9bc,0x9d8,0x9ea,
+0xa07,0xa23,0xa3f,0xa54,0xa69,0xa83,0xa9e,0xab9,0xb28,1,0,0x124,0xae1,0xaee,0xb01,0xb29,
+0xb47,0xb65,0xb7d,0xba8,0xbd2,0xbea,0xbfd,0xc10,0xc1f,0xc2e,0xc3d,0xc4c,0xc63,0xc74,0xc87,0xc9a,
+0xca7,0xcb4,0xcc3,0xcd4,0xce9,0xcfa,0xd05,0xd0e,0xd1f,0xd30,0xd43,0xd55,0xd68,0xd7b,0xdba,0xdc7,
+0xdd4,0xde1,0xdf6,0xe26,0xe40,0xe61,0xe8c,0xeaf,0xf0d,0xf34,0xf4f,0xf5e,0xf85,0xfad,0xfd0,0xff3,
+0x101d,0x1036,0x1055,0x1078,0x109c,0x10af,0x10c9,0x10f3,0x110b,0x1133,0x115c,0x116f,0x1182,0x1195,0x11bc,0x11cb,
+0x11eb,0x1219,0x1237,0x1265,0x1281,0x129c,0x12b5,0x12ce,0x12ef,0x131f,0x133e,0x1360,0x1394,0x13c1,0x1406,0x1427,
+0x1451,0x1472,0x149b,0x14ae,0x14e1,0x14f8,0x1507,0x1518,0x1543,0x155a,0x158b,0x15b9,0x15fc,0x1607,0x1640,0x1651,
+0x1662,0x166f,0x1682,0x16bc,0x16e0,0x1704,0x173e,0x1776,0x17a1,0x17b9,0x17e5,0x1811,0x181e,0x182d,0x184a,0x186c,
+0x189a,0x18ba,0x18e1,0x1908,0x1927,0x193a,0x194b,0x195c,0x1981,0x19a6,0x19cd,0x1a01,0x1a2e,0x1a4c,0x1a5f,0x1a78,
+0x1ab1,0x1ac0,0x1ae0,0x1b02,0x1b24,0x1b3b,0x1b52,0x1b7f,0x1b98,0x1bb1,0x1be2,0x1c0c,0x1c27,0x1c3a,0x1c59,0x1c62,
+0x1c75,0x1c93,0x1cb1,0x1cc4,0x1cdb,0x1cf0,0x1d25,0x1d49,0x1d5e,0x1d6d,0x1d80,0x1da4,0x1dad,0x1dd1,0x1de8,0x1dfb,
+0x1e0a,0x1e15,0x1e36,0x1e4e,0x1e5d,0x1e6c,0x1e7b,0x1e92,0x1ea7,0x1ebc,0x1ef5,0x1f08,0x1f24,0x1f2f,0x1f3c,0x1f6a,
+0x1f8e,0x1fb1,0x1fc4,0x1fe6,0x1ff9,0x2014,0x2037,0x205a,0x207f,0x2090,0x20bf,0x20ec,0x2103,0x211e,0x212d,0x2158,
+0x2190,0x21ca,0x21f8,0x2209,0x2216,0x223a,0x2249,0x2265,0x227f,0x229c,0x22d4,0x22e9,0x2316,0x2335,0x2363,0x2383,
+0x23b7,0x23c6,0x23f0,0x2413,0x243e,0x2449,0x245a,0x2475,0x2499,0x24a6,0x24bb,0x24e2,0x250d,0x2544,0x2557,0x2568,
+0x2598,0x25a9,0x25b8,0x25cd,0x25eb,0x25fe,0x2611,0x2628,0x2645,0x2650,0x2659,0x267b,0x2690,0x26b5,0x26cc,0x26f5,
+0x2710,0x2725,0x273e,0x275f,0x2794,0x27a5,0x27d6,0x27fa,0x280b,0x2824,0x282f,0x285c,0x287e,0x28ac,0x28df,0x28ee,
+0x28ff,0x291c,0x295e,0x2985,0x2992,0x29a7,0x29cb,0x29f1,0x2a2a,0x2a3b,0x2a5f,0x2a6a,0x2a77,0x2a86,0x2aab,0x2ad9,
+0x2af5,0x2b12,0x2b1f,0x2b30,0x2b4e,0x2b71,0x2b8e,0x2b9b,0x2bbb,0x2bd8,0x2bf9,0x2c22,0x2c33,0x2c52,0x2c6b,0x2c84,
+0x1d4e,1,0,0x12,0x2ccb,0x2cdb,0x2cee,0x2cfe,0x2d0e,0x2d1d,0x2d2d,0x2d3f,0x2d52,0x2d64,0x2d74,0x2d84,
+0x2d93,0x2da2,0x2db2,0x2dbf,0x2dce,0x2de2,0x1e0c,1,0,6,0x2e07,0x2e12,0x2e1f,0x2e2c,0x2e39,0x2e44,
+0x1e50,1,0,0x1e,0x2e61,0x2e70,0x2e85,0x2e9a,0x2eaf,0x2ec3,0x2ed4,0x2ee8,0x2efb,0x2f0c,0x2f25,0x2f37,
+0x2f48,0x2f5c,0x2f6f,0x2f87,0x2f99,0x2fa4,0x2fb4,0x2fc2,0x2fd7,0x2fec,0x3002,0x301c,0x3032,0x3042,0x3056,0x306a,
+0x307b,0x3093,0x207b,1,0,0x66,0x30bb,0x30de,0x30e7,0x30f4,0x30ff,0x3108,0x3113,0x311c,0x3135,0x313a,
+0x3143,0x3160,0x3169,0x3176,0x317f,0x31a3,0x31aa,0x31b3,0x31c6,0x31d1,0x31da,0x31e5,0x31fe,0x3207,0x3216,0x3221,
+0x322a,0x3235,0x323e,0x3245,0x324e,0x3259,0x3262,0x327b,0x3284,0x3291,0x329c,0x32ad,0x32b8,0x32cd,0x32e4,0x32ed,
+0x32f6,0x330f,0x331a,0x3323,0x332c,0x3343,0x3360,0x336b,0x337c,0x3387,0x338e,0x339b,0x33a8,0x33d5,0x33ea,0x33f3,
+0x340e,0x3431,0x3452,0x3473,0x3498,0x34bf,0x34e0,0x3503,0x3524,0x354b,0x356c,0x3591,0x35b0,0x35cf,0x35ee,0x360b,
+0x362c,0x364d,0x3670,0x3695,0x36b4,0x36d3,0x36f4,0x371b,0x3740,0x375f,0x3780,0x37a3,0x37be,0x37d7,0x37f2,0x380b,
+0x3828,0x3843,0x3860,0x387f,0x389c,0x38b9,0x38d8,0x38f5,0x3910,0x392d,0x394a,0x397d,0x23c0,1,0,6,
+0x39b5,0x39c4,0x39d4,0x39e4,0x39f4,0x3a05,0x241e,1,0,0x2b,0x3a23,0x3a2f,0x3a3d,0x3a4c,0x3a5b,0x3a6b,
+0x3a7c,0x3a90,0x3aa5,0x3abb,0x3ace,0x3ae2,0x3af2,0x3afb,0x3b06,0x3b16,0x3b32,0x3b44,0x3b52,0x3b61,0x3b6d,0x3b82,
+0x3b96,0x3ba9,0x3bb7,0x3bcb,0x3bd9,0x3be3,0x3bf5,0x3c01,0x3c0f,0x3c1f,0x3c26,0x3c2d,0x3c34,0x3c3b,0x3c42,0x3c58,
+0x3c79,0x85e,0x3c8b,0x3c96,0x3ca5,0x2677,1,0,4,0x3cbf,0x3cca,0x3cd6,0x3ce0,0x269d,1,0,
+0xb9,0x3cf7,0x3d04,0x3d19,0x3d26,0x3d35,0x3d43,0x3d52,0x3d61,0x3d73,0x3d82,0x3d90,0x3da1,0x3db0,0x3dbf,0x3dcc,
+0x3dd8,0x3de7,0x3df6,0x3e00,0x3e0d,0x3e1a,0x3e29,0x3e37,0x3e46,0x3e52,0x3e5c,0x3e68,0x3e78,0x3e88,0x3e96,0x3ea2,
+0x3eb3,0x3ebf,0x3ecb,0x3ed9,0x3ee6,0x3ef2,0x3eff,0xcfa,0x3f0c,0x3f1a,0x3f34,0x3f3d,0x3f4b,0x3f59,0x3f65,0x3f74,
+0x3f82,0x3f90,0x3f9c,0x3fab,0x3fb9,0x3fc7,0x3fd4,0x3fe3,0x3ffe,0x400d,0x401e,0x402f,0x4042,0x4054,0x4063,0x4075,
+0x4084,0x4090,0x409b,0x1e0a,0x40a8,0x40b3,0x40be,0x40c9,0x40d4,0x40ef,0x40fa,0x4105,0x4110,0x4123,0x4137,0x4142,
+0x4151,0x4160,0x416b,0x4176,0x4183,0x4192,0x41a0,0x41ab,0x41c6,0x41d0,0x41e1,0x41f2,0x4201,0x4212,0x421d,0x4228,
+0x4233,0x423e,0x4249,0x4254,0x425f,0x4269,0x4274,0x4284,0x428f,0x429d,0x42aa,0x42b5,0x42c4,0x42d1,0x42de,0x42ed,
+0x42fa,0x430b,0x431d,0x432d,0x4338,0x434b,0x4362,0x4370,0x437d,0x4388,0x4395,0x43a6,0x43c2,0x43d8,0x43e3,0x4400,
+0x4410,0x441f,0x442a,0x4435,0x1f24,0x4441,0x444c,0x4464,0x4474,0x4483,0x4491,0x449f,0x44aa,0x44b5,0x44c9,0x44e0,
+0x44f8,0x4508,0x4518,0x4528,0x453a,0x4545,0x4550,0x455a,0x4566,0x4574,0x4587,0x4593,0x45a0,0x45ab,0x45c7,0x45d4,
+0x45e2,0x45fb,0x2824,0x460a,0x2645,0x4617,0x4625,0x4637,0x4645,0x4651,0x4661,0x2a5f,0x466f,0x467b,0x4686,0x4691,
+0x469c,0x46b0,0x46be,0x46d5,0x46e1,0x46f5,0x4703,0x4715,0x472b,0x4739,0x3000,1,0,6,0x4765,0x4778,
+0x4788,0x4796,0x47a7,0x47b7,0x305c,0x12,0,1,0x47e1,0x47e7,0x3069,0x12,0,1,0x47e1,0x47e7,
+0x3076,1,0,3,0x47e1,0x47e7,0x4820,0x308c,1,0,3,0x47e1,0x47e7,0x4820,0x30a2,1,
+0,0x12,0x48aa,0x48b4,0x48c0,0x48c7,0x48d2,0x48d7,0x48de,0x48e5,0x48ee,0x48f3,0x48f8,0x4908,0x85e,0x3c8b,
+0x4914,0x3c96,0x4924,0x3ca5,0x314b,1,0,0xf,0x48aa,0x494b,0x4955,0x495f,0x496a,0x3b61,0x4974,0x4980,
+0x4988,0x498f,0x4999,0x48c0,0x48c7,0x48d7,0x49a3,0x31d2,1,0,0x17,0x48aa,0x49c0,0x495f,0x49cc,0x49d9,
+0x49e7,0x3b61,0x49f2,0x48c0,0x4a03,0x48d7,0x4a12,0x4a20,0x85e,0x3c79,0x4a2c,0x4a3d,0x3c8b,0x4914,0x3c96,0x4924,
+0x3ca5,0x4a4e,0x32ef,1,0,3,0x4a81,0x4a89,0x4a91,0x3308,1,0,0xf,0x4aba,0x4ac1,0x4ad0,
+0x4af1,0x4b14,0x4b1f,0x4b3e,0x4b55,0x4b62,0x4b6b,0x4b8a,0x4bbd,0x4bd8,0x4c07,0x4c24,0x3398,1,0,0x24,
+0x4c67,0x4c74,0x4c87,0x4c94,0x4cc1,0x4ce6,0x4cfb,0x4d1a,0x4d3b,0x4d68,0x4da1,0x4dc4,0x4de7,0x4e14,0x4e49,0x4e70,
+0x4e99,0x4ed0,0x4eff,0x4f20,0x4f45,0x4f54,0x4f77,0x4f8e,0x4f9b,0x4faa,0x4fc7,0x4fe0,0x5003,0x5028,0x5041,0x5056,
+0x5065,0x5076,0x5083,0x50a4,0x3568,1,0,4,0x50e2,0x50ed,0x5105,0x511d,0x35a4,0x36,1,2,
+4,8,0xe,0x10,0x20,0x3e,0x40,0x80,0x100,0x1c0,0x200,0x400,0x800,0xe00,0x1000,0x2000,
+0x4000,0x7000,0x8000,0x10000,0x20000,0x40000,0x78001,0x80000,0x100000,0x200000,0x400000,0x800000,0x1000000,0x2000000,0x4000000,0x8000000,
+0xf000000,0x10000000,0x20000000,0x30f80000,0x2e61,0x2e70,0x2e85,0x2e9a,0x5156,0x2eaf,0x2ec3,0x514c,0x2ed4,0x2ee8,0x2efb,0x5167,
+0x2f0c,0x2f25,0x2f37,0x517e,0x2f48,0x2f5c,0x2f6f,0x51a7,0x2f87,0x2f99,0x2fa4,0x2fb4,0x5143,0x2fc2,0x2fd7,0x2fec,
+0x3002,0x301c,0x3032,0x3042,0x3056,0x306a,0x519d,0x307b,0x3093,0x5188
 };
 
-const uint8_t PropNameData::bytesTries[13765]={
-0,0x15,0x6d,0xc3,0x5d,0x73,0xc1,0xf7,0x76,0x5f,0x76,0x68,0x77,0x90,0x78,1,
-0x64,0x50,0x69,0x10,0x64,1,0x63,0x30,0x73,0x62,0x13,0x74,0x61,0x72,0x74,0x63,
-0x60,0x16,0x6f,0x6e,0x74,0x69,0x6e,0x75,0x65,0x61,0x13,0x69,0x67,0x69,0x74,0x81,
-1,0x61,0x24,0x73,0x69,0x1e,0x72,0x69,0x61,0x74,0x69,0x6f,0x6e,0x73,0x65,0x6c,
-0x65,0x63,0x74,0x6f,0x72,0x69,3,0x62,0xc3,0x14,0x68,0x32,0x6f,0x42,0x73,0x13,
-0x70,0x61,0x63,0x65,0x5f,0x17,0x69,0x74,0x65,0x73,0x70,0x61,0x63,0x65,0x5f,0x16,
-0x72,0x64,0x62,0x72,0x65,0x61,0x6b,0xc3,0x14,0x73,0xa2,0x49,0x74,0xa4,0x3b,0x75,
-3,0x63,0xd9,0x40,0xc,0x69,0x52,0x6e,0x58,0x70,0x12,0x70,0x65,0x72,0x5c,0x13,
-0x63,0x61,0x73,0x65,0x5c,0x16,0x6d,0x61,0x70,0x70,0x69,0x6e,0x67,0xd9,0x40,0xc,
-0x12,0x64,0x65,0x6f,0x5b,0x10,0x69,1,0x63,0x3e,0x66,0x1b,0x69,0x65,0x64,0x69,
-0x64,0x65,0x6f,0x67,0x72,0x61,0x70,0x68,0x5b,0x17,0x6f,0x64,0x65,0x31,0x6e,0x61,
-0x6d,0x65,0xd9,0x40,0xb,0xa,0x69,0x84,0x70,0x19,0x70,0x30,0x74,0x36,0x75,0x10,
-0x63,0xd9,0x40,9,0x12,0x61,0x63,0x65,0x5f,1,0x63,0xd9,0x40,8,0x65,0x11,
-0x72,0x6d,0x67,0x69,0x3c,0x6c,0xa2,0x5f,0x6f,0x17,0x66,0x74,0x64,0x6f,0x74,0x74,
-0x65,0x64,0x57,0x13,0x6d,0x70,0x6c,0x65,3,0x63,0x50,0x6c,0x68,0x74,0x8a,0x75,
-0x1e,0x70,0x70,0x65,0x72,0x63,0x61,0x73,0x65,0x6d,0x61,0x70,0x70,0x69,0x6e,0x67,
-0xd9,0x40,9,0x19,0x61,0x73,0x65,0x66,0x6f,0x6c,0x64,0x69,0x6e,0x67,0xd9,0x40,
-6,0x1e,0x6f,0x77,0x65,0x72,0x63,0x61,0x73,0x65,0x6d,0x61,0x70,0x70,0x69,0x6e,
-0x67,0xd9,0x40,7,0x1e,0x69,0x74,0x6c,0x65,0x63,0x61,0x73,0x65,0x6d,0x61,0x70,
-0x70,0x69,0x6e,0x67,0xd9,0x40,8,0x10,0x63,0xd9,0x40,7,0x62,0xc3,0x13,0x63,
-0x34,0x64,0x57,0x65,0x6e,0x66,0x10,0x63,0xd9,0x40,6,0xc2,0xa,2,0x66,0xd9,
-0x40,6,0x72,0x28,0x78,0xd9,0x70,0,0x12,0x69,0x70,0x74,0xc2,0xa,0x19,0x65,
-0x78,0x74,0x65,0x6e,0x73,0x69,0x6f,0x6e,0x73,0xd9,0x70,0,1,0x67,0x6a,0x6e,
-1,0x73,0x54,0x74,0x13,0x65,0x6e,0x63,0x65,1,0x62,0x34,0x74,0x16,0x65,0x72,
-0x6d,0x69,0x6e,0x61,0x6c,0x67,0x13,0x72,0x65,0x61,0x6b,0xc3,0x13,0x14,0x69,0x74,
-0x69,0x76,0x65,0x65,1,0x6d,0x2e,0x73,0x13,0x74,0x61,0x72,0x74,0x73,0x19,0x65,
-0x6e,0x74,0x73,0x74,0x61,0x72,0x74,0x65,0x72,0x73,3,0x63,0x66,0x65,0x72,0x69,
-0x98,0x72,0x19,0x61,0x69,0x6c,0x63,0x61,0x6e,0x6f,0x6e,0x69,0x63,0x1f,0x61,0x6c,
-0x63,0x6f,0x6d,0x62,0x69,0x6e,0x69,0x6e,0x67,0x63,0x6c,0x61,0x73,0x73,0xc3,0x11,
-0xd8,0x40,0xa,0x11,0x63,0x63,0xc3,0x11,0x11,0x72,0x6d,0x58,0x1e,0x69,0x6e,0x61,
-0x6c,0x70,0x75,0x6e,0x63,0x74,0x75,0x61,0x74,0x69,0x6f,0x6e,0x59,0x1d,0x74,0x6c,
-0x65,0x63,0x61,0x73,0x65,0x6d,0x61,0x70,0x70,0x69,0x6e,0x67,0xd9,0x40,0xa,0x6d,
-0x70,0x6e,0x76,0x70,0xa2,0xf1,0x71,0xa4,0x43,0x72,2,0x61,0x28,0x65,0x32,0x69,
-0x9d,0x14,0x64,0x69,0x63,0x61,0x6c,0x55,0x1e,0x67,0x69,0x6f,0x6e,0x61,0x6c,0x69,
-0x6e,0x64,0x69,0x63,0x61,0x74,0x6f,0x72,0x9d,0x12,0x61,0x74,0x68,0x4f,6,0x6f,
-0x39,0x6f,0x32,0x74,0xc3,9,0x75,0x54,0x76,0xd9,0x30,0,0x12,0x6e,0x63,0x68,
-0x1f,0x61,0x72,0x61,0x63,0x74,0x65,0x72,0x63,0x6f,0x64,0x65,0x70,0x6f,0x69,0x6e,
-0x74,0x51,0x14,0x6d,0x65,0x72,0x69,0x63,1,0x74,0x32,0x76,0x13,0x61,0x6c,0x75,
-0x65,0xd9,0x30,0,0x12,0x79,0x70,0x65,0xc3,9,0x61,0xa2,0x77,0x63,0xa2,0x82,
-0x66,2,0x63,0x98,0x64,0xa2,0x53,0x6b,1,0x63,0x56,0x64,1,0x69,0x42,0x71,
-1,0x63,0xc3,0xd,0x75,0x17,0x69,0x63,0x6b,0x63,0x68,0x65,0x63,0x6b,0xc3,0xd,
-0x13,0x6e,0x65,0x72,0x74,0x6d,1,0x69,0x42,0x71,1,0x63,0xc3,0xf,0x75,0x17,
-0x69,0x63,0x6b,0x63,0x68,0x65,0x63,0x6b,0xc3,0xf,0x13,0x6e,0x65,0x72,0x74,0x71,
-1,0x69,0x42,0x71,1,0x63,0xc3,0xe,0x75,0x17,0x69,0x63,0x6b,0x63,0x68,0x65,
-0x63,0x6b,0xc3,0xe,0x13,0x6e,0x65,0x72,0x74,0x6f,1,0x69,0x42,0x71,1,0x63,
-0xc3,0xc,0x75,0x17,0x69,0x63,0x6b,0x63,0x68,0x65,0x63,0x6b,0xc3,0xc,0x13,0x6e,
-0x65,0x72,0x74,0x6b,0xd8,0x40,5,1,0x31,0xd9,0x40,0xb,0x6d,0x10,0x65,0xd9,
-0x40,5,0x12,0x68,0x61,0x72,0x51,2,0x61,0x6c,0x63,0xa2,0x4c,0x72,1,0x65,
-0x2a,0x69,0x11,0x6e,0x74,0x7f,0x16,0x70,0x65,0x6e,0x64,0x65,0x64,0x63,0x1f,0x6f,
-0x6e,0x63,0x61,0x74,0x65,0x6e,0x61,0x74,0x69,0x6f,0x6e,0x6d,0x61,0x72,0x6b,0x9f,
-0x10,0x74,2,0x73,0x2c,0x74,0x30,0x77,0x10,0x73,0x77,0x11,0x79,0x6e,0x75,0x12,
-0x65,0x72,0x6e,1,0x73,0x38,0x77,0x18,0x68,0x69,0x74,0x65,0x73,0x70,0x61,0x63,
-0x65,0x77,0x14,0x79,0x6e,0x74,0x61,0x78,0x75,0x10,0x6d,0x9f,1,0x6d,0x3c,0x75,
-0x1a,0x6f,0x74,0x61,0x74,0x69,0x6f,0x6e,0x6d,0x61,0x72,0x6b,0x53,0x12,0x61,0x72,
-0x6b,0x53,0x66,0xc1,0xb9,0x69,0xc0,0xfd,0x69,0xa2,0x6f,0x6a,0xa2,0xca,0x6c,4,
-0x62,0xc3,8,0x63,0x8c,0x65,0x98,0x69,0xa2,0x56,0x6f,2,0x65,0x4b,0x67,0x4c,
-0x77,0x11,0x65,0x72,0x4c,0x13,0x63,0x61,0x73,0x65,0x4c,0x16,0x6d,0x61,0x70,0x70,
-0x69,0x6e,0x67,0xd9,0x40,4,0x11,0x69,0x63,0x1f,0x61,0x6c,0x6f,0x72,0x64,0x65,
-0x72,0x65,0x78,0x63,0x65,0x70,0x74,0x69,0x6f,0x6e,0x4b,0xd8,0x40,4,0x11,0x63,
-0x63,0xc3,0x10,0x18,0x61,0x64,0x63,0x61,0x6e,0x6f,0x6e,0x69,0x63,0x1f,0x61,0x6c,
-0x63,0x6f,0x6d,0x62,0x69,0x6e,0x69,0x6e,0x67,0x63,0x6c,0x61,0x73,0x73,0xc3,0x10,
-0x16,0x6e,0x65,0x62,0x72,0x65,0x61,0x6b,0xc3,8,1,0x64,0x44,0x73,1,0x63,
-0xd9,0x40,3,0x6f,0x16,0x63,0x6f,0x6d,0x6d,0x65,0x6e,0x74,0xd9,0x40,3,2,
-0x63,0x80,0x65,0x90,0x73,0x40,1,0x62,0x52,0x74,0x46,1,0x61,0x40,0x72,0x1c,
-0x69,0x6e,0x61,0x72,0x79,0x6f,0x70,0x65,0x72,0x61,0x74,0x6f,0x72,0x47,0x11,0x72,
-0x74,0x41,0x44,0x1c,0x69,0x6e,0x61,0x72,0x79,0x6f,0x70,0x65,0x72,0x61,0x74,0x6f,
-0x72,0x45,0x3e,0x16,0x6f,0x6e,0x74,0x69,0x6e,0x75,0x65,0x3f,0x10,0x6f,0x42,0x16,
-0x67,0x72,0x61,0x70,0x68,0x69,0x63,0x43,2,0x67,0xc3,6,0x6f,0x26,0x74,0xc3,
-7,0x11,0x69,0x6e,1,0x63,0x4a,0x69,0x11,0x6e,0x67,1,0x67,0x2e,0x74,0x12,
-0x79,0x70,0x65,0xc3,7,0x13,0x72,0x6f,0x75,0x70,0xc3,6,0x48,0x15,0x6f,0x6e,
-0x74,0x72,0x6f,0x6c,0x49,0x66,0x86,0x67,0xa2,0x4a,0x68,3,0x61,0x36,0x65,0x58,
-0x73,0x68,0x79,0x13,0x70,0x68,0x65,0x6e,0x3d,0x1f,0x6e,0x67,0x75,0x6c,0x73,0x79,
-0x6c,0x6c,0x61,0x62,0x6c,0x65,0x74,0x79,0x70,0x65,0xc3,0xb,0x10,0x78,0x3a,0x14,
-0x64,0x69,0x67,0x69,0x74,0x3b,0x10,0x74,0xc3,0xb,0x16,0x75,0x6c,0x6c,0x63,0x6f,
-0x6d,0x70,0x1f,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x65,0x78,0x63,0x6c,0x75,0x73,
-0x69,0x6f,0x6e,0x33,2,0x63,0xa2,0x44,0x65,0xa2,0x4b,0x72,3,0x61,0x34,0x62,
-0x84,0x65,0x8a,0x6c,0x12,0x69,0x6e,0x6b,0x39,0x11,0x70,0x68,0x7c,0x12,0x65,0x6d,
-0x65,3,0x62,0x5e,0x63,0x30,0x65,0x48,0x6c,0x12,0x69,0x6e,0x6b,0x39,0x1a,0x6c,
-0x75,0x73,0x74,0x65,0x72,0x62,0x72,0x65,0x61,0x6b,0xc3,0x12,0x14,0x78,0x74,0x65,
-0x6e,0x64,0x37,0x12,0x61,0x73,0x65,0x35,0x11,0x78,0x74,0x37,0xc2,5,1,0x62,
-0xc3,0x12,0x6d,0xd9,0x20,0,0x1c,0x6e,0x65,0x72,0x61,0x6c,0x63,0x61,0x74,0x65,
-0x67,0x6f,0x72,0x79,0xc2,5,0x13,0x6d,0x61,0x73,0x6b,0xd9,0x20,0,0x61,0xa2,
-0x90,0x62,0xa2,0xbe,0x63,0xa4,0x30,0x64,0xa4,0xfd,0x65,5,0x6d,0x63,0x6d,0x6e,
-0x70,0xa2,0x59,0x78,0x10,0x74,0x30,1,0x65,0x2c,0x70,0x12,0x69,0x63,0x74,0xa1,
-0x12,0x6e,0x64,0x65,1,0x64,0x24,0x72,0x31,0x1b,0x70,0x69,0x63,0x74,0x6f,0x67,
-0x72,0x61,0x70,0x68,0x69,0x63,0xa1,0x10,0x6f,1,0x64,0x97,0x6a,0x10,0x69,0x92,
-2,0x63,0x40,0x6d,0x50,0x70,0x1a,0x72,0x65,0x73,0x65,0x6e,0x74,0x61,0x74,0x69,
-0x6f,0x6e,0x95,0x17,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x9b,0x16,0x6f,0x64,
-0x69,0x66,0x69,0x65,0x72,0x96,0x13,0x62,0x61,0x73,0x65,0x99,0x12,0x72,0x65,0x73,
-0x95,0x61,0x30,0x62,0x4e,0x63,0x12,0x6f,0x6d,0x70,0x9b,0xc2,4,0x1b,0x73,0x74,
-0x61,0x73,0x69,0x61,0x6e,0x77,0x69,0x64,0x74,0x68,0xc3,4,0x12,0x61,0x73,0x65,
-0x99,3,0x67,0x44,0x68,0x4a,0x6c,0x4e,0x73,0x1a,0x63,0x69,0x69,0x68,0x65,0x78,
-0x64,0x69,0x67,0x69,0x74,0x23,0x10,0x65,0xd9,0x40,0,0x11,0x65,0x78,0x23,1,
-0x6e,0x38,0x70,0x11,0x68,0x61,0x20,0x14,0x62,0x65,0x74,0x69,0x63,0x21,0x11,0x75,
-0x6d,0x79,4,0x63,0xc3,0,0x69,0x3e,0x6c,0xa2,0x57,0x6d,0xa2,0x64,0x70,1,
-0x62,0xd9,0x40,0xd,0x74,0xc3,0x15,0x11,0x64,0x69,2,0x63,0x54,0x6d,0x74,0x70,
-0x1b,0x61,0x69,0x72,0x65,0x64,0x62,0x72,0x61,0x63,0x6b,0x65,0x74,0xd8,0x40,0xd,
-0x13,0x74,0x79,0x70,0x65,0xc3,0x15,0x24,1,0x6c,0x30,0x6f,0x14,0x6e,0x74,0x72,
-0x6f,0x6c,0x25,0x12,0x61,0x73,0x73,0xc3,0,0x26,0x14,0x69,0x72,0x72,0x6f,0x72,
-1,0x65,0x38,0x69,0x16,0x6e,0x67,0x67,0x6c,0x79,0x70,0x68,0xd9,0x40,1,0x10,
-0x64,0x27,2,0x61,0x32,0x6b,0xc3,1,0x6f,0x11,0x63,0x6b,0xc3,1,0x11,0x6e,
-0x6b,0x7b,0x10,0x67,0xd9,0x40,1,6,0x68,0x7c,0x68,0x54,0x69,0x85,0x6f,0xa2,
-0x6f,0x77,4,0x63,0x30,0x6b,0x36,0x6c,0x87,0x74,0x8b,0x75,0x89,1,0x66,0x8d,
-0x6d,0x8f,0x11,0x63,0x66,0x91,0x18,0x61,0x6e,0x67,0x65,0x73,0x77,0x68,0x65,0x6e,
-4,0x63,0x44,0x6c,0x6c,0x6e,0x7e,0x74,0x98,0x75,0x18,0x70,0x70,0x65,0x72,0x63,
-0x61,0x73,0x65,0x64,0x89,0x12,0x61,0x73,0x65,1,0x66,0x30,0x6d,0x14,0x61,0x70,
-0x70,0x65,0x64,0x8f,0x14,0x6f,0x6c,0x64,0x65,0x64,0x8d,0x18,0x6f,0x77,0x65,0x72,
-0x63,0x61,0x73,0x65,0x64,0x87,0x1c,0x66,0x6b,0x63,0x63,0x61,0x73,0x65,0x66,0x6f,
-0x6c,0x64,0x65,0x64,0x91,0x18,0x69,0x74,0x6c,0x65,0x63,0x61,0x73,0x65,0x64,0x8b,
-0x13,0x6d,0x70,0x65,0x78,0x33,0x61,0x2e,0x63,0xa2,0x48,0x66,0xd9,0x40,2,1,
-0x6e,0x72,0x73,0x10,0x65,3,0x64,0x83,0x66,0x3a,0x69,0x4a,0x73,0x17,0x65,0x6e,
-0x73,0x69,0x74,0x69,0x76,0x65,0x65,0x15,0x6f,0x6c,0x64,0x69,0x6e,0x67,0xd9,0x40,
-2,0x17,0x67,0x6e,0x6f,0x72,0x61,0x62,0x6c,0x65,0x85,0x13,0x6f,0x6e,0x69,0x63,
-0x1f,0x61,0x6c,0x63,0x6f,0x6d,0x62,0x69,0x6e,0x69,0x6e,0x67,0x63,0x6c,0x61,0x73,
-0x73,0xc3,2,0x10,0x63,0xc3,2,3,0x61,0x30,0x65,0x34,0x69,0xa2,0x41,0x74,
-0xc3,3,0x11,0x73,0x68,0x29,2,0x63,0x3a,0x66,0x58,0x70,0x2c,0x16,0x72,0x65,
-0x63,0x61,0x74,0x65,0x64,0x2d,0x1d,0x6f,0x6d,0x70,0x6f,0x73,0x69,0x74,0x69,0x6f,
-0x6e,0x74,0x79,0x70,0x65,0xc3,3,0x15,0x61,0x75,0x6c,0x74,0x69,0x67,0x1f,0x6e,
-0x6f,0x72,0x61,0x62,0x6c,0x65,0x63,0x6f,0x64,0x65,0x70,0x6f,0x69,0x6e,0x74,0x2b,
-0x2a,0x10,0x61,0x2e,0x15,0x63,0x72,0x69,0x74,0x69,0x63,0x2f,3,0x66,0x34,0x6e,
-0x3e,0x74,0x42,0x79,0x22,0x11,0x65,0x73,0x23,0x20,0x13,0x61,0x6c,0x73,0x65,0x21,
-0x20,0x10,0x6f,0x21,0x22,0x12,0x72,0x75,0x65,0x23,0xa,0x6b,0x5b,0x6f,0x23,0x6f,
-0x3c,0x72,0x4c,0x76,1,0x69,0x24,0x72,0x33,0x13,0x72,0x61,0x6d,0x61,0x33,0x10,
-0x76,0x22,0x14,0x65,0x72,0x6c,0x61,0x79,0x23,0xa2,0xe2,0x13,0x69,0x67,0x68,0x74,
-0xa3,0xe2,0x6b,0x58,0x6c,0x74,0x6e,3,0x6b,0x2f,0x6f,0x30,0x72,0x21,0x75,0x12,
-0x6b,0x74,0x61,0x2f,0x19,0x74,0x72,0x65,0x6f,0x72,0x64,0x65,0x72,0x65,0x64,0x21,
-1,0x61,0x24,0x76,0x31,0x18,0x6e,0x61,0x76,0x6f,0x69,0x63,0x69,0x6e,0x67,0x31,
-0xa2,0xe0,0x12,0x65,0x66,0x74,0xa3,0xe0,0x61,0x5c,0x62,0xa2,0x77,0x63,0xa2,0x96,
-0x64,0xa4,0xa,0x69,1,0x6f,0x26,0x73,0xa3,0xf0,0x1a,0x74,0x61,0x73,0x75,0x62,
-0x73,0x63,0x72,0x69,0x70,0x74,0xa3,0xf0,0xa2,0xe6,3,0x62,0xa0,0x6c,0xa3,0xe4,
-0x72,0xa3,0xe8,0x74,2,0x61,0x74,0x62,0x7c,0x74,0x14,0x61,0x63,0x68,0x65,0x64,
-1,0x61,0x3e,0x62,0x13,0x65,0x6c,0x6f,0x77,0xa2,0xca,0x13,0x6c,0x65,0x66,0x74,
-0xa3,0xc8,0x13,0x62,0x6f,0x76,0x65,0xa2,0xd6,0x14,0x72,0x69,0x67,0x68,0x74,0xa3,
-0xd8,0xa2,0xd6,0x10,0x72,0xa3,0xd8,0xa2,0xca,0x10,0x6c,0xa3,0xc8,0x12,0x6f,0x76,
-0x65,0xa2,0xe6,1,0x6c,0x30,0x72,0x13,0x69,0x67,0x68,0x74,0xa3,0xe8,0x12,0x65,
-0x66,0x74,0xa3,0xe4,0xa2,0xdc,2,0x65,0x2c,0x6c,0xa3,0xda,0x72,0xa3,0xde,0x12,
-0x6c,0x6f,0x77,0xa2,0xdc,1,0x6c,0x30,0x72,0x13,0x69,0x67,0x68,0x74,0xa3,0xde,
-0x12,0x65,0x66,0x74,0xa3,0xda,0x11,0x63,0x63,4,0x31,0x3c,0x32,0xa2,0x42,0x33,
-0xa2,0x56,0x38,0xa2,0x64,0x39,0x10,0x31,0xa3,0x5b,9,0x35,0xa,0x35,0x3f,0x36,
-0x41,0x37,0x43,0x38,0x45,0x39,0x47,0x30,0x30,0x31,0x3c,0x32,0x42,0x33,0x4e,0x34,
-0x3d,0x34,1,0x33,0xa3,0x67,0x37,0xa3,0x6b,0x36,0x10,0x38,0xa3,0x76,0x38,1,
-0x32,0xa3,0x7a,0x39,0xa3,0x81,0x3a,2,0x30,0xa3,0x82,0x32,0xa3,0x84,0x33,0xa3,
-0x85,9,0x35,0xa,0x35,0x53,0x36,0x55,0x37,0x57,0x38,0x59,0x39,0x5b,0x30,0x49,
-0x31,0x4b,0x32,0x4d,0x33,0x4f,0x34,0x51,6,0x33,8,0x33,0x63,0x34,0x65,0x35,
-0x67,0x36,0x69,0x30,0x5d,0x31,0x5f,0x32,0x61,0x10,0x34,0xa3,0x54,2,0x61,0xa3,
-0xea,0x62,0xa3,0xe9,0x6f,0x13,0x75,0x62,0x6c,0x65,1,0x61,0x30,0x62,0x13,0x65,
-0x6c,0x6f,0x77,0xa3,0xe9,0x13,0x62,0x6f,0x76,0x65,0xa3,0xea,0xb,0x6e,0xc0,0xca,
-0x72,0x5f,0x72,0x46,0x73,0xa2,0x48,0x77,1,0x68,0x24,0x73,0x33,0x17,0x69,0x74,
-0x65,0x73,0x70,0x61,0x63,0x65,0x33,0x22,1,0x69,0x30,0x6c,2,0x65,0x3d,0x69,
-0x4b,0x6f,0x3f,0x18,0x67,0x68,0x74,0x74,0x6f,0x6c,0x65,0x66,0x74,0x22,2,0x65,
-0x38,0x69,0x48,0x6f,0x16,0x76,0x65,0x72,0x72,0x69,0x64,0x65,0x3f,0x17,0x6d,0x62,
-0x65,0x64,0x64,0x69,0x6e,0x67,0x3d,0x15,0x73,0x6f,0x6c,0x61,0x74,0x65,0x4b,0x30,
-0x1e,0x65,0x67,0x6d,0x65,0x6e,0x74,0x73,0x65,0x70,0x61,0x72,0x61,0x74,0x6f,0x72,
-0x31,0x6e,0xa2,0x41,0x6f,0xa2,0x53,0x70,2,0x61,0x66,0x64,0x86,0x6f,0x1b,0x70,
-0x64,0x69,0x72,0x65,0x63,0x74,0x69,0x6f,0x6e,0x61,0x6c,1,0x66,0x32,0x69,0x15,
-0x73,0x6f,0x6c,0x61,0x74,0x65,0x4d,0x14,0x6f,0x72,0x6d,0x61,0x74,0x41,0x1f,0x72,
-0x61,0x67,0x72,0x61,0x70,0x68,0x73,0x65,0x70,0x61,0x72,0x61,0x74,0x6f,0x72,0x2f,
-1,0x66,0x41,0x69,0x4d,1,0x6f,0x28,0x73,0x10,0x6d,0x43,0x1b,0x6e,0x73,0x70,
-0x61,0x63,0x69,0x6e,0x67,0x6d,0x61,0x72,0x6b,0x43,1,0x6e,0x35,0x74,0x19,0x68,
-0x65,0x72,0x6e,0x65,0x75,0x74,0x72,0x61,0x6c,0x35,0x65,0x88,0x65,0x98,0x66,0xa2,
-0x6a,0x6c,0x20,1,0x65,0x30,0x72,2,0x65,0x37,0x69,0x49,0x6f,0x39,0x18,0x66,
-0x74,0x74,0x6f,0x72,0x69,0x67,0x68,0x74,0x20,2,0x65,0x38,0x69,0x48,0x6f,0x16,
-0x76,0x65,0x72,0x72,0x69,0x64,0x65,0x39,0x17,0x6d,0x62,0x65,0x64,0x64,0x69,0x6e,
-0x67,0x37,0x15,0x73,0x6f,0x6c,0x61,0x74,0x65,0x49,3,0x6e,0x25,0x73,0x27,0x74,
-0x29,0x75,0x15,0x72,0x6f,0x70,0x65,0x61,0x6e,2,0x6e,0x3c,0x73,0x46,0x74,0x18,
-0x65,0x72,0x6d,0x69,0x6e,0x61,0x74,0x6f,0x72,0x29,0x14,0x75,0x6d,0x62,0x65,0x72,
-0x25,0x17,0x65,0x70,0x61,0x72,0x61,0x74,0x6f,0x72,0x27,1,0x69,0x28,0x73,0x10,
-0x69,0x47,0x1f,0x72,0x73,0x74,0x73,0x74,0x72,0x6f,0x6e,0x67,0x69,0x73,0x6f,0x6c,
-0x61,0x74,0x65,0x47,0x61,0x4e,0x62,0x84,0x63,1,0x6f,0x24,0x73,0x2d,0x1c,0x6d,
-0x6d,0x6f,0x6e,0x73,0x65,0x70,0x61,0x72,0x61,0x74,0x6f,0x72,0x2d,2,0x6c,0x3b,
-0x6e,0x2b,0x72,0x13,0x61,0x62,0x69,0x63,1,0x6c,0x30,0x6e,0x14,0x75,0x6d,0x62,
-0x65,0x72,0x2b,0x14,0x65,0x74,0x74,0x65,0x72,0x3b,0x2e,1,0x6e,0x45,0x6f,0x1c,
-0x75,0x6e,0x64,0x61,0x72,0x79,0x6e,0x65,0x75,0x74,0x72,0x61,0x6c,0x45,0,0x16,
-0x6d,0xc7,0xfe,0x74,0xc1,0xb8,0x77,0x57,0x77,0x48,0x79,0x5c,0x7a,0x1d,0x61,0x6e,
-0x61,0x62,0x61,0x7a,0x61,0x72,0x73,0x71,0x75,0x61,0x72,0x65,0xa5,0x18,0x18,0x61,
-0x72,0x61,0x6e,0x67,0x63,0x69,0x74,0x69,0xa3,0xfc,0x10,0x69,2,0x6a,0x3c,0x72,
-0x68,0x73,0x17,0x79,0x6c,0x6c,0x61,0x62,0x6c,0x65,0x73,0xa3,0x48,0x12,0x69,0x6e,
-0x67,0xa2,0x74,0x1e,0x68,0x65,0x78,0x61,0x67,0x72,0x61,0x6d,0x73,0x79,0x6d,0x62,
-0x6f,0x6c,0x73,0xa3,0x74,0x16,0x61,0x64,0x69,0x63,0x61,0x6c,0x73,0xa3,0x49,0x74,
-0xa2,0x59,0x75,0xa4,0x12,0x76,2,0x61,0x36,0x65,0x7a,0x73,0xa2,0x6c,0x12,0x73,
-0x75,0x70,0xa3,0x7d,1,0x69,0xa3,0x9f,0x72,0x1e,0x69,0x61,0x74,0x69,0x6f,0x6e,
-0x73,0x65,0x6c,0x65,0x63,0x74,0x6f,0x72,0x73,0xa2,0x6c,0x19,0x73,0x75,0x70,0x70,
-0x6c,0x65,0x6d,0x65,0x6e,0x74,0xa3,0x7d,1,0x64,0x3c,0x72,0x19,0x74,0x69,0x63,
-0x61,0x6c,0x66,0x6f,0x72,0x6d,0x73,0xa3,0x91,0x14,0x69,0x63,0x65,0x78,0x74,0xa2,
-0xaf,0x16,0x65,0x6e,0x73,0x69,0x6f,0x6e,0x73,0xa3,0xaf,4,0x61,0x68,0x65,0xa2,
-0x8a,0x68,0xa2,0x8d,0x69,0xa2,0x95,0x72,0x1c,0x61,0x6e,0x73,0x70,0x6f,0x72,0x74,
-0x61,0x6e,0x64,0x6d,0x61,0x70,0xa2,0xcf,0x16,0x73,0x79,0x6d,0x62,0x6f,0x6c,0x73,
-0xa3,0xcf,4,0x67,0x58,0x69,0x7e,0x6b,0xa2,0x58,0x6d,0xa2,0x5a,0x6e,0x12,0x67,
-0x75,0x74,0xa4,0x10,0x19,0x63,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x73,0xa5,
-0x11,2,0x61,0x2a,0x62,0x32,0x73,0xa3,0x60,0x12,0x6c,0x6f,0x67,0xa3,0x62,0x13,
-0x61,0x6e,0x77,0x61,0xa3,0x65,3,0x6c,0x52,0x74,0x56,0x76,0x5e,0x78,0x16,0x75,
-0x61,0x6e,0x6a,0x69,0x6e,0x67,0xa2,0x7c,0x16,0x73,0x79,0x6d,0x62,0x6f,0x6c,0x73,
-0xa3,0x7c,0x10,0x65,0xa3,0x70,0x12,0x68,0x61,0x6d,0xa3,0xae,0x12,0x69,0x65,0x74,
-0xa3,0xb7,0x11,0x72,0x69,0xa3,0xdc,0x11,0x69,0x6c,0x49,0x13,0x6c,0x75,0x67,0x75,
-0x4b,0x10,0x61,1,0x61,0x24,0x69,0x53,0x11,0x6e,0x61,0x3d,2,0x62,0x34,0x66,
-0x3c,0x72,0x13,0x68,0x75,0x74,0x61,0xa3,0xfb,0x13,0x65,0x74,0x61,0x6e,0x57,0x14,
-0x69,0x6e,0x61,0x67,0x68,0xa3,0x90,2,0x63,0x82,0x67,0x92,0x6e,0x1f,0x69,0x66,
-0x69,0x65,0x64,0x63,0x61,0x6e,0x61,0x64,0x69,0x61,0x6e,0x61,0x62,0x6f,0x1f,0x72,
-0x69,0x67,0x69,0x6e,0x61,0x6c,0x73,0x79,0x6c,0x6c,0x61,0x62,0x69,0x63,0x73,0x62,
-0x17,0x65,0x78,0x74,0x65,0x6e,0x64,0x65,0x64,0xa3,0xad,0x11,0x61,0x73,0x62,0x12,
-0x65,0x78,0x74,0xa3,0xad,0x15,0x61,0x72,0x69,0x74,0x69,0x63,0xa3,0x78,0x70,0xc2,
-0xf5,0x70,0xa6,0xb,0x72,0xa6,0xc7,0x73,7,0x6f,0xc1,0x7f,0x6f,0x76,0x70,0xa2,
-0x47,0x75,0xa2,0x66,0x79,1,0x6c,0x4c,0x72,0x12,0x69,0x61,0x63,0x3a,0x12,0x73,
-0x75,0x70,0xa4,0x17,0x16,0x70,0x6c,0x65,0x6d,0x65,0x6e,0x74,0xa5,0x17,0x17,0x6f,
-0x74,0x69,0x6e,0x61,0x67,0x72,0x69,0xa3,0x8f,2,0x67,0x34,0x72,0x3e,0x79,0x13,
-0x6f,0x6d,0x62,0x6f,0xa5,0x16,0x13,0x64,0x69,0x61,0x6e,0xa5,0x23,0x17,0x61,0x73,
-0x6f,0x6d,0x70,0x65,0x6e,0x67,0xa3,0xda,1,0x61,0x32,0x65,0x14,0x63,0x69,0x61,
-0x6c,0x73,0xa3,0x56,0x12,0x63,0x69,0x6e,0x1f,0x67,0x6d,0x6f,0x64,0x69,0x66,0x69,
-0x65,0x72,0x6c,0x65,0x74,0x74,0x65,0x72,0x73,0x2d,2,0x6e,0x48,0x70,0x76,0x74,
-0x1d,0x74,0x6f,0x6e,0x73,0x69,0x67,0x6e,0x77,0x72,0x69,0x74,0x69,0x6e,0x67,0xa5,
-6,0x15,0x64,0x61,0x6e,0x65,0x73,0x65,0xa2,0x9b,0x12,0x73,0x75,0x70,0xa2,0xdb,
-0x16,0x70,0x6c,0x65,0x6d,0x65,0x6e,0x74,0xa3,0xdb,4,0x61,0xa2,0xa8,0x65,0x5c,
-0x6d,0x9e,0x70,0xa2,0x4b,0x73,0x13,0x79,0x6d,0x62,0x6f,0x1f,0x6c,0x73,0x61,0x6e,
-0x64,0x70,0x69,0x63,0x74,0x6f,0x67,0x72,0x61,0x70,0x68,0x73,0xa5,5,0x10,0x72,
-1,0x61,0x4e,0x73,0x12,0x63,0x72,0x69,0x1f,0x70,0x74,0x73,0x61,0x6e,0x64,0x73,
-0x75,0x62,0x73,0x63,0x72,0x69,0x70,0x74,0x73,0x73,0x14,0x6e,0x64,0x73,0x75,0x62,
-0x73,0x1b,0x61,0x74,0x68,0x6f,0x70,0x65,0x72,0x61,0x74,0x6f,0x72,0x73,0xa3,0x6a,
-1,0x6c,0x40,0x75,1,0x61,0x6e,0x6e,0x17,0x63,0x74,0x75,0x61,0x74,0x69,0x6f,
-0x6e,0xa3,0x8e,0x15,0x65,0x6d,0x65,0x6e,0x74,0x61,1,0x6c,0x50,0x72,0x1e,0x79,
-0x70,0x72,0x69,0x76,0x61,0x74,0x65,0x75,0x73,0x65,0x61,0x72,0x65,0x61,1,0x61,
-0xa3,0x6d,0x62,0xa3,0x6e,3,0x61,0x5c,0x6d,0x78,0x70,0xa2,0x41,0x73,0x13,0x79,
-0x6d,0x62,0x6f,0x1f,0x6c,0x73,0x61,0x6e,0x64,0x70,0x69,0x63,0x74,0x6f,0x67,0x72,
-0x61,0x70,0x68,0x73,0xa5,5,0x14,0x72,0x72,0x6f,0x77,0x73,2,0x61,0xa3,0x67,
-0x62,0xa3,0x68,0x63,0xa3,0xfa,0x13,0x61,0x74,0x68,0x65,0x1f,0x6d,0x61,0x74,0x69,
-0x63,0x61,0x6c,0x6f,0x70,0x65,0x72,0x61,0x74,0x6f,0x72,0x73,0xa3,0x6a,0x19,0x75,
-0x6e,0x63,0x74,0x75,0x61,0x74,0x69,0x6f,0x6e,0xa3,0x8e,0x61,0x5a,0x68,0x84,0x69,
-0xa2,0x5b,0x6d,0x16,0x61,0x6c,0x6c,0x66,0x6f,0x72,0x6d,1,0x73,0xa3,0x54,0x76,
-0x16,0x61,0x72,0x69,0x61,0x6e,0x74,0x73,0xa3,0x54,1,0x6d,0x36,0x75,0x16,0x72,
-0x61,0x73,0x68,0x74,0x72,0x61,0xa3,0xa1,0x15,0x61,0x72,0x69,0x74,0x61,0x6e,0xa3,
-0xac,1,0x61,0x52,0x6f,0x13,0x72,0x74,0x68,0x61,0x1f,0x6e,0x64,0x66,0x6f,0x72,
-0x6d,0x61,0x74,0x63,0x6f,0x6e,0x74,0x72,0x6f,0x6c,0x73,0xa3,0xf7,1,0x72,0x2e,
-0x76,0x12,0x69,0x61,0x6e,0xa3,0x79,0x12,0x61,0x64,0x61,0xa3,0xd9,1,0x64,0x50,
-0x6e,0x13,0x68,0x61,0x6c,0x61,0x50,0x1d,0x61,0x72,0x63,0x68,0x61,0x69,0x63,0x6e,
-0x75,0x6d,0x62,0x65,0x72,0x73,0xa3,0xf9,0x13,0x64,0x68,0x61,0x6d,0xa3,0xf8,5,
-0x72,0x35,0x72,0x44,0x73,0x64,0x75,1,0x61,0xa3,0x4e,0x6e,0x17,0x63,0x74,0x75,
-0x61,0x74,0x69,0x6f,0x6e,0x71,0x17,0x69,0x76,0x61,0x74,0x65,0x75,0x73,0x65,0xa2,
-0x4e,0x13,0x61,0x72,0x65,0x61,0xa3,0x4e,0x1b,0x61,0x6c,0x74,0x65,0x72,0x70,0x61,
-0x68,0x6c,0x61,0x76,0x69,0xa3,0xf6,0x61,0x40,0x68,0x82,0x6c,0x19,0x61,0x79,0x69,
-0x6e,0x67,0x63,0x61,0x72,0x64,0x73,0xa3,0xcc,2,0x68,0x38,0x6c,0x4a,0x75,0x15,
-0x63,0x69,0x6e,0x68,0x61,0x75,0xa3,0xf5,0x17,0x61,0x77,0x68,0x68,0x6d,0x6f,0x6e,
-0x67,0xa3,0xf3,0x15,0x6d,0x79,0x72,0x65,0x6e,0x65,0xa3,0xf4,1,0x61,0x8e,0x6f,
-1,0x65,0x74,0x6e,0x16,0x65,0x74,0x69,0x63,0x65,0x78,0x74,0xa2,0x72,1,0x65,
-0x2c,0x73,0x11,0x75,0x70,0xa3,0x8d,0x15,0x6e,0x73,0x69,0x6f,0x6e,0x73,0xa2,0x72,
-0x19,0x73,0x75,0x70,0x70,0x6c,0x65,0x6d,0x65,0x6e,0x74,0xa3,0x8d,0x15,0x6e,0x69,
-0x63,0x69,0x61,0x6e,0xa3,0x97,1,0x67,0x3e,0x69,0x13,0x73,0x74,0x6f,0x73,0xa2,
-0xa6,0x13,0x64,0x69,0x73,0x63,0xa3,0xa6,0x12,0x73,0x70,0x61,0xa3,0x96,1,0x65,
-0x5c,0x75,1,0x6d,0x2a,0x6e,0x11,0x69,0x63,0x67,0x10,0x69,0xa2,0xc0,0x1d,0x6e,
-0x75,0x6d,0x65,0x72,0x61,0x6c,0x73,0x79,0x6d,0x62,0x6f,0x6c,0x73,0xa3,0xc0,0x13,
-0x6a,0x61,0x6e,0x67,0xa3,0xa3,0x6d,0xa2,0xce,0x6e,0xa8,1,0x6f,5,0x70,0x4b,
-0x70,0x46,0x72,0x7a,0x73,1,0x61,0x30,0x6d,0x13,0x61,0x6e,0x79,0x61,0xa3,0x7a,
-0x11,0x67,0x65,0xa5,0xf,0x18,0x74,0x69,0x63,0x61,0x6c,0x63,0x68,0x61,0x72,0x1f,
-0x61,0x63,0x74,0x65,0x72,0x72,0x65,0x63,0x6f,0x67,0x6e,0x69,0x74,0x69,0x6f,0x6e,
-0x85,1,0x69,0x46,0x6e,0x1e,0x61,0x6d,0x65,0x6e,0x74,0x61,0x6c,0x64,0x69,0x6e,
-0x67,0x62,0x61,0x74,0x73,0xa3,0xf2,0x11,0x79,0x61,0x47,0x63,0xa2,0x71,0x67,0xa2,
-0x71,0x6c,1,0x63,0xa2,0x62,0x64,5,0x70,0x38,0x70,0x36,0x73,0x56,0x74,0x14,
-0x75,0x72,0x6b,0x69,0x63,0xa3,0xbf,0x11,0x65,0x72,1,0x6d,0x2e,0x73,0x12,0x69,
-0x61,0x6e,0xa3,0x8c,0x11,0x69,0x63,0xa3,0xf1,0x10,0x6f,1,0x67,0x3a,0x75,0x18,
-0x74,0x68,0x61,0x72,0x61,0x62,0x69,0x61,0x6e,0xa3,0xbb,0x13,0x64,0x69,0x61,0x6e,
-0xa5,0x22,0x68,0x42,0x69,0x54,0x6e,0x1a,0x6f,0x72,0x74,0x68,0x61,0x72,0x61,0x62,
-0x69,0x61,0x6e,0xa3,0xf0,0x17,0x75,0x6e,0x67,0x61,0x72,0x69,0x61,0x6e,0xa5,4,
-0x14,0x74,0x61,0x6c,0x69,0x63,0xa3,0x58,0x13,0x68,0x69,0x6b,0x69,0xa3,0x9d,0x10,
-0x72,0x85,0x12,0x68,0x61,0x6d,0x65,6,0x6f,0x86,0x6f,0x6c,0x72,0xa2,0x61,0x75,
-0xa2,0x62,0x79,0x14,0x61,0x6e,0x6d,0x61,0x72,0x58,0x12,0x65,0x78,0x74,2,0x61,
-0xa3,0xb6,0x62,0xa3,0xee,0x65,0x13,0x6e,0x64,0x65,0x64,1,0x61,0xa3,0xb6,0x62,
-0xa3,0xee,1,0x64,0x52,0x6e,0x15,0x67,0x6f,0x6c,0x69,0x61,0x6e,0x6a,0x12,0x73,
-0x75,0x70,0xa4,0xd,0x16,0x70,0x6c,0x65,0x6d,0x65,0x6e,0x74,0xa5,0xd,0x10,0x69,
-0xa2,0xec,0x13,0x66,0x69,0x65,0x72,1,0x6c,0x3c,0x74,0x19,0x6f,0x6e,0x65,0x6c,
-0x65,0x74,0x74,0x65,0x72,0x73,0xa3,0x8a,0x15,0x65,0x74,0x74,0x65,0x72,0x73,0x2d,
-0x10,0x6f,0xa3,0xed,1,0x6c,0x44,0x73,0x11,0x69,0x63,0xa2,0x5c,0x18,0x61,0x6c,
-0x73,0x79,0x6d,0x62,0x6f,0x6c,0x73,0xa3,0x5c,0x13,0x74,0x61,0x6e,0x69,0xa5,3,
-0x61,0xa2,0x9b,0x65,0xa4,0x4c,0x69,1,0x61,0xa2,0x8f,0x73,0x10,0x63,5,0x70,
-0x18,0x70,0xa2,0x71,0x73,0x36,0x74,0x17,0x65,0x63,0x68,0x6e,0x69,0x63,0x61,0x6c,
-0x81,0x15,0x79,0x6d,0x62,0x6f,0x6c,0x73,0x8f,0x61,0xa2,0x66,0x65,0x46,0x6d,0x19,
-0x61,0x74,0x68,0x73,0x79,0x6d,0x62,0x6f,0x6c,0x73,1,0x61,0xa3,0x66,0x62,0xa3,
-0x69,0x17,0x6c,0x6c,0x61,0x6e,0x65,0x6f,0x75,0x73,2,0x6d,0x3a,0x73,0x6c,0x74,
-0x17,0x65,0x63,0x68,0x6e,0x69,0x63,0x61,0x6c,0x81,0x11,0x61,0x74,0x1f,0x68,0x65,
-0x6d,0x61,0x74,0x69,0x63,0x61,0x6c,0x73,0x79,0x6d,0x62,0x6f,0x6c,0x73,1,0x61,
-0xa3,0x66,0x62,0xa3,0x69,0x15,0x79,0x6d,0x62,0x6f,0x6c,0x73,0x8e,0x12,0x61,0x6e,
-0x64,1,0x61,0x3c,0x70,0x19,0x69,0x63,0x74,0x6f,0x67,0x72,0x61,0x70,0x68,0x73,
-0xa3,0xcd,0x14,0x72,0x72,0x6f,0x77,0x73,0xa3,0x73,0x10,0x6f,0xa3,0xd8,7,0x72,
-0x6f,0x72,0x44,0x73,0x4e,0x74,0x62,0x79,0x19,0x61,0x6e,0x6e,0x75,0x6d,0x65,0x72,
-0x61,0x6c,0x73,0xa5,0x20,0x13,0x63,0x68,0x65,0x6e,0xa5,0xc,0x18,0x61,0x72,0x61,
-0x6d,0x67,0x6f,0x6e,0x64,0x69,0xa5,0x14,0x10,0x68,2,0x61,0x3a,0x65,0x4a,0x6f,
-0x17,0x70,0x65,0x72,0x61,0x74,0x6f,0x72,0x73,0x7f,0x16,0x6c,0x70,0x68,0x61,0x6e,
-0x75,0x6d,0xa3,0x5d,0x16,0x6d,0x61,0x74,0x69,0x63,0x61,0x6c,1,0x61,0x36,0x6f,
-0x17,0x70,0x65,0x72,0x61,0x74,0x6f,0x72,0x73,0x7f,0x11,0x6c,0x70,0x1f,0x68,0x61,
-0x6e,0x75,0x6d,0x65,0x72,0x69,0x63,0x73,0x79,0x6d,0x62,0x6f,0x6c,0x73,0xa3,0x5d,
-0x68,0x50,0x6b,0x7e,0x6c,0x88,0x6e,1,0x64,0x34,0x69,0x15,0x63,0x68,0x61,0x65,
-0x61,0x6e,0xa3,0xea,0x12,0x61,0x69,0x63,0xa3,0xc6,1,0x61,0x3e,0x6a,0x12,0x6f,
-0x6e,0x67,0xa2,0xaa,0x14,0x74,0x69,0x6c,0x65,0x73,0xa3,0xaa,0x13,0x6a,0x61,0x6e,
-0x69,0xa3,0xe9,0x13,0x61,0x73,0x61,0x72,0xa5,0x1f,0x15,0x61,0x79,0x61,0x6c,0x61,
-0x6d,0x4f,3,0x64,0x6c,0x65,0x7e,0x6e,0xa2,0x47,0x72,0x14,0x6f,0x69,0x74,0x69,
-0x63,1,0x63,0x3c,0x68,0x19,0x69,0x65,0x72,0x6f,0x67,0x6c,0x79,0x70,0x68,0x73,
-0xa3,0xd7,0x15,0x75,0x72,0x73,0x69,0x76,0x65,0xa3,0xd6,0x17,0x65,0x66,0x61,0x69,
-0x64,0x72,0x69,0x6e,0xa5,0x21,0x17,0x74,0x65,0x69,0x6d,0x61,0x79,0x65,0x6b,0xa2,
-0xb8,0x12,0x65,0x78,0x74,0xa2,0xd5,0x16,0x65,0x6e,0x73,0x69,0x6f,0x6e,0x73,0xa3,
-0xd5,0x18,0x64,0x65,0x6b,0x69,0x6b,0x61,0x6b,0x75,0x69,0xa3,0xeb,5,0x6b,0x23,
-0x6b,0x4c,0x6f,0x50,0x75,1,0x6d,0x2c,0x73,0x11,0x68,0x75,0xa5,0x15,0x17,0x62,
-0x65,0x72,0x66,0x6f,0x72,0x6d,0x73,0x7b,0x10,0x6f,0xa3,0x92,0x14,0x62,0x6c,0x6f,
-0x63,0x6b,0x21,0x61,0x44,0x62,0x21,0x65,0x10,0x77,1,0x61,0xa5,0xe,0x74,0x14,
-0x61,0x69,0x6c,0x75,0x65,0xa3,0x8b,0x16,0x62,0x61,0x74,0x61,0x65,0x61,0x6e,0xa3,
-0xef,0x67,0xc4,0xe,0x6a,0xc1,0x95,0x6a,0xa2,0xc5,0x6b,0xa2,0xde,0x6c,4,0x61,
-0x54,0x65,0xa2,0x61,0x69,0xa2,0x78,0x6f,0xa2,0xa7,0x79,1,0x63,0x2e,0x64,0x12,
-0x69,0x61,0x6e,0xa3,0xa9,0x12,0x69,0x61,0x6e,0xa3,0xa7,1,0x6f,0x55,0x74,0x11,
-0x69,0x6e,1,0x31,0x82,0x65,0x11,0x78,0x74,4,0x61,0x5c,0x62,0x29,0x63,0xa3,
-0x94,0x64,0xa3,0x95,0x65,0xa2,0xe7,0x13,0x6e,0x64,0x65,0x64,4,0x61,0x36,0x62,
-0x29,0x63,0xa3,0x94,0x64,0xa3,0x95,0x65,0xa3,0xe7,0x26,0x18,0x64,0x64,0x69,0x74,
-0x69,0x6f,0x6e,0x61,0x6c,0x6d,0x24,0x12,0x73,0x75,0x70,0x24,0x16,0x70,0x6c,0x65,
-0x6d,0x65,0x6e,0x74,0x25,1,0x70,0x42,0x74,0x1d,0x74,0x65,0x72,0x6c,0x69,0x6b,
-0x65,0x73,0x79,0x6d,0x62,0x6f,0x6c,0x73,0x79,0x12,0x63,0x68,0x61,0xa3,0x9c,2,
-0x6d,0x2e,0x6e,0x34,0x73,0x10,0x75,0xa3,0xb0,0x11,0x62,0x75,0xa3,0x6f,0x12,0x65,
-0x61,0x72,1,0x61,0xa3,0xe8,0x62,1,0x69,0x38,0x73,0x17,0x79,0x6c,0x6c,0x61,
-0x62,0x61,0x72,0x79,0xa3,0x75,0x17,0x64,0x65,0x6f,0x67,0x72,0x61,0x6d,0x73,0xa3,
-0x76,0x1a,0x77,0x73,0x75,0x72,0x72,0x6f,0x67,0x61,0x74,0x65,0x73,0xa3,0x4d,0x10,
-0x61,1,0x6d,0x32,0x76,0x14,0x61,0x6e,0x65,0x73,0x65,0xa3,0xb5,0x10,0x6f,0x5c,
-0x12,0x65,0x78,0x74,1,0x61,0xa3,0xb4,0x62,0xa3,0xb9,1,0x61,0x80,0x68,3,
-0x61,0x3c,0x6d,0x4c,0x6f,0x64,0x75,0x15,0x64,0x61,0x77,0x61,0x64,0x69,0xa3,0xe6,
-0x16,0x72,0x6f,0x73,0x68,0x74,0x68,0x69,0xa3,0x89,0x11,0x65,0x72,0x68,0x16,0x73,
-0x79,0x6d,0x62,0x6f,0x6c,0x73,0xa3,0x71,0x12,0x6a,0x6b,0x69,0xa3,0xe5,3,0x69,
-0x3a,0x6e,0x42,0x74,0xa2,0x51,0x79,0x13,0x61,0x68,0x6c,0x69,0xa3,0xa2,0x12,0x74,
-0x68,0x69,0xa3,0xc1,3,0x61,0x34,0x62,0x76,0x67,0x7c,0x6e,0x12,0x61,0x64,0x61,
-0x4d,1,0x65,0x40,0x73,0x11,0x75,0x70,0xa2,0xcb,0x16,0x70,0x6c,0x65,0x6d,0x65,
-0x6e,0x74,0xa3,0xcb,0x11,0x78,0x74,1,0x61,0xa5,0x13,0x65,0x14,0x6e,0x64,0x65,
-0x64,0x61,0xa5,0x13,0x11,0x75,0x6e,0xa3,0x42,0x11,0x78,0x69,0x96,0x17,0x72,0x61,
-0x64,0x69,0x63,0x61,0x6c,0x73,0x97,0x14,0x61,0x6b,0x61,0x6e,0x61,0x9e,1,0x65,
-0x4c,0x70,0x10,0x68,0x1f,0x6f,0x6e,0x65,0x74,0x69,0x63,0x65,0x78,0x74,0x65,0x6e,
-0x73,0x69,0x6f,0x6e,0x73,0xa3,0x6b,0x11,0x78,0x74,0xa3,0x6b,0x67,0xa2,0xb5,0x68,
-0xa4,0x84,0x69,3,0x64,0x4c,0x6d,0xa2,0x55,0x6e,0xa2,0x62,0x70,0x13,0x61,0x65,
-0x78,0x74,0x2a,0x16,0x65,0x6e,0x73,0x69,0x6f,0x6e,0x73,0x2b,1,0x63,0x99,0x65,
-0x17,0x6f,0x67,0x72,0x61,0x70,0x68,0x69,0x63,1,0x64,0x56,0x73,0x15,0x79,0x6d,
-0x62,0x6f,0x6c,0x73,0xa4,0xb,0x1d,0x61,0x6e,0x64,0x70,0x75,0x6e,0x63,0x74,0x75,
-0x61,0x74,0x69,0x6f,0x6e,0xa5,0xb,0x13,0x65,0x73,0x63,0x72,0x1f,0x69,0x70,0x74,
-0x69,0x6f,0x6e,0x63,0x68,0x61,0x72,0x61,0x63,0x74,0x65,0x72,0x73,0x99,0x1c,0x70,
-0x65,0x72,0x69,0x61,0x6c,0x61,0x72,0x61,0x6d,0x61,0x69,0x63,0xa3,0xba,1,0x64,
-0x62,0x73,0x1b,0x63,0x72,0x69,0x70,0x74,0x69,0x6f,0x6e,0x61,0x6c,0x70,0x61,1,
-0x68,0x32,0x72,0x14,0x74,0x68,0x69,0x61,0x6e,0xa3,0xbd,0x13,0x6c,0x61,0x76,0x69,
-0xa3,0xbe,0x11,0x69,0x63,1,0x6e,0x3e,0x73,0x1a,0x69,0x79,0x61,0x71,0x6e,0x75,
-0x6d,0x62,0x65,0x72,0x73,0xa5,0x1e,0x19,0x75,0x6d,0x62,0x65,0x72,0x66,0x6f,0x72,
-0x6d,0x73,0xa3,0xb2,4,0x65,0x74,0x6c,0xa2,0x82,0x6f,0xa2,0x9a,0x72,0xa2,0x9e,
-0x75,2,0x6a,0x34,0x6e,0x3e,0x72,0x14,0x6d,0x75,0x6b,0x68,0x69,0x43,0x14,0x61,
-0x72,0x61,0x74,0x69,0x45,0x18,0x6a,0x61,0x6c,0x61,0x67,0x6f,0x6e,0x64,0x69,0xa5,
-0x1c,1,0x6e,0xa2,0x46,0x6f,1,0x6d,0x6e,0x72,0x13,0x67,0x69,0x61,0x6e,0x5a,
-1,0x65,0x40,0x73,0x11,0x75,0x70,0xa2,0x87,0x16,0x70,0x6c,0x65,0x6d,0x65,0x6e,
-0x74,0xa3,0x87,0x11,0x78,0x74,0xa4,0x1b,0x14,0x65,0x6e,0x64,0x65,0x64,0xa5,0x1b,
-0x1a,0x65,0x74,0x72,0x69,0x63,0x73,0x68,0x61,0x70,0x65,0x73,0x8c,0x12,0x65,0x78,
-0x74,0xa2,0xe3,0x14,0x65,0x6e,0x64,0x65,0x64,0xa3,0xe3,0x1e,0x65,0x72,0x61,0x6c,
-0x70,0x75,0x6e,0x63,0x74,0x75,0x61,0x74,0x69,0x6f,0x6e,0x71,0x17,0x61,0x67,0x6f,
-0x6c,0x69,0x74,0x69,0x63,0xa2,0x88,0x12,0x73,0x75,0x70,0xa4,0xa,0x16,0x70,0x6c,
-0x65,0x6d,0x65,0x6e,0x74,0xa5,0xa,0x13,0x74,0x68,0x69,0x63,0xa3,0x59,1,0x61,
-0x5c,0x65,0x11,0x65,0x6b,0x30,1,0x61,0x38,0x65,0x11,0x78,0x74,0x6e,0x14,0x65,
-0x6e,0x64,0x65,0x64,0x6f,0x17,0x6e,0x64,0x63,0x6f,0x70,0x74,0x69,0x63,0x31,0x13,
-0x6e,0x74,0x68,0x61,0xa3,0xe4,2,0x61,0xa2,0x48,0x65,0xa2,0xdf,0x69,1,0x67,
-0x30,0x72,0x14,0x61,0x67,0x61,0x6e,0x61,0x9d,0x10,0x68,1,0x70,0x3a,0x73,0x18,
-0x75,0x72,0x72,0x6f,0x67,0x61,0x74,0x65,0x73,0xa3,0x4b,1,0x72,0x3c,0x75,0x19,
-0x73,0x75,0x72,0x72,0x6f,0x67,0x61,0x74,0x65,0x73,0xa3,0x4c,0x11,0x69,0x76,0x1f,
-0x61,0x74,0x65,0x75,0x73,0x65,0x73,0x75,0x72,0x72,0x6f,0x67,0x61,0x74,0x65,0x73,
-0xa3,0x4c,2,0x6c,0x32,0x6e,0x9a,0x74,0x12,0x72,0x61,0x6e,0xa5,2,0x10,0x66,
-2,0x61,0x58,0x6d,0x70,0x77,0x14,0x69,0x64,0x74,0x68,0x61,0x1f,0x6e,0x64,0x66,
-0x75,0x6c,0x6c,0x77,0x69,0x64,0x74,0x68,0x66,0x6f,0x72,0x6d,0x73,0xa3,0x57,0x1a,
-0x6e,0x64,0x66,0x75,0x6c,0x6c,0x66,0x6f,0x72,0x6d,0x73,0xa3,0x57,0x13,0x61,0x72,
-0x6b,0x73,0xa3,0x52,2,0x67,0x34,0x69,0xa2,0x45,0x75,0x12,0x6e,0x6f,0x6f,0xa3,
-0x63,0x11,0x75,0x6c,0xa2,0x4a,2,0x63,0x3c,0x6a,0x5e,0x73,0x17,0x79,0x6c,0x6c,
-0x61,0x62,0x6c,0x65,0x73,0xa3,0x4a,0x1f,0x6f,0x6d,0x70,0x61,0x74,0x69,0x62,0x69,
-0x6c,0x69,0x74,0x79,0x6a,0x61,0x6d,0x6f,0xa3,0x41,0x12,0x61,0x6d,0x6f,0x5c,0x17,
-0x65,0x78,0x74,0x65,0x6e,0x64,0x65,0x64,1,0x61,0xa3,0xb4,0x62,0xa3,0xb9,0x19,
-0x66,0x69,0x72,0x6f,0x68,0x69,0x6e,0x67,0x79,0x61,0xa5,0x1d,0x13,0x62,0x72,0x65,
-0x77,0x37,0x61,0xa2,0xe9,0x62,0xa6,0x29,0x63,0xa6,0xfe,0x64,0xac,0x8a,0x65,5,
-0x6d,0xa2,0x6d,0x86,0x6e,0x96,0x74,0x15,0x68,0x69,0x6f,0x70,0x69,0x63,0x5e,1,
-0x65,0x40,0x73,0x11,0x75,0x70,0xa2,0x86,0x16,0x70,0x6c,0x65,0x6d,0x65,0x6e,0x74,
-0xa3,0x86,0x11,0x78,0x74,0xa2,0x85,1,0x61,0xa3,0xc8,0x65,0x13,0x6e,0x64,0x65,
-0x64,0xa2,0x85,0x10,0x61,0xa3,0xc8,0x16,0x6f,0x74,0x69,0x63,0x6f,0x6e,0x73,0xa3,
-0xce,0x15,0x63,0x6c,0x6f,0x73,0x65,0x64,2,0x61,0x5a,0x63,0x9e,0x69,0x1c,0x64,
-0x65,0x6f,0x67,0x72,0x61,0x70,0x68,0x69,0x63,0x73,0x75,0x70,0xa2,0xc4,0x16,0x70,
-0x6c,0x65,0x6d,0x65,0x6e,0x74,0xa3,0xc4,0x16,0x6c,0x70,0x68,0x61,0x6e,0x75,0x6d,
-0x86,1,0x65,0x2c,0x73,0x11,0x75,0x70,0xa3,0xc3,0x13,0x72,0x69,0x63,0x73,0x86,
-0x18,0x75,0x70,0x70,0x6c,0x65,0x6d,0x65,0x6e,0x74,0xa3,0xc3,0x11,0x6a,0x6b,0xa2,
-0x44,0x1f,0x6c,0x65,0x74,0x74,0x65,0x72,0x73,0x61,0x6e,0x64,0x6d,0x6f,0x6e,0x74,
-0x68,0x73,0xa3,0x44,0x61,0x36,0x67,0x62,0x6c,0x14,0x62,0x61,0x73,0x61,0x6e,0xa3,
-0xe2,0x13,0x72,0x6c,0x79,0x64,0x1f,0x79,0x6e,0x61,0x73,0x74,0x69,0x63,0x63,0x75,
-0x6e,0x65,0x69,0x66,0x6f,0x72,0x6d,0xa5,1,0x10,0x79,0x1f,0x70,0x74,0x69,0x61,
-0x6e,0x68,0x69,0x65,0x72,0x6f,0x67,0x6c,0x79,0x70,0x68,0x73,0xa3,0xc2,7,0x6e,
-0xc0,0xe5,0x6e,0x3e,0x72,0xa2,0x5d,0x73,0xa2,0xd8,0x76,0x14,0x65,0x73,0x74,0x61,
-0x6e,0xa3,0xbc,1,0x61,0x92,0x63,0x13,0x69,0x65,0x6e,0x74,1,0x67,0x34,0x73,
-0x15,0x79,0x6d,0x62,0x6f,0x6c,0x73,0xa3,0xa5,0x13,0x72,0x65,0x65,0x6b,1,0x6d,
-0x34,0x6e,0x15,0x75,0x6d,0x62,0x65,0x72,0x73,0xa3,0x7f,0x13,0x75,0x73,0x69,0x63,
-0xa2,0x7e,0x19,0x61,0x6c,0x6e,0x6f,0x74,0x61,0x74,0x69,0x6f,0x6e,0xa3,0x7e,0x10,
-0x74,0x1f,0x6f,0x6c,0x69,0x61,0x6e,0x68,0x69,0x65,0x72,0x6f,0x67,0x6c,0x79,0x70,
-0x68,0x73,0xa3,0xfe,2,0x61,0x32,0x6d,0xa2,0x71,0x72,0x12,0x6f,0x77,0x73,0x7d,
-0x12,0x62,0x69,0x63,0x38,3,0x65,0x4a,0x6d,0x66,0x70,0xa2,0x43,0x73,0x11,0x75,
-0x70,0xa2,0x80,0x16,0x70,0x6c,0x65,0x6d,0x65,0x6e,0x74,0xa3,0x80,0x11,0x78,0x74,
-1,0x61,0xa3,0xd2,0x65,0x14,0x6e,0x64,0x65,0x64,0x61,0xa3,0xd2,0x12,0x61,0x74,
-0x68,0xa2,0xd3,0x18,0x65,0x6d,0x61,0x74,0x69,0x63,0x61,0x6c,0x61,0x1f,0x6c,0x70,
-0x68,0x61,0x62,0x65,0x74,0x69,0x63,0x73,0x79,0x6d,0x62,0x6f,0x6c,0x73,0xa3,0xd3,
-1,0x66,0x42,0x72,0x1e,0x65,0x73,0x65,0x6e,0x74,0x61,0x74,0x69,0x6f,0x6e,0x66,
-0x6f,0x72,0x6d,0x73,1,0x61,0xa3,0x51,0x62,0xa3,0x55,0x14,0x65,0x6e,0x69,0x61,
-0x6e,0x35,0x12,0x63,0x69,0x69,0x23,0x64,0x9e,0x65,0xa2,0x42,0x68,0xa2,0x4d,0x6c,
-1,0x63,0x62,0x70,0x17,0x68,0x61,0x62,0x65,0x74,0x69,0x63,0x70,1,0x66,0xa3,
-0x50,0x72,0x1e,0x65,0x73,0x65,0x6e,0x74,0x61,0x74,0x69,0x6f,0x6e,0x66,0x6f,0x72,
-0x6d,0x73,0xa3,0x50,0x16,0x68,0x65,0x6d,0x69,0x63,0x61,0x6c,0xa2,0xd0,0x16,0x73,
-0x79,0x6d,0x62,0x6f,0x6c,0x73,0xa3,0xd0,0x12,0x6c,0x61,0x6d,0xa5,7,0x1a,0x67,
-0x65,0x61,0x6e,0x6e,0x75,0x6d,0x62,0x65,0x72,0x73,0xa3,0x77,0x11,0x6f,0x6d,0xa3,
-0xfd,7,0x6f,0x71,0x6f,0x64,0x72,0xa2,0x41,0x75,0xa2,0x58,0x79,0x1b,0x7a,0x61,
-0x6e,0x74,0x69,0x6e,0x65,0x6d,0x75,0x73,0x69,0x63,0xa2,0x5b,0x18,0x61,0x6c,0x73,
-0x79,0x6d,0x62,0x6f,0x6c,0x73,0xa3,0x5b,1,0x70,0x34,0x78,0x16,0x64,0x72,0x61,
-0x77,0x69,0x6e,0x67,0x89,0x14,0x6f,0x6d,0x6f,0x66,0x6f,0xa0,0x12,0x65,0x78,0x74,
-0xa2,0x43,0x14,0x65,0x6e,0x64,0x65,0x64,0xa3,0x43,0x10,0x61,1,0x68,0x40,0x69,
-0x12,0x6c,0x6c,0x65,0x92,0x17,0x70,0x61,0x74,0x74,0x65,0x72,0x6e,0x73,0x93,0x11,
-0x6d,0x69,0xa3,0xc9,1,0x67,0x2c,0x68,0x11,0x69,0x64,0xa3,0x64,0x14,0x69,0x6e,
-0x65,0x73,0x65,0xa3,0x81,0x61,0x48,0x65,0xa2,0x4e,0x68,0xa2,0x52,0x6c,0x1a,0x6f,
-0x63,0x6b,0x65,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x73,0x8b,3,0x6c,0x34,0x6d,0x40,
-0x73,0x66,0x74,0x11,0x61,0x6b,0xa3,0xc7,0x14,0x69,0x6e,0x65,0x73,0x65,0xa3,0x93,
-0x11,0x75,0x6d,0xa2,0xb1,0x12,0x73,0x75,0x70,0xa2,0xca,0x16,0x70,0x6c,0x65,0x6d,
-0x65,0x6e,0x74,0xa3,0xca,1,0x69,0x30,0x73,0x13,0x61,0x76,0x61,0x68,0xa3,0xdd,
-0x15,0x63,0x6c,0x61,0x74,0x69,0x6e,0x23,0x14,0x6e,0x67,0x61,0x6c,0x69,0x41,0x16,
-0x61,0x69,0x6b,0x73,0x75,0x6b,0x69,0xa5,8,5,0x6f,0xc1,0x4c,0x6f,0xa2,0x55,
-0x75,0xa4,0x10,0x79,1,0x70,0x9c,0x72,0x14,0x69,0x6c,0x6c,0x69,0x63,0x32,1,
-0x65,0x4c,0x73,0x11,0x75,0x70,0xa2,0x61,0x16,0x70,0x6c,0x65,0x6d,0x65,0x6e,0x74,
-0xa2,0x61,0x12,0x61,0x72,0x79,0xa3,0x61,0x11,0x78,0x74,3,0x61,0xa3,0x9e,0x62,
-0xa3,0xa0,0x63,0xa5,9,0x65,0x13,0x6e,0x64,0x65,0x64,2,0x61,0xa3,0x9e,0x62,
-0xa3,0xa0,0x63,0xa5,9,0x1c,0x72,0x69,0x6f,0x74,0x73,0x79,0x6c,0x6c,0x61,0x62,
-0x61,0x72,0x79,0xa3,0x7b,3,0x6d,0x5a,0x6e,0xa2,0x95,0x70,0xa2,0xa0,0x75,0x17,
-0x6e,0x74,0x69,0x6e,0x67,0x72,0x6f,0x64,0xa2,0x9a,0x17,0x6e,0x75,0x6d,0x65,0x72,
-0x61,0x6c,0x73,0xa3,0x9a,2,0x62,0x3a,0x6d,0xa2,0x5f,0x70,0x15,0x61,0x74,0x6a,
-0x61,0x6d,0x6f,0xa3,0x41,0x14,0x69,0x6e,0x69,0x6e,0x67,2,0x64,0x46,0x68,0x9e,
-0x6d,0x1d,0x61,0x72,0x6b,0x73,0x66,0x6f,0x72,0x73,0x79,0x6d,0x62,0x6f,0x6c,0x73,
-0x77,0x1e,0x69,0x61,0x63,0x72,0x69,0x74,0x69,0x63,0x61,0x6c,0x6d,0x61,0x72,0x6b,
-0x73,0x2e,2,0x65,0x40,0x66,0xa6,0x2a,0x73,0x18,0x75,0x70,0x70,0x6c,0x65,0x6d,
-0x65,0x6e,0x74,0xa3,0x83,0x16,0x78,0x74,0x65,0x6e,0x64,0x65,0x64,0xa3,0xe0,0x17,
-0x61,0x6c,0x66,0x6d,0x61,0x72,0x6b,0x73,0xa3,0x52,0x11,0x6f,0x6e,0x1f,0x69,0x6e,
-0x64,0x69,0x63,0x6e,0x75,0x6d,0x62,0x65,0x72,0x66,0x6f,0x72,0x6d,0x73,0xa3,0xb2,
-0x1b,0x74,0x72,0x6f,0x6c,0x70,0x69,0x63,0x74,0x75,0x72,0x65,0x73,0x83,0x12,0x74,
-0x69,0x63,0xa2,0x84,0x1b,0x65,0x70,0x61,0x63,0x74,0x6e,0x75,0x6d,0x62,0x65,0x72,
-0x73,0xa3,0xdf,1,0x6e,0x3e,0x72,0x1b,0x72,0x65,0x6e,0x63,0x79,0x73,0x79,0x6d,
-0x62,0x6f,0x6c,0x73,0x75,0x15,0x65,0x69,0x66,0x6f,0x72,0x6d,0xa2,0x98,0x16,0x6e,
-0x75,0x6d,0x62,0x65,0x72,0x73,0xa2,0x99,0x1d,0x61,0x6e,0x64,0x70,0x75,0x6e,0x63,
-0x74,0x75,0x61,0x74,0x69,0x6f,0x6e,0xa3,0x99,0x61,0xa2,0xdb,0x68,0xa4,5,0x6a,
-0x10,0x6b,0xa2,0x47,4,0x63,0x86,0x65,0xa2,0x7d,0x72,0xa2,0x92,0x73,0xa2,0xa4,
-0x75,0x1f,0x6e,0x69,0x66,0x69,0x65,0x64,0x69,0x64,0x65,0x6f,0x67,0x72,0x61,0x70,
-0x68,0x73,0xa2,0x47,0x18,0x65,0x78,0x74,0x65,0x6e,0x73,0x69,0x6f,0x6e,5,0x64,
-0x65,0x64,0xa3,0xd1,0x65,0xa5,0,0x66,0xa5,0x12,0x14,0x6f,0x6d,0x70,0x61,0x74,
-0xa2,0x45,1,0x66,0x96,0x69,1,0x62,0x44,0x64,0x17,0x65,0x6f,0x67,0x72,0x61,
-0x70,0x68,0x73,0xa2,0x4f,0x12,0x73,0x75,0x70,0xa3,0x5f,0x14,0x69,0x6c,0x69,0x74,
-0x79,0xa2,0x45,1,0x66,0x54,0x69,0x18,0x64,0x65,0x6f,0x67,0x72,0x61,0x70,0x68,
-0x73,0xa2,0x4f,0x19,0x73,0x75,0x70,0x70,0x6c,0x65,0x6d,0x65,0x6e,0x74,0xa3,0x5f,
-0x13,0x6f,0x72,0x6d,0x73,0xa3,0x53,0x11,0x78,0x74,5,0x64,9,0x64,0xa3,0xd1,
-0x65,0xa5,0,0x66,0xa5,0x12,0x61,0xa3,0x46,0x62,0xa3,0x5e,0x63,0xa3,0xc5,0x19,
-0x61,0x64,0x69,0x63,0x61,0x6c,0x73,0x73,0x75,0x70,0x94,0x16,0x70,0x6c,0x65,0x6d,
-0x65,0x6e,0x74,0x95,1,0x74,0x50,0x79,0x14,0x6d,0x62,0x6f,0x6c,0x73,0x9a,0x1d,
-0x61,0x6e,0x64,0x70,0x75,0x6e,0x63,0x74,0x75,0x61,0x74,0x69,0x6f,0x6e,0x9b,0x14,
-0x72,0x6f,0x6b,0x65,0x73,0xa3,0x82,2,0x6e,0x48,0x72,0x64,0x75,0x1d,0x63,0x61,
-0x73,0x69,0x61,0x6e,0x61,0x6c,0x62,0x61,0x6e,0x69,0x61,0x6e,0xa3,0xde,0x1d,0x61,
-0x64,0x69,0x61,0x6e,0x73,0x79,0x6c,0x6c,0x61,0x62,0x69,0x63,0x73,0x63,0x12,0x69,
-0x61,0x6e,0xa3,0xa8,1,0x61,0x6c,0x65,1,0x72,0x38,0x73,0x17,0x73,0x73,0x79,
-0x6d,0x62,0x6f,0x6c,0x73,0xa5,0x19,0x13,0x6f,0x6b,0x65,0x65,0x60,0x12,0x73,0x75,
-0x70,0xa2,0xff,0x16,0x70,0x6c,0x65,0x6d,0x65,0x6e,0x74,0xa3,0xff,1,0x6b,0x26,
-0x6d,0xa3,0xa4,0x11,0x6d,0x61,0xa3,0xd4,3,0x65,0x3e,0x69,0x7e,0x6f,0xa2,0x5d,
-0x75,0x15,0x70,0x6c,0x6f,0x79,0x61,0x6e,0xa3,0xe1,1,0x73,0x50,0x76,0x16,0x61,
-0x6e,0x61,0x67,0x61,0x72,0x69,0x3e,0x12,0x65,0x78,0x74,0xa2,0xb3,0x14,0x65,0x6e,
-0x64,0x65,0x64,0xa3,0xb3,0x13,0x65,0x72,0x65,0x74,0xa3,0x5a,1,0x61,0x30,0x6e,
-0x14,0x67,0x62,0x61,0x74,0x73,0x91,0x18,0x63,0x72,0x69,0x74,0x69,0x63,0x61,0x6c,
-0x73,0x2e,2,0x65,0x30,0x66,0x36,0x73,0x11,0x75,0x70,0xa3,0x83,0x11,0x78,0x74,
-0xa3,0xe0,0x18,0x6f,0x72,0x73,0x79,0x6d,0x62,0x6f,0x6c,0x73,0x77,1,0x67,0x3e,
-0x6d,0x12,0x69,0x6e,0x6f,0xa2,0xab,0x14,0x74,0x69,0x6c,0x65,0x73,0xa3,0xab,0x11,
-0x72,0x61,0xa5,0x1a,8,0x6d,0x5f,0x6d,0x3a,0x6e,0x48,0x73,0x7a,0x76,0xa2,0x4b,
-0x77,0x12,0x69,0x64,0x65,0x43,0x11,0x65,0x64,0x32,0x12,0x69,0x61,0x6c,0x33,2,
-0x61,0x40,0x62,0x37,0x6f,1,0x62,0x28,0x6e,0x10,0x65,0x21,0x13,0x72,0x65,0x61,
-0x6b,0x37,0x10,0x72,0x34,0x12,0x72,0x6f,0x77,0x35,2,0x6d,0x38,0x71,0x46,0x75,
-1,0x62,0x3d,0x70,0x3e,0x11,0x65,0x72,0x3f,1,0x61,0x24,0x6c,0x39,0x11,0x6c,
-0x6c,0x39,1,0x72,0x3b,0x75,0x12,0x61,0x72,0x65,0x3b,0x12,0x65,0x72,0x74,0x40,
-0x13,0x69,0x63,0x61,0x6c,0x41,0x63,0x58,0x65,0x92,0x66,0x96,0x69,1,0x6e,0x36,
-0x73,0x10,0x6f,0x30,0x14,0x6c,0x61,0x74,0x65,0x64,0x31,0x11,0x69,0x74,0x2e,0x12,
-0x69,0x61,0x6c,0x2f,2,0x61,0x36,0x69,0x48,0x6f,0x10,0x6d,0x24,0x12,0x70,0x61,
-0x74,0x25,0x10,0x6e,0x22,0x15,0x6f,0x6e,0x69,0x63,0x61,0x6c,0x23,0x13,0x72,0x63,
-0x6c,0x65,0x27,0x11,0x6e,0x63,0x27,2,0x69,0x3a,0x6f,0x44,0x72,0x10,0x61,0x2c,
-0x14,0x63,0x74,0x69,0x6f,0x6e,0x2d,0x10,0x6e,0x28,0x11,0x61,0x6c,0x29,0x11,0x6e,
-0x74,0x2b,4,0x61,0x3a,0x66,0x4c,0x68,0x5e,0x6e,0x70,0x77,0x2a,0x12,0x69,0x64,
-0x65,0x2b,0x22,0x17,0x6d,0x62,0x69,0x67,0x75,0x6f,0x75,0x73,0x23,0x26,0x17,0x75,
-0x6c,0x6c,0x77,0x69,0x64,0x74,0x68,0x27,0x24,0x17,0x61,0x6c,0x66,0x77,0x69,0x64,
-0x74,0x68,0x25,0x20,1,0x61,0x30,0x65,0x14,0x75,0x74,0x72,0x61,0x6c,0x21,0x28,
-0x13,0x72,0x72,0x6f,0x77,0x29,0xd,0x6e,0xc0,0xfb,0x73,0x6d,0x73,0x3a,0x74,0x98,
-0x75,0xa2,0x49,0x7a,2,0x6c,0x3b,0x70,0x3d,0x73,0x39,5,0x6f,0x28,0x6f,0x57,
-0x70,0x34,0x75,0x16,0x72,0x72,0x6f,0x67,0x61,0x74,0x65,0x45,0x11,0x61,0x63,1,
-0x65,0x32,0x69,0x15,0x6e,0x67,0x6d,0x61,0x72,0x6b,0x31,0x18,0x73,0x65,0x70,0x61,
-0x72,0x61,0x74,0x6f,0x72,0x39,0x63,0x53,0x6b,0x55,0x6d,0x51,0x1d,0x69,0x74,0x6c,
-0x65,0x63,0x61,0x73,0x65,0x6c,0x65,0x74,0x74,0x65,0x72,0x27,1,0x6e,0x40,0x70,
-0x1c,0x70,0x65,0x72,0x63,0x61,0x73,0x65,0x6c,0x65,0x74,0x74,0x65,0x72,0x23,0x17,
-0x61,0x73,0x73,0x69,0x67,0x6e,0x65,0x64,0x21,0x6e,0x8a,0x6f,0xa2,0x47,0x70,8,
-0x66,0x14,0x66,0x5b,0x69,0x59,0x6f,0x4f,0x72,0x24,0x73,0x49,0x17,0x69,0x76,0x61,
-0x74,0x65,0x75,0x73,0x65,0x43,0x61,0x2c,0x63,0x4d,0x64,0x47,0x65,0x4b,0x1f,0x72,
-0x61,0x67,0x72,0x61,0x70,0x68,0x73,0x65,0x70,0x61,0x72,0x61,0x74,0x6f,0x72,0x3d,
-2,0x64,0x33,0x6c,0x35,0x6f,0x36,0x1b,0x6e,0x73,0x70,0x61,0x63,0x69,0x6e,0x67,
-0x6d,0x61,0x72,0x6b,0x2d,1,0x70,0x7c,0x74,0x12,0x68,0x65,0x72,3,0x6c,0x38,
-0x6e,0x42,0x70,0x4c,0x73,0x14,0x79,0x6d,0x62,0x6f,0x6c,0x57,0x14,0x65,0x74,0x74,
-0x65,0x72,0x2b,0x14,0x75,0x6d,0x62,0x65,0x72,0x37,0x19,0x75,0x6e,0x63,0x74,0x75,
-0x61,0x74,0x69,0x6f,0x6e,0x4f,0x1c,0x65,0x6e,0x70,0x75,0x6e,0x63,0x74,0x75,0x61,
-0x74,0x69,0x6f,0x6e,0x49,0x66,0x9e,0x66,0x88,0x69,0xa2,0x4b,0x6c,0xa2,0x5c,0x6d,
-4,0x61,0x60,0x63,0x31,0x65,0x2f,0x6e,0x2d,0x6f,0x15,0x64,0x69,0x66,0x69,0x65,
-0x72,1,0x6c,0x30,0x73,0x14,0x79,0x6d,0x62,0x6f,0x6c,0x55,0x14,0x65,0x74,0x74,
-0x65,0x72,0x29,0x17,0x74,0x68,0x73,0x79,0x6d,0x62,0x6f,0x6c,0x51,1,0x69,0x2e,
-0x6f,0x13,0x72,0x6d,0x61,0x74,0x41,0x1d,0x6e,0x61,0x6c,0x70,0x75,0x6e,0x63,0x74,
-0x75,0x61,0x74,0x69,0x6f,0x6e,0x5b,0x10,0x6e,0x1f,0x69,0x74,0x69,0x61,0x6c,0x70,
-0x75,0x6e,0x63,0x74,0x75,0x61,0x74,0x69,0x6f,0x6e,0x59,6,0x6d,0x18,0x6d,0x29,
-0x6f,0x28,0x74,0x27,0x75,0x23,0x2a,0x1c,0x77,0x65,0x72,0x63,0x61,0x73,0x65,0x6c,
-0x65,0x74,0x74,0x65,0x72,0x25,0x65,0x28,0x69,0x3c,0x6c,0x25,0x19,0x74,0x74,0x65,
-0x72,0x6e,0x75,0x6d,0x62,0x65,0x72,0x35,0x1a,0x6e,0x65,0x73,0x65,0x70,0x61,0x72,
-0x61,0x74,0x6f,0x72,0x3b,0x63,0x44,0x64,0xa2,0x60,0x65,0x1b,0x6e,0x63,0x6c,0x6f,
-0x73,0x69,0x6e,0x67,0x6d,0x61,0x72,0x6b,0x2f,6,0x6e,0x39,0x6e,0x46,0x6f,0x4e,
-0x73,0x45,0x75,0x1b,0x72,0x72,0x65,0x6e,0x63,0x79,0x73,0x79,0x6d,0x62,0x6f,0x6c,
-0x53,0x20,0x12,0x74,0x72,0x6c,0x3f,0x42,0x10,0x6e,1,0x6e,0x2c,0x74,0x12,0x72,
-0x6f,0x6c,0x3f,0x1f,0x65,0x63,0x74,0x6f,0x72,0x70,0x75,0x6e,0x63,0x74,0x75,0x61,
-0x74,0x69,0x6f,0x6e,0x4d,0x63,0x3f,0x66,0x41,0x6c,0x1d,0x6f,0x73,0x65,0x70,0x75,
-0x6e,0x63,0x74,0x75,0x61,0x74,0x69,0x6f,0x6e,0x4b,2,0x61,0x30,0x65,0x4a,0x69,
-0x12,0x67,0x69,0x74,0x33,0x1c,0x73,0x68,0x70,0x75,0x6e,0x63,0x74,0x75,0x61,0x74,
-0x69,0x6f,0x6e,0x47,0x1a,0x63,0x69,0x6d,0x61,0x6c,0x6e,0x75,0x6d,0x62,0x65,0x72,
-0x33,0,0x12,0x6d,0xc2,0x3f,0x73,0xa1,0x73,0x4e,0x74,0xa2,0x56,0x77,0xa2,0x72,
-0x79,0xa2,0x73,0x7a,1,0x61,0x2c,0x68,0x12,0x61,0x69,0x6e,0x8b,0x11,0x69,0x6e,
-0x85,5,0x74,0x22,0x74,0x38,0x77,0x4c,0x79,0x16,0x72,0x69,0x61,0x63,0x77,0x61,
-0x77,0x6f,0x18,0x72,0x61,0x69,0x67,0x68,0x74,0x77,0x61,0x77,0xa3,0x55,0x15,0x61,
-0x73,0x68,0x6b,0x61,0x66,0x6d,0x61,0x2e,0x65,0x38,0x68,0x11,0x69,0x6e,0x6b,0x10,
-0x64,0x62,0x11,0x68,0x65,0x65,1,0x65,0x2e,0x6d,0x13,0x6b,0x61,0x74,0x68,0x69,
-0x10,0x6e,0x67,1,0x61,0x4e,0x65,1,0x68,0x28,0x74,0x10,0x68,0x77,0x16,0x6d,
-0x61,0x72,0x62,0x75,0x74,0x61,0x74,0x13,0x67,0x6f,0x61,0x6c,0x3d,1,0x68,0x71,
-0x77,0x73,0x11,0x61,0x77,0x79,1,0x65,0x32,0x75,0x11,0x64,0x68,0x80,0x11,0x68,
-0x65,0x83,0x10,0x68,0x7a,1,0x62,0x34,0x77,0x16,0x69,0x74,0x68,0x74,0x61,0x69,
-0x6c,0x7f,0x14,0x61,0x72,0x72,0x65,0x65,0x7d,0x6d,0x6c,0x6e,0xa4,0x6b,0x70,0xa4,
-0x88,0x71,0xa4,0x88,0x72,1,0x65,0x38,0x6f,0x18,0x68,0x69,0x6e,0x67,0x79,0x61,
-0x79,0x65,0x68,0x93,1,0x68,0x5f,0x76,0x16,0x65,0x72,0x73,0x65,0x64,0x70,0x65,
-0x61,2,0x61,0x2e,0x65,0xa4,0x3e,0x69,0x10,0x6d,0x53,1,0x6c,0xa2,0xe7,0x6e,
-0x16,0x69,0x63,0x68,0x61,0x65,0x61,0x6e,0,0x12,0x6e,0x76,0x73,0x51,0x73,0x3e,
-0x74,0x5c,0x77,0xa0,0x79,0xa2,0x42,0x7a,0x13,0x61,0x79,0x69,0x6e,0xa3,0x54,0x10,
-0x61,1,0x64,0x2e,0x6d,0x12,0x65,0x6b,0x68,0xa3,0x4c,0x11,0x68,0x65,0xa3,0x4b,
-3,0x61,0x38,0x65,0x3c,0x68,0x4a,0x77,0x13,0x65,0x6e,0x74,0x79,0xa3,0x51,0x10,
-0x77,0xa3,0x4d,1,0x6e,0xa3,0x4e,0x74,0x10,0x68,0xa3,0x4f,0x14,0x61,0x6d,0x65,
-0x64,0x68,0xa3,0x50,0x11,0x61,0x77,0xa3,0x52,0x12,0x6f,0x64,0x68,0xa3,0x53,0x6e,
-0x3a,0x6f,0x40,0x70,0x46,0x71,0x4a,0x72,0x12,0x65,0x73,0x68,0xa3,0x4a,0x11,0x75,
-0x6e,0xa3,0x46,0x11,0x6e,0x65,0xa3,0x47,0x10,0x65,0xa3,0x48,0x12,0x6f,0x70,0x68,
-0xa3,0x49,0x67,0x33,0x67,0x38,0x68,0x40,0x6b,0x5e,0x6c,0x66,0x6d,0x11,0x65,0x6d,
-0xa3,0x45,0x13,0x69,0x6d,0x65,0x6c,0xa1,1,0x65,0x32,0x75,0x14,0x6e,0x64,0x72,
-0x65,0x64,0xa3,0x42,0x11,0x74,0x68,0xa3,0x41,0x12,0x61,0x70,0x68,0xa3,0x43,0x14,
-0x61,0x6d,0x65,0x64,0x68,0xa3,0x44,0x61,0x34,0x62,0x4a,0x64,0x50,0x66,0x12,0x69,
-0x76,0x65,0x9f,1,0x6c,0x2a,0x79,0x11,0x69,0x6e,0x97,0x12,0x65,0x70,0x68,0x95,
-0x12,0x65,0x74,0x68,0x99,1,0x61,0x30,0x68,0x14,0x61,0x6d,0x65,0x64,0x68,0x9d,
-0x13,0x6c,0x65,0x74,0x68,0x9b,0x15,0x61,0x79,0x61,0x6c,0x61,0x6d,6,0x6e,0x2c,
-0x6e,0x34,0x72,0x5e,0x73,0x62,0x74,0x11,0x74,0x61,0xa3,0x63,2,0x67,0x2e,0x6e,
-0x32,0x79,0x10,0x61,0xa3,0x60,0x10,0x61,0xa3,0x5d,1,0x61,0xa3,0x5e,0x6e,0x10,
-0x61,0xa3,0x5f,0x10,0x61,0xa3,0x61,0x11,0x73,0x61,0xa3,0x62,0x62,0x3c,0x6a,0x42,
-0x6c,0x10,0x6c,1,0x61,0xa3,0x5b,0x6c,0x10,0x61,0xa3,0x5c,0x11,0x68,0x61,0xa3,
-0x59,0x10,0x61,0xa3,0x5a,0x11,0x65,0x6d,0x51,2,0x6f,0x2c,0x75,0x50,0x79,0x10,
-0x61,0x91,1,0x6a,0x28,0x6f,0x10,0x6e,0x55,0x1a,0x6f,0x69,0x6e,0x69,0x6e,0x67,
-0x67,0x72,0x6f,0x75,0x70,0x21,0x10,0x6e,0x57,0x10,0x65,0x59,0x10,0x61,1,0x66,
-0x5b,0x70,0x10,0x68,0x5d,0x66,0x9a,0x66,0x42,0x67,0x7a,0x68,0x8a,0x6b,0xa2,0x75,
-0x6c,0x11,0x61,0x6d,0x4c,0x12,0x61,0x64,0x68,0x4f,2,0x61,0x3e,0x65,0x4a,0x69,
-0x19,0x6e,0x61,0x6c,0x73,0x65,0x6d,0x6b,0x61,0x74,0x68,0x35,0x15,0x72,0x73,0x69,
-0x79,0x65,0x68,0x8f,0x86,0x10,0x68,0x33,0x10,0x61,1,0x66,0x37,0x6d,0x11,0x61,
-0x6c,0x39,1,0x61,0x40,0x65,0x3e,1,0x68,0x28,0x74,0x10,0x68,0x45,0x40,0x13,
-0x67,0x6f,0x61,0x6c,0x43,2,0x68,0x3b,0x6d,0x5c,0x6e,0x1a,0x69,0x66,0x69,0x72,
-0x6f,0x68,0x69,0x6e,0x67,0x79,0x61,1,0x6b,0x2a,0x70,0x10,0x61,0xa3,0x65,0x15,
-0x69,0x6e,0x6e,0x61,0x79,0x61,0xa3,0x64,0x1a,0x7a,0x61,0x6f,0x6e,0x68,0x65,0x68,
-0x67,0x6f,0x61,0x6c,0x3d,2,0x61,0x3a,0x68,0x44,0x6e,0x17,0x6f,0x74,0x74,0x65,
-0x64,0x68,0x65,0x68,0x4b,1,0x66,0x47,0x70,0x10,0x68,0x49,0x12,0x61,0x70,0x68,
-0x89,0x61,0x2e,0x62,0x8a,0x64,0xa2,0x51,0x65,0x31,2,0x66,0x3c,0x69,0x70,0x6c,
-1,0x61,0x28,0x65,0x10,0x66,0x27,0x11,0x70,0x68,0x25,0x14,0x72,0x69,0x63,0x61,
-0x6e,2,0x66,0x30,0x6e,0x36,0x71,0x11,0x61,0x66,0xa3,0x58,0x11,0x65,0x68,0xa3,
-0x56,0x12,0x6f,0x6f,0x6e,0xa3,0x57,0x10,0x6e,0x23,1,0x65,0x4a,0x75,0x10,0x72,
-0x1f,0x75,0x73,0x68,0x61,0x73,0x6b,0x69,0x79,0x65,0x68,0x62,0x61,0x72,0x72,0x65,
-0x65,0x8d,1,0x68,0x29,0x74,0x10,0x68,0x2b,0x11,0x61,0x6c,0x2c,0x16,0x61,0x74,
-0x68,0x72,0x69,0x73,0x68,0x2f,7,0x6e,0x2e,0x6e,0x2c,0x72,0x3e,0x74,0x56,0x75,
-0x21,0x18,0x6f,0x6e,0x6a,0x6f,0x69,0x6e,0x69,0x6e,0x67,0x21,0x28,0x1a,0x69,0x67,
-0x68,0x74,0x6a,0x6f,0x69,0x6e,0x69,0x6e,0x67,0x29,0x2a,0x19,0x72,0x61,0x6e,0x73,
-0x70,0x61,0x72,0x65,0x6e,0x74,0x2b,0x63,0x23,0x64,0x40,0x6a,0x56,0x6c,0x26,0x19,
-0x65,0x66,0x74,0x6a,0x6f,0x69,0x6e,0x69,0x6e,0x67,0x27,0x24,0x19,0x75,0x61,0x6c,
-0x6a,0x6f,0x69,0x6e,0x69,0x6e,0x67,0x25,0x19,0x6f,0x69,0x6e,0x63,0x61,0x75,0x73,
-0x69,0x6e,0x67,0x23,0,0x13,0x6e,0xc0,0xd0,0x73,0x49,0x73,0x48,0x75,0x78,0x77,
-0x84,0x78,0x9c,0x7a,0x10,0x77,0x58,1,0x6a,0x75,0x73,0x13,0x70,0x61,0x63,0x65,
-0x59,4,0x61,0x51,0x67,0x53,0x70,0x28,0x75,0x30,0x79,0x57,0x54,0x12,0x61,0x63,
-0x65,0x55,0x16,0x72,0x72,0x6f,0x67,0x61,0x74,0x65,0x53,0x15,0x6e,0x6b,0x6e,0x6f,
-0x77,0x6e,0x21,1,0x6a,0x5d,0x6f,0x17,0x72,0x64,0x6a,0x6f,0x69,0x6e,0x65,0x72,
-0x5d,0x10,0x78,0x21,0x6e,0x60,0x6f,0xa2,0x41,0x70,0xa2,0x50,0x71,0xa2,0x6e,0x72,
-1,0x65,0x24,0x69,0x6f,0x1e,0x67,0x69,0x6f,0x6e,0x61,0x6c,0x69,0x6e,0x64,0x69,
-0x63,0x61,0x74,0x6f,0x72,0x6f,4,0x65,0x3e,0x6c,0x5b,0x6f,0x46,0x73,0x45,0x75,
-0x46,0x14,0x6d,0x65,0x72,0x69,0x63,0x47,0x15,0x78,0x74,0x6c,0x69,0x6e,0x65,0x5b,
-0x17,0x6e,0x73,0x74,0x61,0x72,0x74,0x65,0x72,0x45,0x10,0x70,0x48,0x1c,0x65,0x6e,
-0x70,0x75,0x6e,0x63,0x74,0x75,0x61,0x74,0x69,0x6f,0x6e,0x49,1,0x6f,0x3e,0x72,
-0x4c,0x1a,0x65,0x66,0x69,0x78,0x6e,0x75,0x6d,0x65,0x72,0x69,0x63,0x4d,0x4a,0x1b,
-0x73,0x74,0x66,0x69,0x78,0x6e,0x75,0x6d,0x65,0x72,0x69,0x63,0x4b,0x10,0x75,0x4e,
-0x16,0x6f,0x74,0x61,0x74,0x69,0x6f,0x6e,0x4f,0x68,0x7b,0x68,0x50,0x69,0x86,0x6a,
-0xa2,0x61,0x6c,0xa2,0x65,0x6d,0x1c,0x61,0x6e,0x64,0x61,0x74,0x6f,0x72,0x79,0x62,
-0x72,0x65,0x61,0x6b,0x2d,4,0x32,0x5f,0x33,0x61,0x65,0x34,0x6c,0x6d,0x79,0x3a,
-0x13,0x70,0x68,0x65,0x6e,0x3b,0x19,0x62,0x72,0x65,0x77,0x6c,0x65,0x74,0x74,0x65,
-0x72,0x6d,2,0x64,0x28,0x6e,0x3c,0x73,0x41,0x3c,0x18,0x65,0x6f,0x67,0x72,0x61,
-0x70,0x68,0x69,0x63,0x3d,0x3e,1,0x66,0x3e,0x73,0x11,0x65,0x70,1,0x61,0x22,
-0x65,0x14,0x72,0x61,0x62,0x6c,0x65,0x3f,0x18,0x69,0x78,0x6e,0x75,0x6d,0x65,0x72,
-0x69,0x63,0x41,2,0x6c,0x63,0x74,0x65,0x76,0x67,1,0x66,0x43,0x69,0x15,0x6e,
-0x65,0x66,0x65,0x65,0x64,0x43,0x61,0x40,0x62,0x70,0x63,0xa2,0x55,0x65,0xa2,0xdb,
-0x67,0x10,0x6c,0x38,0x11,0x75,0x65,0x39,2,0x69,0x23,0x6c,0x34,0x6d,0x16,0x62,
-0x69,0x67,0x75,0x6f,0x75,0x73,0x23,0x24,0x17,0x70,0x68,0x61,0x62,0x65,0x74,0x69,
-0x63,0x25,4,0x32,0x27,0x61,0x29,0x62,0x2b,0x6b,0x2d,0x72,0x12,0x65,0x61,0x6b,
-2,0x61,0x36,0x62,0x3e,0x73,0x15,0x79,0x6d,0x62,0x6f,0x6c,0x73,0x57,0x13,0x66,
-0x74,0x65,0x72,0x29,1,0x65,0x2a,0x6f,0x11,0x74,0x68,0x27,0x13,0x66,0x6f,0x72,
-0x65,0x2b,7,0x6d,0x51,0x6d,0x33,0x6f,0x28,0x70,0x69,0x72,0x35,1,0x6d,0x76,
-0x6e,1,0x64,0x3c,0x74,0x1a,0x69,0x6e,0x67,0x65,0x6e,0x74,0x62,0x72,0x65,0x61,
-0x6b,0x2f,0x15,0x69,0x74,0x69,0x6f,0x6e,0x61,0x1f,0x6c,0x6a,0x61,0x70,0x61,0x6e,
-0x65,0x73,0x65,0x73,0x74,0x61,0x72,0x74,0x65,0x72,0x6b,1,0x62,0x3a,0x70,0x19,
-0x6c,0x65,0x78,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x51,0x18,0x69,0x6e,0x69,0x6e,
-0x67,0x6d,0x61,0x72,0x6b,0x33,0x61,0x6a,0x62,0x2f,0x6a,0x6b,0x6c,0x30,0x13,0x6f,
-0x73,0x65,0x70,1,0x61,0x38,0x75,0x18,0x6e,0x63,0x74,0x75,0x61,0x74,0x69,0x6f,
-0x6e,0x31,0x18,0x72,0x65,0x6e,0x74,0x68,0x65,0x73,0x69,0x73,0x69,0x1b,0x72,0x72,
-0x69,0x61,0x67,0x65,0x72,0x65,0x74,0x75,0x72,0x6e,0x35,2,0x62,0x3e,0x6d,0x46,
-0x78,0x36,0x18,0x63,0x6c,0x61,0x6d,0x61,0x74,0x69,0x6f,0x6e,0x37,0x70,0x12,0x61,
-0x73,0x65,0x71,0x72,0x16,0x6f,0x64,0x69,0x66,0x69,0x65,0x72,0x73,1,0x64,0x42,
-0x6e,1,0x6f,0x32,0x75,0x26,0x14,0x6d,0x65,0x72,0x69,0x63,0x27,0x11,0x6e,0x65,
-0x21,1,0x65,0x2e,0x69,0x24,0x12,0x67,0x69,0x74,0x25,0x22,0x14,0x63,0x69,0x6d,
-0x61,0x6c,0x23,0,0x18,0x6e,0xc3,0xe6,0x74,0xc1,0x51,0x77,0x7a,0x77,0xa2,0x4c,
-0x78,0xa2,0x60,0x79,0xa2,0x6a,0x7a,6,0x73,0x1e,0x73,0x34,0x78,0x42,0x79,0x48,
-0x7a,0x11,0x7a,0x7a,0xa3,0x67,0x10,0x79,1,0x65,0xa3,0xae,0x6d,0xa3,0x81,0x11,
-0x78,0x78,0xa3,0x66,0x11,0x79,0x79,0x21,0x61,0x30,0x69,0x58,0x6d,0x11,0x74,0x68,
-0xa3,0x80,0x10,0x6e,1,0x61,0x26,0x62,0xa3,0xb1,0x1a,0x62,0x61,0x7a,0x61,0x72,
-0x73,0x71,0x75,0x61,0x72,0x65,0xa3,0xb1,0x11,0x6e,0x68,0x23,1,0x61,0x2c,0x6f,
-0x11,0x6c,0x65,0xa3,0x9b,0x11,0x72,0x61,0xa2,0x92,0x15,0x6e,0x67,0x63,0x69,0x74,
-0x69,0xa3,0x92,1,0x70,0x2c,0x73,0x11,0x75,0x78,0xa3,0x65,0x11,0x65,0x6f,0x9b,
-0x10,0x69,0x72,0x11,0x69,0x69,0x73,0x74,0x4a,0x75,0xa2,0xba,0x76,1,0x61,0x2c,
-0x69,0x11,0x73,0x70,0xa3,0x64,0x10,0x69,0xa2,0x63,0x10,0x69,0xa3,0x63,5,0x67,
-0x36,0x67,0x68,0x68,0x6c,0x69,2,0x62,0x3a,0x66,0x4a,0x72,0x10,0x68,0xa2,0x9e,
-0x12,0x75,0x74,0x61,0xa3,0x9e,1,0x65,0x24,0x74,0x6f,0x12,0x74,0x61,0x6e,0x6f,
-0x14,0x69,0x6e,0x61,0x67,0x68,0x99,0x11,0x6c,0x67,0x75,0x10,0x61,1,0x61,0x24,
-0x69,0x6d,0x6a,0x11,0x6e,0x61,0x6b,0x61,0x30,0x65,0xa2,0x5b,0x66,0x11,0x6e,0x67,
-0x99,6,0x6c,0x21,0x6c,0x32,0x6d,0x38,0x6e,0x44,0x76,0x10,0x74,0xa3,0x7f,1,
-0x65,0x89,0x75,0x97,1,0x69,0x24,0x6c,0x67,0x10,0x6c,0x67,0x10,0x67,0xa2,0x9a,
-0x11,0x75,0x74,0xa3,0x9a,0x67,0x36,0x69,0x52,0x6b,0x10,0x72,0xa2,0x99,0x10,0x69,
-0xa3,0x99,1,0x61,0x30,0x62,0x7a,0x13,0x61,0x6e,0x77,0x61,0x7b,0x12,0x6c,0x6f,
-0x67,0x75,2,0x6c,0x32,0x74,0x34,0x76,0x12,0x69,0x65,0x74,0xa3,0x7f,0x10,0x65,
-0x89,0x12,0x68,0x61,0x6d,0xa3,0x6a,1,0x6c,0x2a,0x6e,0x10,0x67,0xa3,0x62,0x10,
-0x75,0x68,0x11,0x67,0x75,0x69,1,0x67,0x32,0x6e,0x14,0x6b,0x6e,0x6f,0x77,0x6e,
-0xa3,0x67,0x11,0x61,0x72,0x8a,0x13,0x69,0x74,0x69,0x63,0x8b,0x71,0xc1,0x13,0x71,
-0xa2,0xde,0x72,0xa2,0xe3,0x73,6,0x69,0x8a,0x69,0x72,0x6f,0xa2,0x4c,0x75,0xa2,
-0x75,0x79,1,0x6c,0x46,0x72,4,0x63,0x65,0x65,0xa3,0x5f,0x69,0x2c,0x6a,0xa3,
-0x60,0x6e,0xa3,0x61,0x11,0x61,0x63,0x65,0x10,0x6f,0x94,0x16,0x74,0x69,0x6e,0x61,
-0x67,0x72,0x69,0x95,2,0x64,0x3c,0x67,0x4c,0x6e,1,0x64,0xa3,0x91,0x68,0x62,
-0x12,0x61,0x6c,0x61,0x63,0x10,0x64,0xa2,0xa6,0x12,0x68,0x61,0x6d,0xa3,0xa6,0x17,
-0x6e,0x77,0x72,0x69,0x74,0x69,0x6e,0x67,0xa3,0x70,2,0x67,0x3a,0x72,0x52,0x79,
-0x10,0x6f,0xa2,0xb0,0x12,0x6d,0x62,0x6f,0xa3,0xb0,1,0x64,0x26,0x6f,0xa3,0xb8,
-0xa2,0xb7,0x12,0x69,0x61,0x6e,0xa3,0xb7,0x10,0x61,0xa2,0x98,0x16,0x73,0x6f,0x6d,
-0x70,0x65,0x6e,0x67,0xa3,0x98,0x11,0x6e,0x64,0xa2,0x71,0x14,0x61,0x6e,0x65,0x73,
-0x65,0xa3,0x71,0x61,0x5c,0x67,0xa2,0x43,0x68,1,0x61,0x2a,0x72,0x10,0x64,0xa3,
-0x97,2,0x72,0x28,0x76,0x30,0x77,0x87,0x12,0x61,0x64,0x61,0xa3,0x97,0x12,0x69,
-0x61,0x6e,0x87,2,0x6d,0x40,0x72,0x58,0x75,0x10,0x72,0xa2,0x6f,0x15,0x61,0x73,
-0x68,0x74,0x72,0x61,0xa3,0x6f,1,0x61,0x26,0x72,0xa3,0x7e,0x14,0x72,0x69,0x74,
-0x61,0x6e,0xa3,0x7e,1,0x61,0xa3,0x5e,0x62,0xa3,0x85,0x11,0x6e,0x77,0xa3,0x70,
-0x11,0x61,0x61,1,0x63,0x2f,0x69,0x23,3,0x65,0x3e,0x6a,0x48,0x6f,0x4e,0x75,
-0x10,0x6e,1,0x69,0x24,0x72,0x61,0x10,0x63,0x61,0x13,0x6a,0x61,0x6e,0x67,0xa3,
-0x6e,0x11,0x6e,0x67,0xa3,0x6e,1,0x68,0x2a,0x72,0x10,0x6f,0xa3,0x5d,0x10,0x67,
-0xa3,0xb6,0x6e,0xa2,0x83,0x6f,0xa2,0xca,0x70,5,0x6c,0x1e,0x6c,0x44,0x72,0x4a,
-0x73,0x1b,0x61,0x6c,0x74,0x65,0x72,0x70,0x61,0x68,0x6c,0x61,0x76,0x69,0xa3,0x7b,
-0x11,0x72,0x64,0xa3,0x5c,0x11,0x74,0x69,0xa3,0x7d,0x61,0x7c,0x65,0xa2,0x54,0x68,
-3,0x61,0x3e,0x6c,0x4e,0x6e,0x5e,0x6f,0x16,0x65,0x6e,0x69,0x63,0x69,0x61,0x6e,
-0xa3,0x5b,0x10,0x67,0xa2,0x5a,0x12,0x73,0x70,0x61,0xa3,0x5a,2,0x69,0xa3,0x7a,
-0x70,0xa3,0x7b,0x76,0xa3,0x7c,0x10,0x78,0xa3,0x5b,2,0x68,0x3e,0x6c,0x50,0x75,
-0x10,0x63,0xa2,0xa5,0x14,0x69,0x6e,0x68,0x61,0x75,0xa3,0xa5,0x17,0x61,0x77,0x68,
-0x68,0x6d,0x6f,0x6e,0x67,0xa3,0x4b,0x10,0x6d,0xa2,0x90,0x14,0x79,0x72,0x65,0x6e,
-0x65,0xa3,0x90,0x11,0x72,0x6d,0xa3,0x59,5,0x6b,0x1e,0x6b,0x32,0x73,0x4a,0x75,
-0x12,0x73,0x68,0x75,0xa3,0x96,1,0x67,0x2e,0x6f,0xa2,0x57,0x10,0x6f,0xa3,0x57,
-0x10,0x62,0xa3,0x84,0x11,0x68,0x75,0xa3,0x96,0x61,0x42,0x62,0x60,0x65,0x10,0x77,
-1,0x61,0xa3,0xaa,0x74,0x14,0x61,0x69,0x6c,0x75,0x65,0x97,1,0x62,0x2a,0x72,
-0x10,0x62,0xa3,0x8e,0x15,0x61,0x74,0x61,0x65,0x61,0x6e,0xa3,0x8f,0x11,0x61,0x74,
-0xa3,0x8f,3,0x67,0x5a,0x6c,0x6c,0x72,0xa2,0x93,0x73,2,0x61,0x36,0x67,0x3c,
-0x6d,0x10,0x61,0x84,0x12,0x6e,0x79,0x61,0x85,0x11,0x67,0x65,0xa3,0xab,0x10,0x65,
-0xa3,0xab,1,0x61,0x2a,0x68,0x11,0x61,0x6d,0x5b,0x10,0x6d,0x5b,1,0x63,0xa2,
-0x60,0x64,5,0x70,0x37,0x70,0x36,0x73,0x54,0x74,0x14,0x75,0x72,0x6b,0x69,0x63,
-0xa3,0x58,0x11,0x65,0x72,1,0x6d,0x2c,0x73,0x12,0x69,0x61,0x6e,0x9b,0x11,0x69,
-0x63,0xa3,0x59,0x10,0x6f,1,0x67,0x3a,0x75,0x18,0x74,0x68,0x61,0x72,0x61,0x62,
-0x69,0x61,0x6e,0xa3,0x85,0x13,0x64,0x69,0x61,0x6e,0xa3,0xb8,0x68,0x42,0x69,0x54,
-0x6e,0x1a,0x6f,0x72,0x74,0x68,0x61,0x72,0x61,0x62,0x69,0x61,0x6e,0xa3,0x8e,0x17,
-0x75,0x6e,0x67,0x61,0x72,0x69,0x61,0x6e,0xa3,0x4c,0x14,0x74,0x61,0x6c,0x69,0x63,
-0x5d,1,0x68,0x26,0x6b,0xa3,0x6d,0x12,0x69,0x6b,0x69,0xa3,0x6d,2,0x69,0x2c,
-0x6b,0x30,0x79,0x10,0x61,0x5f,0x11,0x79,0x61,0x5f,0x10,0x68,0xa3,0x58,0x68,0xc2,
-0xef,0x6b,0xc2,0xa,0x6b,0xa4,0x17,0x6c,0xa4,0x98,0x6d,8,0x6f,0x46,0x6f,0x48,
-0x72,0x74,0x74,0x80,0x75,0x86,0x79,1,0x61,0x28,0x6d,0x10,0x72,0x59,0x13,0x6e,
-0x6d,0x61,0x72,0x59,2,0x64,0x2e,0x6e,0x32,0x6f,0x10,0x6e,0xa3,0x72,0x10,0x69,
-0xa3,0xa3,0x10,0x67,0x56,0x14,0x6f,0x6c,0x69,0x61,0x6e,0x57,0x10,0x6f,0xa2,0x95,
-0x10,0x6f,0xa3,0x95,0x11,0x65,0x69,0xa3,0x73,0x11,0x6c,0x74,0xa2,0xa4,0x12,0x61,
-0x6e,0x69,0xa3,0xa4,0x61,0x36,0x65,0xa2,0x67,0x69,0xa2,0xbd,0x6c,0x11,0x79,0x6d,
-0x55,6,0x6e,0x38,0x6e,0x32,0x72,0x5c,0x73,0x6c,0x79,0x10,0x61,0xa3,0x55,1,
-0x64,0x38,0x69,0xa2,0x79,0x15,0x63,0x68,0x61,0x65,0x61,0x6e,0xa3,0x79,0xa2,0x54,
-0x12,0x61,0x69,0x63,0xa3,0x54,0x10,0x63,0xa2,0xa9,0x12,0x68,0x65,0x6e,0xa3,0xa9,
-0x18,0x61,0x72,0x61,0x6d,0x67,0x6f,0x6e,0x64,0x69,0xa3,0xaf,0x68,0x36,0x6b,0x4c,
-0x6c,0x15,0x61,0x79,0x61,0x6c,0x61,0x6d,0x55,1,0x61,0x26,0x6a,0xa3,0xa0,0x13,
-0x6a,0x61,0x6e,0x69,0xa3,0xa0,0x10,0x61,0xa2,0xb4,0x12,0x73,0x61,0x72,0xa3,0xb4,
-3,0x64,0x78,0x65,0x94,0x6e,0xa2,0x42,0x72,1,0x63,0xa3,0x8d,0x6f,0xa2,0x56,
-0x13,0x69,0x74,0x69,0x63,1,0x63,0x3c,0x68,0x19,0x69,0x65,0x72,0x6f,0x67,0x6c,
-0x79,0x70,0x68,0x73,0xa3,0x56,0x15,0x75,0x72,0x73,0x69,0x76,0x65,0xa3,0x8d,1,
-0x65,0x26,0x66,0xa3,0xb5,0x16,0x66,0x61,0x69,0x64,0x72,0x69,0x6e,0xa3,0xb5,0x17,
-0x74,0x65,0x69,0x6d,0x61,0x79,0x65,0x6b,0xa3,0x73,0x10,0x64,0xa2,0x8c,0x17,0x65,
-0x6b,0x69,0x6b,0x61,0x6b,0x75,0x69,0xa3,0x8c,0x11,0x61,0x6f,0xa3,0x5c,5,0x6f,
-0x14,0x6f,0x30,0x70,0x36,0x74,0x11,0x68,0x69,0xa3,0x78,0x11,0x72,0x65,0xa3,0x77,
-0x11,0x65,0x6c,0xa3,0x8a,0x61,0x2e,0x68,0x98,0x6e,0x11,0x64,0x61,0x4b,4,0x69,
-0x3c,0x6c,0x44,0x6e,0x48,0x74,0x56,0x79,0x13,0x61,0x68,0x6c,0x69,0xa3,0x4f,0x12,
-0x74,0x68,0x69,0xa3,0x78,0x10,0x69,0xa3,0x4f,1,0x61,0x4d,0x6e,0x12,0x61,0x64,
-0x61,0x4b,0x14,0x61,0x6b,0x61,0x6e,0x61,0x4c,0x19,0x6f,0x72,0x68,0x69,0x72,0x61,
-0x67,0x61,0x6e,0x61,0x8d,3,0x61,0x3c,0x6d,0x4e,0x6f,0x5a,0x75,0x15,0x64,0x61,
-0x77,0x61,0x64,0x69,0xa3,0x91,0x10,0x72,0x92,0x15,0x6f,0x73,0x68,0x74,0x68,0x69,
-0x93,1,0x65,0x24,0x72,0x4f,0x10,0x72,0x4f,0x10,0x6a,0xa2,0x9d,0x11,0x6b,0x69,
-0xa3,0x9d,4,0x61,0x5c,0x65,0x90,0x69,0xa0,0x6f,0xa2,0x5d,0x79,1,0x63,0x34,
-0x64,0x10,0x69,0xa2,0x6c,0x11,0x61,0x6e,0xa3,0x6c,0x10,0x69,0xa2,0x6b,0x11,0x61,
-0x6e,0xa3,0x6b,2,0x6e,0x42,0x6f,0x46,0x74,3,0x66,0xa3,0x50,0x67,0xa3,0x51,
-0x69,0x24,0x6e,0x53,0x10,0x6e,0x53,0x10,0x61,0xa3,0x6a,0x50,0x10,0x6f,0x51,0x11,
-0x70,0x63,0xa2,0x52,0x11,0x68,0x61,0xa3,0x52,2,0x6d,0x2e,0x6e,0x36,0x73,0x10,
-0x75,0xa3,0x83,0x10,0x62,0x80,0x10,0x75,0x81,2,0x61,0xa3,0x53,0x62,0x83,0x65,
-0x11,0x61,0x72,1,0x61,0xa3,0x53,0x62,0x83,0x11,0x6d,0x61,0xa3,0x8b,0x68,0x6e,
-0x69,0xa2,0x91,0x6a,2,0x61,0x30,0x70,0x52,0x75,0x11,0x72,0x63,0xa3,0x94,1,
-0x6d,0x38,0x76,0x10,0x61,0xa2,0x4e,0x13,0x6e,0x65,0x73,0x65,0xa3,0x4e,0x10,0x6f,
-0xa3,0xad,0x11,0x61,0x6e,0xa3,0x69,6,0x6c,0x1a,0x6c,0x34,0x6d,0x3a,0x72,0x40,
-0x75,0x11,0x6e,0x67,0xa3,0x4c,0x11,0x75,0x77,0xa3,0x9c,0x11,0x6e,0x67,0xa3,0x4b,
-0x11,0x6b,0x74,0x8d,0x61,0x3c,0x65,0xa2,0x43,0x69,0x11,0x72,0x61,0x48,0x13,0x67,
-0x61,0x6e,0x61,0x49,1,0x6e,0x34,0x74,0x10,0x72,0xa2,0xa2,0x11,0x61,0x6e,0xa3,
-0xa2,0x42,6,0x6f,0xe,0x6f,0x77,0x73,0xa3,0x49,0x74,0xa3,0x4a,0x75,0x12,0x6e,
-0x6f,0x6f,0x77,0x62,0xa3,0xac,0x67,0x3e,0x69,0x42,0x19,0x66,0x69,0x72,0x6f,0x68,
-0x69,0x6e,0x67,0x79,0x61,0xa3,0xb6,0x44,0x11,0x75,0x6c,0x45,0x11,0x62,0x72,0x46,
-0x11,0x65,0x77,0x47,2,0x6d,0x2e,0x6e,0x4a,0x74,0x11,0x61,0x6c,0x5d,0x1c,0x70,
-0x65,0x72,0x69,0x61,0x6c,0x61,0x72,0x61,0x6d,0x61,0x69,0x63,0xa3,0x74,2,0x64,
-0x66,0x68,0x6a,0x73,0x1b,0x63,0x72,0x69,0x70,0x74,0x69,0x6f,0x6e,0x61,0x6c,0x70,
-0x61,1,0x68,0x32,0x72,0x14,0x74,0x68,0x69,0x61,0x6e,0xa3,0x7d,0x13,0x6c,0x61,
-0x76,0x69,0xa3,0x7a,0x10,0x73,0xa3,0x4d,0x15,0x65,0x72,0x69,0x74,0x65,0x64,0x23,
-0x64,0xc0,0xec,0x64,0xa2,0x7a,0x65,0xa2,0xad,0x67,4,0x65,0x82,0x6c,0x9a,0x6f,
-0xa2,0x46,0x72,0xa2,0x55,0x75,2,0x6a,0x3c,0x6e,0x4e,0x72,1,0x6d,0x24,0x75,
-0x41,0x13,0x75,0x6b,0x68,0x69,0x41,1,0x61,0x24,0x72,0x3f,0x13,0x72,0x61,0x74,
-0x69,0x3f,0x18,0x6a,0x61,0x6c,0x61,0x67,0x6f,0x6e,0x64,0x69,0xa3,0xb3,0x10,0x6f,
-1,0x6b,0xa3,0x48,0x72,0x38,0x13,0x67,0x69,0x61,0x6e,0x39,0x11,0x61,0x67,0x90,
-0x15,0x6f,0x6c,0x69,0x74,0x69,0x63,0x91,1,0x6e,0x30,0x74,0x10,0x68,0x3a,0x11,
-0x69,0x63,0x3b,1,0x67,0xa3,0xb3,0x6d,0xa3,0xaf,1,0x61,0x32,0x65,1,0x65,
-0x24,0x6b,0x3d,0x10,0x6b,0x3d,0x10,0x6e,0xa2,0x89,0x12,0x74,0x68,0x61,0xa3,0x89,
-3,0x65,0x42,0x6f,0x68,0x73,0x76,0x75,0x11,0x70,0x6c,0xa2,0x87,0x13,0x6f,0x79,
-0x61,0x6e,0xa3,0x87,1,0x73,0x38,0x76,0x10,0x61,0x34,0x15,0x6e,0x61,0x67,0x61,
-0x72,0x69,0x35,0x13,0x65,0x72,0x65,0x74,0x33,0x11,0x67,0x72,0xa2,0xb2,0x10,0x61,
-0xa3,0xb2,0x11,0x72,0x74,0x33,2,0x67,0x3a,0x6c,0x72,0x74,0x11,0x68,0x69,0x36,
-0x13,0x6f,0x70,0x69,0x63,0x37,0x10,0x79,2,0x64,0xa3,0x45,0x68,0xa3,0x46,0x70,
-0xa2,0x47,0x1e,0x74,0x69,0x61,0x6e,0x68,0x69,0x65,0x72,0x6f,0x67,0x6c,0x79,0x70,
-0x68,0x73,0xa3,0x47,0x11,0x62,0x61,0xa2,0x88,0x12,0x73,0x61,0x6e,0xa3,0x88,0x61,
-0xa2,0xa2,0x62,0xa4,7,0x63,6,0x6f,0x3d,0x6f,0x5a,0x70,0x76,0x75,0x7a,0x79,
-1,0x70,0x3e,0x72,2,0x69,0x2a,0x6c,0x31,0x73,0xa3,0x44,0x13,0x6c,0x6c,0x69,
-0x63,0x31,0x13,0x72,0x69,0x6f,0x74,0x7f,1,0x6d,0x30,0x70,0x10,0x74,0x2e,0x11,
-0x69,0x63,0x2f,0x12,0x6d,0x6f,0x6e,0x21,0x11,0x72,0x74,0x7f,0x16,0x6e,0x65,0x69,
-0x66,0x6f,0x72,0x6d,0xa3,0x65,0x61,0x32,0x68,0xa2,0x41,0x69,0x11,0x72,0x74,0xa3,
-0x43,3,0x6b,0x4c,0x6e,0x50,0x72,0x76,0x75,0x1d,0x63,0x61,0x73,0x69,0x61,0x6e,
-0x61,0x6c,0x62,0x61,0x6e,0x69,0x61,0x6e,0xa3,0x9f,0x10,0x6d,0xa3,0x76,1,0x61,
-0x24,0x73,0x71,0x1d,0x64,0x69,0x61,0x6e,0x61,0x62,0x6f,0x72,0x69,0x67,0x69,0x6e,
-0x61,0x6c,0x71,0x10,0x69,0xa2,0x68,0x11,0x61,0x6e,0xa3,0x68,1,0x61,0x34,0x65,
-0x10,0x72,0x2c,0x13,0x6f,0x6b,0x65,0x65,0x2d,1,0x6b,0x26,0x6d,0xa3,0x42,0x11,
-0x6d,0x61,0xa3,0x76,6,0x68,0x4a,0x68,0x48,0x6e,0x4e,0x72,0x76,0x76,1,0x65,
-0x2a,0x73,0x10,0x74,0xa3,0x75,0x13,0x73,0x74,0x61,0x6e,0xa3,0x75,0x11,0x6f,0x6d,
-0xa3,0xa1,0x11,0x61,0x74,0x1f,0x6f,0x6c,0x69,0x61,0x6e,0x68,0x69,0x65,0x72,0x6f,
-0x67,0x6c,0x79,0x70,0x68,0x73,0xa3,0x9c,1,0x61,0x3e,0x6d,2,0x65,0x2a,0x69,
-0xa3,0x74,0x6e,0x27,0x13,0x6e,0x69,0x61,0x6e,0x27,0x10,0x62,0x24,0x11,0x69,0x63,
-0x25,0x64,0x30,0x66,0x44,0x67,0x11,0x68,0x62,0xa3,0x9f,0x10,0x6c,1,0x61,0x26,
-0x6d,0xa3,0xa7,0x10,0x6d,0xa3,0xa7,0x11,0x61,0x6b,0xa3,0x93,6,0x6c,0x3c,0x6c,
-0x52,0x6f,0x56,0x72,0x66,0x75,1,0x67,0x30,0x68,1,0x64,0x79,0x69,0x10,0x64,
-0x79,0x10,0x69,0x8e,0x13,0x6e,0x65,0x73,0x65,0x8f,0x11,0x69,0x73,0xa1,0x11,0x70,
-0x6f,0x2a,0x13,0x6d,0x6f,0x66,0x6f,0x2b,0x10,0x61,1,0x68,0x2e,0x69,0x7c,0x12,
-0x6c,0x6c,0x65,0x7d,0xa2,0x41,0x11,0x6d,0x69,0xa3,0x41,0x61,0x48,0x65,0x9c,0x68,
-1,0x61,0x2a,0x6b,0x10,0x73,0xa3,0xa8,0x15,0x69,0x6b,0x73,0x75,0x6b,0x69,0xa3,
-0xa8,3,0x6c,0x3a,0x6d,0x48,0x73,0x54,0x74,1,0x61,0x24,0x6b,0x9f,0x10,0x6b,
-0x9f,0x10,0x69,0x9c,0x13,0x6e,0x65,0x73,0x65,0x9d,0x10,0x75,0xa2,0x82,0x10,0x6d,
-0xa3,0x82,0x10,0x73,0xa2,0x86,0x13,0x61,0x76,0x61,0x68,0xa3,0x86,0x11,0x6e,0x67,
-0x28,0x12,0x61,0x6c,0x69,0x29,3,0x6c,0x42,0x6e,0x90,0x74,0xa2,0x46,0x76,0x24,
-0x17,0x6f,0x77,0x65,0x6c,0x6a,0x61,0x6d,0x6f,0x25,0x22,1,0x65,0x54,0x76,0x28,
-1,0x73,0x38,0x74,0x2a,0x17,0x73,0x79,0x6c,0x6c,0x61,0x62,0x6c,0x65,0x2b,0x16,
-0x79,0x6c,0x6c,0x61,0x62,0x6c,0x65,0x29,0x18,0x61,0x64,0x69,0x6e,0x67,0x6a,0x61,
-0x6d,0x6f,0x23,1,0x61,0x21,0x6f,0x1a,0x74,0x61,0x70,0x70,0x6c,0x69,0x63,0x61,
-0x62,0x6c,0x65,0x21,0x26,0x1a,0x72,0x61,0x69,0x6c,0x69,0x6e,0x67,0x6a,0x61,0x6d,
-0x6f,0x27,1,0x6e,0x2c,0x79,0x22,0x11,0x65,0x73,0x23,0x20,0x10,0x6f,0x21,1,
-0x6e,0x2c,0x79,0x22,0x11,0x65,0x73,0x23,0x20,0x10,0x6f,0x21,2,0x6d,0x30,0x6e,
+const uint8_t PropNameData::bytesTries[14523]={
+0,0x15,0x6d,0xc3,0x78,0x73,0xc2,0x12,0x76,0x7a,0x76,0x6a,0x77,0xa2,0x52,0x78,
+1,0x64,0x50,0x69,0x10,0x64,1,0x63,0x30,0x73,0x62,0x13,0x74,0x61,0x72,0x74,
+0x63,0x60,0x16,0x6f,0x6e,0x74,0x69,0x6e,0x75,0x65,0x61,0x13,0x69,0x67,0x69,0x74,
+0x81,3,0x61,0x2e,0x65,0x4c,0x6f,0xc3,0x18,0x73,0x69,0x1e,0x72,0x69,0x61,0x74,
+0x69,0x6f,0x6e,0x73,0x65,0x6c,0x65,0x63,0x74,0x6f,0x72,0x69,0x10,0x72,0x1f,0x74,
+0x69,0x63,0x61,0x6c,0x6f,0x72,0x69,0x65,0x6e,0x74,0x61,0x74,0x69,0x6f,0x6e,0xc3,
+0x18,3,0x62,0xc3,0x14,0x68,0x32,0x6f,0x42,0x73,0x13,0x70,0x61,0x63,0x65,0x5f,
+0x17,0x69,0x74,0x65,0x73,0x70,0x61,0x63,0x65,0x5f,0x16,0x72,0x64,0x62,0x72,0x65,
+0x61,0x6b,0xc3,0x14,0x73,0xa2,0x49,0x74,0xa4,0x3b,0x75,3,0x63,0xd9,0x40,0xc,
+0x69,0x52,0x6e,0x58,0x70,0x12,0x70,0x65,0x72,0x5c,0x13,0x63,0x61,0x73,0x65,0x5c,
+0x16,0x6d,0x61,0x70,0x70,0x69,0x6e,0x67,0xd9,0x40,0xc,0x12,0x64,0x65,0x6f,0x5b,
+0x10,0x69,1,0x63,0x3e,0x66,0x1b,0x69,0x65,0x64,0x69,0x64,0x65,0x6f,0x67,0x72,
+0x61,0x70,0x68,0x5b,0x17,0x6f,0x64,0x65,0x31,0x6e,0x61,0x6d,0x65,0xd9,0x40,0xb,
+0xa,0x69,0x84,0x70,0x19,0x70,0x30,0x74,0x36,0x75,0x10,0x63,0xd9,0x40,9,0x12,
+0x61,0x63,0x65,0x5f,1,0x63,0xd9,0x40,8,0x65,0x11,0x72,0x6d,0x67,0x69,0x3c,
+0x6c,0xa2,0x5f,0x6f,0x17,0x66,0x74,0x64,0x6f,0x74,0x74,0x65,0x64,0x57,0x13,0x6d,
+0x70,0x6c,0x65,3,0x63,0x50,0x6c,0x68,0x74,0x8a,0x75,0x1e,0x70,0x70,0x65,0x72,
+0x63,0x61,0x73,0x65,0x6d,0x61,0x70,0x70,0x69,0x6e,0x67,0xd9,0x40,9,0x19,0x61,
+0x73,0x65,0x66,0x6f,0x6c,0x64,0x69,0x6e,0x67,0xd9,0x40,6,0x1e,0x6f,0x77,0x65,
+0x72,0x63,0x61,0x73,0x65,0x6d,0x61,0x70,0x70,0x69,0x6e,0x67,0xd9,0x40,7,0x1e,
+0x69,0x74,0x6c,0x65,0x63,0x61,0x73,0x65,0x6d,0x61,0x70,0x70,0x69,0x6e,0x67,0xd9,
+0x40,8,0x10,0x63,0xd9,0x40,7,0x62,0xc3,0x13,0x63,0x34,0x64,0x57,0x65,0x6e,
+0x66,0x10,0x63,0xd9,0x40,6,0xc2,0xa,2,0x66,0xd9,0x40,6,0x72,0x28,0x78,
+0xd9,0x70,0,0x12,0x69,0x70,0x74,0xc2,0xa,0x19,0x65,0x78,0x74,0x65,0x6e,0x73,
+0x69,0x6f,0x6e,0x73,0xd9,0x70,0,1,0x67,0x6a,0x6e,1,0x73,0x54,0x74,0x13,
+0x65,0x6e,0x63,0x65,1,0x62,0x34,0x74,0x16,0x65,0x72,0x6d,0x69,0x6e,0x61,0x6c,
+0x67,0x13,0x72,0x65,0x61,0x6b,0xc3,0x13,0x14,0x69,0x74,0x69,0x76,0x65,0x65,1,
+0x6d,0x2e,0x73,0x13,0x74,0x61,0x72,0x74,0x73,0x19,0x65,0x6e,0x74,0x73,0x74,0x61,
+0x72,0x74,0x65,0x72,0x73,3,0x63,0x66,0x65,0x72,0x69,0x98,0x72,0x19,0x61,0x69,
+0x6c,0x63,0x61,0x6e,0x6f,0x6e,0x69,0x63,0x1f,0x61,0x6c,0x63,0x6f,0x6d,0x62,0x69,
+0x6e,0x69,0x6e,0x67,0x63,0x6c,0x61,0x73,0x73,0xc3,0x11,0xd8,0x40,0xa,0x11,0x63,
+0x63,0xc3,0x11,0x11,0x72,0x6d,0x58,0x1e,0x69,0x6e,0x61,0x6c,0x70,0x75,0x6e,0x63,
+0x74,0x75,0x61,0x74,0x69,0x6f,0x6e,0x59,0x1d,0x74,0x6c,0x65,0x63,0x61,0x73,0x65,
+0x6d,0x61,0x70,0x70,0x69,0x6e,0x67,0xd9,0x40,0xa,0x6d,0x70,0x6e,0x76,0x70,0xa2,
+0xf1,0x71,0xa4,0x43,0x72,2,0x61,0x28,0x65,0x32,0x69,0x9d,0x14,0x64,0x69,0x63,
+0x61,0x6c,0x55,0x1e,0x67,0x69,0x6f,0x6e,0x61,0x6c,0x69,0x6e,0x64,0x69,0x63,0x61,
+0x74,0x6f,0x72,0x9d,0x12,0x61,0x74,0x68,0x4f,6,0x6f,0x39,0x6f,0x32,0x74,0xc3,
+9,0x75,0x54,0x76,0xd9,0x30,0,0x12,0x6e,0x63,0x68,0x1f,0x61,0x72,0x61,0x63,
+0x74,0x65,0x72,0x63,0x6f,0x64,0x65,0x70,0x6f,0x69,0x6e,0x74,0x51,0x14,0x6d,0x65,
+0x72,0x69,0x63,1,0x74,0x32,0x76,0x13,0x61,0x6c,0x75,0x65,0xd9,0x30,0,0x12,
+0x79,0x70,0x65,0xc3,9,0x61,0xa2,0x77,0x63,0xa2,0x82,0x66,2,0x63,0x98,0x64,
+0xa2,0x53,0x6b,1,0x63,0x56,0x64,1,0x69,0x42,0x71,1,0x63,0xc3,0xd,0x75,
+0x17,0x69,0x63,0x6b,0x63,0x68,0x65,0x63,0x6b,0xc3,0xd,0x13,0x6e,0x65,0x72,0x74,
+0x6d,1,0x69,0x42,0x71,1,0x63,0xc3,0xf,0x75,0x17,0x69,0x63,0x6b,0x63,0x68,
+0x65,0x63,0x6b,0xc3,0xf,0x13,0x6e,0x65,0x72,0x74,0x71,1,0x69,0x42,0x71,1,
+0x63,0xc3,0xe,0x75,0x17,0x69,0x63,0x6b,0x63,0x68,0x65,0x63,0x6b,0xc3,0xe,0x13,
+0x6e,0x65,0x72,0x74,0x6f,1,0x69,0x42,0x71,1,0x63,0xc3,0xc,0x75,0x17,0x69,
+0x63,0x6b,0x63,0x68,0x65,0x63,0x6b,0xc3,0xc,0x13,0x6e,0x65,0x72,0x74,0x6b,0xd8,
+0x40,5,1,0x31,0xd9,0x40,0xb,0x6d,0x10,0x65,0xd9,0x40,5,0x12,0x68,0x61,
+0x72,0x51,2,0x61,0x6c,0x63,0xa2,0x4c,0x72,1,0x65,0x2a,0x69,0x11,0x6e,0x74,
+0x7f,0x16,0x70,0x65,0x6e,0x64,0x65,0x64,0x63,0x1f,0x6f,0x6e,0x63,0x61,0x74,0x65,
+0x6e,0x61,0x74,0x69,0x6f,0x6e,0x6d,0x61,0x72,0x6b,0x9f,0x10,0x74,2,0x73,0x2c,
+0x74,0x30,0x77,0x10,0x73,0x77,0x11,0x79,0x6e,0x75,0x12,0x65,0x72,0x6e,1,0x73,
+0x38,0x77,0x18,0x68,0x69,0x74,0x65,0x73,0x70,0x61,0x63,0x65,0x77,0x14,0x79,0x6e,
+0x74,0x61,0x78,0x75,0x10,0x6d,0x9f,1,0x6d,0x3c,0x75,0x1a,0x6f,0x74,0x61,0x74,
+0x69,0x6f,0x6e,0x6d,0x61,0x72,0x6b,0x53,0x12,0x61,0x72,0x6b,0x53,0x66,0xc1,0xf8,
+0x69,0xc1,0x3c,0x69,0xa2,0x6f,0x6a,0xa4,9,0x6c,4,0x62,0xc3,8,0x63,0x8c,
+0x65,0x98,0x69,0xa2,0x56,0x6f,2,0x65,0x4b,0x67,0x4c,0x77,0x11,0x65,0x72,0x4c,
+0x13,0x63,0x61,0x73,0x65,0x4c,0x16,0x6d,0x61,0x70,0x70,0x69,0x6e,0x67,0xd9,0x40,
+4,0x11,0x69,0x63,0x1f,0x61,0x6c,0x6f,0x72,0x64,0x65,0x72,0x65,0x78,0x63,0x65,
+0x70,0x74,0x69,0x6f,0x6e,0x4b,0xd8,0x40,4,0x11,0x63,0x63,0xc3,0x10,0x18,0x61,
+0x64,0x63,0x61,0x6e,0x6f,0x6e,0x69,0x63,0x1f,0x61,0x6c,0x63,0x6f,0x6d,0x62,0x69,
+0x6e,0x69,0x6e,0x67,0x63,0x6c,0x61,0x73,0x73,0xc3,0x10,0x16,0x6e,0x65,0x62,0x72,
+0x65,0x61,0x6b,0xc3,8,2,0x64,0x4a,0x6e,0xa2,0x5b,0x73,1,0x63,0xd9,0x40,
+3,0x6f,0x16,0x63,0x6f,0x6d,0x6d,0x65,0x6e,0x74,0xd9,0x40,3,2,0x63,0x80,
+0x65,0x90,0x73,0x40,1,0x62,0x52,0x74,0x46,1,0x61,0x40,0x72,0x1c,0x69,0x6e,
+0x61,0x72,0x79,0x6f,0x70,0x65,0x72,0x61,0x74,0x6f,0x72,0x47,0x11,0x72,0x74,0x41,
+0x44,0x1c,0x69,0x6e,0x61,0x72,0x79,0x6f,0x70,0x65,0x72,0x61,0x74,0x6f,0x72,0x45,
+0x3e,0x16,0x6f,0x6e,0x74,0x69,0x6e,0x75,0x65,0x3f,0x10,0x6f,0x42,0x16,0x67,0x72,
+0x61,0x70,0x68,0x69,0x63,0x43,2,0x64,0x2e,0x70,0x86,0x73,0x10,0x63,0xc3,0x17,
+0x11,0x69,0x63,1,0x70,0x46,0x73,0x1e,0x79,0x6c,0x6c,0x61,0x62,0x69,0x63,0x63,
+0x61,0x74,0x65,0x67,0x6f,0x72,0x79,0xc3,0x17,0x10,0x6f,0x1f,0x73,0x69,0x74,0x69,
+0x6f,0x6e,0x61,0x6c,0x63,0x61,0x74,0x65,0x67,0x6f,0x72,0x79,0xc3,0x16,0x10,0x63,
+0xc3,0x16,2,0x67,0xc3,6,0x6f,0x26,0x74,0xc3,7,0x11,0x69,0x6e,1,0x63,
+0x4a,0x69,0x11,0x6e,0x67,1,0x67,0x2e,0x74,0x12,0x79,0x70,0x65,0xc3,7,0x13,
+0x72,0x6f,0x75,0x70,0xc3,6,0x48,0x15,0x6f,0x6e,0x74,0x72,0x6f,0x6c,0x49,0x66,
+0x86,0x67,0xa2,0x4a,0x68,3,0x61,0x36,0x65,0x58,0x73,0x68,0x79,0x13,0x70,0x68,
+0x65,0x6e,0x3d,0x1f,0x6e,0x67,0x75,0x6c,0x73,0x79,0x6c,0x6c,0x61,0x62,0x6c,0x65,
+0x74,0x79,0x70,0x65,0xc3,0xb,0x10,0x78,0x3a,0x14,0x64,0x69,0x67,0x69,0x74,0x3b,
+0x10,0x74,0xc3,0xb,0x16,0x75,0x6c,0x6c,0x63,0x6f,0x6d,0x70,0x1f,0x6f,0x73,0x69,
+0x74,0x69,0x6f,0x6e,0x65,0x78,0x63,0x6c,0x75,0x73,0x69,0x6f,0x6e,0x33,2,0x63,
+0xa2,0x44,0x65,0xa2,0x4b,0x72,3,0x61,0x34,0x62,0x84,0x65,0x8a,0x6c,0x12,0x69,
+0x6e,0x6b,0x39,0x11,0x70,0x68,0x7c,0x12,0x65,0x6d,0x65,3,0x62,0x5e,0x63,0x30,
+0x65,0x48,0x6c,0x12,0x69,0x6e,0x6b,0x39,0x1a,0x6c,0x75,0x73,0x74,0x65,0x72,0x62,
+0x72,0x65,0x61,0x6b,0xc3,0x12,0x14,0x78,0x74,0x65,0x6e,0x64,0x37,0x12,0x61,0x73,
+0x65,0x35,0x11,0x78,0x74,0x37,0xc2,5,1,0x62,0xc3,0x12,0x6d,0xd9,0x20,0,
+0x1c,0x6e,0x65,0x72,0x61,0x6c,0x63,0x61,0x74,0x65,0x67,0x6f,0x72,0x79,0xc2,5,
+0x13,0x6d,0x61,0x73,0x6b,0xd9,0x20,0,0x61,0xa2,0x90,0x62,0xa2,0xbe,0x63,0xa4,
+0x30,0x64,0xa4,0xfd,0x65,5,0x6d,0x63,0x6d,0x6e,0x70,0xa2,0x59,0x78,0x10,0x74,
+0x30,1,0x65,0x2c,0x70,0x12,0x69,0x63,0x74,0xa1,0x12,0x6e,0x64,0x65,1,0x64,
+0x24,0x72,0x31,0x1b,0x70,0x69,0x63,0x74,0x6f,0x67,0x72,0x61,0x70,0x68,0x69,0x63,
+0xa1,0x10,0x6f,1,0x64,0x97,0x6a,0x10,0x69,0x92,2,0x63,0x40,0x6d,0x50,0x70,
+0x1a,0x72,0x65,0x73,0x65,0x6e,0x74,0x61,0x74,0x69,0x6f,0x6e,0x95,0x17,0x6f,0x6d,
+0x70,0x6f,0x6e,0x65,0x6e,0x74,0x9b,0x16,0x6f,0x64,0x69,0x66,0x69,0x65,0x72,0x96,
+0x13,0x62,0x61,0x73,0x65,0x99,0x12,0x72,0x65,0x73,0x95,0x61,0x30,0x62,0x4e,0x63,
+0x12,0x6f,0x6d,0x70,0x9b,0xc2,4,0x1b,0x73,0x74,0x61,0x73,0x69,0x61,0x6e,0x77,
+0x69,0x64,0x74,0x68,0xc3,4,0x12,0x61,0x73,0x65,0x99,3,0x67,0x44,0x68,0x4a,
+0x6c,0x4e,0x73,0x1a,0x63,0x69,0x69,0x68,0x65,0x78,0x64,0x69,0x67,0x69,0x74,0x23,
+0x10,0x65,0xd9,0x40,0,0x11,0x65,0x78,0x23,1,0x6e,0x38,0x70,0x11,0x68,0x61,
+0x20,0x14,0x62,0x65,0x74,0x69,0x63,0x21,0x11,0x75,0x6d,0x79,4,0x63,0xc3,0,
+0x69,0x3e,0x6c,0xa2,0x57,0x6d,0xa2,0x64,0x70,1,0x62,0xd9,0x40,0xd,0x74,0xc3,
+0x15,0x11,0x64,0x69,2,0x63,0x54,0x6d,0x74,0x70,0x1b,0x61,0x69,0x72,0x65,0x64,
+0x62,0x72,0x61,0x63,0x6b,0x65,0x74,0xd8,0x40,0xd,0x13,0x74,0x79,0x70,0x65,0xc3,
+0x15,0x24,1,0x6c,0x30,0x6f,0x14,0x6e,0x74,0x72,0x6f,0x6c,0x25,0x12,0x61,0x73,
+0x73,0xc3,0,0x26,0x14,0x69,0x72,0x72,0x6f,0x72,1,0x65,0x38,0x69,0x16,0x6e,
+0x67,0x67,0x6c,0x79,0x70,0x68,0xd9,0x40,1,0x10,0x64,0x27,2,0x61,0x32,0x6b,
+0xc3,1,0x6f,0x11,0x63,0x6b,0xc3,1,0x11,0x6e,0x6b,0x7b,0x10,0x67,0xd9,0x40,
+1,6,0x68,0x7c,0x68,0x54,0x69,0x85,0x6f,0xa2,0x6f,0x77,4,0x63,0x30,0x6b,
+0x36,0x6c,0x87,0x74,0x8b,0x75,0x89,1,0x66,0x8d,0x6d,0x8f,0x11,0x63,0x66,0x91,
+0x18,0x61,0x6e,0x67,0x65,0x73,0x77,0x68,0x65,0x6e,4,0x63,0x44,0x6c,0x6c,0x6e,
+0x7e,0x74,0x98,0x75,0x18,0x70,0x70,0x65,0x72,0x63,0x61,0x73,0x65,0x64,0x89,0x12,
+0x61,0x73,0x65,1,0x66,0x30,0x6d,0x14,0x61,0x70,0x70,0x65,0x64,0x8f,0x14,0x6f,
+0x6c,0x64,0x65,0x64,0x8d,0x18,0x6f,0x77,0x65,0x72,0x63,0x61,0x73,0x65,0x64,0x87,
+0x1c,0x66,0x6b,0x63,0x63,0x61,0x73,0x65,0x66,0x6f,0x6c,0x64,0x65,0x64,0x91,0x18,
+0x69,0x74,0x6c,0x65,0x63,0x61,0x73,0x65,0x64,0x8b,0x13,0x6d,0x70,0x65,0x78,0x33,
+0x61,0x2e,0x63,0xa2,0x48,0x66,0xd9,0x40,2,1,0x6e,0x72,0x73,0x10,0x65,3,
+0x64,0x83,0x66,0x3a,0x69,0x4a,0x73,0x17,0x65,0x6e,0x73,0x69,0x74,0x69,0x76,0x65,
+0x65,0x15,0x6f,0x6c,0x64,0x69,0x6e,0x67,0xd9,0x40,2,0x17,0x67,0x6e,0x6f,0x72,
+0x61,0x62,0x6c,0x65,0x85,0x13,0x6f,0x6e,0x69,0x63,0x1f,0x61,0x6c,0x63,0x6f,0x6d,
+0x62,0x69,0x6e,0x69,0x6e,0x67,0x63,0x6c,0x61,0x73,0x73,0xc3,2,0x10,0x63,0xc3,
+2,3,0x61,0x30,0x65,0x34,0x69,0xa2,0x41,0x74,0xc3,3,0x11,0x73,0x68,0x29,
+2,0x63,0x3a,0x66,0x58,0x70,0x2c,0x16,0x72,0x65,0x63,0x61,0x74,0x65,0x64,0x2d,
+0x1d,0x6f,0x6d,0x70,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x74,0x79,0x70,0x65,0xc3,
+3,0x15,0x61,0x75,0x6c,0x74,0x69,0x67,0x1f,0x6e,0x6f,0x72,0x61,0x62,0x6c,0x65,
+0x63,0x6f,0x64,0x65,0x70,0x6f,0x69,0x6e,0x74,0x2b,0x2a,0x10,0x61,0x2e,0x15,0x63,
+0x72,0x69,0x74,0x69,0x63,0x2f,3,0x66,0x34,0x6e,0x3e,0x74,0x42,0x79,0x22,0x11,
+0x65,0x73,0x23,0x20,0x13,0x61,0x6c,0x73,0x65,0x21,0x20,0x10,0x6f,0x21,0x22,0x12,
+0x72,0x75,0x65,0x23,0xa,0x6b,0x5b,0x6f,0x23,0x6f,0x3c,0x72,0x4c,0x76,1,0x69,
+0x24,0x72,0x33,0x13,0x72,0x61,0x6d,0x61,0x33,0x10,0x76,0x22,0x14,0x65,0x72,0x6c,
+0x61,0x79,0x23,0xa2,0xe2,0x13,0x69,0x67,0x68,0x74,0xa3,0xe2,0x6b,0x58,0x6c,0x74,
+0x6e,3,0x6b,0x2f,0x6f,0x30,0x72,0x21,0x75,0x12,0x6b,0x74,0x61,0x2f,0x19,0x74,
+0x72,0x65,0x6f,0x72,0x64,0x65,0x72,0x65,0x64,0x21,1,0x61,0x24,0x76,0x31,0x18,
+0x6e,0x61,0x76,0x6f,0x69,0x63,0x69,0x6e,0x67,0x31,0xa2,0xe0,0x12,0x65,0x66,0x74,
+0xa3,0xe0,0x61,0x5c,0x62,0xa2,0x77,0x63,0xa2,0x96,0x64,0xa4,0xa,0x69,1,0x6f,
+0x26,0x73,0xa3,0xf0,0x1a,0x74,0x61,0x73,0x75,0x62,0x73,0x63,0x72,0x69,0x70,0x74,
+0xa3,0xf0,0xa2,0xe6,3,0x62,0xa0,0x6c,0xa3,0xe4,0x72,0xa3,0xe8,0x74,2,0x61,
+0x74,0x62,0x7c,0x74,0x14,0x61,0x63,0x68,0x65,0x64,1,0x61,0x3e,0x62,0x13,0x65,
+0x6c,0x6f,0x77,0xa2,0xca,0x13,0x6c,0x65,0x66,0x74,0xa3,0xc8,0x13,0x62,0x6f,0x76,
+0x65,0xa2,0xd6,0x14,0x72,0x69,0x67,0x68,0x74,0xa3,0xd8,0xa2,0xd6,0x10,0x72,0xa3,
+0xd8,0xa2,0xca,0x10,0x6c,0xa3,0xc8,0x12,0x6f,0x76,0x65,0xa2,0xe6,1,0x6c,0x30,
+0x72,0x13,0x69,0x67,0x68,0x74,0xa3,0xe8,0x12,0x65,0x66,0x74,0xa3,0xe4,0xa2,0xdc,
+2,0x65,0x2c,0x6c,0xa3,0xda,0x72,0xa3,0xde,0x12,0x6c,0x6f,0x77,0xa2,0xdc,1,
+0x6c,0x30,0x72,0x13,0x69,0x67,0x68,0x74,0xa3,0xde,0x12,0x65,0x66,0x74,0xa3,0xda,
+0x11,0x63,0x63,4,0x31,0x3c,0x32,0xa2,0x42,0x33,0xa2,0x56,0x38,0xa2,0x64,0x39,
+0x10,0x31,0xa3,0x5b,9,0x35,0xa,0x35,0x3f,0x36,0x41,0x37,0x43,0x38,0x45,0x39,
+0x47,0x30,0x30,0x31,0x3c,0x32,0x42,0x33,0x4e,0x34,0x3d,0x34,1,0x33,0xa3,0x67,
+0x37,0xa3,0x6b,0x36,0x10,0x38,0xa3,0x76,0x38,1,0x32,0xa3,0x7a,0x39,0xa3,0x81,
+0x3a,2,0x30,0xa3,0x82,0x32,0xa3,0x84,0x33,0xa3,0x85,9,0x35,0xa,0x35,0x53,
+0x36,0x55,0x37,0x57,0x38,0x59,0x39,0x5b,0x30,0x49,0x31,0x4b,0x32,0x4d,0x33,0x4f,
+0x34,0x51,6,0x33,8,0x33,0x63,0x34,0x65,0x35,0x67,0x36,0x69,0x30,0x5d,0x31,
+0x5f,0x32,0x61,0x10,0x34,0xa3,0x54,2,0x61,0xa3,0xea,0x62,0xa3,0xe9,0x6f,0x13,
+0x75,0x62,0x6c,0x65,1,0x61,0x30,0x62,0x13,0x65,0x6c,0x6f,0x77,0xa3,0xe9,0x13,
+0x62,0x6f,0x76,0x65,0xa3,0xea,0xb,0x6e,0xc0,0xca,0x72,0x5f,0x72,0x46,0x73,0xa2,
+0x48,0x77,1,0x68,0x24,0x73,0x33,0x17,0x69,0x74,0x65,0x73,0x70,0x61,0x63,0x65,
+0x33,0x22,1,0x69,0x30,0x6c,2,0x65,0x3d,0x69,0x4b,0x6f,0x3f,0x18,0x67,0x68,
+0x74,0x74,0x6f,0x6c,0x65,0x66,0x74,0x22,2,0x65,0x38,0x69,0x48,0x6f,0x16,0x76,
+0x65,0x72,0x72,0x69,0x64,0x65,0x3f,0x17,0x6d,0x62,0x65,0x64,0x64,0x69,0x6e,0x67,
+0x3d,0x15,0x73,0x6f,0x6c,0x61,0x74,0x65,0x4b,0x30,0x1e,0x65,0x67,0x6d,0x65,0x6e,
+0x74,0x73,0x65,0x70,0x61,0x72,0x61,0x74,0x6f,0x72,0x31,0x6e,0xa2,0x41,0x6f,0xa2,
+0x53,0x70,2,0x61,0x66,0x64,0x86,0x6f,0x1b,0x70,0x64,0x69,0x72,0x65,0x63,0x74,
+0x69,0x6f,0x6e,0x61,0x6c,1,0x66,0x32,0x69,0x15,0x73,0x6f,0x6c,0x61,0x74,0x65,
+0x4d,0x14,0x6f,0x72,0x6d,0x61,0x74,0x41,0x1f,0x72,0x61,0x67,0x72,0x61,0x70,0x68,
+0x73,0x65,0x70,0x61,0x72,0x61,0x74,0x6f,0x72,0x2f,1,0x66,0x41,0x69,0x4d,1,
+0x6f,0x28,0x73,0x10,0x6d,0x43,0x1b,0x6e,0x73,0x70,0x61,0x63,0x69,0x6e,0x67,0x6d,
+0x61,0x72,0x6b,0x43,1,0x6e,0x35,0x74,0x19,0x68,0x65,0x72,0x6e,0x65,0x75,0x74,
+0x72,0x61,0x6c,0x35,0x65,0x88,0x65,0x98,0x66,0xa2,0x6a,0x6c,0x20,1,0x65,0x30,
+0x72,2,0x65,0x37,0x69,0x49,0x6f,0x39,0x18,0x66,0x74,0x74,0x6f,0x72,0x69,0x67,
+0x68,0x74,0x20,2,0x65,0x38,0x69,0x48,0x6f,0x16,0x76,0x65,0x72,0x72,0x69,0x64,
+0x65,0x39,0x17,0x6d,0x62,0x65,0x64,0x64,0x69,0x6e,0x67,0x37,0x15,0x73,0x6f,0x6c,
+0x61,0x74,0x65,0x49,3,0x6e,0x25,0x73,0x27,0x74,0x29,0x75,0x15,0x72,0x6f,0x70,
+0x65,0x61,0x6e,2,0x6e,0x3c,0x73,0x46,0x74,0x18,0x65,0x72,0x6d,0x69,0x6e,0x61,
+0x74,0x6f,0x72,0x29,0x14,0x75,0x6d,0x62,0x65,0x72,0x25,0x17,0x65,0x70,0x61,0x72,
+0x61,0x74,0x6f,0x72,0x27,1,0x69,0x28,0x73,0x10,0x69,0x47,0x1f,0x72,0x73,0x74,
+0x73,0x74,0x72,0x6f,0x6e,0x67,0x69,0x73,0x6f,0x6c,0x61,0x74,0x65,0x47,0x61,0x4e,
+0x62,0x84,0x63,1,0x6f,0x24,0x73,0x2d,0x1c,0x6d,0x6d,0x6f,0x6e,0x73,0x65,0x70,
+0x61,0x72,0x61,0x74,0x6f,0x72,0x2d,2,0x6c,0x3b,0x6e,0x2b,0x72,0x13,0x61,0x62,
+0x69,0x63,1,0x6c,0x30,0x6e,0x14,0x75,0x6d,0x62,0x65,0x72,0x2b,0x14,0x65,0x74,
+0x74,0x65,0x72,0x3b,0x2e,1,0x6e,0x45,0x6f,0x1c,0x75,0x6e,0x64,0x61,0x72,0x79,
+0x6e,0x65,0x75,0x74,0x72,0x61,0x6c,0x45,0,0x16,0x6d,0xc7,0xfe,0x74,0xc1,0xb8,
+0x77,0x57,0x77,0x48,0x79,0x5c,0x7a,0x1d,0x61,0x6e,0x61,0x62,0x61,0x7a,0x61,0x72,
+0x73,0x71,0x75,0x61,0x72,0x65,0xa5,0x18,0x18,0x61,0x72,0x61,0x6e,0x67,0x63,0x69,
+0x74,0x69,0xa3,0xfc,0x10,0x69,2,0x6a,0x3c,0x72,0x68,0x73,0x17,0x79,0x6c,0x6c,
+0x61,0x62,0x6c,0x65,0x73,0xa3,0x48,0x12,0x69,0x6e,0x67,0xa2,0x74,0x1e,0x68,0x65,
+0x78,0x61,0x67,0x72,0x61,0x6d,0x73,0x79,0x6d,0x62,0x6f,0x6c,0x73,0xa3,0x74,0x16,
+0x61,0x64,0x69,0x63,0x61,0x6c,0x73,0xa3,0x49,0x74,0xa2,0x59,0x75,0xa4,0x12,0x76,
+2,0x61,0x36,0x65,0x7a,0x73,0xa2,0x6c,0x12,0x73,0x75,0x70,0xa3,0x7d,1,0x69,
+0xa3,0x9f,0x72,0x1e,0x69,0x61,0x74,0x69,0x6f,0x6e,0x73,0x65,0x6c,0x65,0x63,0x74,
+0x6f,0x72,0x73,0xa2,0x6c,0x19,0x73,0x75,0x70,0x70,0x6c,0x65,0x6d,0x65,0x6e,0x74,
+0xa3,0x7d,1,0x64,0x3c,0x72,0x19,0x74,0x69,0x63,0x61,0x6c,0x66,0x6f,0x72,0x6d,
+0x73,0xa3,0x91,0x14,0x69,0x63,0x65,0x78,0x74,0xa2,0xaf,0x16,0x65,0x6e,0x73,0x69,
+0x6f,0x6e,0x73,0xa3,0xaf,4,0x61,0x68,0x65,0xa2,0x8a,0x68,0xa2,0x8d,0x69,0xa2,
+0x95,0x72,0x1c,0x61,0x6e,0x73,0x70,0x6f,0x72,0x74,0x61,0x6e,0x64,0x6d,0x61,0x70,
+0xa2,0xcf,0x16,0x73,0x79,0x6d,0x62,0x6f,0x6c,0x73,0xa3,0xcf,4,0x67,0x58,0x69,
+0x7e,0x6b,0xa2,0x58,0x6d,0xa2,0x5a,0x6e,0x12,0x67,0x75,0x74,0xa4,0x10,0x19,0x63,
+0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x73,0xa5,0x11,2,0x61,0x2a,0x62,0x32,
+0x73,0xa3,0x60,0x12,0x6c,0x6f,0x67,0xa3,0x62,0x13,0x61,0x6e,0x77,0x61,0xa3,0x65,
+3,0x6c,0x52,0x74,0x56,0x76,0x5e,0x78,0x16,0x75,0x61,0x6e,0x6a,0x69,0x6e,0x67,
+0xa2,0x7c,0x16,0x73,0x79,0x6d,0x62,0x6f,0x6c,0x73,0xa3,0x7c,0x10,0x65,0xa3,0x70,
+0x12,0x68,0x61,0x6d,0xa3,0xae,0x12,0x69,0x65,0x74,0xa3,0xb7,0x11,0x72,0x69,0xa3,
+0xdc,0x11,0x69,0x6c,0x49,0x13,0x6c,0x75,0x67,0x75,0x4b,0x10,0x61,1,0x61,0x24,
+0x69,0x53,0x11,0x6e,0x61,0x3d,2,0x62,0x34,0x66,0x3c,0x72,0x13,0x68,0x75,0x74,
+0x61,0xa3,0xfb,0x13,0x65,0x74,0x61,0x6e,0x57,0x14,0x69,0x6e,0x61,0x67,0x68,0xa3,
+0x90,2,0x63,0x82,0x67,0x92,0x6e,0x1f,0x69,0x66,0x69,0x65,0x64,0x63,0x61,0x6e,
+0x61,0x64,0x69,0x61,0x6e,0x61,0x62,0x6f,0x1f,0x72,0x69,0x67,0x69,0x6e,0x61,0x6c,
+0x73,0x79,0x6c,0x6c,0x61,0x62,0x69,0x63,0x73,0x62,0x17,0x65,0x78,0x74,0x65,0x6e,
+0x64,0x65,0x64,0xa3,0xad,0x11,0x61,0x73,0x62,0x12,0x65,0x78,0x74,0xa3,0xad,0x15,
+0x61,0x72,0x69,0x74,0x69,0x63,0xa3,0x78,0x70,0xc2,0xf5,0x70,0xa6,0xb,0x72,0xa6,
+0xc7,0x73,7,0x6f,0xc1,0x7f,0x6f,0x76,0x70,0xa2,0x47,0x75,0xa2,0x66,0x79,1,
+0x6c,0x4c,0x72,0x12,0x69,0x61,0x63,0x3a,0x12,0x73,0x75,0x70,0xa4,0x17,0x16,0x70,
+0x6c,0x65,0x6d,0x65,0x6e,0x74,0xa5,0x17,0x17,0x6f,0x74,0x69,0x6e,0x61,0x67,0x72,
+0x69,0xa3,0x8f,2,0x67,0x34,0x72,0x3e,0x79,0x13,0x6f,0x6d,0x62,0x6f,0xa5,0x16,
+0x13,0x64,0x69,0x61,0x6e,0xa5,0x23,0x17,0x61,0x73,0x6f,0x6d,0x70,0x65,0x6e,0x67,
+0xa3,0xda,1,0x61,0x32,0x65,0x14,0x63,0x69,0x61,0x6c,0x73,0xa3,0x56,0x12,0x63,
+0x69,0x6e,0x1f,0x67,0x6d,0x6f,0x64,0x69,0x66,0x69,0x65,0x72,0x6c,0x65,0x74,0x74,
+0x65,0x72,0x73,0x2d,2,0x6e,0x48,0x70,0x76,0x74,0x1d,0x74,0x6f,0x6e,0x73,0x69,
+0x67,0x6e,0x77,0x72,0x69,0x74,0x69,0x6e,0x67,0xa5,6,0x15,0x64,0x61,0x6e,0x65,
+0x73,0x65,0xa2,0x9b,0x12,0x73,0x75,0x70,0xa2,0xdb,0x16,0x70,0x6c,0x65,0x6d,0x65,
+0x6e,0x74,0xa3,0xdb,4,0x61,0xa2,0xa8,0x65,0x5c,0x6d,0x9e,0x70,0xa2,0x4b,0x73,
+0x13,0x79,0x6d,0x62,0x6f,0x1f,0x6c,0x73,0x61,0x6e,0x64,0x70,0x69,0x63,0x74,0x6f,
+0x67,0x72,0x61,0x70,0x68,0x73,0xa5,5,0x10,0x72,1,0x61,0x4e,0x73,0x12,0x63,
+0x72,0x69,0x1f,0x70,0x74,0x73,0x61,0x6e,0x64,0x73,0x75,0x62,0x73,0x63,0x72,0x69,
+0x70,0x74,0x73,0x73,0x14,0x6e,0x64,0x73,0x75,0x62,0x73,0x1b,0x61,0x74,0x68,0x6f,
+0x70,0x65,0x72,0x61,0x74,0x6f,0x72,0x73,0xa3,0x6a,1,0x6c,0x40,0x75,1,0x61,
+0x6e,0x6e,0x17,0x63,0x74,0x75,0x61,0x74,0x69,0x6f,0x6e,0xa3,0x8e,0x15,0x65,0x6d,
+0x65,0x6e,0x74,0x61,1,0x6c,0x50,0x72,0x1e,0x79,0x70,0x72,0x69,0x76,0x61,0x74,
+0x65,0x75,0x73,0x65,0x61,0x72,0x65,0x61,1,0x61,0xa3,0x6d,0x62,0xa3,0x6e,3,
+0x61,0x5c,0x6d,0x78,0x70,0xa2,0x41,0x73,0x13,0x79,0x6d,0x62,0x6f,0x1f,0x6c,0x73,
+0x61,0x6e,0x64,0x70,0x69,0x63,0x74,0x6f,0x67,0x72,0x61,0x70,0x68,0x73,0xa5,5,
+0x14,0x72,0x72,0x6f,0x77,0x73,2,0x61,0xa3,0x67,0x62,0xa3,0x68,0x63,0xa3,0xfa,
+0x13,0x61,0x74,0x68,0x65,0x1f,0x6d,0x61,0x74,0x69,0x63,0x61,0x6c,0x6f,0x70,0x65,
+0x72,0x61,0x74,0x6f,0x72,0x73,0xa3,0x6a,0x19,0x75,0x6e,0x63,0x74,0x75,0x61,0x74,
+0x69,0x6f,0x6e,0xa3,0x8e,0x61,0x5a,0x68,0x84,0x69,0xa2,0x5b,0x6d,0x16,0x61,0x6c,
+0x6c,0x66,0x6f,0x72,0x6d,1,0x73,0xa3,0x54,0x76,0x16,0x61,0x72,0x69,0x61,0x6e,
+0x74,0x73,0xa3,0x54,1,0x6d,0x36,0x75,0x16,0x72,0x61,0x73,0x68,0x74,0x72,0x61,
+0xa3,0xa1,0x15,0x61,0x72,0x69,0x74,0x61,0x6e,0xa3,0xac,1,0x61,0x52,0x6f,0x13,
+0x72,0x74,0x68,0x61,0x1f,0x6e,0x64,0x66,0x6f,0x72,0x6d,0x61,0x74,0x63,0x6f,0x6e,
+0x74,0x72,0x6f,0x6c,0x73,0xa3,0xf7,1,0x72,0x2e,0x76,0x12,0x69,0x61,0x6e,0xa3,
+0x79,0x12,0x61,0x64,0x61,0xa3,0xd9,1,0x64,0x50,0x6e,0x13,0x68,0x61,0x6c,0x61,
+0x50,0x1d,0x61,0x72,0x63,0x68,0x61,0x69,0x63,0x6e,0x75,0x6d,0x62,0x65,0x72,0x73,
+0xa3,0xf9,0x13,0x64,0x68,0x61,0x6d,0xa3,0xf8,5,0x72,0x35,0x72,0x44,0x73,0x64,
+0x75,1,0x61,0xa3,0x4e,0x6e,0x17,0x63,0x74,0x75,0x61,0x74,0x69,0x6f,0x6e,0x71,
+0x17,0x69,0x76,0x61,0x74,0x65,0x75,0x73,0x65,0xa2,0x4e,0x13,0x61,0x72,0x65,0x61,
+0xa3,0x4e,0x1b,0x61,0x6c,0x74,0x65,0x72,0x70,0x61,0x68,0x6c,0x61,0x76,0x69,0xa3,
+0xf6,0x61,0x40,0x68,0x82,0x6c,0x19,0x61,0x79,0x69,0x6e,0x67,0x63,0x61,0x72,0x64,
+0x73,0xa3,0xcc,2,0x68,0x38,0x6c,0x4a,0x75,0x15,0x63,0x69,0x6e,0x68,0x61,0x75,
+0xa3,0xf5,0x17,0x61,0x77,0x68,0x68,0x6d,0x6f,0x6e,0x67,0xa3,0xf3,0x15,0x6d,0x79,
+0x72,0x65,0x6e,0x65,0xa3,0xf4,1,0x61,0x8e,0x6f,1,0x65,0x74,0x6e,0x16,0x65,
+0x74,0x69,0x63,0x65,0x78,0x74,0xa2,0x72,1,0x65,0x2c,0x73,0x11,0x75,0x70,0xa3,
+0x8d,0x15,0x6e,0x73,0x69,0x6f,0x6e,0x73,0xa2,0x72,0x19,0x73,0x75,0x70,0x70,0x6c,
+0x65,0x6d,0x65,0x6e,0x74,0xa3,0x8d,0x15,0x6e,0x69,0x63,0x69,0x61,0x6e,0xa3,0x97,
+1,0x67,0x3e,0x69,0x13,0x73,0x74,0x6f,0x73,0xa2,0xa6,0x13,0x64,0x69,0x73,0x63,
+0xa3,0xa6,0x12,0x73,0x70,0x61,0xa3,0x96,1,0x65,0x5c,0x75,1,0x6d,0x2a,0x6e,
+0x11,0x69,0x63,0x67,0x10,0x69,0xa2,0xc0,0x1d,0x6e,0x75,0x6d,0x65,0x72,0x61,0x6c,
+0x73,0x79,0x6d,0x62,0x6f,0x6c,0x73,0xa3,0xc0,0x13,0x6a,0x61,0x6e,0x67,0xa3,0xa3,
+0x6d,0xa2,0xce,0x6e,0xa8,1,0x6f,5,0x70,0x4b,0x70,0x46,0x72,0x7a,0x73,1,
+0x61,0x30,0x6d,0x13,0x61,0x6e,0x79,0x61,0xa3,0x7a,0x11,0x67,0x65,0xa5,0xf,0x18,
+0x74,0x69,0x63,0x61,0x6c,0x63,0x68,0x61,0x72,0x1f,0x61,0x63,0x74,0x65,0x72,0x72,
+0x65,0x63,0x6f,0x67,0x6e,0x69,0x74,0x69,0x6f,0x6e,0x85,1,0x69,0x46,0x6e,0x1e,
+0x61,0x6d,0x65,0x6e,0x74,0x61,0x6c,0x64,0x69,0x6e,0x67,0x62,0x61,0x74,0x73,0xa3,
+0xf2,0x11,0x79,0x61,0x47,0x63,0xa2,0x71,0x67,0xa2,0x71,0x6c,1,0x63,0xa2,0x62,
+0x64,5,0x70,0x38,0x70,0x36,0x73,0x56,0x74,0x14,0x75,0x72,0x6b,0x69,0x63,0xa3,
+0xbf,0x11,0x65,0x72,1,0x6d,0x2e,0x73,0x12,0x69,0x61,0x6e,0xa3,0x8c,0x11,0x69,
+0x63,0xa3,0xf1,0x10,0x6f,1,0x67,0x3a,0x75,0x18,0x74,0x68,0x61,0x72,0x61,0x62,
+0x69,0x61,0x6e,0xa3,0xbb,0x13,0x64,0x69,0x61,0x6e,0xa5,0x22,0x68,0x42,0x69,0x54,
+0x6e,0x1a,0x6f,0x72,0x74,0x68,0x61,0x72,0x61,0x62,0x69,0x61,0x6e,0xa3,0xf0,0x17,
+0x75,0x6e,0x67,0x61,0x72,0x69,0x61,0x6e,0xa5,4,0x14,0x74,0x61,0x6c,0x69,0x63,
+0xa3,0x58,0x13,0x68,0x69,0x6b,0x69,0xa3,0x9d,0x10,0x72,0x85,0x12,0x68,0x61,0x6d,
+0x65,6,0x6f,0x86,0x6f,0x6c,0x72,0xa2,0x61,0x75,0xa2,0x62,0x79,0x14,0x61,0x6e,
+0x6d,0x61,0x72,0x58,0x12,0x65,0x78,0x74,2,0x61,0xa3,0xb6,0x62,0xa3,0xee,0x65,
+0x13,0x6e,0x64,0x65,0x64,1,0x61,0xa3,0xb6,0x62,0xa3,0xee,1,0x64,0x52,0x6e,
+0x15,0x67,0x6f,0x6c,0x69,0x61,0x6e,0x6a,0x12,0x73,0x75,0x70,0xa4,0xd,0x16,0x70,
+0x6c,0x65,0x6d,0x65,0x6e,0x74,0xa5,0xd,0x10,0x69,0xa2,0xec,0x13,0x66,0x69,0x65,
+0x72,1,0x6c,0x3c,0x74,0x19,0x6f,0x6e,0x65,0x6c,0x65,0x74,0x74,0x65,0x72,0x73,
+0xa3,0x8a,0x15,0x65,0x74,0x74,0x65,0x72,0x73,0x2d,0x10,0x6f,0xa3,0xed,1,0x6c,
+0x44,0x73,0x11,0x69,0x63,0xa2,0x5c,0x18,0x61,0x6c,0x73,0x79,0x6d,0x62,0x6f,0x6c,
+0x73,0xa3,0x5c,0x13,0x74,0x61,0x6e,0x69,0xa5,3,0x61,0xa2,0x9b,0x65,0xa4,0x4c,
+0x69,1,0x61,0xa2,0x8f,0x73,0x10,0x63,5,0x70,0x18,0x70,0xa2,0x71,0x73,0x36,
+0x74,0x17,0x65,0x63,0x68,0x6e,0x69,0x63,0x61,0x6c,0x81,0x15,0x79,0x6d,0x62,0x6f,
+0x6c,0x73,0x8f,0x61,0xa2,0x66,0x65,0x46,0x6d,0x19,0x61,0x74,0x68,0x73,0x79,0x6d,
+0x62,0x6f,0x6c,0x73,1,0x61,0xa3,0x66,0x62,0xa3,0x69,0x17,0x6c,0x6c,0x61,0x6e,
+0x65,0x6f,0x75,0x73,2,0x6d,0x3a,0x73,0x6c,0x74,0x17,0x65,0x63,0x68,0x6e,0x69,
+0x63,0x61,0x6c,0x81,0x11,0x61,0x74,0x1f,0x68,0x65,0x6d,0x61,0x74,0x69,0x63,0x61,
+0x6c,0x73,0x79,0x6d,0x62,0x6f,0x6c,0x73,1,0x61,0xa3,0x66,0x62,0xa3,0x69,0x15,
+0x79,0x6d,0x62,0x6f,0x6c,0x73,0x8e,0x12,0x61,0x6e,0x64,1,0x61,0x3c,0x70,0x19,
+0x69,0x63,0x74,0x6f,0x67,0x72,0x61,0x70,0x68,0x73,0xa3,0xcd,0x14,0x72,0x72,0x6f,
+0x77,0x73,0xa3,0x73,0x10,0x6f,0xa3,0xd8,7,0x72,0x6f,0x72,0x44,0x73,0x4e,0x74,
+0x62,0x79,0x19,0x61,0x6e,0x6e,0x75,0x6d,0x65,0x72,0x61,0x6c,0x73,0xa5,0x20,0x13,
+0x63,0x68,0x65,0x6e,0xa5,0xc,0x18,0x61,0x72,0x61,0x6d,0x67,0x6f,0x6e,0x64,0x69,
+0xa5,0x14,0x10,0x68,2,0x61,0x3a,0x65,0x4a,0x6f,0x17,0x70,0x65,0x72,0x61,0x74,
+0x6f,0x72,0x73,0x7f,0x16,0x6c,0x70,0x68,0x61,0x6e,0x75,0x6d,0xa3,0x5d,0x16,0x6d,
+0x61,0x74,0x69,0x63,0x61,0x6c,1,0x61,0x36,0x6f,0x17,0x70,0x65,0x72,0x61,0x74,
+0x6f,0x72,0x73,0x7f,0x11,0x6c,0x70,0x1f,0x68,0x61,0x6e,0x75,0x6d,0x65,0x72,0x69,
+0x63,0x73,0x79,0x6d,0x62,0x6f,0x6c,0x73,0xa3,0x5d,0x68,0x50,0x6b,0x7e,0x6c,0x88,
+0x6e,1,0x64,0x34,0x69,0x15,0x63,0x68,0x61,0x65,0x61,0x6e,0xa3,0xea,0x12,0x61,
+0x69,0x63,0xa3,0xc6,1,0x61,0x3e,0x6a,0x12,0x6f,0x6e,0x67,0xa2,0xaa,0x14,0x74,
+0x69,0x6c,0x65,0x73,0xa3,0xaa,0x13,0x6a,0x61,0x6e,0x69,0xa3,0xe9,0x13,0x61,0x73,
+0x61,0x72,0xa5,0x1f,0x15,0x61,0x79,0x61,0x6c,0x61,0x6d,0x4f,3,0x64,0x6c,0x65,
+0x7e,0x6e,0xa2,0x47,0x72,0x14,0x6f,0x69,0x74,0x69,0x63,1,0x63,0x3c,0x68,0x19,
+0x69,0x65,0x72,0x6f,0x67,0x6c,0x79,0x70,0x68,0x73,0xa3,0xd7,0x15,0x75,0x72,0x73,
+0x69,0x76,0x65,0xa3,0xd6,0x17,0x65,0x66,0x61,0x69,0x64,0x72,0x69,0x6e,0xa5,0x21,
+0x17,0x74,0x65,0x69,0x6d,0x61,0x79,0x65,0x6b,0xa2,0xb8,0x12,0x65,0x78,0x74,0xa2,
+0xd5,0x16,0x65,0x6e,0x73,0x69,0x6f,0x6e,0x73,0xa3,0xd5,0x18,0x64,0x65,0x6b,0x69,
+0x6b,0x61,0x6b,0x75,0x69,0xa3,0xeb,5,0x6b,0x23,0x6b,0x4c,0x6f,0x50,0x75,1,
+0x6d,0x2c,0x73,0x11,0x68,0x75,0xa5,0x15,0x17,0x62,0x65,0x72,0x66,0x6f,0x72,0x6d,
+0x73,0x7b,0x10,0x6f,0xa3,0x92,0x14,0x62,0x6c,0x6f,0x63,0x6b,0x21,0x61,0x44,0x62,
+0x21,0x65,0x10,0x77,1,0x61,0xa5,0xe,0x74,0x14,0x61,0x69,0x6c,0x75,0x65,0xa3,
+0x8b,0x16,0x62,0x61,0x74,0x61,0x65,0x61,0x6e,0xa3,0xef,0x67,0xc4,0xe,0x6a,0xc1,
+0x95,0x6a,0xa2,0xc5,0x6b,0xa2,0xde,0x6c,4,0x61,0x54,0x65,0xa2,0x61,0x69,0xa2,
+0x78,0x6f,0xa2,0xa7,0x79,1,0x63,0x2e,0x64,0x12,0x69,0x61,0x6e,0xa3,0xa9,0x12,
+0x69,0x61,0x6e,0xa3,0xa7,1,0x6f,0x55,0x74,0x11,0x69,0x6e,1,0x31,0x82,0x65,
+0x11,0x78,0x74,4,0x61,0x5c,0x62,0x29,0x63,0xa3,0x94,0x64,0xa3,0x95,0x65,0xa2,
+0xe7,0x13,0x6e,0x64,0x65,0x64,4,0x61,0x36,0x62,0x29,0x63,0xa3,0x94,0x64,0xa3,
+0x95,0x65,0xa3,0xe7,0x26,0x18,0x64,0x64,0x69,0x74,0x69,0x6f,0x6e,0x61,0x6c,0x6d,
+0x24,0x12,0x73,0x75,0x70,0x24,0x16,0x70,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x25,1,
+0x70,0x42,0x74,0x1d,0x74,0x65,0x72,0x6c,0x69,0x6b,0x65,0x73,0x79,0x6d,0x62,0x6f,
+0x6c,0x73,0x79,0x12,0x63,0x68,0x61,0xa3,0x9c,2,0x6d,0x2e,0x6e,0x34,0x73,0x10,
+0x75,0xa3,0xb0,0x11,0x62,0x75,0xa3,0x6f,0x12,0x65,0x61,0x72,1,0x61,0xa3,0xe8,
+0x62,1,0x69,0x38,0x73,0x17,0x79,0x6c,0x6c,0x61,0x62,0x61,0x72,0x79,0xa3,0x75,
+0x17,0x64,0x65,0x6f,0x67,0x72,0x61,0x6d,0x73,0xa3,0x76,0x1a,0x77,0x73,0x75,0x72,
+0x72,0x6f,0x67,0x61,0x74,0x65,0x73,0xa3,0x4d,0x10,0x61,1,0x6d,0x32,0x76,0x14,
+0x61,0x6e,0x65,0x73,0x65,0xa3,0xb5,0x10,0x6f,0x5c,0x12,0x65,0x78,0x74,1,0x61,
+0xa3,0xb4,0x62,0xa3,0xb9,1,0x61,0x80,0x68,3,0x61,0x3c,0x6d,0x4c,0x6f,0x64,
+0x75,0x15,0x64,0x61,0x77,0x61,0x64,0x69,0xa3,0xe6,0x16,0x72,0x6f,0x73,0x68,0x74,
+0x68,0x69,0xa3,0x89,0x11,0x65,0x72,0x68,0x16,0x73,0x79,0x6d,0x62,0x6f,0x6c,0x73,
+0xa3,0x71,0x12,0x6a,0x6b,0x69,0xa3,0xe5,3,0x69,0x3a,0x6e,0x42,0x74,0xa2,0x51,
+0x79,0x13,0x61,0x68,0x6c,0x69,0xa3,0xa2,0x12,0x74,0x68,0x69,0xa3,0xc1,3,0x61,
+0x34,0x62,0x76,0x67,0x7c,0x6e,0x12,0x61,0x64,0x61,0x4d,1,0x65,0x40,0x73,0x11,
+0x75,0x70,0xa2,0xcb,0x16,0x70,0x6c,0x65,0x6d,0x65,0x6e,0x74,0xa3,0xcb,0x11,0x78,
+0x74,1,0x61,0xa5,0x13,0x65,0x14,0x6e,0x64,0x65,0x64,0x61,0xa5,0x13,0x11,0x75,
+0x6e,0xa3,0x42,0x11,0x78,0x69,0x96,0x17,0x72,0x61,0x64,0x69,0x63,0x61,0x6c,0x73,
+0x97,0x14,0x61,0x6b,0x61,0x6e,0x61,0x9e,1,0x65,0x4c,0x70,0x10,0x68,0x1f,0x6f,
+0x6e,0x65,0x74,0x69,0x63,0x65,0x78,0x74,0x65,0x6e,0x73,0x69,0x6f,0x6e,0x73,0xa3,
+0x6b,0x11,0x78,0x74,0xa3,0x6b,0x67,0xa2,0xb5,0x68,0xa4,0x84,0x69,3,0x64,0x4c,
+0x6d,0xa2,0x55,0x6e,0xa2,0x62,0x70,0x13,0x61,0x65,0x78,0x74,0x2a,0x16,0x65,0x6e,
+0x73,0x69,0x6f,0x6e,0x73,0x2b,1,0x63,0x99,0x65,0x17,0x6f,0x67,0x72,0x61,0x70,
+0x68,0x69,0x63,1,0x64,0x56,0x73,0x15,0x79,0x6d,0x62,0x6f,0x6c,0x73,0xa4,0xb,
+0x1d,0x61,0x6e,0x64,0x70,0x75,0x6e,0x63,0x74,0x75,0x61,0x74,0x69,0x6f,0x6e,0xa5,
+0xb,0x13,0x65,0x73,0x63,0x72,0x1f,0x69,0x70,0x74,0x69,0x6f,0x6e,0x63,0x68,0x61,
+0x72,0x61,0x63,0x74,0x65,0x72,0x73,0x99,0x1c,0x70,0x65,0x72,0x69,0x61,0x6c,0x61,
+0x72,0x61,0x6d,0x61,0x69,0x63,0xa3,0xba,1,0x64,0x62,0x73,0x1b,0x63,0x72,0x69,
+0x70,0x74,0x69,0x6f,0x6e,0x61,0x6c,0x70,0x61,1,0x68,0x32,0x72,0x14,0x74,0x68,
+0x69,0x61,0x6e,0xa3,0xbd,0x13,0x6c,0x61,0x76,0x69,0xa3,0xbe,0x11,0x69,0x63,1,
+0x6e,0x3e,0x73,0x1a,0x69,0x79,0x61,0x71,0x6e,0x75,0x6d,0x62,0x65,0x72,0x73,0xa5,
+0x1e,0x19,0x75,0x6d,0x62,0x65,0x72,0x66,0x6f,0x72,0x6d,0x73,0xa3,0xb2,4,0x65,
+0x74,0x6c,0xa2,0x82,0x6f,0xa2,0x9a,0x72,0xa2,0x9e,0x75,2,0x6a,0x34,0x6e,0x3e,
+0x72,0x14,0x6d,0x75,0x6b,0x68,0x69,0x43,0x14,0x61,0x72,0x61,0x74,0x69,0x45,0x18,
+0x6a,0x61,0x6c,0x61,0x67,0x6f,0x6e,0x64,0x69,0xa5,0x1c,1,0x6e,0xa2,0x46,0x6f,
+1,0x6d,0x6e,0x72,0x13,0x67,0x69,0x61,0x6e,0x5a,1,0x65,0x40,0x73,0x11,0x75,
+0x70,0xa2,0x87,0x16,0x70,0x6c,0x65,0x6d,0x65,0x6e,0x74,0xa3,0x87,0x11,0x78,0x74,
+0xa4,0x1b,0x14,0x65,0x6e,0x64,0x65,0x64,0xa5,0x1b,0x1a,0x65,0x74,0x72,0x69,0x63,
+0x73,0x68,0x61,0x70,0x65,0x73,0x8c,0x12,0x65,0x78,0x74,0xa2,0xe3,0x14,0x65,0x6e,
+0x64,0x65,0x64,0xa3,0xe3,0x1e,0x65,0x72,0x61,0x6c,0x70,0x75,0x6e,0x63,0x74,0x75,
+0x61,0x74,0x69,0x6f,0x6e,0x71,0x17,0x61,0x67,0x6f,0x6c,0x69,0x74,0x69,0x63,0xa2,
+0x88,0x12,0x73,0x75,0x70,0xa4,0xa,0x16,0x70,0x6c,0x65,0x6d,0x65,0x6e,0x74,0xa5,
+0xa,0x13,0x74,0x68,0x69,0x63,0xa3,0x59,1,0x61,0x5c,0x65,0x11,0x65,0x6b,0x30,
+1,0x61,0x38,0x65,0x11,0x78,0x74,0x6e,0x14,0x65,0x6e,0x64,0x65,0x64,0x6f,0x17,
+0x6e,0x64,0x63,0x6f,0x70,0x74,0x69,0x63,0x31,0x13,0x6e,0x74,0x68,0x61,0xa3,0xe4,
+2,0x61,0xa2,0x48,0x65,0xa2,0xdf,0x69,1,0x67,0x30,0x72,0x14,0x61,0x67,0x61,
+0x6e,0x61,0x9d,0x10,0x68,1,0x70,0x3a,0x73,0x18,0x75,0x72,0x72,0x6f,0x67,0x61,
+0x74,0x65,0x73,0xa3,0x4b,1,0x72,0x3c,0x75,0x19,0x73,0x75,0x72,0x72,0x6f,0x67,
+0x61,0x74,0x65,0x73,0xa3,0x4c,0x11,0x69,0x76,0x1f,0x61,0x74,0x65,0x75,0x73,0x65,
+0x73,0x75,0x72,0x72,0x6f,0x67,0x61,0x74,0x65,0x73,0xa3,0x4c,2,0x6c,0x32,0x6e,
+0x9a,0x74,0x12,0x72,0x61,0x6e,0xa5,2,0x10,0x66,2,0x61,0x58,0x6d,0x70,0x77,
+0x14,0x69,0x64,0x74,0x68,0x61,0x1f,0x6e,0x64,0x66,0x75,0x6c,0x6c,0x77,0x69,0x64,
+0x74,0x68,0x66,0x6f,0x72,0x6d,0x73,0xa3,0x57,0x1a,0x6e,0x64,0x66,0x75,0x6c,0x6c,
+0x66,0x6f,0x72,0x6d,0x73,0xa3,0x57,0x13,0x61,0x72,0x6b,0x73,0xa3,0x52,2,0x67,
+0x34,0x69,0xa2,0x45,0x75,0x12,0x6e,0x6f,0x6f,0xa3,0x63,0x11,0x75,0x6c,0xa2,0x4a,
+2,0x63,0x3c,0x6a,0x5e,0x73,0x17,0x79,0x6c,0x6c,0x61,0x62,0x6c,0x65,0x73,0xa3,
+0x4a,0x1f,0x6f,0x6d,0x70,0x61,0x74,0x69,0x62,0x69,0x6c,0x69,0x74,0x79,0x6a,0x61,
+0x6d,0x6f,0xa3,0x41,0x12,0x61,0x6d,0x6f,0x5c,0x17,0x65,0x78,0x74,0x65,0x6e,0x64,
+0x65,0x64,1,0x61,0xa3,0xb4,0x62,0xa3,0xb9,0x19,0x66,0x69,0x72,0x6f,0x68,0x69,
+0x6e,0x67,0x79,0x61,0xa5,0x1d,0x13,0x62,0x72,0x65,0x77,0x37,0x61,0xa2,0xe9,0x62,
+0xa6,0x29,0x63,0xa6,0xfe,0x64,0xac,0x8a,0x65,5,0x6d,0xa2,0x6d,0x86,0x6e,0x96,
+0x74,0x15,0x68,0x69,0x6f,0x70,0x69,0x63,0x5e,1,0x65,0x40,0x73,0x11,0x75,0x70,
+0xa2,0x86,0x16,0x70,0x6c,0x65,0x6d,0x65,0x6e,0x74,0xa3,0x86,0x11,0x78,0x74,0xa2,
+0x85,1,0x61,0xa3,0xc8,0x65,0x13,0x6e,0x64,0x65,0x64,0xa2,0x85,0x10,0x61,0xa3,
+0xc8,0x16,0x6f,0x74,0x69,0x63,0x6f,0x6e,0x73,0xa3,0xce,0x15,0x63,0x6c,0x6f,0x73,
+0x65,0x64,2,0x61,0x5a,0x63,0x9e,0x69,0x1c,0x64,0x65,0x6f,0x67,0x72,0x61,0x70,
+0x68,0x69,0x63,0x73,0x75,0x70,0xa2,0xc4,0x16,0x70,0x6c,0x65,0x6d,0x65,0x6e,0x74,
+0xa3,0xc4,0x16,0x6c,0x70,0x68,0x61,0x6e,0x75,0x6d,0x86,1,0x65,0x2c,0x73,0x11,
+0x75,0x70,0xa3,0xc3,0x13,0x72,0x69,0x63,0x73,0x86,0x18,0x75,0x70,0x70,0x6c,0x65,
+0x6d,0x65,0x6e,0x74,0xa3,0xc3,0x11,0x6a,0x6b,0xa2,0x44,0x1f,0x6c,0x65,0x74,0x74,
+0x65,0x72,0x73,0x61,0x6e,0x64,0x6d,0x6f,0x6e,0x74,0x68,0x73,0xa3,0x44,0x61,0x36,
+0x67,0x62,0x6c,0x14,0x62,0x61,0x73,0x61,0x6e,0xa3,0xe2,0x13,0x72,0x6c,0x79,0x64,
+0x1f,0x79,0x6e,0x61,0x73,0x74,0x69,0x63,0x63,0x75,0x6e,0x65,0x69,0x66,0x6f,0x72,
+0x6d,0xa5,1,0x10,0x79,0x1f,0x70,0x74,0x69,0x61,0x6e,0x68,0x69,0x65,0x72,0x6f,
+0x67,0x6c,0x79,0x70,0x68,0x73,0xa3,0xc2,7,0x6e,0xc0,0xe5,0x6e,0x3e,0x72,0xa2,
+0x5d,0x73,0xa2,0xd8,0x76,0x14,0x65,0x73,0x74,0x61,0x6e,0xa3,0xbc,1,0x61,0x92,
+0x63,0x13,0x69,0x65,0x6e,0x74,1,0x67,0x34,0x73,0x15,0x79,0x6d,0x62,0x6f,0x6c,
+0x73,0xa3,0xa5,0x13,0x72,0x65,0x65,0x6b,1,0x6d,0x34,0x6e,0x15,0x75,0x6d,0x62,
+0x65,0x72,0x73,0xa3,0x7f,0x13,0x75,0x73,0x69,0x63,0xa2,0x7e,0x19,0x61,0x6c,0x6e,
+0x6f,0x74,0x61,0x74,0x69,0x6f,0x6e,0xa3,0x7e,0x10,0x74,0x1f,0x6f,0x6c,0x69,0x61,
+0x6e,0x68,0x69,0x65,0x72,0x6f,0x67,0x6c,0x79,0x70,0x68,0x73,0xa3,0xfe,2,0x61,
+0x32,0x6d,0xa2,0x71,0x72,0x12,0x6f,0x77,0x73,0x7d,0x12,0x62,0x69,0x63,0x38,3,
+0x65,0x4a,0x6d,0x66,0x70,0xa2,0x43,0x73,0x11,0x75,0x70,0xa2,0x80,0x16,0x70,0x6c,
+0x65,0x6d,0x65,0x6e,0x74,0xa3,0x80,0x11,0x78,0x74,1,0x61,0xa3,0xd2,0x65,0x14,
+0x6e,0x64,0x65,0x64,0x61,0xa3,0xd2,0x12,0x61,0x74,0x68,0xa2,0xd3,0x18,0x65,0x6d,
+0x61,0x74,0x69,0x63,0x61,0x6c,0x61,0x1f,0x6c,0x70,0x68,0x61,0x62,0x65,0x74,0x69,
+0x63,0x73,0x79,0x6d,0x62,0x6f,0x6c,0x73,0xa3,0xd3,1,0x66,0x42,0x72,0x1e,0x65,
+0x73,0x65,0x6e,0x74,0x61,0x74,0x69,0x6f,0x6e,0x66,0x6f,0x72,0x6d,0x73,1,0x61,
+0xa3,0x51,0x62,0xa3,0x55,0x14,0x65,0x6e,0x69,0x61,0x6e,0x35,0x12,0x63,0x69,0x69,
+0x23,0x64,0x9e,0x65,0xa2,0x42,0x68,0xa2,0x4d,0x6c,1,0x63,0x62,0x70,0x17,0x68,
+0x61,0x62,0x65,0x74,0x69,0x63,0x70,1,0x66,0xa3,0x50,0x72,0x1e,0x65,0x73,0x65,
+0x6e,0x74,0x61,0x74,0x69,0x6f,0x6e,0x66,0x6f,0x72,0x6d,0x73,0xa3,0x50,0x16,0x68,
+0x65,0x6d,0x69,0x63,0x61,0x6c,0xa2,0xd0,0x16,0x73,0x79,0x6d,0x62,0x6f,0x6c,0x73,
+0xa3,0xd0,0x12,0x6c,0x61,0x6d,0xa5,7,0x1a,0x67,0x65,0x61,0x6e,0x6e,0x75,0x6d,
+0x62,0x65,0x72,0x73,0xa3,0x77,0x11,0x6f,0x6d,0xa3,0xfd,7,0x6f,0x71,0x6f,0x64,
+0x72,0xa2,0x41,0x75,0xa2,0x58,0x79,0x1b,0x7a,0x61,0x6e,0x74,0x69,0x6e,0x65,0x6d,
+0x75,0x73,0x69,0x63,0xa2,0x5b,0x18,0x61,0x6c,0x73,0x79,0x6d,0x62,0x6f,0x6c,0x73,
+0xa3,0x5b,1,0x70,0x34,0x78,0x16,0x64,0x72,0x61,0x77,0x69,0x6e,0x67,0x89,0x14,
+0x6f,0x6d,0x6f,0x66,0x6f,0xa0,0x12,0x65,0x78,0x74,0xa2,0x43,0x14,0x65,0x6e,0x64,
+0x65,0x64,0xa3,0x43,0x10,0x61,1,0x68,0x40,0x69,0x12,0x6c,0x6c,0x65,0x92,0x17,
+0x70,0x61,0x74,0x74,0x65,0x72,0x6e,0x73,0x93,0x11,0x6d,0x69,0xa3,0xc9,1,0x67,
+0x2c,0x68,0x11,0x69,0x64,0xa3,0x64,0x14,0x69,0x6e,0x65,0x73,0x65,0xa3,0x81,0x61,
+0x48,0x65,0xa2,0x4e,0x68,0xa2,0x52,0x6c,0x1a,0x6f,0x63,0x6b,0x65,0x6c,0x65,0x6d,
+0x65,0x6e,0x74,0x73,0x8b,3,0x6c,0x34,0x6d,0x40,0x73,0x66,0x74,0x11,0x61,0x6b,
+0xa3,0xc7,0x14,0x69,0x6e,0x65,0x73,0x65,0xa3,0x93,0x11,0x75,0x6d,0xa2,0xb1,0x12,
+0x73,0x75,0x70,0xa2,0xca,0x16,0x70,0x6c,0x65,0x6d,0x65,0x6e,0x74,0xa3,0xca,1,
+0x69,0x30,0x73,0x13,0x61,0x76,0x61,0x68,0xa3,0xdd,0x15,0x63,0x6c,0x61,0x74,0x69,
+0x6e,0x23,0x14,0x6e,0x67,0x61,0x6c,0x69,0x41,0x16,0x61,0x69,0x6b,0x73,0x75,0x6b,
+0x69,0xa5,8,5,0x6f,0xc1,0x4c,0x6f,0xa2,0x55,0x75,0xa4,0x10,0x79,1,0x70,
+0x9c,0x72,0x14,0x69,0x6c,0x6c,0x69,0x63,0x32,1,0x65,0x4c,0x73,0x11,0x75,0x70,
+0xa2,0x61,0x16,0x70,0x6c,0x65,0x6d,0x65,0x6e,0x74,0xa2,0x61,0x12,0x61,0x72,0x79,
+0xa3,0x61,0x11,0x78,0x74,3,0x61,0xa3,0x9e,0x62,0xa3,0xa0,0x63,0xa5,9,0x65,
+0x13,0x6e,0x64,0x65,0x64,2,0x61,0xa3,0x9e,0x62,0xa3,0xa0,0x63,0xa5,9,0x1c,
+0x72,0x69,0x6f,0x74,0x73,0x79,0x6c,0x6c,0x61,0x62,0x61,0x72,0x79,0xa3,0x7b,3,
+0x6d,0x5a,0x6e,0xa2,0x95,0x70,0xa2,0xa0,0x75,0x17,0x6e,0x74,0x69,0x6e,0x67,0x72,
+0x6f,0x64,0xa2,0x9a,0x17,0x6e,0x75,0x6d,0x65,0x72,0x61,0x6c,0x73,0xa3,0x9a,2,
+0x62,0x3a,0x6d,0xa2,0x5f,0x70,0x15,0x61,0x74,0x6a,0x61,0x6d,0x6f,0xa3,0x41,0x14,
+0x69,0x6e,0x69,0x6e,0x67,2,0x64,0x46,0x68,0x9e,0x6d,0x1d,0x61,0x72,0x6b,0x73,
+0x66,0x6f,0x72,0x73,0x79,0x6d,0x62,0x6f,0x6c,0x73,0x77,0x1e,0x69,0x61,0x63,0x72,
+0x69,0x74,0x69,0x63,0x61,0x6c,0x6d,0x61,0x72,0x6b,0x73,0x2e,2,0x65,0x40,0x66,
+0xa6,0x2a,0x73,0x18,0x75,0x70,0x70,0x6c,0x65,0x6d,0x65,0x6e,0x74,0xa3,0x83,0x16,
+0x78,0x74,0x65,0x6e,0x64,0x65,0x64,0xa3,0xe0,0x17,0x61,0x6c,0x66,0x6d,0x61,0x72,
+0x6b,0x73,0xa3,0x52,0x11,0x6f,0x6e,0x1f,0x69,0x6e,0x64,0x69,0x63,0x6e,0x75,0x6d,
+0x62,0x65,0x72,0x66,0x6f,0x72,0x6d,0x73,0xa3,0xb2,0x1b,0x74,0x72,0x6f,0x6c,0x70,
+0x69,0x63,0x74,0x75,0x72,0x65,0x73,0x83,0x12,0x74,0x69,0x63,0xa2,0x84,0x1b,0x65,
+0x70,0x61,0x63,0x74,0x6e,0x75,0x6d,0x62,0x65,0x72,0x73,0xa3,0xdf,1,0x6e,0x3e,
+0x72,0x1b,0x72,0x65,0x6e,0x63,0x79,0x73,0x79,0x6d,0x62,0x6f,0x6c,0x73,0x75,0x15,
+0x65,0x69,0x66,0x6f,0x72,0x6d,0xa2,0x98,0x16,0x6e,0x75,0x6d,0x62,0x65,0x72,0x73,
+0xa2,0x99,0x1d,0x61,0x6e,0x64,0x70,0x75,0x6e,0x63,0x74,0x75,0x61,0x74,0x69,0x6f,
+0x6e,0xa3,0x99,0x61,0xa2,0xdb,0x68,0xa4,5,0x6a,0x10,0x6b,0xa2,0x47,4,0x63,
+0x86,0x65,0xa2,0x7d,0x72,0xa2,0x92,0x73,0xa2,0xa4,0x75,0x1f,0x6e,0x69,0x66,0x69,
+0x65,0x64,0x69,0x64,0x65,0x6f,0x67,0x72,0x61,0x70,0x68,0x73,0xa2,0x47,0x18,0x65,
+0x78,0x74,0x65,0x6e,0x73,0x69,0x6f,0x6e,5,0x64,0x65,0x64,0xa3,0xd1,0x65,0xa5,
+0,0x66,0xa5,0x12,0x14,0x6f,0x6d,0x70,0x61,0x74,0xa2,0x45,1,0x66,0x96,0x69,
+1,0x62,0x44,0x64,0x17,0x65,0x6f,0x67,0x72,0x61,0x70,0x68,0x73,0xa2,0x4f,0x12,
+0x73,0x75,0x70,0xa3,0x5f,0x14,0x69,0x6c,0x69,0x74,0x79,0xa2,0x45,1,0x66,0x54,
+0x69,0x18,0x64,0x65,0x6f,0x67,0x72,0x61,0x70,0x68,0x73,0xa2,0x4f,0x19,0x73,0x75,
+0x70,0x70,0x6c,0x65,0x6d,0x65,0x6e,0x74,0xa3,0x5f,0x13,0x6f,0x72,0x6d,0x73,0xa3,
+0x53,0x11,0x78,0x74,5,0x64,9,0x64,0xa3,0xd1,0x65,0xa5,0,0x66,0xa5,0x12,
+0x61,0xa3,0x46,0x62,0xa3,0x5e,0x63,0xa3,0xc5,0x19,0x61,0x64,0x69,0x63,0x61,0x6c,
+0x73,0x73,0x75,0x70,0x94,0x16,0x70,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x95,1,0x74,
+0x50,0x79,0x14,0x6d,0x62,0x6f,0x6c,0x73,0x9a,0x1d,0x61,0x6e,0x64,0x70,0x75,0x6e,
+0x63,0x74,0x75,0x61,0x74,0x69,0x6f,0x6e,0x9b,0x14,0x72,0x6f,0x6b,0x65,0x73,0xa3,
+0x82,2,0x6e,0x48,0x72,0x64,0x75,0x1d,0x63,0x61,0x73,0x69,0x61,0x6e,0x61,0x6c,
+0x62,0x61,0x6e,0x69,0x61,0x6e,0xa3,0xde,0x1d,0x61,0x64,0x69,0x61,0x6e,0x73,0x79,
+0x6c,0x6c,0x61,0x62,0x69,0x63,0x73,0x63,0x12,0x69,0x61,0x6e,0xa3,0xa8,1,0x61,
+0x6c,0x65,1,0x72,0x38,0x73,0x17,0x73,0x73,0x79,0x6d,0x62,0x6f,0x6c,0x73,0xa5,
+0x19,0x13,0x6f,0x6b,0x65,0x65,0x60,0x12,0x73,0x75,0x70,0xa2,0xff,0x16,0x70,0x6c,
+0x65,0x6d,0x65,0x6e,0x74,0xa3,0xff,1,0x6b,0x26,0x6d,0xa3,0xa4,0x11,0x6d,0x61,
+0xa3,0xd4,3,0x65,0x3e,0x69,0x7e,0x6f,0xa2,0x5d,0x75,0x15,0x70,0x6c,0x6f,0x79,
+0x61,0x6e,0xa3,0xe1,1,0x73,0x50,0x76,0x16,0x61,0x6e,0x61,0x67,0x61,0x72,0x69,
+0x3e,0x12,0x65,0x78,0x74,0xa2,0xb3,0x14,0x65,0x6e,0x64,0x65,0x64,0xa3,0xb3,0x13,
+0x65,0x72,0x65,0x74,0xa3,0x5a,1,0x61,0x30,0x6e,0x14,0x67,0x62,0x61,0x74,0x73,
+0x91,0x18,0x63,0x72,0x69,0x74,0x69,0x63,0x61,0x6c,0x73,0x2e,2,0x65,0x30,0x66,
+0x36,0x73,0x11,0x75,0x70,0xa3,0x83,0x11,0x78,0x74,0xa3,0xe0,0x18,0x6f,0x72,0x73,
+0x79,0x6d,0x62,0x6f,0x6c,0x73,0x77,1,0x67,0x3e,0x6d,0x12,0x69,0x6e,0x6f,0xa2,
+0xab,0x14,0x74,0x69,0x6c,0x65,0x73,0xa3,0xab,0x11,0x72,0x61,0xa5,0x1a,8,0x6d,
+0x5f,0x6d,0x3a,0x6e,0x48,0x73,0x7a,0x76,0xa2,0x4b,0x77,0x12,0x69,0x64,0x65,0x43,
+0x11,0x65,0x64,0x32,0x12,0x69,0x61,0x6c,0x33,2,0x61,0x40,0x62,0x37,0x6f,1,
+0x62,0x28,0x6e,0x10,0x65,0x21,0x13,0x72,0x65,0x61,0x6b,0x37,0x10,0x72,0x34,0x12,
+0x72,0x6f,0x77,0x35,2,0x6d,0x38,0x71,0x46,0x75,1,0x62,0x3d,0x70,0x3e,0x11,
+0x65,0x72,0x3f,1,0x61,0x24,0x6c,0x39,0x11,0x6c,0x6c,0x39,1,0x72,0x3b,0x75,
+0x12,0x61,0x72,0x65,0x3b,0x12,0x65,0x72,0x74,0x40,0x13,0x69,0x63,0x61,0x6c,0x41,
+0x63,0x58,0x65,0x92,0x66,0x96,0x69,1,0x6e,0x36,0x73,0x10,0x6f,0x30,0x14,0x6c,
+0x61,0x74,0x65,0x64,0x31,0x11,0x69,0x74,0x2e,0x12,0x69,0x61,0x6c,0x2f,2,0x61,
+0x36,0x69,0x48,0x6f,0x10,0x6d,0x24,0x12,0x70,0x61,0x74,0x25,0x10,0x6e,0x22,0x15,
+0x6f,0x6e,0x69,0x63,0x61,0x6c,0x23,0x13,0x72,0x63,0x6c,0x65,0x27,0x11,0x6e,0x63,
+0x27,2,0x69,0x3a,0x6f,0x44,0x72,0x10,0x61,0x2c,0x14,0x63,0x74,0x69,0x6f,0x6e,
+0x2d,0x10,0x6e,0x28,0x11,0x61,0x6c,0x29,0x11,0x6e,0x74,0x2b,4,0x61,0x3a,0x66,
+0x4c,0x68,0x5e,0x6e,0x70,0x77,0x2a,0x12,0x69,0x64,0x65,0x2b,0x22,0x17,0x6d,0x62,
+0x69,0x67,0x75,0x6f,0x75,0x73,0x23,0x26,0x17,0x75,0x6c,0x6c,0x77,0x69,0x64,0x74,
+0x68,0x27,0x24,0x17,0x61,0x6c,0x66,0x77,0x69,0x64,0x74,0x68,0x25,0x20,1,0x61,
+0x30,0x65,0x14,0x75,0x74,0x72,0x61,0x6c,0x21,0x28,0x13,0x72,0x72,0x6f,0x77,0x29,
+0xd,0x6e,0xc0,0xfb,0x73,0x6d,0x73,0x3a,0x74,0x98,0x75,0xa2,0x49,0x7a,2,0x6c,
+0x3b,0x70,0x3d,0x73,0x39,5,0x6f,0x28,0x6f,0x57,0x70,0x34,0x75,0x16,0x72,0x72,
+0x6f,0x67,0x61,0x74,0x65,0x45,0x11,0x61,0x63,1,0x65,0x32,0x69,0x15,0x6e,0x67,
+0x6d,0x61,0x72,0x6b,0x31,0x18,0x73,0x65,0x70,0x61,0x72,0x61,0x74,0x6f,0x72,0x39,
+0x63,0x53,0x6b,0x55,0x6d,0x51,0x1d,0x69,0x74,0x6c,0x65,0x63,0x61,0x73,0x65,0x6c,
+0x65,0x74,0x74,0x65,0x72,0x27,1,0x6e,0x40,0x70,0x1c,0x70,0x65,0x72,0x63,0x61,
+0x73,0x65,0x6c,0x65,0x74,0x74,0x65,0x72,0x23,0x17,0x61,0x73,0x73,0x69,0x67,0x6e,
+0x65,0x64,0x21,0x6e,0x8a,0x6f,0xa2,0x47,0x70,8,0x66,0x14,0x66,0x5b,0x69,0x59,
+0x6f,0x4f,0x72,0x24,0x73,0x49,0x17,0x69,0x76,0x61,0x74,0x65,0x75,0x73,0x65,0x43,
+0x61,0x2c,0x63,0x4d,0x64,0x47,0x65,0x4b,0x1f,0x72,0x61,0x67,0x72,0x61,0x70,0x68,
+0x73,0x65,0x70,0x61,0x72,0x61,0x74,0x6f,0x72,0x3d,2,0x64,0x33,0x6c,0x35,0x6f,
+0x36,0x1b,0x6e,0x73,0x70,0x61,0x63,0x69,0x6e,0x67,0x6d,0x61,0x72,0x6b,0x2d,1,
+0x70,0x7c,0x74,0x12,0x68,0x65,0x72,3,0x6c,0x38,0x6e,0x42,0x70,0x4c,0x73,0x14,
+0x79,0x6d,0x62,0x6f,0x6c,0x57,0x14,0x65,0x74,0x74,0x65,0x72,0x2b,0x14,0x75,0x6d,
+0x62,0x65,0x72,0x37,0x19,0x75,0x6e,0x63,0x74,0x75,0x61,0x74,0x69,0x6f,0x6e,0x4f,
+0x1c,0x65,0x6e,0x70,0x75,0x6e,0x63,0x74,0x75,0x61,0x74,0x69,0x6f,0x6e,0x49,0x66,
+0x9e,0x66,0x88,0x69,0xa2,0x4b,0x6c,0xa2,0x5c,0x6d,4,0x61,0x60,0x63,0x31,0x65,
+0x2f,0x6e,0x2d,0x6f,0x15,0x64,0x69,0x66,0x69,0x65,0x72,1,0x6c,0x30,0x73,0x14,
+0x79,0x6d,0x62,0x6f,0x6c,0x55,0x14,0x65,0x74,0x74,0x65,0x72,0x29,0x17,0x74,0x68,
+0x73,0x79,0x6d,0x62,0x6f,0x6c,0x51,1,0x69,0x2e,0x6f,0x13,0x72,0x6d,0x61,0x74,
+0x41,0x1d,0x6e,0x61,0x6c,0x70,0x75,0x6e,0x63,0x74,0x75,0x61,0x74,0x69,0x6f,0x6e,
+0x5b,0x10,0x6e,0x1f,0x69,0x74,0x69,0x61,0x6c,0x70,0x75,0x6e,0x63,0x74,0x75,0x61,
+0x74,0x69,0x6f,0x6e,0x59,6,0x6d,0x18,0x6d,0x29,0x6f,0x28,0x74,0x27,0x75,0x23,
+0x2a,0x1c,0x77,0x65,0x72,0x63,0x61,0x73,0x65,0x6c,0x65,0x74,0x74,0x65,0x72,0x25,
+0x65,0x28,0x69,0x3c,0x6c,0x25,0x19,0x74,0x74,0x65,0x72,0x6e,0x75,0x6d,0x62,0x65,
+0x72,0x35,0x1a,0x6e,0x65,0x73,0x65,0x70,0x61,0x72,0x61,0x74,0x6f,0x72,0x3b,0x63,
+0x44,0x64,0xa2,0x60,0x65,0x1b,0x6e,0x63,0x6c,0x6f,0x73,0x69,0x6e,0x67,0x6d,0x61,
+0x72,0x6b,0x2f,6,0x6e,0x39,0x6e,0x46,0x6f,0x4e,0x73,0x45,0x75,0x1b,0x72,0x72,
+0x65,0x6e,0x63,0x79,0x73,0x79,0x6d,0x62,0x6f,0x6c,0x53,0x20,0x12,0x74,0x72,0x6c,
+0x3f,0x42,0x10,0x6e,1,0x6e,0x2c,0x74,0x12,0x72,0x6f,0x6c,0x3f,0x1f,0x65,0x63,
+0x74,0x6f,0x72,0x70,0x75,0x6e,0x63,0x74,0x75,0x61,0x74,0x69,0x6f,0x6e,0x4d,0x63,
+0x3f,0x66,0x41,0x6c,0x1d,0x6f,0x73,0x65,0x70,0x75,0x6e,0x63,0x74,0x75,0x61,0x74,
+0x69,0x6f,0x6e,0x4b,2,0x61,0x30,0x65,0x4a,0x69,0x12,0x67,0x69,0x74,0x33,0x1c,
+0x73,0x68,0x70,0x75,0x6e,0x63,0x74,0x75,0x61,0x74,0x69,0x6f,0x6e,0x47,0x1a,0x63,
+0x69,0x6d,0x61,0x6c,0x6e,0x75,0x6d,0x62,0x65,0x72,0x33,0,0x12,0x6d,0xc2,0x3f,
+0x73,0xa1,0x73,0x4e,0x74,0xa2,0x56,0x77,0xa2,0x72,0x79,0xa2,0x73,0x7a,1,0x61,
+0x2c,0x68,0x12,0x61,0x69,0x6e,0x8b,0x11,0x69,0x6e,0x85,5,0x74,0x22,0x74,0x38,
+0x77,0x4c,0x79,0x16,0x72,0x69,0x61,0x63,0x77,0x61,0x77,0x6f,0x18,0x72,0x61,0x69,
+0x67,0x68,0x74,0x77,0x61,0x77,0xa3,0x55,0x15,0x61,0x73,0x68,0x6b,0x61,0x66,0x6d,
+0x61,0x2e,0x65,0x38,0x68,0x11,0x69,0x6e,0x6b,0x10,0x64,0x62,0x11,0x68,0x65,0x65,
+1,0x65,0x2e,0x6d,0x13,0x6b,0x61,0x74,0x68,0x69,0x10,0x6e,0x67,1,0x61,0x4e,
+0x65,1,0x68,0x28,0x74,0x10,0x68,0x77,0x16,0x6d,0x61,0x72,0x62,0x75,0x74,0x61,
+0x74,0x13,0x67,0x6f,0x61,0x6c,0x3d,1,0x68,0x71,0x77,0x73,0x11,0x61,0x77,0x79,
+1,0x65,0x32,0x75,0x11,0x64,0x68,0x80,0x11,0x68,0x65,0x83,0x10,0x68,0x7a,1,
+0x62,0x34,0x77,0x16,0x69,0x74,0x68,0x74,0x61,0x69,0x6c,0x7f,0x14,0x61,0x72,0x72,
+0x65,0x65,0x7d,0x6d,0x6c,0x6e,0xa4,0x6b,0x70,0xa4,0x88,0x71,0xa4,0x88,0x72,1,
+0x65,0x38,0x6f,0x18,0x68,0x69,0x6e,0x67,0x79,0x61,0x79,0x65,0x68,0x93,1,0x68,
+0x5f,0x76,0x16,0x65,0x72,0x73,0x65,0x64,0x70,0x65,0x61,2,0x61,0x2e,0x65,0xa4,
+0x3e,0x69,0x10,0x6d,0x53,1,0x6c,0xa2,0xe7,0x6e,0x16,0x69,0x63,0x68,0x61,0x65,
+0x61,0x6e,0,0x12,0x6e,0x76,0x73,0x51,0x73,0x3e,0x74,0x5c,0x77,0xa0,0x79,0xa2,
+0x42,0x7a,0x13,0x61,0x79,0x69,0x6e,0xa3,0x54,0x10,0x61,1,0x64,0x2e,0x6d,0x12,
+0x65,0x6b,0x68,0xa3,0x4c,0x11,0x68,0x65,0xa3,0x4b,3,0x61,0x38,0x65,0x3c,0x68,
+0x4a,0x77,0x13,0x65,0x6e,0x74,0x79,0xa3,0x51,0x10,0x77,0xa3,0x4d,1,0x6e,0xa3,
+0x4e,0x74,0x10,0x68,0xa3,0x4f,0x14,0x61,0x6d,0x65,0x64,0x68,0xa3,0x50,0x11,0x61,
+0x77,0xa3,0x52,0x12,0x6f,0x64,0x68,0xa3,0x53,0x6e,0x3a,0x6f,0x40,0x70,0x46,0x71,
+0x4a,0x72,0x12,0x65,0x73,0x68,0xa3,0x4a,0x11,0x75,0x6e,0xa3,0x46,0x11,0x6e,0x65,
+0xa3,0x47,0x10,0x65,0xa3,0x48,0x12,0x6f,0x70,0x68,0xa3,0x49,0x67,0x33,0x67,0x38,
+0x68,0x40,0x6b,0x5e,0x6c,0x66,0x6d,0x11,0x65,0x6d,0xa3,0x45,0x13,0x69,0x6d,0x65,
+0x6c,0xa1,1,0x65,0x32,0x75,0x14,0x6e,0x64,0x72,0x65,0x64,0xa3,0x42,0x11,0x74,
+0x68,0xa3,0x41,0x12,0x61,0x70,0x68,0xa3,0x43,0x14,0x61,0x6d,0x65,0x64,0x68,0xa3,
+0x44,0x61,0x34,0x62,0x4a,0x64,0x50,0x66,0x12,0x69,0x76,0x65,0x9f,1,0x6c,0x2a,
+0x79,0x11,0x69,0x6e,0x97,0x12,0x65,0x70,0x68,0x95,0x12,0x65,0x74,0x68,0x99,1,
+0x61,0x30,0x68,0x14,0x61,0x6d,0x65,0x64,0x68,0x9d,0x13,0x6c,0x65,0x74,0x68,0x9b,
+0x15,0x61,0x79,0x61,0x6c,0x61,0x6d,6,0x6e,0x2c,0x6e,0x34,0x72,0x5e,0x73,0x62,
+0x74,0x11,0x74,0x61,0xa3,0x63,2,0x67,0x2e,0x6e,0x32,0x79,0x10,0x61,0xa3,0x60,
+0x10,0x61,0xa3,0x5d,1,0x61,0xa3,0x5e,0x6e,0x10,0x61,0xa3,0x5f,0x10,0x61,0xa3,
+0x61,0x11,0x73,0x61,0xa3,0x62,0x62,0x3c,0x6a,0x42,0x6c,0x10,0x6c,1,0x61,0xa3,
+0x5b,0x6c,0x10,0x61,0xa3,0x5c,0x11,0x68,0x61,0xa3,0x59,0x10,0x61,0xa3,0x5a,0x11,
+0x65,0x6d,0x51,2,0x6f,0x2c,0x75,0x50,0x79,0x10,0x61,0x91,1,0x6a,0x28,0x6f,
+0x10,0x6e,0x55,0x1a,0x6f,0x69,0x6e,0x69,0x6e,0x67,0x67,0x72,0x6f,0x75,0x70,0x21,
+0x10,0x6e,0x57,0x10,0x65,0x59,0x10,0x61,1,0x66,0x5b,0x70,0x10,0x68,0x5d,0x66,
+0x9a,0x66,0x42,0x67,0x7a,0x68,0x8a,0x6b,0xa2,0x75,0x6c,0x11,0x61,0x6d,0x4c,0x12,
+0x61,0x64,0x68,0x4f,2,0x61,0x3e,0x65,0x4a,0x69,0x19,0x6e,0x61,0x6c,0x73,0x65,
+0x6d,0x6b,0x61,0x74,0x68,0x35,0x15,0x72,0x73,0x69,0x79,0x65,0x68,0x8f,0x86,0x10,
+0x68,0x33,0x10,0x61,1,0x66,0x37,0x6d,0x11,0x61,0x6c,0x39,1,0x61,0x40,0x65,
+0x3e,1,0x68,0x28,0x74,0x10,0x68,0x45,0x40,0x13,0x67,0x6f,0x61,0x6c,0x43,2,
+0x68,0x3b,0x6d,0x5c,0x6e,0x1a,0x69,0x66,0x69,0x72,0x6f,0x68,0x69,0x6e,0x67,0x79,
+0x61,1,0x6b,0x2a,0x70,0x10,0x61,0xa3,0x65,0x15,0x69,0x6e,0x6e,0x61,0x79,0x61,
+0xa3,0x64,0x1a,0x7a,0x61,0x6f,0x6e,0x68,0x65,0x68,0x67,0x6f,0x61,0x6c,0x3d,2,
+0x61,0x3a,0x68,0x44,0x6e,0x17,0x6f,0x74,0x74,0x65,0x64,0x68,0x65,0x68,0x4b,1,
+0x66,0x47,0x70,0x10,0x68,0x49,0x12,0x61,0x70,0x68,0x89,0x61,0x2e,0x62,0x8a,0x64,
+0xa2,0x51,0x65,0x31,2,0x66,0x3c,0x69,0x70,0x6c,1,0x61,0x28,0x65,0x10,0x66,
+0x27,0x11,0x70,0x68,0x25,0x14,0x72,0x69,0x63,0x61,0x6e,2,0x66,0x30,0x6e,0x36,
+0x71,0x11,0x61,0x66,0xa3,0x58,0x11,0x65,0x68,0xa3,0x56,0x12,0x6f,0x6f,0x6e,0xa3,
+0x57,0x10,0x6e,0x23,1,0x65,0x4a,0x75,0x10,0x72,0x1f,0x75,0x73,0x68,0x61,0x73,
+0x6b,0x69,0x79,0x65,0x68,0x62,0x61,0x72,0x72,0x65,0x65,0x8d,1,0x68,0x29,0x74,
+0x10,0x68,0x2b,0x11,0x61,0x6c,0x2c,0x16,0x61,0x74,0x68,0x72,0x69,0x73,0x68,0x2f,
+7,0x6e,0x2e,0x6e,0x2c,0x72,0x3e,0x74,0x56,0x75,0x21,0x18,0x6f,0x6e,0x6a,0x6f,
+0x69,0x6e,0x69,0x6e,0x67,0x21,0x28,0x1a,0x69,0x67,0x68,0x74,0x6a,0x6f,0x69,0x6e,
+0x69,0x6e,0x67,0x29,0x2a,0x19,0x72,0x61,0x6e,0x73,0x70,0x61,0x72,0x65,0x6e,0x74,
+0x2b,0x63,0x23,0x64,0x40,0x6a,0x56,0x6c,0x26,0x19,0x65,0x66,0x74,0x6a,0x6f,0x69,
+0x6e,0x69,0x6e,0x67,0x27,0x24,0x19,0x75,0x61,0x6c,0x6a,0x6f,0x69,0x6e,0x69,0x6e,
+0x67,0x25,0x19,0x6f,0x69,0x6e,0x63,0x61,0x75,0x73,0x69,0x6e,0x67,0x23,0,0x13,
+0x6e,0xc0,0xd0,0x73,0x49,0x73,0x48,0x75,0x78,0x77,0x84,0x78,0x9c,0x7a,0x10,0x77,
+0x58,1,0x6a,0x75,0x73,0x13,0x70,0x61,0x63,0x65,0x59,4,0x61,0x51,0x67,0x53,
+0x70,0x28,0x75,0x30,0x79,0x57,0x54,0x12,0x61,0x63,0x65,0x55,0x16,0x72,0x72,0x6f,
+0x67,0x61,0x74,0x65,0x53,0x15,0x6e,0x6b,0x6e,0x6f,0x77,0x6e,0x21,1,0x6a,0x5d,
+0x6f,0x17,0x72,0x64,0x6a,0x6f,0x69,0x6e,0x65,0x72,0x5d,0x10,0x78,0x21,0x6e,0x60,
+0x6f,0xa2,0x41,0x70,0xa2,0x50,0x71,0xa2,0x6e,0x72,1,0x65,0x24,0x69,0x6f,0x1e,
+0x67,0x69,0x6f,0x6e,0x61,0x6c,0x69,0x6e,0x64,0x69,0x63,0x61,0x74,0x6f,0x72,0x6f,
+4,0x65,0x3e,0x6c,0x5b,0x6f,0x46,0x73,0x45,0x75,0x46,0x14,0x6d,0x65,0x72,0x69,
+0x63,0x47,0x15,0x78,0x74,0x6c,0x69,0x6e,0x65,0x5b,0x17,0x6e,0x73,0x74,0x61,0x72,
+0x74,0x65,0x72,0x45,0x10,0x70,0x48,0x1c,0x65,0x6e,0x70,0x75,0x6e,0x63,0x74,0x75,
+0x61,0x74,0x69,0x6f,0x6e,0x49,1,0x6f,0x3e,0x72,0x4c,0x1a,0x65,0x66,0x69,0x78,
+0x6e,0x75,0x6d,0x65,0x72,0x69,0x63,0x4d,0x4a,0x1b,0x73,0x74,0x66,0x69,0x78,0x6e,
+0x75,0x6d,0x65,0x72,0x69,0x63,0x4b,0x10,0x75,0x4e,0x16,0x6f,0x74,0x61,0x74,0x69,
+0x6f,0x6e,0x4f,0x68,0x7b,0x68,0x50,0x69,0x86,0x6a,0xa2,0x61,0x6c,0xa2,0x65,0x6d,
+0x1c,0x61,0x6e,0x64,0x61,0x74,0x6f,0x72,0x79,0x62,0x72,0x65,0x61,0x6b,0x2d,4,
+0x32,0x5f,0x33,0x61,0x65,0x34,0x6c,0x6d,0x79,0x3a,0x13,0x70,0x68,0x65,0x6e,0x3b,
+0x19,0x62,0x72,0x65,0x77,0x6c,0x65,0x74,0x74,0x65,0x72,0x6d,2,0x64,0x28,0x6e,
+0x3c,0x73,0x41,0x3c,0x18,0x65,0x6f,0x67,0x72,0x61,0x70,0x68,0x69,0x63,0x3d,0x3e,
+1,0x66,0x3e,0x73,0x11,0x65,0x70,1,0x61,0x22,0x65,0x14,0x72,0x61,0x62,0x6c,
+0x65,0x3f,0x18,0x69,0x78,0x6e,0x75,0x6d,0x65,0x72,0x69,0x63,0x41,2,0x6c,0x63,
+0x74,0x65,0x76,0x67,1,0x66,0x43,0x69,0x15,0x6e,0x65,0x66,0x65,0x65,0x64,0x43,
+0x61,0x40,0x62,0x70,0x63,0xa2,0x55,0x65,0xa2,0xdb,0x67,0x10,0x6c,0x38,0x11,0x75,
+0x65,0x39,2,0x69,0x23,0x6c,0x34,0x6d,0x16,0x62,0x69,0x67,0x75,0x6f,0x75,0x73,
+0x23,0x24,0x17,0x70,0x68,0x61,0x62,0x65,0x74,0x69,0x63,0x25,4,0x32,0x27,0x61,
+0x29,0x62,0x2b,0x6b,0x2d,0x72,0x12,0x65,0x61,0x6b,2,0x61,0x36,0x62,0x3e,0x73,
+0x15,0x79,0x6d,0x62,0x6f,0x6c,0x73,0x57,0x13,0x66,0x74,0x65,0x72,0x29,1,0x65,
+0x2a,0x6f,0x11,0x74,0x68,0x27,0x13,0x66,0x6f,0x72,0x65,0x2b,7,0x6d,0x51,0x6d,
+0x33,0x6f,0x28,0x70,0x69,0x72,0x35,1,0x6d,0x76,0x6e,1,0x64,0x3c,0x74,0x1a,
+0x69,0x6e,0x67,0x65,0x6e,0x74,0x62,0x72,0x65,0x61,0x6b,0x2f,0x15,0x69,0x74,0x69,
+0x6f,0x6e,0x61,0x1f,0x6c,0x6a,0x61,0x70,0x61,0x6e,0x65,0x73,0x65,0x73,0x74,0x61,
+0x72,0x74,0x65,0x72,0x6b,1,0x62,0x3a,0x70,0x19,0x6c,0x65,0x78,0x63,0x6f,0x6e,
+0x74,0x65,0x78,0x74,0x51,0x18,0x69,0x6e,0x69,0x6e,0x67,0x6d,0x61,0x72,0x6b,0x33,
+0x61,0x6a,0x62,0x2f,0x6a,0x6b,0x6c,0x30,0x13,0x6f,0x73,0x65,0x70,1,0x61,0x38,
+0x75,0x18,0x6e,0x63,0x74,0x75,0x61,0x74,0x69,0x6f,0x6e,0x31,0x18,0x72,0x65,0x6e,
+0x74,0x68,0x65,0x73,0x69,0x73,0x69,0x1b,0x72,0x72,0x69,0x61,0x67,0x65,0x72,0x65,
+0x74,0x75,0x72,0x6e,0x35,2,0x62,0x3e,0x6d,0x46,0x78,0x36,0x18,0x63,0x6c,0x61,
+0x6d,0x61,0x74,0x69,0x6f,0x6e,0x37,0x70,0x12,0x61,0x73,0x65,0x71,0x72,0x16,0x6f,
+0x64,0x69,0x66,0x69,0x65,0x72,0x73,1,0x64,0x42,0x6e,1,0x6f,0x32,0x75,0x26,
+0x14,0x6d,0x65,0x72,0x69,0x63,0x27,0x11,0x6e,0x65,0x21,1,0x65,0x2e,0x69,0x24,
+0x12,0x67,0x69,0x74,0x25,0x22,0x14,0x63,0x69,0x6d,0x61,0x6c,0x23,0,0x18,0x6e,
+0xc3,0xe6,0x74,0xc1,0x51,0x77,0x7a,0x77,0xa2,0x4c,0x78,0xa2,0x60,0x79,0xa2,0x6a,
+0x7a,6,0x73,0x1e,0x73,0x34,0x78,0x42,0x79,0x48,0x7a,0x11,0x7a,0x7a,0xa3,0x67,
+0x10,0x79,1,0x65,0xa3,0xae,0x6d,0xa3,0x81,0x11,0x78,0x78,0xa3,0x66,0x11,0x79,
+0x79,0x21,0x61,0x30,0x69,0x58,0x6d,0x11,0x74,0x68,0xa3,0x80,0x10,0x6e,1,0x61,
+0x26,0x62,0xa3,0xb1,0x1a,0x62,0x61,0x7a,0x61,0x72,0x73,0x71,0x75,0x61,0x72,0x65,
+0xa3,0xb1,0x11,0x6e,0x68,0x23,1,0x61,0x2c,0x6f,0x11,0x6c,0x65,0xa3,0x9b,0x11,
+0x72,0x61,0xa2,0x92,0x15,0x6e,0x67,0x63,0x69,0x74,0x69,0xa3,0x92,1,0x70,0x2c,
+0x73,0x11,0x75,0x78,0xa3,0x65,0x11,0x65,0x6f,0x9b,0x10,0x69,0x72,0x11,0x69,0x69,
+0x73,0x74,0x4a,0x75,0xa2,0xba,0x76,1,0x61,0x2c,0x69,0x11,0x73,0x70,0xa3,0x64,
+0x10,0x69,0xa2,0x63,0x10,0x69,0xa3,0x63,5,0x67,0x36,0x67,0x68,0x68,0x6c,0x69,
+2,0x62,0x3a,0x66,0x4a,0x72,0x10,0x68,0xa2,0x9e,0x12,0x75,0x74,0x61,0xa3,0x9e,
+1,0x65,0x24,0x74,0x6f,0x12,0x74,0x61,0x6e,0x6f,0x14,0x69,0x6e,0x61,0x67,0x68,
+0x99,0x11,0x6c,0x67,0x75,0x10,0x61,1,0x61,0x24,0x69,0x6d,0x6a,0x11,0x6e,0x61,
+0x6b,0x61,0x30,0x65,0xa2,0x5b,0x66,0x11,0x6e,0x67,0x99,6,0x6c,0x21,0x6c,0x32,
+0x6d,0x38,0x6e,0x44,0x76,0x10,0x74,0xa3,0x7f,1,0x65,0x89,0x75,0x97,1,0x69,
+0x24,0x6c,0x67,0x10,0x6c,0x67,0x10,0x67,0xa2,0x9a,0x11,0x75,0x74,0xa3,0x9a,0x67,
+0x36,0x69,0x52,0x6b,0x10,0x72,0xa2,0x99,0x10,0x69,0xa3,0x99,1,0x61,0x30,0x62,
+0x7a,0x13,0x61,0x6e,0x77,0x61,0x7b,0x12,0x6c,0x6f,0x67,0x75,2,0x6c,0x32,0x74,
+0x34,0x76,0x12,0x69,0x65,0x74,0xa3,0x7f,0x10,0x65,0x89,0x12,0x68,0x61,0x6d,0xa3,
+0x6a,1,0x6c,0x2a,0x6e,0x10,0x67,0xa3,0x62,0x10,0x75,0x68,0x11,0x67,0x75,0x69,
+1,0x67,0x32,0x6e,0x14,0x6b,0x6e,0x6f,0x77,0x6e,0xa3,0x67,0x11,0x61,0x72,0x8a,
+0x13,0x69,0x74,0x69,0x63,0x8b,0x71,0xc1,0x13,0x71,0xa2,0xde,0x72,0xa2,0xe3,0x73,
+6,0x69,0x8a,0x69,0x72,0x6f,0xa2,0x4c,0x75,0xa2,0x75,0x79,1,0x6c,0x46,0x72,
+4,0x63,0x65,0x65,0xa3,0x5f,0x69,0x2c,0x6a,0xa3,0x60,0x6e,0xa3,0x61,0x11,0x61,
+0x63,0x65,0x10,0x6f,0x94,0x16,0x74,0x69,0x6e,0x61,0x67,0x72,0x69,0x95,2,0x64,
+0x3c,0x67,0x4c,0x6e,1,0x64,0xa3,0x91,0x68,0x62,0x12,0x61,0x6c,0x61,0x63,0x10,
+0x64,0xa2,0xa6,0x12,0x68,0x61,0x6d,0xa3,0xa6,0x17,0x6e,0x77,0x72,0x69,0x74,0x69,
+0x6e,0x67,0xa3,0x70,2,0x67,0x3a,0x72,0x52,0x79,0x10,0x6f,0xa2,0xb0,0x12,0x6d,
+0x62,0x6f,0xa3,0xb0,1,0x64,0x26,0x6f,0xa3,0xb8,0xa2,0xb7,0x12,0x69,0x61,0x6e,
+0xa3,0xb7,0x10,0x61,0xa2,0x98,0x16,0x73,0x6f,0x6d,0x70,0x65,0x6e,0x67,0xa3,0x98,
+0x11,0x6e,0x64,0xa2,0x71,0x14,0x61,0x6e,0x65,0x73,0x65,0xa3,0x71,0x61,0x5c,0x67,
+0xa2,0x43,0x68,1,0x61,0x2a,0x72,0x10,0x64,0xa3,0x97,2,0x72,0x28,0x76,0x30,
+0x77,0x87,0x12,0x61,0x64,0x61,0xa3,0x97,0x12,0x69,0x61,0x6e,0x87,2,0x6d,0x40,
+0x72,0x58,0x75,0x10,0x72,0xa2,0x6f,0x15,0x61,0x73,0x68,0x74,0x72,0x61,0xa3,0x6f,
+1,0x61,0x26,0x72,0xa3,0x7e,0x14,0x72,0x69,0x74,0x61,0x6e,0xa3,0x7e,1,0x61,
+0xa3,0x5e,0x62,0xa3,0x85,0x11,0x6e,0x77,0xa3,0x70,0x11,0x61,0x61,1,0x63,0x2f,
+0x69,0x23,3,0x65,0x3e,0x6a,0x48,0x6f,0x4e,0x75,0x10,0x6e,1,0x69,0x24,0x72,
+0x61,0x10,0x63,0x61,0x13,0x6a,0x61,0x6e,0x67,0xa3,0x6e,0x11,0x6e,0x67,0xa3,0x6e,
+1,0x68,0x2a,0x72,0x10,0x6f,0xa3,0x5d,0x10,0x67,0xa3,0xb6,0x6e,0xa2,0x83,0x6f,
+0xa2,0xca,0x70,5,0x6c,0x1e,0x6c,0x44,0x72,0x4a,0x73,0x1b,0x61,0x6c,0x74,0x65,
+0x72,0x70,0x61,0x68,0x6c,0x61,0x76,0x69,0xa3,0x7b,0x11,0x72,0x64,0xa3,0x5c,0x11,
+0x74,0x69,0xa3,0x7d,0x61,0x7c,0x65,0xa2,0x54,0x68,3,0x61,0x3e,0x6c,0x4e,0x6e,
+0x5e,0x6f,0x16,0x65,0x6e,0x69,0x63,0x69,0x61,0x6e,0xa3,0x5b,0x10,0x67,0xa2,0x5a,
+0x12,0x73,0x70,0x61,0xa3,0x5a,2,0x69,0xa3,0x7a,0x70,0xa3,0x7b,0x76,0xa3,0x7c,
+0x10,0x78,0xa3,0x5b,2,0x68,0x3e,0x6c,0x50,0x75,0x10,0x63,0xa2,0xa5,0x14,0x69,
+0x6e,0x68,0x61,0x75,0xa3,0xa5,0x17,0x61,0x77,0x68,0x68,0x6d,0x6f,0x6e,0x67,0xa3,
+0x4b,0x10,0x6d,0xa2,0x90,0x14,0x79,0x72,0x65,0x6e,0x65,0xa3,0x90,0x11,0x72,0x6d,
+0xa3,0x59,5,0x6b,0x1e,0x6b,0x32,0x73,0x4a,0x75,0x12,0x73,0x68,0x75,0xa3,0x96,
+1,0x67,0x2e,0x6f,0xa2,0x57,0x10,0x6f,0xa3,0x57,0x10,0x62,0xa3,0x84,0x11,0x68,
+0x75,0xa3,0x96,0x61,0x42,0x62,0x60,0x65,0x10,0x77,1,0x61,0xa3,0xaa,0x74,0x14,
+0x61,0x69,0x6c,0x75,0x65,0x97,1,0x62,0x2a,0x72,0x10,0x62,0xa3,0x8e,0x15,0x61,
+0x74,0x61,0x65,0x61,0x6e,0xa3,0x8f,0x11,0x61,0x74,0xa3,0x8f,3,0x67,0x5a,0x6c,
+0x6c,0x72,0xa2,0x93,0x73,2,0x61,0x36,0x67,0x3c,0x6d,0x10,0x61,0x84,0x12,0x6e,
+0x79,0x61,0x85,0x11,0x67,0x65,0xa3,0xab,0x10,0x65,0xa3,0xab,1,0x61,0x2a,0x68,
+0x11,0x61,0x6d,0x5b,0x10,0x6d,0x5b,1,0x63,0xa2,0x60,0x64,5,0x70,0x37,0x70,
+0x36,0x73,0x54,0x74,0x14,0x75,0x72,0x6b,0x69,0x63,0xa3,0x58,0x11,0x65,0x72,1,
+0x6d,0x2c,0x73,0x12,0x69,0x61,0x6e,0x9b,0x11,0x69,0x63,0xa3,0x59,0x10,0x6f,1,
+0x67,0x3a,0x75,0x18,0x74,0x68,0x61,0x72,0x61,0x62,0x69,0x61,0x6e,0xa3,0x85,0x13,
+0x64,0x69,0x61,0x6e,0xa3,0xb8,0x68,0x42,0x69,0x54,0x6e,0x1a,0x6f,0x72,0x74,0x68,
+0x61,0x72,0x61,0x62,0x69,0x61,0x6e,0xa3,0x8e,0x17,0x75,0x6e,0x67,0x61,0x72,0x69,
+0x61,0x6e,0xa3,0x4c,0x14,0x74,0x61,0x6c,0x69,0x63,0x5d,1,0x68,0x26,0x6b,0xa3,
+0x6d,0x12,0x69,0x6b,0x69,0xa3,0x6d,2,0x69,0x2c,0x6b,0x30,0x79,0x10,0x61,0x5f,
+0x11,0x79,0x61,0x5f,0x10,0x68,0xa3,0x58,0x68,0xc2,0xef,0x6b,0xc2,0xa,0x6b,0xa4,
+0x17,0x6c,0xa4,0x98,0x6d,8,0x6f,0x46,0x6f,0x48,0x72,0x74,0x74,0x80,0x75,0x86,
+0x79,1,0x61,0x28,0x6d,0x10,0x72,0x59,0x13,0x6e,0x6d,0x61,0x72,0x59,2,0x64,
+0x2e,0x6e,0x32,0x6f,0x10,0x6e,0xa3,0x72,0x10,0x69,0xa3,0xa3,0x10,0x67,0x56,0x14,
+0x6f,0x6c,0x69,0x61,0x6e,0x57,0x10,0x6f,0xa2,0x95,0x10,0x6f,0xa3,0x95,0x11,0x65,
+0x69,0xa3,0x73,0x11,0x6c,0x74,0xa2,0xa4,0x12,0x61,0x6e,0x69,0xa3,0xa4,0x61,0x36,
+0x65,0xa2,0x67,0x69,0xa2,0xbd,0x6c,0x11,0x79,0x6d,0x55,6,0x6e,0x38,0x6e,0x32,
+0x72,0x5c,0x73,0x6c,0x79,0x10,0x61,0xa3,0x55,1,0x64,0x38,0x69,0xa2,0x79,0x15,
+0x63,0x68,0x61,0x65,0x61,0x6e,0xa3,0x79,0xa2,0x54,0x12,0x61,0x69,0x63,0xa3,0x54,
+0x10,0x63,0xa2,0xa9,0x12,0x68,0x65,0x6e,0xa3,0xa9,0x18,0x61,0x72,0x61,0x6d,0x67,
+0x6f,0x6e,0x64,0x69,0xa3,0xaf,0x68,0x36,0x6b,0x4c,0x6c,0x15,0x61,0x79,0x61,0x6c,
+0x61,0x6d,0x55,1,0x61,0x26,0x6a,0xa3,0xa0,0x13,0x6a,0x61,0x6e,0x69,0xa3,0xa0,
+0x10,0x61,0xa2,0xb4,0x12,0x73,0x61,0x72,0xa3,0xb4,3,0x64,0x78,0x65,0x94,0x6e,
+0xa2,0x42,0x72,1,0x63,0xa3,0x8d,0x6f,0xa2,0x56,0x13,0x69,0x74,0x69,0x63,1,
+0x63,0x3c,0x68,0x19,0x69,0x65,0x72,0x6f,0x67,0x6c,0x79,0x70,0x68,0x73,0xa3,0x56,
+0x15,0x75,0x72,0x73,0x69,0x76,0x65,0xa3,0x8d,1,0x65,0x26,0x66,0xa3,0xb5,0x16,
+0x66,0x61,0x69,0x64,0x72,0x69,0x6e,0xa3,0xb5,0x17,0x74,0x65,0x69,0x6d,0x61,0x79,
+0x65,0x6b,0xa3,0x73,0x10,0x64,0xa2,0x8c,0x17,0x65,0x6b,0x69,0x6b,0x61,0x6b,0x75,
+0x69,0xa3,0x8c,0x11,0x61,0x6f,0xa3,0x5c,5,0x6f,0x14,0x6f,0x30,0x70,0x36,0x74,
+0x11,0x68,0x69,0xa3,0x78,0x11,0x72,0x65,0xa3,0x77,0x11,0x65,0x6c,0xa3,0x8a,0x61,
+0x2e,0x68,0x98,0x6e,0x11,0x64,0x61,0x4b,4,0x69,0x3c,0x6c,0x44,0x6e,0x48,0x74,
+0x56,0x79,0x13,0x61,0x68,0x6c,0x69,0xa3,0x4f,0x12,0x74,0x68,0x69,0xa3,0x78,0x10,
+0x69,0xa3,0x4f,1,0x61,0x4d,0x6e,0x12,0x61,0x64,0x61,0x4b,0x14,0x61,0x6b,0x61,
+0x6e,0x61,0x4c,0x19,0x6f,0x72,0x68,0x69,0x72,0x61,0x67,0x61,0x6e,0x61,0x8d,3,
+0x61,0x3c,0x6d,0x4e,0x6f,0x5a,0x75,0x15,0x64,0x61,0x77,0x61,0x64,0x69,0xa3,0x91,
+0x10,0x72,0x92,0x15,0x6f,0x73,0x68,0x74,0x68,0x69,0x93,1,0x65,0x24,0x72,0x4f,
+0x10,0x72,0x4f,0x10,0x6a,0xa2,0x9d,0x11,0x6b,0x69,0xa3,0x9d,4,0x61,0x5c,0x65,
+0x90,0x69,0xa0,0x6f,0xa2,0x5d,0x79,1,0x63,0x34,0x64,0x10,0x69,0xa2,0x6c,0x11,
+0x61,0x6e,0xa3,0x6c,0x10,0x69,0xa2,0x6b,0x11,0x61,0x6e,0xa3,0x6b,2,0x6e,0x42,
+0x6f,0x46,0x74,3,0x66,0xa3,0x50,0x67,0xa3,0x51,0x69,0x24,0x6e,0x53,0x10,0x6e,
+0x53,0x10,0x61,0xa3,0x6a,0x50,0x10,0x6f,0x51,0x11,0x70,0x63,0xa2,0x52,0x11,0x68,
+0x61,0xa3,0x52,2,0x6d,0x2e,0x6e,0x36,0x73,0x10,0x75,0xa3,0x83,0x10,0x62,0x80,
+0x10,0x75,0x81,2,0x61,0xa3,0x53,0x62,0x83,0x65,0x11,0x61,0x72,1,0x61,0xa3,
+0x53,0x62,0x83,0x11,0x6d,0x61,0xa3,0x8b,0x68,0x6e,0x69,0xa2,0x91,0x6a,2,0x61,
+0x30,0x70,0x52,0x75,0x11,0x72,0x63,0xa3,0x94,1,0x6d,0x38,0x76,0x10,0x61,0xa2,
+0x4e,0x13,0x6e,0x65,0x73,0x65,0xa3,0x4e,0x10,0x6f,0xa3,0xad,0x11,0x61,0x6e,0xa3,
+0x69,6,0x6c,0x1a,0x6c,0x34,0x6d,0x3a,0x72,0x40,0x75,0x11,0x6e,0x67,0xa3,0x4c,
+0x11,0x75,0x77,0xa3,0x9c,0x11,0x6e,0x67,0xa3,0x4b,0x11,0x6b,0x74,0x8d,0x61,0x3c,
+0x65,0xa2,0x43,0x69,0x11,0x72,0x61,0x48,0x13,0x67,0x61,0x6e,0x61,0x49,1,0x6e,
+0x34,0x74,0x10,0x72,0xa2,0xa2,0x11,0x61,0x6e,0xa3,0xa2,0x42,6,0x6f,0xe,0x6f,
+0x77,0x73,0xa3,0x49,0x74,0xa3,0x4a,0x75,0x12,0x6e,0x6f,0x6f,0x77,0x62,0xa3,0xac,
+0x67,0x3e,0x69,0x42,0x19,0x66,0x69,0x72,0x6f,0x68,0x69,0x6e,0x67,0x79,0x61,0xa3,
+0xb6,0x44,0x11,0x75,0x6c,0x45,0x11,0x62,0x72,0x46,0x11,0x65,0x77,0x47,2,0x6d,
+0x2e,0x6e,0x4a,0x74,0x11,0x61,0x6c,0x5d,0x1c,0x70,0x65,0x72,0x69,0x61,0x6c,0x61,
+0x72,0x61,0x6d,0x61,0x69,0x63,0xa3,0x74,2,0x64,0x66,0x68,0x6a,0x73,0x1b,0x63,
+0x72,0x69,0x70,0x74,0x69,0x6f,0x6e,0x61,0x6c,0x70,0x61,1,0x68,0x32,0x72,0x14,
+0x74,0x68,0x69,0x61,0x6e,0xa3,0x7d,0x13,0x6c,0x61,0x76,0x69,0xa3,0x7a,0x10,0x73,
+0xa3,0x4d,0x15,0x65,0x72,0x69,0x74,0x65,0x64,0x23,0x64,0xc0,0xec,0x64,0xa2,0x7a,
+0x65,0xa2,0xad,0x67,4,0x65,0x82,0x6c,0x9a,0x6f,0xa2,0x46,0x72,0xa2,0x55,0x75,
+2,0x6a,0x3c,0x6e,0x4e,0x72,1,0x6d,0x24,0x75,0x41,0x13,0x75,0x6b,0x68,0x69,
+0x41,1,0x61,0x24,0x72,0x3f,0x13,0x72,0x61,0x74,0x69,0x3f,0x18,0x6a,0x61,0x6c,
+0x61,0x67,0x6f,0x6e,0x64,0x69,0xa3,0xb3,0x10,0x6f,1,0x6b,0xa3,0x48,0x72,0x38,
+0x13,0x67,0x69,0x61,0x6e,0x39,0x11,0x61,0x67,0x90,0x15,0x6f,0x6c,0x69,0x74,0x69,
+0x63,0x91,1,0x6e,0x30,0x74,0x10,0x68,0x3a,0x11,0x69,0x63,0x3b,1,0x67,0xa3,
+0xb3,0x6d,0xa3,0xaf,1,0x61,0x32,0x65,1,0x65,0x24,0x6b,0x3d,0x10,0x6b,0x3d,
+0x10,0x6e,0xa2,0x89,0x12,0x74,0x68,0x61,0xa3,0x89,3,0x65,0x42,0x6f,0x68,0x73,
+0x76,0x75,0x11,0x70,0x6c,0xa2,0x87,0x13,0x6f,0x79,0x61,0x6e,0xa3,0x87,1,0x73,
+0x38,0x76,0x10,0x61,0x34,0x15,0x6e,0x61,0x67,0x61,0x72,0x69,0x35,0x13,0x65,0x72,
+0x65,0x74,0x33,0x11,0x67,0x72,0xa2,0xb2,0x10,0x61,0xa3,0xb2,0x11,0x72,0x74,0x33,
+2,0x67,0x3a,0x6c,0x72,0x74,0x11,0x68,0x69,0x36,0x13,0x6f,0x70,0x69,0x63,0x37,
+0x10,0x79,2,0x64,0xa3,0x45,0x68,0xa3,0x46,0x70,0xa2,0x47,0x1e,0x74,0x69,0x61,
+0x6e,0x68,0x69,0x65,0x72,0x6f,0x67,0x6c,0x79,0x70,0x68,0x73,0xa3,0x47,0x11,0x62,
+0x61,0xa2,0x88,0x12,0x73,0x61,0x6e,0xa3,0x88,0x61,0xa2,0xa2,0x62,0xa4,7,0x63,
+6,0x6f,0x3d,0x6f,0x5a,0x70,0x76,0x75,0x7a,0x79,1,0x70,0x3e,0x72,2,0x69,
+0x2a,0x6c,0x31,0x73,0xa3,0x44,0x13,0x6c,0x6c,0x69,0x63,0x31,0x13,0x72,0x69,0x6f,
+0x74,0x7f,1,0x6d,0x30,0x70,0x10,0x74,0x2e,0x11,0x69,0x63,0x2f,0x12,0x6d,0x6f,
+0x6e,0x21,0x11,0x72,0x74,0x7f,0x16,0x6e,0x65,0x69,0x66,0x6f,0x72,0x6d,0xa3,0x65,
+0x61,0x32,0x68,0xa2,0x41,0x69,0x11,0x72,0x74,0xa3,0x43,3,0x6b,0x4c,0x6e,0x50,
+0x72,0x76,0x75,0x1d,0x63,0x61,0x73,0x69,0x61,0x6e,0x61,0x6c,0x62,0x61,0x6e,0x69,
+0x61,0x6e,0xa3,0x9f,0x10,0x6d,0xa3,0x76,1,0x61,0x24,0x73,0x71,0x1d,0x64,0x69,
+0x61,0x6e,0x61,0x62,0x6f,0x72,0x69,0x67,0x69,0x6e,0x61,0x6c,0x71,0x10,0x69,0xa2,
+0x68,0x11,0x61,0x6e,0xa3,0x68,1,0x61,0x34,0x65,0x10,0x72,0x2c,0x13,0x6f,0x6b,
+0x65,0x65,0x2d,1,0x6b,0x26,0x6d,0xa3,0x42,0x11,0x6d,0x61,0xa3,0x76,6,0x68,
+0x4a,0x68,0x48,0x6e,0x4e,0x72,0x76,0x76,1,0x65,0x2a,0x73,0x10,0x74,0xa3,0x75,
+0x13,0x73,0x74,0x61,0x6e,0xa3,0x75,0x11,0x6f,0x6d,0xa3,0xa1,0x11,0x61,0x74,0x1f,
+0x6f,0x6c,0x69,0x61,0x6e,0x68,0x69,0x65,0x72,0x6f,0x67,0x6c,0x79,0x70,0x68,0x73,
+0xa3,0x9c,1,0x61,0x3e,0x6d,2,0x65,0x2a,0x69,0xa3,0x74,0x6e,0x27,0x13,0x6e,
+0x69,0x61,0x6e,0x27,0x10,0x62,0x24,0x11,0x69,0x63,0x25,0x64,0x30,0x66,0x44,0x67,
+0x11,0x68,0x62,0xa3,0x9f,0x10,0x6c,1,0x61,0x26,0x6d,0xa3,0xa7,0x10,0x6d,0xa3,
+0xa7,0x11,0x61,0x6b,0xa3,0x93,6,0x6c,0x3c,0x6c,0x52,0x6f,0x56,0x72,0x66,0x75,
+1,0x67,0x30,0x68,1,0x64,0x79,0x69,0x10,0x64,0x79,0x10,0x69,0x8e,0x13,0x6e,
+0x65,0x73,0x65,0x8f,0x11,0x69,0x73,0xa1,0x11,0x70,0x6f,0x2a,0x13,0x6d,0x6f,0x66,
+0x6f,0x2b,0x10,0x61,1,0x68,0x2e,0x69,0x7c,0x12,0x6c,0x6c,0x65,0x7d,0xa2,0x41,
+0x11,0x6d,0x69,0xa3,0x41,0x61,0x48,0x65,0x9c,0x68,1,0x61,0x2a,0x6b,0x10,0x73,
+0xa3,0xa8,0x15,0x69,0x6b,0x73,0x75,0x6b,0x69,0xa3,0xa8,3,0x6c,0x3a,0x6d,0x48,
+0x73,0x54,0x74,1,0x61,0x24,0x6b,0x9f,0x10,0x6b,0x9f,0x10,0x69,0x9c,0x13,0x6e,
+0x65,0x73,0x65,0x9d,0x10,0x75,0xa2,0x82,0x10,0x6d,0xa3,0x82,0x10,0x73,0xa2,0x86,
+0x13,0x61,0x76,0x61,0x68,0xa3,0x86,0x11,0x6e,0x67,0x28,0x12,0x61,0x6c,0x69,0x29,
+3,0x6c,0x42,0x6e,0x90,0x74,0xa2,0x46,0x76,0x24,0x17,0x6f,0x77,0x65,0x6c,0x6a,
+0x61,0x6d,0x6f,0x25,0x22,1,0x65,0x54,0x76,0x28,1,0x73,0x38,0x74,0x2a,0x17,
+0x73,0x79,0x6c,0x6c,0x61,0x62,0x6c,0x65,0x2b,0x16,0x79,0x6c,0x6c,0x61,0x62,0x6c,
+0x65,0x29,0x18,0x61,0x64,0x69,0x6e,0x67,0x6a,0x61,0x6d,0x6f,0x23,1,0x61,0x21,
+0x6f,0x1a,0x74,0x61,0x70,0x70,0x6c,0x69,0x63,0x61,0x62,0x6c,0x65,0x21,0x26,0x1a,
+0x72,0x61,0x69,0x6c,0x69,0x6e,0x67,0x6a,0x61,0x6d,0x6f,0x27,1,0x6e,0x2c,0x79,
+0x22,0x11,0x65,0x73,0x23,0x20,0x10,0x6f,0x21,1,0x6e,0x2c,0x79,0x22,0x11,0x65,
+0x73,0x23,0x20,0x10,0x6f,0x21,2,0x6d,0x30,0x6e,0x3a,0x79,0x22,0x11,0x65,0x73,
+0x23,0x24,0x13,0x61,0x79,0x62,0x65,0x25,0x20,0x10,0x6f,0x21,2,0x6d,0x30,0x6e,
 0x3a,0x79,0x22,0x11,0x65,0x73,0x23,0x24,0x13,0x61,0x79,0x62,0x65,0x25,0x20,0x10,
-0x6f,0x21,2,0x6d,0x30,0x6e,0x3a,0x79,0x22,0x11,0x65,0x73,0x23,0x24,0x13,0x61,
-0x79,0x62,0x65,0x25,0x20,0x10,0x6f,0x21,0xb,0x72,0x39,0x76,0xc,0x76,0x33,0x78,
-0x2a,0x7a,0x11,0x77,0x6a,0x43,0x10,0x78,0x21,0x72,0x28,0x73,0x50,0x74,0x31,1,
-0x65,0x24,0x69,0x39,0x1e,0x67,0x69,0x6f,0x6e,0x61,0x6c,0x69,0x6e,0x64,0x69,0x63,
-0x61,0x74,0x6f,0x72,0x39,1,0x6d,0x35,0x70,0x18,0x61,0x63,0x69,0x6e,0x67,0x6d,
-0x61,0x72,0x6b,0x35,0x6c,0x1f,0x6c,0x3c,0x6f,0x4a,0x70,1,0x70,0x37,0x72,0x14,
-0x65,0x70,0x65,0x6e,0x64,0x37,0x28,1,0x66,0x2b,0x76,0x2c,0x10,0x74,0x2f,0x13,
-0x74,0x68,0x65,0x72,0x21,0x63,0x4c,0x65,0x64,0x67,1,0x61,0x3a,0x6c,0x19,0x75,
-0x65,0x61,0x66,0x74,0x65,0x72,0x7a,0x77,0x6a,0x41,0x10,0x7a,0x41,2,0x6e,0x23,
-0x6f,0x24,0x72,0x25,0x14,0x6e,0x74,0x72,0x6f,0x6c,0x23,2,0x62,0x34,0x6d,0x4e,
-0x78,0x26,0x13,0x74,0x65,0x6e,0x64,0x27,0x3a,1,0x61,0x24,0x67,0x3d,0x11,0x73,
-0x65,0x3a,0x12,0x67,0x61,0x7a,0x3d,0x3e,0x16,0x6f,0x64,0x69,0x66,0x69,0x65,0x72,
-0x3f,9,0x6e,0x4a,0x6e,0x34,0x6f,0x44,0x73,0x60,0x75,0x94,0x78,0x10,0x78,0x21,
-0x10,0x75,0x2a,0x14,0x6d,0x65,0x72,0x69,0x63,0x2b,1,0x6c,0x2c,0x74,0x12,0x68,
-0x65,0x72,0x21,0x14,0x65,0x74,0x74,0x65,0x72,0x2d,3,0x63,0x36,0x65,0x46,0x70,
-0x31,0x74,0x32,0x12,0x65,0x72,0x6d,0x33,0x3c,0x16,0x6f,0x6e,0x74,0x69,0x6e,0x75,
-0x65,0x3d,0x2e,0x10,0x70,0x2f,0x10,0x70,0x34,0x12,0x70,0x65,0x72,0x35,0x61,0x46,
-0x63,0x52,0x65,0x64,0x66,0x72,0x6c,2,0x65,0x2d,0x66,0x3b,0x6f,0x28,0x12,0x77,
-0x65,0x72,0x29,0x10,0x74,0x22,0x12,0x65,0x72,0x6d,0x23,1,0x6c,0x24,0x72,0x37,
-0x24,0x12,0x6f,0x73,0x65,0x25,0x10,0x78,0x38,0x13,0x74,0x65,0x6e,0x64,0x39,0x10,
-0x6f,0x26,0x13,0x72,0x6d,0x61,0x74,0x27,0,0x10,0x6c,0x88,0x72,0x40,0x72,0x36,
-0x73,0x5e,0x77,0x7a,0x78,0x8a,0x7a,0x11,0x77,0x6a,0x4b,1,0x65,0x24,0x69,0x3b,
-0x1e,0x67,0x69,0x6f,0x6e,0x61,0x6c,0x69,0x6e,0x64,0x69,0x63,0x61,0x74,0x6f,0x72,
-0x3b,1,0x69,0x24,0x71,0x3f,0x18,0x6e,0x67,0x6c,0x65,0x71,0x75,0x6f,0x74,0x65,
-0x3f,0x17,0x73,0x65,0x67,0x73,0x70,0x61,0x63,0x65,0x4d,0x10,0x78,0x21,0x6c,0x36,
-0x6d,0x3c,0x6e,0x76,0x6f,0x13,0x74,0x68,0x65,0x72,0x21,1,0x65,0x23,0x66,0x35,
-3,0x62,0x37,0x69,0x28,0x6c,0x29,0x6e,0x2b,0x10,0x64,1,0x6c,0x34,0x6e,0x11,
-0x75,0x6d,0x2a,0x12,0x6c,0x65,0x74,0x37,0x14,0x65,0x74,0x74,0x65,0x72,0x29,2,
-0x65,0x36,0x6c,0x39,0x75,0x2c,0x14,0x6d,0x65,0x72,0x69,0x63,0x2d,0x14,0x77,0x6c,
-0x69,0x6e,0x65,0x39,0x66,0x3f,0x66,0x40,0x67,0x4e,0x68,0x70,0x6b,0x10,0x61,0x26,
-0x15,0x74,0x61,0x6b,0x61,0x6e,0x61,0x27,0x10,0x6f,0x24,0x13,0x72,0x6d,0x61,0x74,
-0x25,1,0x61,0x3a,0x6c,0x19,0x75,0x65,0x61,0x66,0x74,0x65,0x72,0x7a,0x77,0x6a,
-0x49,0x10,0x7a,0x49,1,0x65,0x24,0x6c,0x3d,0x19,0x62,0x72,0x65,0x77,0x6c,0x65,
-0x74,0x74,0x65,0x72,0x3d,0x61,0x86,0x63,0x92,0x64,0x94,0x65,2,0x62,0x44,0x6d,
-0x5e,0x78,0x2e,0x13,0x74,0x65,0x6e,0x64,0x32,0x15,0x6e,0x75,0x6d,0x6c,0x65,0x74,
-0x2f,0x42,1,0x61,0x24,0x67,0x45,0x11,0x73,0x65,0x42,0x12,0x67,0x61,0x7a,0x45,
-0x46,0x16,0x6f,0x64,0x69,0x66,0x69,0x65,0x72,0x47,0x15,0x6c,0x65,0x74,0x74,0x65,
-0x72,0x23,0x10,0x72,0x31,1,0x6f,0x24,0x71,0x41,0x18,0x75,0x62,0x6c,0x65,0x71,
-0x75,0x6f,0x74,0x65,0x41,2,0x63,0x32,0x6e,0x3c,0x6f,0x22,0x12,0x70,0x65,0x6e,
-0x23,0x24,0x13,0x6c,0x6f,0x73,0x65,0x25,0x20,0x12,0x6f,0x6e,0x65,0x21,0xd,0x6e,
-0xc1,0x86,0x73,0xa8,0x73,0x4c,0x74,0xa2,0x76,0x75,0xa2,0x83,0x7a,0xd8,0x70,0,
-2,0x6c,0xd9,0x20,0,0x70,0xd9,0x40,0,0x73,0xc3,0,0xfe,0xf,0,0,
-0,7,0x6f,0x3c,0x6f,0xff,8,0,0,0,0x70,0x3a,0x75,0x6e,0x79,0x13,
-0x6d,0x62,0x6f,0x6c,0xff,0xf,0,0,0,0x11,0x61,0x63,1,0x65,0x34,0x69,
-0x15,0x6e,0x67,0x6d,0x61,0x72,0x6b,0xa5,0,0x18,0x73,0x65,0x70,0x61,0x72,0x61,
-0x74,0x6f,0x72,0xc3,0,0x16,0x72,0x72,0x6f,0x67,0x61,0x74,0x65,0xe1,0,0,
-0x63,0xff,2,0,0,0,0x65,0x38,0x6b,0xff,4,0,0,0,0x6d,0xff,
-1,0,0,0,0x16,0x70,0x61,0x72,0x61,0x74,0x6f,0x72,0xd9,0x70,0,0x1d,
-0x69,0x74,0x6c,0x65,0x63,0x61,0x73,0x65,0x6c,0x65,0x74,0x74,0x65,0x72,0x31,1,
-0x6e,0x40,0x70,0x1c,0x70,0x65,0x72,0x63,0x61,0x73,0x65,0x6c,0x65,0x74,0x74,0x65,
-0x72,0x25,0x17,0x61,0x73,0x73,0x69,0x67,0x6e,0x65,0x64,0x23,0x6e,0xa2,0x69,0x6f,
-0xa2,0x89,0x70,0xfe,0x30,0xf8,0,0,9,0x69,0x33,0x69,0xff,0x10,0,0,
-0,0x6f,0xfd,0x80,0,0,0x72,0x54,0x73,0xf9,0,0,0x75,0x12,0x6e,0x63,
-0x74,0xfe,0x30,0xf8,0,0,0x15,0x75,0x61,0x74,0x69,0x6f,0x6e,0xff,0x30,0xf8,
-0,0,0x17,0x69,0x76,0x61,0x74,0x65,0x75,0x73,0x65,0xdd,0,0,0x61,0x48,
-0x63,0xfd,0x40,0,0,0x64,0xe9,0,0,0x65,0xfd,0x20,0,0,0x66,0xff,
-0x20,0,0,0,0x1f,0x72,0x61,0x67,0x72,0x61,0x70,0x68,0x73,0x65,0x70,0x61,
-0x72,0x61,0x74,0x6f,0x72,0xd9,0x40,0,0xbe,0,3,0x64,0xa7,0,0x6c,0xab,
-0,0x6f,0x30,0x75,0x13,0x6d,0x62,0x65,0x72,0xbf,0,0xb2,0,0x1b,0x6e,0x73,
-0x70,0x61,0x63,0x69,0x6e,0x67,0x6d,0x61,0x72,0x6b,0xa1,1,0x70,0x92,0x74,0x12,
-0x68,0x65,0x72,0xe6,0x80,1,3,0x6c,0x40,0x6e,0x4a,0x70,0x56,0x73,0x14,0x79,
-0x6d,0x62,0x6f,0x6c,0xff,8,0,0,0,0x14,0x65,0x74,0x74,0x65,0x72,0x61,
-0x14,0x75,0x6d,0x62,0x65,0x72,0xb3,0,0x19,0x75,0x6e,0x63,0x74,0x75,0x61,0x74,
-0x69,0x6f,0x6e,0xfd,0x80,0,0,0x1c,0x65,0x6e,0x70,0x75,0x6e,0x63,0x74,0x75,
-0x61,0x74,0x69,0x6f,0x6e,0xf9,0,0,0x66,0xc0,0xc4,0x66,0xa2,0x47,0x69,0xa2,
-0x64,0x6c,0xa2,0x79,0x6d,0xa4,0xc0,4,0x61,0x6c,0x63,0xa5,0,0x65,0xa3,0x80,
-0x6e,0xa1,0x6f,0x15,0x64,0x69,0x66,0x69,0x65,0x72,1,0x6c,0x38,0x73,0x14,0x79,
-0x6d,0x62,0x6f,0x6c,0xff,4,0,0,0,0x14,0x65,0x74,0x74,0x65,0x72,0x41,
-1,0x72,0x3c,0x74,0x16,0x68,0x73,0x79,0x6d,0x62,0x6f,0x6c,0xff,1,0,0,
-0,0x10,0x6b,0xa5,0xc0,1,0x69,0x32,0x6f,0x13,0x72,0x6d,0x61,0x74,0xdb,0,
-0,0x1d,0x6e,0x61,0x6c,0x70,0x75,0x6e,0x63,0x74,0x75,0x61,0x74,0x69,0x6f,0x6e,
-0xff,0x20,0,0,0,0x10,0x6e,0x1f,0x69,0x74,0x69,0x61,0x6c,0x70,0x75,0x6e,
-0x63,0x74,0x75,0x61,0x74,0x69,0x6f,0x6e,0xff,0x10,0,0,0,0x9c,7,0x6d,
-0x18,0x6d,0x41,0x6f,0x28,0x74,0x31,0x75,0x25,0x60,0x1c,0x77,0x65,0x72,0x63,0x61,
-0x73,0x65,0x6c,0x65,0x74,0x74,0x65,0x72,0x29,0x63,0x3d,0x65,0x28,0x69,0x42,0x6c,
-0x29,0x13,0x74,0x74,0x65,0x72,0x9c,0x15,0x6e,0x75,0x6d,0x62,0x65,0x72,0xab,0,
-0x1a,0x6e,0x65,0x73,0x65,0x70,0x61,0x72,0x61,0x74,0x6f,0x72,0xd9,0x20,0,0x63,
-0x46,0x64,0xa2,0x96,0x65,0x1b,0x6e,0x63,0x6c,0x6f,0x73,0x69,0x6e,0x67,0x6d,0x61,
-0x72,0x6b,0xa3,0x80,0xe6,0x80,1,7,0x6e,0x57,0x6e,0x52,0x6f,0x5e,0x73,0xe1,
-0,0,0x75,0x1b,0x72,0x72,0x65,0x6e,0x63,0x79,0x73,0x79,0x6d,0x62,0x6f,0x6c,
-0xff,2,0,0,0,0x22,0x12,0x74,0x72,0x6c,0xd9,0x80,0,0xdc,0,0,
-1,0x6d,0x62,0x6e,1,0x6e,0x30,0x74,0x12,0x72,0x6f,0x6c,0xd9,0x80,0,0x1f,
-0x65,0x63,0x74,0x6f,0x72,0x70,0x75,0x6e,0x63,0x74,0x75,0x61,0x74,0x69,0x6f,0x6e,
-0xfd,0x40,0,0,0x19,0x62,0x69,0x6e,0x69,0x6e,0x67,0x6d,0x61,0x72,0x6b,0xa5,
-0xc0,0x61,0x58,0x63,0xd9,0x80,0,0x66,0xdb,0,0,0x6c,0x1d,0x6f,0x73,0x65,
-0x70,0x75,0x6e,0x63,0x74,0x75,0x61,0x74,0x69,0x6f,0x6e,0xfd,0x20,0,0,0x18,
-0x73,0x65,0x64,0x6c,0x65,0x74,0x74,0x65,0x72,0x3d,2,0x61,0x32,0x65,0x50,0x69,
-0x12,0x67,0x69,0x74,0xa7,0,0x1c,0x73,0x68,0x70,0x75,0x6e,0x63,0x74,0x75,0x61,
-0x74,0x69,0x6f,0x6e,0xe9,0,0,0x1a,0x63,0x69,0x6d,0x61,0x6c,0x6e,0x75,0x6d,
-0x62,0x65,0x72,0xa7,0
+0x6f,0x21,0xb,0x72,0x39,0x76,0xc,0x76,0x33,0x78,0x2a,0x7a,0x11,0x77,0x6a,0x43,
+0x10,0x78,0x21,0x72,0x28,0x73,0x50,0x74,0x31,1,0x65,0x24,0x69,0x39,0x1e,0x67,
+0x69,0x6f,0x6e,0x61,0x6c,0x69,0x6e,0x64,0x69,0x63,0x61,0x74,0x6f,0x72,0x39,1,
+0x6d,0x35,0x70,0x18,0x61,0x63,0x69,0x6e,0x67,0x6d,0x61,0x72,0x6b,0x35,0x6c,0x1f,
+0x6c,0x3c,0x6f,0x4a,0x70,1,0x70,0x37,0x72,0x14,0x65,0x70,0x65,0x6e,0x64,0x37,
+0x28,1,0x66,0x2b,0x76,0x2c,0x10,0x74,0x2f,0x13,0x74,0x68,0x65,0x72,0x21,0x63,
+0x4c,0x65,0x64,0x67,1,0x61,0x3a,0x6c,0x19,0x75,0x65,0x61,0x66,0x74,0x65,0x72,
+0x7a,0x77,0x6a,0x41,0x10,0x7a,0x41,2,0x6e,0x23,0x6f,0x24,0x72,0x25,0x14,0x6e,
+0x74,0x72,0x6f,0x6c,0x23,2,0x62,0x34,0x6d,0x4e,0x78,0x26,0x13,0x74,0x65,0x6e,
+0x64,0x27,0x3a,1,0x61,0x24,0x67,0x3d,0x11,0x73,0x65,0x3a,0x12,0x67,0x61,0x7a,
+0x3d,0x3e,0x16,0x6f,0x64,0x69,0x66,0x69,0x65,0x72,0x3f,9,0x6e,0x4a,0x6e,0x34,
+0x6f,0x44,0x73,0x60,0x75,0x94,0x78,0x10,0x78,0x21,0x10,0x75,0x2a,0x14,0x6d,0x65,
+0x72,0x69,0x63,0x2b,1,0x6c,0x2c,0x74,0x12,0x68,0x65,0x72,0x21,0x14,0x65,0x74,
+0x74,0x65,0x72,0x2d,3,0x63,0x36,0x65,0x46,0x70,0x31,0x74,0x32,0x12,0x65,0x72,
+0x6d,0x33,0x3c,0x16,0x6f,0x6e,0x74,0x69,0x6e,0x75,0x65,0x3d,0x2e,0x10,0x70,0x2f,
+0x10,0x70,0x34,0x12,0x70,0x65,0x72,0x35,0x61,0x46,0x63,0x52,0x65,0x64,0x66,0x72,
+0x6c,2,0x65,0x2d,0x66,0x3b,0x6f,0x28,0x12,0x77,0x65,0x72,0x29,0x10,0x74,0x22,
+0x12,0x65,0x72,0x6d,0x23,1,0x6c,0x24,0x72,0x37,0x24,0x12,0x6f,0x73,0x65,0x25,
+0x10,0x78,0x38,0x13,0x74,0x65,0x6e,0x64,0x39,0x10,0x6f,0x26,0x13,0x72,0x6d,0x61,
+0x74,0x27,0,0x10,0x6c,0x88,0x72,0x40,0x72,0x36,0x73,0x5e,0x77,0x7a,0x78,0x8a,
+0x7a,0x11,0x77,0x6a,0x4b,1,0x65,0x24,0x69,0x3b,0x1e,0x67,0x69,0x6f,0x6e,0x61,
+0x6c,0x69,0x6e,0x64,0x69,0x63,0x61,0x74,0x6f,0x72,0x3b,1,0x69,0x24,0x71,0x3f,
+0x18,0x6e,0x67,0x6c,0x65,0x71,0x75,0x6f,0x74,0x65,0x3f,0x17,0x73,0x65,0x67,0x73,
+0x70,0x61,0x63,0x65,0x4d,0x10,0x78,0x21,0x6c,0x36,0x6d,0x3c,0x6e,0x76,0x6f,0x13,
+0x74,0x68,0x65,0x72,0x21,1,0x65,0x23,0x66,0x35,3,0x62,0x37,0x69,0x28,0x6c,
+0x29,0x6e,0x2b,0x10,0x64,1,0x6c,0x34,0x6e,0x11,0x75,0x6d,0x2a,0x12,0x6c,0x65,
+0x74,0x37,0x14,0x65,0x74,0x74,0x65,0x72,0x29,2,0x65,0x36,0x6c,0x39,0x75,0x2c,
+0x14,0x6d,0x65,0x72,0x69,0x63,0x2d,0x14,0x77,0x6c,0x69,0x6e,0x65,0x39,0x66,0x3f,
+0x66,0x40,0x67,0x4e,0x68,0x70,0x6b,0x10,0x61,0x26,0x15,0x74,0x61,0x6b,0x61,0x6e,
+0x61,0x27,0x10,0x6f,0x24,0x13,0x72,0x6d,0x61,0x74,0x25,1,0x61,0x3a,0x6c,0x19,
+0x75,0x65,0x61,0x66,0x74,0x65,0x72,0x7a,0x77,0x6a,0x49,0x10,0x7a,0x49,1,0x65,
+0x24,0x6c,0x3d,0x19,0x62,0x72,0x65,0x77,0x6c,0x65,0x74,0x74,0x65,0x72,0x3d,0x61,
+0x86,0x63,0x92,0x64,0x94,0x65,2,0x62,0x44,0x6d,0x5e,0x78,0x2e,0x13,0x74,0x65,
+0x6e,0x64,0x32,0x15,0x6e,0x75,0x6d,0x6c,0x65,0x74,0x2f,0x42,1,0x61,0x24,0x67,
+0x45,0x11,0x73,0x65,0x42,0x12,0x67,0x61,0x7a,0x45,0x46,0x16,0x6f,0x64,0x69,0x66,
+0x69,0x65,0x72,0x47,0x15,0x6c,0x65,0x74,0x74,0x65,0x72,0x23,0x10,0x72,0x31,1,
+0x6f,0x24,0x71,0x41,0x18,0x75,0x62,0x6c,0x65,0x71,0x75,0x6f,0x74,0x65,0x41,2,
+0x63,0x32,0x6e,0x3c,0x6f,0x22,0x12,0x70,0x65,0x6e,0x23,0x24,0x13,0x6c,0x6f,0x73,
+0x65,0x25,0x20,0x12,0x6f,0x6e,0x65,0x21,6,0x6f,0x5c,0x6f,0x4a,0x72,0x5c,0x74,
+0x64,0x76,0x1d,0x69,0x73,0x75,0x61,0x6c,0x6f,0x72,0x64,0x65,0x72,0x6c,0x65,0x66,
+0x74,0x3d,0x18,0x76,0x65,0x72,0x73,0x74,0x72,0x75,0x63,0x6b,0x2d,0x13,0x69,0x67,
+0x68,0x74,0x2f,0x11,0x6f,0x70,0x30,0x12,0x61,0x6e,0x64,2,0x62,0x32,0x6c,0x50,
+0x72,0x13,0x69,0x67,0x68,0x74,0x3b,0x14,0x6f,0x74,0x74,0x6f,0x6d,0x32,0x17,0x61,
+0x6e,0x64,0x72,0x69,0x67,0x68,0x74,0x35,0x12,0x65,0x66,0x74,0x36,0x17,0x61,0x6e,
+0x64,0x72,0x69,0x67,0x68,0x74,0x39,0x62,0x2c,0x6c,0x5c,0x6e,0x10,0x61,0x21,0x14,
+0x6f,0x74,0x74,0x6f,0x6d,0x22,0x12,0x61,0x6e,0x64,1,0x6c,0x2e,0x72,0x13,0x69,
+0x67,0x68,0x74,0x27,0x12,0x65,0x66,0x74,0x25,0x12,0x65,0x66,0x74,0x28,0x17,0x61,
+0x6e,0x64,0x72,0x69,0x67,0x68,0x74,0x2b,0xd,0x6e,0xaa,0x72,0x70,0x72,0x92,0x73,
+0xa2,0x46,0x74,0xa2,0x54,0x76,1,0x69,0x60,0x6f,0x12,0x77,0x65,0x6c,0x62,1,
+0x64,0x3a,0x69,0x19,0x6e,0x64,0x65,0x70,0x65,0x6e,0x64,0x65,0x6e,0x74,0x67,0x17,
+0x65,0x70,0x65,0x6e,0x64,0x65,0x6e,0x74,0x65,1,0x72,0x2e,0x73,0x13,0x61,0x72,
+0x67,0x61,0x61,0x12,0x61,0x6d,0x61,0x5f,0x1d,0x65,0x67,0x69,0x73,0x74,0x65,0x72,
+0x73,0x68,0x69,0x66,0x74,0x65,0x72,0x57,0x1e,0x79,0x6c,0x6c,0x61,0x62,0x6c,0x65,
+0x6d,0x6f,0x64,0x69,0x66,0x69,0x65,0x72,0x59,0x12,0x6f,0x6e,0x65,1,0x6c,0x2c,
+0x6d,0x12,0x61,0x72,0x6b,0x5d,0x14,0x65,0x74,0x74,0x65,0x72,0x5b,0x6e,0x3c,0x6f,
+0x7c,0x70,0x18,0x75,0x72,0x65,0x6b,0x69,0x6c,0x6c,0x65,0x72,0x55,1,0x6f,0x4c,
+0x75,1,0x6b,0x3c,0x6d,0x12,0x62,0x65,0x72,0x50,0x15,0x6a,0x6f,0x69,0x6e,0x65,
+0x72,0x53,0x11,0x74,0x61,0x4f,0x16,0x6e,0x6a,0x6f,0x69,0x6e,0x65,0x72,0x4d,0x13,
+0x74,0x68,0x65,0x72,0x21,0x67,0x3e,0x67,0x4a,0x69,0x64,0x6a,0x82,0x6d,0x1d,0x6f,
+0x64,0x69,0x66,0x79,0x69,0x6e,0x67,0x6c,0x65,0x74,0x74,0x65,0x72,0x4b,0x1c,0x65,
+0x6d,0x69,0x6e,0x61,0x74,0x69,0x6f,0x6e,0x6d,0x61,0x72,0x6b,0x45,0x1e,0x6e,0x76,
+0x69,0x73,0x69,0x62,0x6c,0x65,0x73,0x74,0x61,0x63,0x6b,0x65,0x72,0x47,0x14,0x6f,
+0x69,0x6e,0x65,0x72,0x49,0x61,0xa2,0xba,0x62,0xa2,0xc0,0x63,1,0x61,0xa2,0xa2,
+0x6f,0x16,0x6e,0x73,0x6f,0x6e,0x61,0x6e,0x74,0x2a,8,0x6b,0x67,0x6b,0x48,0x6d,
+0x52,0x70,0x5c,0x73,0xa2,0x42,0x77,0x19,0x69,0x74,0x68,0x73,0x74,0x61,0x63,0x6b,
+0x65,0x72,0x43,0x14,0x69,0x6c,0x6c,0x65,0x72,0x35,0x14,0x65,0x64,0x69,0x61,0x6c,
+0x37,1,0x6c,0x52,0x72,0x10,0x65,1,0x63,0x2e,0x66,0x13,0x69,0x78,0x65,0x64,
+0x3d,0x19,0x65,0x64,0x69,0x6e,0x67,0x72,0x65,0x70,0x68,0x61,0x3b,0x18,0x61,0x63,
+0x65,0x68,0x6f,0x6c,0x64,0x65,0x72,0x39,0x10,0x75,1,0x62,0x3e,0x63,0x1b,0x63,
+0x65,0x65,0x64,0x69,0x6e,0x67,0x72,0x65,0x70,0x68,0x61,0x41,0x15,0x6a,0x6f,0x69,
+0x6e,0x65,0x64,0x3f,0x64,0x4c,0x66,0x52,0x68,0x5a,0x69,0x1e,0x6e,0x69,0x74,0x69,
+0x61,0x6c,0x70,0x6f,0x73,0x74,0x66,0x69,0x78,0x65,0x64,0x33,0x12,0x65,0x61,0x64,
+0x2d,0x13,0x69,0x6e,0x61,0x6c,0x2f,0x18,0x65,0x61,0x64,0x6c,0x65,0x74,0x74,0x65,
+0x72,0x31,0x1d,0x6e,0x74,0x69,0x6c,0x6c,0x61,0x74,0x69,0x6f,0x6e,0x6d,0x61,0x72,
+0x6b,0x29,0x16,0x76,0x61,0x67,0x72,0x61,0x68,0x61,0x23,1,0x69,0x4a,0x72,0x10,
+0x61,0x1f,0x68,0x6d,0x69,0x6a,0x6f,0x69,0x6e,0x69,0x6e,0x67,0x6e,0x75,0x6d,0x62,
+0x65,0x72,0x27,0x12,0x6e,0x64,0x75,0x25,2,0x72,0x38,0x74,0x46,0x75,0x26,0x15,
+0x70,0x72,0x69,0x67,0x68,0x74,0x27,0x20,0x15,0x6f,0x74,0x61,0x74,0x65,0x64,0x21,
+1,0x72,0x24,0x75,0x25,0x22,0x18,0x61,0x6e,0x73,0x66,0x6f,0x72,0x6d,0x65,0x64,
+1,0x72,0x32,0x75,0x15,0x70,0x72,0x69,0x67,0x68,0x74,0x25,0x15,0x6f,0x74,0x61,
+0x74,0x65,0x64,0x23,0xd,0x6e,0xc1,0x86,0x73,0xa8,0x73,0x4c,0x74,0xa2,0x76,0x75,
+0xa2,0x83,0x7a,0xd8,0x70,0,2,0x6c,0xd9,0x20,0,0x70,0xd9,0x40,0,0x73,
+0xc3,0,0xfe,0xf,0,0,0,7,0x6f,0x3c,0x6f,0xff,8,0,0,0,
+0x70,0x3a,0x75,0x6e,0x79,0x13,0x6d,0x62,0x6f,0x6c,0xff,0xf,0,0,0,0x11,
+0x61,0x63,1,0x65,0x34,0x69,0x15,0x6e,0x67,0x6d,0x61,0x72,0x6b,0xa5,0,0x18,
+0x73,0x65,0x70,0x61,0x72,0x61,0x74,0x6f,0x72,0xc3,0,0x16,0x72,0x72,0x6f,0x67,
+0x61,0x74,0x65,0xe1,0,0,0x63,0xff,2,0,0,0,0x65,0x38,0x6b,0xff,
+4,0,0,0,0x6d,0xff,1,0,0,0,0x16,0x70,0x61,0x72,0x61,0x74,
+0x6f,0x72,0xd9,0x70,0,0x1d,0x69,0x74,0x6c,0x65,0x63,0x61,0x73,0x65,0x6c,0x65,
+0x74,0x74,0x65,0x72,0x31,1,0x6e,0x40,0x70,0x1c,0x70,0x65,0x72,0x63,0x61,0x73,
+0x65,0x6c,0x65,0x74,0x74,0x65,0x72,0x25,0x17,0x61,0x73,0x73,0x69,0x67,0x6e,0x65,
+0x64,0x23,0x6e,0xa2,0x69,0x6f,0xa2,0x89,0x70,0xfe,0x30,0xf8,0,0,9,0x69,
+0x33,0x69,0xff,0x10,0,0,0,0x6f,0xfd,0x80,0,0,0x72,0x54,0x73,0xf9,
+0,0,0x75,0x12,0x6e,0x63,0x74,0xfe,0x30,0xf8,0,0,0x15,0x75,0x61,0x74,
+0x69,0x6f,0x6e,0xff,0x30,0xf8,0,0,0x17,0x69,0x76,0x61,0x74,0x65,0x75,0x73,
+0x65,0xdd,0,0,0x61,0x48,0x63,0xfd,0x40,0,0,0x64,0xe9,0,0,0x65,
+0xfd,0x20,0,0,0x66,0xff,0x20,0,0,0,0x1f,0x72,0x61,0x67,0x72,0x61,
+0x70,0x68,0x73,0x65,0x70,0x61,0x72,0x61,0x74,0x6f,0x72,0xd9,0x40,0,0xbe,0,
+3,0x64,0xa7,0,0x6c,0xab,0,0x6f,0x30,0x75,0x13,0x6d,0x62,0x65,0x72,0xbf,
+0,0xb2,0,0x1b,0x6e,0x73,0x70,0x61,0x63,0x69,0x6e,0x67,0x6d,0x61,0x72,0x6b,
+0xa1,1,0x70,0x92,0x74,0x12,0x68,0x65,0x72,0xe6,0x80,1,3,0x6c,0x40,0x6e,
+0x4a,0x70,0x56,0x73,0x14,0x79,0x6d,0x62,0x6f,0x6c,0xff,8,0,0,0,0x14,
+0x65,0x74,0x74,0x65,0x72,0x61,0x14,0x75,0x6d,0x62,0x65,0x72,0xb3,0,0x19,0x75,
+0x6e,0x63,0x74,0x75,0x61,0x74,0x69,0x6f,0x6e,0xfd,0x80,0,0,0x1c,0x65,0x6e,
+0x70,0x75,0x6e,0x63,0x74,0x75,0x61,0x74,0x69,0x6f,0x6e,0xf9,0,0,0x66,0xc0,
+0xc4,0x66,0xa2,0x47,0x69,0xa2,0x64,0x6c,0xa2,0x79,0x6d,0xa4,0xc0,4,0x61,0x6c,
+0x63,0xa5,0,0x65,0xa3,0x80,0x6e,0xa1,0x6f,0x15,0x64,0x69,0x66,0x69,0x65,0x72,
+1,0x6c,0x38,0x73,0x14,0x79,0x6d,0x62,0x6f,0x6c,0xff,4,0,0,0,0x14,
+0x65,0x74,0x74,0x65,0x72,0x41,1,0x72,0x3c,0x74,0x16,0x68,0x73,0x79,0x6d,0x62,
+0x6f,0x6c,0xff,1,0,0,0,0x10,0x6b,0xa5,0xc0,1,0x69,0x32,0x6f,0x13,
+0x72,0x6d,0x61,0x74,0xdb,0,0,0x1d,0x6e,0x61,0x6c,0x70,0x75,0x6e,0x63,0x74,
+0x75,0x61,0x74,0x69,0x6f,0x6e,0xff,0x20,0,0,0,0x10,0x6e,0x1f,0x69,0x74,
+0x69,0x61,0x6c,0x70,0x75,0x6e,0x63,0x74,0x75,0x61,0x74,0x69,0x6f,0x6e,0xff,0x10,
+0,0,0,0x9c,7,0x6d,0x18,0x6d,0x41,0x6f,0x28,0x74,0x31,0x75,0x25,0x60,
+0x1c,0x77,0x65,0x72,0x63,0x61,0x73,0x65,0x6c,0x65,0x74,0x74,0x65,0x72,0x29,0x63,
+0x3d,0x65,0x28,0x69,0x42,0x6c,0x29,0x13,0x74,0x74,0x65,0x72,0x9c,0x15,0x6e,0x75,
+0x6d,0x62,0x65,0x72,0xab,0,0x1a,0x6e,0x65,0x73,0x65,0x70,0x61,0x72,0x61,0x74,
+0x6f,0x72,0xd9,0x20,0,0x63,0x46,0x64,0xa2,0x96,0x65,0x1b,0x6e,0x63,0x6c,0x6f,
+0x73,0x69,0x6e,0x67,0x6d,0x61,0x72,0x6b,0xa3,0x80,0xe6,0x80,1,7,0x6e,0x57,
+0x6e,0x52,0x6f,0x5e,0x73,0xe1,0,0,0x75,0x1b,0x72,0x72,0x65,0x6e,0x63,0x79,
+0x73,0x79,0x6d,0x62,0x6f,0x6c,0xff,2,0,0,0,0x22,0x12,0x74,0x72,0x6c,
+0xd9,0x80,0,0xdc,0,0,1,0x6d,0x62,0x6e,1,0x6e,0x30,0x74,0x12,0x72,
+0x6f,0x6c,0xd9,0x80,0,0x1f,0x65,0x63,0x74,0x6f,0x72,0x70,0x75,0x6e,0x63,0x74,
+0x75,0x61,0x74,0x69,0x6f,0x6e,0xfd,0x40,0,0,0x19,0x62,0x69,0x6e,0x69,0x6e,
+0x67,0x6d,0x61,0x72,0x6b,0xa5,0xc0,0x61,0x58,0x63,0xd9,0x80,0,0x66,0xdb,0,
+0,0x6c,0x1d,0x6f,0x73,0x65,0x70,0x75,0x6e,0x63,0x74,0x75,0x61,0x74,0x69,0x6f,
+0x6e,0xfd,0x20,0,0,0x18,0x73,0x65,0x64,0x6c,0x65,0x74,0x74,0x65,0x72,0x3d,
+2,0x61,0x32,0x65,0x50,0x69,0x12,0x67,0x69,0x74,0xa7,0,0x1c,0x73,0x68,0x70,
+0x75,0x6e,0x63,0x74,0x75,0x61,0x74,0x69,0x6f,0x6e,0xe9,0,0,0x1a,0x63,0x69,
+0x6d,0x61,0x6c,0x6e,0x75,0x6d,0x62,0x65,0x72,0xa7,0
 };
 
-const char PropNameData::nameGroups[19587]={
+const char PropNameData::nameGroups[21265]={
 2,'A','l','p','h','a',0,'A','l','p','h','a','b','e','t','i','c',0,
 4,'N',0,'N','o',0,'F',0,'F','a','l','s','e',0,4,'Y',0,'Y','e','s',0,'T',0,'T','r','u','e',0,
 2,'N','R',0,'N','o','t','_','R','e','o','r','d','e','r','e','d',0,
@@ -1722,8 +1773,69 @@ const char PropNameData::nameGroups[19587]={
 2,'W','S','e','g','S','p','a','c','e',0,'W','S','e','g','S','p','a','c','e',0,
 2,'b','p','t',0,'B','i','d','i','_','P','a','i','r','e','d','_','B','r','a','c','k','e','t','_','T','y','p','e',0,
 2,'n',0,'N','o','n','e',0,2,'o',0,'O','p','e','n',0,
-2,'c',0,'C','l','o','s','e',0,2,'g','c','m',0,'G','e','n','e','r','a','l','_','C','a','t','e','g','o','r','y','_','M',
-'a','s','k',0,2,'C',0,'O','t','h','e','r',0,2,'L',0,'L','e','t','t','e','r',0,
+2,'c',0,'C','l','o','s','e',0,2,'I','n','P','C',0,'I','n','d','i','c','_','P','o','s','i','t','i','o','n','a','l','_',
+'C','a','t','e','g','o','r','y',0,2,'N','A',0,'N','A',0,
+2,'B','o','t','t','o','m',0,'B','o','t','t','o','m',0,2,'B','o','t','t','o','m','_','A','n','d','_','L','e','f','t',0,
+'B','o','t','t','o','m','_','A','n','d','_','L','e','f','t',0,
+2,'B','o','t','t','o','m','_','A','n','d','_','R','i','g','h','t',0,'B','o','t','t','o','m','_','A','n','d','_','R','i','g',
+'h','t',0,2,'L','e','f','t',0,'L','e','f','t',0,2,'L','e','f','t','_','A','n','d','_','R','i','g','h','t',0,
+'L','e','f','t','_','A','n','d','_','R','i','g','h','t',0,2,'O','v','e','r','s','t','r','u','c','k',0,
+'O','v','e','r','s','t','r','u','c','k',0,2,'R','i','g','h','t',0,'R','i','g','h','t',0,
+2,'T','o','p',0,'T','o','p',0,2,'T','o','p','_','A','n','d','_','B','o','t','t','o','m',0,
+'T','o','p','_','A','n','d','_','B','o','t','t','o','m',0,2,'T','o','p','_','A','n','d','_','B','o','t','t','o','m','_','A',
+'n','d','_','R','i','g','h','t',0,'T','o','p','_','A','n','d','_','B','o','t','t','o','m','_','A','n','d','_','R','i','g','h',
+'t',0,2,'T','o','p','_','A','n','d','_','L','e','f','t',0,'T','o','p','_','A','n','d','_','L','e','f','t',0,
+2,'T','o','p','_','A','n','d','_','L','e','f','t','_','A','n','d','_','R','i','g','h','t',0,
+'T','o','p','_','A','n','d','_','L','e','f','t','_','A','n','d','_','R','i','g','h','t',0,
+2,'T','o','p','_','A','n','d','_','R','i','g','h','t',0,'T','o','p','_','A','n','d','_','R','i','g','h','t',0,
+2,'V','i','s','u','a','l','_','O','r','d','e','r','_','L','e','f','t',0,'V','i','s','u','a','l','_','O','r','d','e','r','_',
+'L','e','f','t',0,2,'I','n','S','C',0,'I','n','d','i','c','_','S','y','l','l','a','b','i','c','_','C','a','t','e','g','o',
+'r','y',0,2,'O','t','h','e','r',0,'O','t','h','e','r',0,
+2,'A','v','a','g','r','a','h','a',0,'A','v','a','g','r','a','h','a',0,
+2,'B','i','n','d','u',0,'B','i','n','d','u',0,2,'B','r','a','h','m','i','_','J','o','i','n','i','n','g','_','N','u','m',
+'b','e','r',0,'B','r','a','h','m','i','_','J','o','i','n','i','n','g','_','N','u','m','b','e','r',0,
+2,'C','a','n','t','i','l','l','a','t','i','o','n','_','M','a','r','k',0,'C','a','n','t','i','l','l','a','t','i','o','n','_',
+'M','a','r','k',0,2,'C','o','n','s','o','n','a','n','t',0,'C','o','n','s','o','n','a','n','t',0,
+2,'C','o','n','s','o','n','a','n','t','_','D','e','a','d',0,'C','o','n','s','o','n','a','n','t','_','D','e','a','d',0,
+2,'C','o','n','s','o','n','a','n','t','_','F','i','n','a','l',0,'C','o','n','s','o','n','a','n','t','_','F','i','n','a','l',
+0,2,'C','o','n','s','o','n','a','n','t','_','H','e','a','d','_','L','e','t','t','e','r',0,
+'C','o','n','s','o','n','a','n','t','_','H','e','a','d','_','L','e','t','t','e','r',0,
+2,'C','o','n','s','o','n','a','n','t','_','I','n','i','t','i','a','l','_','P','o','s','t','f','i','x','e','d',0,
+'C','o','n','s','o','n','a','n','t','_','I','n','i','t','i','a','l','_','P','o','s','t','f','i','x','e','d',0,
+2,'C','o','n','s','o','n','a','n','t','_','K','i','l','l','e','r',0,'C','o','n','s','o','n','a','n','t','_','K','i','l','l',
+'e','r',0,2,'C','o','n','s','o','n','a','n','t','_','M','e','d','i','a','l',0,'C','o','n','s','o','n','a','n','t','_','M',
+'e','d','i','a','l',0,2,'C','o','n','s','o','n','a','n','t','_','P','l','a','c','e','h','o','l','d','e','r',0,
+'C','o','n','s','o','n','a','n','t','_','P','l','a','c','e','h','o','l','d','e','r',0,
+2,'C','o','n','s','o','n','a','n','t','_','P','r','e','c','e','d','i','n','g','_','R','e','p','h','a',0,
+'C','o','n','s','o','n','a','n','t','_','P','r','e','c','e','d','i','n','g','_','R','e','p','h','a',0,
+2,'C','o','n','s','o','n','a','n','t','_','P','r','e','f','i','x','e','d',0,'C','o','n','s','o','n','a','n','t','_','P','r',
+'e','f','i','x','e','d',0,2,'C','o','n','s','o','n','a','n','t','_','S','u','b','j','o','i','n','e','d',0,
+'C','o','n','s','o','n','a','n','t','_','S','u','b','j','o','i','n','e','d',0,
+2,'C','o','n','s','o','n','a','n','t','_','S','u','c','c','e','e','d','i','n','g','_','R','e','p','h','a',0,
+'C','o','n','s','o','n','a','n','t','_','S','u','c','c','e','e','d','i','n','g','_','R','e','p','h','a',0,
+2,'C','o','n','s','o','n','a','n','t','_','W','i','t','h','_','S','t','a','c','k','e','r',0,
+'C','o','n','s','o','n','a','n','t','_','W','i','t','h','_','S','t','a','c','k','e','r',0,
+2,'G','e','m','i','n','a','t','i','o','n','_','M','a','r','k',0,'G','e','m','i','n','a','t','i','o','n','_','M','a','r','k',
+0,2,'I','n','v','i','s','i','b','l','e','_','S','t','a','c','k','e','r',0,'I','n','v','i','s','i','b','l','e','_','S','t',
+'a','c','k','e','r',0,2,'J','o','i','n','e','r',0,'J','o','i','n','e','r',0,
+2,'M','o','d','i','f','y','i','n','g','_','L','e','t','t','e','r',0,'M','o','d','i','f','y','i','n','g','_','L','e','t','t',
+'e','r',0,2,'N','o','n','_','J','o','i','n','e','r',0,'N','o','n','_','J','o','i','n','e','r',0,
+2,'N','u','k','t','a',0,'N','u','k','t','a',0,2,'N','u','m','b','e','r',0,'N','u','m','b','e','r',0,
+2,'N','u','m','b','e','r','_','J','o','i','n','e','r',0,'N','u','m','b','e','r','_','J','o','i','n','e','r',0,
+2,'P','u','r','e','_','K','i','l','l','e','r',0,'P','u','r','e','_','K','i','l','l','e','r',0,
+2,'R','e','g','i','s','t','e','r','_','S','h','i','f','t','e','r',0,'R','e','g','i','s','t','e','r','_','S','h','i','f','t',
+'e','r',0,2,'S','y','l','l','a','b','l','e','_','M','o','d','i','f','i','e','r',0,'S','y','l','l','a','b','l','e','_','M',
+'o','d','i','f','i','e','r',0,2,'T','o','n','e','_','L','e','t','t','e','r',0,'T','o','n','e','_','L','e','t','t','e','r',
+0,2,'T','o','n','e','_','M','a','r','k',0,'T','o','n','e','_','M','a','r','k',0,
+2,'V','i','r','a','m','a',0,'V','i','r','a','m','a',0,2,'V','i','s','a','r','g','a',0,
+'V','i','s','a','r','g','a',0,2,'V','o','w','e','l',0,'V','o','w','e','l',0,
+2,'V','o','w','e','l','_','D','e','p','e','n','d','e','n','t',0,'V','o','w','e','l','_','D','e','p','e','n','d','e','n','t',
+0,2,'V','o','w','e','l','_','I','n','d','e','p','e','n','d','e','n','t',0,'V','o','w','e','l','_','I','n','d','e','p','e',
+'n','d','e','n','t',0,2,'v','o',0,'V','e','r','t','i','c','a','l','_','O','r','i','e','n','t','a','t','i','o','n',0,
+2,'R',0,'R','o','t','a','t','e','d',0,2,'T','r',0,'T','r','a','n','s','f','o','r','m','e','d','_','R','o','t','a','t',
+'e','d',0,2,'T','u',0,'T','r','a','n','s','f','o','r','m','e','d','_','U','p','r','i','g','h','t',0,
+2,'U',0,'U','p','r','i','g','h','t',0,2,'g','c','m',0,'G','e','n','e','r','a','l','_','C','a','t','e','g','o','r','y',
+'_','M','a','s','k',0,2,'C',0,'O','t','h','e','r',0,2,'L',0,'L','e','t','t','e','r',0,
 2,'L','C',0,'C','a','s','e','d','_','L','e','t','t','e','r',0,
 3,'M',0,'M','a','r','k',0,'C','o','m','b','i','n','i','n','g','_','M','a','r','k',0,
 2,'N',0,'N','u','m','b','e','r',0,3,'P',0,'P','u','n','c','t','u','a','t','i','o','n',0,
index 2d2de52..769309b 100644 (file)
 #   define NOMCX
 #   include <windows.h>
 #   include "unicode/uloc.h"
-#if U_PLATFORM_HAS_WINUWP_API == 0
 #   include "wintz.h"
-#else // U_PLATFORM_HAS_WINUWP_API
+#if U_PLATFORM_HAS_WINUWP_API
 typedef PVOID LPMSG; // TODO: figure out how to get rid of this typedef
 #include <Windows.Globalization.h>
 #include <windows.system.userprofile.h>
@@ -1062,53 +1061,13 @@ uprv_tzname_clear_cache()
 #endif
 }
 
-// With the Universal Windows Platform we can just ask Windows for the name
-#if U_PLATFORM_HAS_WINUWP_API
-U_CAPI const char* U_EXPORT2
-uprv_getWindowsTimeZone()
-{
-    // Get default Windows timezone.   
-    ComPtr<IInspectable> calendar;
-    HRESULT hr = RoActivateInstance(
-        HStringReference(RuntimeClass_Windows_Globalization_Calendar).Get(),
-        &calendar);
-    if (SUCCEEDED(hr))
-    {
-        ComPtr<ABI::Windows::Globalization::ITimeZoneOnCalendar> timezone;
-        hr = calendar.As(&timezone);
-        if (SUCCEEDED(hr))
-        {
-            HString timezoneString;
-            hr = timezone->GetTimeZone(timezoneString.GetAddressOf());
-            if (SUCCEEDED(hr))
-            {
-                int32_t length = static_cast<int32_t>(wcslen(timezoneString.GetRawBuffer(NULL)));
-                char* asciiId = (char*)uprv_calloc(length + 1, sizeof(char));
-                if (asciiId != nullptr)
-                {
-                    u_UCharsToChars((UChar*)timezoneString.GetRawBuffer(NULL), asciiId, length);
-                    return asciiId;
-                }
-            }
-        }
-    }
-
-    // Failed
-    return nullptr;
-}
-#endif
-
 U_CAPI const char* U_EXPORT2
 uprv_tzname(int n)
 {
     (void)n; // Avoid unreferenced parameter warning.
     const char *tzid = NULL;
 #if U_PLATFORM_USES_ONLY_WIN32_API
-#if U_PLATFORM_HAS_WINUWP_API > 0
-    tzid = uprv_getWindowsTimeZone();
-#else
     tzid = uprv_detectWindowsTimeZone();
-#endif
 
     if (tzid != NULL) {
         return tzid;
@@ -1366,6 +1325,43 @@ uprv_pathIsAbsolute(const char *path)
 # endif
 #endif
 
+#if U_PLATFORM_HAS_WINUWP_API != 0
+// Helper function to get the ICU Data Directory under the Windows directory location.
+static BOOL U_CALLCONV getIcuDataDirectoryUnderWindowsDirectory(char* directoryBuffer, UINT bufferLength)
+{
+#if defined(ICU_DATA_DIR_WINDOWS)
+    wchar_t windowsPath[MAX_PATH];
+    char windowsPathUtf8[MAX_PATH];
+
+    UINT length = GetSystemWindowsDirectoryW(windowsPath, UPRV_LENGTHOF(windowsPath));
+    if ((length > 0) && (length < (UPRV_LENGTHOF(windowsPath) - 1))) {
+        // Convert UTF-16 to a UTF-8 string.
+        UErrorCode status = U_ZERO_ERROR;
+        int32_t windowsPathUtf8Len = 0;
+        u_strToUTF8(windowsPathUtf8, static_cast<int32_t>(UPRV_LENGTHOF(windowsPathUtf8)),
+            &windowsPathUtf8Len, reinterpret_cast<const UChar*>(windowsPath), -1, &status);
+
+        if (U_SUCCESS(status) && (status != U_STRING_NOT_TERMINATED_WARNING) &&
+            (windowsPathUtf8Len < (UPRV_LENGTHOF(windowsPathUtf8) - 1))) {
+            // Ensure it always has a separator, so we can append the ICU data path.
+            if (windowsPathUtf8[windowsPathUtf8Len - 1] != U_FILE_SEP_CHAR) {
+                windowsPathUtf8[windowsPathUtf8Len++] = U_FILE_SEP_CHAR;
+                windowsPathUtf8[windowsPathUtf8Len] = '\0';
+            }
+            // Check if the concatenated string will fit.
+            if ((windowsPathUtf8Len + UPRV_LENGTHOF(ICU_DATA_DIR_WINDOWS)) < bufferLength) {
+                uprv_strcpy(directoryBuffer, windowsPathUtf8);
+                uprv_strcat(directoryBuffer, ICU_DATA_DIR_WINDOWS);
+                return TRUE;
+            }
+        }
+    }
+#endif
+
+    return FALSE;
+}
+#endif
+
 static void U_CALLCONV dataDirectoryInitFn() {
     /* If we already have the directory, then return immediately. Will happen if user called
      * u_setDataDirectory().
@@ -1425,24 +1421,10 @@ static void U_CALLCONV dataDirectoryInitFn() {
     }
 #endif
 
-#if defined(ICU_DATA_DIR_WINDOWS) && U_PLATFORM_HAS_WINUWP_API != 0
-    // Use data from the %windir%\globalization\icu directory
-    // This is only available if ICU is built as a system component
+#if U_PLATFORM_HAS_WINUWP_API != 0  && defined(ICU_DATA_DIR_WINDOWS)
     char datadir_path_buffer[MAX_PATH];
-    UINT length = GetWindowsDirectoryA(datadir_path_buffer, UPRV_LENGTHOF(datadir_path_buffer));
-    if (length > 0 && length < (UPRV_LENGTHOF(datadir_path_buffer) - sizeof(ICU_DATA_DIR_WINDOWS) - 1))
-    {
-        if (datadir_path_buffer[length - 1] != '\\')
-        {
-            datadir_path_buffer[length++] = '\\';
-            datadir_path_buffer[length] = '\0';
-        }
-
-        if ((length + 1 + sizeof(ICU_DATA_DIR_WINDOWS)) < UPRV_LENGTHOF(datadir_path_buffer))
-        {
-            uprv_strcat(datadir_path_buffer, ICU_DATA_DIR_WINDOWS);
-            path = datadir_path_buffer;
-        }
+    if (getIcuDataDirectoryUnderWindowsDirectory(datadir_path_buffer, UPRV_LENGTHOF(datadir_path_buffer))) {
+        path = datadir_path_buffer;
     }
 #endif
 
@@ -1491,20 +1473,30 @@ static void U_CALLCONV TimeZoneDataDirInitFn(UErrorCode &status) {
         status = U_MEMORY_ALLOCATION_ERROR;
         return;
     }
-#if U_PLATFORM_HAS_WINUWP_API == 0
-    const char *dir = getenv("ICU_TIMEZONE_FILES_DIR");
-#else
-    // TODO: UWP does not support alternate timezone data directories at this time
+
     const char *dir = "";
+
+#if U_PLATFORM_HAS_WINUWP_API != 0
+    // The UWP version does not support the environment variable setting, but can possibly pick them up from the Windows directory.
+    char datadir_path_buffer[MAX_PATH];
+    if (getIcuDataDirectoryUnderWindowsDirectory(datadir_path_buffer, UPRV_LENGTHOF(datadir_path_buffer))) {
+        dir = datadir_path_buffer;
+    }
+#else
+    dir = getenv("ICU_TIMEZONE_FILES_DIR");
 #endif // U_PLATFORM_HAS_WINUWP_API
+
 #if defined(U_TIMEZONE_FILES_DIR)
     if (dir == NULL) {
+        // Build time configuration setting.
         dir = TO_STRING(U_TIMEZONE_FILES_DIR);
     }
 #endif
+
     if (dir == NULL) {
         dir = "";
     }
+
     setTimeZoneFilesDir(dir, status);
 }
 
@@ -1676,7 +1668,8 @@ The leftmost codepage (.xxx) wins.
     /* Note that we scan the *uncorrected* ID. */
     if ((p = uprv_strrchr(posixID, '@')) != NULL) {
         if (correctedPOSIXLocale == NULL) {
-            correctedPOSIXLocale = static_cast<char *>(uprv_malloc(uprv_strlen(posixID)+1));
+            /* new locale can be 1 char longer than old one if @ -> __ */
+            correctedPOSIXLocale = static_cast<char *>(uprv_malloc(uprv_strlen(posixID)+2));
             /* Exit on memory allocation error. */
             if (correctedPOSIXLocale == NULL) {
                 return NULL;
@@ -1693,7 +1686,7 @@ The leftmost codepage (.xxx) wins.
         }
 
         if (uprv_strchr(correctedPOSIXLocale,'_') == NULL) {
-            uprv_strcat(correctedPOSIXLocale, "__"); /* aa@b -> aa__b */
+            uprv_strcat(correctedPOSIXLocale, "__"); /* aa@b -> aa__b (note this can make the new locale 1 char longer) */
         }
         else {
             uprv_strcat(correctedPOSIXLocale, "_"); /* aa_CC@b -> aa_CC_b */
@@ -1747,70 +1740,22 @@ The leftmost codepage (.xxx) wins.
 #elif U_PLATFORM_USES_ONLY_WIN32_API
 #define POSIX_LOCALE_CAPACITY 64
     UErrorCode status = U_ZERO_ERROR;
-    char *correctedPOSIXLocale = 0;
+    char *correctedPOSIXLocale = nullptr;
 
     // If we have already figured this out just use the cached value
-    if (gCorrectedPOSIXLocale != NULL) {
+    if (gCorrectedPOSIXLocale != nullptr) {
         return gCorrectedPOSIXLocale;
     }
 
     // No cached value, need to determine the current value
-    static WCHAR windowsLocale[LOCALE_NAME_MAX_LENGTH];
-#if U_PLATFORM_HAS_WINUWP_API == 0 
-    // If not a Universal Windows App, we'll need user default language.
-    // Vista and above should use Locale Names instead of LCIDs
-    int length = GetUserDefaultLocaleName(windowsLocale, UPRV_LENGTHOF(windowsLocale));
-#else
-    // In a UWP app, we want the top language that the application and user agreed upon
-    ComPtr<ABI::Windows::Foundation::Collections::IVectorView<HSTRING>> languageList;
-
-    ComPtr<ABI::Windows::Globalization::IApplicationLanguagesStatics> applicationLanguagesStatics;
-    HRESULT hr = GetActivationFactory(
-        HStringReference(RuntimeClass_Windows_Globalization_ApplicationLanguages).Get(),
-        &applicationLanguagesStatics);
-    if (SUCCEEDED(hr))
-    {
-        hr = applicationLanguagesStatics->get_Languages(&languageList);
-    }
+    static WCHAR windowsLocale[LOCALE_NAME_MAX_LENGTH] = {};
+    int length = GetLocaleInfoEx(LOCALE_NAME_USER_DEFAULT, LOCALE_SNAME, windowsLocale, LOCALE_NAME_MAX_LENGTH);
 
-    if (FAILED(hr))
-    {
-        // If there is no application context, then use the top language from the user language profile
-        ComPtr<ABI::Windows::System::UserProfile::IGlobalizationPreferencesStatics> globalizationPreferencesStatics;
-        hr = GetActivationFactory(
-            HStringReference(RuntimeClass_Windows_System_UserProfile_GlobalizationPreferences).Get(),
-            &globalizationPreferencesStatics);
-        if (SUCCEEDED(hr))
-        {
-            hr = globalizationPreferencesStatics->get_Languages(&languageList);
-        }
-    }
-
-    // We have a list of languages, ICU knows one, so use the top one for our locale
-    HString topLanguage;
-    if (SUCCEEDED(hr))
-    {
-        hr = languageList->GetAt(0, topLanguage.GetAddressOf());
-    }
-
-    if (FAILED(hr))
-    {
-        // Unexpected, use en-US by default
-        if (gCorrectedPOSIXLocale == NULL) {
-            gCorrectedPOSIXLocale = "en_US";
-        }
-
-        return gCorrectedPOSIXLocale;
-    }
-
-    // ResolveLocaleName will get a likely subtags form consistent with Windows behavior.
-    int length = ResolveLocaleName(topLanguage.GetRawBuffer(NULL), windowsLocale, UPRV_LENGTHOF(windowsLocale));
-#endif
-    // Now we should have a Windows locale name that needs converted to the POSIX style,
-    if (length > 0)
+    // Now we should have a Windows locale name that needs converted to the POSIX style.
+    if (length > 0) // If length is 0, then the GetLocaleInfoEx failed.
     {
         // First we need to go from UTF-16 to char (and also convert from _ to - while we're at it.)
-        char modifiedWindowsLocale[LOCALE_NAME_MAX_LENGTH];
+        char modifiedWindowsLocale[LOCALE_NAME_MAX_LENGTH] = {};
 
         int32_t i;
         for (i = 0; i < UPRV_LENGTHOF(modifiedWindowsLocale); i++)
@@ -1858,7 +1803,7 @@ The leftmost codepage (.xxx) wins.
     }
 
     // If unable to find a locale we can agree upon, use en-US by default
-    if (gCorrectedPOSIXLocale == NULL) {
+    if (gCorrectedPOSIXLocale == nullptr) {
         gCorrectedPOSIXLocale = "en_US";
     }
     return gCorrectedPOSIXLocale;
index 8b858df..d2cc37c 100644 (file)
@@ -94,7 +94,7 @@ typedef size_t uintptr_t;
 #   define U_NL_LANGINFO_CODESET CODESET
 #endif
 
-#ifdef U_TZSET
+#if defined(U_TZSET) || defined(U_HAVE_TZSET)
     /* Use the predefined value. */
 #elif U_PLATFORM_USES_ONLY_WIN32_API
     // UWP doesn't support tzset or environment variables for tz
@@ -132,7 +132,7 @@ typedef size_t uintptr_t;
 #   define U_TIMEZONE timezone
 #endif
 
-#ifdef U_TZNAME
+#if defined(U_TZNAME) || defined(U_HAVE_TZNAME)
     /* Use the predefined value. */
 #elif U_PLATFORM_USES_ONLY_WIN32_API
     /* not usable on all windows platforms */
@@ -204,30 +204,18 @@ typedef size_t uintptr_t;
 
 /**
  * \def U_HAVE_STD_ATOMICS
- * Defines whether the standard C++11 <atomic> is available.
- * ICU will use this when available,
- * otherwise will fall back to compiler or platform specific alternatives.
+ * Defines whether to use the standard C++11 <atomic> functions
+ * If false, ICU will fall back to compiler or platform specific alternatives.
+ * Note: support for these fall back options for atomics will be removed in a future version
+ *       of ICU, and the use of C++ 11 atomics will be required.
  * @internal
  */
 #ifdef U_HAVE_STD_ATOMICS
     /* Use the predefined value. */
-#elif U_CPLUSPLUS_VERSION < 11
-    /* Not C++11, disable use of atomics */
-#   define U_HAVE_STD_ATOMICS 0
-#elif __clang__ && __clang_major__==3 && __clang_minor__<=1
-    /* Clang 3.1, has atomic variable initializer bug. */
-#   define U_HAVE_STD_ATOMICS 0
-#else 
-    /* U_HAVE_ATOMIC is typically set by an autoconf test of #include <atomic>  */
-    /*   Can be set manually, or left undefined, on platforms without autoconf. */
-#   if defined(U_HAVE_ATOMIC) &&  U_HAVE_ATOMIC 
-#      define U_HAVE_STD_ATOMICS 1
-#   else
-#      define U_HAVE_STD_ATOMICS 0
-#   endif
+#else
+#    define U_HAVE_STD_ATOMICS 1
 #endif
 
-
 /**
  *  \def U_HAVE_CLANG_ATOMICS
  *  Defines whether Clang c11 style built-in atomics are available.
@@ -586,6 +574,49 @@ U_INTERNAL void * U_EXPORT2 uprv_maximumPtr(void *base);
 #  endif
 #endif
 
+
+#ifdef __cplusplus
+/**
+ * Pin a buffer capacity such that doing pointer arithmetic
+ * on the destination pointer and capacity cannot overflow.
+ *
+ * The pinned capacity must fulfill the following conditions (for positive capacities):
+ *   - dest + capacity is a valid pointer according to the machine arcitecture (AS/400, 64-bit, etc.)
+ *   - (dest + capacity) >= dest
+ *   - The size (in bytes) of T[capacity] does not exceed 0x7fffffff
+ *
+ * @param dest the destination buffer pointer.
+ * @param capacity the requested buffer capacity, in units of type T.
+ * @return the pinned capacity.
+ * @internal
+ */
+template <typename T>
+inline int32_t pinCapacity(T *dest, int32_t capacity) {
+    if (capacity <= 0) { return capacity; }
+
+    uintptr_t destInt = (uintptr_t)dest;
+    uintptr_t maxInt;
+
+#  if U_PLATFORM == U_PF_OS390 && !defined(_LP64)
+    // We have 31-bit pointers.
+    maxInt = 0x7fffffff;
+#  elif U_PLATFORM == U_PF_OS400
+    maxInt = (uintptr_t)uprv_maximumPtr((void *)dest);
+#  else
+    maxInt = destInt + 0x7fffffffu;
+    if (maxInt < destInt) {
+        // Less than 2GB to the end of the address space.
+        // Pin to that to prevent address overflow.
+        maxInt = (uintptr_t)-1;
+    }
+#  endif
+
+    uintptr_t maxBytes = maxInt - destInt;  // max. 2GB
+    int32_t maxCapacity = (int32_t)(maxBytes / sizeof(T));
+    return capacity <= maxCapacity ? capacity : maxCapacity;
+}
+#endif   // __cplusplus
+
 /*  Dynamic Library Functions */
 
 typedef void (UVoidFunction)(void);
index c5ea277..cb37665 100644 (file)
@@ -18,6 +18,8 @@
 
 #if !UCONFIG_NO_BREAK_ITERATION
 
+#include <cinttypes>
+
 #include "unicode/rbbi.h"
 #include "unicode/schriter.h"
 #include "unicode/uchriter.h"
@@ -628,7 +630,7 @@ int32_t RuleBasedBreakIterator::preceding(int32_t offset) {
     // or on a trail byte if the input is UTF-8.
 
     utext_setNativeIndex(&fText, offset);
-    int32_t adjustedOffset = utext_getNativeIndex(&fText);
+    int32_t adjustedOffset = static_cast<int32_t>(utext_getNativeIndex(&fText));
 
     UErrorCode status = U_ZERO_ERROR;
     fBreakCache->preceding(adjustedOffset, status);
@@ -655,7 +657,7 @@ UBool RuleBasedBreakIterator::isBoundary(int32_t offset) {
     // But we still need the side effect of leaving iteration at the following boundary.
 
     utext_setNativeIndex(&fText, offset);
-    int32_t adjustedOffset = utext_getNativeIndex(&fText);
+    int32_t adjustedOffset = static_cast<int32_t>(utext_getNativeIndex(&fText));
 
     bool result = false;
     UErrorCode status = U_ZERO_ERROR;
@@ -848,7 +850,7 @@ int32_t RuleBasedBreakIterator::handleNext() {
 
        #ifdef RBBI_DEBUG
             if (gTrace) {
-                RBBIDebugPrintf("             %4ld   ", utext_getNativeIndex(&fText));
+                RBBIDebugPrintf("             %4" PRId64 "   ", utext_getNativeIndex(&fText));
                 if (0x20<=c && c<0x7f) {
                     RBBIDebugPrintf("\"%c\"  ", c);
                 } else {
index 60316ce..519c610 100644 (file)
@@ -603,7 +603,7 @@ void RuleBasedBreakIterator::BreakCache::addFollowing(int32_t position, int32_t
         fStartBufIdx = modChunkSize(fStartBufIdx + 6);    // TODO: experiment. Probably revert to 1.
     }
     fBoundaries[nextIdx] = position;
-    fStatuses[nextIdx] = ruleStatusIdx;
+    fStatuses[nextIdx] = static_cast<uint16_t>(ruleStatusIdx);
     fEndBufIdx = nextIdx;
     if (update == UpdateCachePosition) {
         // Set current position to the newly added boundary.
@@ -631,7 +631,7 @@ bool RuleBasedBreakIterator::BreakCache::addPreceding(int32_t position, int32_t
         fEndBufIdx = modChunkSize(fEndBufIdx - 1);
     }
     fBoundaries[nextIdx] = position;
-    fStatuses[nextIdx] = ruleStatusIdx;
+    fStatuses[nextIdx] = static_cast<uint16_t>(ruleStatusIdx);
     fStartBufIdx = nextIdx;
     if (update == UpdateCachePosition) {
         fBufIdx = nextIdx;
index a4b9a71..08c5776 100644 (file)
@@ -303,17 +303,24 @@ RBBIDataHeader *RBBIRuleBuilder::build(UErrorCode &status) {
 }
 
 void RBBIRuleBuilder::optimizeTables() {
+    bool didSomething;
+    do {
+        didSomething = false;
+
+        // Begin looking for duplicates with char class 3.
+        // Classes 0, 1 and 2 are special; they are unused, {bof} and {eof} respectively,
+        // and should not have other categories merged into them.
+        IntPair duplPair = {3, 0};
+        while (fForwardTable->findDuplCharClassFrom(&duplPair)) {
+            fSetBuilder->mergeCategories(duplPair);
+            fForwardTable->removeColumn(duplPair.second);
+            didSomething = true;
+        }
 
-    // Begin looking for duplicates with char class 3.
-    // Classes 0, 1 and 2 are special; they are unused, {bof} and {eof} respectively,
-    // and should not have other categories merged into them.
-    IntPair duplPair = {3, 0};
-
-    while (fForwardTable->findDuplCharClassFrom(&duplPair)) {
-        fSetBuilder->mergeCategories(duplPair);
-        fForwardTable->removeColumn(duplPair.second);
-    }
-    fForwardTable->removeDuplicateStates();
+        while (fForwardTable->removeDuplicateStates() > 0) {
+            didSomething = true;
+        }
+    } while (didSomething);
 }
 
 U_NAMESPACE_END
index c82e1ea..f536ab5 100644 (file)
@@ -380,7 +380,7 @@ UBool RBBIRuleScanner::doParseActions(int32_t action)
             // with the current rule expression (on the Node Stack)
             //  with the resulting OR expression going to *destRules
             //
-            RBBINode  *thisRule    = fNodeStack[fNodeStackPtr];
+                       thisRule    = fNodeStack[fNodeStackPtr];
             RBBINode  *prevRules   = *destRules;
             RBBINode  *orNode      = pushNewNode(RBBINode::opOr);
             if (U_FAILURE(*fRB->fStatus)) {
index 8a6f7c7..a20b517 100644 (file)
@@ -428,8 +428,8 @@ void RBBITableBuilder::calcChainedFollowPos(RBBINode *tree) {
     addRuleRootNodes(&ruleRootNodes, tree);
 
     UVector matchStartNodes(*fStatus);
-    for (int i=0; i<ruleRootNodes.size(); ++i) {
-        RBBINode *node = static_cast<RBBINode *>(ruleRootNodes.elementAt(i));
+    for (int j=0; j<ruleRootNodes.size(); ++j) {
+        RBBINode *node = static_cast<RBBINode *>(ruleRootNodes.elementAt(j));
         if (node->fChainIn) {
             setAdd(&matchStartNodes, node->fFirstPosSet);
         }
@@ -1082,21 +1082,22 @@ bool RBBITableBuilder::findDuplCharClassFrom(IntPair *categories) {
     int32_t numStates = fDStates->size();
     int32_t numCols = fRB->fSetBuilder->getNumCharCategories();
 
-    uint16_t table_base;
-    uint16_t table_dupl;
     for (; categories->first < numCols-1; categories->first++) {
         for (categories->second=categories->first+1; categories->second < numCols; categories->second++) {
-             for (int32_t state=0; state<numStates; state++) {
-                 RBBIStateDescriptor *sd = (RBBIStateDescriptor *)fDStates->elementAt(state);
-                 table_base = (uint16_t)sd->fDtran->elementAti(categories->first);
-                 table_dupl = (uint16_t)sd->fDtran->elementAti(categories->second);
-                 if (table_base != table_dupl) {
-                     break;
-                 }
-             }
-             if (table_base == table_dupl) {
-                 return true;
-             }
+            // Initialized to different values to prevent returning true if numStates = 0 (implies no duplicates).
+            uint16_t table_base = 0;
+            uint16_t table_dupl = 1;
+            for (int32_t state=0; state<numStates; state++) {
+                RBBIStateDescriptor *sd = (RBBIStateDescriptor *)fDStates->elementAt(state);
+                table_base = (uint16_t)sd->fDtran->elementAti(categories->first);
+                table_dupl = (uint16_t)sd->fDtran->elementAti(categories->second);
+                if (table_base != table_dupl) {
+                    break;
+                }
+            }
+            if (table_base == table_dupl) {
+                return true;
+            }
         }
     }
     return false;
@@ -1236,7 +1237,7 @@ void RBBITableBuilder::removeSafeState(IntPair duplStates) {
             } else if (existingVal > duplState) {
                 newVal = existingVal - 1;
             }
-            sd->setCharAt(col, newVal);
+            sd->setCharAt(col, static_cast<char16_t>(newVal));
         }
     }
 }
@@ -1245,12 +1246,16 @@ void RBBITableBuilder::removeSafeState(IntPair duplStates) {
 /*
  * RemoveDuplicateStates
  */
-void RBBITableBuilder::removeDuplicateStates() {
+int32_t RBBITableBuilder::removeDuplicateStates() {
     IntPair dupls = {3, 0};
+    int32_t numStatesRemoved = 0;
+
     while (findDuplicateState(&dupls)) {
         // printf("Removing duplicate states (%d, %d)\n", dupls.first, dupls.second);
         removeState(dupls);
+        ++numStatesRemoved;
     }
+    return numStatesRemoved;
 }
 
 
@@ -1411,7 +1416,7 @@ void RBBITableBuilder::buildSafeReverseTable(UErrorCode &status) {
     UnicodeString &startState = *static_cast<UnicodeString *>(fSafeTable->elementAt(1));
     for (int32_t charClass=0; charClass < numCharClasses; ++charClass) {
         // Note: +2 for the start & stop state.
-        startState.setCharAt(charClass, charClass+2);
+        startState.setCharAt(charClass, static_cast<char16_t>(charClass+2));
     }
 
     // Initially make every other state table row look like the start state row,
index eea243e..bc6077b 100644 (file)
@@ -15,6 +15,9 @@
 #define RBBITBLB_H
 
 #include "unicode/utypes.h"
+
+#if !UCONFIG_NO_BREAK_ITERATION
+
 #include "unicode/uobject.h"
 #include "unicode/rbbi.h"
 #include "rbbirb.h"
@@ -66,8 +69,11 @@ public:
      */
     void     removeColumn(int32_t column);
 
-    /** Check for, and remove dupicate states (table rows). */
-    void     removeDuplicateStates();
+    /**
+     * Check for, and remove dupicate states (table rows).
+     * @return the number of states removed.
+     */
+    int32_t  removeDuplicateStates();
 
     /** Build the safe reverse table from the already-constructed forward table. */
     void     buildSafeReverseTable(UErrorCode &status);
@@ -204,4 +210,7 @@ private:
 
 
 U_NAMESPACE_END
+
+#endif /* #if !UCONFIG_NO_BREAK_ITERATION */
+
 #endif
index 959ab60..619e8c7 100644 (file)
@@ -702,9 +702,9 @@ ICUService::getDisplayName(const UnicodeString& id, UnicodeString& result, const
             }
 
             // fallback
-            UErrorCode status = U_ZERO_ERROR;
+            status = U_ZERO_ERROR;
             ICUServiceKey* fallbackKey = createKey(&id, status);
-            while (fallbackKey->fallback()) {
+            while (fallbackKey != NULL && fallbackKey->fallback()) {
                 UnicodeString us;
                 fallbackKey->currentID(us);
                 f = (ICUServiceFactory*)map->get(us);
index 75c4ec3..c0a5aba 100644 (file)
@@ -104,7 +104,7 @@ public:
     /**
      * Deletes this object if it has no references.
      * Available for non-cached SharedObjects only. Ownership of cached objects
-     * is with the UnifiedCache, which is soley responsible for eviction and deletion.
+     * is with the UnifiedCache, which is solely responsible for eviction and deletion.
      */
     void deleteIfZeroRefCount() const;
 
index 9e731f5..5d598a0 100644 (file)
@@ -27,6 +27,7 @@ UnicodeSet* gUnicodeSets[COUNT] = {};
 
 // Save the empty instance in static memory to have well-defined behavior if a
 // regular UnicodeSet cannot be allocated.
+alignas(UnicodeSet)
 char gEmptyUnicodeSet[sizeof(UnicodeSet)];
 
 // Whether the gEmptyUnicodeSet is initialized and ready to use.
index cf5b7b7..6f9cc2e 100644 (file)
@@ -373,7 +373,7 @@ StringTrieBuilder::registerFinalValue(int32_t value, UErrorCode &errorCode) {
     return newNode;
 }
 
-UBool
+int32_t
 StringTrieBuilder::hashNode(const void *node) {
     return ((const Node *)node)->hashCode();
 }
index 531ed64..4b65d49 100644 (file)
@@ -624,7 +624,7 @@ getDirProps(UBiDi *pBiDi) {
         pBiDi->paras[pBiDi->paraCount-1].level=1;
     }
     if(isDefaultLevel) {
-        pBiDi->paraLevel=pBiDi->paras[0].level;
+        pBiDi->paraLevel=static_cast<UBiDiLevel>(pBiDi->paras[0].level);
     }
     /* The following is needed to resolve the text direction for default level
        paragraphs containing no strong character */
@@ -825,28 +825,28 @@ bracketProcessClosing(BracketData *bd, int32_t openIdx, int32_t position) {
        N0c1. */
 
     if((direction==0 && pOpening->flags&FOUND_L) ||
-       (direction==1 && pOpening->flags&FOUND_R)) { /* N0b */
-        newProp=direction;
+       (direction==1 && pOpening->flags&FOUND_R)) {                         /* N0b */
+        newProp=static_cast<DirProp>(direction);
     }
-    else if(pOpening->flags&(FOUND_L|FOUND_R)) {    /* N0c */
+    else if(pOpening->flags&(FOUND_L|FOUND_R)) {                            /* N0c */
         /* it is stable if there is no containing pair or in
            conditions too complicated and not worth checking */
         stable=(openIdx==pLastIsoRun->start);
         if(direction!=pOpening->contextDir)
-            newProp=pOpening->contextDir;           /* N0c1 */
+            newProp= static_cast<DirProp>(pOpening->contextDir);           /* N0c1 */
         else
-            newProp=direction;                      /* N0c2 */
+            newProp= static_cast<DirProp>(direction);                      /* N0c2 */
     } else {
         /* forget this and any brackets nested within this pair */
-        pLastIsoRun->limit=openIdx;
-        return ON;                                  /* N0d */
+        pLastIsoRun->limit= static_cast<uint16_t>(openIdx);
+        return ON;                                                          /* N0d */
     }
     bd->pBiDi->dirProps[pOpening->position]=newProp;
     bd->pBiDi->dirProps[position]=newProp;
     /* Update nested N0c pairs that may be affected */
     fixN0c(bd, openIdx, pOpening->position, newProp);
     if(stable) {
-        pLastIsoRun->limit=openIdx; /* forget any brackets nested within this pair */
+        pLastIsoRun->limit= static_cast<uint16_t>(openIdx); /* forget any brackets nested within this pair */
         /* remove lower located synonyms if any */
         while(pLastIsoRun->limit>pLastIsoRun->start &&
               bd->openings[pLastIsoRun->limit-1].position==pOpening->position)
@@ -918,7 +918,7 @@ bracketProcessChar(BracketData *bd, int32_t position) {
            bracket or it is a case of N0d */
         /* Now see if it is an opening bracket */
         if(c)
-            match=u_getBidiPairedBracket(c);    /* get the matching char */
+            match= static_cast<UChar>(u_getBidiPairedBracket(c));    /* get the matching char */
         else
             match=0;
         if(match!=c &&                  /* has a matching char */
@@ -948,7 +948,7 @@ bracketProcessChar(BracketData *bd, int32_t position) {
         pLastIsoRun->contextPos=position;
     }
     else if(dirProp<=R || dirProp==AL) {
-        newProp=DIR_FROM_STRONG(dirProp);
+        newProp= static_cast<DirProp>(DIR_FROM_STRONG(dirProp));
         pLastIsoRun->lastBase=dirProp;
         pLastIsoRun->lastStrong=dirProp;
         pLastIsoRun->contextDir=(UBiDiDirection)newProp;
@@ -1101,7 +1101,7 @@ resolveExplicitLevels(UBiDi *pBiDi, UErrorCode *pErrorCode) {
             else
                 start=pBiDi->paras[paraIndex-1].limit;
             limit=pBiDi->paras[paraIndex].limit;
-            level=pBiDi->paras[paraIndex].level;
+            level= static_cast<UBiDiLevel>(pBiDi->paras[paraIndex].level);
             for(i=start; i<limit; i++)
                 levels[i]=level;
         }
@@ -1119,7 +1119,7 @@ resolveExplicitLevels(UBiDi *pBiDi, UErrorCode *pErrorCode) {
             else
                 start=pBiDi->paras[paraIndex-1].limit;
             limit=pBiDi->paras[paraIndex].limit;
-            level=pBiDi->paras[paraIndex].level;
+            level= static_cast<UBiDiLevel>(pBiDi->paras[paraIndex].level);
             for(i=start; i<limit; i++) {
                 levels[i]=level;
                 dirProp=dirProps[i];
@@ -2827,7 +2827,7 @@ ubidi_setPara(UBiDi *pBiDi, const UChar *text, int32_t length,
         DirProp dirProp;
         for(i=0; i<pBiDi->paraCount; i++) {
             last=(pBiDi->paras[i].limit)-1;
-            level=pBiDi->paras[i].level;
+            level= static_cast<UBiDiLevel>(pBiDi->paras[i].level);
             if(level==0)
                 continue;           /* LTR paragraph */
             start= i==0 ? 0 : pBiDi->paras[i-1].limit;
index fd7b90f..e6d1d9c 100644 (file)
@@ -146,7 +146,7 @@ static UBool
 action_reorder(UBiDiTransform *pTransform, UErrorCode *pErrorCode)
 {
     ubidi_writeReordered(pTransform->pBidi, pTransform->dest, pTransform->destSize,
-            pTransform->reorderingOptions, pErrorCode);
+            static_cast<uint16_t>(pTransform->reorderingOptions), pErrorCode);
 
     *pTransform->pDestLength = pTransform->srcLength;
     pTransform->reorderingOptions = UBIDI_REORDER_DEFAULT;
@@ -393,9 +393,9 @@ resolveBaseDirection(const UChar *text, uint32_t length,
     switch (*pInLevel) {
         case UBIDI_DEFAULT_LTR:
         case UBIDI_DEFAULT_RTL: {
-            UBiDiLevel level = ubidi_getBaseDirection(text, length);
-            *pInLevel = level != UBIDI_NEUTRAL ? level
-                    : *pInLevel == UBIDI_DEFAULT_RTL ? RTL : LTR;
+            UBiDiLevel level = static_cast<UBiDiLevel>(ubidi_getBaseDirection(text, length));
+            *pInLevel = static_cast<UBiDiLevel>(level != UBIDI_NEUTRAL) ? level
+                    : *pInLevel == UBIDI_DEFAULT_RTL ? static_cast<UBiDiLevel>(RTL) : static_cast<UBiDiLevel>(LTR);
             break;
         }
         default:
index cbd5a6e..8414c52 100644 (file)
@@ -270,6 +270,7 @@ ucase_addCaseClosure(UChar32 c, const USetAdder *sa) {
             }
         }
         if(HAS_SLOT(excWord, UCASE_EXC_DELTA)) {
+            pe=pe0;
             int32_t delta;
             GET_SLOT_VALUE(excWord, UCASE_EXC_DELTA, pe, delta);
             sa->add(sa->set, (excWord&UCASE_EXC_DELTA_IS_NEGATIVE)==0 ? c+delta : c-delta);
@@ -1167,7 +1168,7 @@ ucase_toFullLower(UChar32 c,
 
         if(HAS_SLOT(excWord, UCASE_EXC_DELTA) && UCASE_IS_UPPER_OR_TITLE(props)) {
             int32_t delta;
-            GET_SLOT_VALUE(excWord, UCASE_EXC_DELTA, pe, delta);
+            GET_SLOT_VALUE(excWord, UCASE_EXC_DELTA, pe2, delta);
             return (excWord&UCASE_EXC_DELTA_IS_NEGATIVE)==0 ? c+delta : c-delta;
         }
         if(HAS_SLOT(excWord, UCASE_EXC_LOWER)) {
@@ -1261,7 +1262,7 @@ toUpperOrTitle(UChar32 c,
 
         if(HAS_SLOT(excWord, UCASE_EXC_DELTA) && UCASE_GET_TYPE(props)==UCASE_LOWER) {
             int32_t delta;
-            GET_SLOT_VALUE(excWord, UCASE_EXC_DELTA, pe, delta);
+            GET_SLOT_VALUE(excWord, UCASE_EXC_DELTA, pe2, delta);
             return (excWord&UCASE_EXC_DELTA_IS_NEGATIVE)==0 ? c+delta : c-delta;
         }
         if(!upperNotTitle && HAS_SLOT(excWord, UCASE_EXC_TITLE)) {
@@ -1469,7 +1470,7 @@ ucase_toFullFolding(UChar32 c,
         }
         if(HAS_SLOT(excWord, UCASE_EXC_DELTA) && UCASE_IS_UPPER_OR_TITLE(props)) {
             int32_t delta;
-            GET_SLOT_VALUE(excWord, UCASE_EXC_DELTA, pe, delta);
+            GET_SLOT_VALUE(excWord, UCASE_EXC_DELTA, pe2, delta);
             return (excWord&UCASE_EXC_DELTA_IS_NEGATIVE)==0 ? c+delta : c-delta;
         }
         if(HAS_SLOT(excWord, UCASE_EXC_FOLD)) {
index 9b6c205..0ca911b 100644 (file)
@@ -45,6 +45,7 @@ typedef enum ECleanupCommonType {
     UCLN_COMMON_CURRENCY,
     UCLN_COMMON_LOADED_NORMALIZER2,
     UCLN_COMMON_NORMALIZER2,
+    UCLN_COMMON_CHARACTERPROPERTIES,
     UCLN_COMMON_USET,
     UCLN_COMMON_UNAMES,
     UCLN_COMMON_UPROPS,
@@ -52,7 +53,6 @@ typedef enum ECleanupCommonType {
     UCLN_COMMON_UCNV_IO,
     UCLN_COMMON_UDATA,
     UCLN_COMMON_PUTIL,
-    UCLN_COMMON_LIST_FORMATTER,
     UCLN_COMMON_UINIT,
 
     /*
index ae3c63d..4e57619 100644 (file)
@@ -1743,13 +1743,9 @@ ucnv_fromUChars(UConverter *cnv,
     }
     if(srcLength>0) {
         srcLimit=src+srcLength;
+        destCapacity=pinCapacity(dest, destCapacity);
         destLimit=dest+destCapacity;
 
-        /* pin the destination limit to U_MAX_PTR; NULL check is for OS/400 */
-        if(destLimit<dest || (destLimit==NULL && dest!=NULL)) {
-            destLimit=(char *)U_MAX_PTR(dest);
-        }
-
         /* perform the conversion */
         ucnv_fromUnicode(cnv, &dest, destLimit, &src, srcLimit, 0, TRUE, pErrorCode);
         destLength=(int32_t)(dest-originalDest);
@@ -1803,13 +1799,9 @@ ucnv_toUChars(UConverter *cnv,
     }
     if(srcLength>0) {
         srcLimit=src+srcLength;
+        destCapacity=pinCapacity(dest, destCapacity);
         destLimit=dest+destCapacity;
 
-        /* pin the destination limit to U_MAX_PTR; NULL check is for OS/400 */
-        if(destLimit<dest || (destLimit==NULL && dest!=NULL)) {
-            destLimit=(UChar *)U_MAX_PTR(dest);
-        }
-
         /* perform the conversion */
         ucnv_toUnicode(cnv, &dest, destLimit, &src, srcLimit, 0, TRUE, pErrorCode);
         destLength=(int32_t)(dest-originalDest);
index 2ef5db9..d1a50d2 100644 (file)
@@ -2772,7 +2772,7 @@ getTrailByte:
                         /* report a pair of illegal bytes if the second byte is not a DBCS starter */
                         ++mySource;
                         /* add another bit so that the code below writes 2 bytes in case of error */
-                        mySourceChar = 0x10000 | (mySourceChar << 8) | trailByte;
+                        mySourceChar = static_cast<UChar>(0x10000 | (mySourceChar << 8) | trailByte);
                     }
                 } else {
                     args->converter->toUBytes[0] = (uint8_t)mySourceChar;
@@ -3304,7 +3304,7 @@ UConverter_toUnicode_ISO_2022_CN_OFFSETS_LOGIC(UConverterToUnicodeArgs *args,
                     myData->isEmptySegment = FALSE;    /* we are handling it, reset to avoid future spurious errors */
                     *err = U_ILLEGAL_ESCAPE_SEQUENCE;
                     args->converter->toUCallbackReason = UCNV_IRREGULAR;
-                    args->converter->toUBytes[0] = mySourceChar;
+                    args->converter->toUBytes[0] = static_cast<uint8_t>(mySourceChar);
                     args->converter->toULength = 1;
                     args->target = myTarget;
                     args->source = mySource;
index 51e31aa..b40e1b2 100644 (file)
@@ -180,7 +180,7 @@ _CompoundTextgetName(const UConverter* cnv);
 
 
 static int32_t findNextEsc(const char *source, const char *sourceLimit) {
-    int32_t length = sourceLimit - source;
+    int32_t length = static_cast<int32_t>(sourceLimit - source);
     int32_t i;
     for (i = 1; i < length; i++) {
         if (*(source + i) == 0x1B) {
index 28f2727..a5e8367 100644 (file)
@@ -71,7 +71,7 @@ _UTF16BEFromUnicodeWithOffsets(UConverterFromUnicodeArgs *pArgs,
 
     /* write the BOM if necessary */
     if(cnv->fromUnicodeStatus==UCNV_NEED_TO_WRITE_BOM) {
-        static const char bom[]={ (char)0xfe, (char)0xff };
+        static const char bom[]={ (char)0xfeu, (char)0xffu };
         ucnv_fromUWriteBytes(cnv,
                              bom, 2,
                              &pArgs->target, pArgs->targetLimit,
@@ -672,7 +672,7 @@ _UTF16LEFromUnicodeWithOffsets(UConverterFromUnicodeArgs *pArgs,
 
     /* write the BOM if necessary */
     if(cnv->fromUnicodeStatus==UCNV_NEED_TO_WRITE_BOM) {
-        static const char bom[]={ (char)0xff, (char)0xfe };
+        static const char bom[]={ (char)0xffu, (char)0xfeu };
         ucnv_fromUWriteBytes(cnv,
                              bom, 2,
                              &pArgs->target, pArgs->targetLimit,
index 5777117..9f98914 100644 (file)
@@ -228,7 +228,7 @@ T_UConverter_fromUnicode_UTF32_BE(UConverterFromUnicodeArgs * args,
 
     /* write the BOM if necessary */
     if(args->converter->fromUnicodeStatus==UCNV_NEED_TO_WRITE_BOM) {
-        static const char bom[]={ 0, 0, (char)0xfe, (char)0xff };
+        static const char bom[]={ 0, 0, (char)0xfeu, (char)0xffu };
         ucnv_fromUWriteBytes(args->converter,
                              bom, 4,
                              &args->target, args->targetLimit,
@@ -331,7 +331,7 @@ T_UConverter_fromUnicode_UTF32_BE_OFFSET_LOGIC(UConverterFromUnicodeArgs * args,
 
     /* write the BOM if necessary */
     if(args->converter->fromUnicodeStatus==UCNV_NEED_TO_WRITE_BOM) {
-        static const char bom[]={ 0, 0, (char)0xfe, (char)0xff };
+        static const char bom[]={ 0, 0, (char)0xfeu, (char)0xffu };
         ucnv_fromUWriteBytes(args->converter,
                              bom, 4,
                              &args->target, args->targetLimit,
@@ -706,7 +706,7 @@ T_UConverter_fromUnicode_UTF32_LE(UConverterFromUnicodeArgs * args,
 
     /* write the BOM if necessary */
     if(args->converter->fromUnicodeStatus==UCNV_NEED_TO_WRITE_BOM) {
-        static const char bom[]={ (char)0xff, (char)0xfe, 0, 0 };
+        static const char bom[]={ (char)0xffu, (char)0xfeu, 0, 0 };
         ucnv_fromUWriteBytes(args->converter,
                              bom, 4,
                              &args->target, args->targetLimit,
@@ -817,7 +817,7 @@ T_UConverter_fromUnicode_UTF32_LE_OFFSET_LOGIC(UConverterFromUnicodeArgs * args,
 
     /* write the BOM if necessary */
     if(args->converter->fromUnicodeStatus==UCNV_NEED_TO_WRITE_BOM) {
-        static const char bom[]={ (char)0xff, (char)0xfe, 0, 0 };
+        static const char bom[]={ (char)0xffu, (char)0xfeu, 0, 0 };
         ucnv_fromUWriteBytes(args->converter,
                              bom, 4,
                              &args->target, args->targetLimit,
@@ -1043,7 +1043,7 @@ _UTF32Open(UConverter *cnv,
     _UTF32Reset(cnv, UCNV_RESET_BOTH);
 }
 
-static const char utf32BOM[8]={ 0, 0, (char)0xfe, (char)0xff,    (char)0xff, (char)0xfe, 0, 0 };
+static const char utf32BOM[8]={ 0, 0, (char)0xfeu, (char)0xffu, (char)0xffu, (char)0xfeu, 0, 0 };
 
 static void U_CALLCONV
 _UTF32ToUnicodeWithOffsets(UConverterToUnicodeArgs *pArgs,
@@ -1071,7 +1071,7 @@ _UTF32ToUnicodeWithOffsets(UConverterToUnicodeArgs *pArgs,
             b=*source;
             if(b==0) {
                 state=1; /* could be 00 00 FE FF */
-            } else if(b==(char)0xff) {
+            } else if(b==(char)0xffu) {
                 state=5; /* could be FF FE 00 00 */
             } else {
                 state=8; /* default to UTF-32BE */
index 7089d94..9b518e0 100644 (file)
@@ -108,7 +108,7 @@ morebytes:
                 if (mySource < sourceLimit)
                 {
                     toUBytes[i] = (char) (ch2 = *mySource);
-                    if (!icu::UTF8::isValidTrail(ch, ch2, i, inBytes) &&
+                    if (!icu::UTF8::isValidTrail(ch, static_cast<uint8_t>(ch2), i, inBytes) &&
                             !(isCESU8 && i == 1 && ch == 0xed && U8_IS_TRAIL(ch2)))
                     {
                         break; /* i < inBytes */
@@ -225,7 +225,7 @@ morebytes:
                 if (mySource < sourceLimit)
                 {
                     toUBytes[i] = (char) (ch2 = *mySource);
-                    if (!icu::UTF8::isValidTrail(ch, ch2, i, inBytes) &&
+                    if (!icu::UTF8::isValidTrail(ch, static_cast<uint8_t>(ch2), i, inBytes) &&
                             !(isCESU8 && i == 1 && ch == 0xed && U8_IS_TRAIL(ch2)))
                     {
                         break; /* i < inBytes */
index 79a83d7..e9f5206 100644 (file)
@@ -199,7 +199,7 @@ UConverter_toUnicode_HZ_OFFSETS_LOGIC(UConverterToUnicodeArgs *args,
                         *err = U_ILLEGAL_ESCAPE_SEQUENCE;
                         args->converter->toUCallbackReason = UCNV_IRREGULAR;
                         args->converter->toUBytes[0] = UCNV_TILDE;
-                        args->converter->toUBytes[1] = mySourceChar;
+                        args->converter->toUBytes[1] = static_cast<uint8_t>(mySourceChar);
                         args->converter->toULength = 2;
                         args->target = myTarget;
                         args->source = mySource;
@@ -229,7 +229,7 @@ UConverter_toUnicode_HZ_OFFSETS_LOGIC(UConverterToUnicodeArgs *args,
                         --mySource;
                     } else {
                         /* Include the current byte in the illegal sequence. */
-                        args->converter->toUBytes[1] = mySourceChar;
+                        args->converter->toUBytes[1] = static_cast<uint8_t>(mySourceChar);
                         args->converter->toULength = 2;
                     }
                     args->target = myTarget;
index 2d0c857..583744b 100644 (file)
@@ -4164,8 +4164,8 @@ ucnv_MBCSFromUnicodeWithOffsets(UConverterFromUnicodeArgs *pArgs,
     nextSourceIndex=0;
 
     /* Get the SI/SO character for the converter */
-    siLength = getSISOBytes(SI, cnv->options, siBytes);
-    soLength = getSISOBytes(SO, cnv->options, soBytes);
+    siLength = static_cast<uint8_t>(getSISOBytes(SI, cnv->options, siBytes));
+    soLength = static_cast<uint8_t>(getSISOBytes(SO, cnv->options, soBytes));
 
     /* conversion loop */
     /*
index ba062b3..79be8c3 100644 (file)
@@ -41,6 +41,7 @@
 #include "propsvec.h"
 #include "uassert.h"
 #include "ucmndata.h"
+#include "udataswp.h"
 #include "uenumimp.h"
 #include "cmemory.h"
 #include "cstring.h"
@@ -72,7 +73,7 @@ static void generateSelectorData(UConverterSelector* result,
   // set errorValue to all-ones
   for (int32_t col = 0; col < columns; col++) {
     upvec_setValue(upvec, UPVEC_ERROR_VALUE_CP, UPVEC_ERROR_VALUE_CP,
-                   col, ~0, ~0, status);
+                   col, static_cast<uint32_t>(~0), static_cast<uint32_t>(~0), status);
   }
 
   for (int32_t i = 0; i < result->encodingsCount; ++i) {
@@ -109,7 +110,7 @@ static void generateSelectorData(UConverterSelector* result,
         // this will be reached for the converters that fill the set with
         // strings. Those should be ignored by our system
       } else {
-        upvec_setValue(upvec, start_char, end_char, column, ~0, mask,
+        upvec_setValue(upvec, start_char, end_char, column, static_cast<uint32_t>(~0), mask,
                        status);
       }
     }
@@ -130,7 +131,7 @@ static void generateSelectorData(UConverterSelector* result,
       uset_getItem(excludedCodePoints, j, &start_char, &end_char, NULL, 0,
                    status);
       for (int32_t col = 0; col < columns; col++) {
-        upvec_setValue(upvec, start_char, end_char, col, ~0, ~0,
+        upvec_setValue(upvec, start_char, end_char, col, static_cast<uint32_t>(~0), static_cast<uint32_t>(~0),
                       status);
       }
     }
@@ -684,7 +685,7 @@ static int16_t countOnes(uint32_t* mask, int32_t len) {
       ent &= ent - 1; // clear the least significant bit set
     }
   }
-  return totalOnes;
+  return static_cast<int16_t>(totalOnes);
 }
 
 
index 1822705..1af1986 100644 (file)
 
 /* swapping ----------------------------------------------------------------- */
 
-/*
- * This performs data swapping for a folded trie (see utrie.c for details).
- */
-
-U_CAPI int32_t U_EXPORT2
-utrie_swap(const UDataSwapper *ds,
-           const void *inData, int32_t length, void *outData,
-           UErrorCode *pErrorCode) {
-    const UTrieHeader *inTrie;
-    UTrieHeader trie;
-    int32_t size;
-    UBool dataIs32;
-
-    if(pErrorCode==NULL || U_FAILURE(*pErrorCode)) {
-        return 0;
-    }
-    if(ds==NULL || inData==NULL || (length>=0 && outData==NULL)) {
-        *pErrorCode=U_ILLEGAL_ARGUMENT_ERROR;
-        return 0;
-    }
-
-    /* setup and swapping */
-    if(length>=0 && (uint32_t)length<sizeof(UTrieHeader)) {
-        *pErrorCode=U_INDEX_OUTOFBOUNDS_ERROR;
-        return 0;
-    }
-
-    inTrie=(const UTrieHeader *)inData;
-    trie.signature=ds->readUInt32(inTrie->signature);
-    trie.options=ds->readUInt32(inTrie->options);
-    trie.indexLength=udata_readInt32(ds, inTrie->indexLength);
-    trie.dataLength=udata_readInt32(ds, inTrie->dataLength);
-
-    if( trie.signature!=0x54726965 ||
-        (trie.options&UTRIE_OPTIONS_SHIFT_MASK)!=UTRIE_SHIFT ||
-        ((trie.options>>UTRIE_OPTIONS_INDEX_SHIFT)&UTRIE_OPTIONS_SHIFT_MASK)!=UTRIE_INDEX_SHIFT ||
-        trie.indexLength<UTRIE_BMP_INDEX_LENGTH ||
-        (trie.indexLength&(UTRIE_SURROGATE_BLOCK_COUNT-1))!=0 ||
-        trie.dataLength<UTRIE_DATA_BLOCK_LENGTH ||
-        (trie.dataLength&(UTRIE_DATA_GRANULARITY-1))!=0 ||
-        ((trie.options&UTRIE_OPTIONS_LATIN1_IS_LINEAR)!=0 && trie.dataLength<(UTRIE_DATA_BLOCK_LENGTH+0x100))
-    ) {
-        *pErrorCode=U_INVALID_FORMAT_ERROR; /* not a UTrie */
-        return 0;
-    }
-
-    dataIs32=(UBool)((trie.options&UTRIE_OPTIONS_DATA_IS_32_BIT)!=0);
-    size=sizeof(UTrieHeader)+trie.indexLength*2+trie.dataLength*(dataIs32?4:2);
-
-    if(length>=0) {
-        UTrieHeader *outTrie;
-
-        if(length<size) {
-            *pErrorCode=U_INDEX_OUTOFBOUNDS_ERROR;
-            return 0;
-        }
-
-        outTrie=(UTrieHeader *)outData;
-
-        /* swap the header */
-        ds->swapArray32(ds, inTrie, sizeof(UTrieHeader), outTrie, pErrorCode);
-
-        /* swap the index and the data */
-        if(dataIs32) {
-            ds->swapArray16(ds, inTrie+1, trie.indexLength*2, outTrie+1, pErrorCode);
-            ds->swapArray32(ds, (const uint16_t *)(inTrie+1)+trie.indexLength, trie.dataLength*4,
-                                     (uint16_t *)(outTrie+1)+trie.indexLength, pErrorCode);
-        } else {
-            ds->swapArray16(ds, inTrie+1, (trie.indexLength+trie.dataLength)*2, outTrie+1, pErrorCode);
-        }
-    }
-
-    return size;
-}
-
 #if !UCONFIG_NO_COLLATION
 
 U_CAPI UBool U_EXPORT2
diff --git a/source/common/ucptrie.cpp b/source/common/ucptrie.cpp
new file mode 100644 (file)
index 0000000..13496ad
--- /dev/null
@@ -0,0 +1,590 @@
+// © 2017 and later: Unicode, Inc. and others.
+// License & terms of use: http://www.unicode.org/copyright.html
+
+// ucptrie.cpp (modified from utrie2.cpp)
+// created: 2017dec29 Markus W. Scherer
+
+// #define UCPTRIE_DEBUG
+#ifdef UCPTRIE_DEBUG
+#   include <stdio.h>
+#endif
+
+#include "unicode/utypes.h"
+#include "unicode/ucptrie.h"
+#include "unicode/utf.h"
+#include "unicode/utf8.h"
+#include "unicode/utf16.h"
+#include "cmemory.h"
+#include "uassert.h"
+#include "ucptrie_impl.h"
+
+U_CAPI UCPTrie * U_EXPORT2
+ucptrie_openFromBinary(UCPTrieType type, UCPTrieValueWidth valueWidth,
+                       const void *data, int32_t length, int32_t *pActualLength,
+                       UErrorCode *pErrorCode) {
+    if (U_FAILURE(*pErrorCode)) {
+        return nullptr;
+    }
+
+    if (length <= 0 || (U_POINTER_MASK_LSB(data, 3) != 0) ||
+            type < UCPTRIE_TYPE_ANY || UCPTRIE_TYPE_SMALL < type ||
+            valueWidth < UCPTRIE_VALUE_BITS_ANY || UCPTRIE_VALUE_BITS_8 < valueWidth) {
+        *pErrorCode = U_ILLEGAL_ARGUMENT_ERROR;
+        return nullptr;
+    }
+
+    // Enough data for a trie header?
+    if (length < (int32_t)sizeof(UCPTrieHeader)) {
+        *pErrorCode = U_INVALID_FORMAT_ERROR;
+        return nullptr;
+    }
+
+    // Check the signature.
+    const UCPTrieHeader *header = (const UCPTrieHeader *)data;
+    if (header->signature != UCPTRIE_SIG) {
+        *pErrorCode = U_INVALID_FORMAT_ERROR;
+        return nullptr;
+    }
+
+    int32_t options = header->options;
+    int32_t typeInt = (options >> 6) & 3;
+    int32_t valueWidthInt = options & UCPTRIE_OPTIONS_VALUE_BITS_MASK;
+    if (typeInt > UCPTRIE_TYPE_SMALL || valueWidthInt > UCPTRIE_VALUE_BITS_8 ||
+            (options & UCPTRIE_OPTIONS_RESERVED_MASK) != 0) {
+        *pErrorCode = U_INVALID_FORMAT_ERROR;
+        return nullptr;
+    }
+    UCPTrieType actualType = (UCPTrieType)typeInt;
+    UCPTrieValueWidth actualValueWidth = (UCPTrieValueWidth)valueWidthInt;
+    if (type < 0) {
+        type = actualType;
+    }
+    if (valueWidth < 0) {
+        valueWidth = actualValueWidth;
+    }
+    if (type != actualType || valueWidth != actualValueWidth) {
+        *pErrorCode = U_INVALID_FORMAT_ERROR;
+        return nullptr;
+    }
+
+    // Get the length values and offsets.
+    UCPTrie tempTrie;
+    uprv_memset(&tempTrie, 0, sizeof(tempTrie));
+    tempTrie.indexLength = header->indexLength;
+    tempTrie.dataLength =
+        ((options & UCPTRIE_OPTIONS_DATA_LENGTH_MASK) << 4) | header->dataLength;
+    tempTrie.index3NullOffset = header->index3NullOffset;
+    tempTrie.dataNullOffset =
+        ((options & UCPTRIE_OPTIONS_DATA_NULL_OFFSET_MASK) << 8) | header->dataNullOffset;
+
+    tempTrie.highStart = header->shiftedHighStart << UCPTRIE_SHIFT_2;
+    tempTrie.shifted12HighStart = (tempTrie.highStart + 0xfff) >> 12;
+    tempTrie.type = type;
+    tempTrie.valueWidth = valueWidth;
+
+    // Calculate the actual length.
+    int32_t actualLength = (int32_t)sizeof(UCPTrieHeader) + tempTrie.indexLength * 2;
+    if (valueWidth == UCPTRIE_VALUE_BITS_16) {
+        actualLength += tempTrie.dataLength * 2;
+    } else if (valueWidth == UCPTRIE_VALUE_BITS_32) {
+        actualLength += tempTrie.dataLength * 4;
+    } else {
+        actualLength += tempTrie.dataLength;
+    }
+    if (length < actualLength) {
+        *pErrorCode = U_INVALID_FORMAT_ERROR;  // Not enough bytes.
+        return nullptr;
+    }
+
+    // Allocate the trie.
+    UCPTrie *trie = (UCPTrie *)uprv_malloc(sizeof(UCPTrie));
+    if (trie == nullptr) {
+        *pErrorCode = U_MEMORY_ALLOCATION_ERROR;
+        return nullptr;
+    }
+    uprv_memcpy(trie, &tempTrie, sizeof(tempTrie));
+#ifdef UCPTRIE_DEBUG
+    trie->name = "fromSerialized";
+#endif
+
+    // Set the pointers to its index and data arrays.
+    const uint16_t *p16 = (const uint16_t *)(header + 1);
+    trie->index = p16;
+    p16 += trie->indexLength;
+
+    // Get the data.
+    int32_t nullValueOffset = trie->dataNullOffset;
+    if (nullValueOffset >= trie->dataLength) {
+        nullValueOffset = trie->dataLength - UCPTRIE_HIGH_VALUE_NEG_DATA_OFFSET;
+    }
+    switch (valueWidth) {
+    case UCPTRIE_VALUE_BITS_16:
+        trie->data.ptr16 = p16;
+        trie->nullValue = trie->data.ptr16[nullValueOffset];
+        break;
+    case UCPTRIE_VALUE_BITS_32:
+        trie->data.ptr32 = (const uint32_t *)p16;
+        trie->nullValue = trie->data.ptr32[nullValueOffset];
+        break;
+    case UCPTRIE_VALUE_BITS_8:
+        trie->data.ptr8 = (const uint8_t *)p16;
+        trie->nullValue = trie->data.ptr8[nullValueOffset];
+        break;
+    default:
+        // Unreachable because valueWidth was checked above.
+        *pErrorCode = U_INVALID_FORMAT_ERROR;
+        return nullptr;
+    }
+
+    if (pActualLength != nullptr) {
+        *pActualLength = actualLength;
+    }
+    return trie;
+}
+
+U_CAPI void U_EXPORT2
+ucptrie_close(UCPTrie *trie) {
+    uprv_free(trie);
+}
+
+U_CAPI UCPTrieType U_EXPORT2
+ucptrie_getType(const UCPTrie *trie) {
+    return (UCPTrieType)trie->type;
+}
+
+U_CAPI UCPTrieValueWidth U_EXPORT2
+ucptrie_getValueWidth(const UCPTrie *trie) {
+    return (UCPTrieValueWidth)trie->valueWidth;
+}
+
+U_CAPI int32_t U_EXPORT2
+ucptrie_internalSmallIndex(const UCPTrie *trie, UChar32 c) {
+    int32_t i1 = c >> UCPTRIE_SHIFT_1;
+    if (trie->type == UCPTRIE_TYPE_FAST) {
+        U_ASSERT(0xffff < c && c < trie->highStart);
+        i1 += UCPTRIE_BMP_INDEX_LENGTH - UCPTRIE_OMITTED_BMP_INDEX_1_LENGTH;
+    } else {
+        U_ASSERT((uint32_t)c < (uint32_t)trie->highStart && trie->highStart > UCPTRIE_SMALL_LIMIT);
+        i1 += UCPTRIE_SMALL_INDEX_LENGTH;
+    }
+    int32_t i3Block = trie->index[
+        (int32_t)trie->index[i1] + ((c >> UCPTRIE_SHIFT_2) & UCPTRIE_INDEX_2_MASK)];
+    int32_t i3 = (c >> UCPTRIE_SHIFT_3) & UCPTRIE_INDEX_3_MASK;
+    int32_t dataBlock;
+    if ((i3Block & 0x8000) == 0) {
+        // 16-bit indexes
+        dataBlock = trie->index[i3Block + i3];
+    } else {
+        // 18-bit indexes stored in groups of 9 entries per 8 indexes.
+        i3Block = (i3Block & 0x7fff) + (i3 & ~7) + (i3 >> 3);
+        i3 &= 7;
+        dataBlock = ((int32_t)trie->index[i3Block++] << (2 + (2 * i3))) & 0x30000;
+        dataBlock |= trie->index[i3Block + i3];
+    }
+    return dataBlock + (c & UCPTRIE_SMALL_DATA_MASK);
+}
+
+U_CAPI int32_t U_EXPORT2
+ucptrie_internalSmallU8Index(const UCPTrie *trie, int32_t lt1, uint8_t t2, uint8_t t3) {
+    UChar32 c = (lt1 << 12) | (t2 << 6) | t3;
+    if (c >= trie->highStart) {
+        // Possible because the UTF-8 macro compares with shifted12HighStart which may be higher.
+        return trie->dataLength - UCPTRIE_HIGH_VALUE_NEG_DATA_OFFSET;
+    }
+    return ucptrie_internalSmallIndex(trie, c);
+}
+
+U_CAPI int32_t U_EXPORT2
+ucptrie_internalU8PrevIndex(const UCPTrie *trie, UChar32 c,
+                            const uint8_t *start, const uint8_t *src) {
+    int32_t i, length;
+    // Support 64-bit pointers by avoiding cast of arbitrary difference.
+    if ((src - start) <= 7) {
+        i = length = (int32_t)(src - start);
+    } else {
+        i = length = 7;
+        start = src - 7;
+    }
+    c = utf8_prevCharSafeBody(start, 0, &i, c, -1);
+    i = length - i;  // Number of bytes read backward from src.
+    int32_t idx = _UCPTRIE_CP_INDEX(trie, 0xffff, c);
+    return (idx << 3) | i;
+}
+
+namespace {
+
+inline uint32_t getValue(UCPTrieData data, UCPTrieValueWidth valueWidth, int32_t dataIndex) {
+    switch (valueWidth) {
+    case UCPTRIE_VALUE_BITS_16:
+        return data.ptr16[dataIndex];
+    case UCPTRIE_VALUE_BITS_32:
+        return data.ptr32[dataIndex];
+    case UCPTRIE_VALUE_BITS_8:
+        return data.ptr8[dataIndex];
+    default:
+        // Unreachable if the trie is properly initialized.
+        return 0xffffffff;
+    }
+}
+
+}  // namespace
+
+U_CAPI uint32_t U_EXPORT2
+ucptrie_get(const UCPTrie *trie, UChar32 c) {
+    int32_t dataIndex;
+    if ((uint32_t)c <= 0x7f) {
+        // linear ASCII
+        dataIndex = c;
+    } else {
+        UChar32 fastMax = trie->type == UCPTRIE_TYPE_FAST ? 0xffff : UCPTRIE_SMALL_MAX;
+        dataIndex = _UCPTRIE_CP_INDEX(trie, fastMax, c);
+    }
+    return getValue(trie->data, (UCPTrieValueWidth)trie->valueWidth, dataIndex);
+}
+
+namespace {
+
+constexpr int32_t MAX_UNICODE = 0x10ffff;
+
+inline uint32_t maybeFilterValue(uint32_t value, uint32_t trieNullValue, uint32_t nullValue,
+                                 UCPMapValueFilter *filter, const void *context) {
+    if (value == trieNullValue) {
+        value = nullValue;
+    } else if (filter != nullptr) {
+        value = filter(context, value);
+    }
+    return value;
+}
+
+UChar32 getRange(const void *t, UChar32 start,
+                 UCPMapValueFilter *filter, const void *context, uint32_t *pValue) {
+    if ((uint32_t)start > MAX_UNICODE) {
+        return U_SENTINEL;
+    }
+    const UCPTrie *trie = reinterpret_cast<const UCPTrie *>(t);
+    UCPTrieValueWidth valueWidth = (UCPTrieValueWidth)trie->valueWidth;
+    if (start >= trie->highStart) {
+        if (pValue != nullptr) {
+            int32_t di = trie->dataLength - UCPTRIE_HIGH_VALUE_NEG_DATA_OFFSET;
+            uint32_t value = getValue(trie->data, valueWidth, di);
+            if (filter != nullptr) { value = filter(context, value); }
+            *pValue = value;
+        }
+        return MAX_UNICODE;
+    }
+
+    uint32_t nullValue = trie->nullValue;
+    if (filter != nullptr) { nullValue = filter(context, nullValue); }
+    const uint16_t *index = trie->index;
+
+    int32_t prevI3Block = -1;
+    int32_t prevBlock = -1;
+    UChar32 c = start;
+    uint32_t value;
+    bool haveValue = false;
+    do {
+        int32_t i3Block;
+        int32_t i3;
+        int32_t i3BlockLength;
+        int32_t dataBlockLength;
+        if (c <= 0xffff && (trie->type == UCPTRIE_TYPE_FAST || c <= UCPTRIE_SMALL_MAX)) {
+            i3Block = 0;
+            i3 = c >> UCPTRIE_FAST_SHIFT;
+            i3BlockLength = trie->type == UCPTRIE_TYPE_FAST ?
+                UCPTRIE_BMP_INDEX_LENGTH : UCPTRIE_SMALL_INDEX_LENGTH;
+            dataBlockLength = UCPTRIE_FAST_DATA_BLOCK_LENGTH;
+        } else {
+            // Use the multi-stage index.
+            int32_t i1 = c >> UCPTRIE_SHIFT_1;
+            if (trie->type == UCPTRIE_TYPE_FAST) {
+                U_ASSERT(0xffff < c && c < trie->highStart);
+                i1 += UCPTRIE_BMP_INDEX_LENGTH - UCPTRIE_OMITTED_BMP_INDEX_1_LENGTH;
+            } else {
+                U_ASSERT(c < trie->highStart && trie->highStart > UCPTRIE_SMALL_LIMIT);
+                i1 += UCPTRIE_SMALL_INDEX_LENGTH;
+            }
+            i3Block = trie->index[
+                (int32_t)trie->index[i1] + ((c >> UCPTRIE_SHIFT_2) & UCPTRIE_INDEX_2_MASK)];
+            if (i3Block == prevI3Block && (c - start) >= UCPTRIE_CP_PER_INDEX_2_ENTRY) {
+                // The index-3 block is the same as the previous one, and filled with value.
+                U_ASSERT((c & (UCPTRIE_CP_PER_INDEX_2_ENTRY - 1)) == 0);
+                c += UCPTRIE_CP_PER_INDEX_2_ENTRY;
+                continue;
+            }
+            prevI3Block = i3Block;
+            if (i3Block == trie->index3NullOffset) {
+                // This is the index-3 null block.
+                if (haveValue) {
+                    if (nullValue != value) {
+                        return c - 1;
+                    }
+                } else {
+                    value = nullValue;
+                    if (pValue != nullptr) { *pValue = nullValue; }
+                    haveValue = true;
+                }
+                prevBlock = trie->dataNullOffset;
+                c = (c + UCPTRIE_CP_PER_INDEX_2_ENTRY) & ~(UCPTRIE_CP_PER_INDEX_2_ENTRY - 1);
+                continue;
+            }
+            i3 = (c >> UCPTRIE_SHIFT_3) & UCPTRIE_INDEX_3_MASK;
+            i3BlockLength = UCPTRIE_INDEX_3_BLOCK_LENGTH;
+            dataBlockLength = UCPTRIE_SMALL_DATA_BLOCK_LENGTH;
+        }
+        // Enumerate data blocks for one index-3 block.
+        do {
+            int32_t block;
+            if ((i3Block & 0x8000) == 0) {
+                block = index[i3Block + i3];
+            } else {
+                // 18-bit indexes stored in groups of 9 entries per 8 indexes.
+                int32_t group = (i3Block & 0x7fff) + (i3 & ~7) + (i3 >> 3);
+                int32_t gi = i3 & 7;
+                block = ((int32_t)index[group++] << (2 + (2 * gi))) & 0x30000;
+                block |= index[group + gi];
+            }
+            if (block == prevBlock && (c - start) >= dataBlockLength) {
+                // The block is the same as the previous one, and filled with value.
+                U_ASSERT((c & (dataBlockLength - 1)) == 0);
+                c += dataBlockLength;
+            } else {
+                int32_t dataMask = dataBlockLength - 1;
+                prevBlock = block;
+                if (block == trie->dataNullOffset) {
+                    // This is the data null block.
+                    if (haveValue) {
+                        if (nullValue != value) {
+                            return c - 1;
+                        }
+                    } else {
+                        value = nullValue;
+                        if (pValue != nullptr) { *pValue = nullValue; }
+                        haveValue = true;
+                    }
+                    c = (c + dataBlockLength) & ~dataMask;
+                } else {
+                    int32_t di = block + (c & dataMask);
+                    uint32_t value2 = getValue(trie->data, valueWidth, di);
+                    value2 = maybeFilterValue(value2, trie->nullValue, nullValue,
+                                              filter, context);
+                    if (haveValue) {
+                        if (value2 != value) {
+                            return c - 1;
+                        }
+                    } else {
+                        value = value2;
+                        if (pValue != nullptr) { *pValue = value; }
+                        haveValue = true;
+                    }
+                    while ((++c & dataMask) != 0) {
+                        if (maybeFilterValue(getValue(trie->data, valueWidth, ++di),
+                                             trie->nullValue, nullValue,
+                                             filter, context) != value) {
+                            return c - 1;
+                        }
+                    }
+                }
+            }
+        } while (++i3 < i3BlockLength);
+    } while (c < trie->highStart);
+    U_ASSERT(haveValue);
+    int32_t di = trie->dataLength - UCPTRIE_HIGH_VALUE_NEG_DATA_OFFSET;
+    uint32_t highValue = getValue(trie->data, valueWidth, di);
+    if (maybeFilterValue(highValue, trie->nullValue, nullValue,
+                         filter, context) != value) {
+        return c - 1;
+    } else {
+        return MAX_UNICODE;
+    }
+}
+
+}  // namespace
+
+U_CFUNC UChar32
+ucptrie_internalGetRange(UCPTrieGetRange *getRange,
+                         const void *trie, UChar32 start,
+                         UCPMapRangeOption option, uint32_t surrogateValue,
+                         UCPMapValueFilter *filter, const void *context, uint32_t *pValue) {
+    if (option == UCPMAP_RANGE_NORMAL) {
+        return getRange(trie, start, filter, context, pValue);
+    }
+    uint32_t value;
+    if (pValue == nullptr) {
+        // We need to examine the range value even if the caller does not want it.
+        pValue = &value;
+    }
+    UChar32 surrEnd = option == UCPMAP_RANGE_FIXED_ALL_SURROGATES ? 0xdfff : 0xdbff;
+    UChar32 end = getRange(trie, start, filter, context, pValue);
+    if (end < 0xd7ff || start > surrEnd) {
+        return end;
+    }
+    // The range overlaps with surrogates, or ends just before the first one.
+    if (*pValue == surrogateValue) {
+        if (end >= surrEnd) {
+            // Surrogates followed by a non-surrogateValue range,
+            // or surrogates are part of a larger surrogateValue range.
+            return end;
+        }
+    } else {
+        if (start <= 0xd7ff) {
+            return 0xd7ff;  // Non-surrogateValue range ends before surrogateValue surrogates.
+        }
+        // Start is a surrogate with a non-surrogateValue code *unit* value.
+        // Return a surrogateValue code *point* range.
+        *pValue = surrogateValue;
+        if (end > surrEnd) {
+            return surrEnd;  // Surrogate range ends before non-surrogateValue rest of range.
+        }
+    }
+    // See if the surrogateValue surrogate range can be merged with
+    // an immediately following range.
+    uint32_t value2;
+    UChar32 end2 = getRange(trie, surrEnd + 1, filter, context, &value2);
+    if (value2 == surrogateValue) {
+        return end2;
+    }
+    return surrEnd;
+}
+
+U_CAPI UChar32 U_EXPORT2
+ucptrie_getRange(const UCPTrie *trie, UChar32 start,
+                 UCPMapRangeOption option, uint32_t surrogateValue,
+                 UCPMapValueFilter *filter, const void *context, uint32_t *pValue) {
+    return ucptrie_internalGetRange(getRange, trie, start,
+                                    option, surrogateValue,
+                                    filter, context, pValue);
+}
+
+U_CAPI int32_t U_EXPORT2
+ucptrie_toBinary(const UCPTrie *trie,
+                 void *data, int32_t capacity,
+                 UErrorCode *pErrorCode) {
+    if (U_FAILURE(*pErrorCode)) {
+        return 0;
+    }
+
+    UCPTrieType type = (UCPTrieType)trie->type;
+    UCPTrieValueWidth valueWidth = (UCPTrieValueWidth)trie->valueWidth;
+    if (type < UCPTRIE_TYPE_FAST || UCPTRIE_TYPE_SMALL < type ||
+            valueWidth < UCPTRIE_VALUE_BITS_16 || UCPTRIE_VALUE_BITS_8 < valueWidth ||
+            capacity < 0 ||
+            (capacity > 0 && (data == nullptr || (U_POINTER_MASK_LSB(data, 3) != 0)))) {
+        *pErrorCode = U_ILLEGAL_ARGUMENT_ERROR;
+        return 0;
+    }
+
+    int32_t length = (int32_t)sizeof(UCPTrieHeader) + trie->indexLength * 2;
+    switch (valueWidth) {
+    case UCPTRIE_VALUE_BITS_16:
+        length += trie->dataLength * 2;
+        break;
+    case UCPTRIE_VALUE_BITS_32:
+        length += trie->dataLength * 4;
+        break;
+    case UCPTRIE_VALUE_BITS_8:
+        length += trie->dataLength;
+        break;
+    default:
+        // unreachable
+        break;
+    }
+    if (capacity < length) {
+        *pErrorCode = U_BUFFER_OVERFLOW_ERROR;
+        return length;
+    }
+
+    char *bytes = (char *)data;
+    UCPTrieHeader *header = (UCPTrieHeader *)bytes;
+    header->signature = UCPTRIE_SIG;  // "Tri3"
+    header->options = (uint16_t)(
+        ((trie->dataLength & 0xf0000) >> 4) |
+        ((trie->dataNullOffset & 0xf0000) >> 8) |
+        (trie->type << 6) |
+        valueWidth);
+    header->indexLength = (uint16_t)trie->indexLength;
+    header->dataLength = (uint16_t)trie->dataLength;
+    header->index3NullOffset = trie->index3NullOffset;
+    header->dataNullOffset = (uint16_t)trie->dataNullOffset;
+    header->shiftedHighStart = trie->highStart >> UCPTRIE_SHIFT_2;
+    bytes += sizeof(UCPTrieHeader);
+
+    uprv_memcpy(bytes, trie->index, trie->indexLength * 2);
+    bytes += trie->indexLength * 2;
+
+    switch (valueWidth) {
+    case UCPTRIE_VALUE_BITS_16:
+        uprv_memcpy(bytes, trie->data.ptr16, trie->dataLength * 2);
+        break;
+    case UCPTRIE_VALUE_BITS_32:
+        uprv_memcpy(bytes, trie->data.ptr32, trie->dataLength * 4);
+        break;
+    case UCPTRIE_VALUE_BITS_8:
+        uprv_memcpy(bytes, trie->data.ptr8, trie->dataLength);
+        break;
+    default:
+        // unreachable
+        break;
+    }
+    return length;
+}
+
+namespace {
+
+#ifdef UCPTRIE_DEBUG
+long countNull(const UCPTrie *trie) {
+    uint32_t nullValue=trie->nullValue;
+    int32_t length=trie->dataLength;
+    long count=0;
+    switch (trie->valueWidth) {
+    case UCPTRIE_VALUE_BITS_16:
+        for(int32_t i=0; i<length; ++i) {
+            if(trie->data.ptr16[i]==nullValue) { ++count; }
+        }
+        break;
+    case UCPTRIE_VALUE_BITS_32:
+        for(int32_t i=0; i<length; ++i) {
+            if(trie->data.ptr32[i]==nullValue) { ++count; }
+        }
+        break;
+    case UCPTRIE_VALUE_BITS_8:
+        for(int32_t i=0; i<length; ++i) {
+            if(trie->data.ptr8[i]==nullValue) { ++count; }
+        }
+        break;
+    default:
+        // unreachable
+        break;
+    }
+    return count;
+}
+
+U_CFUNC void
+ucptrie_printLengths(const UCPTrie *trie, const char *which) {
+    long indexLength=trie->indexLength;
+    long dataLength=(long)trie->dataLength;
+    long totalLength=(long)sizeof(UCPTrieHeader)+indexLength*2+
+            dataLength*(trie->valueWidth==UCPTRIE_VALUE_BITS_16 ? 2 :
+                        trie->valueWidth==UCPTRIE_VALUE_BITS_32 ? 4 : 1);
+    printf("**UCPTrieLengths(%s %s)** index:%6ld  data:%6ld  countNull:%6ld  serialized:%6ld\n",
+           which, trie->name, indexLength, dataLength, countNull(trie), totalLength);
+}
+#endif
+
+}  // namespace
+
+// UCPMap ----
+// Initially, this is the same as UCPTrie. This may well change.
+
+U_CAPI uint32_t U_EXPORT2
+ucpmap_get(const UCPMap *map, UChar32 c) {
+    return ucptrie_get(reinterpret_cast<const UCPTrie *>(map), c);
+}
+
+U_CAPI UChar32 U_EXPORT2
+ucpmap_getRange(const UCPMap *map, UChar32 start,
+                UCPMapRangeOption option, uint32_t surrogateValue,
+                UCPMapValueFilter *filter, const void *context, uint32_t *pValue) {
+    return ucptrie_getRange(reinterpret_cast<const UCPTrie *>(map), start,
+                            option, surrogateValue,
+                            filter, context, pValue);
+}
diff --git a/source/common/ucptrie_impl.h b/source/common/ucptrie_impl.h
new file mode 100644 (file)
index 0000000..1fe6a18
--- /dev/null
@@ -0,0 +1,289 @@
+// © 2017 and later: Unicode, Inc. and others.
+// License & terms of use: http://www.unicode.org/copyright.html
+
+// ucptrie_impl.h (modified from utrie2_impl.h)
+// created: 2017dec29 Markus W. Scherer
+
+#ifndef __UCPTRIE_IMPL_H__
+#define __UCPTRIE_IMPL_H__
+
+#include "unicode/ucptrie.h"
+#ifdef UCPTRIE_DEBUG
+#include "unicode/umutablecptrie.h"
+#endif
+
+// UCPTrie signature values, in platform endianness and opposite endianness.
+// The UCPTrie signature ASCII byte values spell "Tri3".
+#define UCPTRIE_SIG     0x54726933
+#define UCPTRIE_OE_SIG  0x33697254
+
+/**
+ * Header data for the binary, memory-mappable representation of a UCPTrie/CodePointTrie.
+ * @internal
+ */
+struct UCPTrieHeader {
+    /** "Tri3" in big-endian US-ASCII (0x54726933) */
+    uint32_t signature;
+
+    /**
+     * Options bit field:
+     * Bits 15..12: Data length bits 19..16.
+     * Bits 11..8: Data null block offset bits 19..16.
+     * Bits 7..6: UCPTrieType
+     * Bits 5..3: Reserved (0).
+     * Bits 2..0: UCPTrieValueWidth
+     */
+    uint16_t options;
+
+    /** Total length of the index tables. */
+    uint16_t indexLength;
+
+    /** Data length bits 15..0. */
+    uint16_t dataLength;
+
+    /** Index-3 null block offset, 0x7fff or 0xffff if none. */
+    uint16_t index3NullOffset;
+
+    /** Data null block offset bits 15..0, 0xfffff if none. */
+    uint16_t dataNullOffset;
+
+    /**
+     * First code point of the single-value range ending with U+10ffff,
+     * rounded up and then shifted right by UCPTRIE_SHIFT_2.
+     */
+    uint16_t shiftedHighStart;
+};
+
+/**
+ * Constants for use with UCPTrieHeader.options.
+ * @internal
+ */
+enum {
+    UCPTRIE_OPTIONS_DATA_LENGTH_MASK = 0xf000,
+    UCPTRIE_OPTIONS_DATA_NULL_OFFSET_MASK = 0xf00,
+    UCPTRIE_OPTIONS_RESERVED_MASK = 0x38,
+    UCPTRIE_OPTIONS_VALUE_BITS_MASK = 7,
+    /**
+     * Value for index3NullOffset which indicates that there is no index-3 null block.
+     * Bit 15 is unused for this value because this bit is used if the index-3 contains
+     * 18-bit indexes.
+     */
+    UCPTRIE_NO_INDEX3_NULL_OFFSET = 0x7fff,
+    UCPTRIE_NO_DATA_NULL_OFFSET = 0xfffff
+};
+
+// Internal constants.
+enum {
+    /** The length of the BMP index table. 1024=0x400 */
+    UCPTRIE_BMP_INDEX_LENGTH = 0x10000 >> UCPTRIE_FAST_SHIFT,
+
+    UCPTRIE_SMALL_LIMIT = 0x1000,
+    UCPTRIE_SMALL_INDEX_LENGTH = UCPTRIE_SMALL_LIMIT >> UCPTRIE_FAST_SHIFT,
+
+    /** Shift size for getting the index-3 table offset. */
+    UCPTRIE_SHIFT_3 = 4,
+
+    /** Shift size for getting the index-2 table offset. */
+    UCPTRIE_SHIFT_2 = 5 + UCPTRIE_SHIFT_3,
+
+    /** Shift size for getting the index-1 table offset. */
+    UCPTRIE_SHIFT_1 = 5 + UCPTRIE_SHIFT_2,
+
+    /**
+     * Difference between two shift sizes,
+     * for getting an index-2 offset from an index-3 offset. 5=9-4
+     */
+    UCPTRIE_SHIFT_2_3 = UCPTRIE_SHIFT_2 - UCPTRIE_SHIFT_3,
+
+    /**
+     * Difference between two shift sizes,
+     * for getting an index-1 offset from an index-2 offset. 5=14-9
+     */
+    UCPTRIE_SHIFT_1_2 = UCPTRIE_SHIFT_1 - UCPTRIE_SHIFT_2,
+
+    /**
+     * Number of index-1 entries for the BMP. (4)
+     * This part of the index-1 table is omitted from the serialized form.
+     */
+    UCPTRIE_OMITTED_BMP_INDEX_1_LENGTH = 0x10000 >> UCPTRIE_SHIFT_1,
+
+    /** Number of entries in an index-2 block. 32=0x20 */
+    UCPTRIE_INDEX_2_BLOCK_LENGTH = 1 << UCPTRIE_SHIFT_1_2,
+
+    /** Mask for getting the lower bits for the in-index-2-block offset. */
+    UCPTRIE_INDEX_2_MASK = UCPTRIE_INDEX_2_BLOCK_LENGTH - 1,
+
+    /** Number of code points per index-2 table entry. 512=0x200 */
+    UCPTRIE_CP_PER_INDEX_2_ENTRY = 1 << UCPTRIE_SHIFT_2,
+
+    /** Number of entries in an index-3 block. 32=0x20 */
+    UCPTRIE_INDEX_3_BLOCK_LENGTH = 1 << UCPTRIE_SHIFT_2_3,
+
+    /** Mask for getting the lower bits for the in-index-3-block offset. */
+    UCPTRIE_INDEX_3_MASK = UCPTRIE_INDEX_3_BLOCK_LENGTH - 1,
+
+    /** Number of entries in a small data block. 16=0x10 */
+    UCPTRIE_SMALL_DATA_BLOCK_LENGTH = 1 << UCPTRIE_SHIFT_3,
+
+    /** Mask for getting the lower bits for the in-small-data-block offset. */
+    UCPTRIE_SMALL_DATA_MASK = UCPTRIE_SMALL_DATA_BLOCK_LENGTH - 1
+};
+
+typedef UChar32
+UCPTrieGetRange(const void *trie, UChar32 start,
+                UCPMapValueFilter *filter, const void *context, uint32_t *pValue);
+
+U_CFUNC UChar32
+ucptrie_internalGetRange(UCPTrieGetRange *getRange,
+                         const void *trie, UChar32 start,
+                         UCPMapRangeOption option, uint32_t surrogateValue,
+                         UCPMapValueFilter *filter, const void *context, uint32_t *pValue);
+
+#ifdef UCPTRIE_DEBUG
+U_CFUNC void
+ucptrie_printLengths(const UCPTrie *trie, const char *which);
+
+U_CFUNC void umutablecptrie_setName(UMutableCPTrie *builder, const char *name);
+#endif
+
+/*
+ * Format of the binary, memory-mappable representation of a UCPTrie/CodePointTrie.
+ * For overview information see http://site.icu-project.org/design/struct/utrie
+ *
+ * The binary trie data should be 32-bit-aligned.
+ * The overall layout is:
+ *
+ * UCPTrieHeader header; -- 16 bytes, see struct definition above
+ * uint16_t index[header.indexLength];
+ * uintXY_t data[header.dataLength];
+ *
+ * The trie data array is an array of uint16_t, uint32_t, or uint8_t,
+ * specified via the UCPTrieValueWidth when building the trie.
+ * The data array is 32-bit-aligned for uint32_t, otherwise 16-bit-aligned.
+ * The overall length of the trie data is a multiple of 4 bytes.
+ * (Padding is added at the end of the index array and/or near the end of the data array as needed.)
+ *
+ * The length of the data array (dataLength) is stored as an integer split across two fields
+ * of the header struct (high bits in header.options).
+ *
+ * The trie type can be "fast" or "small" which determines the index structure,
+ * specified via the UCPTrieType when building the trie.
+ *
+ * The type and valueWidth are stored in the header.options.
+ * There are reserved type and valueWidth values, and reserved header.options bits.
+ * They could be used in future format extensions.
+ * Code reading the trie structure must fail with an error when unknown values or options are set.
+ *
+ * Values for ASCII character (U+0000..U+007F) can always be found at the start of the data array.
+ *
+ * Values for code points below a type-specific fast-indexing limit are found via two-stage lookup.
+ * For a "fast" trie, the limit is the BMP/supplementary boundary at U+10000.
+ * For a "small" trie, the limit is UCPTRIE_SMALL_MAX+1=U+1000.
+ *
+ * All code points in the range highStart..U+10FFFF map to a single highValue
+ * which is stored at the second-to-last position of the data array.
+ * (See UCPTRIE_HIGH_VALUE_NEG_DATA_OFFSET.)
+ * The highStart value is header.shiftedHighStart<<UCPTRIE_SHIFT_2.
+ * (UCPTRIE_SHIFT_2=9)
+ *
+ * Values for code points fast_limit..highStart-1 are found via four-stage lookup.
+ * The data block size is smaller for this range than for the fast range.
+ * This together with more index stages with small blocks makes this range
+ * more easily compactable.
+ *
+ * There is also a trie error value stored at the last position of the data array.
+ * (See UCPTRIE_ERROR_VALUE_NEG_DATA_OFFSET.)
+ * It is intended to be returned for inputs that are not Unicode code points
+ * (outside U+0000..U+10FFFF), or in string processing for ill-formed input
+ * (unpaired surrogate in UTF-16, ill-formed UTF-8 subsequence).
+ *
+ * For a "fast" trie:
+ *
+ * The index array starts with the BMP index table for BMP code point lookup.
+ * Its length is 1024=0x400.
+ *
+ * The supplementary index-1 table follows the BMP index table.
+ * Variable length, for code points up to highStart-1.
+ * Maximum length 64=0x40=0x100000>>UCPTRIE_SHIFT_1.
+ * (For 0x100000 supplementary code points U+10000..U+10ffff.)
+ *
+ * After this index-1 table follow the variable-length index-3 and index-2 tables.
+ *
+ * The supplementary index tables are omitted completely
+ * if there is only BMP data (highStart<=U+10000).
+ *
+ * For a "small" trie:
+ *
+ * The index array starts with a fast-index table for lookup of code points U+0000..U+0FFF.
+ *
+ * The "supplementary" index tables are always stored.
+ * The index-1 table starts from U+0000, its maximum length is 68=0x44=0x110000>>UCPTRIE_SHIFT_1.
+ *
+ * For both trie types:
+ *
+ * The last index-2 block may be a partial block, storing indexes only for code points
+ * below highStart.
+ *
+ * Lookup for ASCII code point c:
+ *
+ * Linear access from the start of the data array.
+ *
+ * value = data[c];
+ *
+ * Lookup for fast-range code point c:
+ *
+ * Shift the code point right by UCPTRIE_FAST_SHIFT=6 bits,
+ * fetch the index array value at that offset,
+ * add the lower code point bits, index into the data array.
+ *
+ * value = data[index[c>>6] + (c&0x3f)];
+ *
+ * (This works for ASCII as well.)
+ *
+ * Lookup for small-range code point c below highStart:
+ *
+ * Split the code point into four bit fields using several sets of shifts & masks
+ * to read consecutive values from the index-1, index-2, index-3 and data tables.
+ *
+ * If all of the data block offsets in an index-3 block fit within 16 bits (up to 0xffff),
+ * then the data block offsets are stored directly as uint16_t.
+ *
+ * Otherwise (this is very unusual but possible), the index-2 entry for the index-3 block
+ * has bit 15 (0x8000) set, and each set of 8 index-3 entries is preceded by
+ * an additional uint16_t word. Data block offsets are 18 bits wide, with the top 2 bits stored
+ * in the additional word.
+ *
+ * See ucptrie_internalSmallIndex() for details.
+ *
+ * (In a "small" trie, this works for ASCII and below-fast_limit code points as well.)
+ *
+ * Compaction:
+ *
+ * Multiple code point ranges ("blocks") that are aligned on certain boundaries
+ * (determined by the shifting/bit fields of code points) and
+ * map to the same data values normally share a single subsequence of the data array.
+ * Data blocks can also overlap partially.
+ * (Depending on the builder code finding duplicate and overlapping blocks.)
+ *
+ * Iteration over same-value ranges:
+ *
+ * Range iteration (ucptrie_getRange()) walks the structure from a start code point
+ * until some code point is found that maps to a different value;
+ * the end of the returned range is just before that.
+ *
+ * The header.dataNullOffset (split across two header fields, high bits in header.options)
+ * is the offset of a widely shared data block filled with one single value.
+ * It helps quickly skip over large ranges of data with that value.
+ * The builder must ensure that if the start of any data block (fast or small)
+ * matches the dataNullOffset, then the whole block must be filled with the null value.
+ * Special care must be taken if there is no fast null data block
+ * but a small one, which is shorter, and it matches the *start* of some fast data block.
+ *
+ * Similarly, the header.index3NullOffset is the index-array offset of an index-3 block
+ * where all index entries point to the dataNullOffset.
+ * If there is no such data or index-3 block, then these offsets are set to
+ * values that cannot be reached (data offset out of range/reserved index offset),
+ * normally UCPTRIE_NO_DATA_NULL_OFFSET or UCPTRIE_NO_INDEX3_NULL_OFFSET respectively.
+ */
+
+#endif
index e9a09cc..1062a9f 100644 (file)
@@ -1077,11 +1077,11 @@ collectCurrencyNames(const char* locale,
         }
 
         // currency plurals
-        UErrorCode ec3 = U_ZERO_ERROR;
-        UResourceBundle* curr_p = ures_getByKey(rb, CURRENCYPLURALS, NULL, &ec3);
+        UErrorCode ec5 = U_ZERO_ERROR;
+        UResourceBundle* curr_p = ures_getByKey(rb, CURRENCYPLURALS, NULL, &ec5);
         n = ures_getSize(curr_p);
         for (int32_t i=0; i<n; ++i) {
-            UResourceBundle* names = ures_getByIndex(curr_p, i, NULL, &ec3);
+            UResourceBundle* names = ures_getByIndex(curr_p, i, NULL, &ec5);
             iso = (char*)ures_getKey(names);
             // Using hash to remove duplicated ISO codes in fallback chain.
             if (localeLevel == 0) {
@@ -1099,7 +1099,7 @@ collectCurrencyNames(const char* locale,
             for (int32_t j = 0; j < num; ++j) {
                 // TODO: remove duplicates between singular name and 
                 // currency long name?
-                s = ures_getStringByIndex(names, j, &len, &ec3);
+                s = ures_getStringByIndex(names, j, &len, &ec5);
                 (*currencyNames)[*total_currency_name_count].IsoCode = iso;
                 UChar* upperName = toUpperCase(s, len, locale);
                 (*currencyNames)[*total_currency_name_count].currencyName = upperName;
@@ -1449,7 +1449,7 @@ getCacheEntry(const char* locale, UErrorCode& ec) {
     umtx_lock(&gCurrencyCacheMutex);
     // in order to handle racing correctly,
     // not putting 'search' in a separate function.
-    int8_t  found = -1;
+    int8_t found = -1;
     for (int8_t i = 0; i < CURRENCY_NAME_CACHE_NUM; ++i) {
         if (currCache[i]!= NULL &&
             uprv_strcmp(locale, currCache[i]->locale) == 0) {
@@ -1469,7 +1469,6 @@ getCacheEntry(const char* locale, UErrorCode& ec) {
         }
         umtx_lock(&gCurrencyCacheMutex);
         // check again.
-        int8_t  found = -1;
         for (int8_t i = 0; i < CURRENCY_NAME_CACHE_NUM; ++i) {
             if (currCache[i]!= NULL &&
                 uprv_strcmp(locale, currCache[i]->locale) == 0) {
index 3cb8863..efcd2a2 100644 (file)
@@ -418,7 +418,8 @@ private:
     const char *path;                              /* working path (u_icudata_Dir) */
     const char *nextPath;                          /* path following this one */
     const char *basename;                          /* item's basename (icudt22e_mt.res)*/
-    const char *suffix;                            /* item suffix (can be null) */
+
+    StringPiece suffix;                            /* item suffix (can be null) */
 
     uint32_t    basenameLen;                       /* length of basename */
 
@@ -432,13 +433,15 @@ private:
 };
 
 /**
- * @param iter  The iterator to be initialized. Its current state does not matter. 
- * @param path  The full pathname to be iterated over.  If NULL, defaults to U_ICUDATA_NAME 
- * @param pkg   Package which is being searched for, ex "icudt28l".  Will ignore leave directories such as /icudt28l 
- * @param item  Item to be searched for.  Can include full path, such as /a/b/foo.dat 
- * @param suffix  Optional item suffix, if not-null (ex. ".dat") then 'path' can contain 'item' explicitly.
- *               Ex:   'stuff.dat' would be found in '/a/foo:/tmp/stuff.dat:/bar/baz' as item #2.   
- *                     '/blarg/stuff.dat' would also be found.
+ * @param iter    The iterator to be initialized. Its current state does not matter.
+ * @param inPath  The full pathname to be iterated over.  If NULL, defaults to U_ICUDATA_NAME 
+ * @param pkg     Package which is being searched for, ex "icudt28l".  Will ignore leaf directories such as /icudt28l 
+ * @param item    Item to be searched for.  Can include full path, such as /a/b/foo.dat 
+ * @param inSuffix  Optional item suffix, if not-null (ex. ".dat") then 'path' can contain 'item' explicitly.
+ *             Ex:   'stuff.dat' would be found in '/a/foo:/tmp/stuff.dat:/bar/baz' as item #2.   
+ *                   '/blarg/stuff.dat' would also be found.
+ *  Note: inSuffix may also be the 'item' being searched for as well, (ex: "ibm-5348_P100-1997.cnv"), in which case 
+ *        the 'item' parameter is often the same as pkg. (Though sometimes might have a tree part as well, ex: "icudt62l-curr").
  */
 UDataPathIterator::UDataPathIterator(const char *inPath, const char *pkg,
                                      const char *item, const char *inSuffix, UBool doCheckLastFour,
@@ -566,7 +569,7 @@ const char *UDataPathIterator::next(UErrorCode *pErrorCode)
 
         if(checkLastFour == TRUE && 
            (pathLen>=4) &&
-           uprv_strncmp(pathBuffer.data() +(pathLen-4), suffix, 4)==0 && /* suffix matches */
+           uprv_strncmp(pathBuffer.data() +(pathLen-4), suffix.data(), 4)==0 && /* suffix matches */
            uprv_strncmp(findBasename(pathBuffer.data()), basename, basenameLen)==0  && /* base matches */
            uprv_strlen(pathBasename)==(basenameLen+4)) { /* base+suffix = full len */
 
@@ -602,8 +605,13 @@ const char *UDataPathIterator::next(UErrorCode *pErrorCode)
             /* + basename */
             pathBuffer.append(packageStub.data()+1, packageStub.length()-1, *pErrorCode);
 
-            if(*suffix)  /* tack on suffix */
+            if (!suffix.empty())  /* tack on suffix */
             {
+                if (suffix.length() > 4) {
+                    // If the suffix is actually an item ("ibm-5348_P100-1997.cnv") and not an extension (".res")
+                    // then we need to ensure that the path ends with a separator.
+                    pathBuffer.ensureEndsWithFileSeparator(*pErrorCode);
+                }
                 pathBuffer.append(suffix, *pErrorCode);
             }
         }
@@ -751,16 +759,19 @@ openCommonData(const char *path,          /*  Path from OpenChoice?          */
 
     UDataPathIterator iter(u_getDataDirectory(), inBasename, path, ".dat", TRUE, pErrorCode);
 
-    while((UDataMemory_isLoaded(&tData)==FALSE) && (pathBuffer = iter.next(pErrorCode)) != NULL)
+    while ((UDataMemory_isLoaded(&tData)==FALSE) && (pathBuffer = iter.next(pErrorCode)) != NULL)
     {
 #ifdef UDATA_DEBUG
         fprintf(stderr, "ocd: trying path %s - ", pathBuffer);
 #endif
-        uprv_mapFile(&tData, pathBuffer);
+        uprv_mapFile(&tData, pathBuffer, pErrorCode);
 #ifdef UDATA_DEBUG
         fprintf(stderr, "%s\n", UDataMemory_isLoaded(&tData)?"LOADED":"not loaded");
 #endif
     }
+    if (U_FAILURE(*pErrorCode)) {
+        return NULL;
+    }
 
 #if defined(OS390_STUBDATA) && defined(OS390BATCH)
     if (!UDataMemory_isLoaded(&tData)) {
@@ -769,7 +780,7 @@ openCommonData(const char *path,          /*  Path from OpenChoice?          */
         uprv_strncpy(ourPathBuffer, path, 1019);
         ourPathBuffer[1019]=0;
         uprv_strcat(ourPathBuffer, ".dat");
-        uprv_mapFile(&tData, ourPathBuffer);
+        uprv_mapFile(&tData, ourPathBuffer, pErrorCode);
     }
 #endif
 
@@ -860,7 +871,7 @@ static UBool extendICUData(UErrorCode *pErr)
     umtx_unlock(&extendICUDataMutex);
 #endif
     return didUpdate;               /* Return true if ICUData pointer was updated.   */
-                                    /*   (Could potentialy have been done by another thread racing */
+                                    /*   (Could potentially have been done by another thread racing */
                                     /*   us through here, but that's fine, we still return true    */
                                     /*   so that current thread will also examine extended data.   */
 }
@@ -986,12 +997,12 @@ static UDataMemory *doLoadFromIndividualFiles(const char *pkgName,
     /* init path iterator for individual files */
     UDataPathIterator iter(dataPath, pkgName, path, tocEntryPathSuffix, FALSE, pErrorCode);
 
-    while((pathBuffer = iter.next(pErrorCode)) != NULL)
+    while ((pathBuffer = iter.next(pErrorCode)) != NULL)
     {
 #ifdef UDATA_DEBUG
         fprintf(stderr, "UDATA: trying individual file %s\n", pathBuffer);
 #endif
-        if(uprv_mapFile(&dataMemory, pathBuffer))
+        if (uprv_mapFile(&dataMemory, pathBuffer, pErrorCode))
         {
             pEntryData = checkDataItem(dataMemory.pHeader, isAcceptable, context, type, name, subErrorCode, pErrorCode);
             if (pEntryData != NULL) {
@@ -1007,7 +1018,7 @@ static UDataMemory *doLoadFromIndividualFiles(const char *pkgName,
                 return pEntryData;
             }
 
-            /* the data is not acceptable, or some error occured.  Either way, unmap the memory */
+            /* the data is not acceptable, or some error occurred.  Either way, unmap the memory */
             udata_close(&dataMemory);
 
             /* If we had a nasty error, bail out completely.  */
@@ -1076,6 +1087,11 @@ static UDataMemory *doLoadFromCommonData(UBool isICUData, const char * /*pkgName
                 }
             }
         }
+        // If we failed due to being out-of-memory, then stop early and report the error.
+        if (*subErrorCode == U_MEMORY_ALLOCATION_ERROR) {
+            *pErrorCode = *subErrorCode;
+            return NULL;
+        }
         /* Data wasn't found.  If we were looking for an ICUData item and there is
          * more data available, load it and try again,
          * otherwise break out of this loop. */
@@ -1252,7 +1268,8 @@ doOpenChoice(const char *path, const char *type, const char *name,
         tocEntryName.append(".", *pErrorCode).append(type, *pErrorCode);
         tocEntryPath.append(".", *pErrorCode).append(type, *pErrorCode);
     }
-    tocEntryPathSuffix = tocEntryPath.data()+tocEntrySuffixIndex; /* suffix starts here */
+    // The +1 is for the U_FILE_SEP_CHAR that is always appended above.
+    tocEntryPathSuffix = tocEntryPath.data() + tocEntrySuffixIndex + 1; /* suffix starts here */
 
 #ifdef UDATA_DEBUG
     fprintf(stderr, " tocEntryName = %s\n", tocEntryName.data());
index 5303870..5e7b043 100644 (file)
@@ -333,6 +333,43 @@ uprv_compareInvEbcdic(const UDataSwapper *ds,
 #   error Unknown charset family!
 #endif
 
+// utrie_swap.cpp -----------------------------------------------------------***
+
+/**
+ * Swaps a serialized UTrie.
+ * @internal
+ */
+U_CAPI int32_t U_EXPORT2
+utrie_swap(const UDataSwapper *ds,
+           const void *inData, int32_t length, void *outData,
+           UErrorCode *pErrorCode);
+
+/**
+ * Swaps a serialized UTrie2.
+ * @internal
+ */
+U_CAPI int32_t U_EXPORT2
+utrie2_swap(const UDataSwapper *ds,
+            const void *inData, int32_t length, void *outData,
+            UErrorCode *pErrorCode);
+
+/**
+ * Swaps a serialized UCPTrie.
+ * @internal
+ */
+U_CAPI int32_t U_EXPORT2
+ucptrie_swap(const UDataSwapper *ds,
+             const void *inData, int32_t length, void *outData,
+             UErrorCode *pErrorCode);
+
+/**
+ * Swaps a serialized UTrie, UTrie2, or UCPTrie.
+ * @internal
+ */
+U_CAPI int32_t U_EXPORT2
+utrie_swapAnyVersion(const UDataSwapper *ds,
+                     const void *inData, int32_t length, void *outData,
+                     UErrorCode *pErrorCode);
 
 /* material... -------------------------------------------------------------- */
 
index a80e7b8..239997d 100644 (file)
@@ -218,7 +218,7 @@ _uhash_allocate(UHashtable *hash,
 
     U_ASSERT(primeIndex >= 0 && primeIndex < PRIMES_LENGTH);
 
-    hash->primeIndex = primeIndex;
+    hash->primeIndex = static_cast<int8_t>(primeIndex);
     hash->length = PRIMES[primeIndex];
 
     p = hash->elements = (UHashElement*)
@@ -860,13 +860,13 @@ uhash_hashUChars(const UHashTok key) {
 U_CAPI int32_t U_EXPORT2
 uhash_hashChars(const UHashTok key) {
     const char *s = (const char *)key.pointer;
-    return s == NULL ? 0 : static_cast<int32_t>(ustr_hashCharsN(s, uprv_strlen(s)));
+    return s == NULL ? 0 : static_cast<int32_t>(ustr_hashCharsN(s, static_cast<int32_t>(uprv_strlen(s))));
 }
 
 U_CAPI int32_t U_EXPORT2
 uhash_hashIChars(const UHashTok key) {
     const char *s = (const char *)key.pointer;
-    return s == NULL ? 0 : ustr_hashICharsN(s, uprv_strlen(s));
+    return s == NULL ? 0 : ustr_hashICharsN(s, static_cast<int32_t>(uprv_strlen(s)));
 }
 
 U_CAPI UBool U_EXPORT2
index c4f9f88..56dddfa 100644 (file)
@@ -53,22 +53,6 @@ uprv_isInvariantString(const char *s, int32_t length);
 U_INTERNAL UBool U_EXPORT2
 uprv_isInvariantUString(const UChar *s, int32_t length);
 
-#ifdef __cplusplus
-
-/**
- * Check if a UnicodeString only contains invariant characters.
- * See utypes.h for details.
- *
- * @param s Input string.
- * @return TRUE if s contains only invariant characters.
- */
-U_INTERNAL inline UBool U_EXPORT2
-uprv_isInvariantUnicodeString(const icu::UnicodeString &s) {
-    return uprv_isInvariantUString(icu::toUCharPtr(s.getBuffer()), s.length());
-}
-
-#endif  /* __cplusplus */
-
 /**
  * \def U_UPPER_ORDINAL
  * Get the ordinal number of an uppercase invariant character
diff --git a/source/common/ulayout_props_data.h b/source/common/ulayout_props_data.h
new file mode 100644 (file)
index 0000000..f42d15f
--- /dev/null
@@ -0,0 +1,722 @@
+// © 2018 and later: Unicode, Inc. and others.
+// License & terms of use: http://www.unicode.org/copyright.html
+//
+// file name: ulayout_props_data.h
+//
+// machine-generated by: icu/tools/unicode/c/genprops/layoutpropsbuilder.cpp
+
+
+#ifdef INCLUDED_FROM_UPROPS_CPP
+
+static const int32_t maxInPCValue = 14;
+
+static const uint16_t inpc_trieIndex[765]={
+0,0x40,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0x80,0xc0,0xff,0x13f,0x17e,0x1be,0x17e,0x1fe,0x23e,0x27e,0x2bc,0x2fc,
+0x33c,0x37b,0x23e,0x3bb,0x3fb,0x439,0x477,0x4ad,0x4e1,0x521,0x531,0x571,0x599,0x5d9,0x619,0x656,
+0x2b7,0x2c6,0x2d2,0x2c6,0x2ed,0,0x10,0x20,0x30,0x40,0x50,0x60,0x70,0,0x10,0x20,
+0x30,0,0x10,0x20,0x30,0,0x10,0x20,0x30,0,0x10,0x20,0x30,0,0x10,0x20,
+0x30,0,0x10,0x20,0x30,0,0x10,0x20,0x30,0,0x10,0x20,0x30,0x80,0x90,0xa0,
+0xb0,0xc0,0xd0,0xe0,0xf0,0xff,0x10f,0x11f,0x12f,0x13f,0x14f,0x15f,0x16f,0x17e,0x18e,0x19e,
+0x1ae,0x1be,0x1ce,0x1de,0x1ee,0x17e,0x18e,0x19e,0x1ae,0x1fe,0x20e,0x21e,0x22e,0x23e,0x24e,0x25e,
+0x26e,0x27e,0x28e,0x29e,0x2ae,0x2bc,0x2cc,0x2dc,0x2ec,0x2fc,0x30c,0x31c,0x32c,0x33c,0x34c,0x35c,
+0x36c,0x37b,0x38b,0x39b,0x3ab,0x23e,0x24e,0x25e,0x26e,0x3bb,0x3cb,0x3db,0x3eb,0x3fb,0x40b,0x41b,
+0x42b,0x439,0x449,0x459,0x469,0x477,0x487,0x497,0x4a7,0x4ad,0x4bd,0x4cd,0x4dd,0x4e1,0x4f1,0x501,
+0x511,0x521,0x531,0x541,0x551,0x531,0x541,0x551,0x561,0x571,0x581,0x591,0x5a1,0x599,0x5a9,0x5b9,
+0x5c9,0x5d9,0x5e9,0x5f9,0x609,0x619,0x629,0x639,0x649,0x656,0x666,0x676,0x686,0,0,0x68b,
+0x69a,0,0x6a9,0x6b8,0x6c7,0x6d5,0x6e5,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0x6f3,0,0x6f3,
+0,0x701,0,0x701,0,0,0,0x70b,0x71b,0x729,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0x739,0x749,0,0,
+0,0,0,0,0,0x759,0x768,0,0,0,0x772,0,0,0,0x77e,0x78d,
+0x79b,0,0,0,0,0,0,0,0,0x7ab,0,0,0x7b7,0x7c7,0,0x7cc,
+0x52c,0x81,0,0x7dc,0,0,0,0x7ea,0x3fb,0,0,0x7fa,0x807,0,0,0,
+0,0,0,0,0,0,0x817,0x827,0x835,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0x2b3,0x83f,0,0x84c,0,0,0,0,
+0,0x101,0,0,0x858,0x864,0,0x874,0x882,0,0,0x892,0,0x8a0,0x3fb,0,
+0,0x80,0,0,0x8b0,0x8c0,0,0x2b9,0,0,0x8c7,0x8d6,0x8e3,0,0,0x8f1,
+0,0,0,0x901,0x2bd,0,0x911,0x151,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0x921,0,0x930,0,0,0x940,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0x950,0,0,0x958,0x966,0,0,0,
+0x81,0,0,0x976,0,0,0,0,0x52d,0,0x981,0x991,0x3cb,0,0,0x659,
+0x81,0,0,0x99e,0x9ae,0,0,0,0x9bb,0x9cb,0,0,0,0,0,0,
+0,0,0,0x71,0x9db,0,0xff,0,0,0x9e6,0x9f6,0x14f,0xa04,0x52b,0,0,
+0,0,0,0,0,0,0x99c,0xa14,0x16f,0,0,0,0,0,0xa24,0xa33,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0x2eb,0xa43,0xe3,
+0x214,0,0,0,0xa53,0x2be,0,0,0,0,0,0xa63,0xa73,0,0,0,
+0,0,0xa7b,0xa8b,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0xa97,0xaa6,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0xab5,
+0,0,0xac2,0,0xad1,0,0,0xadd,0xae7,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0x2eb,
+0xaf7,0,0,0,0,0,0xb07,0xb0f,0xb1e,0,0,0,0,0,0,0,
+0xb2d,0xb3c,0,0,0,0xb44,0xb54,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0xb61,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0x45,0x4d,0x4d,0x4d,0x5d,0x7d,0x9d,0xbd,0xdd,
+2,2,0xec,0x10a,0x129,0x149,2,2,2,2,2,2,2,2,2,2,
+2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,
+2,2,2,2,2,2,0x169,0x188,2,2,2,2,2,2,2,2,
+2,2,0x1a8,2,2,0x1c8,0x1e6,0x203,0x221,0x23f,0x25f,0x27d,0x297
+};
+
+static const uint8_t inpc_trieData[2930]={
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+8,8,8,7,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,8,7,1,0,7,4,
+7,1,1,1,1,8,8,8,8,7,7,7,7,1,4,7,
+0,8,1,8,8,8,1,1,0,0,0,0,0,0,0,0,
+0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+8,7,7,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,1,0,7,4,7,
+1,1,1,1,0,0,4,4,0,0,5,5,1,0,0,0,
+0,0,0,0,0,0,7,0,0,0,0,0,0,0,0,0,
+0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,8,0,8,
+8,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,1,0,7,4,7,1,
+1,0,0,0,0,8,8,0,0,8,8,1,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,8,8,
+0,0,0,1,0,0,0,0,0,0,0,0,0,0,7,1,
+1,1,1,8,0,8,8,0xd,0,7,7,1,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,8,8,8,8,8,8,0,8,
+7,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,1,0,7,8,7,1,
+1,1,1,0,0,4,0xb,0,0,5,0xc,1,0,0,0,0,
+0,0,0,0,8,0xd,0,0,0,0,0,0,0,0,0,0,
+1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,8,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,7,7,8,7,7,0,
+0,0,4,4,4,0,5,5,5,8,0,0,0,0,0,0,
+0,0,0,7,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,8,7,7,7,
+8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,8,8,7,7,7,7,
+0,8,8,9,0,8,8,8,8,0,0,0,0,0,0,0,
+8,1,0,0,0,0,0,0,0,0,0,0,0,1,1,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0xd,7,7,7,7,
+0,8,0xd,0xd,0,0xd,0xd,8,8,0,0,0,0,0,0,0,
+7,7,0,0,0,0,0,0,0,0,0,0,0,1,1,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,8,8,7,7,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,8,8,0,7,7,7,1,1,0,4,
+4,4,0,5,5,5,8,0,0,0,0,0,0,0,0,0,
+7,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,7,7,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,8,0,0,0,0,7,7,7,8,
+8,1,0,1,0,7,4,0xb,4,5,0xc,5,7,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,
+7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,7,8,7,7,8,8,8,8,1,1,1,0,0,0,0,
+0,0xe,0xe,0xe,0xe,0xe,7,0,8,8,8,8,8,8,8,8,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,7,8,7,7,8,8,8,8,1,1,0,8,1,0,0,
+0,0xe,0xe,0xe,0xe,0xe,0,0,0,8,8,8,8,8,8,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,
+1,0,8,0,0,0,0,7,4,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,1,8,9,1,1,9,
+9,9,9,8,8,8,8,8,7,8,9,8,8,1,0,8,
+8,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,
+1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,0,0,0,0,0,0,1,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,7,7,8,8,1,4,8,8,8,8,
+8,1,7,0,8,7,0,1,1,0,0,0,0,0,0,7,
+7,1,1,0,0,0,0,1,1,0,7,7,7,0,0,7,
+7,7,7,7,7,7,0,0,8,8,8,8,0,0,0,0,
+0,0,0,0,0,0,0,1,7,4,8,8,7,7,7,7,
+7,7,1,0,7,0,0,0,0,0,0,0,0,0,0,7,
+7,7,8,0,0,8,1,1,0,0,0,0,0,0,0,0,
+0,0,0,8,1,0,0,0,0,0,0,0,0,0,0,0,
+0,7,8,8,8,8,1,1,1,0xb,0xc,5,4,4,4,5,
+5,8,7,7,8,8,8,8,8,8,8,0,8,0,0,0,
+0,0,0,0,0,0,8,0,0,8,8,1,7,7,0xd,0xd,
+8,8,7,7,7,0,0,0,0,7,7,1,7,7,7,7,
+7,7,1,8,1,0,0,0,0,7,7,7,7,7,0xe,0xe,
+0xe,7,7,0xe,7,7,7,7,7,0,0,0,0,0,0,0,
+7,7,0,0,0,0,0,0,0,8,1,4,7,8,0,0,
+0,0,0,4,1,7,8,8,8,1,1,1,1,0,7,8,
+7,7,8,8,8,8,1,1,8,1,7,4,4,4,8,8,
+8,8,8,8,8,8,8,8,0,0,1,8,8,8,8,7,
+0,0,0,0,0,0,0,0,0,0,0,8,7,8,8,1,
+1,1,3,9,0xa,4,4,5,5,8,0xd,7,0,0,0,0,
+0,0,0,0,0,0,0,8,1,8,8,8,0,7,1,1,
+8,1,4,7,8,8,7,0,1,1,0,0,0,0,0,0,
+8,7,8,8,7,7,7,8,7,8,0,0,0,0,7,7,
+7,4,4,0xb,7,7,1,8,8,8,8,4,4,8,1,0,
+0,0,0,0,0,0,0,8,8,8,0,6,1,1,1,1,
+1,8,8,1,1,1,1,8,7,6,6,6,6,6,6,6,
+0,0,0,0,1,0,0,0,0,8,0,0,7,0,0,0,
+0,0,0,0,0,8,0,0,0,0,8,0,0,0,0,7,
+7,1,8,7,0,0,0,0,0,0,0,0,7,7,7,7,
+7,7,7,7,7,7,7,7,1,8,0,0,0,0,0,0,
+0,0,0,0,8,8,8,8,8,8,8,8,8,8,8,8,
+8,8,8,8,0,0,0,0,0,0,0,0,0,0,0,0,
+0,8,0,0,0,0,0,0,0,0,0,0,0,1,1,1,
+0,0,0,0,0,0,0,1,1,1,8,1,1,1,1,8,
+0,0,0,8,7,7,8,8,1,1,4,4,8,7,7,2,
+3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+8,8,8,8,1,8,4,8,1,7,4,1,1,0,0,0,
+0,0,0,0,0,0,8,0,0,0,0,0,0,0,0,8,
+7,0,0,0,0,0,0,0,0,0,0,0,7,8,7,0,
+0,8,7,8,8,1,0xe,0xe,8,8,0xe,7,0xe,0xe,7,8,
+8,0,0,0,0,0,0,0,0,0,0,0,4,1,8,4,
+7,0,0,0,7,7,8,7,7,1,7,7,0,7,1,0,
+0,6,1,1,0,8,6,0,0,0,0,0,1,1,1,8,
+0,0,0,0,0,0,0,0,8,1,1,0,0,0,0,0,
+7,8,7,0,0,0,0,0,0,0,0,0,0,0,0,0,
+8,8,8,8,1,1,1,1,8,8,8,8,8,0,0,0,
+0,0,0,0,0,0,7,4,7,1,1,8,8,7,7,1,
+1,0,0,0,0,0,0,0,8,8,8,1,1,4,8,9,
+9,8,1,1,0,8,0,0,0,0,0,0,0,0,0,0,
+0,7,4,7,1,1,1,1,1,1,8,8,8,0xd,7,0,
+0,0,0,0,0,0,0,1,0,8,1,0,0,0,0,0,
+0,0,0,0,0,0,0,7,7,7,1,8,8,0xd,0xd,8,
+7,8,8,0,0,0,0,0,0,8,0,7,4,7,1,1,
+8,8,8,8,1,1,0,0,0,0,0,0,0,0,0,0,
+0,1,1,0,7,7,8,7,7,7,7,0,0,4,4,0,
+0,5,5,7,0,0,7,7,0,0,8,8,8,8,8,8,
+8,0,0,0,7,7,1,8,8,7,1,0,0,0,0,0,
+0,0,0,0,7,4,7,1,1,1,1,1,1,4,8,0xb,
+5,7,5,8,7,1,1,0,0,0,0,0,0,0,0,0,
+0,0,0,4,7,1,1,1,1,0,0,4,0xb,5,0xc,8,
+8,7,1,7,7,7,1,1,1,1,1,1,8,8,7,7,
+8,7,1,0,0,0,0,0,0,0,0,0,0,0,8,7,
+8,4,7,1,1,8,8,8,8,7,1,0,0,0,0,0,
+0,0,0,0,0,0,0,0,1,0,8,7,7,8,8,1,
+1,4,8,1,8,8,8,0,0,0,0,0,0,0,0,0,
+0,0,0,7,4,7,1,1,1,8,8,8,8,8,7,1,
+1,0,0,0,0,0,8,1,1,8,8,8,8,8,8,1,
+0,0,0,0,0,1,1,8,8,8,8,7,0,1,1,1,
+1,0,8,1,1,8,8,8,7,7,1,1,1,0,0,0,
+0,0,0,0,0,0,0,1,1,1,1,1,1,8,7,8,
+0,0,0,0,0,0,0,8,8,1,1,1,1,1,0,8,
+8,8,8,8,8,7,1,0,0,1,1,1,1,1,1,1,
+1,1,1,1,1,1,1,0,7,1,1,1,1,1,1,4,
+1,8,7,8,8,0,0,0,0,0,0,0,0,0,8,8,
+8,8,8,1,0,0,0,8,0,8,8,0,8,8,1,8,
+1,0,0,1,0,0,0,0,0,0,0,0,0,0,7,7,
+7,7,7,0,8,8,0,7,7,8,7,0,0,0,0,0,
+0,0,0,0,8,1,4,7,0,0,0,0,0,0,0,0,
+0,0
+};
+
+static const UCPTrie inpc_trie={
+    inpc_trieIndex,
+    { inpc_trieData },
+    765, 2930,
+    0x12000, 0x12,
+    1, 2,
+    0, 0,
+    0x2, 0x0,
+    0x0,
+};
+
+static const int32_t maxInSCValue = 35;
+
+static const uint16_t insc_trieIndex[834]={
+0,0x40,0x60,0x94,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,
+0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,
+0x40,0x40,0x40,0x40,0xd4,0x112,0x152,0x190,0x1cf,0x20d,0x24c,0x28a,0x2ca,0x308,0x346,0x384,
+0x3c4,0x402,0x441,0x47f,0x4bf,0x4fd,0x53d,0x57d,0x5bc,0x5fc,0x63b,0x67b,0x69b,0x6db,0x71b,0x758,
+0x2f8,0x30b,0x317,0x30b,0x332,0,0x10,0x20,0x30,0x40,0x50,0x60,0x70,0x60,0x70,0x80,
+0x90,0x94,0xa4,0xb4,0xc4,0x40,0x50,0x60,0x70,0x40,0x50,0x60,0x70,0x40,0x50,0x60,
+0x70,0x40,0x50,0x60,0x70,0x40,0x50,0x60,0x70,0x40,0x50,0x60,0x70,0x40,0x50,0x60,
+0x70,0x40,0x50,0x60,0x70,0xd4,0xe4,0xf4,0x104,0x112,0x122,0x132,0x142,0x152,0x162,0x172,
+0x182,0x190,0x1a0,0x1b0,0x1c0,0x1cf,0x1df,0x1ef,0x1ff,0x20d,0x21d,0x22d,0x23d,0x24c,0x25c,0x26c,
+0x27c,0x28a,0x29a,0x2aa,0x2ba,0x2ca,0x2da,0x2ea,0x2fa,0x308,0x318,0x328,0x338,0x346,0x356,0x366,
+0x376,0x384,0x394,0x3a4,0x3b4,0x3c4,0x3d4,0x3e4,0x3f4,0x402,0x412,0x422,0x432,0x441,0x451,0x461,
+0x471,0x47f,0x48f,0x49f,0x4af,0x4bf,0x4cf,0x4df,0x4ef,0x4fd,0x50d,0x51d,0x52d,0x53d,0x54d,0x55d,
+0x56d,0x57d,0x58d,0x59d,0x5ad,0x5bc,0x5cc,0x5dc,0x5ec,0x5fc,0x60c,0x61c,0x62c,0x63b,0x64b,0x65b,
+0x66b,0x67b,0x68b,0x69b,0x6ab,0x69b,0x6ab,0x6bb,0x6cb,0x6db,0x6eb,0x6fb,0x70b,0x71b,0x72b,0x73b,
+0x74b,0x758,0x768,0x778,0x788,0xe9,0xe9,0x798,0x7a3,0x7b3,0x7c3,0x7d2,0x7e1,0x7ef,0x7ff,0x40,
+0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,
+0x40,0x40,0x40,0x40,0x40,0x80f,0x81d,0xe6,0x81d,0xe6,0x82d,0x80f,0x83d,0xe9,0xe9,0x84d,
+0x859,0x863,0x872,0x30,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,
+0x40,0x40,0x40,0x40,0x882,0x16c,0x892,0x8a2,0x22d,0xe9,0x8b2,0x8c2,0xe9,0xe9,0x374,0x8d2,
+0x8e1,0x30,0x40,0x40,0xe9,0x8f1,0xe9,0xe9,0x901,0x90e,0x91e,0x92a,0x30,0x30,0x40,0x40,
+0x40,0x40,0x40,0x40,0x93a,0xe6,0xe9,0x94a,0x956,0x30,0x40,0x40,0x966,0xe9,0x975,0x985,
+0xe9,0xe9,0x995,0x9a5,0xe9,0xe9,0x9b5,0x9c2,0x9d2,0x40,0x40,0x40,0x40,0x40,0x40,0x40,
+0x40,0x9e2,0x9f0,0x9fe,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,
+0x40,0x40,0x40,0xa08,0xa14,0xa24,0x40,0x40,0x40,0x40,0x40,0x75a,0xa32,0x40,0x40,0x40,
+0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,
+0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x74,0x40,0x40,0x40,0xa42,0xe9,0xa4f,
+0x40,0xe9,0xa5f,0xa6d,0xa7c,0xd6,0xe7,0xe9,0xa8c,0xa98,0x30,0xaa8,0xab6,0xac6,0xe9,0xad4,
+0xe9,0xae4,0xaf3,0x40,0x40,0xb03,0xe9,0xe9,0xb12,0x297,0x30,0xb22,0xb32,0xe3,0xe9,0x889,
+0xb42,0xb52,0x30,0xe9,0xb61,0xe9,0xe9,0xe9,0xb71,0xb81,0x40,0xb91,0xba1,0x40,0x40,0x40,
+0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0xbb1,0xbc1,0xbce,0x30,0xbde,0xbee,0xe9,
+0xbf8,0x31,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,
+0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0xc08,0xe6,0xe9,
+0x88a,0xc18,0xc26,0xc30,0xc40,0xc50,0xe9,0xe9,0xc60,0x40,0x40,0x40,0x40,0xc70,0xe9,0x88b,
+0xc80,0xc90,0xca0,0xe9,0xcad,0xd5,0xe8,0xe9,0xcbd,0xccd,0x30,0x6ba,0x35,0xe1,0x3eb,0x886,
+0xcdd,0x40,0x40,0x40,0x40,0xced,0x16d,0xcfc,0xdf,0xe9,0xd0c,0xd1c,0x30,0xd2c,0x162,0x172,
+0xd3c,0x308,0xd4c,0xd5c,0x9ed,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0xdb,0xe9,0xe9,
+0xd6c,0xd7a,0xd8a,0x40,0x40,0xd99,0xe9,0xe9,0x91f,0xda9,0x30,0x40,0x40,0x40,0x40,0x40,
+0x40,0x40,0x40,0x40,0x40,0xdb,0xe9,0xff,0xdb9,0xdc9,0xdd1,0x40,0x40,0xdb,0xe9,0xe9,
+0xde1,0xdf1,0x30,0x40,0x40,0xdf,0xe9,0xe01,0xe0e,0x30,0x40,0x40,0x40,0xe9,0xe1e,0xe2e,
+0xe3e,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0xdf,0xe9,0x886,
+0xe4e,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,
+0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0xe5e,0xe9,0xe9,
+0xe6b,0xe7b,0xe8b,0xe9,0xe9,0xe97,0xea1,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,
+0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0xeb1,0xe9,0xff,
+0xec1,0xed1,0x6bb,0xee1,0x555,0xe9,0xeef,0x72b,0xeff,0x40,0x40,0x40,0x40,0xf0f,0xe9,0xe9,
+0xf1e,0xf2e,0x30,0xf3e,0xe9,0xf4a,0xf57,0x30,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,
+0x40,0x40,0x40,0x40,0x40,0x40,0xe9,0xf67,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,
+0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x45,0x55,0x55,0x55,0x65,0x85,0xa5,0xc5,
+0xe5,4,4,0xf5,0x114,0x134,0x154,4,0x174,4,0x17d,4,4,4,4,4,
+4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,
+4,4,4,4,4,4,4,4,4,4,4,0x19d,0x1bd,4,4,4,
+4,4,4,4,4,4,4,0x1dd,4,4,0x1fd,0x21d,0x23d,0x25d,0x27d,0x29d,
+0x2bd,0x2d8
+};
+
+static const uint8_t insc_trieData[3960]={
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0xc,0,0,
+0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0xc,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0x1c,0x1c,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0xc,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,2,2,2,0x20,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,
+0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,5,5,5,5,5,5,5,
+5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,
+5,5,5,5,5,5,5,5,5,5,5,5,5,5,0x22,0x22,
+0x17,1,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x1f,
+0x22,0x22,0,4,4,0,0,0x22,0x22,0x22,5,5,5,5,5,5,
+5,5,0x23,0x23,0x22,0x22,0,0,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,
+0x18,0x18,0,0,0x23,0x23,0x23,0x23,0x23,0x23,5,5,5,5,5,5,
+5,5,0xc,2,2,0x20,0,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0,
+0,0x23,0x23,0,0,0x23,0x23,5,5,5,5,5,5,5,5,5,
+5,5,5,5,5,5,5,5,5,5,5,0,5,5,5,5,
+5,5,5,0,5,0,0,0,5,5,5,5,0,0,0x17,1,
+0x22,0x22,0x22,0x22,0x22,0,0,0x22,0x22,0,0,0x22,0x22,0x1f,6,0,
+0,0,0,0,0,0,0,0x22,0,0,0,0,5,5,0,5,
+0x23,0x23,0x22,0x22,0,0,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,
+5,5,0,0,0,0,0,0,0,0,0,0,2,0,0x1c,0,
+2,2,0x20,0,0x23,0x23,0x23,0x23,0x23,0x23,0,0,0,0,0x23,0x23,
+0,0,0x23,0x23,5,5,5,5,5,5,5,5,5,5,5,5,
+5,5,5,5,5,5,5,5,0,5,5,5,5,5,5,5,
+0,5,5,0,5,5,0,5,5,0,0,0x17,0,0x22,0x22,0x22,
+0,0,0,0,0x22,0x22,0,0,0x22,0x22,0x1f,0,0,0,4,0,
+0,0,0,0,0,0,5,5,5,5,0,5,0,0,0,0,
+0,0,0,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,2,0x12,0xc,
+0xc,0,0xb,0,0,0,0,0,0,0,0,0,0,2,2,0x20,
+0,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0,0x23,0x23,0x23,0,0x23,
+0x23,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,
+5,5,5,5,5,0,5,5,5,5,5,5,5,0,5,5,
+0,5,5,5,5,5,0,0,0x17,1,0x22,0x22,0x22,0x22,0x22,0x22,
+0,0x22,0x22,0x22,0,0x22,0x22,0x1f,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0x23,0x23,0x22,0x22,0,0,
+0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0,0,0,0,0,0,
+0,0,0,5,4,4,4,0x17,0x17,0x17,0,2,2,0x20,0,0x23,
+0x23,0x23,0x23,0x23,0x23,0x23,0x23,0,0,0x23,0x23,0,0,0x23,0x23,5,
+5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,
+5,5,5,0,5,5,5,5,5,5,5,0,5,5,0,5,
+5,5,5,5,0,0,0x17,1,0x22,0x22,0x22,0x22,0x22,0,0,0x22,
+0x22,0,0,0x22,0x22,0x1f,0,0,0,0,0,0,0,0,0x22,0x22,
+0,0,0,0,5,5,0,5,0x23,0x23,0x22,0x22,0,0,0x18,0x18,
+0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0,5,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,2,0x15,0,0x23,0x23,0x23,0x23,0x23,
+0x23,0,0,0,0x23,0x23,0x23,0,0x23,0x23,0x23,5,0,0,0,5,
+5,0,5,0,5,5,0,0,0,5,5,0,0,0,5,5,
+5,0,0,0,5,5,5,5,5,5,5,5,5,5,5,5,
+0,0,0,0,0x22,0x22,0x22,0,0,0,0x22,0x22,0x22,0,0x22,0x22,
+0x22,0x1f,0,0,0,0,0,0,0,0,0,0x22,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0x18,0x18,0x18,0x18,0x18,0x18,
+0x18,0x18,0x18,0x18,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,2,2,2,0x20,2,0x23,0x23,0x23,0x23,0x23,0x23,0x23,
+0x23,0,0x23,0x23,0x23,0,0x23,0x23,0x23,5,5,5,5,5,5,5,
+5,5,5,5,5,5,5,5,5,5,5,5,5,0,5,5,
+5,5,5,5,5,5,5,5,5,5,5,5,5,5,0,0,
+0,1,0x22,0x22,0x22,0x22,0x22,0,0x22,0x22,0x22,0,0x22,0x22,0x22,0x1f,
+0,0,0,0,0,0,0,0x22,0x22,0,5,5,5,0,0,0,
+0,0,0x23,0x23,0x22,0x22,0,0,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,
+0x18,0x18,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,2,2,0x20,0,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0,0x23,
+0x23,0x23,0,0x23,0x23,0x23,5,5,5,5,5,5,5,5,5,5,
+5,5,5,5,5,5,5,5,5,5,0,5,5,5,5,5,
+5,5,5,5,5,0,5,5,5,5,5,0,0,0x17,1,0x22,
+0x22,0x22,0x22,0x22,0,0x22,0x22,0x22,0,0x22,0x22,0x22,0x1f,0,0,0,
+0,0,0,0,0x22,0x22,0,0,0,0,0,0,0,5,0,0x23,
+0x23,0x22,0x22,0,0,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0,
+0x11,0x11,0,0,0,0,0,0,0,0,0,0,0,0,0,2,
+2,2,0x20,0,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0,0x23,0x23,0x23,
+0,0x23,0x23,0x23,5,5,5,5,5,5,5,5,5,5,5,5,
+5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,
+5,5,5,5,5,5,5,5,5,5,0x1a,0x1a,1,0x22,0x22,0x22,
+0x22,0x22,0,0x22,0x22,0x22,0,0x22,0x22,0x22,0x1f,0xd,0,0,0,0,
+0,6,6,6,0x22,0,0,0,0,0,0,0,0x23,0x23,0x23,0x22,
+0x22,0,0,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0,0,0,
+0,0,0,0,0,0,0,6,6,6,6,6,6,0,0,2,
+0x20,0,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,
+0x23,0x23,0x23,0x23,0,0,0,5,5,5,5,5,5,5,5,5,
+5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,0,
+5,5,5,5,5,5,5,5,5,0,5,0,0,5,5,5,
+5,5,5,5,0,0,0,0x1f,0,0,0,0,0x22,0x22,0x22,0x22,
+0x22,0x22,0,0x22,0,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0,0,0,
+0,0,0,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0,0,0x22,
+0x22,0,0,0,0,0,0,0,0,0,0,0,0,5,5,5,
+5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,
+5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,
+5,5,5,5,5,5,5,5,5,5,5,0,0x22,0x22,0x22,0x22,
+0x22,0x22,0x22,0x22,0x22,0x22,0x1a,0,0,0,0,0,0x22,0x22,0x22,0x22,
+0x22,0x22,0,0x22,0x1e,0x1e,0x1e,0x1e,0xa,2,0x1a,0,0x18,0x18,0x18,0x18,
+0x18,0x18,0x18,0x18,0x18,0x18,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,5,5,0,5,
+0,0,5,5,0,5,0,0,5,0,0,0,0,0,0,5,
+5,5,5,0,5,5,5,5,5,5,5,0,5,5,5,0,
+5,0,5,0,0,5,5,0,5,5,0,0x22,0x22,0x22,0x22,0x22,
+0x22,0x22,0x22,0x22,0x22,0,0x22,0xb,0xb,0,0,0x22,0x22,0x22,0x22,0x22,
+0,0,0,0x1e,0x1e,0x1e,0x1e,0,2,0,0,0x18,0x18,0x18,0x18,0x18,
+0x18,0x18,0x18,0x18,0x18,0,0,5,5,5,5,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0x18,0x18,0x18,0x18,0x18,
+0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0,
+0x1c,0,0x1c,0,0x17,0,0,0,0,0,0,5,5,5,5,5,
+5,5,5,0,5,5,5,5,5,5,5,5,5,5,5,5,
+5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,
+5,5,5,5,5,5,5,5,0,0,0,0,0x22,0x22,0x22,0x22,
+0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,2,0x20,0x22,0x22,2,2,0x1a,
+1,0,0,8,8,8,8,8,0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf,
+0xf,0xf,0xf,0,0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf,
+0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf,
+0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf,0,0,0,0,0,0,0x1c,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,5,0x23,0x23,0x23,0x23,0x23,0x23,0x23,
+0x23,0x23,0x23,0x22,0x22,0x22,0x22,0x22,0x22,2,0x1e,0x20,0x13,0x1a,0xb,0xb,
+0xb,0xb,5,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0,0xc,0,
+0,0xc,0,5,5,0x23,0x23,0x23,0x23,0x22,0x22,0x22,0x22,5,5,5,
+5,0xb,0xb,5,0x22,0x1e,0x1e,5,5,0x22,0x22,0x1e,0x1e,0x1e,0x1e,0x1e,
+5,5,0x22,0x22,0x22,0x22,5,5,5,5,5,5,5,5,5,5,
+5,0xb,0x22,0x22,0x22,0x22,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,5,0x1e,0x18,
+0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x1e,0x1e,0x22,0x22,0,0,0x23,
+0x23,0x23,5,5,5,5,5,5,5,5,5,5,0,5,5,0x22,
+0x22,0x1a,0,0,0,0,0,0,0,0,0,0,0,5,5,0x22,
+0x22,0,0,0,0,0,0,0,0,0,0,0,0,5,0,0x22,
+0x22,0,0,0,0,0,0,0,0,0,0,0,0,5,5,5,
+0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0,0,0x22,
+0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,2,0x20,0x22,0x1b,0x1b,0x1c,0x10,
+0xa,0x1c,0x1c,0x1a,0x13,0x1c,0,0,0,0,0,0,0,0,1,0x1c,
+0,0,0xc,5,5,5,5,5,5,5,5,5,5,5,5,5,
+5,5,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0xf,0xf,0xf,0,0,
+0,0,7,7,2,7,7,7,7,7,7,7,0x22,0x1c,0,0,
+0,0,5,5,5,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,
+0,0,0x1d,0x1d,0x1d,0x1d,0x1d,0,0,0,0,0,0,0,0,0,
+0,0,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,
+0x22,0x22,7,7,7,7,7,7,7,0x1e,0x1e,0,0,0,0,0,
+0,5,5,5,5,5,5,5,0x22,0x22,0x22,0x22,0x22,0,0,0,
+0,5,5,5,5,5,5,5,5,5,5,5,5,5,0x23,0x23,
+0x23,5,5,0xb,0xb,0xf,7,7,9,0xf,0xf,0xf,0xf,0,0x13,0x22,
+0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,2,0x1e,
+0x1e,0x1e,0x1e,0x1e,0x1a,0x1c,0x1c,0,0,0x1c,2,2,2,0x10,0x20,0x23,
+0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,5,5,5,5,0x17,0x22,
+0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x1f,5,5,5,5,5,
+5,5,0,0,0,0,2,0x10,0x20,0x23,0x23,0x23,0x23,0x23,0x23,0x23,
+5,5,5,5,5,5,0xf,0xf,0xf,0x22,0x22,0x22,0x22,0x22,0x22,0x1a,
+0x13,0xf,0xf,5,5,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,1,
+5,5,5,7,7,5,5,5,5,0x23,0x23,0x17,0x22,0x22,0x22,0x22,
+0x22,0x22,0x22,0x22,0x22,7,7,0x1a,0x1a,0,0,0,0,0,0,0,
+0,0,0,0,0,5,5,5,5,0xf,0xf,0x22,0x22,0x22,0x22,0x22,
+0x22,0x22,7,7,7,7,2,2,0x1c,0x17,0,0,0,0,0,0,
+0,0,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0,0,0,5,
+5,5,4,4,4,0,4,4,4,4,4,4,4,4,4,4,
+4,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0x20,0x20,4,0x11,0x11,4,4,4,0,0,0,0,0,0,0,0,
+0,0,0,0x1c,0,0,0,0,0,0,0,0,0,0,0,0,
+0x16,0x14,0,0,0xc,0xc,0xc,0xc,0xc,0,0,0,0,0,0,0,
+0,0,0,0,0x1c,0x1c,0x1c,0,0,0,0,0,0,0,0,0,
+0,0,0x23,0x23,0,0x23,0x23,0x23,0x1a,5,5,5,5,2,5,5,
+5,5,0x22,0x22,0x22,0x22,0x22,0,0,0,0,0,0,0,0,5,
+5,5,5,5,5,5,5,5,5,5,5,5,5,0x21,0x21,5,
+5,5,5,0x21,0xf,0xf,5,5,5,5,5,5,5,0xf,5,2,
+0,0,0,0,0,0,0,0,0,0,0,0,5,5,5,5,
+0xb,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x1f,2,0,0,
+0,0,0,0,0,0,0,0,4,4,4,4,4,4,4,4,
+4,4,4,4,4,4,4,4,2,2,0,0,0,0,0,0,
+0,0,0,0,0x23,0x22,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,
+5,5,5,5,5,5,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x1e,
+0x1e,0x1e,0,0,5,5,5,5,5,5,5,0x22,0x22,0x22,0x22,0x22,
+0x22,0x22,0x22,7,7,7,0x1a,0,0,0,0,0,0,0,0,0,
+0,0,0,2,2,0x10,0x20,0x23,0x23,0x23,0x23,0x23,5,5,5,0x23,
+0x23,0x23,5,5,5,0x17,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0xf,
+0xb,0xb,5,5,5,5,5,0x22,0,5,5,5,5,5,5,5,
+5,5,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,5,5,5,5,
+5,0,0x22,0x22,0x22,0xb,0xb,0xb,0xb,0,0,0,0,0,0,0,
+0,0,7,7,7,7,7,7,7,7,7,7,7,7,7,7,
+0,0,5,5,5,0xc,0xc,0xc,0,0,0,5,0x1e,0x1e,0x1e,5,
+5,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,
+0x1e,0x1d,0x1e,0x1d,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0x23,0x23,5,5,5,5,5,5,5,5,5,0x22,0x22,0x22,0x22,
+0x22,0,0,0,0,0,0x20,0x13,0,0,0,0,0,0,0,0,
+0,5,5,5,5,5,5,5,5,5,5,5,5,5,5,0x23,
+0x23,5,0x23,5,5,5,5,5,5,5,5,5,7,7,7,7,
+7,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0,0x1e,0x1a,0,0,5,0x22,
+0x22,0x22,0,0x22,0x22,0,0,0,0,0,0x22,0x22,2,0x20,5,5,
+5,5,0,5,5,5,0,5,5,5,5,5,5,5,0,0,
+0x17,0x17,0x17,0,0,0,0,0x13,2,2,0x20,0x11,0x11,0x23,0x23,0x23,
+0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x22,0x22,0x22,0x22,0x22,0x22,0x1f,0,
+0,0,0,0,0,0,0,0,3,3,3,3,3,3,3,3,
+3,3,3,3,3,3,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0x19,
+2,2,0x20,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,5,5,5,
+0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x1f,0x17,0,0,0,0,0,
+2,2,0x20,0x23,0x23,0x23,0x23,5,5,5,5,5,5,5,5,5,
+0x22,0x22,0x22,0x13,0x1a,0,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,
+0,0,0,0,5,0x22,0x22,0,0,0,0,0,0,0,0,0,
+0x21,0x21,0x21,0x21,0x21,5,5,5,5,5,5,5,5,5,5,5,
+0x17,0,0,0,0,0,0,0,0,0,0,0,0,5,5,5,
+0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x1f,1,0xe,
+0xe,0,0,0,0,0,0x1c,0x17,0x22,0x22,0,0,0,0x22,0x22,0x22,
+0x22,2,0x1f,0x17,0x12,0,0,0,0,0,0,4,0,0x23,0x23,0x23,
+0x23,5,5,5,0,5,0,5,5,5,5,0,5,5,5,5,
+5,5,5,5,5,0,0,0,0,0,0,0,5,5,5,5,
+5,5,5,5,5,5,5,5,5,5,5,2,0x22,0x22,0x22,0x22,
+0x22,0x22,0x22,0x22,0x22,0x17,0x1a,0,0,0,0,0,2,2,2,0x20,
+0,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0,0,0x23,5,0,5,5,
+0,5,5,5,5,5,0,0x17,0x17,1,0x22,0x22,0,0,0,0,
+0,0,0,0x22,0,0,0,0,0,0,2,2,0x23,0x23,0x22,0x22,
+0,0,4,4,4,4,4,4,4,0,0,0,5,5,5,5,
+5,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x1f,2,2,0x20,
+0x17,1,0,0,0,0,0,0,0,0,0x18,0x18,0x18,0x18,0x18,0x18,
+0x18,0x18,0x18,0x18,0,0,0,0,0x1c,0,0x23,0x23,0x23,0x23,0x23,0x23,
+0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,5,2,0x20,0x1f,0x17,1,0,0,
+0,0,0,0,0,0,0,0,0,0x22,0x22,0x22,0x22,0x22,0x22,0,
+0,0x22,0x22,0x22,0x22,2,2,0x20,0x1f,0x17,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0x23,0x23,0x23,0x23,0x22,0x22,0,
+0,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,2,0x20,
+0x1f,0x22,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,5,5,5,5,5,5,5,5,5,5,5,2,0x20,0x22,0x22,
+0x22,0x22,0x22,0x22,0x1f,0x17,0,0,0,0,0,0,0,0,5,5,
+5,5,5,5,5,5,5,5,5,0,0,0xb,0xb,0xb,0x22,0x22,
+0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x1a,0,0,0,0,0x18,0x18,
+0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0,0,0,0,0x22,0x22,
+0x22,0x22,0x22,0x22,0x22,2,0x20,0x1f,0x17,0,0,0,0,0,0x23,0x22,
+0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,5,5,5,5,5,0x1c,0x1a,
+2,2,2,2,0x20,0xe,0xb,0xb,0xb,0xb,0xc,0,0,0,0,0,
+0xc,0,0x13,0,0,0,0,0,0,0,0,0x23,0x22,0x22,0x22,0x22,
+0x22,0x22,0x22,0x22,0x22,0x22,0x22,5,5,5,5,0,0,0xe,0xe,0xe,
+0xe,7,7,7,7,7,7,2,0x20,0x12,0x13,0,0,0,1,0,
+0,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0,0x23,0x23,0x23,0x23,5,
+5,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0,0x22,0x22,0x22,0x22,2,2,0x20,
+0x1f,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0,0,
+0,0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf,0x22,
+0x22,0x22,0x22,0x22,2,2,0,0,0,0,0,0,0,0,0,0x23,
+0x23,0x23,0x23,0x23,0x23,0x23,0,0x23,0x23,0,0x23,5,5,5,5,0x22,
+0x22,0x22,0x22,0x22,0x22,0,0,0,0x22,0,0x22,0x22,0,0x22,2,0x20,
+0x17,0x22,0x1a,0x13,0xd,0xb,0,0,0,0,0,0,0,0,0x23,0x23,
+0x23,0x23,0x23,0x23,0,0x23,0x23,0,0x23,0x23,5,5,5,5,5,5,
+5,5,5,5,0x22,0x22,0x22,0x22,0x22,0,0x22,0x22,2,0x20,0x13,0,
+0,0,0,0,0,0,0,5,5,0xc,0x22,0x22,0x22,0x22,0,0,
+0,0,0,0,0,0,0,0
+};
+
+static const UCPTrie insc_trie={
+    insc_trieIndex,
+    { insc_trieData },
+    834, 3960,
+    0x12000, 0x12,
+    1, 2,
+    0, 0,
+    0x4, 0x40,
+    0x0,
+};
+
+static const int32_t maxVoValue = 3;
+
+static const uint16_t vo_trieIndex[1100]={
+0,0x40,0x59,0x98,0,0,0,0,0,0,0,0xd0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0x33b,0x355,0x363,0x379,0x399,0x3b7,0x3d2,0x3ec,0x355,0x355,0x355,0x40c,0x355,0x355,0x355,0x40c,
+0x42c,0x42c,0x42c,0x42c,0x42c,0x42c,0x42c,0x42c,0x42c,0x42c,0x42c,0x42c,0x42c,0x42c,0x42c,0x42c,
+0x42c,0x42c,0x42c,0x42c,0x42c,0x42c,0x42c,0x42c,0x42c,0x42c,0x42c,0x42c,0x42c,0x42c,0x42c,0x42c,
+0x42c,0x42c,0x42c,0x42c,0x42c,0x42c,0x42c,0x42c,0x42c,0x42c,0x42c,0x42c,0x355,0x355,0x355,0x40c,
+0x355,0x355,0x355,0x40c,0,0x10,0x20,0x30,0x40,0x50,0x60,0x70,0x59,0x69,0x79,0x89,
+0x98,0xa8,0xb8,0xc8,0,0x10,0x20,0x30,0,0x10,0x20,0x30,0,0x10,0x20,0x30,
+0,0x10,0x20,0x30,0xd0,0xe0,0xf0,0x100,0,0x10,0x20,0x30,0,0x10,0x20,0x30,
+0,0x10,0x20,0x30,0,0x10,0x20,0x30,0,0x10,0x20,0x30,0,0x10,0x20,0x30,
+0,0x10,0x20,0x30,0,0x10,0x20,0x30,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0x110,0x110,0x110,0x110,0x110,0x110,0x110,0x110,
+0x110,0x110,0x110,0x110,0x110,0x110,0x110,0x110,0x10f,0x110,0x110,0x110,0x110,0x110,0x110,0x110,
+0x110,0x110,0x110,0x110,0x110,0x110,0x110,0x110,0x110,0x110,0x110,0x110,0x110,0x110,0x110,0x110,
+0x110,0x110,0x110,0x110,0x110,0x110,0x110,0x110,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0x110,0x110,0x110,0x110,0x110,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0xa9,0x96,0x11e,0x12c,0xae,0xaa,0,0,0,0,0,
+0,0x103,0x13c,0,0x14c,0x158,0x166,0x10b,0x175,0x110,0x110,0x110,0x184,0,0,0,
+0,0,0,0,0x72,0,0xf6,0,0,0,0,0,0,0,0,0,
+0,0,0,0x190,0x110,0x198,0,0,0,0,0x103,0x110,0x115,0,0xec,0x1a8,
+0x1b6,0x10e,0x110,0x110,0x1c6,0x110,0x110,0x110,0x110,0x110,0x110,0x110,0x110,0x110,0x110,0x110,
+0x110,0x110,0,0,0,0,0,0,0,0,0,0,0x110,0x110,0x110,0x110,
+0x110,0x110,0x116,0x110,0x110,0x110,0x110,0x110,0x110,0x110,0x110,0x110,0x110,0x110,0x110,0x110,
+0x110,0x110,0x110,0x110,0x110,0x110,0x110,0x118,0x10a,0x110,0x1d2,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0x10e,0x110,0,0,
+0x116,0,0,0,0,0,0x108,0x110,0x1e2,0x114,0x110,0,0,0,0,0,
+0,0,0,0x110,0x110,0x110,0x110,0x110,0x110,0x110,0x110,0x110,0x110,0x110,0x110,0x110,
+0x110,0x110,0x110,0x110,0x110,0x110,0x110,0x110,0x110,0x110,0x110,0x1f1,0x1ff,0x110,0x20e,0x21d,
+0x110,0x22a,0x110,0x237,0x246,0x256,0x110,0x22a,0x110,0x237,0x261,0x110,0x110,0x26e,0x110,0x110,
+0x110,0x110,0x110,0x110,0x110,0x110,0x110,0x110,0x110,0x110,0x27e,0x110,0x110,0x110,0x110,0x110,
+0x110,0x110,0x110,0x110,0x110,0x110,0x110,0x110,0x110,0x110,0x110,0x27e,0x27e,0x27e,0x27e,0x27e,
+0x286,0x110,0x28e,0x110,0x110,0x110,0x110,0x110,0x110,0x110,0x110,0x110,0x110,0x110,0x110,0x110,
+0x110,0x110,0x110,0x110,0x110,0x110,0x110,0x110,0x110,0x110,0x110,0x110,0x110,0x110,0x110,0x110,
+0x110,0x110,0x110,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0x110,0x110,0,0,0,0,0,
+0,0,0,0x110,0,0x110,0x117,0x29b,0x2aa,0,0,0,0,0,0,0,
+0,0,0x2ba,0x2c9,0x110,0x2d9,0x110,0x2e9,0x2f8,0,0,0,0,0,0,0,
+0x308,0x318,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0x110,0x110,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0x110,0x110,0x110,0x110,0x110,0x110,0x110,0x110,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0x110,0x110,0x110,0x110,0x110,0x110,
+0x110,0x110,0x110,0x110,0x110,0x110,0x110,0x110,0x110,0x110,0x110,0x110,0x110,0,0,0,
+0,0x110,0x110,0x110,0x110,0x110,0x110,0x110,0x110,0x110,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0x110,0x110,0x110,0x110,0x110,0x110,0x110,0x110,
+0x110,0x110,0,0,0,0,0,0,0,0,0x328,0x110,0x110,0x110,0x110,0x110,
+0x110,0x110,0x110,0x110,0x110,0x110,0x110,0x110,0x110,0x110,0x110,0x110,0x110,0x110,0x110,0x110,
+0x110,0x110,0x110,0x110,0x110,0x110,0x110,0x110,0x110,0x110,0x112,0x84,0x98,0xa8,0xa8,0xa8,
+0xa8,0xa8,0xa8,0xc8,0xc,0xe8,0x100,0x115,0xc,0xc,0xc,0x134,0x153,0x172,0x191,0xc,
+0x1ab,0xc,0x1cb,0x1eb,0x20b,0x223,0x223,0x223,0x223,0x223,0x223,0x223,0x223,0x223,0x223,0x223,
+0x223,0x223,0x223,0x223,0x223,0x223,0x223,0x223,0x223,0x223,0x223,0x223,0x223,0x223,0x223,0x223,
+0x223,0x223,0x223,0x223,0x223,0xfb,0xc,0x243,0xc,0x223,0x223,0x223,0x223,0x223,0x223,0x223,
+0x223,0x223,0x223,0x223,0x223,0xc,0xc,0xc,0xc,0x223,0x223,0x223,0x223,0x223,0x223,0x223,
+0x223,0x223,0x223,0x223,0x223,0x223,0xf8,0xc,0x262,0xc,0xc,0xc,0xc,0x282,0xc,0xc,
+0xc,0xc,0xc,0x29c,0xc,0xc,0xfd,0xc,0xc,0xc,0xc,0xc,0xc,0xc,0xc,0xc,
+0xc,0x223,0x223,0x2b9,0xc,0xc,0xc,0xc,0xc,0x223,0x100,0xc,0xc,0xc,0xc,0xc,
+0xc,0xc,0xc,0xc,0xc,0xc,0xc,0xc,0xc,0xc,0xc,0xc,0xc,0xc,0x2bc,0x223,
+0x223,0x223,0x223,0x223,0x223,0x223,0x223,0xf8,0xc,0xc,0xc,0xc,0xc,0xc,0xc,0xc,
+0xc,0xc,0xc,0xc,0xc,0xc,0xc,0xc,0xc,0xc,0x2da,0xf8,0xc,0xc,0xc,0xc,
+0xc,0xc,0xc,0xc,0x223,0x2fa,0xc,0xc,0x223,0xfd,0xc,0xc,0xc,0xc,0xc,0xc,
+0xc,0xc,0xc,0xc,0x223,0x31a,0x223,0x223,0xc8,0x2b5,0xc,0xc,0x223,0x223,0x223,0x223,
+0x223,0x223,0x223,0x223,0x223,0x223,0x223,0x223,0x223,0x223,0x223,0x223,0x223,0x223,0x223,0x223,
+0x223,0x223,0x223,0x223,0x223,0x223,0x223,0x223,0x223,0x223,0x223,0x31b,0xc,0xc,0xc,0xc,
+0xc,0xc,0xc,0xc,0xc,0xc,0xc,0xc,0xc,0xc,0xc,0xc,0xc,0xc,0xc,0xc,
+0xc,0xc,0xc,0xc,0xc,0xc,0xc,0xc,0xc,0xc,0xc,0xc
+};
+
+static const uint8_t vo_trieData[828]={
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+3,0,3,0,0,0,0,3,0,0,3,0,0,0,0,0,
+0,0,0,0,0,3,3,3,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,3,3,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,
+0,0,0,0,0,0,0,0,0,3,3,0,0,0,3,0,
+0,0,0,3,3,3,0,0,0,0,0,0,3,0,3,3,
+3,0,0,0,0,0,0,0,0,0,0,0,3,3,0,3,
+3,3,3,3,3,3,0,0,0,0,0,3,3,0,3,3,
+0,0,0,0,0,0,3,3,3,3,0,3,0,3,0,3,
+0,0,0,0,3,0,0,0,0,0,3,3,3,3,3,3,
+0,3,3,0,3,3,3,3,3,3,3,3,3,3,0,0,
+3,3,3,3,3,3,3,3,0,0,0,0,3,3,3,3,
+3,1,1,3,0,0,0,0,3,3,3,3,3,3,3,3,
+3,3,3,3,3,3,0,3,3,3,3,3,3,3,3,3,
+3,3,0,0,0,0,3,3,3,0,3,3,3,3,3,3,
+3,3,3,3,3,3,0,0,0,0,0,0,0,0,0,0,
+0,0,3,3,0,3,3,3,3,3,3,3,3,3,3,3,
+3,3,2,2,3,3,3,3,3,1,1,1,1,1,1,1,
+1,3,3,1,1,1,1,1,1,1,1,1,1,1,1,3,
+3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,3,
+2,3,2,3,2,3,2,3,3,3,3,3,3,2,3,3,
+3,3,3,3,3,3,3,3,3,3,2,3,2,3,2,3,
+3,3,3,3,3,2,3,3,3,3,3,2,2,3,3,3,
+3,2,2,3,3,3,1,2,3,2,3,2,3,2,3,2,
+3,3,3,3,3,3,2,2,3,3,3,3,3,1,3,3,
+3,3,3,3,3,2,3,3,3,3,3,3,3,3,2,2,
+2,2,2,2,2,2,2,2,2,2,2,2,2,2,3,3,
+3,3,3,3,3,3,3,3,3,2,2,2,2,2,3,3,
+3,3,3,0,1,1,1,1,1,1,3,3,3,0,0,0,
+0,3,3,3,3,3,3,3,3,3,0,2,3,3,3,3,
+3,3,1,1,3,3,2,0,2,3,3,3,3,3,3,3,
+3,3,3,1,1,0,0,0,2,3,3,3,3,3,3,3,
+3,3,3,3,1,3,1,3,1,3,3,3,3,3,3,3,
+3,3,3,3,1,1,1,1,1,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,3,3,3,1,3,3,3,3,
+0,0,0,0,0,0,0,0,3,3,3,3,3,3,3,3,
+3,0,0,0,3,3,0,0,2,2,3,3,3,3,3,3,
+3,3,3,3,3,3,3,3,0,0,0,0
+};
+
+static const UCPTrie vo_trie={
+    vo_trieIndex,
+    { vo_trieData },
+    1100, 828,
+    0x110000, 0x110,
+    1, 2,
+    0, 0,
+    0xc, 0x0,
+    0x0,
+};
+
+#endif  // INCLUDED_FROM_UPROPS_CPP
index 7a1dc72..81b6e0f 100644 (file)
@@ -798,7 +798,7 @@ _getKeywords(const char *localeID,
             }
             keywordsLen += keywordList[i].keywordLen + 1;
             if(valuesToo) {
-                if(keywordsLen + keywordList[i].valueLen < keywordCapacity) {
+                if(keywordsLen + keywordList[i].valueLen <= keywordCapacity) {
                     uprv_strncpy(keywords+keywordsLen, keywordList[i].valueStart, keywordList[i].valueLen);
                 }
                 keywordsLen += keywordList[i].valueLen;
@@ -1133,7 +1133,7 @@ uloc_setKeywordValue(const char* keywordName,
             keyValuePrefix = ';'; /* for any subsequent key-value pair */
             updatedKeysAndValues.append(localeKeywordNameBuffer, keyValueLen, *status);
             updatedKeysAndValues.append('=', *status);
-            updatedKeysAndValues.append(nextEqualsign, keyValueTail-nextEqualsign, *status);
+            updatedKeysAndValues.append(nextEqualsign, static_cast<int32_t>(keyValueTail-nextEqualsign), *status);
         }
         if (!nextSeparator && keywordValueLen > 0 && !handledInputKeyAndValue) {
             /* append new entry at the end, it sorts later than existing entries */
@@ -1500,7 +1500,7 @@ _deleteVariant(char* variants, int32_t variantsLen,
         }
         if (uprv_strncmp(variants, toDelete, toDeleteLen) == 0 &&
             (variantsLen == toDeleteLen ||
-             (flag=(variants[toDeleteLen] == '_'))))
+             (flag=(variants[toDeleteLen] == '_')) != 0))
         {
             int32_t d = toDeleteLen + (flag?1:0);
             variantsLen -= d;
@@ -2412,7 +2412,7 @@ uloc_acceptLanguageFromHTTP(char *result, int32_t resultAvailable, UAcceptResult
         /* eat spaces prior to semi */
         for(t=(paramEnd-1);(paramEnd>s)&&isspace(*t);t--)
             ;
-        int32_t slen = ((t+1)-s);
+        int32_t slen = static_cast<int32_t>(((t+1)-s));
         if(slen > ULOC_FULLNAME_CAPACITY) {
           *status = U_BUFFER_OVERFLOW_ERROR;
           return -1; // too big
index 4eea504..b6f0752 100644 (file)
@@ -228,7 +228,7 @@ initFromResourceBundle(UErrorCode& sts) {
                     // a timezone key uses a colon instead of a slash in the resource.
                     // e.g. America:Los_Angeles
                     if (uprv_strchr(legacyTypeId, ':') != NULL) {
-                        int32_t legacyTypeIdLen = uprv_strlen(legacyTypeId);
+                        int32_t legacyTypeIdLen = static_cast<int32_t>(uprv_strlen(legacyTypeId));
                         char* legacyTypeIdBuf = (char*)uprv_malloc(legacyTypeIdLen + 1);
                         if (legacyTypeIdBuf == NULL) {
                             sts = U_MEMORY_ALLOCATION_ERROR;
@@ -320,7 +320,7 @@ initFromResourceBundle(UErrorCode& sts) {
                             if (isTZ) {
                                 // replace colon with slash if necessary
                                 if (uprv_strchr(from, ':') != NULL) {
-                                    int32_t fromLen = uprv_strlen(from);
+                                    int32_t fromLen = static_cast<int32_t>(uprv_strlen(from));
                                     char* fromBuf = (char*)uprv_malloc(fromLen + 1);
                                     if (fromBuf == NULL) {
                                         sts = U_MEMORY_ALLOCATION_ERROR;
@@ -472,7 +472,6 @@ isSpecialTypeRgKeyValue(const char* val) {
         p++;
     }
     return (subtagLen == 6);
-    return TRUE;
 }
 
 U_CFUNC const char*
index 87b9f63..83d7916 100644 (file)
 #include "unicode/putil.h"
 #include "unicode/uloc.h"
 #include "ustr_imp.h"
+#include "charstr.h"
 #include "cmemory.h"
 #include "cstring.h"
 #include "putilimp.h"
 #include "uinvchar.h"
 #include "ulocimp.h"
+#include "uvector.h"
 #include "uassert.h"
 
 
@@ -77,19 +79,34 @@ static const char LOCALE_TYPE_YES[] = "yes";
 
 #define LANG_UND_LEN 3
 
+/*
+ Updated on 2018-09-12 from
+ https://www.iana.org/assignments/language-subtag-registry/language-subtag-registry .
+
+ This table has 2 parts. The parts for Grandfathered tags is generated by the
+ following scripts from the IANA language tag registry.
+
+ curl  https://www.iana.org/assignments/language-subtag-registry/language-subtag-registry |\
+ egrep -A 7 'Type: grandfathered' | \
+ egrep 'Tag|Prefe' | grep -B1 'Preferred' | grep -v '^--' | \
+ awk -n '/Tag/ {printf("    \"%s\", ", $2);} /Preferred/ {printf("\"%s\",\n", $2);}' |\
+ tr 'A-Z' 'a-z'
+
+
+ The 2nd part is made of five ICU-specific entries. They're kept for
+ the backward compatibility for now, even though there are no preferred
+ values. They may have to be removed for the strict BCP 47 compliance.
+
+*/
 static const char* const GRANDFATHERED[] = {
 /*  grandfathered   preferred */
     "art-lojban",   "jbo",
-    "cel-gaulish",  "xtg-x-cel-gaulish",
-    "en-GB-oed",    "en-GB-x-oed",
+    "en-gb-oed",    "en-gb-oxendict",
     "i-ami",        "ami",
     "i-bnn",        "bnn",
-    "i-default",    "en-x-i-default",
-    "i-enochian",   "und-x-i-enochian",
     "i-hak",        "hak",
     "i-klingon",    "tlh",
     "i-lux",        "lb",
-    "i-mingo",      "see-x-i-mingo",
     "i-navajo",     "nv",
     "i-pwn",        "pwn",
     "i-tao",        "tao",
@@ -102,17 +119,175 @@ static const char* const GRANDFATHERED[] = {
     "sgn-ch-de",    "sgg",
     "zh-guoyu",     "cmn",
     "zh-hakka",     "hak",
-    "zh-min",       "nan-x-zh-min",
     "zh-min-nan",   "nan",
     "zh-xiang",     "hsn",
-    NULL,           NULL
+
+    // Grandfathered tags with no preferred value in the IANA
+    // registry. Kept for now for the backward compatibility
+    // because ICU has mapped them this way.
+    "cel-gaulish",  "xtg-x-cel-gaulish",
+    "i-default",    "en-x-i-default",
+    "i-enochian",   "und-x-i-enochian",
+    "i-mingo",      "see-x-i-mingo",
+    "zh-min",       "nan-x-zh-min",
 };
 
+/*
+ Updated on 2018-09-12 from
+ https://www.iana.org/assignments/language-subtag-registry/language-subtag-registry .
+
+ The table lists redundant tags with preferred value in the IANA languate tag registry.
+ It's generated with the following command:
+
+ curl  https://www.iana.org/assignments/language-subtag-registry/language-subtag-registry |\
+ grep 'Type: redundant' -A 5 | egrep '^(Tag:|Prefer)' | grep -B1 'Preferred' | \
+ awk -n '/Tag/ {printf("    \"%s\",       ", $2);} /Preferred/ {printf("\"%s\",\n", $2);}' | \
+ tr 'A-Z' 'a-z'
+
+ In addition, ja-latn-hepburn-heploc is mapped to ja-latn-alalc97 because
+ a variant tag 'hepburn-heploc' has the preferred subtag, 'alaic97'.
+*/
+
+static const char* const REDUNDANT[] = {
+//  redundant       preferred
+    "sgn-br",       "bzs",
+    "sgn-co",       "csn",
+    "sgn-de",       "gsg",
+    "sgn-dk",       "dsl",
+    "sgn-es",       "ssp",
+    "sgn-fr",       "fsl",
+    "sgn-gb",       "bfi",
+    "sgn-gr",       "gss",
+    "sgn-ie",       "isg",
+    "sgn-it",       "ise",
+    "sgn-jp",       "jsl",
+    "sgn-mx",       "mfs",
+    "sgn-ni",       "ncs",
+    "sgn-nl",       "dse",
+    "sgn-no",       "nsl",
+    "sgn-pt",       "psr",
+    "sgn-se",       "swl",
+    "sgn-us",       "ase",
+    "sgn-za",       "sfs",
+    "zh-cmn",       "cmn",
+    "zh-cmn-hans",  "cmn-hans",
+    "zh-cmn-hant",  "cmn-hant",
+    "zh-gan",       "gan",
+    "zh-wuu",       "wuu",
+    "zh-yue",       "yue",
+
+    // variant tag with preferred value
+    "ja-latn-hepburn-heploc", "ja-latn-alalc97",
+};
+
+/*
+  Updated on 2018-09-12 from
+  https://www.iana.org/assignments/language-subtag-registry/language-subtag-registry .
+
+  grep 'Type: language' -A 7 language-subtag-registry  | egrep 'Subtag|Prefe' | \
+  grep -B1 'Preferred' | grep -v '^--' | \
+  awk -n '/Subtag/ {printf("    \"%s\",       ", $2);} /Preferred/ {printf("\"%s\",\n", $2);}'
+
+  Make sure that 2-letter language subtags come before 3-letter subtags.
+*/
 static const char DEPRECATEDLANGS[][4] = {
 /*  deprecated  new */
+    "in",       "id",
     "iw",       "he",
     "ji",       "yi",
-    "in",       "id"
+    "jw",       "jv",
+    "mo",       "ro",
+    "aam",       "aas",
+    "adp",       "dz",
+    "aue",       "ktz",
+    "ayx",       "nun",
+    "bgm",       "bcg",
+    "bjd",       "drl",
+    "ccq",       "rki",
+    "cjr",       "mom",
+    "cka",       "cmr",
+    "cmk",       "xch",
+    "coy",       "pij",
+    "cqu",       "quh",
+    "drh",       "khk",
+    "drw",       "prs",
+    "gav",       "dev",
+    "gfx",       "vaj",
+    "ggn",       "gvr",
+    "gti",       "nyc",
+    "guv",       "duz",
+    "hrr",       "jal",
+    "ibi",       "opa",
+    "ilw",       "gal",
+    "jeg",       "oyb",
+    "kgc",       "tdf",
+    "kgh",       "kml",
+    "koj",       "kwv",
+    "krm",       "bmf",
+    "ktr",       "dtp",
+    "kvs",       "gdj",
+    "kwq",       "yam",
+    "kxe",       "tvd",
+    "kzj",       "dtp",
+    "kzt",       "dtp",
+    "lii",       "raq",
+    "lmm",       "rmx",
+    "meg",       "cir",
+    "mst",       "mry",
+    "mwj",       "vaj",
+    "myt",       "mry",
+    "nad",       "xny",
+    "ncp",       "kdz",
+    "nnx",       "ngv",
+    "nts",       "pij",
+    "oun",       "vaj",
+    "pcr",       "adx",
+    "pmc",       "huw",
+    "pmu",       "phr",
+    "ppa",       "bfy",
+    "ppr",       "lcq",
+    "pry",       "prt",
+    "puz",       "pub",
+    "sca",       "hle",
+    "skk",       "oyb",
+    "tdu",       "dtp",
+    "thc",       "tpo",
+    "thx",       "oyb",
+    "tie",       "ras",
+    "tkk",       "twm",
+    "tlw",       "weo",
+    "tmp",       "tyj",
+    "tne",       "kak",
+    "tnf",       "prs",
+    "tsf",       "taj",
+    "uok",       "ema",
+    "xba",       "cax",
+    "xia",       "acn",
+    "xkh",       "waw",
+    "xsj",       "suj",
+    "ybd",       "rki",
+    "yma",       "lrr",
+    "ymt",       "mtm",
+    "yos",       "zom",
+    "yuu",       "yug",
+};
+
+/*
+  Updated on 2018-04-24 from
+
+  curl  https://www.iana.org/assignments/language-subtag-registry/language-subtag-registry | \
+  grep 'Type: region' -A 7 | egrep 'Subtag|Prefe' | \
+  grep -B1 'Preferred' | \
+  awk -n '/Subtag/ {printf("    \"%s\",       ", $2);} /Preferred/ {printf("\"%s\",\n", $2);}'
+*/
+static const char DEPRECATEDREGIONS[][3] = {
+/*  deprecated  new */
+    "BU",       "MM",
+    "DD",       "DE",
+    "FX",       "FR",
+    "TP",       "TL",
+    "YD",       "YE",
+    "ZR",       "CD",
 };
 
 /*
@@ -172,6 +347,46 @@ static const char*
 ultag_getGrandfathered(const ULanguageTag* langtag);
 #endif
 
+namespace {
+
+// Helper class to memory manage CharString objects.
+// Only ever stack-allocated, does not need to inherit UMemory.
+class CharStringPool {
+public:
+    CharStringPool() : status(U_ZERO_ERROR), pool(&deleter, nullptr, status) {}
+    ~CharStringPool() = default;
+
+    CharStringPool(const CharStringPool&) = delete;
+    CharStringPool& operator=(const CharStringPool&) = delete;
+
+    icu::CharString* create() {
+        if (U_FAILURE(status)) {
+            return nullptr;
+        }
+        icu::CharString* const obj = new icu::CharString;
+        if (obj == nullptr) {
+            status = U_MEMORY_ALLOCATION_ERROR;
+            return nullptr;
+        }
+        pool.addElement(obj, status);
+        if (U_FAILURE(status)) {
+            delete obj;
+            return nullptr;
+        }
+        return obj;
+    }
+
+private:
+    static void U_CALLCONV deleter(void* obj) {
+        delete static_cast<icu::CharString*>(obj);
+    }
+
+    UErrorCode status;
+    icu::UVector pool;
+};
+
+}  // namespace
+
 /*
 * -------------------------------------------------
 *
@@ -675,6 +890,11 @@ _appendLanguageToLanguageTag(const char* localeID, char* appendAt, int32_t capac
     } else {
         /* resolve deprecated */
         for (i = 0; i < UPRV_LENGTHOF(DEPRECATEDLANGS); i += 2) {
+            // 2-letter deprecated subtags are listede before 3-letter
+            // ones in DEPRECATEDLANGS[]. Get out of loop on coming
+            // across the 1st 3-letter subtag, if the input is a 2-letter code.
+            // to avoid continuing to try when there's no match.
+            if (uprv_strlen(buf) < uprv_strlen(DEPRECATEDLANGS[i])) break;
             if (uprv_compareInvCharsAsAscii(buf, DEPRECATEDLANGS[i]) == 0) {
                 uprv_strcpy(buf, DEPRECATEDLANGS[i + 1]);
                 len = (int32_t)uprv_strlen(buf);
@@ -721,7 +941,6 @@ _appendScriptToLanguageTag(const char* localeID, char* appendAt, int32_t capacit
                 *(appendAt + reslen) = SEP;
             }
             reslen++;
-
             if (reslen < capacity) {
                 uprv_memcpy(appendAt + reslen, buf, uprv_min(len, capacity - reslen));
             }
@@ -763,6 +982,14 @@ _appendRegionToLanguageTag(const char* localeID, char* appendAt, int32_t capacit
                 *(appendAt + reslen) = SEP;
             }
             reslen++;
+           /* resolve deprecated */
+            for (int i = 0; i < UPRV_LENGTHOF(DEPRECATEDREGIONS); i += 2) {
+                if (uprv_compareInvCharsAsAscii(buf, DEPRECATEDREGIONS[i]) == 0) {
+                    uprv_strcpy(buf, DEPRECATEDREGIONS[i + 1]);
+                    len = (int32_t)uprv_strlen(buf);
+                    break;
+                }
+            }
 
             if (reslen < capacity) {
                 uprv_memcpy(appendAt + reslen, buf, uprv_min(len, capacity - reslen));
@@ -900,7 +1127,6 @@ _appendVariantsToLanguageTag(const char* localeID, char* appendAt, int32_t capac
 
 static int32_t
 _appendKeywordsToLanguageTag(const char* localeID, char* appendAt, int32_t capacity, UBool strict, UBool hadPosix, UErrorCode* status) {
-    char buf[ULOC_KEYWORD_AND_VALUES_CAPACITY];
     char attrBuf[ULOC_KEYWORD_AND_VALUES_CAPACITY] = { 0 };
     int32_t attrBufLength = 0;
     UEnumeration *keywordEnum = NULL;
@@ -920,22 +1146,48 @@ _appendKeywordsToLanguageTag(const char* localeID, char* appendAt, int32_t capac
         AttributeListEntry *firstAttr = NULL;
         AttributeListEntry *attr;
         char *attrValue;
-        char extBuf[ULOC_KEYWORD_AND_VALUES_CAPACITY];
-        char *pExtBuf = extBuf;
-        int32_t extBufCapacity = sizeof(extBuf);
+        CharStringPool extBufPool;
         const char *bcpKey=nullptr, *bcpValue=nullptr;
         UErrorCode tmpStatus = U_ZERO_ERROR;
         int32_t keylen;
         UBool isBcpUExt;
 
         while (TRUE) {
+            icu::CharString buf;
             key = uenum_next(keywordEnum, NULL, status);
             if (key == NULL) {
                 break;
             }
-            len = uloc_getKeywordValue(localeID, key, buf, sizeof(buf), &tmpStatus);
-            /* buf must be null-terminated */
-            if (U_FAILURE(tmpStatus) || tmpStatus == U_STRING_NOT_TERMINATED_WARNING) {
+            char* buffer;
+            int32_t resultCapacity = ULOC_KEYWORD_AND_VALUES_CAPACITY;
+
+            for (;;) {
+                buffer = buf.getAppendBuffer(
+                        /*minCapacity=*/resultCapacity,
+                        /*desiredCapacityHint=*/resultCapacity,
+                        resultCapacity,
+                        tmpStatus);
+
+                if (U_FAILURE(tmpStatus)) {
+                    break;
+                }
+
+                len = uloc_getKeywordValue(
+                        localeID, key, buffer, resultCapacity, &tmpStatus);
+
+                if (tmpStatus != U_BUFFER_OVERFLOW_ERROR) {
+                    break;
+                }
+
+                resultCapacity = len;
+                tmpStatus = U_ZERO_ERROR;
+            }
+
+            if (U_FAILURE(tmpStatus)) {
+                if (tmpStatus == U_MEMORY_ALLOCATION_ERROR) {
+                    *status = U_MEMORY_ALLOCATION_ERROR;
+                    break;
+                }
                 if (strict) {
                     *status = U_ILLEGAL_ARGUMENT_ERROR;
                     break;
@@ -945,6 +1197,11 @@ _appendKeywordsToLanguageTag(const char* localeID, char* appendAt, int32_t capac
                 continue;
             }
 
+            buf.append(buffer, len, tmpStatus);
+            if (tmpStatus == U_STRING_NOT_TERMINATED_WARNING) {
+                tmpStatus = U_ZERO_ERROR;  // Terminators provided by CharString.
+            }
+
             keylen = (int32_t)uprv_strlen(key);
             isBcpUExt = (keylen > 1);
 
@@ -1007,7 +1264,7 @@ _appendKeywordsToLanguageTag(const char* localeID, char* appendAt, int32_t capac
                 }
 
                 /* we've checked buf is null-terminated above */
-                bcpValue = uloc_toUnicodeLocaleType(key, buf);
+                bcpValue = uloc_toUnicodeLocaleType(key, buf.data());
                 if (bcpValue == NULL) {
                     if (strict) {
                         *status = U_ILLEGAL_ARGUMENT_ERROR;
@@ -1015,33 +1272,44 @@ _appendKeywordsToLanguageTag(const char* localeID, char* appendAt, int32_t capac
                     }
                     continue;
                 }
-                if (bcpValue == buf) {
-                    /* 
+                if (bcpValue == buf.data()) {
+                    /*
                     When uloc_toUnicodeLocaleType(key, buf) returns the
                     input value as is, the value is well-formed, but has
                     no known mapping. This implementation normalizes the
-                    the value to lower case
+                    value to lower case
                     */
+                    icu::CharString* extBuf = extBufPool.create();
+                    if (extBuf == nullptr) {
+                        *status = U_MEMORY_ALLOCATION_ERROR;
+                        break;
+                    }
                     int32_t bcpValueLen = static_cast<int32_t>(uprv_strlen(bcpValue));
-                    if (bcpValueLen < extBufCapacity) {
-                        uprv_strcpy(pExtBuf, bcpValue);
-                        T_CString_toLowerCase(pExtBuf);
+                    int32_t resultCapacity;
+                    char* pExtBuf = extBuf->getAppendBuffer(
+                            /*minCapacity=*/bcpValueLen,
+                            /*desiredCapacityHint=*/bcpValueLen,
+                            resultCapacity,
+                            tmpStatus);
+                    if (U_FAILURE(tmpStatus)) {
+                        *status = tmpStatus;
+                        break;
+                    }
 
-                        bcpValue = pExtBuf;
+                    uprv_strcpy(pExtBuf, bcpValue);
+                    T_CString_toLowerCase(pExtBuf);
 
-                        pExtBuf += (bcpValueLen + 1);
-                        extBufCapacity -= (bcpValueLen + 1);
-                    } else {
-                        if (strict) {
-                            *status = U_ILLEGAL_ARGUMENT_ERROR;
-                            break;
-                        }
-                        continue;
+                    extBuf->append(pExtBuf, bcpValueLen, tmpStatus);
+                    if (U_FAILURE(tmpStatus)) {
+                        *status = tmpStatus;
+                        break;
                     }
+
+                    bcpValue = extBuf->data();
                 }
             } else {
                 if (*key == PRIVATEUSE) {
-                    if (!_isPrivateuseValueSubtags(buf, len)) {
+                    if (!_isPrivateuseValueSubtags(buf.data(), len)) {
                         if (strict) {
                             *status = U_ILLEGAL_ARGUMENT_ERROR;
                             break;
@@ -1049,7 +1317,7 @@ _appendKeywordsToLanguageTag(const char* localeID, char* appendAt, int32_t capac
                         continue;
                     }
                 } else {
-                    if (!_isExtensionSingleton(key, keylen) || !_isExtensionSubtags(buf, len)) {
+                    if (!_isExtensionSingleton(key, keylen) || !_isExtensionSubtags(buf.data(), len)) {
                         if (strict) {
                             *status = U_ILLEGAL_ARGUMENT_ERROR;
                             break;
@@ -1058,20 +1326,17 @@ _appendKeywordsToLanguageTag(const char* localeID, char* appendAt, int32_t capac
                     }
                 }
                 bcpKey = key;
-                if ((len + 1) < extBufCapacity) {
-                    uprv_memcpy(pExtBuf, buf, len);
-                    bcpValue = pExtBuf;
-
-                    pExtBuf += len;
-
-                    *pExtBuf = 0;
-                    pExtBuf++;
-
-                    extBufCapacity -= (len + 1);
-                } else {
-                    *status = U_ILLEGAL_ARGUMENT_ERROR;
+                icu::CharString* extBuf = extBufPool.create();
+                if (extBuf == nullptr) {
+                    *status = U_MEMORY_ALLOCATION_ERROR;
                     break;
                 }
+                extBuf->append(buf.data(), len, tmpStatus);
+                if (U_FAILURE(tmpStatus)) {
+                    *status = tmpStatus;
+                    break;
+                }
+                bcpValue = extBuf->data();
             }
 
             /* create ExtensionListEntry */
@@ -1242,6 +1507,7 @@ _appendLDMLExtensionAsKeywords(const char* ldmlext, ExtensionListEntry** appendT
             attrBufIdx += (len + 1);
         } else {
             *status = U_ILLEGAL_ARGUMENT_ERROR;
+            uprv_free(attr);
             goto cleanup;
         }
 
@@ -1460,9 +1726,9 @@ _appendLDMLExtensionAsKeywords(const char* ldmlext, ExtensionListEntry** appendT
                     kwd->value = pType;
 
                     if (!_addExtensionToList(&kwdFirst, kwd, FALSE)) {
-                        *status = U_ILLEGAL_ARGUMENT_ERROR;
+                        // duplicate keyword is allowed, Only the first
+                        // is honored.
                         uprv_free(kwd);
-                        goto cleanup;
                     }
                 }
 
@@ -1836,7 +2102,7 @@ ultag_parse(const char* tag, int32_t tagLen, int32_t* parsedLen, UErrorCode* sta
     }
 
     /* check if the tag is grandfathered */
-    for (i = 0; GRANDFATHERED[i] != NULL; i += 2) {
+    for (i = 0; i < UPRV_LENGTHOF(GRANDFATHERED); i += 2) {
         if (uprv_stricmp(GRANDFATHERED[i], tagBuf) == 0) {
             int32_t newTagLength;
 
@@ -1858,6 +2124,37 @@ ultag_parse(const char* tag, int32_t tagLen, int32_t* parsedLen, UErrorCode* sta
         }
     }
 
+    size_t parsedLenDelta = 0;
+    if (grandfatheredLen == 0) {
+        for (i = 0; i < UPRV_LENGTHOF(REDUNDANT); i += 2) {
+            const char* redundantTag = REDUNDANT[i];
+            size_t redundantTagLen = uprv_strlen(redundantTag);
+            // The preferred tag for a redundant tag is always shorter than redundant
+            // tag. A redundant tag may or may not be followed by other subtags.
+            // (i.e. "zh-yue" or "zh-yue-u-co-pinyin").
+            if (uprv_strnicmp(redundantTag, tagBuf, static_cast<uint32_t>(redundantTagLen)) == 0) {
+                const char* redundantTagEnd = tagBuf + redundantTagLen;
+                if (*redundantTagEnd  == '\0' || *redundantTagEnd == SEP) {
+                    const char* preferredTag = REDUNDANT[i + 1];
+                    size_t preferredTagLen = uprv_strlen(preferredTag);
+                    uprv_strncpy(t->buf, preferredTag, preferredTagLen);
+                    if (*redundantTagEnd == SEP) {
+                        uprv_memmove(tagBuf + preferredTagLen,
+                                     redundantTagEnd,
+                                     tagLen - redundantTagLen + 1);
+                    } else {
+                        tagBuf[preferredTagLen] = '\0';
+                    }
+                    // parsedLen should be the length of the input
+                    // before redundantTag is replaced by preferredTag.
+                    // Save the delta to add it back later.
+                    parsedLenDelta = redundantTagLen - preferredTagLen;
+                    break;
+                }
+            }
+        }
+    }
+
     /*
      * langtag      =   language
      *                  ["-" script]
@@ -1898,10 +2195,13 @@ ultag_parse(const char* tag, int32_t tagLen, int32_t* parsedLen, UErrorCode* sta
         if (next & LANG) {
             if (_isLanguageSubtag(pSubtag, subtagLen)) {
                 *pSep = 0;  /* terminate */
+                // TODO: move deprecated language code handling here.
                 t->language = T_CString_toLowerCase(pSubtag);
 
                 pLastGoodPosition = pSep;
-                next = EXTL | SCRT | REGN | VART | EXTS | PRIV;
+                next = SCRT | REGN | VART | EXTS | PRIV;
+                if (subtagLen <= 3)
+                  next |= EXTL;
                 continue;
             }
         }
@@ -1942,6 +2242,7 @@ ultag_parse(const char* tag, int32_t tagLen, int32_t* parsedLen, UErrorCode* sta
         if (next & REGN) {
             if (_isRegionSubtag(pSubtag, subtagLen)) {
                 *pSep = 0;
+                // TODO: move deprecated region code handling here.
                 t->region = T_CString_toUpperCase(pSubtag);
 
                 pLastGoodPosition = pSep;
@@ -2035,7 +2336,7 @@ ultag_parse(const char* tag, int32_t tagLen, int32_t* parsedLen, UErrorCode* sta
             }
         }
         if (next & PRIV) {
-            if (uprv_tolower(*pSubtag) == PRIVATEUSE) {
+            if (uprv_tolower(*pSubtag) == PRIVATEUSE && subtagLen == 1) {
                 char *pPrivuseVal;
 
                 if (pExtension != NULL) {
@@ -2138,7 +2439,8 @@ ultag_parse(const char* tag, int32_t tagLen, int32_t* parsedLen, UErrorCode* sta
     }
 
     if (parsedLen != NULL) {
-        *parsedLen = (grandfatheredLen > 0) ? grandfatheredLen : (int32_t)(pLastGoodPosition - t->buf);
+        *parsedLen = (grandfatheredLen > 0) ? grandfatheredLen :
+            (int32_t)(pLastGoodPosition - t->buf + parsedLenDelta);
     }
 
     return t;
@@ -2335,31 +2637,66 @@ uloc_toLanguageTag(const char* localeID,
                    int32_t langtagCapacity,
                    UBool strict,
                    UErrorCode* status) {
-    /* char canonical[ULOC_FULLNAME_CAPACITY]; */ /* See #6822 */
-    char canonical[256];
-    int32_t reslen = 0;
+    icu::CharString canonical;
+    int32_t reslen;
     UErrorCode tmpStatus = U_ZERO_ERROR;
     UBool hadPosix = FALSE;
     const char* pKeywordStart;
 
     /* Note: uloc_canonicalize returns "en_US_POSIX" for input locale ID "".  See #6835 */
-    canonical[0] = 0;
-    if (uprv_strlen(localeID) > 0) {
-        uloc_canonicalize(localeID, canonical, sizeof(canonical), &tmpStatus);
-        if (tmpStatus != U_ZERO_ERROR) {
+    int32_t resultCapacity = static_cast<int32_t>(uprv_strlen(localeID));
+    if (resultCapacity > 0) {
+        char* buffer;
+
+        for (;;) {
+            buffer = canonical.getAppendBuffer(
+                    /*minCapacity=*/resultCapacity,
+                    /*desiredCapacityHint=*/resultCapacity,
+                    resultCapacity,
+                    tmpStatus);
+
+            if (U_FAILURE(tmpStatus)) {
+                *status = tmpStatus;
+                return 0;
+            }
+
+            reslen =
+                uloc_canonicalize(localeID, buffer, resultCapacity, &tmpStatus);
+
+            if (tmpStatus != U_BUFFER_OVERFLOW_ERROR) {
+                break;
+            }
+
+            resultCapacity = reslen;
+            tmpStatus = U_ZERO_ERROR;
+        }
+
+        if (U_FAILURE(tmpStatus)) {
             *status = U_ILLEGAL_ARGUMENT_ERROR;
             return 0;
         }
+
+        canonical.append(buffer, reslen, tmpStatus);
+        if (tmpStatus == U_STRING_NOT_TERMINATED_WARNING) {
+            tmpStatus = U_ZERO_ERROR;  // Terminators provided by CharString.
+        }
+
+        if (U_FAILURE(tmpStatus)) {
+            *status = tmpStatus;
+            return 0;
+        }
     }
 
+    reslen = 0;
+
     /* For handling special case - private use only tag */
-    pKeywordStart = locale_getKeywordsStart(canonical);
-    if (pKeywordStart == canonical) {
+    pKeywordStart = locale_getKeywordsStart(canonical.data());
+    if (pKeywordStart == canonical.data()) {
         UEnumeration *kwdEnum;
         int kwdCnt = 0;
         UBool done = FALSE;
 
-        kwdEnum = uloc_openKeywords((const char*)canonical, &tmpStatus);
+        kwdEnum = uloc_openKeywords(canonical.data(), &tmpStatus);
         if (kwdEnum != NULL) {
             kwdCnt = uenum_count(kwdEnum, &tmpStatus);
             if (kwdCnt == 1) {
@@ -2397,12 +2734,12 @@ uloc_toLanguageTag(const char* localeID,
         }
     }
 
-    reslen += _appendLanguageToLanguageTag(canonical, langtag, langtagCapacity, strict, status);
-    reslen += _appendScriptToLanguageTag(canonical, langtag + reslen, langtagCapacity - reslen, strict, status);
-    reslen += _appendRegionToLanguageTag(canonical, langtag + reslen, langtagCapacity - reslen, strict, status);
-    reslen += _appendVariantsToLanguageTag(canonical, langtag + reslen, langtagCapacity - reslen, strict, &hadPosix, status);
-    reslen += _appendKeywordsToLanguageTag(canonical, langtag + reslen, langtagCapacity - reslen, strict, hadPosix, status);
-    reslen += _appendPrivateuseToLanguageTag(canonical, langtag + reslen, langtagCapacity - reslen, strict, hadPosix, status);
+    reslen += _appendLanguageToLanguageTag(canonical.data(), langtag, langtagCapacity, strict, status);
+    reslen += _appendScriptToLanguageTag(canonical.data(), langtag + reslen, langtagCapacity - reslen, strict, status);
+    reslen += _appendRegionToLanguageTag(canonical.data(), langtag + reslen, langtagCapacity - reslen, strict, status);
+    reslen += _appendVariantsToLanguageTag(canonical.data(), langtag + reslen, langtagCapacity - reslen, strict, &hadPosix, status);
+    reslen += _appendKeywordsToLanguageTag(canonical.data(), langtag + reslen, langtagCapacity - reslen, strict, hadPosix, status);
+    reslen += _appendPrivateuseToLanguageTag(canonical.data(), langtag + reslen, langtagCapacity - reslen, strict, hadPosix, status);
 
     return reslen;
 }
@@ -2414,6 +2751,23 @@ uloc_forLanguageTag(const char* langtag,
                     int32_t localeIDCapacity,
                     int32_t* parsedLength,
                     UErrorCode* status) {
+    return ulocimp_forLanguageTag(
+            langtag,
+            -1,
+            localeID,
+            localeIDCapacity,
+            parsedLength,
+            status);
+}
+
+
+U_CAPI int32_t U_EXPORT2
+ulocimp_forLanguageTag(const char* langtag,
+                       int32_t tagLen,
+                       char* localeID,
+                       int32_t localeIDCapacity,
+                       int32_t* parsedLength,
+                       UErrorCode* status) {
     ULanguageTag *lt;
     int32_t reslen = 0;
     const char *subtag, *p;
@@ -2421,7 +2775,7 @@ uloc_forLanguageTag(const char* langtag,
     int32_t i, n;
     UBool noRegion = TRUE;
 
-    lt = ultag_parse(langtag, -1, parsedLength, status);
+    lt = ultag_parse(langtag, tagLen, parsedLength, status);
     if (U_FAILURE(*status)) {
         return 0;
     }
index 869f296..aa2090e 100644 (file)
@@ -62,6 +62,38 @@ ulocimp_getCountry(const char *localeID,
                    const char **pEnd);
 
 /**
+ * Returns a locale ID for the specified BCP47 language tag string.
+ * If the specified language tag contains any ill-formed subtags,
+ * the first such subtag and all following subtags are ignored.
+ * <p>
+ * This implements the 'Language-Tag' production of BCP47, and so
+ * supports grandfathered (regular and irregular) as well as private
+ * use language tags.  Private use tags are represented as 'x-whatever',
+ * and grandfathered tags are converted to their canonical replacements
+ * where they exist.  Note that a few grandfathered tags have no modern
+ * replacement, these will be converted using the fallback described in
+ * the first paragraph, so some information might be lost.
+ * @param langtag   the input BCP47 language tag.
+ * @param tagLen    the length of langtag, or -1 to call uprv_strlen().
+ * @param localeID  the output buffer receiving a locale ID for the
+ *                  specified BCP47 language tag.
+ * @param localeIDCapacity  the size of the locale ID output buffer.
+ * @param parsedLength  if not NULL, successfully parsed length
+ *                      for the input language tag is set.
+ * @param err       error information if receiving the locald ID
+ *                  failed.
+ * @return          the length of the locale ID.
+ * @internal ICU 63
+ */
+U_CAPI int32_t U_EXPORT2
+ulocimp_forLanguageTag(const char* langtag,
+                       int32_t tagLen,
+                       char* localeID,
+                       int32_t localeIDCapacity,
+                       int32_t* parsedLength,
+                       UErrorCode* err);
+
+/**
  * Get the region to use for supplemental data lookup. Uses
  * (1) any region specified by locale tag "rg"; if none then
  * (2) any unicode_region_tag in the locale ID; if none then
index 53699e7..175e1a9 100644 (file)
@@ -22,6 +22,7 @@
 #include "uposixdefs.h"
 
 #include "unicode/putil.h"
+#include "unicode/ustring.h"
 #include "udatamem.h"
 #include "umapfile.h"
 
@@ -64,7 +65,7 @@
 #       include "unicode/udata.h"
 #       define LIB_PREFIX "lib"
 #       define LIB_SUFFIX ".dll"
-        /* This is inconvienient until we figure out what to do with U_ICUDATA_NAME in utypes.h */
+        /* This is inconvenient until we figure out what to do with U_ICUDATA_NAME in utypes.h */
 #       define U_ICUDATA_ENTRY_NAME "icudt" U_ICU_VERSION_SHORT U_LIB_SUFFIX_C_NAME_STRING "_dat"
 #   endif
 #elif MAP_IMPLEMENTATION==MAP_STDIO
  *----------------------------------------------------------------------------*/
 #if MAP_IMPLEMENTATION==MAP_NONE
     U_CFUNC UBool
-    uprv_mapFile(UDataMemory *pData, const char *path) {
+    uprv_mapFile(UDataMemory *pData, const char *path, UErrorCode *status) {
+        if (U_FAILURE(*status)) {
+            return FALSE;
+        }
         UDataMemory_init(pData); /* Clear the output struct. */
         return FALSE;            /* no file access */
     }
     uprv_mapFile(
          UDataMemory *pData,    /* Fill in with info on the result doing the mapping. */
                                 /*   Output only; any original contents are cleared.  */
-         const char *path       /* File path to be opened/mapped                      */
+         const char *path,      /* File path to be opened/mapped.                     */
+         UErrorCode *status     /* Error status, used to report out-of-memory errors. */
          )
     {
         HANDLE map;
         HANDLE file;
-        
+
+        if (U_FAILURE(*status)) {
+            return FALSE;
+        }
+
         UDataMemory_init(pData); /* Clear the output struct.        */
 
         /* open the input file */
             OPEN_EXISTING,
             FILE_ATTRIBUTE_NORMAL|FILE_FLAG_RANDOM_ACCESS, NULL);
 #else
-        // First we need to go from char to UTF-16
-        // u_UCharsToChars could work but it requires length.
-        WCHAR utf16Path[MAX_PATH];
-        int32_t i;
-        for (i = 0; i < UPRV_LENGTHOF(utf16Path); i++)
-        {
-            utf16Path[i] = path[i];
-            if (path[i] == '\0')
-            {
-                break;
-            }
+        // Convert from UTF-8 string to UTF-16 string.
+        wchar_t utf16Path[MAX_PATH];
+        int32_t pathUtf16Len = 0;
+        u_strFromUTF8(reinterpret_cast<UChar*>(utf16Path), static_cast<int32_t>(UPRV_LENGTHOF(utf16Path)), &pathUtf16Len, path, -1, status);
+
+        if (U_FAILURE(*status)) {
+            return FALSE;
         }
-        if (i >= UPRV_LENGTHOF(utf16Path))
-        {
-            // Ran out of room, unlikely but be safe
-            utf16Path[UPRV_LENGTHOF(utf16Path) - 1] = '\0';
+        if (*status == U_STRING_NOT_TERMINATED_WARNING) {
+            // Report back an error instead of a warning.
+            *status = U_BUFFER_OVERFLOW_ERROR;
+            return FALSE;
         }
 
         // TODO: Is it worth setting extended parameters to specify random access?
         file = CreateFile2(utf16Path, GENERIC_READ, FILE_SHARE_READ, OPEN_EXISTING, NULL);
 #endif
-        if(file==INVALID_HANDLE_VALUE) {
+        if (file == INVALID_HANDLE_VALUE) {
+            // If we failed to open the file due to an out-of-memory error, then we want
+            // to report that error back to the caller.
+            if (HRESULT_FROM_WIN32(GetLastError()) == E_OUTOFMEMORY) {
+                *status = U_MEMORY_ALLOCATION_ERROR;
+            }
             return FALSE;
         }
 
         map = CreateFileMappingFromApp(file, NULL, PAGE_READONLY, 0, NULL);
 #endif
         CloseHandle(file);
-        if(map==NULL) {
+        if (map == NULL) {
+            // If we failed to create the mapping due to an out-of-memory error, then 
+            // we want to report that error back to the caller.
+            if (HRESULT_FROM_WIN32(GetLastError()) == E_OUTOFMEMORY) {
+                *status = U_MEMORY_ALLOCATION_ERROR;
+            }
             return FALSE;
         }
 
 
 #elif MAP_IMPLEMENTATION==MAP_POSIX
     U_CFUNC UBool
-    uprv_mapFile(UDataMemory *pData, const char *path) {
+    uprv_mapFile(UDataMemory *pData, const char *path, UErrorCode *status) {
         int fd;
         int length;
         struct stat mystat;
         void *data;
 
+        if (U_FAILURE(*status)) {
+            return FALSE;
+        }
+
         UDataMemory_init(pData); /* Clear the output struct.        */
 
         /* determine the length of the file */
 #endif
         close(fd); /* no longer needed */
         if(data==MAP_FAILED) {
+            // Possibly check the errno value for ENOMEM, and report U_MEMORY_ALLOCATION_ERROR?
             return FALSE;
         }
 
     }
 
     U_CFUNC UBool
-    uprv_mapFile(UDataMemory *pData, const char *path) {
+    uprv_mapFile(UDataMemory *pData, const char *path, UErrorCode *status) {
         FILE *file;
         int32_t fileLength;
         void *p;
 
+        if (U_FAILURE(*status)) {
+            return FALSE;
+        }
+
         UDataMemory_init(pData); /* Clear the output struct.        */
         /* open the input file */
         file=fopen(path, "rb");
         p=uprv_malloc(fileLength);
         if(p==NULL) {
             fclose(file);
+            *status = U_MEMORY_ALLOCATION_ERROR;
             return FALSE;
         }
 
      *
      *                    TODO:  This works the way ICU historically has, but the
      *                           whole data fallback search path is so complicated that
-     *                           proabably almost no one will ever really understand it,
+     *                           probably almost no one will ever really understand it,
      *                           the potential for confusion is large.  (It's not just 
      *                           this one function, but the whole scheme.)
      *                            
 
 #   define DATA_TYPE "dat"
 
-    U_CFUNC UBool uprv_mapFile(UDataMemory *pData, const char *path) {
+    U_CFUNC UBool uprv_mapFile(UDataMemory *pData, const char *path, UErrorCode *status) {
         const char *inBasename;
         char *basename;
         char pathBuffer[1024];
         dllhandle *handle;
         void *val=0;
 
+        if (U_FAILURE(*status)) {
+            return FALSE;
+        }
+
         inBasename=uprv_strrchr(path, U_FILE_SEP_CHAR);
         if(inBasename==NULL) {
             inBasename = path;
             data=mmap(0, length, PROT_READ, MAP_PRIVATE, fd, 0);
             close(fd); /* no longer needed */
             if(data==MAP_FAILED) {
+                // Possibly check the errorno value for ENOMEM, and report U_MEMORY_ALLOCATION_ERROR?
                 return FALSE;
             }
             pData->map = (char *)data + length;
index 24e476b..92bd567 100644 (file)
@@ -29,7 +29,7 @@
 #include "unicode/udata.h"
 #include "putilimp.h"
 
-U_CFUNC UBool uprv_mapFile(UDataMemory *pdm, const char *path);
+U_CFUNC UBool uprv_mapFile(UDataMemory *pdm, const char *path, UErrorCode *status);
 U_CFUNC void  uprv_unmapFile(UDataMemory *pData);
 
 /* MAP_NONE: no memory mapping, no file access at all */
diff --git a/source/common/umutablecptrie.cpp b/source/common/umutablecptrie.cpp
new file mode 100644 (file)
index 0000000..40af4b6
--- /dev/null
@@ -0,0 +1,1678 @@
+// © 2017 and later: Unicode, Inc. and others.
+// License & terms of use: http://www.unicode.org/copyright.html
+
+// umutablecptrie.cpp (inspired by utrie2_builder.cpp)
+// created: 2017dec29 Markus W. Scherer
+
+// #define UCPTRIE_DEBUG
+#ifdef UCPTRIE_DEBUG
+#   include <stdio.h>
+#endif
+
+#include "unicode/utypes.h"
+#include "unicode/ucptrie.h"
+#include "unicode/umutablecptrie.h"
+#include "unicode/uobject.h"
+#include "unicode/utf16.h"
+#include "cmemory.h"
+#include "uassert.h"
+#include "ucptrie_impl.h"
+
+U_NAMESPACE_BEGIN
+
+namespace {
+
+constexpr int32_t MAX_UNICODE = 0x10ffff;
+
+constexpr int32_t UNICODE_LIMIT = 0x110000;
+constexpr int32_t BMP_LIMIT = 0x10000;
+constexpr int32_t ASCII_LIMIT = 0x80;
+
+constexpr int32_t I_LIMIT = UNICODE_LIMIT >> UCPTRIE_SHIFT_3;
+constexpr int32_t BMP_I_LIMIT = BMP_LIMIT >> UCPTRIE_SHIFT_3;
+constexpr int32_t ASCII_I_LIMIT = ASCII_LIMIT >> UCPTRIE_SHIFT_3;
+
+constexpr int32_t SMALL_DATA_BLOCKS_PER_BMP_BLOCK = (1 << (UCPTRIE_FAST_SHIFT - UCPTRIE_SHIFT_3));
+
+// Flag values for data blocks.
+constexpr uint8_t ALL_SAME = 0;
+constexpr uint8_t MIXED = 1;
+constexpr uint8_t SAME_AS = 2;
+
+/** Start with allocation of 16k data entries. */
+constexpr int32_t INITIAL_DATA_LENGTH = ((int32_t)1 << 14);
+
+/** Grow about 8x each time. */
+constexpr int32_t MEDIUM_DATA_LENGTH = ((int32_t)1 << 17);
+
+/**
+ * Maximum length of the build-time data array.
+ * One entry per 0x110000 code points.
+ */
+constexpr int32_t MAX_DATA_LENGTH = UNICODE_LIMIT;
+
+// Flag values for index-3 blocks while compacting/building.
+constexpr uint8_t I3_NULL = 0;
+constexpr uint8_t I3_BMP = 1;
+constexpr uint8_t I3_16 = 2;
+constexpr uint8_t I3_18 = 3;
+
+constexpr int32_t INDEX_3_18BIT_BLOCK_LENGTH = UCPTRIE_INDEX_3_BLOCK_LENGTH + UCPTRIE_INDEX_3_BLOCK_LENGTH / 8;
+
+class AllSameBlocks;
+
+class MutableCodePointTrie : public UMemory {
+public:
+    MutableCodePointTrie(uint32_t initialValue, uint32_t errorValue, UErrorCode &errorCode);
+    MutableCodePointTrie(const MutableCodePointTrie &other, UErrorCode &errorCode);
+    MutableCodePointTrie(const MutableCodePointTrie &other) = delete;
+    ~MutableCodePointTrie();
+
+    MutableCodePointTrie &operator=(const MutableCodePointTrie &other) = delete;
+
+    static MutableCodePointTrie *fromUCPMap(const UCPMap *map, UErrorCode &errorCode);
+    static MutableCodePointTrie *fromUCPTrie(const UCPTrie *trie, UErrorCode &errorCode);
+
+    uint32_t get(UChar32 c) const;
+    int32_t getRange(UChar32 start, UCPMapValueFilter *filter, const void *context,
+                     uint32_t *pValue) const;
+
+    void set(UChar32 c, uint32_t value, UErrorCode &errorCode);
+    void setRange(UChar32 start, UChar32 end, uint32_t value, UErrorCode &errorCode);
+
+    UCPTrie *build(UCPTrieType type, UCPTrieValueWidth valueWidth, UErrorCode &errorCode);
+
+private:
+    void clear();
+
+    bool ensureHighStart(UChar32 c);
+    int32_t allocDataBlock(int32_t blockLength);
+    int32_t getDataBlock(int32_t i);
+
+    void maskValues(uint32_t mask);
+    UChar32 findHighStart() const;
+    int32_t compactWholeDataBlocks(int32_t fastILimit, AllSameBlocks &allSameBlocks);
+    int32_t compactData(int32_t fastILimit, uint32_t *newData, int32_t dataNullIndex);
+    int32_t compactIndex(int32_t fastILimit, UErrorCode &errorCode);
+    int32_t compactTrie(int32_t fastILimit, UErrorCode &errorCode);
+
+    uint32_t *index = nullptr;
+    int32_t indexCapacity = 0;
+    int32_t index3NullOffset = -1;
+    uint32_t *data = nullptr;
+    int32_t dataCapacity = 0;
+    int32_t dataLength = 0;
+    int32_t dataNullOffset = -1;
+
+    uint32_t origInitialValue;
+    uint32_t initialValue;
+    uint32_t errorValue;
+    UChar32 highStart;
+    uint32_t highValue;
+#ifdef UCPTRIE_DEBUG
+public:
+    const char *name;
+#endif
+private:
+    /** Temporary array while building the final data. */
+    uint16_t *index16 = nullptr;
+    uint8_t flags[UNICODE_LIMIT >> UCPTRIE_SHIFT_3];
+};
+
+MutableCodePointTrie::MutableCodePointTrie(uint32_t iniValue, uint32_t errValue, UErrorCode &errorCode) :
+        origInitialValue(iniValue), initialValue(iniValue), errorValue(errValue),
+        highStart(0), highValue(initialValue)
+#ifdef UCPTRIE_DEBUG
+        , name("open")
+#endif
+        {
+    if (U_FAILURE(errorCode)) { return; }
+    index = (uint32_t *)uprv_malloc(BMP_I_LIMIT * 4);
+    data = (uint32_t *)uprv_malloc(INITIAL_DATA_LENGTH * 4);
+    if (index == nullptr || data == nullptr) {
+        errorCode = U_MEMORY_ALLOCATION_ERROR;
+        return;
+    }
+    indexCapacity = BMP_I_LIMIT;
+    dataCapacity = INITIAL_DATA_LENGTH;
+}
+
+MutableCodePointTrie::MutableCodePointTrie(const MutableCodePointTrie &other, UErrorCode &errorCode) :
+        index3NullOffset(other.index3NullOffset),
+        dataNullOffset(other.dataNullOffset),
+        origInitialValue(other.origInitialValue), initialValue(other.initialValue),
+        errorValue(other.errorValue),
+        highStart(other.highStart), highValue(other.highValue)
+#ifdef UCPTRIE_DEBUG
+        , name("mutable clone")
+#endif
+        {
+    if (U_FAILURE(errorCode)) { return; }
+    int32_t iCapacity = highStart <= BMP_LIMIT ? BMP_I_LIMIT : I_LIMIT;
+    index = (uint32_t *)uprv_malloc(iCapacity * 4);
+    data = (uint32_t *)uprv_malloc(other.dataCapacity * 4);
+    if (index == nullptr || data == nullptr) {
+        errorCode = U_MEMORY_ALLOCATION_ERROR;
+        return;
+    }
+    indexCapacity = iCapacity;
+    dataCapacity = other.dataCapacity;
+
+    int32_t iLimit = highStart >> UCPTRIE_SHIFT_3;
+    uprv_memcpy(flags, other.flags, iLimit);
+    uprv_memcpy(index, other.index, iLimit * 4);
+    uprv_memcpy(data, other.data, (size_t)other.dataLength * 4);
+    dataLength = other.dataLength;
+    U_ASSERT(other.index16 == nullptr);
+}
+
+MutableCodePointTrie::~MutableCodePointTrie() {
+    uprv_free(index);
+    uprv_free(data);
+    uprv_free(index16);
+}
+
+MutableCodePointTrie *MutableCodePointTrie::fromUCPMap(const UCPMap *map, UErrorCode &errorCode) {
+    // Use the highValue as the initialValue to reduce the highStart.
+    uint32_t errorValue = ucpmap_get(map, -1);
+    uint32_t initialValue = ucpmap_get(map, 0x10ffff);
+    LocalPointer<MutableCodePointTrie> mutableTrie(
+        new MutableCodePointTrie(initialValue, errorValue, errorCode),
+        errorCode);
+    if (U_FAILURE(errorCode)) {
+        return nullptr;
+    }
+    UChar32 start = 0, end;
+    uint32_t value;
+    while ((end = ucpmap_getRange(map, start, UCPMAP_RANGE_NORMAL, 0,
+                                  nullptr, nullptr, &value)) >= 0) {
+        if (value != initialValue) {
+            if (start == end) {
+                mutableTrie->set(start, value, errorCode);
+            } else {
+                mutableTrie->setRange(start, end, value, errorCode);
+            }
+        }
+        start = end + 1;
+    }
+    if (U_SUCCESS(errorCode)) {
+        return mutableTrie.orphan();
+    } else {
+        return nullptr;
+    }
+}
+
+MutableCodePointTrie *MutableCodePointTrie::fromUCPTrie(const UCPTrie *trie, UErrorCode &errorCode) {
+    // Use the highValue as the initialValue to reduce the highStart.
+    uint32_t errorValue;
+    uint32_t initialValue;
+    switch (trie->valueWidth) {
+    case UCPTRIE_VALUE_BITS_16:
+        errorValue = trie->data.ptr16[trie->dataLength - UCPTRIE_ERROR_VALUE_NEG_DATA_OFFSET];
+        initialValue = trie->data.ptr16[trie->dataLength - UCPTRIE_HIGH_VALUE_NEG_DATA_OFFSET];
+        break;
+    case UCPTRIE_VALUE_BITS_32:
+        errorValue = trie->data.ptr32[trie->dataLength - UCPTRIE_ERROR_VALUE_NEG_DATA_OFFSET];
+        initialValue = trie->data.ptr32[trie->dataLength - UCPTRIE_HIGH_VALUE_NEG_DATA_OFFSET];
+        break;
+    case UCPTRIE_VALUE_BITS_8:
+        errorValue = trie->data.ptr8[trie->dataLength - UCPTRIE_ERROR_VALUE_NEG_DATA_OFFSET];
+        initialValue = trie->data.ptr8[trie->dataLength - UCPTRIE_HIGH_VALUE_NEG_DATA_OFFSET];
+        break;
+    default:
+        // Unreachable if the trie is properly initialized.
+        errorCode = U_ILLEGAL_ARGUMENT_ERROR;
+        return nullptr;
+    }
+    LocalPointer<MutableCodePointTrie> mutableTrie(
+        new MutableCodePointTrie(initialValue, errorValue, errorCode),
+        errorCode);
+    if (U_FAILURE(errorCode)) {
+        return nullptr;
+    }
+    UChar32 start = 0, end;
+    uint32_t value;
+    while ((end = ucptrie_getRange(trie, start, UCPMAP_RANGE_NORMAL, 0,
+                                   nullptr, nullptr, &value)) >= 0) {
+        if (value != initialValue) {
+            if (start == end) {
+                mutableTrie->set(start, value, errorCode);
+            } else {
+                mutableTrie->setRange(start, end, value, errorCode);
+            }
+        }
+        start = end + 1;
+    }
+    if (U_SUCCESS(errorCode)) {
+        return mutableTrie.orphan();
+    } else {
+        return nullptr;
+    }
+}
+
+void MutableCodePointTrie::clear() {
+    index3NullOffset = dataNullOffset = -1;
+    dataLength = 0;
+    highValue = initialValue = origInitialValue;
+    highStart = 0;
+    uprv_free(index16);
+    index16 = nullptr;
+}
+
+uint32_t MutableCodePointTrie::get(UChar32 c) const {
+    if ((uint32_t)c > MAX_UNICODE) {
+        return errorValue;
+    }
+    if (c >= highStart) {
+        return highValue;
+    }
+    int32_t i = c >> UCPTRIE_SHIFT_3;
+    if (flags[i] == ALL_SAME) {
+        return index[i];
+    } else {
+        return data[index[i] + (c & UCPTRIE_SMALL_DATA_MASK)];
+    }
+}
+
+inline uint32_t maybeFilterValue(uint32_t value, uint32_t initialValue, uint32_t nullValue,
+                                 UCPMapValueFilter *filter, const void *context) {
+    if (value == initialValue) {
+        value = nullValue;
+    } else if (filter != nullptr) {
+        value = filter(context, value);
+    }
+    return value;
+}
+
+UChar32 MutableCodePointTrie::getRange(
+        UChar32 start, UCPMapValueFilter *filter, const void *context,
+        uint32_t *pValue) const {
+    if ((uint32_t)start > MAX_UNICODE) {
+        return U_SENTINEL;
+    }
+    if (start >= highStart) {
+        if (pValue != nullptr) {
+            uint32_t value = highValue;
+            if (filter != nullptr) { value = filter(context, value); }
+            *pValue = value;
+        }
+        return MAX_UNICODE;
+    }
+    uint32_t nullValue = initialValue;
+    if (filter != nullptr) { nullValue = filter(context, nullValue); }
+    UChar32 c = start;
+    uint32_t value;
+    bool haveValue = false;
+    int32_t i = c >> UCPTRIE_SHIFT_3;
+    do {
+        if (flags[i] == ALL_SAME) {
+            uint32_t value2 = maybeFilterValue(index[i], initialValue, nullValue,
+                                               filter, context);
+            if (haveValue) {
+                if (value2 != value) {
+                    return c - 1;
+                }
+            } else {
+                value = value2;
+                if (pValue != nullptr) { *pValue = value; }
+                haveValue = true;
+            }
+            c = (c + UCPTRIE_SMALL_DATA_BLOCK_LENGTH) & ~UCPTRIE_SMALL_DATA_MASK;
+        } else /* MIXED */ {
+            int32_t di = index[i] + (c & UCPTRIE_SMALL_DATA_MASK);
+            uint32_t value2 = maybeFilterValue(data[di], initialValue, nullValue,
+                                               filter, context);
+            if (haveValue) {
+                if (value2 != value) {
+                    return c - 1;
+                }
+            } else {
+                value = value2;
+                if (pValue != nullptr) { *pValue = value; }
+                haveValue = true;
+            }
+            while ((++c & UCPTRIE_SMALL_DATA_MASK) != 0) {
+                if (maybeFilterValue(data[++di], initialValue, nullValue,
+                                     filter, context) != value) {
+                    return c - 1;
+                }
+            }
+        }
+        ++i;
+    } while (c < highStart);
+    U_ASSERT(haveValue);
+    if (maybeFilterValue(highValue, initialValue, nullValue,
+                         filter, context) != value) {
+        return c - 1;
+    } else {
+        return MAX_UNICODE;
+    }
+}
+
+void
+writeBlock(uint32_t *block, uint32_t value) {
+    uint32_t *limit = block + UCPTRIE_SMALL_DATA_BLOCK_LENGTH;
+    while (block < limit) {
+        *block++ = value;
+    }
+}
+
+bool MutableCodePointTrie::ensureHighStart(UChar32 c) {
+    if (c >= highStart) {
+        // Round up to a UCPTRIE_CP_PER_INDEX_2_ENTRY boundary to simplify compaction.
+        c = (c + UCPTRIE_CP_PER_INDEX_2_ENTRY) & ~(UCPTRIE_CP_PER_INDEX_2_ENTRY - 1);
+        int32_t i = highStart >> UCPTRIE_SHIFT_3;
+        int32_t iLimit = c >> UCPTRIE_SHIFT_3;
+        if (iLimit > indexCapacity) {
+            uint32_t *newIndex = (uint32_t *)uprv_malloc(I_LIMIT * 4);
+            if (newIndex == nullptr) { return false; }
+            uprv_memcpy(newIndex, index, i * 4);
+            uprv_free(index);
+            index = newIndex;
+            indexCapacity = I_LIMIT;
+        }
+        do {
+            flags[i] = ALL_SAME;
+            index[i] = initialValue;
+        } while(++i < iLimit);
+        highStart = c;
+    }
+    return true;
+}
+
+int32_t MutableCodePointTrie::allocDataBlock(int32_t blockLength) {
+    int32_t newBlock = dataLength;
+    int32_t newTop = newBlock + blockLength;
+    if (newTop > dataCapacity) {
+        int32_t capacity;
+        if (dataCapacity < MEDIUM_DATA_LENGTH) {
+            capacity = MEDIUM_DATA_LENGTH;
+        } else if (dataCapacity < MAX_DATA_LENGTH) {
+            capacity = MAX_DATA_LENGTH;
+        } else {
+            // Should never occur.
+            // Either MAX_DATA_LENGTH is incorrect,
+            // or the code writes more values than should be possible.
+            return -1;
+        }
+        uint32_t *newData = (uint32_t *)uprv_malloc(capacity * 4);
+        if (newData == nullptr) {
+            return -1;
+        }
+        uprv_memcpy(newData, data, (size_t)dataLength * 4);
+        uprv_free(data);
+        data = newData;
+        dataCapacity = capacity;
+    }
+    dataLength = newTop;
+    return newBlock;
+}
+
+/**
+ * No error checking for illegal arguments.
+ *
+ * @return -1 if no new data block available (out of memory in data array)
+ * @internal
+ */
+int32_t MutableCodePointTrie::getDataBlock(int32_t i) {
+    if (flags[i] == MIXED) {
+        return index[i];
+    }
+    if (i < BMP_I_LIMIT) {
+        int32_t newBlock = allocDataBlock(UCPTRIE_FAST_DATA_BLOCK_LENGTH);
+        if (newBlock < 0) { return newBlock; }
+        int32_t iStart = i & ~(SMALL_DATA_BLOCKS_PER_BMP_BLOCK -1);
+        int32_t iLimit = iStart + SMALL_DATA_BLOCKS_PER_BMP_BLOCK;
+        do {
+            U_ASSERT(flags[iStart] == ALL_SAME);
+            writeBlock(data + newBlock, index[iStart]);
+            flags[iStart] = MIXED;
+            index[iStart++] = newBlock;
+            newBlock += UCPTRIE_SMALL_DATA_BLOCK_LENGTH;
+        } while (iStart < iLimit);
+        return index[i];
+    } else {
+        int32_t newBlock = allocDataBlock(UCPTRIE_SMALL_DATA_BLOCK_LENGTH);
+        if (newBlock < 0) { return newBlock; }
+        writeBlock(data + newBlock, index[i]);
+        flags[i] = MIXED;
+        index[i] = newBlock;
+        return newBlock;
+    }
+}
+
+void MutableCodePointTrie::set(UChar32 c, uint32_t value, UErrorCode &errorCode) {
+    if (U_FAILURE(errorCode)) {
+        return;
+    }
+    if ((uint32_t)c > MAX_UNICODE) {
+        errorCode = U_ILLEGAL_ARGUMENT_ERROR;
+        return;
+    }
+
+    int32_t block;
+    if (!ensureHighStart(c) || (block = getDataBlock(c >> UCPTRIE_SHIFT_3)) < 0) {
+        errorCode = U_MEMORY_ALLOCATION_ERROR;
+        return;
+    }
+
+    data[block + (c & UCPTRIE_SMALL_DATA_MASK)] = value;
+}
+
+void
+fillBlock(uint32_t *block, UChar32 start, UChar32 limit, uint32_t value) {
+    uint32_t *pLimit = block + limit;
+    block += start;
+    while (block < pLimit) {
+        *block++ = value;
+    }
+}
+
+void MutableCodePointTrie::setRange(UChar32 start, UChar32 end, uint32_t value, UErrorCode &errorCode) {
+    if (U_FAILURE(errorCode)) {
+        return;
+    }
+    if ((uint32_t)start > MAX_UNICODE || (uint32_t)end > MAX_UNICODE || start > end) {
+        errorCode = U_ILLEGAL_ARGUMENT_ERROR;
+        return;
+    }
+    if (!ensureHighStart(end)) {
+        errorCode = U_MEMORY_ALLOCATION_ERROR;
+        return;
+    }
+
+    UChar32 limit = end + 1;
+    if (start & UCPTRIE_SMALL_DATA_MASK) {
+        // Set partial block at [start..following block boundary[.
+        int32_t block = getDataBlock(start >> UCPTRIE_SHIFT_3);
+        if (block < 0) {
+            errorCode = U_MEMORY_ALLOCATION_ERROR;
+            return;
+        }
+
+        UChar32 nextStart = (start + UCPTRIE_SMALL_DATA_MASK) & ~UCPTRIE_SMALL_DATA_MASK;
+        if (nextStart <= limit) {
+            fillBlock(data + block, start & UCPTRIE_SMALL_DATA_MASK, UCPTRIE_SMALL_DATA_BLOCK_LENGTH,
+                      value);
+            start = nextStart;
+        } else {
+            fillBlock(data + block, start & UCPTRIE_SMALL_DATA_MASK, limit & UCPTRIE_SMALL_DATA_MASK,
+                      value);
+            return;
+        }
+    }
+
+    // Number of positions in the last, partial block.
+    int32_t rest = limit & UCPTRIE_SMALL_DATA_MASK;
+
+    // Round down limit to a block boundary.
+    limit &= ~UCPTRIE_SMALL_DATA_MASK;
+
+    // Iterate over all-value blocks.
+    while (start < limit) {
+        int32_t i = start >> UCPTRIE_SHIFT_3;
+        if (flags[i] == ALL_SAME) {
+            index[i] = value;
+        } else /* MIXED */ {
+            fillBlock(data + index[i], 0, UCPTRIE_SMALL_DATA_BLOCK_LENGTH, value);
+        }
+        start += UCPTRIE_SMALL_DATA_BLOCK_LENGTH;
+    }
+
+    if (rest > 0) {
+        // Set partial block at [last block boundary..limit[.
+        int32_t block = getDataBlock(start >> UCPTRIE_SHIFT_3);
+        if (block < 0) {
+            errorCode = U_MEMORY_ALLOCATION_ERROR;
+            return;
+        }
+
+        fillBlock(data + block, 0, rest, value);
+    }
+}
+
+/* compaction --------------------------------------------------------------- */
+
+void MutableCodePointTrie::maskValues(uint32_t mask) {
+    initialValue &= mask;
+    errorValue &= mask;
+    highValue &= mask;
+    int32_t iLimit = highStart >> UCPTRIE_SHIFT_3;
+    for (int32_t i = 0; i < iLimit; ++i) {
+        if (flags[i] == ALL_SAME) {
+            index[i] &= mask;
+        }
+    }
+    for (int32_t i = 0; i < dataLength; ++i) {
+        data[i] &= mask;
+    }
+}
+
+inline bool
+equalBlocks(const uint32_t *s, const uint32_t *t, int32_t length) {
+    while (length > 0 && *s == *t) {
+        ++s;
+        ++t;
+        --length;
+    }
+    return length == 0;
+}
+
+inline bool
+equalBlocks(const uint16_t *s, const uint32_t *t, int32_t length) {
+    while (length > 0 && *s == *t) {
+        ++s;
+        ++t;
+        --length;
+    }
+    return length == 0;
+}
+
+inline bool
+equalBlocks(const uint16_t *s, const uint16_t *t, int32_t length) {
+    while (length > 0 && *s == *t) {
+        ++s;
+        ++t;
+        --length;
+    }
+    return length == 0;
+}
+
+bool allValuesSameAs(const uint32_t *p, int32_t length, uint32_t value) {
+    const uint32_t *pLimit = p + length;
+    while (p < pLimit && *p == value) { ++p; }
+    return p == pLimit;
+}
+
+/** Search for an identical block. */
+int32_t findSameBlock(const uint32_t *p, int32_t pStart, int32_t length,
+                      const uint32_t *q, int32_t qStart, int32_t blockLength) {
+    // Ensure that we do not even partially get past length.
+    length -= blockLength;
+
+    q += qStart;
+    while (pStart <= length) {
+        if (equalBlocks(p + pStart, q, blockLength)) {
+            return pStart;
+        }
+        ++pStart;
+    }
+    return -1;
+}
+
+int32_t findSameBlock(const uint16_t *p, int32_t pStart, int32_t length,
+                      const uint32_t *q, int32_t qStart, int32_t blockLength) {
+    // Ensure that we do not even partially get past length.
+    length -= blockLength;
+
+    q += qStart;
+    while (pStart <= length) {
+        if (equalBlocks(p + pStart, q, blockLength)) {
+            return pStart;
+        }
+        ++pStart;
+    }
+    return -1;
+}
+
+int32_t findSameBlock(const uint16_t *p, int32_t pStart, int32_t length,
+                      const uint16_t *q, int32_t qStart, int32_t blockLength) {
+    // Ensure that we do not even partially get past length.
+    length -= blockLength;
+
+    q += qStart;
+    while (pStart <= length) {
+        if (equalBlocks(p + pStart, q, blockLength)) {
+            return pStart;
+        }
+        ++pStart;
+    }
+    return -1;
+}
+
+int32_t findAllSameBlock(const uint32_t *p, int32_t start, int32_t limit,
+                         uint32_t value, int32_t blockLength) {
+    // Ensure that we do not even partially get past limit.
+    limit -= blockLength;
+
+    for (int32_t block = start; block <= limit; ++block) {
+        if (p[block] == value) {
+            for (int32_t i = 1;; ++i) {
+                if (i == blockLength) {
+                    return block;
+                }
+                if (p[block + i] != value) {
+                    block += i;
+                    break;
+                }
+            }
+        }
+    }
+    return -1;
+}
+
+/**
+ * Look for maximum overlap of the beginning of the other block
+ * with the previous, adjacent block.
+ */
+int32_t getOverlap(const uint32_t *p, int32_t length,
+                   const uint32_t *q, int32_t qStart, int32_t blockLength) {
+    int32_t overlap = blockLength - 1;
+    U_ASSERT(overlap <= length);
+    q += qStart;
+    while (overlap > 0 && !equalBlocks(p + (length - overlap), q, overlap)) {
+        --overlap;
+    }
+    return overlap;
+}
+
+int32_t getOverlap(const uint16_t *p, int32_t length,
+                   const uint32_t *q, int32_t qStart, int32_t blockLength) {
+    int32_t overlap = blockLength - 1;
+    U_ASSERT(overlap <= length);
+    q += qStart;
+    while (overlap > 0 && !equalBlocks(p + (length - overlap), q, overlap)) {
+        --overlap;
+    }
+    return overlap;
+}
+
+int32_t getOverlap(const uint16_t *p, int32_t length,
+                   const uint16_t *q, int32_t qStart, int32_t blockLength) {
+    int32_t overlap = blockLength - 1;
+    U_ASSERT(overlap <= length);
+    q += qStart;
+    while (overlap > 0 && !equalBlocks(p + (length - overlap), q, overlap)) {
+        --overlap;
+    }
+    return overlap;
+}
+
+int32_t getAllSameOverlap(const uint32_t *p, int32_t length, uint32_t value,
+                          int32_t blockLength) {
+    int32_t min = length - (blockLength - 1);
+    int32_t i = length;
+    while (min < i && p[i - 1] == value) { --i; }
+    return length - i;
+}
+
+bool isStartOfSomeFastBlock(uint32_t dataOffset, const uint32_t index[], int32_t fastILimit) {
+    for (int32_t i = 0; i < fastILimit; i += SMALL_DATA_BLOCKS_PER_BMP_BLOCK) {
+        if (index[i] == dataOffset) {
+            return true;
+        }
+    }
+    return false;
+}
+
+/**
+ * Finds the start of the last range in the trie by enumerating backward.
+ * Indexes for code points higher than this will be omitted.
+ */
+UChar32 MutableCodePointTrie::findHighStart() const {
+    int32_t i = highStart >> UCPTRIE_SHIFT_3;
+    while (i > 0) {
+        bool match;
+        if (flags[--i] == ALL_SAME) {
+            match = index[i] == highValue;
+        } else /* MIXED */ {
+            const uint32_t *p = data + index[i];
+            for (int32_t j = 0;; ++j) {
+                if (j == UCPTRIE_SMALL_DATA_BLOCK_LENGTH) {
+                    match = true;
+                    break;
+                }
+                if (p[j] != highValue) {
+                    match = false;
+                    break;
+                }
+            }
+        }
+        if (!match) {
+            return (i + 1) << UCPTRIE_SHIFT_3;
+        }
+    }
+    return 0;
+}
+
+class AllSameBlocks {
+public:
+    static constexpr int32_t NEW_UNIQUE = -1;
+    static constexpr int32_t OVERFLOW = -2;
+
+    AllSameBlocks() : length(0), mostRecent(-1) {}
+
+    int32_t findOrAdd(int32_t index, int32_t count, uint32_t value) {
+        if (mostRecent >= 0 && values[mostRecent] == value) {
+            refCounts[mostRecent] += count;
+            return indexes[mostRecent];
+        }
+        for (int32_t i = 0; i < length; ++i) {
+            if (values[i] == value) {
+                mostRecent = i;
+                refCounts[i] += count;
+                return indexes[i];
+            }
+        }
+        if (length == CAPACITY) {
+            return OVERFLOW;
+        }
+        mostRecent = length;
+        indexes[length] = index;
+        values[length] = value;
+        refCounts[length++] = count;
+        return NEW_UNIQUE;
+    }
+
+    /** Replaces the block which has the lowest reference count. */
+    void add(int32_t index, int32_t count, uint32_t value) {
+        U_ASSERT(length == CAPACITY);
+        int32_t least = -1;
+        int32_t leastCount = I_LIMIT;
+        for (int32_t i = 0; i < length; ++i) {
+            U_ASSERT(values[i] != value);
+            if (refCounts[i] < leastCount) {
+                least = i;
+                leastCount = refCounts[i];
+            }
+        }
+        U_ASSERT(least >= 0);
+        mostRecent = least;
+        indexes[least] = index;
+        values[least] = value;
+        refCounts[least] = count;
+    }
+
+    int32_t findMostUsed() const {
+        if (length == 0) { return -1; }
+        int32_t max = -1;
+        int32_t maxCount = 0;
+        for (int32_t i = 0; i < length; ++i) {
+            if (refCounts[i] > maxCount) {
+                max = i;
+                maxCount = refCounts[i];
+            }
+        }
+        return indexes[max];
+    }
+
+private:
+    static constexpr int32_t CAPACITY = 32;
+
+    int32_t length;
+    int32_t mostRecent;
+
+    int32_t indexes[CAPACITY];
+    uint32_t values[CAPACITY];
+    int32_t refCounts[CAPACITY];
+};
+
+int32_t MutableCodePointTrie::compactWholeDataBlocks(int32_t fastILimit, AllSameBlocks &allSameBlocks) {
+#ifdef UCPTRIE_DEBUG
+    bool overflow = false;
+#endif
+
+    // ASCII data will be stored as a linear table, even if the following code
+    // does not yet count it that way.
+    int32_t newDataCapacity = ASCII_LIMIT;
+    // Add room for a small data null block in case it would match the start of
+    // a fast data block where dataNullOffset must not be set in that case.
+    newDataCapacity += UCPTRIE_SMALL_DATA_BLOCK_LENGTH;
+    // Add room for special values (errorValue, highValue) and padding.
+    newDataCapacity += 4;
+    int32_t iLimit = highStart >> UCPTRIE_SHIFT_3;
+    int32_t blockLength = UCPTRIE_FAST_DATA_BLOCK_LENGTH;
+    int32_t inc = SMALL_DATA_BLOCKS_PER_BMP_BLOCK;
+    for (int32_t i = 0; i < iLimit; i += inc) {
+        if (i == fastILimit) {
+            blockLength = UCPTRIE_SMALL_DATA_BLOCK_LENGTH;
+            inc = 1;
+        }
+        uint32_t value = index[i];
+        if (flags[i] == MIXED) {
+            // Really mixed?
+            const uint32_t *p = data + value;
+            value = *p;
+            if (allValuesSameAs(p + 1, blockLength - 1, value)) {
+                flags[i] = ALL_SAME;
+                index[i] = value;
+                // Fall through to ALL_SAME handling.
+            } else {
+                newDataCapacity += blockLength;
+                continue;
+            }
+        } else {
+            U_ASSERT(flags[i] == ALL_SAME);
+            if (inc > 1) {
+                // Do all of the fast-range data block's ALL_SAME parts have the same value?
+                bool allSame = true;
+                int32_t next_i = i + inc;
+                for (int32_t j = i + 1; j < next_i; ++j) {
+                    U_ASSERT(flags[j] == ALL_SAME);
+                    if (index[j] != value) {
+                        allSame = false;
+                        break;
+                    }
+                }
+                if (!allSame) {
+                    // Turn it into a MIXED block.
+                    if (getDataBlock(i) < 0) {
+                        return -1;
+                    }
+                    newDataCapacity += blockLength;
+                    continue;
+                }
+            }
+        }
+        // Is there another ALL_SAME block with the same value?
+        int32_t other = allSameBlocks.findOrAdd(i, inc, value);
+        if (other == AllSameBlocks::OVERFLOW) {
+            // The fixed-size array overflowed. Slow check for a duplicate block.
+#ifdef UCPTRIE_DEBUG
+            if (!overflow) {
+                puts("UCPTrie AllSameBlocks overflow");
+                overflow = true;
+            }
+#endif
+            int32_t jInc = SMALL_DATA_BLOCKS_PER_BMP_BLOCK;
+            for (int32_t j = 0;; j += jInc) {
+                if (j == i) {
+                    allSameBlocks.add(i, inc, value);
+                    break;
+                }
+                if (j == fastILimit) {
+                    jInc = 1;
+                }
+                if (flags[j] == ALL_SAME && index[j] == value) {
+                    allSameBlocks.add(j, jInc + inc, value);
+                    other = j;
+                    break;
+                    // We could keep counting blocks with the same value
+                    // before we add the first one, which may improve compaction in rare cases,
+                    // but it would make it slower.
+                }
+            }
+        }
+        if (other >= 0) {
+            flags[i] = SAME_AS;
+            index[i] = other;
+        } else {
+            // New unique same-value block.
+            newDataCapacity += blockLength;
+        }
+    }
+    return newDataCapacity;
+}
+
+#ifdef UCPTRIE_DEBUG
+#   define DEBUG_DO(expr) expr
+#else
+#   define DEBUG_DO(expr)
+#endif
+
+#ifdef UCPTRIE_DEBUG
+// Braille symbols: U+28xx = UTF-8 E2 A0 80..E2 A3 BF
+int32_t appendValue(char s[], int32_t length, uint32_t value) {
+    value ^= value >> 16;
+    value ^= value >> 8;
+    s[length] = 0xE2;
+    s[length + 1] = (char)(0xA0 + ((value >> 6) & 3));
+    s[length + 2] = (char)(0x80 + (value & 0x3F));
+    return length + 3;
+}
+
+void printBlock(const uint32_t *block, int32_t blockLength, uint32_t value,
+                UChar32 start, int32_t overlap, uint32_t initialValue) {
+    char s[UCPTRIE_FAST_DATA_BLOCK_LENGTH * 3 + 3];
+    int32_t length = 0;
+    int32_t i;
+    for (i = 0; i < overlap; ++i) {
+        length = appendValue(s, length, 0);  // Braille blank
+    }
+    s[length++] = '|';
+    for (; i < blockLength; ++i) {
+        if (block != nullptr) {
+            value = block[i];
+        }
+        if (value == initialValue) {
+            value = 0x40;  // Braille lower left dot
+        }
+        length = appendValue(s, length, value);
+    }
+    s[length] = 0;
+    start += overlap;
+    if (start <= 0xffff) {
+        printf("    %04lX  %s|\n", (long)start, s);
+    } else if (start <= 0xfffff) {
+        printf("   %5lX  %s|\n", (long)start, s);
+    } else {
+        printf("  %6lX  %s|\n", (long)start, s);
+    }
+}
+#endif
+
+/**
+ * Compacts a build-time trie.
+ *
+ * The compaction
+ * - removes blocks that are identical with earlier ones
+ * - overlaps each new non-duplicate block as much as possible with the previously-written one
+ * - works with fast-range data blocks whose length is a multiple of that of
+ *   higher-code-point data blocks
+ *
+ * It does not try to find an optimal order of writing, deduplicating, and overlapping blocks.
+ */
+int32_t MutableCodePointTrie::compactData(int32_t fastILimit,
+                                          uint32_t *newData, int32_t dataNullIndex) {
+#ifdef UCPTRIE_DEBUG
+    int32_t countSame=0, sumOverlaps=0;
+    bool printData = dataLength == 29088 /* line.brk */ ||
+        // dataLength == 30048 /* CanonIterData */ ||
+        dataLength == 50400 /* zh.txt~stroke */;
+#endif
+
+    // The linear ASCII data has been copied into newData already.
+    int32_t newDataLength = 0;
+    for (int32_t i = 0; newDataLength < ASCII_LIMIT;
+            newDataLength += UCPTRIE_FAST_DATA_BLOCK_LENGTH, i += SMALL_DATA_BLOCKS_PER_BMP_BLOCK) {
+        index[i] = newDataLength;
+#ifdef UCPTRIE_DEBUG
+        if (printData) {
+            printBlock(newData + newDataLength, UCPTRIE_FAST_DATA_BLOCK_LENGTH, 0, newDataLength, 0, initialValue);
+        }
+#endif
+    }
+
+    int32_t iLimit = highStart >> UCPTRIE_SHIFT_3;
+    int32_t blockLength = UCPTRIE_FAST_DATA_BLOCK_LENGTH;
+    int32_t inc = SMALL_DATA_BLOCKS_PER_BMP_BLOCK;
+    int32_t fastLength = 0;
+    for (int32_t i = ASCII_I_LIMIT; i < iLimit; i += inc) {
+        if (i == fastILimit) {
+            blockLength = UCPTRIE_SMALL_DATA_BLOCK_LENGTH;
+            inc = 1;
+            fastLength = newDataLength;
+        }
+        if (flags[i] == ALL_SAME) {
+            uint32_t value = index[i];
+            int32_t n;
+            // Find an earlier part of the data array of length blockLength
+            // that is filled with this value.
+            // If we find a match, and the current block is the data null block,
+            // and it is not a fast block but matches the start of a fast block,
+            // then we need to continue looking.
+            // This is because this small block is shorter than the fast block,
+            // and not all of the rest of the fast block is filled with this value.
+            // Otherwise trie.getRange() would detect that the fast block starts at
+            // dataNullOffset and assume incorrectly that it is filled with the null value.
+            for (int32_t start = 0;
+                    (n = findAllSameBlock(newData, start, newDataLength,
+                                value, blockLength)) >= 0 &&
+                            i == dataNullIndex && i >= fastILimit && n < fastLength &&
+                            isStartOfSomeFastBlock(n, index, fastILimit);
+                    start = n + 1) {}
+            if (n >= 0) {
+                DEBUG_DO(++countSame);
+                index[i] = n;
+            } else {
+                n = getAllSameOverlap(newData, newDataLength, value, blockLength);
+                DEBUG_DO(sumOverlaps += n);
+#ifdef UCPTRIE_DEBUG
+                if (printData) {
+                    printBlock(nullptr, blockLength, value, i << UCPTRIE_SHIFT_3, n, initialValue);
+                }
+#endif
+                index[i] = newDataLength - n;
+                while (n < blockLength) {
+                    newData[newDataLength++] = value;
+                    ++n;
+                }
+            }
+        } else if (flags[i] == MIXED) {
+            const uint32_t *block = data + index[i];
+            int32_t n = findSameBlock(newData, 0, newDataLength, block, 0, blockLength);
+            if (n >= 0) {
+                DEBUG_DO(++countSame);
+                index[i] = n;
+            } else {
+                n = getOverlap(newData, newDataLength, block, 0, blockLength);
+                DEBUG_DO(sumOverlaps += n);
+#ifdef UCPTRIE_DEBUG
+                if (printData) {
+                    printBlock(block, blockLength, 0, i << UCPTRIE_SHIFT_3, n, initialValue);
+                }
+#endif
+                index[i] = newDataLength - n;
+                while (n < blockLength) {
+                    newData[newDataLength++] = block[n++];
+                }
+            }
+        } else /* SAME_AS */ {
+            uint32_t j = index[i];
+            index[i] = index[j];
+        }
+    }
+
+#ifdef UCPTRIE_DEBUG
+    /* we saved some space */
+    printf("compacting UCPTrie: count of 32-bit data words %lu->%lu  countSame=%ld  sumOverlaps=%ld\n",
+            (long)dataLength, (long)newDataLength, (long)countSame, (long)sumOverlaps);
+#endif
+    return newDataLength;
+}
+
+int32_t MutableCodePointTrie::compactIndex(int32_t fastILimit, UErrorCode &errorCode) {
+    int32_t fastIndexLength = fastILimit >> (UCPTRIE_FAST_SHIFT - UCPTRIE_SHIFT_3);
+    if ((highStart >> UCPTRIE_FAST_SHIFT) <= fastIndexLength) {
+        // Only the linear fast index, no multi-stage index tables.
+        index3NullOffset = UCPTRIE_NO_INDEX3_NULL_OFFSET;
+        return fastIndexLength;
+    }
+
+    // Condense the fast index table.
+    // Also, does it contain an index-3 block with all dataNullOffset?
+    uint16_t fastIndex[UCPTRIE_BMP_INDEX_LENGTH];  // fastIndexLength
+    int32_t i3FirstNull = -1;
+    for (int32_t i = 0, j = 0; i < fastILimit; ++j) {
+        uint32_t i3 = index[i];
+        fastIndex[j] = (uint16_t)i3;
+        if (i3 == (uint32_t)dataNullOffset) {
+            if (i3FirstNull < 0) {
+                i3FirstNull = j;
+            } else if (index3NullOffset < 0 &&
+                    (j - i3FirstNull + 1) == UCPTRIE_INDEX_3_BLOCK_LENGTH) {
+                index3NullOffset = i3FirstNull;
+            }
+        } else {
+            i3FirstNull = -1;
+        }
+        // Set the index entries that compactData() skipped.
+        // Needed when the multi-stage index covers the fast index range as well.
+        int32_t iNext = i + SMALL_DATA_BLOCKS_PER_BMP_BLOCK;
+        while (++i < iNext) {
+            i3 += UCPTRIE_SMALL_DATA_BLOCK_LENGTH;
+            index[i] = i3;
+        }
+    }
+
+    // Examine index-3 blocks. For each determine one of:
+    // - same as the index-3 null block
+    // - same as a fast-index block
+    // - 16-bit indexes
+    // - 18-bit indexes
+    // We store this in the first flags entry for the index-3 block.
+    //
+    // Also determine an upper limit for the index-3 table length.
+    int32_t index3Capacity = 0;
+    i3FirstNull = index3NullOffset;
+    // If the fast index covers the whole BMP, then
+    // the multi-stage index is only for supplementary code points.
+    // Otherwise, the multi-stage index covers all of Unicode.
+    int32_t iStart = fastILimit < BMP_I_LIMIT ? 0 : BMP_I_LIMIT;
+    int32_t iLimit = highStart >> UCPTRIE_SHIFT_3;
+    for (int32_t i = iStart; i < iLimit;) {
+        int32_t j = i;
+        int32_t jLimit = i + UCPTRIE_INDEX_3_BLOCK_LENGTH;
+        uint32_t oredI3 = 0;
+        bool isNull = true;
+        do {
+            uint32_t i3 = index[j];
+            oredI3 |= i3;
+            if (i3 != (uint32_t)dataNullOffset) {
+                isNull = false;
+            }
+        } while (++j < jLimit);
+        if (isNull) {
+            flags[i] = I3_NULL;
+            if (i3FirstNull < 0) {
+                if (oredI3 <= 0xffff) {
+                    index3Capacity += UCPTRIE_INDEX_3_BLOCK_LENGTH;
+                } else {
+                    index3Capacity += INDEX_3_18BIT_BLOCK_LENGTH;
+                }
+                i3FirstNull = 0;
+            }
+        } else {
+            if (oredI3 <= 0xffff) {
+                int32_t n = findSameBlock(fastIndex, 0, fastIndexLength,
+                                          index, i, UCPTRIE_INDEX_3_BLOCK_LENGTH);
+                if (n >= 0) {
+                    flags[i] = I3_BMP;
+                    index[i] = n;
+                } else {
+                    flags[i] = I3_16;
+                    index3Capacity += UCPTRIE_INDEX_3_BLOCK_LENGTH;
+                }
+            } else {
+                flags[i] = I3_18;
+                index3Capacity += INDEX_3_18BIT_BLOCK_LENGTH;
+            }
+        }
+        i = j;
+    }
+
+    int32_t index2Capacity = (iLimit - iStart) >> UCPTRIE_SHIFT_2_3;
+
+    // Length of the index-1 table, rounded up.
+    int32_t index1Length = (index2Capacity + UCPTRIE_INDEX_2_MASK) >> UCPTRIE_SHIFT_1_2;
+
+    // Index table: Fast index, index-1, index-3, index-2.
+    // +1 for possible index table padding.
+    int32_t index16Capacity = fastIndexLength + index1Length + index3Capacity + index2Capacity + 1;
+    index16 = (uint16_t *)uprv_malloc(index16Capacity * 2);
+    if (index16 == nullptr) {
+        errorCode = U_MEMORY_ALLOCATION_ERROR;
+        return 0;
+    }
+    uprv_memcpy(index16, fastIndex, fastIndexLength * 2);
+
+    // Compact the index-3 table and write an uncompacted version of the index-2 table.
+    uint16_t index2[UNICODE_LIMIT >> UCPTRIE_SHIFT_2];  // index2Capacity
+    int32_t i2Length = 0;
+    i3FirstNull = index3NullOffset;
+    int32_t index3Start = fastIndexLength + index1Length;
+    int32_t indexLength = index3Start;
+    for (int32_t i = iStart; i < iLimit; i += UCPTRIE_INDEX_3_BLOCK_LENGTH) {
+        int32_t i3;
+        uint8_t f = flags[i];
+        if (f == I3_NULL && i3FirstNull < 0) {
+            // First index-3 null block. Write & overlap it like a normal block, then remember it.
+            f = dataNullOffset <= 0xffff ? I3_16 : I3_18;
+            i3FirstNull = 0;
+        }
+        if (f == I3_NULL) {
+            i3 = index3NullOffset;
+        } else if (f == I3_BMP) {
+            i3 = index[i];
+        } else if (f == I3_16) {
+            int32_t n = findSameBlock(index16, index3Start, indexLength,
+                                      index, i, UCPTRIE_INDEX_3_BLOCK_LENGTH);
+            if (n >= 0) {
+                i3 = n;
+            } else {
+                if (indexLength == index3Start) {
+                    // No overlap at the boundary between the index-1 and index-3 tables.
+                    n = 0;
+                } else {
+                    n = getOverlap(index16, indexLength,
+                                   index, i, UCPTRIE_INDEX_3_BLOCK_LENGTH);
+                }
+                i3 = indexLength - n;
+                while (n < UCPTRIE_INDEX_3_BLOCK_LENGTH) {
+                    index16[indexLength++] = index[i + n++];
+                }
+            }
+        } else {
+            U_ASSERT(f == I3_18);
+            // Encode an index-3 block that contains one or more data indexes exceeding 16 bits.
+            int32_t j = i;
+            int32_t jLimit = i + UCPTRIE_INDEX_3_BLOCK_LENGTH;
+            int32_t k = indexLength;
+            do {
+                ++k;
+                uint32_t v = index[j++];
+                uint32_t upperBits = (v & 0x30000) >> 2;
+                index16[k++] = v;
+                v = index[j++];
+                upperBits |= (v & 0x30000) >> 4;
+                index16[k++] = v;
+                v = index[j++];
+                upperBits |= (v & 0x30000) >> 6;
+                index16[k++] = v;
+                v = index[j++];
+                upperBits |= (v & 0x30000) >> 8;
+                index16[k++] = v;
+                v = index[j++];
+                upperBits |= (v & 0x30000) >> 10;
+                index16[k++] = v;
+                v = index[j++];
+                upperBits |= (v & 0x30000) >> 12;
+                index16[k++] = v;
+                v = index[j++];
+                upperBits |= (v & 0x30000) >> 14;
+                index16[k++] = v;
+                v = index[j++];
+                upperBits |= (v & 0x30000) >> 16;
+                index16[k++] = v;
+                index16[k - 9] = upperBits;
+            } while (j < jLimit);
+            int32_t n = findSameBlock(index16, index3Start, indexLength,
+                                      index16, indexLength, INDEX_3_18BIT_BLOCK_LENGTH);
+            if (n >= 0) {
+                i3 = n | 0x8000;
+            } else {
+                if (indexLength == index3Start) {
+                    // No overlap at the boundary between the index-1 and index-3 tables.
+                    n = 0;
+                } else {
+                    n = getOverlap(index16, indexLength,
+                                   index16, indexLength, INDEX_3_18BIT_BLOCK_LENGTH);
+                }
+                i3 = (indexLength - n) | 0x8000;
+                if (n > 0) {
+                    int32_t start = indexLength;
+                    while (n < INDEX_3_18BIT_BLOCK_LENGTH) {
+                        index16[indexLength++] = index16[start + n++];
+                    }
+                } else {
+                    indexLength += INDEX_3_18BIT_BLOCK_LENGTH;
+                }
+            }
+        }
+        if (index3NullOffset < 0 && i3FirstNull >= 0) {
+            index3NullOffset = i3;
+        }
+        // Set the index-2 table entry.
+        index2[i2Length++] = i3;
+    }
+    U_ASSERT(i2Length == index2Capacity);
+    U_ASSERT(indexLength <= index3Start + index3Capacity);
+
+    if (index3NullOffset < 0) {
+        index3NullOffset = UCPTRIE_NO_INDEX3_NULL_OFFSET;
+    }
+    if (indexLength >= (UCPTRIE_NO_INDEX3_NULL_OFFSET + UCPTRIE_INDEX_3_BLOCK_LENGTH)) {
+        // The index-3 offsets exceed 15 bits, or
+        // the last one cannot be distinguished from the no-null-block value.
+        errorCode = U_INDEX_OUTOFBOUNDS_ERROR;
+        return 0;
+    }
+
+    // Compact the index-2 table and write the index-1 table.
+    int32_t blockLength = UCPTRIE_INDEX_2_BLOCK_LENGTH;
+    int32_t i1 = fastIndexLength;
+    for (int32_t i = 0; i < i2Length; i += blockLength) {
+        if ((i2Length - i) < blockLength) {
+            // highStart is inside the last index-2 block. Shorten it.
+            blockLength = i2Length - i;
+        }
+        int32_t i2;
+        int32_t n = findSameBlock(index16, index3Start, indexLength,
+                                  index2, i, blockLength);
+        if (n >= 0) {
+            i2 = n;
+        } else {
+            if (indexLength == index3Start) {
+                // No overlap at the boundary between the index-1 and index-3/2 tables.
+                n = 0;
+            } else {
+                n = getOverlap(index16, indexLength, index2, i, blockLength);
+            }
+            i2 = indexLength - n;
+            while (n < blockLength) {
+                index16[indexLength++] = index2[i + n++];
+            }
+        }
+        // Set the index-1 table entry.
+        index16[i1++] = i2;
+    }
+    U_ASSERT(i1 == index3Start);
+    U_ASSERT(indexLength <= index16Capacity);
+
+#ifdef UCPTRIE_DEBUG
+    /* we saved some space */
+    printf("compacting UCPTrie: count of 16-bit index words %lu->%lu\n",
+            (long)iLimit, (long)indexLength);
+#endif
+
+    return indexLength;
+}
+
+int32_t MutableCodePointTrie::compactTrie(int32_t fastILimit, UErrorCode &errorCode) {
+    // Find the real highStart and round it up.
+    U_ASSERT((highStart & (UCPTRIE_CP_PER_INDEX_2_ENTRY - 1)) == 0);
+    highValue = get(MAX_UNICODE);
+    int32_t realHighStart = findHighStart();
+    realHighStart = (realHighStart + (UCPTRIE_CP_PER_INDEX_2_ENTRY - 1)) &
+        ~(UCPTRIE_CP_PER_INDEX_2_ENTRY - 1);
+    if (realHighStart == UNICODE_LIMIT) {
+        highValue = initialValue;
+    }
+
+#ifdef UCPTRIE_DEBUG
+    printf("UCPTrie: highStart U+%06lx  highValue 0x%lx  initialValue 0x%lx\n",
+            (long)realHighStart, (long)highValue, (long)initialValue);
+#endif
+
+    // We always store indexes and data values for the fast range.
+    // Pin highStart to the top of that range while building.
+    UChar32 fastLimit = fastILimit << UCPTRIE_SHIFT_3;
+    if (realHighStart < fastLimit) {
+        for (int32_t i = (realHighStart >> UCPTRIE_SHIFT_3); i < fastILimit; ++i) {
+            flags[i] = ALL_SAME;
+            index[i] = highValue;
+        }
+        highStart = fastLimit;
+    } else {
+        highStart = realHighStart;
+    }
+
+    uint32_t asciiData[ASCII_LIMIT];
+    for (int32_t i = 0; i < ASCII_LIMIT; ++i) {
+        asciiData[i] = get(i);
+    }
+
+    // First we look for which data blocks have the same value repeated over the whole block,
+    // deduplicate such blocks, find a good null data block (for faster enumeration),
+    // and get an upper bound for the necessary data array length.
+    AllSameBlocks allSameBlocks;
+    int32_t newDataCapacity = compactWholeDataBlocks(fastILimit, allSameBlocks);
+    if (newDataCapacity < 0) {
+        errorCode = U_MEMORY_ALLOCATION_ERROR;
+        return 0;
+    }
+    uint32_t *newData = (uint32_t *)uprv_malloc(newDataCapacity * 4);
+    if (newData == nullptr) {
+        errorCode = U_MEMORY_ALLOCATION_ERROR;
+        return 0;
+    }
+    uprv_memcpy(newData, asciiData, sizeof(asciiData));
+
+    int32_t dataNullIndex = allSameBlocks.findMostUsed();
+    int32_t newDataLength = compactData(fastILimit, newData, dataNullIndex);
+    U_ASSERT(newDataLength <= newDataCapacity);
+    uprv_free(data);
+    data = newData;
+    dataCapacity = newDataCapacity;
+    dataLength = newDataLength;
+    if (dataLength > (0x3ffff + UCPTRIE_SMALL_DATA_BLOCK_LENGTH)) {
+        // The offset of the last data block is too high to be stored in the index table.
+        errorCode = U_INDEX_OUTOFBOUNDS_ERROR;
+        return 0;
+    }
+
+    if (dataNullIndex >= 0) {
+        dataNullOffset = index[dataNullIndex];
+#ifdef UCPTRIE_DEBUG
+        if (data[dataNullOffset] != initialValue) {
+            printf("UCPTrie initialValue %lx -> more common nullValue %lx\n",
+                   (long)initialValue, (long)data[dataNullOffset]);
+        }
+#endif
+        initialValue = data[dataNullOffset];
+    } else {
+        dataNullOffset = UCPTRIE_NO_DATA_NULL_OFFSET;
+    }
+
+    int32_t indexLength = compactIndex(fastILimit, errorCode);
+    highStart = realHighStart;
+    return indexLength;
+}
+
+UCPTrie *MutableCodePointTrie::build(UCPTrieType type, UCPTrieValueWidth valueWidth, UErrorCode &errorCode) {
+    if (U_FAILURE(errorCode)) {
+        return nullptr;
+    }
+    if (type < UCPTRIE_TYPE_FAST || UCPTRIE_TYPE_SMALL < type ||
+            valueWidth < UCPTRIE_VALUE_BITS_16 || UCPTRIE_VALUE_BITS_8 < valueWidth) {
+        errorCode = U_ILLEGAL_ARGUMENT_ERROR;
+        return nullptr;
+    }
+
+    // The mutable trie always stores 32-bit values.
+    // When we build a UCPTrie for a smaller value width, we first mask off unused bits
+    // before compacting the data.
+    switch (valueWidth) {
+    case UCPTRIE_VALUE_BITS_32:
+        break;
+    case UCPTRIE_VALUE_BITS_16:
+        maskValues(0xffff);
+        break;
+    case UCPTRIE_VALUE_BITS_8:
+        maskValues(0xff);
+        break;
+    default:
+        break;
+    }
+
+    UChar32 fastLimit = type == UCPTRIE_TYPE_FAST ? BMP_LIMIT : UCPTRIE_SMALL_LIMIT;
+    int32_t indexLength = compactTrie(fastLimit >> UCPTRIE_SHIFT_3, errorCode);
+    if (U_FAILURE(errorCode)) {
+        clear();
+        return nullptr;
+    }
+
+    // Ensure data table alignment: The index length must be even for uint32_t data.
+    if (valueWidth == UCPTRIE_VALUE_BITS_32 && (indexLength & 1) != 0) {
+        index16[indexLength++] = 0xffee;  // arbitrary value
+    }
+
+    // Make the total trie structure length a multiple of 4 bytes by padding the data table,
+    // and store special values as the last two data values.
+    int32_t length = indexLength * 2;
+    if (valueWidth == UCPTRIE_VALUE_BITS_16) {
+        if (((indexLength ^ dataLength) & 1) != 0) {
+            // padding
+            data[dataLength++] = errorValue;
+        }
+        if (data[dataLength - 1] != errorValue || data[dataLength - 2] != highValue) {
+            data[dataLength++] = highValue;
+            data[dataLength++] = errorValue;
+        }
+        length += dataLength * 2;
+    } else if (valueWidth == UCPTRIE_VALUE_BITS_32) {
+        // 32-bit data words never need padding to a multiple of 4 bytes.
+        if (data[dataLength - 1] != errorValue || data[dataLength - 2] != highValue) {
+            if (data[dataLength - 1] != highValue) {
+                data[dataLength++] = highValue;
+            }
+            data[dataLength++] = errorValue;
+        }
+        length += dataLength * 4;
+    } else {
+        int32_t and3 = (length + dataLength) & 3;
+        if (and3 == 0 && data[dataLength - 1] == errorValue && data[dataLength - 2] == highValue) {
+            // all set
+        } else if(and3 == 3 && data[dataLength - 1] == highValue) {
+            data[dataLength++] = errorValue;
+        } else {
+            while (and3 != 2) {
+                data[dataLength++] = highValue;
+                and3 = (and3 + 1) & 3;
+            }
+            data[dataLength++] = highValue;
+            data[dataLength++] = errorValue;
+        }
+        length += dataLength;
+    }
+
+    // Calculate the total length of the UCPTrie as a single memory block.
+    length += sizeof(UCPTrie);
+    U_ASSERT((length & 3) == 0);
+
+    uint8_t *bytes = (uint8_t *)uprv_malloc(length);
+    if (bytes == nullptr) {
+        errorCode = U_MEMORY_ALLOCATION_ERROR;
+        clear();
+        return nullptr;
+    }
+    UCPTrie *trie = reinterpret_cast<UCPTrie *>(bytes);
+    uprv_memset(trie, 0, sizeof(UCPTrie));
+    trie->indexLength = indexLength;
+    trie->dataLength = dataLength;
+
+    trie->highStart = highStart;
+    // Round up shifted12HighStart to a multiple of 0x1000 for easy testing from UTF-8 lead bytes.
+    // Runtime code needs to then test for the real highStart as well.
+    trie->shifted12HighStart = (highStart + 0xfff) >> 12;
+    trie->type = type;
+    trie->valueWidth = valueWidth;
+
+    trie->index3NullOffset = index3NullOffset;
+    trie->dataNullOffset = dataNullOffset;
+    trie->nullValue = initialValue;
+
+    bytes += sizeof(UCPTrie);
+
+    // Fill the index and data arrays.
+    uint16_t *dest16 = (uint16_t *)bytes;
+    trie->index = dest16;
+
+    if (highStart <= fastLimit) {
+        // Condense only the fast index from the mutable-trie index.
+        for (int32_t i = 0, j = 0; j < indexLength; i += SMALL_DATA_BLOCKS_PER_BMP_BLOCK, ++j) {
+            *dest16++ = (uint16_t)index[i];  // dest16[j]
+        }
+    } else {
+        uprv_memcpy(dest16, index16, indexLength * 2);
+        dest16 += indexLength;
+    }
+    bytes += indexLength * 2;
+
+    // Write the data array.
+    const uint32_t *p = data;
+    switch (valueWidth) {
+    case UCPTRIE_VALUE_BITS_16:
+        // Write 16-bit data values.
+        trie->data.ptr16 = dest16;
+        for (int32_t i = dataLength; i > 0; --i) {
+            *dest16++ = (uint16_t)*p++;
+        }
+        break;
+    case UCPTRIE_VALUE_BITS_32:
+        // Write 32-bit data values.
+        trie->data.ptr32 = (uint32_t *)bytes;
+        uprv_memcpy(bytes, p, (size_t)dataLength * 4);
+        break;
+    case UCPTRIE_VALUE_BITS_8:
+        // Write 8-bit data values.
+        trie->data.ptr8 = bytes;
+        for (int32_t i = dataLength; i > 0; --i) {
+            *bytes++ = (uint8_t)*p++;
+        }
+        break;
+    default:
+        // Will not occur, valueWidth checked at the beginning.
+        break;
+    }
+
+#ifdef UCPTRIE_DEBUG
+    trie->name = name;
+
+    ucptrie_printLengths(trie, "");
+#endif
+
+    clear();
+    return trie;
+}
+
+}  // namespace
+
+U_NAMESPACE_END
+
+U_NAMESPACE_USE
+
+U_CAPI UMutableCPTrie * U_EXPORT2
+umutablecptrie_open(uint32_t initialValue, uint32_t errorValue, UErrorCode *pErrorCode) {
+    if (U_FAILURE(*pErrorCode)) {
+        return nullptr;
+    }
+    LocalPointer<MutableCodePointTrie> trie(
+        new MutableCodePointTrie(initialValue, errorValue, *pErrorCode), *pErrorCode);
+    if (U_FAILURE(*pErrorCode)) {
+        return nullptr;
+    }
+    return reinterpret_cast<UMutableCPTrie *>(trie.orphan());
+}
+
+U_CAPI UMutableCPTrie * U_EXPORT2
+umutablecptrie_clone(const UMutableCPTrie *other, UErrorCode *pErrorCode) {
+    if (U_FAILURE(*pErrorCode)) {
+        return nullptr;
+    }
+    if (other == nullptr) {
+        return nullptr;
+    }
+    LocalPointer<MutableCodePointTrie> clone(
+        new MutableCodePointTrie(*reinterpret_cast<const MutableCodePointTrie *>(other), *pErrorCode), *pErrorCode);
+    if (U_FAILURE(*pErrorCode)) {
+        return nullptr;
+    }
+    return reinterpret_cast<UMutableCPTrie *>(clone.orphan());
+}
+
+U_CAPI void U_EXPORT2
+umutablecptrie_close(UMutableCPTrie *trie) {
+    delete reinterpret_cast<MutableCodePointTrie *>(trie);
+}
+
+U_CAPI UMutableCPTrie * U_EXPORT2
+umutablecptrie_fromUCPMap(const UCPMap *map, UErrorCode *pErrorCode) {
+    if (U_FAILURE(*pErrorCode)) {
+        return nullptr;
+    }
+    if (map == nullptr) {
+        *pErrorCode = U_ILLEGAL_ARGUMENT_ERROR;
+        return nullptr;
+    }
+    return reinterpret_cast<UMutableCPTrie *>(MutableCodePointTrie::fromUCPMap(map, *pErrorCode));
+}
+
+U_CAPI UMutableCPTrie * U_EXPORT2
+umutablecptrie_fromUCPTrie(const UCPTrie *trie, UErrorCode *pErrorCode) {
+    if (U_FAILURE(*pErrorCode)) {
+        return nullptr;
+    }
+    if (trie == nullptr) {
+        *pErrorCode = U_ILLEGAL_ARGUMENT_ERROR;
+        return nullptr;
+    }
+    return reinterpret_cast<UMutableCPTrie *>(MutableCodePointTrie::fromUCPTrie(trie, *pErrorCode));
+}
+
+U_CAPI uint32_t U_EXPORT2
+umutablecptrie_get(const UMutableCPTrie *trie, UChar32 c) {
+    return reinterpret_cast<const MutableCodePointTrie *>(trie)->get(c);
+}
+
+namespace {
+
+UChar32 getRange(const void *trie, UChar32 start,
+                 UCPMapValueFilter *filter, const void *context, uint32_t *pValue) {
+    return reinterpret_cast<const MutableCodePointTrie *>(trie)->
+        getRange(start, filter, context, pValue);
+}
+
+}  // namespace
+
+U_CAPI UChar32 U_EXPORT2
+umutablecptrie_getRange(const UMutableCPTrie *trie, UChar32 start,
+                        UCPMapRangeOption option, uint32_t surrogateValue,
+                        UCPMapValueFilter *filter, const void *context, uint32_t *pValue) {
+    return ucptrie_internalGetRange(getRange, trie, start,
+                                    option, surrogateValue,
+                                    filter, context, pValue);
+}
+
+U_CAPI void U_EXPORT2
+umutablecptrie_set(UMutableCPTrie *trie, UChar32 c, uint32_t value, UErrorCode *pErrorCode) {
+    if (U_FAILURE(*pErrorCode)) {
+        return;
+    }
+    reinterpret_cast<MutableCodePointTrie *>(trie)->set(c, value, *pErrorCode);
+}
+
+U_CAPI void U_EXPORT2
+umutablecptrie_setRange(UMutableCPTrie *trie, UChar32 start, UChar32 end,
+                   uint32_t value, UErrorCode *pErrorCode) {
+    if (U_FAILURE(*pErrorCode)) {
+        return;
+    }
+    reinterpret_cast<MutableCodePointTrie *>(trie)->setRange(start, end, value, *pErrorCode);
+}
+
+/* Compact and internally serialize the trie. */
+U_CAPI UCPTrie * U_EXPORT2
+umutablecptrie_buildImmutable(UMutableCPTrie *trie, UCPTrieType type, UCPTrieValueWidth valueWidth,
+                              UErrorCode *pErrorCode) {
+    if (U_FAILURE(*pErrorCode)) {
+        return nullptr;
+    }
+    return reinterpret_cast<MutableCodePointTrie *>(trie)->build(type, valueWidth, *pErrorCode);
+}
+
+#ifdef UCPTRIE_DEBUG
+U_CFUNC void umutablecptrie_setName(UMutableCPTrie *trie, const char *name) {
+    reinterpret_cast<MutableCodePointTrie *>(trie)->name = name;
+}
+#endif
index 8e1f6e9..015a12f 100644 (file)
@@ -56,6 +56,13 @@ U_NAMESPACE_END
 
 U_NAMESPACE_BEGIN
 
+// Export an explicit template instantiation of std::atomic<int32_t>. 
+// When building DLLs for Windows this is required as it is used as a data member of the exported SharedObject class.
+// See digitlst.h, pluralaffix.h, datefmt.h, and others for similar examples.
+#if U_PF_WINDOWS <= U_PLATFORM && U_PLATFORM <= U_PF_CYGWIN
+template struct U_COMMON_API std::atomic<int32_t>;
+#endif
+
 typedef std::atomic<int32_t> u_atomic_int32_t;
 #define ATOMIC_INT32_T_INITIALIZER(val) ATOMIC_VAR_INIT(val)
 
@@ -205,7 +212,7 @@ umtx_atomic_dec(u_atomic_int32_t *p);
 
 U_NAMESPACE_END
 
-#endif  /* Low Level Atomic Ops Platfrom Chain */
+#endif  /* Low Level Atomic Ops Platform Chain */
 
 
 
@@ -319,7 +326,7 @@ U_NAMESPACE_END
  *************************************************************************************************/
 
 #if defined(U_USER_MUTEX_H)
-// #inlcude "U_USER_MUTEX_H"
+// #include "U_USER_MUTEX_H"
 #include U_MUTEX_XSTR(U_USER_MUTEX_H)
 
 #elif U_PLATFORM_USES_ONLY_WIN32_API
@@ -389,7 +396,7 @@ struct UConditionVar {
 #else
 
 /*
- *  Unknow platform type.
+ *  Unknown platform type.
  *      This is an error condition. ICU requires mutexes.
  */
 
@@ -401,7 +408,7 @@ struct UConditionVar {
 
 /**************************************************************************************
  *
- *  Mutex Implementation function declaratations.
+ *  Mutex Implementation function declarations.
  *     Declarations are platform neutral.
  *     Implementations, in umutex.cpp, are platform specific.
  *
index 6ad349c..9c230dc 100644 (file)
@@ -466,7 +466,7 @@ static uint16_t getExtName(uint32_t code, char *buffer, uint16_t bufferLength) {
         buffer[--i] = (v < 10 ? '0' + v : 'A' + v - 10);
     }
     buffer += ndigits;
-    length += ndigits;
+    length += static_cast<uint16_t>(ndigits);
     WRITE_CHAR(buffer, bufferLength, length, '>');
 
     return length;
index 6f61c38..493115f 100644 (file)
@@ -237,13 +237,12 @@ class StringByteSink : public ByteSink {
    * @stable ICU 4.2
    */
   StringByteSink(StringClass* dest) : dest_(dest) { }
-#ifndef U_HIDE_DRAFT_API
   /**
    * Constructs a ByteSink that reserves append capacity and will append bytes to the dest string.
    * 
    * @param dest pointer to string object to append to
    * @param initialAppendCapacity capacity beyond dest->length() to be reserve()d
-   * @draft ICU 60
+   * @stable ICU 60
    */
   StringByteSink(StringClass* dest, int32_t initialAppendCapacity) : dest_(dest) {
     if (initialAppendCapacity > 0 &&
@@ -251,7 +250,6 @@ class StringByteSink : public ByteSink {
       dest->reserve(dest->length() + initialAppendCapacity);
     }
   }
-#endif  // U_HIDE_DRAFT_API
   /**
    * Append "bytes[0,n-1]" to this.
    * @param data the pointer to the bytes
index 4b77256..477eb48 100644 (file)
@@ -194,7 +194,6 @@ public:
             char16_t *dest, int32_t destCapacity, Edits *edits,
             UErrorCode &errorCode);
 
-#ifndef U_HIDE_DRAFT_API
     /**
      * Lowercases a UTF-8 string and optionally records edits.
      * Casing is locale-dependent and context-sensitive.
@@ -214,7 +213,7 @@ public:
      *                  which must not indicate a failure before the function call.
      *
      * @see ucasemap_utf8ToLower
-     * @draft ICU 60
+     * @stable ICU 60
      */
     static void utf8ToLower(
             const char *locale, uint32_t options,
@@ -240,7 +239,7 @@ public:
      *                  which must not indicate a failure before the function call.
      *
      * @see ucasemap_utf8ToUpper
-     * @draft ICU 60
+     * @stable ICU 60
      */
     static void utf8ToUpper(
             const char *locale, uint32_t options,
@@ -280,7 +279,7 @@ public:
      *                  which must not indicate a failure before the function call.
      *
      * @see ucasemap_utf8ToTitle
-     * @draft ICU 60
+     * @stable ICU 60
      */
     static void utf8ToTitle(
             const char *locale, uint32_t options, BreakIterator *iter,
@@ -311,13 +310,12 @@ public:
      *                  which must not indicate a failure before the function call.
      *
      * @see ucasemap_utf8FoldCase
-     * @draft ICU 60
+     * @stable ICU 60
      */
     static void utf8Fold(
             uint32_t options,
             StringPiece src, ByteSink &sink, Edits *edits,
             UErrorCode &errorCode);
-#endif  // U_HIDE_DRAFT_API
 
     /**
      * Lowercases a UTF-8 string and optionally records edits.
index 49d0e02..a7c5f1a 100644 (file)
@@ -28,6 +28,8 @@ U_NAMESPACE_BEGIN
     // Use the predefined value.
 #elif (defined(__clang__) || defined(__GNUC__)) && U_PLATFORM != U_PF_BROWSER_NATIVE_CLIENT
 #   define U_ALIASING_BARRIER(ptr) asm volatile("" : : "rm"(ptr) : "memory")
+#elif defined(U_IN_DOXYGEN)
+#   define U_ALIASING_BARRIER(ptr)
 #endif
 
 /**
@@ -103,6 +105,7 @@ private:
 #endif
 };
 
+/// \cond
 #ifdef U_ALIASING_BARRIER
 
 Char16Ptr::Char16Ptr(char16_t *p) : p_(p) {}
@@ -134,6 +137,7 @@ Char16Ptr::~Char16Ptr() {}
 char16_t *Char16Ptr::get() const { return u_.cp; }
 
 #endif
+/// \endcond
 
 /**
  * const char16_t * wrapper with implicit conversion from distinct but bit-compatible pointer types.
@@ -209,6 +213,7 @@ private:
 #endif
 };
 
+/// \cond
 #ifdef U_ALIASING_BARRIER
 
 ConstChar16Ptr::ConstChar16Ptr(const char16_t *p) : p_(p) {}
@@ -240,6 +245,7 @@ ConstChar16Ptr::~ConstChar16Ptr() {}
 const char16_t *ConstChar16Ptr::get() const { return u_.cp; }
 
 #endif
+/// \endcond
 
 /**
  * Converts from const char16_t * to const UChar *.
index b98da28..6c2d9dc 100644 (file)
  *     <td>icu::UnicodeSet</td>
  *   </tr>
  *   <tr>
+ *     <td>Maps from Unicode Code Points to Integer Values</td>
+ *     <td>ucptrie.h, umutablecptrie.h</td>
+ *     <td>C API</td>
+ *   </tr>
+ *   <tr>
  *     <td>Maps from Strings to Integer Values</td>
  *     <td>(no C API)</td>
  *     <td>icu::BytesTrie, icu::UCharsTrie</td>
  *     <td>C API</td>
  *   </tr>
  *   <tr>
- *     <td>Layout Engine/Complex Text Layout</td>
- *     <td>loengine.h</td>
- *     <td>icu::LayoutEngine,icu::ParagraphLayout</td>
+ *     <td>Paragraph Layout / Complex Text Layout</td>
+ *     <td>playout.h</td>
+ *     <td>icu::ParagraphLayout</td>
  *   </tr>
  *   <tr>
  *     <td>ICU I/O</td>
index f767a8d..79e98b0 100644 (file)
@@ -24,8 +24,8 @@ class UnicodeString;
  * in linear progression. Does not support moving/reordering of text.
  *
  * There are two types of edits: <em>change edits</em> and <em>no-change edits</em>. Add edits to
- * instances of this class using {@link #addReplace(int, int)} (for change edits) and
- * {@link #addUnchanged(int)} (for no-change edits). Change edits are retained with full granularity,
+ * instances of this class using {@link #addReplace(int32_t, int32_t)} (for change edits) and
+ * {@link #addUnchanged(int32_t)} (for no-change edits). Change edits are retained with full granularity,
  * whereas adjacent no-change edits are always merged together. In no-change edits, there is a one-to-one
  * mapping between code points in the source and destination strings.
  *
@@ -62,11 +62,11 @@ class UnicodeString;
  * </ul>
  *
  * The "fine changes" and "coarse changes" iterators will step through only the change edits when their
- * {@link Edits::Iterator#next()} methods are called. They are identical to the non-change iterators when
- * their {@link Edits::Iterator#findSourceIndex(int)} or {@link Edits::Iterator#findDestinationIndex(int)}
+ * `Edits::Iterator::next()` methods are called. They are identical to the non-change iterators when
+ * their `Edits::Iterator::findSourceIndex()` or `Edits::Iterator::findDestinationIndex()`
  * methods are used to walk through the string.
  *
- * For examples of how to use this class, see the test <code>TestCaseMapEditsIteratorDocs</code> in
+ * For examples of how to use this class, see the test `TestCaseMapEditsIteratorDocs` in
  * UCharacterCaseTest.java.
  *
  * An Edits object tracks a separate UErrorCode, but ICU string transformation functions
@@ -86,7 +86,7 @@ public:
     /**
      * Copy constructor.
      * @param other source edits
-     * @draft ICU 60
+     * @stable ICU 60
      */
     Edits(const Edits &other) :
             array(stackArray), capacity(STACK_CAPACITY), length(other.length),
@@ -98,7 +98,7 @@ public:
      * Move constructor, might leave src empty.
      * This object will have the same contents that the source object had.
      * @param src source edits
-     * @draft ICU 60
+     * @stable ICU 60
      */
     Edits(Edits &&src) U_NOEXCEPT :
             array(stackArray), capacity(STACK_CAPACITY), length(src.length),
@@ -117,7 +117,7 @@ public:
      * Assignment operator.
      * @param other source edits
      * @return *this
-     * @draft ICU 60
+     * @stable ICU 60
      */
     Edits &operator=(const Edits &other);
 
@@ -127,7 +127,7 @@ public:
      * The behavior is undefined if *this and src are the same object.
      * @param src source edits
      * @return *this
-     * @draft ICU 60
+     * @stable ICU 60
      */
     Edits &operator=(Edits &&src) U_NOEXCEPT;
 
@@ -173,13 +173,11 @@ public:
      */
     UBool hasChanges() const { return numChanges != 0; }
 
-#ifndef U_HIDE_DRAFT_API
     /**
      * @return the number of change edits
-     * @draft ICU 60
+     * @stable ICU 60
      */
     int32_t numberOfChanges() const { return numChanges; }
-#endif  // U_HIDE_DRAFT_API
 
     /**
      * Access to the list of edits.
@@ -189,9 +187,9 @@ public:
      * starts at {@link #sourceIndex()} and runs for {@link #oldLength()} chars; the destination string
      * span starts at {@link #destinationIndex()} and runs for {@link #newLength()} chars.
      *
-     * The iterator can be moved between edits using the {@link #next()}, {@link #findSourceIndex(int)},
-     * and {@link #findDestinationIndex(int)} methods. Calling any of these methods mutates the iterator
-     * to make it point to the corresponding edit.
+     * The iterator can be moved between edits using the `next()`, `findSourceIndex(int32_t, UErrorCode &)`,
+     * and `findDestinationIndex(int32_t, UErrorCode &)` methods.
+     * Calling any of these methods mutates the iterator to make it point to the corresponding edit.
      *
      * For more information, see the documentation for {@link Edits}.
      *
@@ -202,7 +200,7 @@ public:
     struct U_COMMON_API Iterator U_FINAL : public UMemory {
         /**
          * Default constructor, empty iterator.
-         * @draft ICU 60
+         * @stable ICU 60
          */
         Iterator() :
                 array(nullptr), index(0), length(0),
@@ -253,7 +251,6 @@ public:
             return findIndex(i, TRUE, errorCode) == 0;
         }
 
-#ifndef U_HIDE_DRAFT_API
         /**
          * Moves the iterator to the edit that contains the destination index.
          * The destination index may be found in a no-change edit
@@ -271,7 +268,7 @@ public:
          *                  or else the function returns immediately. Check for U_FAILURE()
          *                  on output or use with function chaining. (See User Guide for details.)
          * @return TRUE if the edit for the destination index was found
-         * @draft ICU 60
+         * @stable ICU 60
          */
         UBool findDestinationIndex(int32_t i, UErrorCode &errorCode) {
             return findIndex(i, FALSE, errorCode) == 0;
@@ -297,7 +294,7 @@ public:
          *                  or else the function returns immediately. Check for U_FAILURE()
          *                  on output or use with function chaining. (See User Guide for details.)
          * @return destination index; undefined if i is not 0..string length
-         * @draft ICU 60
+         * @stable ICU 60
          */
         int32_t destinationIndexFromSourceIndex(int32_t i, UErrorCode &errorCode);
 
@@ -321,10 +318,9 @@ public:
          *                  or else the function returns immediately. Check for U_FAILURE()
          *                  on output or use with function chaining. (See User Guide for details.)
          * @return source index; undefined if i is not 0..string length
-         * @draft ICU 60
+         * @stable ICU 60
          */
         int32_t sourceIndexFromDestinationIndex(int32_t i, UErrorCode &errorCode);
-#endif  // U_HIDE_DRAFT_API
 
         /**
          * Returns whether the edit currently represented by the iterator is a change edit.
@@ -366,13 +362,13 @@ public:
         /**
          * The start index of the current span in the replacement string; the span has length
          * {@link #newLength}. Well-defined only if the current edit is a change edit.
-         * <p>
-         * The <em>replacement string</em> is the concatenation of all substrings of the destination
+         *
+         * The *replacement string* is the concatenation of all substrings of the destination
          * string corresponding to change edits.
-         * <p>
+         *
          * This method is intended to be used together with operations that write only replacement
-         * characters (e.g., {@link CaseMap#omitUnchangedText()}). The source string can then be modified
-         * in-place.
+         * characters (e.g. operations specifying the \ref U_OMIT_UNCHANGED_TEXT option).
+         * The source string can then be modified in-place.
          *
          * @return the current index into the replacement-characters-only string,
          *         not counting unchanged spans
@@ -475,7 +471,6 @@ public:
         return Iterator(array, length, FALSE, FALSE);
     }
 
-#ifndef U_HIDE_DRAFT_API
     /**
      * Merges the two input Edits and appends the result to this object.
      *
@@ -501,10 +496,9 @@ public:
      *                  or else the function returns immediately. Check for U_FAILURE()
      *                  on output or use with function chaining. (See User Guide for details.)
      * @return *this, with the merged edits appended
-     * @draft ICU 60
+     * @stable ICU 60
      */
     Edits &mergeAndAppend(const Edits &ab, const Edits &bc, UErrorCode &errorCode);
-#endif  // U_HIDE_DRAFT_API
 
 private:
     void releaseArray() U_NOEXCEPT;
index f63dd16..bde8c45 100644 (file)
@@ -28,6 +28,7 @@ U_NAMESPACE_BEGIN
  * enum bitset for boolean fields. Similar to Java EnumSet<>. 
  * Needs to range check. Used for private instance variables.
  * @internal
+ * \cond
  */
 template<typename T, uint32_t minValue, uint32_t limitValue>
 class EnumSet {
@@ -60,6 +61,8 @@ private:
     uint32_t fBools;
 };
 
+/** \endcond */
+
 U_NAMESPACE_END
 
 #endif /* U_SHOW_CPLUSPLUS_API */
index 751d1fa..2444114 100644 (file)
@@ -67,16 +67,14 @@ class U_COMMON_API FilteredBreakIteratorBuilder : public UObject {
   static FilteredBreakIteratorBuilder *createInstance(UErrorCode &status);
 #endif  /* U_HIDE_DEPRECATED_API */
 
-#ifndef U_HIDE_DRAFT_API
   /**
    * Construct an empty FilteredBreakIteratorBuilder.
    * In this state, it will not suppress any segment boundaries.
    * @param status The error code.
    * @return the new builder
-   * @draft ICU 60
+   * @stable ICU 60
    */
   static FilteredBreakIteratorBuilder *createEmptyInstance(UErrorCode &status);
-#endif  /* U_HIDE_DRAFT_API */
 
   /**
    * Suppress a certain string from being the end of a segment.
@@ -95,7 +93,7 @@ class U_COMMON_API FilteredBreakIteratorBuilder : public UObject {
    * This function does not create any new segment boundaries, but only serves to un-do
    * the effect of earlier calls to suppressBreakAfter, or to un-do the effect of
    * locale data which may be suppressing certain strings.
-   * @param exception the exception to remove
+   * @param string the exception to remove
    * @param status error code
    * @return returns TRUE if the string was present and now removed,
    * FALSE if the call was a no-op because the string was not being suppressed.
@@ -114,7 +112,6 @@ class U_COMMON_API FilteredBreakIteratorBuilder : public UObject {
    */
   virtual BreakIterator *build(BreakIterator* adoptBreakIterator, UErrorCode& status) = 0;
 
-#ifndef U_HIDE_DRAFT_API
   /**
    * Wrap (adopt) an existing break iterator in a new filtered instance.
    * The resulting BreakIterator is owned by the caller.
@@ -126,12 +123,11 @@ class U_COMMON_API FilteredBreakIteratorBuilder : public UObject {
    * @param adoptBreakIterator the break iterator to adopt
    * @param status error code
    * @return the new BreakIterator, owned by the caller.
-   * @draft ICU 60
+   * @stable ICU 60
    */
   inline BreakIterator *wrapIteratorWithFilter(BreakIterator* adoptBreakIterator, UErrorCode& status) {
     return build(adoptBreakIterator, status);
   }
-#endif  /* U_HIDE_DRAFT_API */
 
  protected:
   /**
index 1a894a7..2e57b14 100644 (file)
 #include "unicode/utypes.h"
 
 
-#if UCONFIG_ENABLE_PLUGINS
+#if UCONFIG_ENABLE_PLUGINS || defined(U_IN_DOXYGEN)
 
 
 
index 9ccf471..1ef15ca 100644 (file)
 #ifndef LOCID_H
 #define LOCID_H
 
+#include "unicode/bytestream.h"
+#include "unicode/localpointer.h"
+#include "unicode/strenum.h"
+#include "unicode/stringpiece.h"
 #include "unicode/utypes.h"
 #include "unicode/uobject.h"
 #include "unicode/putil.h"
@@ -280,6 +284,16 @@ public:
      */
     Locale(const    Locale& other);
 
+#ifndef U_HIDE_DRAFT_API
+    /**
+     * Move constructor; might leave source in bogus state.
+     * This locale will have the same contents that the source locale had.
+     *
+     * @param other The Locale object being moved in.
+     * @draft ICU 63
+     */
+    Locale(Locale&& other) U_NOEXCEPT;
+#endif  // U_HIDE_DRAFT_API
 
     /**
      * Destructor
@@ -296,6 +310,19 @@ public:
      */
     Locale& operator=(const Locale& other);
 
+#ifndef U_HIDE_DRAFT_API
+    /**
+     * Move assignment operator; might leave source in bogus state.
+     * This locale will have the same contents that the source locale had.
+     * The behavior is undefined if *this and the source are the same object.
+     *
+     * @param other The Locale object being moved in.
+     * @return      *this
+     * @draft ICU 63
+     */
+    Locale& operator=(Locale&& other) U_NOEXCEPT;
+#endif  // U_HIDE_DRAFT_API
+
     /**
      * Checks if two locale keys are the same.
      *
@@ -362,6 +389,55 @@ public:
                                      UErrorCode&   success);
 #endif  /* U_HIDE_SYSTEM_API */
 
+#ifndef U_HIDE_DRAFT_API
+    /**
+     * Returns a Locale for the specified BCP47 language tag string.
+     * If the specified language tag contains any ill-formed subtags,
+     * the first such subtag and all following subtags are ignored.
+     * <p>
+     * This implements the 'Language-Tag' production of BCP47, and so
+     * supports grandfathered (regular and irregular) as well as private
+     * use language tags.  Private use tags are represented as 'x-whatever',
+     * and grandfathered tags are converted to their canonical replacements
+     * where they exist.  Note that a few grandfathered tags have no modern
+     * replacement, these will be converted using the fallback described in
+     * the first paragraph, so some information might be lost.
+     * @param tag     the input BCP47 language tag.
+     * @param status  error information if creating the Locale failed.
+     * @return        the Locale for the specified BCP47 language tag.
+     * @draft ICU 63
+     */
+    static Locale U_EXPORT2 forLanguageTag(StringPiece tag, UErrorCode& status);
+
+    /**
+     * Returns a well-formed language tag for this Locale.
+     * <p>
+     * <b>Note</b>: Any locale fields which do not satisfy the BCP47 syntax
+     * requirement will be silently omitted from the result.
+     *
+     * If this function fails, partial output may have been written to the sink.
+     *
+     * @param sink    the output sink receiving the BCP47 language
+     *                tag for this Locale.
+     * @param status  error information if creating the language tag failed.
+     * @draft ICU 63
+     */
+    void toLanguageTag(ByteSink& sink, UErrorCode& status) const;
+
+    /**
+     * Returns a well-formed language tag for this Locale.
+     * <p>
+     * <b>Note</b>: Any locale fields which do not satisfy the BCP47 syntax
+     * requirement will be silently omitted from the result.
+     *
+     * @param status  error information if creating the language tag failed.
+     * @return        the BCP47 language tag for this Locale.
+     * @draft ICU 63
+     */
+    template<typename StringClass>
+    inline StringClass toLanguageTag(UErrorCode& status) const;
+#endif  // U_HIDE_DRAFT_API
+
     /**
      * Creates a locale which has had minimal canonicalization
      * as per uloc_getName().
@@ -432,6 +508,69 @@ public:
      */
     const char * getBaseName() const;
 
+#ifndef U_HIDE_DRAFT_API
+    /**
+     * Add the likely subtags for this Locale, per the algorithm described
+     * in the following CLDR technical report:
+     *
+     *   http://www.unicode.org/reports/tr35/#Likely_Subtags
+     *
+     * If this Locale is already in the maximal form, or not valid, or there is
+     * no data available for maximization, the Locale will be unchanged.
+     *
+     * For example, "und-Zzzz" cannot be maximized, since there is no
+     * reasonable maximization.
+     *
+     * Examples:
+     *
+     * "en" maximizes to "en_Latn_US"
+     *
+     * "de" maximizes to "de_Latn_US"
+     *
+     * "sr" maximizes to "sr_Cyrl_RS"
+     *
+     * "sh" maximizes to "sr_Latn_RS" (Note this will not reverse.)
+     *
+     * "zh_Hani" maximizes to "zh_Hans_CN" (Note this will not reverse.)
+     *
+     * @param status  error information if maximizing this Locale failed.
+     *                If this Locale is not well-formed, the error code is
+     *                U_ILLEGAL_ARGUMENT_ERROR.
+     * @draft ICU 63
+     */
+    void addLikelySubtags(UErrorCode& status);
+
+    /**
+     * Minimize the subtags for this Locale, per the algorithm described
+     * in the following CLDR technical report:
+     *
+     *   http://www.unicode.org/reports/tr35/#Likely_Subtags
+     *
+     * If this Locale is already in the minimal form, or not valid, or there is
+     * no data available for minimization, the Locale will be unchanged.
+     *
+     * Since the minimization algorithm relies on proper maximization, see the
+     * comments for addLikelySubtags for reasons why there might not be any
+     * data.
+     *
+     * Examples:
+     *
+     * "en_Latn_US" minimizes to "en"
+     *
+     * "de_Latn_US" minimizes to "de"
+     *
+     * "sr_Cyrl_RS" minimizes to "sr"
+     *
+     * "zh_Hant_TW" minimizes to "zh_TW" (The region is preferred to the
+     * script, and minimizing to "zh" would imply "zh_Hans_CN".)
+     *
+     * @param status  error information if maximizing this Locale failed.
+     *                If this Locale is not well-formed, the error code is
+     *                U_ILLEGAL_ARGUMENT_ERROR.
+     * @draft ICU 63
+     */
+    void minimizeSubtags(UErrorCode& status);
+#endif  // U_HIDE_DRAFT_API
 
     /**
      * Gets the list of keywords for the specified locale.
@@ -439,13 +578,62 @@ public:
      * @param status the status code
      * @return pointer to StringEnumeration class, or NULL if there are no keywords. 
      * Client must dispose of it by calling delete.
+     * @see getKeywords
      * @stable ICU 2.8
      */
     StringEnumeration * createKeywords(UErrorCode &status) const;
 
+#ifndef U_HIDE_DRAFT_API
+
+    /**
+     * Gets the list of Unicode keywords for the specified locale.
+     *
+     * @param status the status code
+     * @return pointer to StringEnumeration class, or NULL if there are no keywords.
+     * Client must dispose of it by calling delete.
+     * @see getUnicodeKeywords
+     * @draft ICU 63
+     */
+    StringEnumeration * createUnicodeKeywords(UErrorCode &status) const;
+
+    /**
+     * Gets the set of keywords for this Locale.
+     *
+     * A wrapper to call createKeywords() and write the resulting
+     * keywords as standard strings (or compatible objects) into any kind of
+     * container that can be written to by an STL style output iterator.
+     *
+     * @param iterator  an STL style output iterator to write the keywords to.
+     * @param status    error information if creating set of keywords failed.
+     * @draft ICU 63
+     */
+    template<typename StringClass, typename OutputIterator>
+    inline void getKeywords(OutputIterator iterator, UErrorCode& status) const;
+
+    /**
+     * Gets the set of Unicode keywords for this Locale.
+     *
+     * A wrapper to call createUnicodeKeywords() and write the resulting
+     * keywords as standard strings (or compatible objects) into any kind of
+     * container that can be written to by an STL style output iterator.
+     *
+     * @param iterator  an STL style output iterator to write the keywords to.
+     * @param status    error information if creating set of keywords failed.
+     * @draft ICU 63
+     */
+    template<typename StringClass, typename OutputIterator>
+    inline void getUnicodeKeywords(OutputIterator iterator, UErrorCode& status) const;
+
+#endif  // U_HIDE_DRAFT_API
+
     /**
      * Gets the value for a keyword.
      *
+     * This uses legacy keyword=value pairs, like "collation=phonebook".
+     *
+     * ICU4C doesn't do automatic conversion between legacy and Unicode
+     * keywords and values in getters and setters (as opposed to ICU4J).
+     *
      * @param keywordName name of the keyword for which we want the value. Case insensitive.
      * @param buffer The buffer to receive the keyword value.
      * @param bufferCapacity The capacity of receiving buffer
@@ -456,12 +644,81 @@ public:
      */
     int32_t getKeywordValue(const char* keywordName, char *buffer, int32_t bufferCapacity, UErrorCode &status) const;
 
+#ifndef U_HIDE_DRAFT_API
+    /**
+     * Gets the value for a keyword.
+     *
+     * This uses legacy keyword=value pairs, like "collation=phonebook".
+     *
+     * ICU4C doesn't do automatic conversion between legacy and Unicode
+     * keywords and values in getters and setters (as opposed to ICU4J).
+     *
+     * @param keywordName  name of the keyword for which we want the value.
+     * @param sink         the sink to receive the keyword value.
+     * @param status       error information if getting the value failed.
+     * @draft ICU 63
+     */
+    void getKeywordValue(StringPiece keywordName, ByteSink& sink, UErrorCode& status) const;
+
+    /**
+     * Gets the value for a keyword.
+     *
+     * This uses legacy keyword=value pairs, like "collation=phonebook".
+     *
+     * ICU4C doesn't do automatic conversion between legacy and Unicode
+     * keywords and values in getters and setters (as opposed to ICU4J).
+     *
+     * @param keywordName  name of the keyword for which we want the value.
+     * @param status       error information if getting the value failed.
+     * @return             the keyword value.
+     * @draft ICU 63
+     */
+    template<typename StringClass>
+    inline StringClass getKeywordValue(StringPiece keywordName, UErrorCode& status) const;
+
+    /**
+     * Gets the Unicode value for a Unicode keyword.
+     *
+     * This uses Unicode key-value pairs, like "co-phonebk".
+     *
+     * ICU4C doesn't do automatic conversion between legacy and Unicode
+     * keywords and values in getters and setters (as opposed to ICU4J).
+     *
+     * @param keywordName  name of the keyword for which we want the value.
+     * @param sink         the sink to receive the keyword value.
+     * @param status       error information if getting the value failed.
+     * @draft ICU 63
+     */
+    void getUnicodeKeywordValue(StringPiece keywordName, ByteSink& sink, UErrorCode& status) const;
+
+    /**
+     * Gets the Unicode value for a Unicode keyword.
+     *
+     * This uses Unicode key-value pairs, like "co-phonebk".
+     *
+     * ICU4C doesn't do automatic conversion between legacy and Unicode
+     * keywords and values in getters and setters (as opposed to ICU4J).
+     *
+     * @param keywordName  name of the keyword for which we want the value.
+     * @param status       error information if getting the value failed.
+     * @return             the keyword value.
+     * @draft ICU 63
+     */
+    template<typename StringClass>
+    inline StringClass getUnicodeKeywordValue(StringPiece keywordName, UErrorCode& status) const;
+#endif  // U_HIDE_DRAFT_API
+
     /**
      * Sets or removes the value for a keyword.
      *
      * For removing all keywords, use getBaseName(),
      * and construct a new Locale if it differs from getName().
      *
+     * This uses legacy keyword=value pairs, like "collation=phonebook".
+     *
+     * ICU4C doesn't do automatic conversion between legacy and Unicode
+     * keywords and values in getters and setters (as opposed to ICU4J).
+     *
      * @param keywordName name of the keyword to be set. Case insensitive.
      * @param keywordValue value of the keyword to be set. If 0-length or
      *  NULL, will result in the keyword being removed. No error is given if
@@ -472,6 +729,48 @@ public:
      */
     void setKeywordValue(const char* keywordName, const char* keywordValue, UErrorCode &status);
 
+#ifndef U_HIDE_DRAFT_API
+    /**
+     * Sets or removes the value for a keyword.
+     *
+     * For removing all keywords, use getBaseName(),
+     * and construct a new Locale if it differs from getName().
+     *
+     * This uses legacy keyword=value pairs, like "collation=phonebook".
+     *
+     * ICU4C doesn't do automatic conversion between legacy and Unicode
+     * keywords and values in getters and setters (as opposed to ICU4J).
+     *
+     * @param keywordName name of the keyword to be set.
+     * @param keywordValue value of the keyword to be set. If 0-length or
+     *  NULL, will result in the keyword being removed. No error is given if
+     *  that keyword does not exist.
+     * @param status Returns any error information while performing this operation.
+     * @draft ICU 63
+     */
+    void setKeywordValue(StringPiece keywordName, StringPiece keywordValue, UErrorCode& status);
+
+    /**
+     * Sets or removes the Unicode value for a Unicode keyword.
+     *
+     * For removing all keywords, use getBaseName(),
+     * and construct a new Locale if it differs from getName().
+     *
+     * This uses Unicode key-value pairs, like "co-phonebk".
+     *
+     * ICU4C doesn't do automatic conversion between legacy and Unicode
+     * keywords and values in getters and setters (as opposed to ICU4J).
+     *
+     * @param keywordName name of the keyword to be set.
+     * @param keywordValue value of the keyword to be set. If 0-length or
+     *  NULL, will result in the keyword being removed. No error is given if
+     *  that keyword does not exist.
+     * @param status Returns any error information while performing this operation.
+     * @draft ICU 63
+     */
+    void setUnicodeKeywordValue(StringPiece keywordName, StringPiece keywordValue, UErrorCode& status);
+#endif  // U_HIDE_DRAFT_API
+
     /**
      * returns the locale's three-letter language code, as specified
      * in ISO draft standard ISO-639-2.
@@ -759,12 +1058,12 @@ private:
 
     /**
      * A friend to allow the default locale to be set by either the C or C++ API.
-     * @internal
+     * @internal (private)
      */
     friend Locale *locale_set_default_internal(const char *, UErrorCode& status);
 
     /**
-     * @internal
+     * @internal (private)
      */
     friend void U_CALLCONV locale_available_init();
 };
@@ -775,6 +1074,17 @@ Locale::operator!=(const    Locale&     other) const
     return !operator==(other);
 }
 
+#ifndef U_HIDE_DRAFT_API
+template<typename StringClass> inline StringClass
+Locale::toLanguageTag(UErrorCode& status) const
+{
+    StringClass result;
+    StringByteSink<StringClass> sink(&result);
+    toLanguageTag(sink, status);
+    return result;
+}
+#endif  // U_HIDE_DRAFT_API
+
 inline const char *
 Locale::getCountry() const
 {
@@ -805,6 +1115,62 @@ Locale::getName() const
     return fullName;
 }
 
+#ifndef U_HIDE_DRAFT_API
+
+template<typename StringClass, typename OutputIterator> inline void
+Locale::getKeywords(OutputIterator iterator, UErrorCode& status) const
+{
+    LocalPointer<StringEnumeration> keys(createKeywords(status));
+    if (U_FAILURE(status)) {
+        return;
+    }
+    for (;;) {
+        int32_t resultLength;
+        const char* buffer = keys->next(&resultLength, status);
+        if (U_FAILURE(status) || buffer == nullptr) {
+            return;
+        }
+        *iterator++ = StringClass(buffer, resultLength);
+    }
+}
+
+template<typename StringClass, typename OutputIterator> inline void
+Locale::getUnicodeKeywords(OutputIterator iterator, UErrorCode& status) const
+{
+    LocalPointer<StringEnumeration> keys(createUnicodeKeywords(status));
+    if (U_FAILURE(status)) {
+        return;
+    }
+    for (;;) {
+        int32_t resultLength;
+        const char* buffer = keys->next(&resultLength, status);
+        if (U_FAILURE(status) || buffer == nullptr) {
+            return;
+        }
+        *iterator++ = StringClass(buffer, resultLength);
+    }
+}
+
+template<typename StringClass> inline StringClass
+Locale::getKeywordValue(StringPiece keywordName, UErrorCode& status) const
+{
+    StringClass result;
+    StringByteSink<StringClass> sink(&result);
+    getKeywordValue(keywordName, sink, status);
+    return result;
+}
+
+template<typename StringClass> inline StringClass
+Locale::getUnicodeKeywordValue(StringPiece keywordName, UErrorCode& status) const
+{
+    StringClass result;
+    StringByteSink<StringClass> sink(&result);
+    getUnicodeKeywordValue(keywordName, sink, status);
+    return result;
+}
+
+#endif  // U_HIDE_DRAFT_API
+
 inline UBool
 Locale::isBogus(void) const {
     return fIsBogus;
index f28adaf..9f2a865 100644 (file)
@@ -771,8 +771,8 @@ public:
          * @stable ICU 4.8
          */
         UMessagePatternArgType getArgType() const {
-            UMessagePatternPartType type=getType();
-            if(type==UMSGPAT_PART_TYPE_ARG_START || type==UMSGPAT_PART_TYPE_ARG_LIMIT) {
+            UMessagePatternPartType msgType=getType();
+            if(msgType ==UMSGPAT_PART_TYPE_ARG_START || msgType ==UMSGPAT_PART_TYPE_ARG_LIMIT) {
                 return (UMessagePatternArgType)value;
             } else {
                 return UMSGPAT_ARG_TYPE_NONE;
index 8a6d713..4caa0e3 100644 (file)
@@ -241,7 +241,7 @@ public:
      *                  pass the U_SUCCESS() test, or else the function returns
      *                  immediately. Check for U_FAILURE() on output or use with
      *                  function chaining. (See User Guide for details.)
-     * @draft ICU 60
+     * @stable ICU 60
      */
     virtual void
     normalizeUTF8(uint32_t options, StringPiece src, ByteSink &sink,
@@ -391,7 +391,7 @@ public:
      *                  immediately. Check for U_FAILURE() on output or use with
      *                  function chaining. (See User Guide for details.)
      * @return TRUE if s is normalized
-     * @draft ICU 60
+     * @stable ICU 60
      */
     virtual UBool
     isNormalizedUTF8(StringPiece s, UErrorCode &errorCode) const;
@@ -559,7 +559,7 @@ public:
      *                  pass the U_SUCCESS() test, or else the function returns
      *                  immediately. Check for U_FAILURE() on output or use with
      *                  function chaining. (See User Guide for details.)
-     * @draft ICU 60
+     * @stable ICU 60
      */
     virtual void
     normalizeUTF8(uint32_t options, StringPiece src, ByteSink &sink,
@@ -686,7 +686,7 @@ public:
      *                  immediately. Check for U_FAILURE() on output or use with
      *                  function chaining. (See User Guide for details.)
      * @return TRUE if s is normalized
-     * @draft ICU 60
+     * @stable ICU 60
      */
     virtual UBool
     isNormalizedUTF8(StringPiece s, UErrorCode &errorCode) const U_OVERRIDE;
index 7a3a87a..a3623f5 100644 (file)
@@ -38,7 +38,7 @@
  * and/or from other macros that are predefined by the compiler
  * or defined in standard (POSIX or platform or compiler) headers.
  *
- * As a temporary workaround, you can add an explicit <code>#define</code> for some macros
+ * As a temporary workaround, you can add an explicit \#define for some macros
  * before it is first tested, or add an equivalent -D macro definition
  * to the compiler's command line.
  *
 #   define CYGWINMSVC
 #endif
 */
+#ifdef U_IN_DOXYGEN
+#   define CYGWINMSVC
+#endif
 
 /**
  * \def U_PLATFORM_USES_ONLY_WIN32_API
 #ifndef __has_cpp_attribute
 #    define __has_cpp_attribute(x) 0
 #endif
+#ifndef __has_declspec_attribute
+#    define __has_declspec_attribute(x) 0
+#endif
 #ifndef __has_builtin
 #    define __has_builtin(x) 0
 #endif
@@ -493,13 +499,8 @@ namespace std {
  */
 #ifdef U_NOEXCEPT
     /* Use the predefined value. */
-#elif defined(_HAS_EXCEPTIONS) && !_HAS_EXCEPTIONS  /* Visual Studio */
-#   define U_NOEXCEPT
-#elif U_CPLUSPLUS_VERSION >= 11 || __has_feature(cxx_noexcept) || __has_extension(cxx_noexcept) \
-        || (defined(_MSC_VER) && _MSC_VER >= 1900)  /* Visual Studio 2015 */
-#   define U_NOEXCEPT noexcept
 #else
-#   define U_NOEXCEPT
+#   define U_NOEXCEPT noexcept
 #endif
 
 /**
@@ -519,6 +520,8 @@ namespace std {
             (__has_feature(cxx_attributes) && __has_warning("-Wimplicit-fallthrough"))
 #       define U_FALLTHROUGH [[clang::fallthrough]]
 #   endif
+#elif defined(__GNUC__) && (__GNUC__ >= 7)
+#   define U_FALLTHROUGH __attribute__((fallthrough))
 #endif
 
 #ifndef U_FALLTHROUGH
@@ -763,7 +766,8 @@ namespace std {
 #elif U_HAVE_CHAR16_T \
     || (defined(__xlC__) && defined(__IBM_UTF_LITERAL) && U_SIZEOF_WCHAR_T != 2) \
     || (defined(__HP_aCC) && __HP_aCC >= 035000) \
-    || (defined(__HP_cc) && __HP_cc >= 111106)
+    || (defined(__HP_cc) && __HP_cc >= 111106) \
+    || (defined(U_IN_DOXYGEN))
 #   define U_DECLARE_UTF16(string) u ## string
 #elif U_SIZEOF_WCHAR_T == 2 \
     && (U_CHARSET_FAMILY == 0 || (U_PF_OS390 <= U_PLATFORM && U_PLATFORM <= U_PF_OS400 && defined(__UCS2__)))
@@ -782,6 +786,8 @@ namespace std {
     /* Use the predefined value. */
 #elif defined(U_STATIC_IMPLEMENTATION)
 #   define U_EXPORT
+#elif defined(_MSC_VER) || (__has_declspec_attribute(dllexport) && __has_declspec_attribute(dllimport))
+#   define U_EXPORT __declspec(dllexport)
 #elif defined(__GNUC__)
 #   define U_EXPORT __attribute__((visibility("default")))
 #elif (defined(__SUNPRO_CC) && __SUNPRO_CC >= 0x550) \
@@ -789,8 +795,6 @@ namespace std {
 #   define U_EXPORT __global
 /*#elif defined(__HP_aCC) || defined(__HP_cc)
 #   define U_EXPORT __declspec(dllexport)*/
-#elif defined(_MSC_VER)
-#   define U_EXPORT __declspec(dllexport)
 #else
 #   define U_EXPORT
 #endif
@@ -806,7 +810,7 @@ namespace std {
 
 #ifdef U_IMPORT
     /* Use the predefined value. */
-#elif defined(_MSC_VER)
+#elif defined(_MSC_VER) || (__has_declspec_attribute(dllexport) && __has_declspec_attribute(dllimport))
     /* Windows needs to export/import data. */
 #   define U_IMPORT __declspec(dllimport)
 #else
index 6eaf2db..70324ff 100644 (file)
@@ -83,6 +83,7 @@ typedef unsigned char uint8_t;
 
 #else /* neither U_HAVE_STDINT_H nor U_HAVE_INTTYPES_H */
 
+/// \cond
 #if ! U_HAVE_INT8_T
 typedef signed char int8_t;
 #endif
@@ -122,6 +123,7 @@ typedef unsigned int uint32_t;
     typedef unsigned long long uint64_t;
 #endif
 #endif
+/// \endcond
 
 #endif /* U_HAVE_STDINT_H / U_HAVE_INTTYPES_H */
 
index e9b82cd..47abd55 100644 (file)
@@ -99,7 +99,7 @@ private:
      * If present, UStack of LanguageBreakEngine objects that might handle
      * dictionary characters. Searched from top to bottom to find an object to
      * handle a given character.
-     * @internal
+     * @internal (private)
      */
     UStack              *fLanguageBreakEngines;
 
@@ -108,14 +108,14 @@ private:
      * If present, the special LanguageBreakEngine used for handling
      * characters that are in the dictionary set, but not handled by any
      * LangugageBreakEngine.
-     * @internal
+     * @internal (private)
      */
     UnhandledEngine     *fUnhandledBreakEngine;
 
     /**
      * Counter for the number of characters encountered with the "dictionary"
      *   flag set.
-     * @internal
+     * @internal (private)
      */
     uint32_t            fDictionaryCharCount;
 
@@ -150,7 +150,7 @@ private:
      *
      *             The break iterator adopts the memory, and will
      *             free it when done.
-     * @internal
+     * @internal (private)
      */
     RuleBasedBreakIterator(RBBIDataHeader* data, UErrorCode &status);
 
index f2de96e..7b9f709 100644 (file)
@@ -39,8 +39,6 @@
  */
 #define U_FOLD_CASE_EXCLUDE_SPECIAL_I 1
 
-#ifndef U_HIDE_DRAFT_API
-
 /**
  * Titlecase the string as a whole rather than each word.
  * (Titlecase only the character at index 0, possibly adjusted.)
@@ -50,7 +48,7 @@
  * including both an options bit and an explicit BreakIterator.
  *
  * @see U_TITLECASE_ADJUST_TO_CASED
- * @draft ICU 60
+ * @stable ICU 60
  */
 #define U_TITLECASE_WHOLE_STRING 0x20
 
  * including both an options bit and an explicit BreakIterator.
  *
  * @see U_TITLECASE_ADJUST_TO_CASED
- * @draft ICU 60
+ * @stable ICU 60
  */
 #define U_TITLECASE_SENTENCES 0x40
 
-#endif  // U_HIDE_DRAFT_API
-
 /**
  * Do not lowercase non-initial parts of words when titlecasing.
  * Option bit for titlecasing APIs that take an options bit set.
  */
 #define U_TITLECASE_NO_BREAK_ADJUSTMENT 0x200
 
-#ifndef U_HIDE_DRAFT_API
-
 /**
  * Adjust each titlecasing BreakIterator index to the next cased character.
  * (See the Unicode Standard, chapter 3, Default Case Conversion, R3 toTitlecase(X).)
  * It is an error to specify multiple titlecasing adjustment options together.
  *
  * @see U_TITLECASE_NO_BREAK_ADJUSTMENT
- * @draft ICU 60
+ * @stable ICU 60
  */
 #define U_TITLECASE_ADJUST_TO_CASED 0x400
 
  * @see CaseMap
  * @see Edits
  * @see Normalizer2
- * @draft ICU 60
+ * @stable ICU 60
  */
 #define U_EDITS_NO_RESET 0x2000
 
  * @see CaseMap
  * @see Edits
  * @see Normalizer2
- * @draft ICU 60
+ * @stable ICU 60
  */
 #define U_OMIT_UNCHANGED_TEXT 0x4000
 
-#endif  // U_HIDE_DRAFT_API
-
 /**
  * Option bit for u_strCaseCompare, u_strcasecmp, unorm_compare, etc:
  * Compare strings in code point order instead of code unit order.
index caeae51..fe99fdb 100644 (file)
  */
 
 // Forward declaration.
+/// \cond
 struct UHashtable;
 typedef struct UHashtable UHashtable;
+/// \endcond
 
 /**
  * Build options for BytesTrieBuilder and CharsTrieBuilder.
@@ -64,7 +66,7 @@ class U_COMMON_API StringTrieBuilder : public UObject {
 public:
 #ifndef U_HIDE_INTERNAL_API
     /** @internal */
-    static UBool hashNode(const void *node);
+    static int32_t hashNode(const void *node);
     /** @internal */
     static UBool equalNodes(const void *left, const void *right);
 #endif  /* U_HIDE_INTERNAL_API */
@@ -188,7 +190,10 @@ protected:
 
     // Do not conditionalize the following with #ifndef U_HIDE_INTERNAL_API,
     // it is needed for layout of other objects.
-    /** @internal */
+    /**
+     * @internal
+     * \cond
+     */
     class Node : public UObject {
     public:
         Node(int32_t initialHash) : hash(initialHash), offset(0) {}
@@ -391,7 +396,9 @@ protected:
         int32_t length;
         Node *next;  // A branch sub-node.
     };
+
 #endif  /* U_HIDE_INTERNAL_API */
+    /// \endcond
 
     /** @internal */
     virtual Node *createLinearMatchNode(int32_t i, int32_t unitIndex, int32_t length,
index 254a5bf..f4875c8 100644 (file)
  * these special values are designed that way. Also, the implementation
  * assumes that UBIDI_MAX_EXPLICIT_LEVEL is odd.
  *
+ * Note: The numeric values of the related constants will not change:
+ * They are tied to the use of 7-bit byte values (plus the override bit)
+ * and of the UBiDiLevel=uint8_t data type in this API.
+ *
  * @see UBIDI_DEFAULT_LTR
  * @see UBIDI_DEFAULT_RTL
  * @see UBIDI_LEVEL_OVERRIDE
@@ -386,6 +390,8 @@ typedef uint8_t UBiDiLevel;
 
 /**
  * Maximum explicit embedding level.
+ * Same as the max_depth value in the
+ * <a href="http://www.unicode.org/reports/tr9/#BD2">Unicode Bidirectional Algorithm</a>.
  * (The maximum resolved level can be up to <code>UBIDI_MAX_EXPLICIT_LEVEL+1</code>).
  * @stable ICU 2.0
  */
@@ -1996,7 +2002,7 @@ U_CDECL_BEGIN
  *
  * @return The directional property / Bidi class for the given code point
  *         <code>c</code> if the default class has been overridden, or
- *         <code>#U_BIDI_CLASS_DEFAULT=u_getIntPropertyMaxValue(UCHAR_BIDI_CLASS)+1</code>
+ *         <code>u_getIntPropertyMaxValue(UCHAR_BIDI_CLASS)+1</code>
  *         if the standard Bidi class value for <code>c</code> is to be used.
  * @see ubidi_setClassCallback
  * @see ubidi_getClassCallback
@@ -2010,7 +2016,7 @@ U_CDECL_END
 /**
  * Retrieve the Bidi class for a given code point.
  * <p>If a <code>#UBiDiClassCallback</code> callback is defined and returns a
- * value other than <code>#U_BIDI_CLASS_DEFAULT=u_getIntPropertyMaxValue(UCHAR_BIDI_CLASS)+1</code>,
+ * value other than <code>u_getIntPropertyMaxValue(UCHAR_BIDI_CLASS)+1</code>,
  * that value is used; otherwise the default class determination mechanism is invoked.</p>
  *
  * @param pBiDi is the paragraph <code>UBiDi</code> object.
index 627b005..5c08ed5 100644 (file)
 /**
  * \file
  * \brief Bidi Transformations
+ */
+
+/**
+ * `UBiDiOrder` indicates the order of text.
  *
- * <code>UBiDiOrder</code> indicates the order of text.<p>
  * This bidi transformation engine supports all possible combinations (4 in
  * total) of input and output text order:
- * <ul>
- * <li><logical input, visual output>: unless the output direction is RTL, this
- * corresponds to a normal operation of the Bidi algorithm as described in the
- * Unicode Technical Report and implemented by <code>UBiDi</code> when the
- * reordering mode is set to <code>UBIDI_REORDER_DEFAULT</code>. Visual RTL
- * mode is not supported by <code>UBiDi</code> and is accomplished through
- * reversing a visual LTR string,</li>
- * <li><visual input, logical output>: unless the input direction is RTL, this
- * corresponds to an "inverse bidi algorithm" in <code>UBiDi</code> with the
- * reordering mode set to <code>UBIDI_REORDER_INVERSE_LIKE_DIRECT</code>.
- * Visual RTL mode is not not supported by <code>UBiDi</code> and is
- * accomplished through reversing a visual LTR string,</li>
- * <li><logical input, logical output>: if the input and output base directions
- * mismatch, this corresponds to the <code>UBiDi</code> implementation with the
- * reordering mode set to <code>UBIDI_REORDER_RUNS_ONLY</code>; and if the
- * input and output base directions are identical, the transformation engine
- * will only handle character mirroring and Arabic shaping operations without
- * reordering,</li>
- * <li><visual input, visual output>: this reordering mode is not supported by
- * the <code>UBiDi</code> engine; it implies character mirroring, Arabic
- * shaping, and - if the input/output base directions mismatch -  string
- * reverse operations.</li>
- * </ul>
+ *
+ *   - <logical input, visual output>: unless the output direction is RTL, this
+ *     corresponds to a normal operation of the Bidi algorithm as described in the
+ *     Unicode Technical Report and implemented by `UBiDi` when the
+ *     reordering mode is set to `UBIDI_REORDER_DEFAULT`. Visual RTL
+ *     mode is not supported by `UBiDi` and is accomplished through
+ *     reversing a visual LTR string,
+ *
+ *   - <visual input, logical output>: unless the input direction is RTL, this
+ *     corresponds to an "inverse bidi algorithm" in `UBiDi` with the
+ *     reordering mode set to `UBIDI_REORDER_INVERSE_LIKE_DIRECT`.
+ *     Visual RTL mode is not not supported by `UBiDi` and is
+ *     accomplished through reversing a visual LTR string,
+ *
+ *   - <logical input, logical output>: if the input and output base directions
+ *     mismatch, this corresponds to the `UBiDi` implementation with the
+ *     reordering mode set to `UBIDI_REORDER_RUNS_ONLY`; and if the
+ *     input and output base directions are identical, the transformation engine
+ *     will only handle character mirroring and Arabic shaping operations without
+ *     reordering,
+ *
+ *   - <visual input, visual output>: this reordering mode is not supported by
+ *     the `UBiDi` engine; it implies character mirroring, Arabic
+ *     shaping, and - if the input/output base directions mismatch -  string
+ *     reverse operations.
  * @see ubidi_setInverse
  * @see ubidi_setReorderingMode
  * @see UBIDI_REORDER_DEFAULT
index 6d31083..9e180db 100644 (file)
 
 #include "unicode/utypes.h"
 #include "unicode/stringoptions.h"
+#include "unicode/ucpmap.h"
+
+#if !defined(USET_DEFINED) && !defined(U_IN_DOXYGEN)
+
+#define USET_DEFINED
+
+/**
+ * USet is the C API type corresponding to C++ class UnicodeSet.
+ * It is forward-declared here to avoid including unicode/uset.h file if related
+ * APIs are not used.
+ *
+ * @see ucnv_getUnicodeSet
+ * @stable ICU 2.4
+ */
+typedef struct USet USet;
+
+#endif
+
 
 U_CDECL_BEGIN
 
@@ -61,6 +79,18 @@ U_CDECL_BEGIN
  * "About the Unicode Character Database" (http://www.unicode.org/ucd/)
  * and the ICU User Guide chapter on Properties (http://icu-project.org/userguide/properties.html).
  *
+ * Many properties are accessible via generic functions that take a UProperty selector.
+ * - u_hasBinaryProperty() returns a binary value (TRUE/FALSE) per property and code point.
+ * - u_getIntPropertyValue() returns an integer value per property and code point.
+ *   For each supported enumerated or catalog property, there is
+ *   an enum type for all of the property's values, and
+ *   u_getIntPropertyValue() returns the numeric values of those constants.
+ * - u_getBinaryPropertySet() returns a set for each ICU-supported binary property with
+ *   all code points for which the property is true.
+ * - u_getIntPropertyMap() returns a map for each
+ *   ICU-supported enumerated/catalog/int-valued property which
+ *   maps all Unicode code points to their values for that property.
+ *
  * Many functions are designed to match java.lang.Character functions.
  * See the individual function documentation,
  * and see the JDK 1.4 java.lang.Character documentation
@@ -546,12 +576,34 @@ typedef enum UProperty {
         (http://www.unicode.org/reports/tr9/)
         Returns UBidiPairedBracketType values. @stable ICU 52 */
     UCHAR_BIDI_PAIRED_BRACKET_TYPE=0x1015,
+    /**
+     * Enumerated property Indic_Positional_Category.
+     * New in Unicode 6.0 as provisional property Indic_Matra_Category;
+     * renamed and changed to informative in Unicode 8.0.
+     * See http://www.unicode.org/reports/tr44/#IndicPositionalCategory.txt
+     * @stable ICU 63
+     */
+    UCHAR_INDIC_POSITIONAL_CATEGORY=0x1016,
+    /**
+     * Enumerated property Indic_Syllabic_Category.
+     * New in Unicode 6.0 as provisional; informative since Unicode 8.0.
+     * See http://www.unicode.org/reports/tr44/#IndicSyllabicCategory.txt
+     * @stable ICU 63
+     */
+    UCHAR_INDIC_SYLLABIC_CATEGORY=0x1017,
+    /**
+     * Enumerated property Vertical_Orientation.
+     * Used for UAX #50 Unicode Vertical Text Layout (https://www.unicode.org/reports/tr50/).
+     * New as a UCD property in Unicode 10.0.
+     * @stable ICU 63
+     */
+    UCHAR_VERTICAL_ORIENTATION=0x1018,
 #ifndef U_HIDE_DEPRECATED_API
     /**
      * One more than the last constant for enumerated/integer Unicode properties.
      * @deprecated ICU 58 The numeric value may change over time, see ICU ticket #12420.
      */
-    UCHAR_INT_LIMIT=0x1016,
+    UCHAR_INT_LIMIT=0x1019,
 #endif  // U_HIDE_DEPRECATED_API
 
     /** Bitmask property General_Category_Mask.
@@ -2321,6 +2373,161 @@ typedef enum UHangulSyllableType {
 } UHangulSyllableType;
 
 /**
+ * Indic Positional Category constants.
+ *
+ * @see UCHAR_INDIC_POSITIONAL_CATEGORY
+ * @stable ICU 63
+ */
+typedef enum UIndicPositionalCategory {
+    /*
+     * Note: UIndicPositionalCategory constants are parsed by preparseucd.py.
+     * It matches lines like
+     *     U_INPC_<Unicode Indic_Positional_Category value name>
+     */
+
+    /** @stable ICU 63 */
+    U_INPC_NA,
+    /** @stable ICU 63 */
+    U_INPC_BOTTOM,
+    /** @stable ICU 63 */
+    U_INPC_BOTTOM_AND_LEFT,
+    /** @stable ICU 63 */
+    U_INPC_BOTTOM_AND_RIGHT,
+    /** @stable ICU 63 */
+    U_INPC_LEFT,
+    /** @stable ICU 63 */
+    U_INPC_LEFT_AND_RIGHT,
+    /** @stable ICU 63 */
+    U_INPC_OVERSTRUCK,
+    /** @stable ICU 63 */
+    U_INPC_RIGHT,
+    /** @stable ICU 63 */
+    U_INPC_TOP,
+    /** @stable ICU 63 */
+    U_INPC_TOP_AND_BOTTOM,
+    /** @stable ICU 63 */
+    U_INPC_TOP_AND_BOTTOM_AND_RIGHT,
+    /** @stable ICU 63 */
+    U_INPC_TOP_AND_LEFT,
+    /** @stable ICU 63 */
+    U_INPC_TOP_AND_LEFT_AND_RIGHT,
+    /** @stable ICU 63 */
+    U_INPC_TOP_AND_RIGHT,
+    /** @stable ICU 63 */
+    U_INPC_VISUAL_ORDER_LEFT,
+} UIndicPositionalCategory;
+
+/**
+ * Indic Syllabic Category constants.
+ *
+ * @see UCHAR_INDIC_SYLLABIC_CATEGORY
+ * @stable ICU 63
+ */
+typedef enum UIndicSyllabicCategory {
+    /*
+     * Note: UIndicSyllabicCategory constants are parsed by preparseucd.py.
+     * It matches lines like
+     *     U_INSC_<Unicode Indic_Syllabic_Category value name>
+     */
+
+    /** @stable ICU 63 */
+    U_INSC_OTHER,
+    /** @stable ICU 63 */
+    U_INSC_AVAGRAHA,
+    /** @stable ICU 63 */
+    U_INSC_BINDU,
+    /** @stable ICU 63 */
+    U_INSC_BRAHMI_JOINING_NUMBER,
+    /** @stable ICU 63 */
+    U_INSC_CANTILLATION_MARK,
+    /** @stable ICU 63 */
+    U_INSC_CONSONANT,
+    /** @stable ICU 63 */
+    U_INSC_CONSONANT_DEAD,
+    /** @stable ICU 63 */
+    U_INSC_CONSONANT_FINAL,
+    /** @stable ICU 63 */
+    U_INSC_CONSONANT_HEAD_LETTER,
+    /** @stable ICU 63 */
+    U_INSC_CONSONANT_INITIAL_POSTFIXED,
+    /** @stable ICU 63 */
+    U_INSC_CONSONANT_KILLER,
+    /** @stable ICU 63 */
+    U_INSC_CONSONANT_MEDIAL,
+    /** @stable ICU 63 */
+    U_INSC_CONSONANT_PLACEHOLDER,
+    /** @stable ICU 63 */
+    U_INSC_CONSONANT_PRECEDING_REPHA,
+    /** @stable ICU 63 */
+    U_INSC_CONSONANT_PREFIXED,
+    /** @stable ICU 63 */
+    U_INSC_CONSONANT_SUBJOINED,
+    /** @stable ICU 63 */
+    U_INSC_CONSONANT_SUCCEEDING_REPHA,
+    /** @stable ICU 63 */
+    U_INSC_CONSONANT_WITH_STACKER,
+    /** @stable ICU 63 */
+    U_INSC_GEMINATION_MARK,
+    /** @stable ICU 63 */
+    U_INSC_INVISIBLE_STACKER,
+    /** @stable ICU 63 */
+    U_INSC_JOINER,
+    /** @stable ICU 63 */
+    U_INSC_MODIFYING_LETTER,
+    /** @stable ICU 63 */
+    U_INSC_NON_JOINER,
+    /** @stable ICU 63 */
+    U_INSC_NUKTA,
+    /** @stable ICU 63 */
+    U_INSC_NUMBER,
+    /** @stable ICU 63 */
+    U_INSC_NUMBER_JOINER,
+    /** @stable ICU 63 */
+    U_INSC_PURE_KILLER,
+    /** @stable ICU 63 */
+    U_INSC_REGISTER_SHIFTER,
+    /** @stable ICU 63 */
+    U_INSC_SYLLABLE_MODIFIER,
+    /** @stable ICU 63 */
+    U_INSC_TONE_LETTER,
+    /** @stable ICU 63 */
+    U_INSC_TONE_MARK,
+    /** @stable ICU 63 */
+    U_INSC_VIRAMA,
+    /** @stable ICU 63 */
+    U_INSC_VISARGA,
+    /** @stable ICU 63 */
+    U_INSC_VOWEL,
+    /** @stable ICU 63 */
+    U_INSC_VOWEL_DEPENDENT,
+    /** @stable ICU 63 */
+    U_INSC_VOWEL_INDEPENDENT,
+} UIndicSyllabicCategory;
+
+/**
+ * Vertical Orientation constants.
+ *
+ * @see UCHAR_VERTICAL_ORIENTATION
+ * @stable ICU 63
+ */
+typedef enum UVerticalOrientation {
+    /*
+     * Note: UVerticalOrientation constants are parsed by preparseucd.py.
+     * It matches lines like
+     *     U_VO_<Unicode Vertical_Orientation value name>
+     */
+
+    /** @stable ICU 63 */
+    U_VO_ROTATED,
+    /** @stable ICU 63 */
+    U_VO_TRANSFORMED_ROTATED,
+    /** @stable ICU 63 */
+    U_VO_TRANSFORMED_UPRIGHT,
+    /** @stable ICU 63 */
+    U_VO_UPRIGHT,
+} UVerticalOrientation;
+
+/**
  * Check a binary Unicode property for a code point.
  *
  * Unicode, especially in version 3.2, defines many more properties than the
@@ -2342,6 +2549,7 @@ typedef enum UHangulSyllableType {
  *         does not have data for the property at all, or not for this code point.
  *
  * @see UProperty
+ * @see u_getBinaryPropertySet
  * @see u_getIntPropertyValue
  * @see u_getUnicodeVersion
  * @stable ICU 2.1
@@ -2349,6 +2557,28 @@ typedef enum UHangulSyllableType {
 U_STABLE UBool U_EXPORT2
 u_hasBinaryProperty(UChar32 c, UProperty which);
 
+#ifndef U_HIDE_DRAFT_API
+
+/**
+ * Returns a frozen USet for a binary property.
+ * The library retains ownership over the returned object.
+ * Sets an error code if the property number is not one for a binary property.
+ *
+ * The returned set contains all code points for which the property is true.
+ *
+ * @param property UCHAR_BINARY_START..UCHAR_BINARY_LIMIT-1
+ * @param pErrorCode an in/out ICU UErrorCode
+ * @return the property as a set
+ * @see UProperty
+ * @see u_hasBinaryProperty
+ * @see Unicode::fromUSet
+ * @draft ICU 63
+ */
+U_CAPI const USet * U_EXPORT2
+u_getBinaryPropertySet(UProperty property, UErrorCode *pErrorCode);
+
+#endif  // U_HIDE_DRAFT_API
+
 /**
  * Check if a code point has the Alphabetic Unicode property.
  * Same as u_hasBinaryProperty(c, UCHAR_ALPHABETIC).
@@ -2449,6 +2679,7 @@ u_isUWhiteSpace(UChar32 c);
  * @see u_hasBinaryProperty
  * @see u_getIntPropertyMinValue
  * @see u_getIntPropertyMaxValue
+ * @see u_getIntPropertyMap
  * @see u_getUnicodeVersion
  * @stable ICU 2.2
  */
@@ -2505,6 +2736,28 @@ u_getIntPropertyMinValue(UProperty which);
 U_STABLE int32_t U_EXPORT2
 u_getIntPropertyMaxValue(UProperty which);
 
+#ifndef U_HIDE_DRAFT_API
+
+/**
+ * Returns an immutable UCPMap for an enumerated/catalog/int-valued property.
+ * The library retains ownership over the returned object.
+ * Sets an error code if the property number is not one for an "int property".
+ *
+ * The returned object maps all Unicode code points to their values for that property.
+ * For documentation of the integer values see u_getIntPropertyValue().
+ *
+ * @param property UCHAR_INT_START..UCHAR_INT_LIMIT-1
+ * @param pErrorCode an in/out ICU UErrorCode
+ * @return the property as a map
+ * @see UProperty
+ * @see u_getIntPropertyValue
+ * @draft ICU 63
+ */
+U_CAPI const UCPMap * U_EXPORT2
+u_getIntPropertyMap(UProperty property, UErrorCode *pErrorCode);
+
+#endif  // U_HIDE_DRAFT_API
+
 /**
  * Get the numeric value for a Unicode code point as defined in the
  * Unicode Character Database.
index 53b4c6f..ec7c5f3 100644 (file)
 #include "unicode/uenum.h"
 #include "unicode/localpointer.h"
 
-#ifndef __USET_H__
+#if !defined(USET_DEFINED) && !defined(U_IN_DOXYGEN)
+
+#define USET_DEFINED
 
 /**
- * USet is the C API type for Unicode sets.
- * It is forward-declared here to avoid including the header file if related
+ * USet is the C API type corresponding to C++ class UnicodeSet.
+ * It is forward-declared here to avoid including unicode/uset.h file if related
  * conversion APIs are not used.
- * See unicode/uset.h
  *
  * @see ucnv_getUnicodeSet
- * @stable ICU 2.6
+ * @stable ICU 2.4
  */
-struct USet;
-/** @stable ICU 2.6 */
 typedef struct USet USet;
 
 #endif
index 7ddf4e6..857ed56 100644 (file)
  */
 #ifdef U_HAVE_LIB_SUFFIX
     /* Use the predefined value. */
-#elif defined(U_LIB_SUFFIX_C_NAME)
+#elif defined(U_LIB_SUFFIX_C_NAME) || defined(U_IN_DOXYGEN)
 #   define U_HAVE_LIB_SUFFIX 1
 #endif
 
 #   define UCONFIG_HAVE_PARSEALLINPUT 1
 #endif
 
-
-/**
- * \def UCONFIG_FORMAT_FASTPATHS_49
- * This switch turns on other formatting fastpaths. Binary incompatible in object DecimalFormat and DecimalFormatSymbols
- *
- * @internal
- */
-#ifndef UCONFIG_FORMAT_FASTPATHS_49
-#   define UCONFIG_FORMAT_FASTPATHS_49 1
-#endif
-
 /**
  * \def UCONFIG_NO_FILTERED_BREAK_ITERATION
  * This switch turns off filtered break iteration code.
diff --git a/source/common/unicode/ucpmap.h b/source/common/unicode/ucpmap.h
new file mode 100644 (file)
index 0000000..f2c42b6
--- /dev/null
@@ -0,0 +1,162 @@
+// © 2018 and later: Unicode, Inc. and others.
+// License & terms of use: http://www.unicode.org/copyright.html
+
+// ucpmap.h
+// created: 2018sep03 Markus W. Scherer
+
+#ifndef __UCPMAP_H__
+#define __UCPMAP_H__
+
+#include "unicode/utypes.h"
+
+#ifndef U_HIDE_DRAFT_API
+
+U_CDECL_BEGIN
+
+/**
+ * \file
+ *
+ * This file defines an abstract map from Unicode code points to integer values.
+ *
+ * @see UCPMap
+ * @see UCPTrie
+ * @see UMutableCPTrie
+ */
+
+/**
+ * Abstract map from Unicode code points (U+0000..U+10FFFF) to integer values.
+ *
+ * @see UCPTrie
+ * @see UMutableCPTrie
+ * @draft ICU 63
+ */
+typedef struct UCPMap UCPMap;
+
+/**
+ * Selectors for how ucpmap_getRange() etc. should report value ranges overlapping with surrogates.
+ * Most users should use UCPMAP_RANGE_NORMAL.
+ *
+ * @see ucpmap_getRange
+ * @see ucptrie_getRange
+ * @see umutablecptrie_getRange
+ * @draft ICU 63
+ */
+enum UCPMapRangeOption {
+    /**
+     * ucpmap_getRange() enumerates all same-value ranges as stored in the map.
+     * Most users should use this option.
+     * @draft ICU 63
+     */
+    UCPMAP_RANGE_NORMAL,
+    /**
+     * ucpmap_getRange() enumerates all same-value ranges as stored in the map,
+     * except that lead surrogates (U+D800..U+DBFF) are treated as having the
+     * surrogateValue, which is passed to getRange() as a separate parameter.
+     * The surrogateValue is not transformed via filter().
+     * See U_IS_LEAD(c).
+     *
+     * Most users should use UCPMAP_RANGE_NORMAL instead.
+     *
+     * This option is useful for maps that map surrogate code *units* to
+     * special values optimized for UTF-16 string processing
+     * or for special error behavior for unpaired surrogates,
+     * but those values are not to be associated with the lead surrogate code *points*.
+     * @draft ICU 63
+     */
+    UCPMAP_RANGE_FIXED_LEAD_SURROGATES,
+    /**
+     * ucpmap_getRange() enumerates all same-value ranges as stored in the map,
+     * except that all surrogates (U+D800..U+DFFF) are treated as having the
+     * surrogateValue, which is passed to getRange() as a separate parameter.
+     * The surrogateValue is not transformed via filter().
+     * See U_IS_SURROGATE(c).
+     *
+     * Most users should use UCPMAP_RANGE_NORMAL instead.
+     *
+     * This option is useful for maps that map surrogate code *units* to
+     * special values optimized for UTF-16 string processing
+     * or for special error behavior for unpaired surrogates,
+     * but those values are not to be associated with the lead surrogate code *points*.
+     * @draft ICU 63
+     */
+    UCPMAP_RANGE_FIXED_ALL_SURROGATES
+};
+#ifndef U_IN_DOXYGEN
+typedef enum UCPMapRangeOption UCPMapRangeOption;
+#endif
+
+/**
+ * Returns the value for a code point as stored in the map, with range checking.
+ * Returns an implementation-defined error value if c is not in the range 0..U+10FFFF.
+ *
+ * @param map the map
+ * @param c the code point
+ * @return the map value,
+ *         or an implementation-defined error value if the code point is not in the range 0..U+10FFFF
+ * @draft ICU 63
+ */
+U_CAPI uint32_t U_EXPORT2
+ucpmap_get(const UCPMap *map, UChar32 c);
+
+/**
+ * Callback function type: Modifies a map value.
+ * Optionally called by ucpmap_getRange()/ucptrie_getRange()/umutablecptrie_getRange().
+ * The modified value will be returned by the getRange function.
+ *
+ * Can be used to ignore some of the value bits,
+ * make a filter for one of several values,
+ * return a value index computed from the map value, etc.
+ *
+ * @param context an opaque pointer, as passed into the getRange function
+ * @param value a value from the map
+ * @return the modified value
+ * @draft ICU 63
+ */
+typedef uint32_t U_CALLCONV
+UCPMapValueFilter(const void *context, uint32_t value);
+
+/**
+ * Returns the last code point such that all those from start to there have the same value.
+ * Can be used to efficiently iterate over all same-value ranges in a map.
+ * (This is normally faster than iterating over code points and get()ting each value,
+ * but much slower than a data structure that stores ranges directly.)
+ *
+ * If the UCPMapValueFilter function pointer is not NULL, then
+ * the value to be delivered is passed through that function, and the return value is the end
+ * of the range where all values are modified to the same actual value.
+ * The value is unchanged if that function pointer is NULL.
+ *
+ * Example:
+ * \code
+ * UChar32 start = 0, end;
+ * uint32_t value;
+ * while ((end = ucpmap_getRange(map, start, UCPMAP_RANGE_NORMAL, 0,
+ *                               NULL, NULL, &value)) >= 0) {
+ *     // Work with the range start..end and its value.
+ *     start = end + 1;
+ * }
+ * \endcode
+ *
+ * @param map the map
+ * @param start range start
+ * @param option defines whether surrogates are treated normally,
+ *               or as having the surrogateValue; usually UCPMAP_RANGE_NORMAL
+ * @param surrogateValue value for surrogates; ignored if option==UCPMAP_RANGE_NORMAL
+ * @param filter a pointer to a function that may modify the map data value,
+ *     or NULL if the values from the map are to be used unmodified
+ * @param context an opaque pointer that is passed on to the filter function
+ * @param pValue if not NULL, receives the value that every code point start..end has;
+ *     may have been modified by filter(context, map value)
+ *     if that function pointer is not NULL
+ * @return the range end code point, or -1 if start is not a valid code point
+ * @draft ICU 63
+ */
+U_CAPI UChar32 U_EXPORT2
+ucpmap_getRange(const UCPMap *map, UChar32 start,
+                UCPMapRangeOption option, uint32_t surrogateValue,
+                UCPMapValueFilter *filter, const void *context, uint32_t *pValue);
+
+U_CDECL_END
+
+#endif  // U_HIDE_DRAFT_API
+#endif
diff --git a/source/common/unicode/ucptrie.h b/source/common/unicode/ucptrie.h
new file mode 100644 (file)
index 0000000..2718c98
--- /dev/null
@@ -0,0 +1,646 @@
+// © 2017 and later: Unicode, Inc. and others.
+// License & terms of use: http://www.unicode.org/copyright.html
+
+// ucptrie.h (modified from utrie2.h)
+// created: 2017dec29 Markus W. Scherer
+
+#ifndef __UCPTRIE_H__
+#define __UCPTRIE_H__
+
+#include "unicode/utypes.h"
+
+#ifndef U_HIDE_DRAFT_API
+
+#include "unicode/localpointer.h"
+#include "unicode/ucpmap.h"
+#include "unicode/utf8.h"
+
+U_CDECL_BEGIN
+
+/**
+ * \file
+ *
+ * This file defines an immutable Unicode code point trie.
+ *
+ * @see UCPTrie
+ * @see UMutableCPTrie
+ */
+
+#ifndef U_IN_DOXYGEN
+/** @internal */
+typedef union UCPTrieData {
+    /** @internal */
+    const void *ptr0;
+    /** @internal */
+    const uint16_t *ptr16;
+    /** @internal */
+    const uint32_t *ptr32;
+    /** @internal */
+    const uint8_t *ptr8;
+} UCPTrieData;
+#endif
+
+/**
+ * Immutable Unicode code point trie structure.
+ * Fast, reasonably compact, map from Unicode code points (U+0000..U+10FFFF) to integer values.
+ * For details see http://site.icu-project.org/design/struct/utrie
+ *
+ * Do not access UCPTrie fields directly; use public functions and macros.
+ * Functions are easy to use: They support all trie types and value widths.
+ *
+ * When performance is really important, macros provide faster access.
+ * Most macros are specific to either "fast" or "small" tries, see UCPTrieType.
+ * There are "fast" macros for special optimized use cases.
+ *
+ * The macros will return bogus values, or may crash, if used on the wrong type or value width.
+ *
+ * @see UMutableCPTrie
+ * @draft ICU 63
+ */
+struct UCPTrie {
+#ifndef U_IN_DOXYGEN
+    /** @internal */
+    const uint16_t *index;
+    /** @internal */
+    UCPTrieData data;
+
+    /** @internal */
+    int32_t indexLength;
+    /** @internal */
+    int32_t dataLength;
+    /** Start of the last range which ends at U+10FFFF. @internal */
+    UChar32 highStart;
+    /** highStart>>12 @internal */
+    uint16_t shifted12HighStart;
+
+    /** @internal */
+    int8_t type;  // UCPTrieType
+    /** @internal */
+    int8_t valueWidth;  // UCPTrieValueWidth
+
+    /** padding/reserved @internal */
+    uint32_t reserved32;
+    /** padding/reserved @internal */
+    uint16_t reserved16;
+
+    /**
+     * Internal index-3 null block offset.
+     * Set to an impossibly high value (e.g., 0xffff) if there is no dedicated index-3 null block.
+     * @internal
+     */
+    uint16_t index3NullOffset;
+    /**
+     * Internal data null block offset, not shifted.
+     * Set to an impossibly high value (e.g., 0xfffff) if there is no dedicated data null block.
+     * @internal
+     */
+    int32_t dataNullOffset;
+    /** @internal */
+    uint32_t nullValue;
+
+#ifdef UCPTRIE_DEBUG
+    /** @internal */
+    const char *name;
+#endif
+#endif
+};
+#ifndef U_IN_DOXYGEN
+typedef struct UCPTrie UCPTrie;
+#endif
+
+/**
+ * Selectors for the type of a UCPTrie.
+ * Different trade-offs for size vs. speed.
+ *
+ * @see umutablecptrie_buildImmutable
+ * @see ucptrie_openFromBinary
+ * @see ucptrie_getType
+ * @draft ICU 63
+ */
+enum UCPTrieType {
+    /**
+     * For ucptrie_openFromBinary() to accept any type.
+     * ucptrie_getType() will return the actual type.
+     * @draft ICU 63
+     */
+    UCPTRIE_TYPE_ANY = -1,
+    /**
+     * Fast/simple/larger BMP data structure. Use functions and "fast" macros.
+     * @draft ICU 63
+     */
+    UCPTRIE_TYPE_FAST,
+    /**
+     * Small/slower BMP data structure. Use functions and "small" macros.
+     * @draft ICU 63
+     */
+    UCPTRIE_TYPE_SMALL
+};
+#ifndef U_IN_DOXYGEN
+typedef enum UCPTrieType UCPTrieType;
+#endif
+
+/**
+ * Selectors for the number of bits in a UCPTrie data value.
+ *
+ * @see umutablecptrie_buildImmutable
+ * @see ucptrie_openFromBinary
+ * @see ucptrie_getValueWidth
+ * @draft ICU 63
+ */
+enum UCPTrieValueWidth {
+    /**
+     * For ucptrie_openFromBinary() to accept any data value width.
+     * ucptrie_getValueWidth() will return the actual data value width.
+     * @draft ICU 63
+     */
+    UCPTRIE_VALUE_BITS_ANY = -1,
+    /**
+     * The trie stores 16 bits per data value.
+     * It returns them as unsigned values 0..0xffff=65535.
+     * @draft ICU 63
+     */
+    UCPTRIE_VALUE_BITS_16,
+    /**
+     * The trie stores 32 bits per data value.
+     * @draft ICU 63
+     */
+    UCPTRIE_VALUE_BITS_32,
+    /**
+     * The trie stores 8 bits per data value.
+     * It returns them as unsigned values 0..0xff=255.
+     * @draft ICU 63
+     */
+    UCPTRIE_VALUE_BITS_8
+};
+#ifndef U_IN_DOXYGEN
+typedef enum UCPTrieValueWidth UCPTrieValueWidth;
+#endif
+
+/**
+ * Opens a trie from its binary form, stored in 32-bit-aligned memory.
+ * Inverse of ucptrie_toBinary().
+ *
+ * The memory must remain valid and unchanged as long as the trie is used.
+ * You must ucptrie_close() the trie once you are done using it.
+ *
+ * @param type selects the trie type; results in an
+ *             U_INVALID_FORMAT_ERROR if it does not match the binary data;
+ *             use UCPTRIE_TYPE_ANY to accept any type
+ * @param valueWidth selects the number of bits in a data value; results in an
+ *                  U_INVALID_FORMAT_ERROR if it does not match the binary data;
+ *                  use UCPTRIE_VALUE_BITS_ANY to accept any data value width
+ * @param data a pointer to 32-bit-aligned memory containing the binary data of a UCPTrie
+ * @param length the number of bytes available at data;
+ *               can be more than necessary
+ * @param pActualLength receives the actual number of bytes at data taken up by the trie data;
+ *                      can be NULL
+ * @param pErrorCode an in/out ICU UErrorCode
+ * @return the trie
+ *
+ * @see umutablecptrie_open
+ * @see umutablecptrie_buildImmutable
+ * @see ucptrie_toBinary
+ * @draft ICU 63
+ */
+U_CAPI UCPTrie * U_EXPORT2
+ucptrie_openFromBinary(UCPTrieType type, UCPTrieValueWidth valueWidth,
+                       const void *data, int32_t length, int32_t *pActualLength,
+                       UErrorCode *pErrorCode);
+
+/**
+ * Closes a trie and releases associated memory.
+ *
+ * @param trie the trie
+ * @draft ICU 63
+ */
+U_CAPI void U_EXPORT2
+ucptrie_close(UCPTrie *trie);
+
+#if U_SHOW_CPLUSPLUS_API
+
+U_NAMESPACE_BEGIN
+
+/**
+ * \class LocalUCPTriePointer
+ * "Smart pointer" class, closes a UCPTrie via ucptrie_close().
+ * For most methods see the LocalPointerBase base class.
+ *
+ * @see LocalPointerBase
+ * @see LocalPointer
+ * @draft ICU 63
+ */
+U_DEFINE_LOCAL_OPEN_POINTER(LocalUCPTriePointer, UCPTrie, ucptrie_close);
+
+U_NAMESPACE_END
+
+#endif
+
+/**
+ * Returns the trie type.
+ *
+ * @param trie the trie
+ * @return the trie type
+ * @see ucptrie_openFromBinary
+ * @see UCPTRIE_TYPE_ANY
+ * @draft ICU 63
+ */
+U_CAPI UCPTrieType U_EXPORT2
+ucptrie_getType(const UCPTrie *trie);
+
+/**
+ * Returns the number of bits in a trie data value.
+ *
+ * @param trie the trie
+ * @return the number of bits in a trie data value
+ * @see ucptrie_openFromBinary
+ * @see UCPTRIE_VALUE_BITS_ANY
+ * @draft ICU 63
+ */
+U_CAPI UCPTrieValueWidth U_EXPORT2
+ucptrie_getValueWidth(const UCPTrie *trie);
+
+/**
+ * Returns the value for a code point as stored in the trie, with range checking.
+ * Returns the trie error value if c is not in the range 0..U+10FFFF.
+ *
+ * Easier to use than UCPTRIE_FAST_GET() and similar macros but slower.
+ * Easier to use because, unlike the macros, this function works on all UCPTrie
+ * objects, for all types and value widths.
+ *
+ * @param trie the trie
+ * @param c the code point
+ * @return the trie value,
+ *         or the trie error value if the code point is not in the range 0..U+10FFFF
+ * @draft ICU 63
+ */
+U_CAPI uint32_t U_EXPORT2
+ucptrie_get(const UCPTrie *trie, UChar32 c);
+
+/**
+ * Returns the last code point such that all those from start to there have the same value.
+ * Can be used to efficiently iterate over all same-value ranges in a trie.
+ * (This is normally faster than iterating over code points and get()ting each value,
+ * but much slower than a data structure that stores ranges directly.)
+ *
+ * If the UCPMapValueFilter function pointer is not NULL, then
+ * the value to be delivered is passed through that function, and the return value is the end
+ * of the range where all values are modified to the same actual value.
+ * The value is unchanged if that function pointer is NULL.
+ *
+ * Example:
+ * \code
+ * UChar32 start = 0, end;
+ * uint32_t value;
+ * while ((end = ucptrie_getRange(trie, start, UCPMAP_RANGE_NORMAL, 0,
+ *                                NULL, NULL, &value)) >= 0) {
+ *     // Work with the range start..end and its value.
+ *     start = end + 1;
+ * }
+ * \endcode
+ *
+ * @param trie the trie
+ * @param start range start
+ * @param option defines whether surrogates are treated normally,
+ *               or as having the surrogateValue; usually UCPMAP_RANGE_NORMAL
+ * @param surrogateValue value for surrogates; ignored if option==UCPMAP_RANGE_NORMAL
+ * @param filter a pointer to a function that may modify the trie data value,
+ *     or NULL if the values from the trie are to be used unmodified
+ * @param context an opaque pointer that is passed on to the filter function
+ * @param pValue if not NULL, receives the value that every code point start..end has;
+ *     may have been modified by filter(context, trie value)
+ *     if that function pointer is not NULL
+ * @return the range end code point, or -1 if start is not a valid code point
+ * @draft ICU 63
+ */
+U_CAPI UChar32 U_EXPORT2
+ucptrie_getRange(const UCPTrie *trie, UChar32 start,
+                 UCPMapRangeOption option, uint32_t surrogateValue,
+                 UCPMapValueFilter *filter, const void *context, uint32_t *pValue);
+
+/**
+ * Writes a memory-mappable form of the trie into 32-bit aligned memory.
+ * Inverse of ucptrie_openFromBinary().
+ *
+ * @param trie the trie
+ * @param data a pointer to 32-bit-aligned memory to be filled with the trie data;
+ *             can be NULL if capacity==0
+ * @param capacity the number of bytes available at data, or 0 for pure preflighting
+ * @param pErrorCode an in/out ICU UErrorCode;
+ *                   U_BUFFER_OVERFLOW_ERROR if the capacity is too small
+ * @return the number of bytes written or (if buffer overflow) needed for the trie
+ *
+ * @see ucptrie_openFromBinary()
+ * @draft ICU 63
+ */
+U_CAPI int32_t U_EXPORT2
+ucptrie_toBinary(const UCPTrie *trie, void *data, int32_t capacity, UErrorCode *pErrorCode);
+
+/**
+ * Macro parameter value for a trie with 16-bit data values.
+ * Use the name of this macro as a "dataAccess" parameter in other macros.
+ * Do not use this macro in any other way.
+ *
+ * @see UCPTRIE_VALUE_BITS_16
+ * @draft ICU 63
+ */
+#define UCPTRIE_16(trie, i) ((trie)->data.ptr16[i])
+
+/**
+ * Macro parameter value for a trie with 32-bit data values.
+ * Use the name of this macro as a "dataAccess" parameter in other macros.
+ * Do not use this macro in any other way.
+ *
+ * @see UCPTRIE_VALUE_BITS_32
+ * @draft ICU 63
+ */
+#define UCPTRIE_32(trie, i) ((trie)->data.ptr32[i])
+
+/**
+ * Macro parameter value for a trie with 8-bit data values.
+ * Use the name of this macro as a "dataAccess" parameter in other macros.
+ * Do not use this macro in any other way.
+ *
+ * @see UCPTRIE_VALUE_BITS_8
+ * @draft ICU 63
+ */
+#define UCPTRIE_8(trie, i) ((trie)->data.ptr8[i])
+
+/**
+ * Returns a trie value for a code point, with range checking.
+ * Returns the trie error value if c is not in the range 0..U+10FFFF.
+ *
+ * @param trie (const UCPTrie *, in) the trie; must have type UCPTRIE_TYPE_FAST
+ * @param dataAccess UCPTRIE_16, UCPTRIE_32, or UCPTRIE_8 according to the trie’s value width
+ * @param c (UChar32, in) the input code point
+ * @return The code point's trie value.
+ * @draft ICU 63
+ */
+#define UCPTRIE_FAST_GET(trie, dataAccess, c) dataAccess(trie, _UCPTRIE_CP_INDEX(trie, 0xffff, c))
+
+/**
+ * Returns a 16-bit trie value for a code point, with range checking.
+ * Returns the trie error value if c is not in the range U+0000..U+10FFFF.
+ *
+ * @param trie (const UCPTrie *, in) the trie; must have type UCPTRIE_TYPE_SMALL
+ * @param dataAccess UCPTRIE_16, UCPTRIE_32, or UCPTRIE_8 according to the trie’s value width
+ * @param c (UChar32, in) the input code point
+ * @return The code point's trie value.
+ * @draft ICU 63
+ */
+#define UCPTRIE_SMALL_GET(trie, dataAccess, c) \
+    dataAccess(trie, _UCPTRIE_CP_INDEX(trie, UCPTRIE_SMALL_MAX, c))
+
+/**
+ * UTF-16: Reads the next code point (UChar32 c, out), post-increments src,
+ * and gets a value from the trie.
+ * Sets the trie error value if c is an unpaired surrogate.
+ *
+ * @param trie (const UCPTrie *, in) the trie; must have type UCPTRIE_TYPE_FAST
+ * @param dataAccess UCPTRIE_16, UCPTRIE_32, or UCPTRIE_8 according to the trie’s value width
+ * @param src (const UChar *, in/out) the source text pointer
+ * @param limit (const UChar *, in) the limit pointer for the text, or NULL if NUL-terminated
+ * @param c (UChar32, out) variable for the code point
+ * @param result (out) variable for the trie lookup result
+ * @draft ICU 63
+ */
+#define UCPTRIE_FAST_U16_NEXT(trie, dataAccess, src, limit, c, result) { \
+    (c) = *(src)++; \
+    int32_t __index; \
+    if (!U16_IS_SURROGATE(c)) { \
+        __index = _UCPTRIE_FAST_INDEX(trie, c); \
+    } else { \
+        uint16_t __c2; \
+        if (U16_IS_SURROGATE_LEAD(c) && (src) != (limit) && U16_IS_TRAIL(__c2 = *(src))) { \
+            ++(src); \
+            (c) = U16_GET_SUPPLEMENTARY((c), __c2); \
+            __index = _UCPTRIE_SMALL_INDEX(trie, c); \
+        } else { \
+            __index = (trie)->dataLength - UCPTRIE_ERROR_VALUE_NEG_DATA_OFFSET; \
+        } \
+    } \
+    (result) = dataAccess(trie, __index); \
+}
+
+/**
+ * UTF-16: Reads the previous code point (UChar32 c, out), pre-decrements src,
+ * and gets a value from the trie.
+ * Sets the trie error value if c is an unpaired surrogate.
+ *
+ * @param trie (const UCPTrie *, in) the trie; must have type UCPTRIE_TYPE_FAST
+ * @param dataAccess UCPTRIE_16, UCPTRIE_32, or UCPTRIE_8 according to the trie’s value width
+ * @param start (const UChar *, in) the start pointer for the text
+ * @param src (const UChar *, in/out) the source text pointer
+ * @param c (UChar32, out) variable for the code point
+ * @param result (out) variable for the trie lookup result
+ * @draft ICU 63
+ */
+#define UCPTRIE_FAST_U16_PREV(trie, dataAccess, start, src, c, result) { \
+    (c) = *--(src); \
+    int32_t __index; \
+    if (!U16_IS_SURROGATE(c)) { \
+        __index = _UCPTRIE_FAST_INDEX(trie, c); \
+    } else { \
+        uint16_t __c2; \
+        if (U16_IS_SURROGATE_TRAIL(c) && (src) != (start) && U16_IS_LEAD(__c2 = *((src) - 1))) { \
+            --(src); \
+            (c) = U16_GET_SUPPLEMENTARY(__c2, (c)); \
+            __index = _UCPTRIE_SMALL_INDEX(trie, c); \
+        } else { \
+            __index = (trie)->dataLength - UCPTRIE_ERROR_VALUE_NEG_DATA_OFFSET; \
+        } \
+    } \
+    (result) = dataAccess(trie, __index); \
+}
+
+/**
+ * UTF-8: Post-increments src and gets a value from the trie.
+ * Sets the trie error value for an ill-formed byte sequence.
+ *
+ * Unlike UCPTRIE_FAST_U16_NEXT() this UTF-8 macro does not provide the code point
+ * because it would be more work to do so and is often not needed.
+ * If the trie value differs from the error value, then the byte sequence is well-formed,
+ * and the code point can be assembled without revalidation.
+ *
+ * @param trie (const UCPTrie *, in) the trie; must have type UCPTRIE_TYPE_FAST
+ * @param dataAccess UCPTRIE_16, UCPTRIE_32, or UCPTRIE_8 according to the trie’s value width
+ * @param src (const char *, in/out) the source text pointer
+ * @param limit (const char *, in) the limit pointer for the text (must not be NULL)
+ * @param result (out) variable for the trie lookup result
+ * @draft ICU 63
+ */
+#define UCPTRIE_FAST_U8_NEXT(trie, dataAccess, src, limit, result) { \
+    int32_t __lead = (uint8_t)*(src)++; \
+    if (!U8_IS_SINGLE(__lead)) { \
+        uint8_t __t1, __t2, __t3; \
+        if ((src) != (limit) && \
+            (__lead >= 0xe0 ? \
+                __lead < 0xf0 ?  /* U+0800..U+FFFF except surrogates */ \
+                    U8_LEAD3_T1_BITS[__lead &= 0xf] & (1 << ((__t1 = *(src)) >> 5)) && \
+                    ++(src) != (limit) && (__t2 = *(src) - 0x80) <= 0x3f && \
+                    (__lead = ((int32_t)(trie)->index[(__lead << 6) + (__t1 & 0x3f)]) + __t2, 1) \
+                :  /* U+10000..U+10FFFF */ \
+                    (__lead -= 0xf0) <= 4 && \
+                    U8_LEAD4_T1_BITS[(__t1 = *(src)) >> 4] & (1 << __lead) && \
+                    (__lead = (__lead << 6) | (__t1 & 0x3f), ++(src) != (limit)) && \
+                    (__t2 = *(src) - 0x80) <= 0x3f && \
+                    ++(src) != (limit) && (__t3 = *(src) - 0x80) <= 0x3f && \
+                    (__lead = __lead >= (trie)->shifted12HighStart ? \
+                        (trie)->dataLength - UCPTRIE_HIGH_VALUE_NEG_DATA_OFFSET : \
+                        ucptrie_internalSmallU8Index((trie), __lead, __t2, __t3), 1) \
+            :  /* U+0080..U+07FF */ \
+                __lead >= 0xc2 && (__t1 = *(src) - 0x80) <= 0x3f && \
+                (__lead = (int32_t)(trie)->index[__lead & 0x1f] + __t1, 1))) { \
+            ++(src); \
+        } else { \
+            __lead = (trie)->dataLength - UCPTRIE_ERROR_VALUE_NEG_DATA_OFFSET;  /* ill-formed*/ \
+        } \
+    } \
+    (result) = dataAccess(trie, __lead); \
+}
+
+/**
+ * UTF-8: Pre-decrements src and gets a value from the trie.
+ * Sets the trie error value for an ill-formed byte sequence.
+ *
+ * Unlike UCPTRIE_FAST_U16_PREV() this UTF-8 macro does not provide the code point
+ * because it would be more work to do so and is often not needed.
+ * If the trie value differs from the error value, then the byte sequence is well-formed,
+ * and the code point can be assembled without revalidation.
+ *
+ * @param trie (const UCPTrie *, in) the trie; must have type UCPTRIE_TYPE_FAST
+ * @param dataAccess UCPTRIE_16, UCPTRIE_32, or UCPTRIE_8 according to the trie’s value width
+ * @param start (const char *, in) the start pointer for the text
+ * @param src (const char *, in/out) the source text pointer
+ * @param result (out) variable for the trie lookup result
+ * @draft ICU 63
+ */
+#define UCPTRIE_FAST_U8_PREV(trie, dataAccess, start, src, result) { \
+    int32_t __index = (uint8_t)*--(src); \
+    if (!U8_IS_SINGLE(__index)) { \
+        __index = ucptrie_internalU8PrevIndex((trie), __index, (const uint8_t *)(start), \
+                                              (const uint8_t *)(src)); \
+        (src) -= __index & 7; \
+        __index >>= 3; \
+    } \
+    (result) = dataAccess(trie, __index); \
+}
+
+/**
+ * Returns a trie value for an ASCII code point, without range checking.
+ *
+ * @param trie (const UCPTrie *, in) the trie (of either fast or small type)
+ * @param dataAccess UCPTRIE_16, UCPTRIE_32, or UCPTRIE_8 according to the trie’s value width
+ * @param c (UChar32, in) the input code point; must be U+0000..U+007F
+ * @return The ASCII code point's trie value.
+ * @draft ICU 63
+ */
+#define UCPTRIE_ASCII_GET(trie, dataAccess, c) dataAccess(trie, c)
+
+/**
+ * Returns a trie value for a BMP code point (U+0000..U+FFFF), without range checking.
+ * Can be used to look up a value for a UTF-16 code unit if other parts of
+ * the string processing check for surrogates.
+ *
+ * @param trie (const UCPTrie *, in) the trie; must have type UCPTRIE_TYPE_FAST
+ * @param dataAccess UCPTRIE_16, UCPTRIE_32, or UCPTRIE_8 according to the trie’s value width
+ * @param c (UChar32, in) the input code point, must be U+0000..U+FFFF
+ * @return The BMP code point's trie value.
+ * @draft ICU 63
+ */
+#define UCPTRIE_FAST_BMP_GET(trie, dataAccess, c) dataAccess(trie, _UCPTRIE_FAST_INDEX(trie, c))
+
+/**
+ * Returns a trie value for a supplementary code point (U+10000..U+10FFFF),
+ * without range checking.
+ *
+ * @param trie (const UCPTrie *, in) the trie; must have type UCPTRIE_TYPE_FAST
+ * @param dataAccess UCPTRIE_16, UCPTRIE_32, or UCPTRIE_8 according to the trie’s value width
+ * @param c (UChar32, in) the input code point, must be U+10000..U+10FFFF
+ * @return The supplementary code point's trie value.
+ * @draft ICU 63
+ */
+#define UCPTRIE_FAST_SUPP_GET(trie, dataAccess, c) dataAccess(trie, _UCPTRIE_SMALL_INDEX(trie, c))
+
+/* Internal definitions ----------------------------------------------------- */
+
+#ifndef U_IN_DOXYGEN
+
+/**
+ * Internal implementation constants.
+ * These are needed for the API macros, but users should not use these directly.
+ * @internal
+ */
+enum {
+    /** @internal */
+    UCPTRIE_FAST_SHIFT = 6,
+
+    /** Number of entries in a data block for code points below the fast limit. 64=0x40 @internal */
+    UCPTRIE_FAST_DATA_BLOCK_LENGTH = 1 << UCPTRIE_FAST_SHIFT,
+
+    /** Mask for getting the lower bits for the in-fast-data-block offset. @internal */
+    UCPTRIE_FAST_DATA_MASK = UCPTRIE_FAST_DATA_BLOCK_LENGTH - 1,
+
+    /** @internal */
+    UCPTRIE_SMALL_MAX = 0xfff,
+
+    /**
+     * Offset from dataLength (to be subtracted) for fetching the
+     * value returned for out-of-range code points and ill-formed UTF-8/16.
+     * @internal
+     */
+    UCPTRIE_ERROR_VALUE_NEG_DATA_OFFSET = 1,
+    /**
+     * Offset from dataLength (to be subtracted) for fetching the
+     * value returned for code points highStart..U+10FFFF.
+     * @internal
+     */
+    UCPTRIE_HIGH_VALUE_NEG_DATA_OFFSET = 2
+};
+
+/* Internal functions and macros -------------------------------------------- */
+// Do not conditionalize with #ifndef U_HIDE_INTERNAL_API, needed for public API
+
+/** @internal */
+U_INTERNAL int32_t U_EXPORT2
+ucptrie_internalSmallIndex(const UCPTrie *trie, UChar32 c);
+
+/** @internal */
+U_INTERNAL int32_t U_EXPORT2
+ucptrie_internalSmallU8Index(const UCPTrie *trie, int32_t lt1, uint8_t t2, uint8_t t3);
+
+/**
+ * Internal function for part of the UCPTRIE_FAST_U8_PREVxx() macro implementations.
+ * Do not call directly.
+ * @internal
+ */
+U_INTERNAL int32_t U_EXPORT2
+ucptrie_internalU8PrevIndex(const UCPTrie *trie, UChar32 c,
+                            const uint8_t *start, const uint8_t *src);
+
+/** Internal trie getter for a code point below the fast limit. Returns the data index. @internal */
+#define _UCPTRIE_FAST_INDEX(trie, c) \
+    ((int32_t)(trie)->index[(c) >> UCPTRIE_FAST_SHIFT] + ((c) & UCPTRIE_FAST_DATA_MASK))
+
+/** Internal trie getter for a code point at or above the fast limit. Returns the data index. @internal */
+#define _UCPTRIE_SMALL_INDEX(trie, c) \
+    ((c) >= (trie)->highStart ? \
+        (trie)->dataLength - UCPTRIE_HIGH_VALUE_NEG_DATA_OFFSET : \
+        ucptrie_internalSmallIndex(trie, c))
+
+/**
+ * Internal trie getter for a code point, with checking that c is in U+0000..10FFFF.
+ * Returns the data index.
+ * @internal
+ */
+#define _UCPTRIE_CP_INDEX(trie, fastMax, c) \
+    ((uint32_t)(c) <= (uint32_t)(fastMax) ? \
+        _UCPTRIE_FAST_INDEX(trie, c) : \
+        (uint32_t)(c) <= 0x10ffff ? \
+            _UCPTRIE_SMALL_INDEX(trie, c) : \
+            (trie)->dataLength - UCPTRIE_ERROR_VALUE_NEG_DATA_OFFSET)
+
+U_CDECL_END
+
+#endif  // U_IN_DOXYGEN
+#endif  // U_HIDE_DRAFT_API
+#endif
index 192bc29..b219875 100644 (file)
@@ -60,6 +60,7 @@ enum UCurrencyUsage {
     UCURR_USAGE_COUNT=2
 #endif  // U_HIDE_DEPRECATED_API
 };
+/** Currency Usage used for Decimal Format */
 typedef enum UCurrencyUsage UCurrencyUsage; 
 
 /**
index fc6efa2..c670eea 100644 (file)
@@ -190,8 +190,6 @@ U_STABLE UEnumeration* U_EXPORT2
 uenum_openUCharStringsEnumeration(const UChar* const strings[], int32_t count,
                                  UErrorCode* ec);
 
-/* Note:  next function is not hidden as draft, as it is used internally (it was formerly an internal function). */
-
 /**
  * Given an array of const char* strings (invariant chars only), return a UEnumeration.  String pointers from 0..count-1 must not be null.
  * Do not free or modify either the string array or the characters it points to until this object has been destroyed with uenum_close.
index 2bcaaf4..0205da6 100644 (file)
  * May result in an error if it applied to something not an override.
  * @internal
  */
+#ifndef U_OVERRIDE
+#define U_OVERRIDE override
+#endif
 
 /**
  * \def U_FINAL
  * May result in an error if subclasses attempt to override.
  * @internal
  */
-
-#if U_CPLUSPLUS_VERSION >= 11
-/* C++11 */
-#ifndef U_OVERRIDE
-#define U_OVERRIDE override
-#endif
-#ifndef U_FINAL
+#if !defined(U_FINAL) || defined(U_IN_DOXYGEN)
 #define U_FINAL final
 #endif
-#else
-/* not C++11 - define to nothing */
-#ifndef U_OVERRIDE
-#define U_OVERRIDE
-#endif
-#ifndef U_FINAL
-#define U_FINAL
-#endif
-#endif
+
 
 /*==========================================================================*/
 /* limits for int32_t etc., like in POSIX inttypes.h                        */
@@ -318,7 +307,7 @@ typedef int8_t UBool;
  * UChar is configurable by defining the macro UCHAR_TYPE
  * on the preprocessor or compiler command line:
  * -DUCHAR_TYPE=uint16_t or -DUCHAR_TYPE=wchar_t (if U_SIZEOF_WCHAR_T==2) etc.
- * (The UCHAR_TYPE can also be #defined earlier in this file, for outside the ICU library code.)
+ * (The UCHAR_TYPE can also be \#defined earlier in this file, for outside the ICU library code.)
  * This is for transitional use from application code that uses uint16_t or wchar_t for UTF-16.
  *
  * The default is UChar=char16_t.
diff --git a/source/common/unicode/umutablecptrie.h b/source/common/unicode/umutablecptrie.h
new file mode 100644 (file)
index 0000000..e75191a
--- /dev/null
@@ -0,0 +1,241 @@
+// © 2017 and later: Unicode, Inc. and others.
+// License & terms of use: http://www.unicode.org/copyright.html
+
+// umutablecptrie.h (split out of ucptrie.h)
+// created: 2018jan24 Markus W. Scherer
+
+#ifndef __UMUTABLECPTRIE_H__
+#define __UMUTABLECPTRIE_H__
+
+#include "unicode/utypes.h"
+
+#ifndef U_HIDE_DRAFT_API
+
+#include "unicode/localpointer.h"
+#include "unicode/ucpmap.h"
+#include "unicode/ucptrie.h"
+#include "unicode/utf8.h"
+
+U_CDECL_BEGIN
+
+/**
+ * \file
+ *
+ * This file defines a mutable Unicode code point trie.
+ *
+ * @see UCPTrie
+ * @see UMutableCPTrie
+ */
+
+/**
+ * Mutable Unicode code point trie.
+ * Fast map from Unicode code points (U+0000..U+10FFFF) to 32-bit integer values.
+ * For details see http://site.icu-project.org/design/struct/utrie
+ *
+ * Setting values (especially ranges) and lookup is fast.
+ * The mutable trie is only somewhat space-efficient.
+ * It builds a compacted, immutable UCPTrie.
+ *
+ * This trie can be modified while iterating over its contents.
+ * For example, it is possible to merge its values with those from another
+ * set of ranges (e.g., another mutable or immutable trie):
+ * Iterate over those source ranges; for each of them iterate over this trie;
+ * add the source value into the value of each trie range.
+ *
+ * @see UCPTrie
+ * @see umutablecptrie_buildImmutable
+ * @draft ICU 63
+ */
+typedef struct UMutableCPTrie UMutableCPTrie;
+
+/**
+ * Creates a mutable trie that initially maps each Unicode code point to the same value.
+ * It uses 32-bit data values until umutablecptrie_buildImmutable() is called.
+ * umutablecptrie_buildImmutable() takes a valueWidth parameter which
+ * determines the number of bits in the data value in the resulting UCPTrie.
+ * You must umutablecptrie_close() the trie once you are done using it.
+ *
+ * @param initialValue the initial value that is set for all code points
+ * @param errorValue the value for out-of-range code points and ill-formed UTF-8/16
+ * @param pErrorCode an in/out ICU UErrorCode
+ * @return the trie
+ * @draft ICU 63
+ */
+U_CAPI UMutableCPTrie * U_EXPORT2
+umutablecptrie_open(uint32_t initialValue, uint32_t errorValue, UErrorCode *pErrorCode);
+
+/**
+ * Clones a mutable trie.
+ * You must umutablecptrie_close() the clone once you are done using it.
+ *
+ * @param other the trie to clone
+ * @param pErrorCode an in/out ICU UErrorCode
+ * @return the trie clone
+ * @draft ICU 63
+ */
+U_CAPI UMutableCPTrie * U_EXPORT2
+umutablecptrie_clone(const UMutableCPTrie *other, UErrorCode *pErrorCode);
+
+/**
+ * Closes a mutable trie and releases associated memory.
+ *
+ * @param trie the trie
+ * @draft ICU 63
+ */
+U_CAPI void U_EXPORT2
+umutablecptrie_close(UMutableCPTrie *trie);
+
+#if U_SHOW_CPLUSPLUS_API
+
+U_NAMESPACE_BEGIN
+
+/**
+ * \class LocalUMutableCPTriePointer
+ * "Smart pointer" class, closes a UMutableCPTrie via umutablecptrie_close().
+ * For most methods see the LocalPointerBase base class.
+ *
+ * @see LocalPointerBase
+ * @see LocalPointer
+ * @draft ICU 63
+ */
+U_DEFINE_LOCAL_OPEN_POINTER(LocalUMutableCPTriePointer, UMutableCPTrie, umutablecptrie_close);
+
+U_NAMESPACE_END
+
+#endif
+
+/**
+ * Creates a mutable trie with the same contents as the UCPMap.
+ * You must umutablecptrie_close() the mutable trie once you are done using it.
+ *
+ * @param map the source map
+ * @param pErrorCode an in/out ICU UErrorCode
+ * @return the mutable trie
+ * @draft ICU 63
+ */
+U_CAPI UMutableCPTrie * U_EXPORT2
+umutablecptrie_fromUCPMap(const UCPMap *map, UErrorCode *pErrorCode);
+
+/**
+ * Creates a mutable trie with the same contents as the immutable one.
+ * You must umutablecptrie_close() the mutable trie once you are done using it.
+ *
+ * @param trie the immutable trie
+ * @param pErrorCode an in/out ICU UErrorCode
+ * @return the mutable trie
+ * @draft ICU 63
+ */
+U_CAPI UMutableCPTrie * U_EXPORT2
+umutablecptrie_fromUCPTrie(const UCPTrie *trie, UErrorCode *pErrorCode);
+
+/**
+ * Returns the value for a code point as stored in the trie.
+ *
+ * @param trie the trie
+ * @param c the code point
+ * @return the value
+ * @draft ICU 63
+ */
+U_CAPI uint32_t U_EXPORT2
+umutablecptrie_get(const UMutableCPTrie *trie, UChar32 c);
+
+/**
+ * Returns the last code point such that all those from start to there have the same value.
+ * Can be used to efficiently iterate over all same-value ranges in a trie.
+ * (This is normally faster than iterating over code points and get()ting each value,
+ * but much slower than a data structure that stores ranges directly.)
+ *
+ * The trie can be modified between calls to this function.
+ *
+ * If the UCPMapValueFilter function pointer is not NULL, then
+ * the value to be delivered is passed through that function, and the return value is the end
+ * of the range where all values are modified to the same actual value.
+ * The value is unchanged if that function pointer is NULL.
+ *
+ * See the same-signature ucptrie_getRange() for a code sample.
+ *
+ * @param trie the trie
+ * @param start range start
+ * @param option defines whether surrogates are treated normally,
+ *               or as having the surrogateValue; usually UCPMAP_RANGE_NORMAL
+ * @param surrogateValue value for surrogates; ignored if option==UCPMAP_RANGE_NORMAL
+ * @param filter a pointer to a function that may modify the trie data value,
+ *     or NULL if the values from the trie are to be used unmodified
+ * @param context an opaque pointer that is passed on to the filter function
+ * @param pValue if not NULL, receives the value that every code point start..end has;
+ *     may have been modified by filter(context, trie value)
+ *     if that function pointer is not NULL
+ * @return the range end code point, or -1 if start is not a valid code point
+ * @draft ICU 63
+ */
+U_CAPI UChar32 U_EXPORT2
+umutablecptrie_getRange(const UMutableCPTrie *trie, UChar32 start,
+                        UCPMapRangeOption option, uint32_t surrogateValue,
+                        UCPMapValueFilter *filter, const void *context, uint32_t *pValue);
+
+/**
+ * Sets a value for a code point.
+ *
+ * @param trie the trie
+ * @param c the code point
+ * @param value the value
+ * @param pErrorCode an in/out ICU UErrorCode
+ * @draft ICU 63
+ */
+U_CAPI void U_EXPORT2
+umutablecptrie_set(UMutableCPTrie *trie, UChar32 c, uint32_t value, UErrorCode *pErrorCode);
+
+/**
+ * Sets a value for each code point [start..end].
+ * Faster and more space-efficient than setting the value for each code point separately.
+ *
+ * @param trie the trie
+ * @param start the first code point to get the value
+ * @param end the last code point to get the value (inclusive)
+ * @param value the value
+ * @param pErrorCode an in/out ICU UErrorCode
+ * @draft ICU 63
+ */
+U_CAPI void U_EXPORT2
+umutablecptrie_setRange(UMutableCPTrie *trie,
+                        UChar32 start, UChar32 end,
+                        uint32_t value, UErrorCode *pErrorCode);
+
+/**
+ * Compacts the data and builds an immutable UCPTrie according to the parameters.
+ * After this, the mutable trie will be empty.
+ *
+ * The mutable trie stores 32-bit values until buildImmutable() is called.
+ * If values shorter than 32 bits are to be stored in the immutable trie,
+ * then the upper bits are discarded.
+ * For example, when the mutable trie contains values 0x81, -0x7f, and 0xa581,
+ * and the value width is 8 bits, then each of these is stored as 0x81
+ * and the immutable trie will return that as an unsigned value.
+ * (Some implementations may want to make productive temporary use of the upper bits
+ * until buildImmutable() discards them.)
+ *
+ * Not every possible set of mappings can be built into a UCPTrie,
+ * because of limitations resulting from speed and space optimizations.
+ * Every Unicode assigned character can be mapped to a unique value.
+ * Typical data yields data structures far smaller than the limitations.
+ *
+ * It is possible to construct extremely unusual mappings that exceed the data structure limits.
+ * In such a case this function will fail with a U_INDEX_OUTOFBOUNDS_ERROR.
+ *
+ * @param trie the trie trie
+ * @param type selects the trie type
+ * @param valueWidth selects the number of bits in a trie data value; if smaller than 32 bits,
+ *                   then the values stored in the trie will be truncated first
+ * @param pErrorCode an in/out ICU UErrorCode
+ *
+ * @see umutablecptrie_fromUCPTrie
+ * @draft ICU 63
+ */
+U_CAPI UCPTrie * U_EXPORT2
+umutablecptrie_buildImmutable(UMutableCPTrie *trie, UCPTrieType type, UCPTrieValueWidth valueWidth,
+                              UErrorCode *pErrorCode);
+
+U_CDECL_END
+
+#endif  // U_HIDE_DRAFT_API
+#endif
index ed9a3eb..0abc754 100644 (file)
@@ -13,6 +13,7 @@
 #ifndef UNICODESET_H
 #define UNICODESET_H
 
+#include "unicode/ucpmap.h"
 #include "unicode/unifilt.h"
 #include "unicode/unistr.h"
 #include "unicode/uset.h"
@@ -25,9 +26,8 @@
 U_NAMESPACE_BEGIN
 
 // Forward Declarations.
-void U_CALLCONV UnicodeSet_initInclusion(int32_t src, UErrorCode &status); /**< @internal */
-
 class BMPSet;
+class CharacterProperties;
 class ParsePosition;
 class RBBIRuleScanner;
 class SymbolTable;
@@ -584,9 +584,8 @@ public:
     //----------------------------------------------------------------
 
     /**
-     * Make this object represent the range <code>start - end</code>.
-     * If <code>end > start</code> then this object is set to an
-     * an empty range.
+     * Make this object represent the range `start - end`.
+     * If `end > start` then this object is set to an empty range.
      * A frozen set will not be modified.
      *
      * @param start first character in the set, inclusive
@@ -1506,6 +1505,7 @@ private:
     //----------------------------------------------------------------
 
     UnicodeSet(const UnicodeSet& o, UBool /* asThawed */);
+    UnicodeSet& copyFrom(const UnicodeSet& o, UBool asThawed);
 
     //----------------------------------------------------------------
     // Implementation: Pattern parsing
@@ -1614,7 +1614,7 @@ private:
                               UnicodeString& rebuiltPat,
                               UErrorCode& ec);
 
-    friend void U_CALLCONV UnicodeSet_initInclusion(int32_t src, UErrorCode &status);
+    friend class CharacterProperties;
     static const UnicodeSet* getInclusions(int32_t src, UErrorCode &status);
 
     /**
@@ -1634,9 +1634,15 @@ private:
      */
     void applyFilter(Filter filter,
                      void* context,
-                     int32_t src,
+                     const UnicodeSet* inclusions,
                      UErrorCode &status);
 
+#ifndef U_HIDE_DRAFT_API   // Skipped: ucpmap.h is draft only.
+    void applyIntPropertyValue(const UCPMap *map,
+                               UCPMapValueFilter *filter, const void *context,
+                               UErrorCode &errorCode);
+#endif  /* U_HIDE_DRAFT_API */
+
     /**
      * Set the new pattern to cache.
      */
index b84f40b..bf954b5 100644 (file)
@@ -243,6 +243,9 @@ class UnicodeStringAppendable;  // unicode/appendable.h
  * than other ICU APIs. In particular:
  * - If indexes are out of bounds for a UnicodeString object
  *   (<0 or >length()) then they are "pinned" to the nearest boundary.
+ * - If the buffer passed to an insert/append/replace operation is owned by the
+ *   target object, e.g., calling str.append(str), an extra copy may take place
+ *   to ensure safety.
  * - If primitive string pointer values (e.g., const char16_t * or char *)
  *   for input strings are NULL, then those input string parameters are treated
  *   as if they pointed to an empty string.
index 9782f27..c42c720 100644 (file)
@@ -27,7 +27,6 @@
  */
 
 /**
- * @{
  * \def U_NO_THROW
  *         Define this to define the throw() specification so
  *                 certain functions do not throw any exceptions
@@ -44,8 +43,6 @@
 #define U_NO_THROW throw()
 #endif
 
-/** @} */
-
 /*===========================================================================*/
 /* UClassID-based RTTI */
 /*===========================================================================*/
index 4175e52..5812173 100644 (file)
@@ -33,6 +33,9 @@
 
 #if !U_DISABLE_RENAMING
 
+// Disable Renaming for Visual Studio's IntelliSense feature, so that 'Go-to-Definition' (F12) will work.
+#if !(defined(_MSC_VER) && defined(__INTELLISENSE__))
+
 /* We need the U_ICU_ENTRY_POINT_RENAME definition. There's a default one in unicode/uvernum.h we can use, but we will give
    the platform a chance to define it first.
    Normally (if utypes.h or umachine.h was included first) this will not be necessary as it will already be defined.
 #define _UTF7Data U_ICU_ENTRY_POINT_RENAME(_UTF7Data)
 #define _UTF8Data U_ICU_ENTRY_POINT_RENAME(_UTF8Data)
 #define allowedHourFormatsCleanup U_ICU_ENTRY_POINT_RENAME(allowedHourFormatsCleanup)
+#define checkImpl U_ICU_ENTRY_POINT_RENAME(checkImpl)
 #define cmemory_cleanup U_ICU_ENTRY_POINT_RENAME(cmemory_cleanup)
 #define dayPeriodRulesCleanup U_ICU_ENTRY_POINT_RENAME(dayPeriodRulesCleanup)
 #define deleteAllowedHourFormats U_ICU_ENTRY_POINT_RENAME(deleteAllowedHourFormats)
 #define u_fstropen U_ICU_ENTRY_POINT_RENAME(u_fstropen)
 #define u_fungetc U_ICU_ENTRY_POINT_RENAME(u_fungetc)
 #define u_getBidiPairedBracket U_ICU_ENTRY_POINT_RENAME(u_getBidiPairedBracket)
+#define u_getBinaryPropertySet U_ICU_ENTRY_POINT_RENAME(u_getBinaryPropertySet)
 #define u_getCombiningClass U_ICU_ENTRY_POINT_RENAME(u_getCombiningClass)
 #define u_getDataDirectory U_ICU_ENTRY_POINT_RENAME(u_getDataDirectory)
 #define u_getDataVersion U_ICU_ENTRY_POINT_RENAME(u_getDataVersion)
 #define u_getDefaultConverter U_ICU_ENTRY_POINT_RENAME(u_getDefaultConverter)
 #define u_getFC_NFKC_Closure U_ICU_ENTRY_POINT_RENAME(u_getFC_NFKC_Closure)
 #define u_getISOComment U_ICU_ENTRY_POINT_RENAME(u_getISOComment)
+#define u_getIntPropertyMap U_ICU_ENTRY_POINT_RENAME(u_getIntPropertyMap)
 #define u_getIntPropertyMaxValue U_ICU_ENTRY_POINT_RENAME(u_getIntPropertyMaxValue)
 #define u_getIntPropertyMinValue U_ICU_ENTRY_POINT_RENAME(u_getIntPropertyMinValue)
 #define u_getIntPropertyValue U_ICU_ENTRY_POINT_RENAME(u_getIntPropertyValue)
 #define ucol_swap U_ICU_ENTRY_POINT_RENAME(ucol_swap)
 #define ucol_swapInverseUCA U_ICU_ENTRY_POINT_RENAME(ucol_swapInverseUCA)
 #define ucol_tertiaryOrder U_ICU_ENTRY_POINT_RENAME(ucol_tertiaryOrder)
+#define ucpmap_get U_ICU_ENTRY_POINT_RENAME(ucpmap_get)
+#define ucpmap_getRange U_ICU_ENTRY_POINT_RENAME(ucpmap_getRange)
+#define ucptrie_close U_ICU_ENTRY_POINT_RENAME(ucptrie_close)
+#define ucptrie_get U_ICU_ENTRY_POINT_RENAME(ucptrie_get)
+#define ucptrie_getRange U_ICU_ENTRY_POINT_RENAME(ucptrie_getRange)
+#define ucptrie_getType U_ICU_ENTRY_POINT_RENAME(ucptrie_getType)
+#define ucptrie_getValueWidth U_ICU_ENTRY_POINT_RENAME(ucptrie_getValueWidth)
+#define ucptrie_internalGetRange U_ICU_ENTRY_POINT_RENAME(ucptrie_internalGetRange)
+#define ucptrie_internalSmallIndex U_ICU_ENTRY_POINT_RENAME(ucptrie_internalSmallIndex)
+#define ucptrie_internalSmallU8Index U_ICU_ENTRY_POINT_RENAME(ucptrie_internalSmallU8Index)
+#define ucptrie_internalU8PrevIndex U_ICU_ENTRY_POINT_RENAME(ucptrie_internalU8PrevIndex)
+#define ucptrie_openFromBinary U_ICU_ENTRY_POINT_RENAME(ucptrie_openFromBinary)
+#define ucptrie_swap U_ICU_ENTRY_POINT_RENAME(ucptrie_swap)
+#define ucptrie_toBinary U_ICU_ENTRY_POINT_RENAME(ucptrie_toBinary)
 #define ucsdet_close U_ICU_ENTRY_POINT_RENAME(ucsdet_close)
 #define ucsdet_detect U_ICU_ENTRY_POINT_RENAME(ucsdet_detect)
 #define ucsdet_detectAll U_ICU_ENTRY_POINT_RENAME(ucsdet_detectAll)
 #define ulocdata_getPaperSize U_ICU_ENTRY_POINT_RENAME(ulocdata_getPaperSize)
 #define ulocdata_open U_ICU_ENTRY_POINT_RENAME(ulocdata_open)
 #define ulocdata_setNoSubstitute U_ICU_ENTRY_POINT_RENAME(ulocdata_setNoSubstitute)
+#define ulocimp_forLanguageTag U_ICU_ENTRY_POINT_RENAME(ulocimp_forLanguageTag)
 #define ulocimp_getCountry U_ICU_ENTRY_POINT_RENAME(ulocimp_getCountry)
 #define ulocimp_getLanguage U_ICU_ENTRY_POINT_RENAME(ulocimp_getLanguage)
 #define ulocimp_getRegionForSupplementalData U_ICU_ENTRY_POINT_RENAME(ulocimp_getRegionForSupplementalData)
 #define umtx_condWait U_ICU_ENTRY_POINT_RENAME(umtx_condWait)
 #define umtx_lock U_ICU_ENTRY_POINT_RENAME(umtx_lock)
 #define umtx_unlock U_ICU_ENTRY_POINT_RENAME(umtx_unlock)
+#define umutablecptrie_buildImmutable U_ICU_ENTRY_POINT_RENAME(umutablecptrie_buildImmutable)
+#define umutablecptrie_clone U_ICU_ENTRY_POINT_RENAME(umutablecptrie_clone)
+#define umutablecptrie_close U_ICU_ENTRY_POINT_RENAME(umutablecptrie_close)
+#define umutablecptrie_fromUCPMap U_ICU_ENTRY_POINT_RENAME(umutablecptrie_fromUCPMap)
+#define umutablecptrie_fromUCPTrie U_ICU_ENTRY_POINT_RENAME(umutablecptrie_fromUCPTrie)
+#define umutablecptrie_get U_ICU_ENTRY_POINT_RENAME(umutablecptrie_get)
+#define umutablecptrie_getRange U_ICU_ENTRY_POINT_RENAME(umutablecptrie_getRange)
+#define umutablecptrie_open U_ICU_ENTRY_POINT_RENAME(umutablecptrie_open)
+#define umutablecptrie_set U_ICU_ENTRY_POINT_RENAME(umutablecptrie_set)
+#define umutablecptrie_setRange U_ICU_ENTRY_POINT_RENAME(umutablecptrie_setRange)
 #define uniset_getUnicode32Instance U_ICU_ENTRY_POINT_RENAME(uniset_getUnicode32Instance)
 #define unorm2_append U_ICU_ENTRY_POINT_RENAME(unorm2_append)
 #define unorm2_close U_ICU_ENTRY_POINT_RENAME(unorm2_close)
 #define uplug_setPlugLevel U_ICU_ENTRY_POINT_RENAME(uplug_setPlugLevel)
 #define uplug_setPlugName U_ICU_ENTRY_POINT_RENAME(uplug_setPlugName)
 #define uplug_setPlugNoUnload U_ICU_ENTRY_POINT_RENAME(uplug_setPlugNoUnload)
+#define uprops_addPropertyStarts U_ICU_ENTRY_POINT_RENAME(uprops_addPropertyStarts)
 #define uprops_getSource U_ICU_ENTRY_POINT_RENAME(uprops_getSource)
 #define upropsvec_addPropertyStarts U_ICU_ENTRY_POINT_RENAME(upropsvec_addPropertyStarts)
 #define uprv_add32_overflow U_ICU_ENTRY_POINT_RENAME(uprv_add32_overflow)
 #define uprv_convertToPosix U_ICU_ENTRY_POINT_RENAME(uprv_convertToPosix)
 #define uprv_copyAscii U_ICU_ENTRY_POINT_RENAME(uprv_copyAscii)
 #define uprv_copyEbcdic U_ICU_ENTRY_POINT_RENAME(uprv_copyEbcdic)
+#define uprv_currencyLeads U_ICU_ENTRY_POINT_RENAME(uprv_currencyLeads)
 #define uprv_decContextClearStatus U_ICU_ENTRY_POINT_RENAME(uprv_decContextClearStatus)
 #define uprv_decContextDefault U_ICU_ENTRY_POINT_RENAME(uprv_decContextDefault)
 #define uprv_decContextGetRounding U_ICU_ENTRY_POINT_RENAME(uprv_decContextGetRounding)
 #define uprv_fmod U_ICU_ENTRY_POINT_RENAME(uprv_fmod)
 #define uprv_free U_ICU_ENTRY_POINT_RENAME(uprv_free)
 #define uprv_getCharNameCharacters U_ICU_ENTRY_POINT_RENAME(uprv_getCharNameCharacters)
-#define uprv_getDefaultCodepage U_ICU_ENTRY_POINT_RENAME(uprv_getDefaultCodepage)
 #define uprv_getDefaultLocaleID U_ICU_ENTRY_POINT_RENAME(uprv_getDefaultLocaleID)
 #define uprv_getInfinity U_ICU_ENTRY_POINT_RENAME(uprv_getInfinity)
 #define uprv_getMaxCharNameLength U_ICU_ENTRY_POINT_RENAME(uprv_getMaxCharNameLength)
 #define utrie2_fromUTrie U_ICU_ENTRY_POINT_RENAME(utrie2_fromUTrie)
 #define utrie2_get32 U_ICU_ENTRY_POINT_RENAME(utrie2_get32)
 #define utrie2_get32FromLeadSurrogateCodeUnit U_ICU_ENTRY_POINT_RENAME(utrie2_get32FromLeadSurrogateCodeUnit)
-#define utrie2_getVersion U_ICU_ENTRY_POINT_RENAME(utrie2_getVersion)
 #define utrie2_internalU8NextIndex U_ICU_ENTRY_POINT_RENAME(utrie2_internalU8NextIndex)
 #define utrie2_internalU8PrevIndex U_ICU_ENTRY_POINT_RENAME(utrie2_internalU8PrevIndex)
 #define utrie2_isFrozen U_ICU_ENTRY_POINT_RENAME(utrie2_isFrozen)
 #define utrie2_set32ForLeadSurrogateCodeUnit U_ICU_ENTRY_POINT_RENAME(utrie2_set32ForLeadSurrogateCodeUnit)
 #define utrie2_setRange32 U_ICU_ENTRY_POINT_RENAME(utrie2_setRange32)
 #define utrie2_swap U_ICU_ENTRY_POINT_RENAME(utrie2_swap)
-#define utrie2_swapAnyVersion U_ICU_ENTRY_POINT_RENAME(utrie2_swapAnyVersion)
 #define utrie_clone U_ICU_ENTRY_POINT_RENAME(utrie_clone)
 #define utrie_close U_ICU_ENTRY_POINT_RENAME(utrie_close)
 #define utrie_defaultGetFoldingOffset U_ICU_ENTRY_POINT_RENAME(utrie_defaultGetFoldingOffset)
 #define utrie_set32 U_ICU_ENTRY_POINT_RENAME(utrie_set32)
 #define utrie_setRange32 U_ICU_ENTRY_POINT_RENAME(utrie_setRange32)
 #define utrie_swap U_ICU_ENTRY_POINT_RENAME(utrie_swap)
+#define utrie_swapAnyVersion U_ICU_ENTRY_POINT_RENAME(utrie_swapAnyVersion)
 #define utrie_unserialize U_ICU_ENTRY_POINT_RENAME(utrie_unserialize)
 #define utrie_unserializeDummy U_ICU_ENTRY_POINT_RENAME(utrie_unserializeDummy)
 #define vzone_clone U_ICU_ENTRY_POINT_RENAME(vzone_clone)
 #define ztrans_setTime U_ICU_ENTRY_POINT_RENAME(ztrans_setTime)
 #define ztrans_setTo U_ICU_ENTRY_POINT_RENAME(ztrans_setTo)
 
-#endif
+#endif /* !(defined(_MSC_VER) && defined(__INTELLISENSE__)) */
+#endif /* U_DISABLE_RENAMING */
+#endif /* URENAME_H */
 
-#endif
index 59f4650..18482c1 100644 (file)
 #include "unicode/uchar.h"
 #include "unicode/localpointer.h"
 
-#ifndef UCNV_H
-struct USet;
+#ifndef USET_DEFINED
+
+#ifndef U_IN_DOXYGEN
+#define USET_DEFINED
+#endif
 /**
- * A UnicodeSet.  Use the uset_* API to manipulate.  Create with
+ * USet is the C API type corresponding to C++ class UnicodeSet.
+ * Use the uset_* API to manipulate.  Create with
  * uset_open*, and destroy with uset_close.
  * @stable ICU 2.4
  */
index f9fc41a..245b766 100644 (file)
@@ -895,35 +895,32 @@ u_memrchr32(const UChar *s, UChar32 c, int32_t count);
  * parameters.
  * The string parameter must be a C string literal.
  * The length of the string, not including the terminating
- * <code>NUL</code>, must be specified as a constant.
+ * `NUL`, must be specified as a constant.
  * The U_STRING_DECL macro should be invoked exactly once for one
  * such string variable before it is used.
  *
  * Usage:
- * <pre>
- *    U_STRING_DECL(ustringVar1, "Quick-Fox 2", 11);
- *    U_STRING_DECL(ustringVar2, "jumps 5%", 8);
- *    static UBool didInit=FALSE;
- * 
- *    int32_t function() {
- *        if(!didInit) {
- *            U_STRING_INIT(ustringVar1, "Quick-Fox 2", 11);
- *            U_STRING_INIT(ustringVar2, "jumps 5%", 8);
- *            didInit=TRUE;
- *        }
- *        return u_strcmp(ustringVar1, ustringVar2);
- *    }
- * </pre>
+ *
+ *     U_STRING_DECL(ustringVar1, "Quick-Fox 2", 11);
+ *     U_STRING_DECL(ustringVar2, "jumps 5%", 8);
+ *     static UBool didInit=FALSE;
+ *
+ *     int32_t function() {
+ *         if(!didInit) {
+ *             U_STRING_INIT(ustringVar1, "Quick-Fox 2", 11);
+ *             U_STRING_INIT(ustringVar2, "jumps 5%", 8);
+ *             didInit=TRUE;
+ *         }
+ *         return u_strcmp(ustringVar1, ustringVar2);
+ *     }
  * 
- * Note that the macros will NOT consistently work if their argument is another <code>#define</code>. 
- *  The following will not work on all platforms, don't use it.
+ * Note that the macros will NOT consistently work if their argument is another #`define`.
+ * The following will not work on all platforms, don't use it.
  * 
- * <pre>
  *     #define GLUCK "Mr. Gluck"
  *     U_STRING_DECL(var, GLUCK, 9)
  *     U_STRING_INIT(var, GLUCK, 9)
- * </pre>
- * 
+ *
  * Instead, use the string literal "Mr. Gluck"  as the argument to both macro
  * calls.
  *
index 35fd098..aca51b5 100644 (file)
     } \
 }
 
-#ifndef U_HIDE_DRAFT_API
-
 /**
  * Get a code point from a string at a random-access offset,
  * without changing the offset.
  * @param length string length
  * @param c output UChar32 variable
  * @see U16_GET_UNSAFE
- * @draft ICU 60
+ * @stable ICU 60
  */
 #define U16_GET_OR_FFFD(s, start, i, length, c) { \
     (c)=(s)[i]; \
     } \
 }
 
-#endif  // U_HIDE_DRAFT_API
-
 /* definitions with forward iteration --------------------------------------- */
 
 /**
     } \
 }
 
-#ifndef U_HIDE_DRAFT_API
-
 /**
  * Get a code point from a string at a code point boundary offset,
  * and advance the offset to the next code point boundary.
  * @param length string length
  * @param c output UChar32 variable
  * @see U16_NEXT_UNSAFE
- * @draft ICU 60
+ * @stable ICU 60
  */
 #define U16_NEXT_OR_FFFD(s, i, length, c) { \
     (c)=(s)[(i)++]; \
     } \
 }
 
-#endif  // U_HIDE_DRAFT_API
-
 /**
  * Append a code point to a string, overwriting 1 or 2 code units.
  * The offset points to the current end of the string contents
     } \
 }
 
-#ifndef U_HIDE_DRAFT_API
-
 /**
  * Move the string offset from one code point boundary to the previous one
  * and get the code point between them.
  * @param i string offset, must be start<i
  * @param c output UChar32 variable
  * @see U16_PREV_UNSAFE
- * @draft ICU 60
+ * @stable ICU 60
  */
 #define U16_PREV_OR_FFFD(s, start, i, c) { \
     (c)=(s)[--(i)]; \
     } \
 }
 
-#endif  // U_HIDE_DRAFT_API
-
 /**
  * Move the string offset from one code point boundary to the previous one.
  * (Pre-decrementing backward iteration.)
index bc5f772..2baf519 100644 (file)
@@ -290,6 +290,11 @@ typedef double UDate;
  * @stable ICU 3.4
  */
 
+#ifdef U_IN_DOXYGEN
+// This definition is required when generating the API docs.
+#define U_COMBINED_IMPLEMENTATION 1
+#endif
+
 #if defined(U_COMBINED_IMPLEMENTATION)
 #define U_DATA_API     U_EXPORT
 #define U_COMMON_API   U_EXPORT
index 2240661..83d0b4e 100644 (file)
   *  by running the UNIX makefile target 'update-windows-makefiles' in icu/source.
   *
   *
+  * source/common/common_uwp.vcxproj
   * source/common/common.vcxproj - update 'Output file name' on the link tab so
   *                   that it contains the new major/minor combination
   * source/i18n/i18n.vcxproj - same as for the common.vcxproj
+  * source/i18n/i18n_uwp.vcxproj - same as for the common_uwp.vcxproj
   * source/layoutex/layoutex.vcproj - same
   * source/stubdata/stubdata.vcproj - same as for the common.vcxproj
   * source/io/io.vcproj - same as for the common.vcxproj
@@ -58,7 +60,7 @@
  *  This value will change in the subsequent releases of ICU
  *  @stable ICU 2.4
  */
-#define U_ICU_VERSION_MAJOR_NUM 62
+#define U_ICU_VERSION_MAJOR_NUM 63
 
 /** The current ICU minor version as an integer.
  *  This value will change in the subsequent releases of ICU
@@ -84,7 +86,7 @@
  *  This value will change in the subsequent releases of ICU
  *  @stable ICU 2.6
  */
-#define U_ICU_VERSION_SUFFIX _62
+#define U_ICU_VERSION_SUFFIX _63
 
 /**
  * \def U_DEF2_ICU_ENTRY_POINT_RENAME
  *  This value will change in the subsequent releases of ICU
  *  @stable ICU 2.4
  */
-#define U_ICU_VERSION "62.1"
+#define U_ICU_VERSION "63.1"
 
 /**
  * The current ICU library major version number as a string, for library name suffixes.
  *
  * @stable ICU 2.6
  */
-#define U_ICU_VERSION_SHORT "62"
+#define U_ICU_VERSION_SHORT "63"
 
 #ifndef U_HIDE_INTERNAL_API
 /** Data version in ICU4C.
  * @internal ICU 4.4 Internal Use Only
  **/
-#define U_ICU_DATA_VERSION "62.1"
+#define U_ICU_DATA_VERSION "63.1"
 #endif  /* U_HIDE_INTERNAL_API */
 
 /*===========================================================================
index f0f660e..d33d8d2 100644 (file)
@@ -251,7 +251,7 @@ UBool UnifiedCache::_flush(UBool all) const {
         if (all || _isEvictable(element)) {
             const SharedObject *sharedObject =
                     (const SharedObject *) element->value.pointer;
-            U_ASSERT(sharedObject->cachePtr = this);
+            U_ASSERT(sharedObject->cachePtr == this);
             uhash_removeElement(fHashtable, element);
             removeSoftRef(sharedObject);    // Deletes the sharedObject when softRefCount goes to zero.
             result = TRUE;
index fe5a157..e8378e0 100644 (file)
@@ -152,6 +152,7 @@ UnicodeSet::UnicodeSet() :
     UErrorCode status = U_ZERO_ERROR;
     allocateStrings(status);
     if (U_FAILURE(status)) {
+        setToBogus(); // If memory allocation failed, set to bogus state.
         return;
     }
     list = (UChar32*) uprv_malloc(sizeof(UChar32) * capacity);
@@ -179,6 +180,7 @@ UnicodeSet::UnicodeSet(UChar32 start, UChar32 end) :
     UErrorCode status = U_ZERO_ERROR;
     allocateStrings(status);
     if (U_FAILURE(status)) {
+        setToBogus(); // If memory allocation failed, set to bogus state.
         return;
     }
     list = (UChar32*) uprv_malloc(sizeof(UChar32) * capacity);
@@ -206,6 +208,7 @@ UnicodeSet::UnicodeSet(const UnicodeSet& o) :
     UErrorCode status = U_ZERO_ERROR;
     allocateStrings(status);
     if (U_FAILURE(status)) {
+        setToBogus(); // If memory allocation failed, set to bogus state.
         return;
     }
     list = (UChar32*) uprv_malloc(sizeof(UChar32) * capacity);
@@ -230,6 +233,7 @@ UnicodeSet::UnicodeSet(const UnicodeSet& o, UBool /* asThawed */) :
     UErrorCode status = U_ZERO_ERROR;
     allocateStrings(status);
     if (U_FAILURE(status)) {
+        setToBogus(); // If memory allocation failed, set to bogus state.
         return;
     }
     list = (UChar32*) uprv_malloc(sizeof(UChar32) * capacity);
@@ -272,6 +276,10 @@ UnicodeSet::~UnicodeSet() {
  * Assigns this object to be a copy of another.
  */
 UnicodeSet& UnicodeSet::operator=(const UnicodeSet& o) {
+    return copyFrom(o, FALSE);
+}
+
+UnicodeSet& UnicodeSet::copyFrom(const UnicodeSet& o, UBool asThawed) {
     if (this == &o) {
         return *this;
     }
@@ -285,11 +293,12 @@ UnicodeSet& UnicodeSet::operator=(const UnicodeSet& o) {
     UErrorCode ec = U_ZERO_ERROR;
     ensureCapacity(o.len, ec);
     if (U_FAILURE(ec)) {
-        return *this; // There is no way to report this error :-(
+        // ensureCapacity will mark the UnicodeSet as Bogus if OOM failure happens.
+        return *this;
     }
     len = o.len;
     uprv_memcpy(list, o.list, (size_t)len*sizeof(UChar32));
-    if (o.bmpSet == NULL) {
+    if (o.bmpSet == NULL || asThawed) {
         bmpSet = NULL;
     } else {
         bmpSet = new BMPSet(*o.bmpSet, list, len);
@@ -304,7 +313,7 @@ UnicodeSet& UnicodeSet::operator=(const UnicodeSet& o) {
         setToBogus();
         return *this;
     }
-    if (o.stringSpan == NULL) {
+    if (o.stringSpan == NULL || asThawed) {
         stringSpan = NULL;
     } else {
         stringSpan = new UnicodeSetStringSpan(*o.stringSpan, *strings);
@@ -359,12 +368,12 @@ UBool UnicodeSet::operator==(const UnicodeSet& o) const {
  * @see Object#hashCode()
  */
 int32_t UnicodeSet::hashCode(void) const {
-    int32_t result = len;
+    uint32_t result = static_cast<uint32_t>(len);
     for (int32_t i = 0; i < len; ++i) {
-        result *= 1000003;
+        result *= 1000003u;
         result += list[i];
     }
-    return result;
+    return static_cast<int32_t>(result);
 }
 
 //----------------------------------------------------------------
@@ -912,7 +921,8 @@ UnicodeSet& UnicodeSet::add(UChar32 c) {
             UErrorCode status = U_ZERO_ERROR;
             ensureCapacity(len+1, status);
             if (U_FAILURE(status)) {
-                return *this; // There is no way to report this error :-(
+                // ensureCapacity will mark the object as Bogus if OOM failure happens.
+                return *this;
             }
             list[len++] = UNICODESET_HIGH;
         }
@@ -957,7 +967,8 @@ UnicodeSet& UnicodeSet::add(UChar32 c) {
         UErrorCode status = U_ZERO_ERROR;
         ensureCapacity(len+2, status);
         if (U_FAILURE(status)) {
-            return *this; // There is no way to report this error :-(
+            // ensureCapacity will mark the object as Bogus if OOM failure happens.
+            return *this;
         }
 
         //for (int32_t k=len-1; k>=i; --k) {
@@ -1654,12 +1665,13 @@ UBool UnicodeSet::allocateStrings(UErrorCode &status) {
 }
 
 void UnicodeSet::ensureCapacity(int32_t newLen, UErrorCode& ec) {
-    if (newLen <= capacity)
+    if (newLen <= capacity) {
         return;
+    }
     UChar32* temp = (UChar32*) uprv_realloc(list, sizeof(UChar32) * (newLen + GROW_EXTRA));
     if (temp == NULL) {
         ec = U_MEMORY_ALLOCATION_ERROR;
-        setToBogus();
+        setToBogus(); // set the object to bogus state if an OOM failure occurred.
         return;
     }
     list = temp;
index 6ae6e71..6cfd80a 100644 (file)
@@ -36,8 +36,6 @@
 #include "uprops.h"
 #include "propname.h"
 #include "normalizer2impl.h"
-#include "ucase.h"
-#include "ubidi_props.h"
 #include "uinvchar.h"
 #include "uprops.h"
 #include "charstr.h"
@@ -98,47 +96,13 @@ static const char ASSIGNED[] = "Assigned"; // [:^Cn:]
 U_CDECL_BEGIN
 static UBool U_CALLCONV uset_cleanup();
 
-struct Inclusion {
-    UnicodeSet  *fSet;
-    UInitOnce    fInitOnce;
-};
-static Inclusion gInclusions[UPROPS_SRC_COUNT]; // cached getInclusions()
-
 static UnicodeSet *uni32Singleton;
 static icu::UInitOnce uni32InitOnce = U_INITONCE_INITIALIZER;
 
-//----------------------------------------------------------------
-// Inclusions list
-//----------------------------------------------------------------
-
-// USetAdder implementation
-// Does not use uset.h to reduce code dependencies
-static void U_CALLCONV
-_set_add(USet *set, UChar32 c) {
-    ((UnicodeSet *)set)->add(c);
-}
-
-static void U_CALLCONV
-_set_addRange(USet *set, UChar32 start, UChar32 end) {
-    ((UnicodeSet *)set)->add(start, end);
-}
-
-static void U_CALLCONV
-_set_addString(USet *set, const UChar *str, int32_t length) {
-    ((UnicodeSet *)set)->add(UnicodeString((UBool)(length<0), str, length));
-}
-
 /**
  * Cleanup function for UnicodeSet
  */
 static UBool U_CALLCONV uset_cleanup(void) {
-    for(int32_t i = UPROPS_SRC_NONE; i < UPROPS_SRC_COUNT; ++i) {
-        Inclusion &in = gInclusions[i];
-        delete in.fSet;
-        in.fSet = NULL;
-        in.fInitOnce.reset();
-    }
-
     delete uni32Singleton;
     uni32Singleton = NULL;
     uni32InitOnce.reset();
@@ -149,114 +113,6 @@ U_CDECL_END
 
 U_NAMESPACE_BEGIN
 
-/*
-Reduce excessive reallocation, and make it easier to detect initialization problems.
-Usually you don't see smaller sets than this for Unicode 5.0.
-*/
-#define DEFAULT_INCLUSION_CAPACITY 3072
-
-void U_CALLCONV UnicodeSet_initInclusion(int32_t src, UErrorCode &status) {
-    // This function is invoked only via umtx_initOnce().
-    // This function is a friend of class UnicodeSet.
-
-    U_ASSERT(src >=0 && src<UPROPS_SRC_COUNT);
-    UnicodeSet * &incl = gInclusions[src].fSet;
-    U_ASSERT(incl == NULL);
-
-    incl = new UnicodeSet();
-    if (incl == NULL) {
-        status = U_MEMORY_ALLOCATION_ERROR;
-        return;
-    }
-    USetAdder sa = {
-        (USet *)incl,
-        _set_add,
-        _set_addRange,
-        _set_addString,
-        NULL, // don't need remove()
-        NULL // don't need removeRange()
-    };
-
-    incl->ensureCapacity(DEFAULT_INCLUSION_CAPACITY, status);
-    switch(src) {
-    case UPROPS_SRC_CHAR:
-        uchar_addPropertyStarts(&sa, &status);
-        break;
-    case UPROPS_SRC_PROPSVEC:
-        upropsvec_addPropertyStarts(&sa, &status);
-        break;
-    case UPROPS_SRC_CHAR_AND_PROPSVEC:
-        uchar_addPropertyStarts(&sa, &status);
-        upropsvec_addPropertyStarts(&sa, &status);
-        break;
-#if !UCONFIG_NO_NORMALIZATION
-    case UPROPS_SRC_CASE_AND_NORM: {
-        const Normalizer2Impl *impl=Normalizer2Factory::getNFCImpl(status);
-        if(U_SUCCESS(status)) {
-            impl->addPropertyStarts(&sa, status);
-        }
-        ucase_addPropertyStarts(&sa, &status);
-        break;
-    }
-    case UPROPS_SRC_NFC: {
-        const Normalizer2Impl *impl=Normalizer2Factory::getNFCImpl(status);
-        if(U_SUCCESS(status)) {
-            impl->addPropertyStarts(&sa, status);
-        }
-        break;
-    }
-    case UPROPS_SRC_NFKC: {
-        const Normalizer2Impl *impl=Normalizer2Factory::getNFKCImpl(status);
-        if(U_SUCCESS(status)) {
-            impl->addPropertyStarts(&sa, status);
-        }
-        break;
-    }
-    case UPROPS_SRC_NFKC_CF: {
-        const Normalizer2Impl *impl=Normalizer2Factory::getNFKC_CFImpl(status);
-        if(U_SUCCESS(status)) {
-            impl->addPropertyStarts(&sa, status);
-        }
-        break;
-    }
-    case UPROPS_SRC_NFC_CANON_ITER: {
-        const Normalizer2Impl *impl=Normalizer2Factory::getNFCImpl(status);
-        if(U_SUCCESS(status)) {
-            impl->addCanonIterPropertyStarts(&sa, status);
-        }
-        break;
-    }
-#endif
-    case UPROPS_SRC_CASE:
-        ucase_addPropertyStarts(&sa, &status);
-        break;
-    case UPROPS_SRC_BIDI:
-        ubidi_addPropertyStarts(&sa, &status);
-        break;
-    default:
-        status = U_INTERNAL_PROGRAM_ERROR;
-        break;
-    }
-
-    if (U_FAILURE(status)) {
-        delete incl;
-        incl = NULL;
-        return;
-    }
-    // Compact for caching
-    incl->compact();
-    ucln_common_registerCleanup(UCLN_COMMON_USET, uset_cleanup);
-}
-
-
-
-const UnicodeSet* UnicodeSet::getInclusions(int32_t src, UErrorCode &status) {
-    U_ASSERT(src >=0 && src<UPROPS_SRC_COUNT);
-    Inclusion &i = gInclusions[src];
-    umtx_initOnce(i.fInitOnce, &UnicodeSet_initInclusion, src, status);
-    return i.fSet;
-}
-
 namespace {
 
 // Cache some sets for other services -------------------------------------- ***
@@ -857,11 +713,6 @@ static UBool numericValueFilter(UChar32 ch, void* context) {
     return u_getNumericValue(ch) == *(double*)context;
 }
 
-static UBool generalCategoryMaskFilter(UChar32 ch, void* context) {
-    int32_t value = *(int32_t*)context;
-    return (U_GET_GC_MASK((UChar32) ch) & value) != 0;
-}
-
 static UBool versionFilter(UChar32 ch, void* context) {
     static const UVersionInfo none = { 0, 0, 0, 0 };
     UVersionInfo v;
@@ -870,16 +721,6 @@ static UBool versionFilter(UChar32 ch, void* context) {
     return uprv_memcmp(&v, &none, sizeof(v)) > 0 && uprv_memcmp(&v, version, sizeof(v)) <= 0;
 }
 
-typedef struct {
-    UProperty prop;
-    int32_t value;
-} IntPropertyContext;
-
-static UBool intPropertyFilter(UChar32 ch, void* context) {
-    IntPropertyContext* c = (IntPropertyContext*)context;
-    return u_getIntPropertyValue((UChar32) ch, c->prop) == c->value;
-}
-
 static UBool scriptExtensionsFilter(UChar32 ch, void* context) {
     return uscript_hasScript(ch, *(UScriptCode*)context);
 }
@@ -891,7 +732,7 @@ static UBool scriptExtensionsFilter(UChar32 ch, void* context) {
  */
 void UnicodeSet::applyFilter(UnicodeSet::Filter filter,
                              void* context,
-                             int32_t src,
+                             const UnicodeSet* inclusions,
                              UErrorCode &status) {
     if (U_FAILURE(status)) return;
 
@@ -902,12 +743,8 @@ void UnicodeSet::applyFilter(UnicodeSet::Filter filter,
     // To improve performance, use an inclusions set which
     // encodes information about character ranges that are known
     // to have identical properties.
-    // getInclusions(src) contains exactly the first characters of
-    // same-value ranges for the given properties "source".
-    const UnicodeSet* inclusions = getInclusions(src, status);
-    if (U_FAILURE(status)) {
-        return;
-    }
+    // inclusions contains the first characters of
+    // same-value ranges for the given property.
 
     clear();
 
@@ -944,6 +781,43 @@ void UnicodeSet::applyFilter(UnicodeSet::Filter filter,
 
 namespace {
 
+/** Maps map values to 1 if the mask contains their value'th bit, all others to 0. */
+uint32_t U_CALLCONV generalCategoryMaskFilter(const void *context, uint32_t value) {
+    uint32_t mask = *(const uint32_t *)context;
+    value = U_MASK(value) & mask;
+    if (value != 0) { value = 1; }
+    return value;
+}
+
+/** Maps one map value to 1, all others to 0. */
+uint32_t U_CALLCONV intValueFilter(const void *context, uint32_t value) {
+    uint32_t v = *(const uint32_t *)context;
+    return value == v ? 1 : 0;
+}
+
+}  // namespace
+
+void UnicodeSet::applyIntPropertyValue(const UCPMap *map,
+                                       UCPMapValueFilter *filter, const void *context,
+                                       UErrorCode &errorCode) {
+    if (U_FAILURE(errorCode)) { return; }
+    clear();
+    UChar32 start = 0, end;
+    uint32_t value;
+    while ((end = ucpmap_getRange(map, start, UCPMAP_RANGE_NORMAL, 0,
+                                  filter, context, &value)) >= 0) {
+        if (value != 0) {
+            add(start, end);
+        }
+        start = end + 1;
+    }
+    if (isBogus()) {
+        errorCode = U_MEMORY_ALLOCATION_ERROR;
+    }
+}
+
+namespace {
+
 static UBool mungeCharName(char* dst, const char* src, int32_t dstCapacity) {
     /* Note: we use ' ' in compiler code page */
     int32_t j = 0;
@@ -971,16 +845,35 @@ static UBool mungeCharName(char* dst, const char* src, int32_t dstCapacity) {
 
 UnicodeSet&
 UnicodeSet::applyIntPropertyValue(UProperty prop, int32_t value, UErrorCode& ec) {
-    if (U_FAILURE(ec) || isFrozen()) return *this;
-
+    if (U_FAILURE(ec)) { return *this; }
+    // All of the following check isFrozen() before modifying this set.
     if (prop == UCHAR_GENERAL_CATEGORY_MASK) {
-        applyFilter(generalCategoryMaskFilter, &value, UPROPS_SRC_CHAR, ec);
+        const UCPMap *map = u_getIntPropertyMap(UCHAR_GENERAL_CATEGORY, &ec);
+        applyIntPropertyValue(map, generalCategoryMaskFilter, &value, ec);
     } else if (prop == UCHAR_SCRIPT_EXTENSIONS) {
+        const UnicodeSet* inclusions = CharacterProperties::getInclusionsForProperty(prop, ec);
         UScriptCode script = (UScriptCode)value;
-        applyFilter(scriptExtensionsFilter, &script, UPROPS_SRC_PROPSVEC, ec);
+        applyFilter(scriptExtensionsFilter, &script, inclusions, ec);
+    } else if (0 <= prop && prop < UCHAR_BINARY_LIMIT) {
+        if (value == 0 || value == 1) {
+            const USet *set = u_getBinaryPropertySet(prop, &ec);
+            if (U_FAILURE(ec)) { return *this; }
+            copyFrom(*UnicodeSet::fromUSet(set), TRUE);
+            if (value == 0) {
+                complement();
+            }
+        } else {
+            clear();
+        }
+    } else if (UCHAR_INT_START <= prop && prop < UCHAR_INT_LIMIT) {
+        const UCPMap *map = u_getIntPropertyMap(prop, &ec);
+        applyIntPropertyValue(map, intValueFilter, &value, ec);
     } else {
-        IntPropertyContext c = {prop, value};
-        applyFilter(intPropertyFilter, &c, uprops_getSource(prop), ec);
+        // This code used to always call getInclusions(property source)
+        // which sets an error for an unsupported property.
+        ec = U_ILLEGAL_ARGUMENT_ERROR;
+        // Otherwise we would just clear() this set because
+        // getIntPropertyValue(c, prop) returns 0 for all code points.
     }
     return *this;
 }
@@ -1030,13 +923,13 @@ UnicodeSet::applyPropertyAlias(const UnicodeString& prop,
                     p == UCHAR_TRAIL_CANONICAL_COMBINING_CLASS ||
                     p == UCHAR_LEAD_CANONICAL_COMBINING_CLASS) {
                     char* end;
-                    double value = uprv_strtod(vname.data(), &end);
+                    double val = uprv_strtod(vname.data(), &end);
                     // Anything between 0 and 255 is valid even if unused.
                     // Cast double->int only after range check.
                     // We catch NaN here because comparing it with both 0 and 255 will be false
                     // (as are all comparisons with NaN).
-                    if (*end != 0 || !(0 <= value && value <= 255) ||
-                            (v = (int32_t)value) != value) {
+                    if (*end != 0 || !(0 <= val && val <= 255) ||
+                            (v = (int32_t)val) != val) {
                         // non-integral value or outside 0..255, or trailing junk
                         FAIL(ec);
                     }
@@ -1052,11 +945,12 @@ UnicodeSet::applyPropertyAlias(const UnicodeString& prop,
             case UCHAR_NUMERIC_VALUE:
                 {
                     char* end;
-                    double value = uprv_strtod(vname.data(), &end);
+                    double val = uprv_strtod(vname.data(), &end);
                     if (*end != 0) {
                         FAIL(ec);
                     }
-                    applyFilter(numericValueFilter, &value, UPROPS_SRC_CHAR, ec);
+                    applyFilter(numericValueFilter, &val,
+                                CharacterProperties::getInclusionsForProperty(p, ec), ec);
                     return *this;
                 }
             case UCHAR_NAME:
@@ -1085,7 +979,8 @@ UnicodeSet::applyPropertyAlias(const UnicodeString& prop,
                     if (!mungeCharName(buf, vname.data(), sizeof(buf))) FAIL(ec);
                     UVersionInfo version;
                     u_versionFromString(version, buf);
-                    applyFilter(versionFilter, &version, UPROPS_SRC_PROPSVEC, ec);
+                    applyFilter(versionFilter, &version,
+                                CharacterProperties::getInclusionsForProperty(p, ec), ec);
                     return *this;
                 }
             case UCHAR_SCRIPT_EXTENSIONS:
index 5d7cab2..c8b6c0a 100644 (file)
@@ -1447,10 +1447,15 @@ UnicodeString::doReplace(int32_t start,
   }
 
   if(srcChars == 0) {
-    srcStart = srcLength = 0;
-  } else if(srcLength < 0) {
-    // get the srcLength if necessary
-    srcLength = u_strlen(srcChars + srcStart);
+    srcLength = 0;
+  } else {
+    // Perform all remaining operations relative to srcChars + srcStart.
+    // From this point forward, do not use srcStart.
+    srcChars += srcStart;
+    if (srcLength < 0) {
+      // get the srcLength if necessary
+      srcLength = u_strlen(srcChars);
+    }
   }
 
   // pin the indices to legal values
@@ -1465,17 +1470,28 @@ UnicodeString::doReplace(int32_t start,
   }
   newLength += srcLength;
 
+  // Check for insertion into ourself
+  const UChar *oldArray = getArrayStart();
+  if (isBufferWritable() &&
+      oldArray < srcChars + srcLength &&
+      srcChars < oldArray + oldLength) {
+    // Copy into a new UnicodeString and start over
+    UnicodeString copy(srcChars, srcLength);
+    if (copy.isBogus()) {
+      setToBogus();
+      return *this;
+    }
+    return doReplace(start, length, copy.getArrayStart(), 0, srcLength);
+  }
+
   // cloneArrayIfNeeded(doCopyArray=FALSE) may change fArray but will not copy the current contents;
   // therefore we need to keep the current fArray
   UChar oldStackBuffer[US_STACKBUF_SIZE];
-  UChar *oldArray;
   if((fUnion.fFields.fLengthAndFlags&kUsingStackBuffer) && (newLength > US_STACKBUF_SIZE)) {
     // copy the stack buffer contents because it will be overwritten with
     // fUnion.fFields values
-    u_memcpy(oldStackBuffer, fUnion.fStackFields.fBuffer, oldLength);
+    u_memcpy(oldStackBuffer, oldArray, oldLength);
     oldArray = oldStackBuffer;
-  } else {
-    oldArray = getArrayStart();
   }
 
   // clone our array and allocate a bigger array if needed
@@ -1503,7 +1519,7 @@ UnicodeString::doReplace(int32_t start,
   }
 
   // now fill in the hole with the new string
-  us_arrayCopy(srcChars, srcStart, newArray, start, srcLength);
+  us_arrayCopy(srcChars, 0, newArray, start, srcLength);
 
   setLength(newLength);
 
@@ -1536,15 +1552,34 @@ UnicodeString::doAppend(const UChar *srcChars, int32_t srcStart, int32_t srcLeng
     return *this;
   }
 
+  // Perform all remaining operations relative to srcChars + srcStart.
+  // From this point forward, do not use srcStart.
+  srcChars += srcStart;
+
   if(srcLength < 0) {
     // get the srcLength if necessary
-    if((srcLength = u_strlen(srcChars + srcStart)) == 0) {
+    if((srcLength = u_strlen(srcChars)) == 0) {
       return *this;
     }
   }
 
   int32_t oldLength = length();
   int32_t newLength = oldLength + srcLength;
+
+  // Check for append onto ourself
+  const UChar* oldArray = getArrayStart();
+  if (isBufferWritable() &&
+      oldArray < srcChars + srcLength &&
+      srcChars < oldArray + oldLength) {
+    // Copy into a new UnicodeString and start over
+    UnicodeString copy(srcChars, srcLength);
+    if (copy.isBogus()) {
+      setToBogus();
+      return *this;
+    }
+    return doAppend(copy.getArrayStart(), 0, srcLength);
+  }
+
   // optimize append() onto a large-enough, owned string
   if((newLength <= getCapacity() && isBufferWritable()) ||
       cloneArrayIfNeeded(newLength, getGrowCapacity(newLength))) {
@@ -1556,8 +1591,8 @@ UnicodeString::doAppend(const UChar *srcChars, int32_t srcStart, int32_t srcLeng
     // or
     //   str.appendString(buffer, length)
     // or similar.
-    if(srcChars + srcStart != newArray + oldLength) {
-      us_arrayCopy(srcChars, srcStart, newArray, oldLength, srcLength);
+    if(srcChars != newArray + oldLength) {
+      us_arrayCopy(srcChars, 0, newArray, oldLength, srcLength);
     }
     setLength(newLength);
   }
index 21723b3..2421c15 100644 (file)
@@ -25,6 +25,7 @@
 
 #include "unicode/utypes.h"
 #include "unicode/uchar.h"
+#include "unicode/ucptrie.h"
 #include "unicode/unorm2.h"
 #include "unicode/uscript.h"
 #include "unicode/ustring.h"
 #include "ucase.h"
 #include "ustr_imp.h"
 
+// ulayout_props_data.h is machine-generated by genprops
+#define INCLUDED_FROM_UPROPS_CPP
+#include "ulayout_props_data.h"
+
 U_NAMESPACE_USE
 
 /* general properties API functions ----------------------------------------- */
@@ -56,7 +61,7 @@ static UBool defaultContains(const BinaryProperty &prop, UChar32 c, UProperty /*
 }
 
 static UBool caseBinaryPropertyContains(const BinaryProperty &/*prop*/, UChar32 c, UProperty which) {
-    return ucase_hasBinaryProperty(c, which);
+    return static_cast<UBool>(ucase_hasBinaryProperty(c, which));
 }
 
 static UBool isBidiControl(const BinaryProperty &/*prop*/, UChar32 c, UProperty /*which*/) {
@@ -428,6 +433,18 @@ static int32_t getTrailCombiningClass(const IntProperty &/*prop*/, UChar32 c, UP
 }
 #endif
 
+static int32_t getInPC(const IntProperty &, UChar32 c, UProperty) {
+    return ucptrie_get(&inpc_trie, c);
+}
+
+static int32_t getInSC(const IntProperty &, UChar32 c, UProperty) {
+    return ucptrie_get(&insc_trie, c);
+}
+
+static int32_t getVo(const IntProperty &, UChar32 c, UProperty) {
+    return ucptrie_get(&vo_trie, c);
+}
+
 static const IntProperty intProps[UCHAR_INT_LIMIT-UCHAR_INT_START]={
     /*
      * column, mask and shift values for int-value properties from u_getUnicodeProperties().
@@ -463,6 +480,9 @@ static const IntProperty intProps[UCHAR_INT_LIMIT-UCHAR_INT_START]={
     { 2,                UPROPS_SB_MASK, UPROPS_SB_SHIFT,    defaultGetValue, defaultGetMaxValue },
     { 2,                UPROPS_WB_MASK, UPROPS_WB_SHIFT,    defaultGetValue, defaultGetMaxValue },
     { UPROPS_SRC_BIDI,  0, 0,                               getBiDiPairedBracketType, biDiGetMaxValue },
+    { UPROPS_SRC_INPC,  0, maxInPCValue,                    getInPC, getMaxValueFromShift },
+    { UPROPS_SRC_INSC,  0, maxInSCValue,                    getInSC, getMaxValueFromShift },
+    { UPROPS_SRC_VO,    0, maxVoValue,                      getVo, getMaxValueFromShift },
 };
 
 U_CAPI int32_t U_EXPORT2
@@ -564,6 +584,34 @@ uprops_getSource(UProperty which) {
     }
 }
 
+U_CFUNC void U_EXPORT2
+uprops_addPropertyStarts(UPropertySource src, const USetAdder *sa, UErrorCode *pErrorCode) {
+    if (U_FAILURE(*pErrorCode)) { return; }
+    const UCPTrie *trie;
+    switch (src) {
+    case UPROPS_SRC_INPC:
+        trie = &inpc_trie;
+        break;
+    case UPROPS_SRC_INSC:
+        trie = &insc_trie;
+        break;
+    case UPROPS_SRC_VO:
+        trie = &vo_trie;
+        break;
+    default:
+        *pErrorCode = U_ILLEGAL_ARGUMENT_ERROR;
+        return;
+    }
+
+    // Add the start code point of each same-value range of the trie.
+    UChar32 start = 0, end;
+    while ((end = ucptrie_getRange(trie, start, UCPMAP_RANGE_NORMAL, 0,
+                                   nullptr, nullptr, nullptr)) >= 0) {
+        sa->add(sa->set, start);
+        start = end + 1;
+    }
+}
+
 #if !UCONFIG_NO_NORMALIZATION
 
 U_CAPI int32_t U_EXPORT2
index 2078384..1a8e4e8 100644 (file)
@@ -397,6 +397,10 @@ enum UPropertySource {
     UPROPS_SRC_NFKC_CF,
     /** From normalizer2impl.cpp/nfc.nrm canonical iterator data */
     UPROPS_SRC_NFC_CANON_ITER,
+    // Text layout properties.
+    UPROPS_SRC_INPC,
+    UPROPS_SRC_INSC,
+    UPROPS_SRC_VO,
     /** One more than the highest UPropertySource (UPROPS_SRC_) constant. */
     UPROPS_SRC_COUNT
 };
@@ -425,6 +429,9 @@ uchar_addPropertyStarts(const USetAdder *sa, UErrorCode *pErrorCode);
 U_CFUNC void U_EXPORT2
 upropsvec_addPropertyStarts(const USetAdder *sa, UErrorCode *pErrorCode);
 
+U_CFUNC void U_EXPORT2
+uprops_addPropertyStarts(UPropertySource src, const USetAdder *sa, UErrorCode *pErrorCode);
+
 /**
  * Return a set of characters for property enumeration.
  * For each two consecutive characters (start, limit) in the set,
@@ -452,6 +459,13 @@ U_NAMESPACE_BEGIN
 
 class UnicodeSet;
 
+class CharacterProperties {
+public:
+    CharacterProperties() = delete;
+    static void U_CALLCONV initInclusion(UPropertySource src, UErrorCode &errorCode);
+    static const UnicodeSet *getInclusionsForProperty(UProperty prop, UErrorCode &errorCode);
+};
+
 // implemented in uniset_props.cpp
 U_CFUNC UnicodeSet *
 uniset_getUnicode32Instance(UErrorCode &errorCode);
index c51f7fd..656eeb7 100644 (file)
@@ -367,7 +367,12 @@ static UResourceDataEntry *init_entry(const char *localeID, const char *path, UE
         /* this is the actual loading */
         res_load(&(r->fData), r->fPath, r->fName, status);
 
-        if (U_FAILURE(*status)) { 
+        if (U_FAILURE(*status)) {
+            /* if we failed to load due to an out-of-memory error, exit early. */
+            if (*status == U_MEMORY_ALLOCATION_ERROR) {
+                uprv_free(r);
+                return NULL;
+            }
             /* we have no such entry in dll, so it will always use fallback */
             *status = U_USING_FALLBACK_WARNING;
             r->fBogus = U_USING_FALLBACK_WARNING;
@@ -537,6 +542,11 @@ loadParentsExceptRoot(UResourceDataEntry *&t1,
         UErrorCode usrStatus = U_ZERO_ERROR;
         if (usingUSRData) {  // This code inserts user override data into the inheritance chain.
             u2 = init_entry(name, usrDataPath, &usrStatus);
+            // If we failed due to out-of-memory, report that to the caller and exit early.
+            if (usrStatus == U_MEMORY_ALLOCATION_ERROR) {
+                *status = usrStatus;
+                return FALSE;
+            }
         }
 
         if (usingUSRData && U_SUCCESS(usrStatus) && u2->fBogus == U_ZERO_ERROR) {
@@ -642,21 +652,32 @@ static UResourceDataEntry *entryOpen(const char* path, const char* localeID,
         /* We're going to skip all the locales that do not have any data */
         r = findFirstExisting(path, name, &isRoot, &hasChopped, &isDefault, &intStatus);
 
+        // If we failed due to out-of-memory, report the failure and exit early.
+        if (intStatus == U_MEMORY_ALLOCATION_ERROR) {
+            *status = intStatus;
+            goto finishUnlock;
+        }
+
         if(r != NULL) { /* if there is one real locale, we can look for parents. */
             t1 = r;
             hasRealData = TRUE;
             if ( usingUSRData ) {  /* This code inserts user override data into the inheritance chain */
                 UErrorCode usrStatus = U_ZERO_ERROR;
                 UResourceDataEntry *u1 = init_entry(t1->fName, usrDataPath, &usrStatus);
-               if ( u1 != NULL ) {
-                 if(u1->fBogus == U_ZERO_ERROR) {
-                   u1->fParent = t1;
-                   r = u1;
-                 } else {
-                   /* the USR override data wasn't found, set it to be deleted */
-                   u1->fCountExisting = 0;
-                 }
-               }
+                // If we failed due to out-of-memory, report the failure and exit early.
+                if (intStatus == U_MEMORY_ALLOCATION_ERROR) {
+                    *status = intStatus;
+                    goto finishUnlock;
+                }
+                if ( u1 != NULL ) {
+                    if(u1->fBogus == U_ZERO_ERROR) {
+                        u1->fParent = t1;
+                        r = u1;
+                    } else {
+                        /* the USR override data wasn't found, set it to be deleted */
+                        u1->fCountExisting = 0;
+                    }
+                }
             }
             if (hasChopped && !isRoot) {
                 if (!loadParentsExceptRoot(t1, name, UPRV_LENGTHOF(name), usingUSRData, usrDataPath, status)) {
@@ -671,6 +692,11 @@ static UResourceDataEntry *entryOpen(const char* path, const char* localeID,
             /* insert default locale */
             uprv_strcpy(name, uloc_getDefault());
             r = findFirstExisting(path, name, &isRoot, &hasChopped, &isDefault, &intStatus);
+            // If we failed due to out-of-memory, report the failure and exit early.
+            if (intStatus == U_MEMORY_ALLOCATION_ERROR) {
+                *status = intStatus;
+                goto finishUnlock;
+            }
             intStatus = U_USING_DEFAULT_WARNING;
             if(r != NULL) { /* the default locale exists */
                 t1 = r;
@@ -690,6 +716,11 @@ static UResourceDataEntry *entryOpen(const char* path, const char* localeID,
         if(r == NULL) {
             uprv_strcpy(name, kRootLocaleName);
             r = findFirstExisting(path, name, &isRoot, &hasChopped, &isDefault, &intStatus);
+            // If we failed due to out-of-memory, report the failure and exit early.
+            if (intStatus == U_MEMORY_ALLOCATION_ERROR) {
+                *status = intStatus;
+                goto finishUnlock;
+            }
             if(r != NULL) {
                 t1 = r;
                 intStatus = U_USING_DEFAULT_WARNING;
@@ -2421,7 +2452,7 @@ ures_loc_nextLocale(UEnumeration* en,
     UResourceBundle *k = NULL;
     const char *result = NULL;
     int32_t len = 0;
-    if(ures_hasNext(res) && (k = ures_getNextResource(res, &ctx->curr, status))) {
+    if(ures_hasNext(res) && (k = ures_getNextResource(res, &ctx->curr, status)) != 0) {
         result = ures_getKey(k);
         len = (int32_t)uprv_strlen(result);
     }
@@ -2843,7 +2874,7 @@ ures_getKeywordValues(const char *path, const char *keyword, UErrorCode *status)
     valuesBuf[0]=0;
     valuesBuf[1]=0;
     
-    while((locale = uenum_next(locs, &locLen, status))) {
+    while((locale = uenum_next(locs, &locLen, status)) != 0) {
         UResourceBundle   *bund = NULL;
         UResourceBundle   *subPtr = NULL;
         UErrorCode subStatus = U_ZERO_ERROR; /* don't fail if a bundle is unopenable */
@@ -2868,7 +2899,7 @@ ures_getKeywordValues(const char *path, const char *keyword, UErrorCode *status)
             continue;
         }
         
-        while((subPtr = ures_getNextResource(&item,&subItem,&subStatus))
+        while((subPtr = ures_getNextResource(&item,&subItem,&subStatus)) != 0
             && U_SUCCESS(subStatus)) {
             const char *k;
             int32_t i;
index 8d845e3..4e28ddc 100644 (file)
@@ -475,7 +475,7 @@ U_NAMESPACE_BEGIN
 
 class ResourceDataValue : public ResourceValue {
 public:
-    ResourceDataValue() : pResData(NULL), res(URES_NONE) {}
+    ResourceDataValue() : pResData(NULL), res(static_cast<Resource>(URES_NONE)) {}
     virtual ~ResourceDataValue();
 
     void setData(const ResourceData *data) { pResData = data; }
index a640ae2..ae13b5c 100644 (file)
@@ -1323,7 +1323,7 @@ shapeUnicode(UChar *dest, int32_t sourceLength,
                         /* to ensure the array index is within the range */
                         U_ASSERT(dest[i] >= 0x064Bu
                             && dest[i]-0x064Bu < UPRV_LENGTHOF(IrrelevantPos));
-                        dest[i] =  0xFE70 + IrrelevantPos[(dest[i] - 0x064B)] + Shape;
+                        dest[i] =  0xFE70 + IrrelevantPos[(dest[i] - 0x064B)] + static_cast<UChar>(Shape);
                     }
                 }else if ((currLink & APRESENT) > 0) {
                     dest[i] = (UChar)(0xFB50 + (currLink >> 8) + Shape);
index cc8069d..01238b3 100644 (file)
@@ -112,7 +112,9 @@ hashEntry(const UHashTok parm) {
     UHashTok namekey, pathkey;
     namekey.pointer = b->name;
     pathkey.pointer = b->path;
-    return uhash_hashChars(namekey)+37*uhash_hashChars(pathkey);
+    uint32_t unsignedHash = static_cast<uint32_t>(uhash_hashChars(namekey)) +
+            37u * static_cast<uint32_t>(uhash_hashChars(pathkey));
+    return static_cast<int32_t>(unsignedHash);
 }
 
 /* compares two entries */
@@ -351,9 +353,9 @@ usprep_getProfile(const char* path,
         LocalMemory<char> keyName;
         LocalMemory<char> keyPath;
         if( key.allocateInsteadAndReset() == NULL ||
-            keyName.allocateInsteadAndCopy(uprv_strlen(name)+1) == NULL ||
+            keyName.allocateInsteadAndCopy(static_cast<int32_t>(uprv_strlen(name)+1)) == NULL ||
             (path != NULL &&
-             keyPath.allocateInsteadAndCopy(uprv_strlen(path)+1) == NULL)
+             keyPath.allocateInsteadAndCopy(static_cast<int32_t>(uprv_strlen(path)+1)) == NULL)
          ) {
             *status = U_MEMORY_ALLOCATION_ERROR;
             usprep_unload(newProfile.getAlias());
@@ -726,7 +728,7 @@ usprep_prepare(   const UStringPrepProfile* profile,
             ((result < _SPREP_TYPE_THRESHOLD) && (result & 0x01) /* first bit says it the code point is prohibited*/)
            ){
             *status = U_STRINGPREP_PROHIBITED_ERROR;
-            uprv_syntaxError(b1, b2Index-U16_LENGTH(ch), b2Len, parseError);
+            uprv_syntaxError(b2, b2Index-U16_LENGTH(ch), b2Len, parseError);
             return 0;
         }
 
index 978bd3b..618e847 100644 (file)
@@ -218,7 +218,7 @@ int32_t toLower(int32_t caseLocale, uint32_t options,
     int32_t srcIndex = srcStart;
     for (;;) {
         // fast path for simple cases
-        UChar lead;
+        UChar lead = 0;
         while (srcIndex < srcLimit) {
             lead = src[srcIndex];
             int32_t delta;
@@ -238,7 +238,7 @@ int32_t toLower(int32_t caseLocale, uint32_t options,
                     continue;
                 }
             }
-            lead += delta;
+            lead += static_cast<UChar>(delta);
             destIndex = appendUnchanged(dest, destIndex, destCapacity,
                                         src + prev, srcIndex - 1 - prev, options, edits);
             if (destIndex >= 0) {
@@ -313,7 +313,7 @@ int32_t toUpper(int32_t caseLocale, uint32_t options,
     int32_t srcIndex = 0;
     for (;;) {
         // fast path for simple cases
-        UChar lead;
+        UChar lead = 0;
         while (srcIndex < srcLength) {
             lead = src[srcIndex];
             int32_t delta;
@@ -333,7 +333,7 @@ int32_t toUpper(int32_t caseLocale, uint32_t options,
                     continue;
                 }
             }
-            lead += delta;
+            lead += static_cast<UChar>(delta);
             destIndex = appendUnchanged(dest, destIndex, destCapacity,
                                         src + prev, srcIndex - 1 - prev, options, edits);
             if (destIndex >= 0) {
@@ -1747,8 +1747,8 @@ static int32_t _cmpFold(
     }
 
     if(matchLen1) {
-        *matchLen1=m1-org1;
-        *matchLen2=m2-org2;
+        *matchLen1=static_cast<int32_t>(m1-org1);
+        *matchLen2=static_cast<int32_t>(m2-org2);
     }
     return cmpRes;
 }
index a2c9008..6f579bd 100644 (file)
@@ -1196,9 +1196,9 @@ fillForward:
         // Swap the UText buffers.
         //  We want to fill what was previously the alternate buffer,
         //  and make what was the current buffer be the new alternate.
-        UTF8Buf *u8b = (UTF8Buf *)ut->q;
+        UTF8Buf *u8b_swap = (UTF8Buf *)ut->q;
         ut->q = ut->p;
-        ut->p = u8b;
+        ut->p = u8b_swap;
 
         int32_t strLen = ut->b;
         UBool   nulTerminated = FALSE;
@@ -1207,9 +1207,9 @@ fillForward:
             nulTerminated = TRUE;
         }
 
-        UChar   *buf = u8b->buf;
-        uint8_t *mapToNative  = u8b->mapToNative;
-        uint8_t *mapToUChars  = u8b->mapToUChars;
+        UChar   *buf = u8b_swap->buf;
+        uint8_t *mapToNative  = u8b_swap->mapToNative;
+        uint8_t *mapToUChars  = u8b_swap->mapToUChars;
         int32_t  destIx       = 0;
         int32_t  srcIx        = ix;
         UBool    seenNonAscii = FALSE;
@@ -1230,7 +1230,7 @@ fillForward:
                 // General case, handle everything.
                 if (seenNonAscii == FALSE) {
                     seenNonAscii = TRUE;
-                    u8b->bufNILimit = destIx;
+                    u8b_swap->bufNILimit = destIx;
                 }
 
                 int32_t  cIx      = srcIx;
@@ -1263,22 +1263,22 @@ fillForward:
         mapToUChars[srcIx - ix] = (uint8_t)destIx;
 
         //  fill in Buffer descriptor
-        u8b->bufNativeStart     = ix;
-        u8b->bufNativeLimit     = srcIx;
-        u8b->bufStartIdx        = 0;
-        u8b->bufLimitIdx        = destIx;
+        u8b_swap->bufNativeStart     = ix;
+        u8b_swap->bufNativeLimit     = srcIx;
+        u8b_swap->bufStartIdx        = 0;
+        u8b_swap->bufLimitIdx        = destIx;
         if (seenNonAscii == FALSE) {
-            u8b->bufNILimit     = destIx;
+            u8b_swap->bufNILimit     = destIx;
         }
-        u8b->toUCharsMapStart   = u8b->bufNativeStart;
+        u8b_swap->toUCharsMapStart   = u8b_swap->bufNativeStart;
 
         // Set UText chunk to refer to this buffer.
         ut->chunkContents       = buf;
         ut->chunkOffset         = 0;
-        ut->chunkLength         = u8b->bufLimitIdx;
-        ut->chunkNativeStart    = u8b->bufNativeStart;
-        ut->chunkNativeLimit    = u8b->bufNativeLimit;
-        ut->nativeIndexingLimit = u8b->bufNILimit;
+        ut->chunkLength         = u8b_swap->bufLimitIdx;
+        ut->chunkNativeStart    = u8b_swap->bufNativeStart;
+        ut->chunkNativeLimit    = u8b_swap->bufNativeLimit;
+        ut->nativeIndexingLimit = u8b_swap->bufNILimit;
 
         // For zero terminated strings, keep track of the maximum point
         //   scanned so far.
@@ -1311,13 +1311,13 @@ fillReverse:
         // Swap the UText buffers.
         //  We want to fill what was previously the alternate buffer,
         //  and make what was the current buffer be the new alternate.
-        UTF8Buf *u8b = (UTF8Buf *)ut->q;
+        UTF8Buf *u8b_swap = (UTF8Buf *)ut->q;
         ut->q = ut->p;
-        ut->p = u8b;
+        ut->p = u8b_swap;
 
-        UChar   *buf = u8b->buf;
-        uint8_t *mapToNative = u8b->mapToNative;
-        uint8_t *mapToUChars = u8b->mapToUChars;
+        UChar   *buf = u8b_swap->buf;
+        uint8_t *mapToNative = u8b_swap->mapToNative;
+        uint8_t *mapToUChars = u8b_swap->mapToUChars;
         int32_t  toUCharsMapStart = ix - sizeof(UTF8Buf::mapToUChars) + 1;
         // Note that toUCharsMapStart can be negative. Happens when the remaining
         // text from current position to the beginning is less than the buffer size.
@@ -1387,19 +1387,19 @@ fillReverse:
                 bufNILimit = destIx;
             }
         }
-        u8b->bufNativeStart     = srcIx;
-        u8b->bufNativeLimit     = ix;
-        u8b->bufStartIdx        = destIx;
-        u8b->bufLimitIdx        = UTF8_TEXT_CHUNK_SIZE+2;
-        u8b->bufNILimit         = bufNILimit - u8b->bufStartIdx;
-        u8b->toUCharsMapStart   = toUCharsMapStart;
-
-        ut->chunkContents       = &buf[u8b->bufStartIdx];
-        ut->chunkLength         = u8b->bufLimitIdx - u8b->bufStartIdx;
+        u8b_swap->bufNativeStart     = srcIx;
+        u8b_swap->bufNativeLimit     = ix;
+        u8b_swap->bufStartIdx        = destIx;
+        u8b_swap->bufLimitIdx        = UTF8_TEXT_CHUNK_SIZE+2;
+        u8b_swap->bufNILimit         = bufNILimit - u8b_swap->bufStartIdx;
+        u8b_swap->toUCharsMapStart   = toUCharsMapStart;
+
+        ut->chunkContents       = &buf[u8b_swap->bufStartIdx];
+        ut->chunkLength         = u8b_swap->bufLimitIdx - u8b_swap->bufStartIdx;
         ut->chunkOffset         = ut->chunkLength;
-        ut->chunkNativeStart    = u8b->bufNativeStart;
-        ut->chunkNativeLimit    = u8b->bufNativeLimit;
-        ut->nativeIndexingLimit = u8b->bufNILimit;
+        ut->chunkNativeStart    = u8b_swap->bufNativeStart;
+        ut->chunkNativeLimit    = u8b_swap->bufNativeLimit;
+        ut->nativeIndexingLimit = u8b_swap->bufNILimit;
         return TRUE;
     }
 
index 641027a..3e2197e 100644 (file)
@@ -21,7 +21,6 @@
 
 #include "unicode/utypes.h"
 #include "unicode/utf16.h"
-#include "udataswp.h"
 
 U_CDECL_BEGIN
 
@@ -732,17 +731,13 @@ utrie_serialize(UNewTrie *trie, void *data, int32_t capacity,
                 UBool reduceTo16Bits,
                 UErrorCode *pErrorCode);
 
-/**
- * Swap a serialized UTrie.
- * @internal
- */
-U_CAPI int32_t U_EXPORT2
-utrie_swap(const UDataSwapper *ds,
-           const void *inData, int32_t length, void *outData,
-           UErrorCode *pErrorCode);
-
 /* serialization ------------------------------------------------------------ */
 
+// UTrie signature values, in platform endianness and opposite endianness.
+// The UTrie signature ASCII byte values spell "Trie".
+#define UTRIE_SIG       0x54726965
+#define UTRIE_OE_SIG    0x65697254
+
 /**
  * Trie data structure in serialized form:
  *
index 8f9183b..24ef578 100644 (file)
 *   This file contains only the runtime and enumeration code, for read-only access.
 *   See utrie2_builder.c for the builder code.
 */
-#ifdef UTRIE2_DEBUG
-#   include <stdio.h>
-#endif
-
 #include "unicode/utypes.h"
+#ifdef UCPTRIE_DEBUG
+#include "unicode/umutablecptrie.h"
+#endif
 #include "unicode/utf.h"
 #include "unicode/utf8.h"
 #include "unicode/utf16.h"
@@ -202,6 +201,9 @@ utrie2_openFromSerialized(UTrie2ValueBits valueBits,
     trie->memory=(uint32_t *)data;
     trie->length=actualLength;
     trie->isMemoryOwned=FALSE;
+#ifdef UTRIE2_DEBUG
+    trie->name="fromSerialized";
+#endif
 
     /* set the pointers to its index and data arrays */
     p16=(const uint16_t *)(header+1);
@@ -294,6 +296,9 @@ utrie2_openDummy(UTrie2ValueBits valueBits,
     trie->errorValue=errorValue;
     trie->highStart=0;
     trie->highValueIndex=dataMove+UTRIE2_DATA_START_OFFSET;
+#ifdef UTRIE2_DEBUG
+    trie->name="dummy";
+#endif
 
     /* set the header fields */
     header=(UTrie2Header *)trie->memory;
@@ -373,34 +378,15 @@ utrie2_close(UTrie2 *trie) {
         }
         if(trie->newTrie!=NULL) {
             uprv_free(trie->newTrie->data);
+#ifdef UCPTRIE_DEBUG
+            umutablecptrie_close(trie->newTrie->t3);
+#endif
             uprv_free(trie->newTrie);
         }
         uprv_free(trie);
     }
 }
 
-U_CAPI int32_t U_EXPORT2
-utrie2_getVersion(const void *data, int32_t length, UBool anyEndianOk) {
-    uint32_t signature;
-    if(length<16 || data==NULL || (U_POINTER_MASK_LSB(data, 3)!=0)) {
-        return 0;
-    }
-    signature=*(const uint32_t *)data;
-    if(signature==UTRIE2_SIG) {
-        return 2;
-    }
-    if(anyEndianOk && signature==UTRIE2_OE_SIG) {
-        return 2;
-    }
-    if(signature==UTRIE_SIG) {
-        return 1;
-    }
-    if(anyEndianOk && signature==UTRIE_OE_SIG) {
-        return 1;
-    }
-    return 0;
-}
-
 U_CAPI UBool U_EXPORT2
 utrie2_isFrozen(const UTrie2 *trie) {
     return (UBool)(trie->newTrie==NULL);
@@ -430,96 +416,6 @@ utrie2_serialize(const UTrie2 *trie,
     return trie->length;
 }
 
-U_CAPI int32_t U_EXPORT2
-utrie2_swap(const UDataSwapper *ds,
-            const void *inData, int32_t length, void *outData,
-            UErrorCode *pErrorCode) {
-    const UTrie2Header *inTrie;
-    UTrie2Header trie;
-    int32_t dataLength, size;
-    UTrie2ValueBits valueBits;
-
-    if(U_FAILURE(*pErrorCode)) {
-        return 0;
-    }
-    if(ds==NULL || inData==NULL || (length>=0 && outData==NULL)) {
-        *pErrorCode=U_ILLEGAL_ARGUMENT_ERROR;
-        return 0;
-    }
-
-    /* setup and swapping */
-    if(length>=0 && length<(int32_t)sizeof(UTrie2Header)) {
-        *pErrorCode=U_INDEX_OUTOFBOUNDS_ERROR;
-        return 0;
-    }
-
-    inTrie=(const UTrie2Header *)inData;
-    trie.signature=ds->readUInt32(inTrie->signature);
-    trie.options=ds->readUInt16(inTrie->options);
-    trie.indexLength=ds->readUInt16(inTrie->indexLength);
-    trie.shiftedDataLength=ds->readUInt16(inTrie->shiftedDataLength);
-
-    valueBits=(UTrie2ValueBits)(trie.options&UTRIE2_OPTIONS_VALUE_BITS_MASK);
-    dataLength=(int32_t)trie.shiftedDataLength<<UTRIE2_INDEX_SHIFT;
-
-    if( trie.signature!=UTRIE2_SIG ||
-        valueBits<0 || UTRIE2_COUNT_VALUE_BITS<=valueBits ||
-        trie.indexLength<UTRIE2_INDEX_1_OFFSET ||
-        dataLength<UTRIE2_DATA_START_OFFSET
-    ) {
-        *pErrorCode=U_INVALID_FORMAT_ERROR; /* not a UTrie */
-        return 0;
-    }
-
-    size=sizeof(UTrie2Header)+trie.indexLength*2;
-    switch(valueBits) {
-    case UTRIE2_16_VALUE_BITS:
-        size+=dataLength*2;
-        break;
-    case UTRIE2_32_VALUE_BITS:
-        size+=dataLength*4;
-        break;
-    default:
-        *pErrorCode=U_INVALID_FORMAT_ERROR;
-        return 0;
-    }
-
-    if(length>=0) {
-        UTrie2Header *outTrie;
-
-        if(length<size) {
-            *pErrorCode=U_INDEX_OUTOFBOUNDS_ERROR;
-            return 0;
-        }
-
-        outTrie=(UTrie2Header *)outData;
-
-        /* swap the header */
-        ds->swapArray32(ds, &inTrie->signature, 4, &outTrie->signature, pErrorCode);
-        ds->swapArray16(ds, &inTrie->options, 12, &outTrie->options, pErrorCode);
-
-        /* swap the index and the data */
-        switch(valueBits) {
-        case UTRIE2_16_VALUE_BITS:
-            ds->swapArray16(ds, inTrie+1, (trie.indexLength+dataLength)*2, outTrie+1, pErrorCode);
-            break;
-        case UTRIE2_32_VALUE_BITS:
-            ds->swapArray16(ds, inTrie+1, trie.indexLength*2, outTrie+1, pErrorCode);
-            ds->swapArray32(ds, (const uint16_t *)(inTrie+1)+trie.indexLength, dataLength*4,
-                                     (uint16_t *)(outTrie+1)+trie.indexLength, pErrorCode);
-            break;
-        default:
-            *pErrorCode=U_INVALID_FORMAT_ERROR;
-            return 0;
-        }
-    }
-
-    return size;
-}
-
-// utrie2_swapAnyVersion() should be defined here but lives in utrie2_builder.c
-// to avoid a dependency from utrie2.cpp on utrie.c.
-
 /* enumeration -------------------------------------------------------------- */
 
 #define MIN_VALUE(a, b) ((a)<(b) ? (a) : (b))
@@ -746,7 +642,7 @@ uint16_t BackwardUTrie2StringIterator::previous16() {
     codePointLimit=codePointStart;
     if(start>=codePointStart) {
         codePoint=U_SENTINEL;
-        return trie->errorValue;
+        return static_cast<uint16_t>(trie->errorValue);
     }
     uint16_t result;
     UTRIE2_U16_PREV16(trie, start, codePointStart, codePoint, result);
@@ -757,7 +653,7 @@ uint16_t ForwardUTrie2StringIterator::next16() {
     codePointStart=codePointLimit;
     if(codePointLimit==limit) {
         codePoint=U_SENTINEL;
-        return trie->errorValue;
+        return static_cast<uint16_t>(trie->errorValue);
     }
     uint16_t result;
     UTRIE2_U16_NEXT16(trie, codePointLimit, limit, codePoint, result);
index 8e1caa5..75028ee 100644 (file)
@@ -22,7 +22,6 @@
 #include "unicode/utypes.h"
 #include "unicode/utf8.h"
 #include "putilimp.h"
-#include "udataswp.h"
 
 U_CDECL_BEGIN
 
@@ -331,40 +330,6 @@ utrie2_serialize(const UTrie2 *trie,
 /* Public UTrie2 API: miscellaneous functions ------------------------------- */
 
 /**
- * Get the UTrie version from 32-bit-aligned memory containing the serialized form
- * of either a UTrie (version 1) or a UTrie2 (version 2).
- *
- * @param data a pointer to 32-bit-aligned memory containing the serialized form
- *             of a UTrie, version 1 or 2
- * @param length the number of bytes available at data;
- *               can be more than necessary (see return value)
- * @param anyEndianOk If FALSE, only platform-endian serialized forms are recognized.
- *                    If TRUE, opposite-endian serialized forms are recognized as well.
- * @return the UTrie version of the serialized form, or 0 if it is not
- *         recognized as a serialized UTrie
- */
-U_CAPI int32_t U_EXPORT2
-utrie2_getVersion(const void *data, int32_t length, UBool anyEndianOk);
-
-/**
- * Swap a serialized UTrie2.
- * @internal
- */
-U_CAPI int32_t U_EXPORT2
-utrie2_swap(const UDataSwapper *ds,
-            const void *inData, int32_t length, void *outData,
-            UErrorCode *pErrorCode);
-
-/**
- * Swap a serialized UTrie or UTrie2.
- * @internal
- */
-U_CAPI int32_t U_EXPORT2
-utrie2_swapAnyVersion(const UDataSwapper *ds,
-                      const void *inData, int32_t length, void *outData,
-                      UErrorCode *pErrorCode);
-
-/**
  * Build a UTrie2 (version 2) from a UTrie (version 1).
  * Enumerates all values in the UTrie and builds a UTrie2 with the same values.
  * The resulting UTrie2 will be frozen.
@@ -709,6 +674,10 @@ struct UTrie2 {
     UBool padding1;
     int16_t padding2;
     UNewTrie2 *newTrie;     /* builder object; NULL when frozen */
+
+#ifdef UTRIE2_DEBUG
+    const char *name;
+#endif
 };
 
 /**
index d8a3a06..80e09c9 100644 (file)
 *   This file contains only the builder code.
 *   See utrie2.c for the runtime and enumeration code.
 */
+// #define UTRIE2_DEBUG
 #ifdef UTRIE2_DEBUG
 #   include <stdio.h>
 #endif
+// #define UCPTRIE_DEBUG
 
 #include "unicode/utypes.h"
+#ifdef UCPTRIE_DEBUG
+#include "unicode/ucptrie.h"
+#include "unicode/umutablecptrie.h"
+#include "ucptrie_impl.h"
+#endif
 #include "cmemory.h"
 #include "utrie2.h"
 #include "utrie2_impl.h"
 
-#include "utrie.h" /* for utrie2_fromUTrie() and utrie_swap() */
+#include "utrie.h"  // for utrie2_fromUTrie()
 
 /* Implementation notes ----------------------------------------------------- */
 
@@ -132,8 +139,14 @@ utrie2_open(uint32_t initialValue, uint32_t errorValue, UErrorCode *pErrorCode)
     trie->errorValue=errorValue;
     trie->highStart=0x110000;
     trie->newTrie=newTrie;
+#ifdef UTRIE2_DEBUG
+    trie->name="open";
+#endif
 
     newTrie->data=data;
+#ifdef UCPTRIE_DEBUG
+    newTrie->t3=umutablecptrie_open(initialValue, errorValue, pErrorCode);
+#endif
     newTrie->dataCapacity=UNEWTRIE2_INITIAL_DATA_LENGTH;
     newTrie->initialValue=initialValue;
     newTrie->errorValue=errorValue;
@@ -246,6 +259,14 @@ cloneBuilder(const UNewTrie2 *other) {
         uprv_free(trie);
         return NULL;
     }
+#ifdef UCPTRIE_DEBUG
+    if(other->t3==nullptr) {
+        trie->t3=nullptr;
+    } else {
+        UErrorCode errorCode=U_ZERO_ERROR;
+        trie->t3=umutablecptrie_clone(other->t3, &errorCode);
+    }
+#endif
     trie->dataCapacity=other->dataCapacity;
 
     /* clone data */
@@ -343,6 +364,22 @@ copyEnumRange(const void *context, UChar32 start, UChar32 end, uint32_t value) {
 }
 
 #ifdef UTRIE2_DEBUG
+static long countInitial(const UTrie2 *trie) {
+    uint32_t initialValue=trie->initialValue;
+    int32_t length=trie->dataLength;
+    long count=0;
+    if(trie->data16!=nullptr) {
+        for(int32_t i=0; i<length; ++i) {
+            if(trie->data16[i]==initialValue) { ++count; }
+        }
+    } else {
+        for(int32_t i=0; i<length; ++i) {
+            if(trie->data32[i]==initialValue) { ++count; }
+        }
+    }
+    return count;
+}
+
 static void
 utrie_printLengths(const UTrie *trie) {
     long indexLength=trie->indexLength;
@@ -357,8 +394,8 @@ utrie2_printLengths(const UTrie2 *trie, const char *which) {
     long indexLength=trie->indexLength;
     long dataLength=(long)trie->dataLength;
     long totalLength=(long)sizeof(UTrie2Header)+indexLength*2+dataLength*(trie->data32!=NULL ? 4 : 2);
-    printf("**UTrie2Lengths(%s)** index:%6ld  data:%6ld  serialized:%6ld\n",
-           which, indexLength, dataLength, totalLength);
+    printf("**UTrie2Lengths(%s %s)** index:%6ld  data:%6ld  countInitial:%6ld  serialized:%6ld\n",
+           which, trie->name, indexLength, dataLength, countInitial(trie), totalLength);
 }
 #endif
 
@@ -622,6 +659,9 @@ set32(UNewTrie2 *trie,
         *pErrorCode=U_NO_WRITE_PERMISSION;
         return;
     }
+#ifdef UCPTRIE_DEBUG
+    umutablecptrie_set(trie->t3, c, value, pErrorCode);
+#endif
 
     block=getDataBlock(trie, c, forLSCP);
     if(block<0) {
@@ -717,6 +757,9 @@ utrie2_setRange32(UTrie2 *trie,
         *pErrorCode=U_NO_WRITE_PERMISSION;
         return;
     }
+#ifdef UCPTRIE_DEBUG
+    umutablecptrie_setRange(newTrie->t3, start, end, value, pErrorCode);
+#endif
     if(!overwrite && value==newTrie->initialValue) {
         return; /* nothing to do */
     }
@@ -732,7 +775,7 @@ utrie2_setRange32(UTrie2 *trie,
             return;
         }
 
-        nextStart=(start+UTRIE2_DATA_BLOCK_LENGTH)&~UTRIE2_DATA_MASK;
+        nextStart=(start+UTRIE2_DATA_MASK)&~UTRIE2_DATA_MASK;
         if(nextStart<=limit) {
             fillBlock(newTrie->data+block, start&UTRIE2_DATA_MASK, UTRIE2_DATA_BLOCK_LENGTH,
                       value, newTrie->initialValue, overwrite);
@@ -983,6 +1026,10 @@ findHighStart(UNewTrie2 *trie, uint32_t highValue) {
  */
 static void
 compactData(UNewTrie2 *trie) {
+#ifdef UTRIE2_DEBUG
+    int32_t countSame=0, sumOverlaps=0;
+#endif
+
     int32_t start, newStart, movedStart;
     int32_t blockLength, overlap;
     int32_t i, mapIndex, blockCount;
@@ -1023,6 +1070,9 @@ compactData(UNewTrie2 *trie) {
         if( (movedStart=findSameDataBlock(trie->data, newStart, start, blockLength))
              >=0
         ) {
+#ifdef UTRIE2_DEBUG
+            ++countSame;
+#endif
             /* found an identical block, set the other block's index value for the current block */
             for(i=blockCount, mapIndex=start>>UTRIE2_SHIFT_2; i>0; --i) {
                 trie->map[mapIndex++]=movedStart;
@@ -1042,6 +1092,9 @@ compactData(UNewTrie2 *trie) {
             overlap>0 && !equal_uint32(trie->data+(newStart-overlap), trie->data+start, overlap);
             overlap-=UTRIE2_DATA_GRANULARITY) {}
 
+#ifdef UTRIE2_DEBUG
+            sumOverlaps+=overlap;
+#endif
         if(overlap>0 || newStart<start) {
             /* some overlap, or just move the whole block */
             movedStart=newStart-overlap;
@@ -1081,8 +1134,8 @@ compactData(UNewTrie2 *trie) {
 
 #ifdef UTRIE2_DEBUG
     /* we saved some space */
-    printf("compacting UTrie2: count of 32-bit data words %lu->%lu\n",
-            (long)trie->dataLength, (long)newStart);
+    printf("compacting UTrie2: count of 32-bit data words %lu->%lu  countSame=%ld  sumOverlaps=%ld\n",
+            (long)trie->dataLength, (long)newStart, (long)countSame, (long)sumOverlaps);
 #endif
 
     trie->dataLength=newStart;
@@ -1163,7 +1216,7 @@ compactIndex2(UNewTrie2 *trie) {
 
 #ifdef UTRIE2_DEBUG
     /* we saved some space */
-    printf("compacting UTrie2: count of 16-bit index-2 words %lu->%lu\n",
+    printf("compacting UTrie2: count of 16-bit index words %lu->%lu\n",
             (long)trie->index2Length, (long)newStart);
 #endif
 
@@ -1193,7 +1246,7 @@ compactTrie(UTrie2 *trie, UErrorCode *pErrorCode) {
     trie->highStart=newTrie->highStart=highStart;
 
 #ifdef UTRIE2_DEBUG
-    printf("UTrie2: highStart U+%04lx  highValue 0x%lx  initialValue 0x%lx\n",
+    printf("UTrie2: highStart U+%06lx  highValue 0x%lx  initialValue 0x%lx\n",
             (long)highStart, (long)highValue, (long)trie->initialValue);
 #endif
 
@@ -1211,7 +1264,7 @@ compactTrie(UTrie2 *trie, UErrorCode *pErrorCode) {
         compactIndex2(newTrie);
 #ifdef UTRIE2_DEBUG
     } else {
-        printf("UTrie2: highStart U+%04lx  count of 16-bit index-2 words %lu->%lu\n",
+        printf("UTrie2: highStart U+%04lx  count of 16-bit index words %lu->%lu\n",
                 (long)highStart, (long)trie->newTrie->index2Length, (long)UTRIE2_INDEX_1_OFFSET);
 #endif
     }
@@ -1334,7 +1387,7 @@ utrie2_freeze(UTrie2 *trie, UTrie2ValueBits valueBits, UErrorCode *pErrorCode) {
     if(highStart<=0x10000) {
         trie->index2NullOffset=0xffff;
     } else {
-        trie->index2NullOffset=UTRIE2_INDEX_2_OFFSET+newTrie->index2NullOffset;
+        trie->index2NullOffset=static_cast<uint16_t>(UTRIE2_INDEX_2_OFFSET+newTrie->index2NullOffset);
     }
     trie->dataNullOffset=(uint16_t)(dataMove+newTrie->dataNullOffset);
     trie->highValueIndex=dataMove+trie->dataLength-UTRIE2_DATA_GRANULARITY;
@@ -1411,31 +1464,18 @@ utrie2_freeze(UTrie2 *trie, UTrie2ValueBits valueBits, UErrorCode *pErrorCode) {
         return;
     }
 
+#ifdef UTRIE2_DEBUG
+    utrie2_printLengths(trie, "");
+#endif
+
+#ifdef UCPTRIE_DEBUG
+    umutablecptrie_setName(newTrie->t3, trie->name);
+    ucptrie_close(
+        umutablecptrie_buildImmutable(
+            newTrie->t3, UCPTRIE_TYPE_FAST, (UCPTrieValueWidth)valueBits, pErrorCode));
+#endif
     /* Delete the UNewTrie2. */
     uprv_free(newTrie->data);
     uprv_free(newTrie);
     trie->newTrie=NULL;
 }
-
-/*
- * This is here to avoid a dependency from utrie2.cpp on utrie.c.
- * This file already depends on utrie.c.
- * Otherwise, this should be in utrie2.cpp right after utrie2_swap().
- */
-U_CAPI int32_t U_EXPORT2
-utrie2_swapAnyVersion(const UDataSwapper *ds,
-                      const void *inData, int32_t length, void *outData,
-                      UErrorCode *pErrorCode) {
-    if(U_SUCCESS(*pErrorCode)) {
-        switch(utrie2_getVersion(inData, length, TRUE)) {
-        case 1:
-            return utrie_swap(ds, inData, length, outData, pErrorCode);
-        case 2:
-            return utrie2_swap(ds, inData, length, outData, pErrorCode);
-        default:
-            *pErrorCode=U_INVALID_FORMAT_ERROR;
-            return 0;
-        }
-    }
-    return 0;
-}
index b7dc9d3..2a14db3 100644 (file)
 #ifndef __UTRIE2_IMPL_H__
 #define __UTRIE2_IMPL_H__
 
+#ifdef UCPTRIE_DEBUG
+#include "unicode/umutablecptrie.h"
+#endif
 #include "utrie2.h"
 
 /* Public UTrie2 API implementation ----------------------------------------- */
 
 /*
- * These definitions are mostly needed by utrie2.c,
+ * These definitions are mostly needed by utrie2.cpp,
  * but also by utrie2_serialize() and utrie2_swap().
  */
 
-/*
- * UTrie and UTrie2 signature values,
- * in platform endianness and opposite endianness.
- */
-#define UTRIE_SIG       0x54726965
-#define UTRIE_OE_SIG    0x65697254
-
+// UTrie2 signature values, in platform endianness and opposite endianness.
+// The UTrie2 signature ASCII byte values spell "Tri2".
 #define UTRIE2_SIG      0x54726932
 #define UTRIE2_OE_SIG   0x32697254
 
@@ -145,6 +143,9 @@ struct UNewTrie2 {
     int32_t index1[UNEWTRIE2_INDEX_1_LENGTH];
     int32_t index2[UNEWTRIE2_MAX_INDEX_2_LENGTH];
     uint32_t *data;
+#ifdef UCPTRIE_DEBUG
+    UMutableCPTrie *t3;
+#endif
 
     uint32_t initialValue, errorValue;
     int32_t index2Length, dataCapacity, dataLength;
diff --git a/source/common/utrie_swap.cpp b/source/common/utrie_swap.cpp
new file mode 100644 (file)
index 0000000..5abe7bd
--- /dev/null
@@ -0,0 +1,344 @@
+// © 2018 and later: Unicode, Inc. and others.
+// License & terms of use: http://www.unicode.org/copyright.html
+
+// utrie_swap.cpp
+// created: 2018aug08 Markus W. Scherer
+
+#include "unicode/utypes.h"
+#include "cmemory.h"
+#include "ucptrie_impl.h"
+#include "udataswp.h"
+#include "utrie.h"
+#include "utrie2_impl.h"
+
+// These functions for swapping different generations of ICU code point tries are here
+// so that their implementation files need not depend on swapper code,
+// need not depend on each other, and so that other swapper code
+// need not depend on other trie code.
+
+namespace {
+
+constexpr int32_t ASCII_LIMIT = 0x80;
+
+}  // namespace
+
+U_CAPI int32_t U_EXPORT2
+utrie_swap(const UDataSwapper *ds,
+           const void *inData, int32_t length, void *outData,
+           UErrorCode *pErrorCode) {
+    const UTrieHeader *inTrie;
+    UTrieHeader trie;
+    int32_t size;
+    UBool dataIs32;
+
+    if(pErrorCode==NULL || U_FAILURE(*pErrorCode)) {
+        return 0;
+    }
+    if(ds==NULL || inData==NULL || (length>=0 && outData==NULL)) {
+        *pErrorCode=U_ILLEGAL_ARGUMENT_ERROR;
+        return 0;
+    }
+
+    /* setup and swapping */
+    if(length>=0 && (uint32_t)length<sizeof(UTrieHeader)) {
+        *pErrorCode=U_INDEX_OUTOFBOUNDS_ERROR;
+        return 0;
+    }
+
+    inTrie=(const UTrieHeader *)inData;
+    trie.signature=ds->readUInt32(inTrie->signature);
+    trie.options=ds->readUInt32(inTrie->options);
+    trie.indexLength=udata_readInt32(ds, inTrie->indexLength);
+    trie.dataLength=udata_readInt32(ds, inTrie->dataLength);
+
+    if( trie.signature!=0x54726965 ||
+        (trie.options&UTRIE_OPTIONS_SHIFT_MASK)!=UTRIE_SHIFT ||
+        ((trie.options>>UTRIE_OPTIONS_INDEX_SHIFT)&UTRIE_OPTIONS_SHIFT_MASK)!=UTRIE_INDEX_SHIFT ||
+        trie.indexLength<UTRIE_BMP_INDEX_LENGTH ||
+        (trie.indexLength&(UTRIE_SURROGATE_BLOCK_COUNT-1))!=0 ||
+        trie.dataLength<UTRIE_DATA_BLOCK_LENGTH ||
+        (trie.dataLength&(UTRIE_DATA_GRANULARITY-1))!=0 ||
+        ((trie.options&UTRIE_OPTIONS_LATIN1_IS_LINEAR)!=0 && trie.dataLength<(UTRIE_DATA_BLOCK_LENGTH+0x100))
+    ) {
+        *pErrorCode=U_INVALID_FORMAT_ERROR; /* not a UTrie */
+        return 0;
+    }
+
+    dataIs32=(UBool)((trie.options&UTRIE_OPTIONS_DATA_IS_32_BIT)!=0);
+    size=sizeof(UTrieHeader)+trie.indexLength*2+trie.dataLength*(dataIs32?4:2);
+
+    if(length>=0) {
+        UTrieHeader *outTrie;
+
+        if(length<size) {
+            *pErrorCode=U_INDEX_OUTOFBOUNDS_ERROR;
+            return 0;
+        }
+
+        outTrie=(UTrieHeader *)outData;
+
+        /* swap the header */
+        ds->swapArray32(ds, inTrie, sizeof(UTrieHeader), outTrie, pErrorCode);
+
+        /* swap the index and the data */
+        if(dataIs32) {
+            ds->swapArray16(ds, inTrie+1, trie.indexLength*2, outTrie+1, pErrorCode);
+            ds->swapArray32(ds, (const uint16_t *)(inTrie+1)+trie.indexLength, trie.dataLength*4,
+                                     (uint16_t *)(outTrie+1)+trie.indexLength, pErrorCode);
+        } else {
+            ds->swapArray16(ds, inTrie+1, (trie.indexLength+trie.dataLength)*2, outTrie+1, pErrorCode);
+        }
+    }
+
+    return size;
+}
+
+U_CAPI int32_t U_EXPORT2
+utrie2_swap(const UDataSwapper *ds,
+            const void *inData, int32_t length, void *outData,
+            UErrorCode *pErrorCode) {
+    const UTrie2Header *inTrie;
+    UTrie2Header trie;
+    int32_t dataLength, size;
+    UTrie2ValueBits valueBits;
+
+    if(U_FAILURE(*pErrorCode)) {
+        return 0;
+    }
+    if(ds==NULL || inData==NULL || (length>=0 && outData==NULL)) {
+        *pErrorCode=U_ILLEGAL_ARGUMENT_ERROR;
+        return 0;
+    }
+
+    /* setup and swapping */
+    if(length>=0 && length<(int32_t)sizeof(UTrie2Header)) {
+        *pErrorCode=U_INDEX_OUTOFBOUNDS_ERROR;
+        return 0;
+    }
+
+    inTrie=(const UTrie2Header *)inData;
+    trie.signature=ds->readUInt32(inTrie->signature);
+    trie.options=ds->readUInt16(inTrie->options);
+    trie.indexLength=ds->readUInt16(inTrie->indexLength);
+    trie.shiftedDataLength=ds->readUInt16(inTrie->shiftedDataLength);
+
+    valueBits=(UTrie2ValueBits)(trie.options&UTRIE2_OPTIONS_VALUE_BITS_MASK);
+    dataLength=(int32_t)trie.shiftedDataLength<<UTRIE2_INDEX_SHIFT;
+
+    if( trie.signature!=UTRIE2_SIG ||
+        valueBits<0 || UTRIE2_COUNT_VALUE_BITS<=valueBits ||
+        trie.indexLength<UTRIE2_INDEX_1_OFFSET ||
+        dataLength<UTRIE2_DATA_START_OFFSET
+    ) {
+        *pErrorCode=U_INVALID_FORMAT_ERROR; /* not a UTrie */
+        return 0;
+    }
+
+    size=sizeof(UTrie2Header)+trie.indexLength*2;
+    switch(valueBits) {
+    case UTRIE2_16_VALUE_BITS:
+        size+=dataLength*2;
+        break;
+    case UTRIE2_32_VALUE_BITS:
+        size+=dataLength*4;
+        break;
+    default:
+        *pErrorCode=U_INVALID_FORMAT_ERROR;
+        return 0;
+    }
+
+    if(length>=0) {
+        UTrie2Header *outTrie;
+
+        if(length<size) {
+            *pErrorCode=U_INDEX_OUTOFBOUNDS_ERROR;
+            return 0;
+        }
+
+        outTrie=(UTrie2Header *)outData;
+
+        /* swap the header */
+        ds->swapArray32(ds, &inTrie->signature, 4, &outTrie->signature, pErrorCode);
+        ds->swapArray16(ds, &inTrie->options, 12, &outTrie->options, pErrorCode);
+
+        /* swap the index and the data */
+        switch(valueBits) {
+        case UTRIE2_16_VALUE_BITS:
+            ds->swapArray16(ds, inTrie+1, (trie.indexLength+dataLength)*2, outTrie+1, pErrorCode);
+            break;
+        case UTRIE2_32_VALUE_BITS:
+            ds->swapArray16(ds, inTrie+1, trie.indexLength*2, outTrie+1, pErrorCode);
+            ds->swapArray32(ds, (const uint16_t *)(inTrie+1)+trie.indexLength, dataLength*4,
+                                     (uint16_t *)(outTrie+1)+trie.indexLength, pErrorCode);
+            break;
+        default:
+            *pErrorCode=U_INVALID_FORMAT_ERROR;
+            return 0;
+        }
+    }
+
+    return size;
+}
+
+U_CAPI int32_t U_EXPORT2
+ucptrie_swap(const UDataSwapper *ds,
+             const void *inData, int32_t length, void *outData,
+             UErrorCode *pErrorCode) {
+    const UCPTrieHeader *inTrie;
+    UCPTrieHeader trie;
+    int32_t dataLength, size;
+    UCPTrieValueWidth valueWidth;
+
+    if(U_FAILURE(*pErrorCode)) {
+        return 0;
+    }
+    if(ds==nullptr || inData==nullptr || (length>=0 && outData==nullptr)) {
+        *pErrorCode=U_ILLEGAL_ARGUMENT_ERROR;
+        return 0;
+    }
+
+    /* setup and swapping */
+    if(length>=0 && length<(int32_t)sizeof(UCPTrieHeader)) {
+        *pErrorCode=U_INDEX_OUTOFBOUNDS_ERROR;
+        return 0;
+    }
+
+    inTrie=(const UCPTrieHeader *)inData;
+    trie.signature=ds->readUInt32(inTrie->signature);
+    trie.options=ds->readUInt16(inTrie->options);
+    trie.indexLength=ds->readUInt16(inTrie->indexLength);
+    trie.dataLength = ds->readUInt16(inTrie->dataLength);
+
+    UCPTrieType type = (UCPTrieType)((trie.options >> 6) & 3);
+    valueWidth = (UCPTrieValueWidth)(trie.options & UCPTRIE_OPTIONS_VALUE_BITS_MASK);
+    dataLength = ((int32_t)(trie.options & UCPTRIE_OPTIONS_DATA_LENGTH_MASK) << 4) | trie.dataLength;
+
+    int32_t minIndexLength = type == UCPTRIE_TYPE_FAST ?
+        UCPTRIE_BMP_INDEX_LENGTH : UCPTRIE_SMALL_INDEX_LENGTH;
+    if( trie.signature!=UCPTRIE_SIG ||
+        type > UCPTRIE_TYPE_SMALL ||
+        (trie.options & UCPTRIE_OPTIONS_RESERVED_MASK) != 0 ||
+        valueWidth > UCPTRIE_VALUE_BITS_8 ||
+        trie.indexLength < minIndexLength ||
+        dataLength < ASCII_LIMIT
+    ) {
+        *pErrorCode=U_INVALID_FORMAT_ERROR; /* not a UCPTrie */
+        return 0;
+    }
+
+    size=sizeof(UCPTrieHeader)+trie.indexLength*2;
+    switch(valueWidth) {
+    case UCPTRIE_VALUE_BITS_16:
+        size+=dataLength*2;
+        break;
+    case UCPTRIE_VALUE_BITS_32:
+        size+=dataLength*4;
+        break;
+    case UCPTRIE_VALUE_BITS_8:
+        size+=dataLength;
+        break;
+    default:
+        *pErrorCode=U_INVALID_FORMAT_ERROR;
+        return 0;
+    }
+
+    if(length>=0) {
+        UCPTrieHeader *outTrie;
+
+        if(length<size) {
+            *pErrorCode=U_INDEX_OUTOFBOUNDS_ERROR;
+            return 0;
+        }
+
+        outTrie=(UCPTrieHeader *)outData;
+
+        /* swap the header */
+        ds->swapArray32(ds, &inTrie->signature, 4, &outTrie->signature, pErrorCode);
+        ds->swapArray16(ds, &inTrie->options, 12, &outTrie->options, pErrorCode);
+
+        /* swap the index and the data */
+        switch(valueWidth) {
+        case UCPTRIE_VALUE_BITS_16:
+            ds->swapArray16(ds, inTrie+1, (trie.indexLength+dataLength)*2, outTrie+1, pErrorCode);
+            break;
+        case UCPTRIE_VALUE_BITS_32:
+            ds->swapArray16(ds, inTrie+1, trie.indexLength*2, outTrie+1, pErrorCode);
+            ds->swapArray32(ds, (const uint16_t *)(inTrie+1)+trie.indexLength, dataLength*4,
+                                     (uint16_t *)(outTrie+1)+trie.indexLength, pErrorCode);
+            break;
+        case UCPTRIE_VALUE_BITS_8:
+            ds->swapArray16(ds, inTrie+1, trie.indexLength*2, outTrie+1, pErrorCode);
+            if(inTrie!=outTrie) {
+                uprv_memmove((outTrie+1)+trie.indexLength, (inTrie+1)+trie.indexLength, dataLength);
+            }
+            break;
+        default:
+            *pErrorCode=U_INVALID_FORMAT_ERROR;
+            return 0;
+        }
+    }
+
+    return size;
+}
+
+namespace {
+
+/**
+ * Gets the trie version from 32-bit-aligned memory containing the serialized form
+ * of a UTrie (version 1), a UTrie2 (version 2), or a UCPTrie (version 3).
+ *
+ * @param data a pointer to 32-bit-aligned memory containing the serialized form of a trie
+ * @param length the number of bytes available at data;
+ *               can be more than necessary (see return value)
+ * @param anyEndianOk If FALSE, only platform-endian serialized forms are recognized.
+ *                    If TRUE, opposite-endian serialized forms are recognized as well.
+ * @return the trie version of the serialized form, or 0 if it is not
+ *         recognized as a serialized trie
+ */
+int32_t
+getVersion(const void *data, int32_t length, UBool anyEndianOk) {
+    uint32_t signature;
+    if(length<16 || data==nullptr || (U_POINTER_MASK_LSB(data, 3)!=0)) {
+        return 0;
+    }
+    signature=*(const uint32_t *)data;
+    if(signature==UCPTRIE_SIG) {
+        return 3;
+    }
+    if(anyEndianOk && signature==UCPTRIE_OE_SIG) {
+        return 3;
+    }
+    if(signature==UTRIE2_SIG) {
+        return 2;
+    }
+    if(anyEndianOk && signature==UTRIE2_OE_SIG) {
+        return 2;
+    }
+    if(signature==UTRIE_SIG) {
+        return 1;
+    }
+    if(anyEndianOk && signature==UTRIE_OE_SIG) {
+        return 1;
+    }
+    return 0;
+}
+
+}  // namespace
+
+U_CAPI int32_t U_EXPORT2
+utrie_swapAnyVersion(const UDataSwapper *ds,
+                     const void *inData, int32_t length, void *outData,
+                     UErrorCode *pErrorCode) {
+    if(U_FAILURE(*pErrorCode)) { return 0; }
+    switch(getVersion(inData, length, TRUE)) {
+    case 1:
+        return utrie_swap(ds, inData, length, outData, pErrorCode);
+    case 2:
+        return utrie2_swap(ds, inData, length, outData, pErrorCode);
+    case 3:
+        return ucptrie_swap(ds, inData, length, outData, pErrorCode);
+    default:
+        *pErrorCode=U_INVALID_FORMAT_ERROR;
+        return 0;
+    }
+}
index 5a23572..b9e6cb0 100644 (file)
@@ -557,7 +557,10 @@ UTS46::processUnicode(const UnicodeString &src,
             destArray=dest.getBuffer();
             destLength+=newLength-labelLength;
             labelLimit=labelStart+=newLength+1;
-        } else if(0xdf<=c && c<=0x200d && (c==0xdf || c==0x3c2 || c>=0x200c)) {
+            continue;
+        } else if(c<0xdf) {
+            // pass
+        } else if(c<=0x200d && (c==0xdf || c==0x3c2 || c>=0x200c)) {
             info.isTransDiff=TRUE;
             if(doMapDevChars) {
                 destLength=mapDevChars(dest, labelStart, labelLimit, errorCode);
@@ -565,15 +568,23 @@ UTS46::processUnicode(const UnicodeString &src,
                     return dest;
                 }
                 destArray=dest.getBuffer();
-                // Do not increment labelLimit in case c was removed.
                 // All deviation characters have been mapped, no need to check for them again.
                 doMapDevChars=FALSE;
-            } else {
-                ++labelLimit;
+                // Do not increment labelLimit in case c was removed.
+                continue;
+            }
+        } else if(U16_IS_SURROGATE(c)) {
+            if(U16_IS_SURROGATE_LEAD(c) ?
+                    (labelLimit+1)==destLength || !U16_IS_TRAIL(destArray[labelLimit+1]) :
+                    labelLimit==labelStart || !U16_IS_LEAD(destArray[labelLimit-1])) {
+                // Map an unpaired surrogate to U+FFFD before normalization so that when
+                // that removes characters we do not turn two unpaired ones into a pair.
+                info.labelErrors|=UIDNA_ERROR_DISALLOWED;
+                dest.setCharAt(labelLimit, 0xfffd);
+                destArray=dest.getBuffer();
             }
-        } else {
-            ++labelLimit;
         }
+        ++labelLimit;
     }
     // Permit an empty label at the end (0<labelStart==labelLimit==destLength is ok)
     // but not an empty label elsewhere nor a completely empty domain name.
index 3aaa36a..5e9ac0d 100644 (file)
@@ -13,9 +13,7 @@
 
 #include "unicode/utypes.h"
 
-// This file contains only desktop Windows behavior
-// Windows UWP calls Windows::Globalization directly, so this isn't needed there.
-#if U_PLATFORM_USES_ONLY_WIN32_API && (U_PLATFORM_HAS_WINUWP_API == 0)
+#if U_PLATFORM_USES_ONLY_WIN32_API
 
 #include "wintz.h"
 #include "cmemory.h"
@@ -23,6 +21,7 @@
 
 #include "unicode/ures.h"
 #include "unicode/ustring.h"
+#include "uresimp.h"
 
 #ifndef WIN32_LEAN_AND_MEAN
 #   define WIN32_LEAN_AND_MEAN
 #   define NOMCX
 #include <windows.h>
 
-#define MAX_LENGTH_ID 40
+U_NAMESPACE_BEGIN
 
-/* The layout of the Tzi value in the registry */
-typedef struct
-{
-    int32_t bias;
-    int32_t standardBias;
-    int32_t daylightBias;
-    SYSTEMTIME standardDate;
-    SYSTEMTIME daylightDate;
-} TZI;
-
-/**
- * Various registry keys and key fragments.
- */
-static const wchar_t CURRENT_ZONE_REGKEY[] = L"SYSTEM\\CurrentControlSet\\Control\\TimeZoneInformation\\";
-static const char STANDARD_TIME_REGKEY[] = " Standard Time";
-static const char TZI_REGKEY[] = "TZI";
-static const char STD_REGKEY[] = "Std";
+// The value of MAX_TIMEZONE_ID_LENGTH is 128, which is defined in DYNAMIC_TIME_ZONE_INFORMATION
+#define MAX_TIMEZONE_ID_LENGTH 128
 
 /**
- * The time zone root keys (under HKLM) for Win7+
- */
-static const char TZ_REGKEY[] = "SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\Time Zones\\";
-
-static LONG openTZRegKey(HKEY *hkey, const char *winid)
-{
-    char subKeyName[110]; /* TODO: why 110?? */
-    char *name;
-    LONG result;
-
-    uprv_strcpy(subKeyName, TZ_REGKEY);
-    name = &subKeyName[strlen(subKeyName)];
-    uprv_strcat(subKeyName, winid);
-
-    result = RegOpenKeyExA(HKEY_LOCAL_MACHINE,
-                            subKeyName,
-                            0,
-                            KEY_QUERY_VALUE,
-                            hkey);
-    return result;
-}
-
-static LONG getTZI(const char *winid, TZI *tzi)
-{
-    DWORD cbData = sizeof(TZI);
-    LONG result;
-    HKEY hkey;
-
-    result = openTZRegKey(&hkey, winid);
-
-    if (result == ERROR_SUCCESS)
-    {
-        result = RegQueryValueExA(hkey,
-                                    TZI_REGKEY,
-                                    NULL,
-                                    NULL,
-                                    (LPBYTE)tzi,
-                                    &cbData);
-        RegCloseKey(hkey);
-    }
-
-    return result;
-}
-
-static LONG getSTDName(const char *winid, char *regStdName, int32_t length)
-{
-    DWORD cbData = length;
-    LONG result;
-    HKEY hkey;
-
-    result = openTZRegKey(&hkey, winid);
-
-    if (result == ERROR_SUCCESS) 
-    {
-        result = RegQueryValueExA(hkey,
-                                    STD_REGKEY,
-                                    NULL,
-                                    NULL,
-                                    (LPBYTE)regStdName,
-                                    &cbData);
-        RegCloseKey(hkey);
-    }
-
-    return result;
-}
-
-static LONG getTZKeyName(char* tzKeyName, int32_t tzKeyNamelength)
-{
-    HKEY hkey;
-    LONG result = FALSE;
-    WCHAR timeZoneKeyNameData[128];
-    DWORD timeZoneKeyNameLength = static_cast<DWORD>(sizeof(timeZoneKeyNameData));
-
-    if(ERROR_SUCCESS == RegOpenKeyExW(
-        HKEY_LOCAL_MACHINE,
-        CURRENT_ZONE_REGKEY,
-        0, 
-        KEY_QUERY_VALUE,
-        &hkey))
-    {
-        if (ERROR_SUCCESS == RegQueryValueExW(
-             hkey,
-             L"TimeZoneKeyName",
-             NULL,
-             NULL,
-             (LPBYTE)timeZoneKeyNameData,
-             &timeZoneKeyNameLength))
-        {
-            // Ensure null termination.
-            timeZoneKeyNameData[UPRV_LENGTHOF(timeZoneKeyNameData) - 1] = L'\0';
-
-            // Convert the UTF-16 string to UTF-8.
-            UErrorCode status = U_ZERO_ERROR;
-            u_strToUTF8(tzKeyName, tzKeyNamelength, NULL, reinterpret_cast<const UChar *>(timeZoneKeyNameData), -1, &status);
-            if (U_ZERO_ERROR == status)
-            {
-                result = ERROR_SUCCESS;
-            }
-        }
-        RegCloseKey(hkey);
-    }
-
-    return result;
-}
-
-/*
-  This code attempts to detect the Windows time zone directly,
-  as set in the Windows Date and Time control panel.  It attempts
-  to work on versions greater than Windows Vista and on localized
-  installs.  It works by directly interrogating the registry and
-  comparing the data there with the data returned by the
-  GetTimeZoneInformation API, along with some other strategies.  The
-  registry contains time zone data under this key:
-
-    HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Time Zones\
-
-  Under this key are several subkeys, one for each time zone.  For
-  example these subkeys are named "Pacific Standard Time" on Vista+.
-  There are some other wrinkles; see the code for
-  details.  The subkey name is NOT LOCALIZED, allowing us to support
-  localized installs.
-
-  Under the subkey are data values.  We care about:
-
-    Std   Standard time display name, localized
-    TZI   Binary block of data
-
-  The TZI data is of particular interest.  It contains the offset, two
-  more offsets for standard and daylight time, and the start and end
-  rules.  This is the same data returned by the GetTimeZoneInformation
-  API.  The API may modify the data on the way out, so we have to be
-  careful, but essentially we do a binary comparison against the TZI
-  blocks of various registry keys.  When we find a match, we know what
-  time zone Windows is set to.  Since the registry key is not
-  localized, we can then translate the key through a simple table
-  lookup into the corresponding ICU time zone.
-
-  This strategy doesn't always work because there are zones which
-  share an offset and rules, so more than one TZI block will match.
-  For example, both Tokyo and Seoul are at GMT+9 with no DST rules;
-  their TZI blocks are identical.  For these cases, we fall back to a
-  name lookup.  We attempt to match the display name as stored in the
-  registry for the current zone to the display name stored in the
-  registry for various Windows zones.  By comparing the registry data
-  directly we avoid conversion complications.
-
-  Author: Alan Liu
-  Since: ICU 2.6
-  Based on original code by Carl Brown <cbrown@xnetinc.com>
+* Main Windows time zone detection function.
+* Returns the Windows time zone converted to an ICU time zone as a heap-allocated buffer, or nullptr upon failure.
+* Note: We use the Win32 API GetDynamicTimeZoneInformation to get the current time zone info.
+* This API returns a non-localized time zone name, which we can then map to an ICU time zone name.
 */
-
-/**
- * Main Windows time zone detection function.  Returns the Windows
- * time zone, translated to an ICU time zone, or NULL upon failure.
- */
 U_CFUNC const char* U_EXPORT2
-uprv_detectWindowsTimeZone() 
+uprv_detectWindowsTimeZone()
 {
     UErrorCode status = U_ZERO_ERROR;
-    UResourceBundle* bundle = NULL;
-    char* icuid = NULL;
-    char apiStdName[MAX_LENGTH_ID];
-    char regStdName[MAX_LENGTH_ID];
-    char tmpid[MAX_LENGTH_ID];
+    char* icuid = nullptr;
+    char dynamicTZKeyName[MAX_TIMEZONE_ID_LENGTH];
+    char tmpid[MAX_TIMEZONE_ID_LENGTH];
     int32_t len;
-    int id;
+    int id = GEOID_NOT_AVAILABLE;
     int errorCode;
-    wchar_t ISOcodeW[3]; /* 2 letter iso code in UTF-16*/
-    char  ISOcodeA[3]; /* 2 letter iso code in ansi */
+    wchar_t ISOcodeW[3] = {}; /* 2 letter ISO code in UTF-16 */
+    char ISOcode[3] = {}; /* 2 letter ISO code in UTF-8 */
 
-    LONG result;
-    TZI tziKey;
-    TZI tziReg;
-    TIME_ZONE_INFORMATION apiTZI;
+    DYNAMIC_TIME_ZONE_INFORMATION dynamicTZI;
+    uprv_memset(&dynamicTZI, 0, sizeof(dynamicTZI));
+    uprv_memset(dynamicTZKeyName, 0, sizeof(dynamicTZKeyName));
+    uprv_memset(tmpid, 0, sizeof(tmpid));
 
-    BOOL tryPreVistaFallback;
-    OSVERSIONINFO osVerInfo;
+    /* Obtain TIME_ZONE_INFORMATION from the API and get the non-localized time zone name. */
+    if (TIME_ZONE_ID_INVALID == GetDynamicTimeZoneInformation(&dynamicTZI)) {
+        return nullptr;
+    }
 
-    /* Obtain TIME_ZONE_INFORMATION from the API, and then convert it
-       to TZI.  We could also interrogate the registry directly; we do
-       this below if needed. */
-    uprv_memset(&apiTZI, 0, sizeof(apiTZI));
-    uprv_memset(&tziKey, 0, sizeof(tziKey));
-    uprv_memset(&tziReg, 0, sizeof(tziReg));
-    GetTimeZoneInformation(&apiTZI);
-    tziKey.bias = apiTZI.Bias;
-    uprv_memcpy((char *)&tziKey.standardDate, (char*)&apiTZI.StandardDate,
-           sizeof(apiTZI.StandardDate));
-    uprv_memcpy((char *)&tziKey.daylightDate, (char*)&apiTZI.DaylightDate,
-           sizeof(apiTZI.DaylightDate));
+    id = GetUserGeoID(GEOCLASS_NATION);
+    errorCode = GetGeoInfoW(id, GEO_ISO2, ISOcodeW, 3, 0);
 
-    /* Convert the wchar_t* standard name to char* */
-    uprv_memset(apiStdName, 0, sizeof(apiStdName));
-    wcstombs(apiStdName, apiTZI.StandardName, MAX_LENGTH_ID);
+    // convert from wchar_t* (UTF-16 on Windows) to char* (UTF-8).
+    u_strToUTF8(ISOcode, UPRV_LENGTHOF(ISOcode), nullptr,
+        reinterpret_cast<const UChar*>(ISOcodeW), UPRV_LENGTHOF(ISOcodeW), &status);
 
-    tmpid[0] = 0;
+    LocalUResourceBundlePointer bundle(ures_openDirect(nullptr, "windowsZones", &status));
+    ures_getByKey(bundle.getAlias(), "mapTimezones", bundle.getAlias(), &status);
 
-    id = GetUserGeoID(GEOCLASS_NATION);
-    errorCode = GetGeoInfoW(id, GEO_ISO2, ISOcodeW, 3, 0);
-    u_strToUTF8(ISOcodeA, 3, NULL, (const UChar *)ISOcodeW, 3, &status);
+    // convert from wchar_t* (UTF-16 on Windows) to char* (UTF-8).
+    u_strToUTF8(dynamicTZKeyName, UPRV_LENGTHOF(dynamicTZKeyName), nullptr,
+        reinterpret_cast<const UChar*>(dynamicTZI.TimeZoneKeyName), UPRV_LENGTHOF(dynamicTZI.TimeZoneKeyName), &status);
 
-    bundle = ures_openDirect(NULL, "windowsZones", &status);
-    ures_getByKey(bundle, "mapTimezones", bundle, &status);
+    if (U_FAILURE(status)) {
+        return nullptr;
+    }
 
-    /*
-        Windows Vista+ provides us with a "TimeZoneKeyName" that is not localized
-        and can be used to directly map a name in our bundle. Try to use that first
-        if we're on Vista or higher
-    */
-    uprv_memset(&osVerInfo, 0, sizeof(osVerInfo));
-    osVerInfo.dwOSVersionInfoSize = sizeof(osVerInfo);
-    tryPreVistaFallback = TRUE;
-    result = getTZKeyName(regStdName, sizeof(regStdName));
-    if(ERROR_SUCCESS == result) 
-    {
-        UResourceBundle* winTZ = ures_getByKey(bundle, regStdName, NULL, &status);
-        if(U_SUCCESS(status)) 
-        {
-            const UChar* icuTZ = NULL;
-            if (errorCode != 0) 
-            {
-                icuTZ = ures_getStringByKey(winTZ, ISOcodeA, &len, &status);
+    if (dynamicTZI.TimeZoneKeyName[0] != 0) {
+        UResourceBundle winTZ;
+        ures_initStackObject(&winTZ);
+        ures_getByKey(bundle.getAlias(), dynamicTZKeyName, &winTZ, &status);
+        
+        if (U_SUCCESS(status)) {
+            const UChar* icuTZ = nullptr;
+            if (errorCode != 0) {
+                icuTZ = ures_getStringByKey(&winTZ, ISOcode, &len, &status);
             }
-            if (errorCode==0 || icuTZ==NULL) 
-            {
+            if (errorCode == 0 || icuTZ == nullptr) {
                 /* fallback to default "001" and reset status */
                 status = U_ZERO_ERROR;
-                icuTZ = ures_getStringByKey(winTZ, "001", &len, &status);
-            }
-
-            if(U_SUCCESS(status)) 
-            {
-                int index=0;
-                while (! (*icuTZ == '\0' || *icuTZ ==' ')) 
-                {
-                    tmpid[index++]=(char)(*icuTZ++);  /* safe to assume 'char' is ASCII compatible on windows */
-                }
-                tmpid[index]='\0';
-                tryPreVistaFallback = FALSE;
-            }
-        }
-        ures_close(winTZ);
-    }
-
-    if(tryPreVistaFallback)
-    {
-        /* Note: We get the winid not from static tables but from resource bundle. */
-        while (U_SUCCESS(status) && ures_hasNext(bundle))
-        {
-            UBool idFound = FALSE;
-            const char* winid;
-            UResourceBundle* winTZ = ures_getNextResource(bundle, NULL, &status);
-            if (U_FAILURE(status)) 
-            {
-                break;
+                icuTZ = ures_getStringByKey(&winTZ, "001", &len, &status);
             }
-            winid = ures_getKey(winTZ);
-            result = getTZI(winid, &tziReg);
-
-            if (result == ERROR_SUCCESS)
-            {
-                /* Windows alters the DaylightBias in some situations.
-                   Using the bias and the rules suffices, so overwrite
-                   these unreliable fields. */
-                tziKey.standardBias = tziReg.standardBias;
-                tziKey.daylightBias = tziReg.daylightBias;
 
-                if (uprv_memcmp((char *)&tziKey, (char*)&tziReg, sizeof(tziKey)) == 0)
-                {
-                    const UChar* icuTZ = NULL;
-                    if (errorCode != 0)
-                    {
-                        icuTZ = ures_getStringByKey(winTZ, ISOcodeA, &len, &status);
-                    }
-                    if (errorCode==0 || icuTZ==NULL) 
-                    {
-                        /* fallback to default "001" and reset status */
-                        status = U_ZERO_ERROR;
-                        icuTZ = ures_getStringByKey(winTZ, "001", &len, &status);
-                    }
+            if (U_SUCCESS(status)) {
+                int index = 0;
 
-                    if (U_SUCCESS(status)) 
-                    {
-                        /* Get the standard name from the registry key to compare with
-                           the one from Windows API call. */
-                        uprv_memset(regStdName, 0, sizeof(regStdName));
-                        result = getSTDName(winid, regStdName, sizeof(regStdName));
-                        if (result == ERROR_SUCCESS) 
-                        {
-                            if (uprv_strcmp(apiStdName, regStdName) == 0) 
-                            {
-                                idFound = TRUE;
-                            }
-                        }
-
-                        /* tmpid buffer holds the ICU timezone ID corresponding to the timezone ID from Windows.
-                         * If none is found, tmpid buffer will contain a fallback ID (i.e. the time zone ID matching
-                         * the current time zone information)
-                         */
-                        if (idFound || tmpid[0] == 0) 
-                        {
-                            /* if icuTZ has more than one city, take only the first (i.e. terminate icuTZ at first space) */
-                            int index=0;
-                            while (! (*icuTZ == '\0' || *icuTZ ==' ')) 
-                            {
-                                tmpid[index++]=(char)(*icuTZ++);  /* safe to assume 'char' is ASCII compatible on windows */
-                            }
-                            tmpid[index]='\0';
-                        }
-                    }
+                while (!(*icuTZ == '\0' || *icuTZ == ' ')) {
+                    // time zone IDs only contain ASCII invariant characters.
+                    tmpid[index++] = (char)(*icuTZ++);
                 }
-            }
-            ures_close(winTZ);
-            if (idFound) 
-            {
-                break;
+                tmpid[index] = '\0';
             }
         }
+        ures_close(&winTZ);
     }
 
-    /*
-     * Copy the timezone ID to icuid to be returned.
-     */
-    if (tmpid[0] != 0) 
-    {
-        len = uprv_strlen(tmpid);
-        icuid = (char*)uprv_calloc(len + 1, sizeof(char));
-        if (icuid != NULL) 
-        {
-            uprv_strcpy(icuid, tmpid);
-        }
+    // Copy the timezone ID to icuid to be returned.
+    if (tmpid[0] != 0) {
+        icuid = uprv_strdup(tmpid);
     }
 
-    ures_close(bundle);
-    
     return icuid;
 }
 
-#endif /* U_PLATFORM_USES_ONLY_WIN32_API && (U_PLATFORM_HAS_WINUWP_API == 0) */
+U_NAMESPACE_END
+#endif /* U_PLATFORM_USES_ONLY_WIN32_API  */
index 7be30eb..f98b177 100644 (file)
@@ -16,9 +16,7 @@
 
 #include "unicode/utypes.h"
 
-// This file contains only desktop windows behavior
-// Windows UWP calls Windows::Globalization directly, so this isn't needed there.
-#if U_PLATFORM_USES_ONLY_WIN32_API && (U_PLATFORM_HAS_WINUWP_API == 0)
+#if U_PLATFORM_USES_ONLY_WIN32_API
 
 /**
  * \file 
@@ -33,6 +31,6 @@ U_CDECL_END
 U_CFUNC const char* U_EXPORT2
 uprv_detectWindowsTimeZone();
 
-#endif /* U_PLATFORM_USES_ONLY_WIN32_API && (U_PLATFORM_HAS_WINUWP_API == 0) */
+#endif /* U_PLATFORM_USES_ONLY_WIN32_API  */
 
 #endif /* __WINTZ */
index 94e6439..78df54a 100644 (file)
@@ -42,6 +42,11 @@ THREADSCFLAGS = -mthreads
 THREADSCXXFLAGS = -mthreads
 LIBCPPFLAGS =
 
+## Add 'd' suffix to the names of binary files with Debug configuration
+ifeq ($(ENABLE_DEBUG),1)
+ICULIBSUFFIX:=$(ICULIBSUFFIX)d#M#
+endif
+
 # Commands to link. Link with C++ in case static libraries are used.
 LINK.c=       $(CXX) $(CXXFLAGS) $(LDFLAGS)
 #LINK.cc=      $(CXX) $(CXXFLAGS) $(LDFLAGS)
index 6d0c557..7d464e5 100644 (file)
@@ -42,6 +42,11 @@ THREADSCFLAGS = -mthreads
 THREADSCXXFLAGS = -mthreads
 LIBCPPFLAGS =
 
+## Add 'd' suffix to the names of binary files with Debug configuration
+ifeq ($(ENABLE_DEBUG),1)
+ICULIBSUFFIX:=$(ICULIBSUFFIX)d#M#
+endif
+
 # Commands to link. Link with C++ in case static libraries are used.
 LINK.c=       $(CXX) $(CXXFLAGS) $(LDFLAGS)
 #LINK.cc=      $(CXX) $(CXXFLAGS) $(LDFLAGS)
index 47301a1..1ed93bf 100755 (executable)
@@ -1,6 +1,6 @@
 #! /bin/sh
 # Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.69 for ICU 62.1.
+# Generated by GNU Autoconf 2.69 for ICU 63.1.
 #
 # Report bugs to <http://icu-project.org/bugs>.
 #
@@ -582,8 +582,8 @@ MAKEFLAGS=
 # Identity of this package.
 PACKAGE_NAME='ICU'
 PACKAGE_TARNAME='International Components for Unicode'
-PACKAGE_VERSION='62.1'
-PACKAGE_STRING='ICU 62.1'
+PACKAGE_VERSION='63.1'
+PACKAGE_STRING='ICU 63.1'
 PACKAGE_BUGREPORT='http://icu-project.org/bugs'
 PACKAGE_URL='http://icu-project.org'
 
@@ -673,7 +673,6 @@ U_HAVE_INTTYPES_H
 GENCCODE_ASSEMBLY
 HAVE_MMAP
 LIB_THREAD
-U_HAVE_ATOMIC
 ENABLE_RPATH
 U_ENABLE_DYLOAD
 U_HAVE_PLUGINS
@@ -695,6 +694,7 @@ GREP
 DOXYGEN
 cross_buildroot
 U_MAKE
+PYTHON3
 cross_compiling
 INSTALL_DATA
 INSTALL_SCRIPT
@@ -716,6 +716,7 @@ CFLAGS
 CC
 ENABLE_RELEASE
 ENABLE_DEBUG
+INSTALL_ICU_CONFIG
 CPPFLAGS
 host_os
 host_vendor
@@ -775,6 +776,7 @@ SHELL'
 ac_subst_files=''
 ac_user_opts='
 enable_option_checking
+enable_icu_config
 enable_debug
 enable_release
 with_cross_build
@@ -1368,7 +1370,7 @@ if test "$ac_init_help" = "long"; then
   # Omit some internal or obsolete options to make the list less imposing.
   # This message is too long to be a string in the A/UX 3.1 sh.
   cat <<_ACEOF
-\`configure' configures ICU 62.1 to adapt to many kinds of systems.
+\`configure' configures ICU 63.1 to adapt to many kinds of systems.
 
 Usage: $0 [OPTION]... [VAR=VALUE]...
 
@@ -1435,7 +1437,7 @@ fi
 
 if test -n "$ac_init_help"; then
   case $ac_init_help in
-     short | recursive ) echo "Configuration of ICU 62.1:";;
+     short | recursive ) echo "Configuration of ICU 63.1:";;
    esac
   cat <<\_ACEOF
 
@@ -1443,6 +1445,7 @@ Optional Features:
   --disable-option-checking  ignore unrecognized --enable/--with options
   --disable-FEATURE       do not include FEATURE (same as --enable-FEATURE=no)
   --enable-FEATURE[=ARG]  include FEATURE [ARG=yes]
+  --enable-icu-config     install icu-config
   --enable-debug          build debug libraries and enable the U_DEBUG define default=no
   --enable-release        build release libraries default=yes
   --enable-strict         compile with strict compiler options default=yes
@@ -1571,7 +1574,7 @@ fi
 test -n "$ac_init_help" && exit $ac_status
 if $ac_init_version; then
   cat <<\_ACEOF
-ICU configure 62.1
+ICU configure 63.1
 generated by GNU Autoconf 2.69
 
 Copyright (C) 2012 Free Software Foundation, Inc.
@@ -2263,7 +2266,7 @@ cat >config.log <<_ACEOF
 This file contains any messages produced by compilers while
 running configure, to aid debugging if configure makes a mistake.
 
-It was created by ICU $as_me 62.1, which was
+It was created by ICU $as_me 63.1, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   $ $0 $@
@@ -2797,6 +2800,21 @@ UCONFIG_CPPFLAGS=""
 # such as -std
 UCONFIG_CFLAGS=""
 
+# Check whether to install icu-config
+# Check whether --enable-icu-config was given.
+if test "${enable_icu_config+set}" = set; then :
+  enableval=$enable_icu_config; case "${enableval}" in
+            yes) enable_icu_config=true ;;
+            no) enable_icu_config=false ;;
+            *) as_fn_error $? "bad value '${enableval}' for --enable-icu-config" "$LINENO" 5 ;;
+        esac
+else
+  enable_icu_config=true
+fi
+
+INSTALL_ICU_CONFIG=$enable_icu_config
+
+
 # Check whether to build debug libraries
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to build debug libraries" >&5
 $as_echo_n "checking whether to build debug libraries... " >&6; }
@@ -4182,6 +4200,49 @@ fi
 #AC_CHECK_PROG(AUTOCONF, autoconf, autoconf, true)
 #AC_CHECK_PROG(STRIP, strip, strip, true)
 
+for ac_prog in python3
+do
+  # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_PYTHON3+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test -n "$PYTHON3"; then
+  ac_cv_prog_PYTHON3="$PYTHON3" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_PYTHON3="$ac_prog"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+fi
+fi
+PYTHON3=$ac_cv_prog_PYTHON3
+if test -n "$PYTHON3"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PYTHON3" >&5
+$as_echo "$PYTHON3" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+  test -n "$PYTHON3" && break
+done
+
+
 # Check for the platform make
 for ac_prog in gmake gnumake
 do
@@ -6041,37 +6102,6 @@ $as_echo "$as_me: Adding CXXFLAGS option -std=c++11" >&6;}
     fi
 fi
 
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if #include <atomic> works" >&5
-$as_echo_n "checking if #include <atomic> works... " >&6; }
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#include <atomic>
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_cxx_try_compile "$LINENO"; then :
-  ac_cv_header_atomic=yes
-else
-  ac_cv_header_atomic=no
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_atomic" >&5
-$as_echo "$ac_cv_header_atomic" >&6; }
-if test $ac_cv_header_atomic = yes
-then
-       U_HAVE_ATOMIC=1
-else
-        U_HAVE_ATOMIC=0
-fi
-# Make this available via CPPFLAGS
-CONFIG_CPPFLAGS="${CONFIG_CPPFLAGS} -DU_HAVE_ATOMIC=${U_HAVE_ATOMIC}"
-
-
 ac_ext=c
 ac_cpp='$CPP $CPPFLAGS'
 ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
@@ -8404,7 +8434,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
 # report actual input values of CONFIG_FILES etc. instead of their
 # values after options handling.
 ac_log="
-This file was extended by ICU $as_me 62.1, which was
+This file was extended by ICU $as_me 63.1, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
@@ -8458,7 +8488,7 @@ _ACEOF
 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
 ac_cs_version="\\
-ICU config.status 62.1
+ICU config.status 63.1
 configured by $0, generated by GNU Autoconf 2.69,
   with options \\"\$ac_cs_config\\"
 
@@ -9173,4 +9203,17 @@ then
         echo "## Expect build failures in the 'data', 'test', and other directories."
 fi
 
+if test -z "$PYTHON3";
+then
+    echo ""
+    echo "NOTICE: Unable to find Python 3. ICU versions 64 and later will require Python 3 to build."
+    echo "See ICU-10923 for more information: https://unicode-org.atlassian.net/browse/ICU-10923"
+    echo ""
+else
+    echo ""
+    echo "Found Python 3. You are all set for ICU 64, which will require Python 3 to build."
+    echo "For more info on Python 3 requirement, see: https://unicode-org.atlassian.net/browse/ICU-10923"
+    echo ""
+fi
+
 $as_unset _CXX_CXXSUFFIX
index 7078d49..3b01890 100644 (file)
@@ -100,6 +100,16 @@ UCONFIG_CPPFLAGS=""
 # such as -std
 UCONFIG_CFLAGS=""
 
+# Check whether to install icu-config
+AC_ARG_ENABLE([icu-config],
+    AS_HELP_STRING([--enable-icu-config], [install icu-config]),
+        [case "${enableval}" in
+            yes) enable_icu_config=true ;;
+            no) enable_icu_config=false ;;
+            *) AC_MSG_ERROR([bad value '${enableval}' for --enable-icu-config]) ;;
+        esac], [enable_icu_config=true])
+AC_SUBST(INSTALL_ICU_CONFIG, [$enable_icu_config])
+
 # Check whether to build debug libraries
 AC_MSG_CHECKING([whether to build debug libraries])
 enabled=no
@@ -185,6 +195,8 @@ fi
 #AC_CHECK_PROG(AUTOCONF, autoconf, autoconf, true)
 #AC_CHECK_PROG(STRIP, strip, strip, true)
 
+AC_CHECK_PROGS(PYTHON3, python3)
+
 # Check for the platform make
 AC_PATH_PROGS(U_MAKE, gmake gnumake, make)
 AC_SUBST(U_MAKE)
@@ -517,19 +529,6 @@ if [[ "$GXX" = yes ]]; then
     fi
 fi
 
-AC_MSG_CHECKING([[if #include <atomic> works]])
-AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <atomic>]], [[]])], [ac_cv_header_atomic=yes], [ac_cv_header_atomic=no])
-AC_MSG_RESULT($ac_cv_header_atomic)
-if test $ac_cv_header_atomic = yes
-then
-       U_HAVE_ATOMIC=1
-else
-        U_HAVE_ATOMIC=0
-fi
-# Make this available via CPPFLAGS
-CONFIG_CPPFLAGS="${CONFIG_CPPFLAGS} -DU_HAVE_ATOMIC=${U_HAVE_ATOMIC}"
-AC_SUBST(U_HAVE_ATOMIC)
-
 AC_LANG_POP([C++])
 
 # Always build ICU with multi-threading support.
@@ -1465,4 +1464,17 @@ then
         echo "## Expect build failures in the 'data', 'test', and other directories."
 fi
 
+if test -z "$PYTHON3";
+then
+    echo ""
+    echo "NOTICE: Unable to find Python 3. ICU versions 64 and later will require Python 3 to build."
+    echo "See ICU-10923 for more information: https://unicode-org.atlassian.net/browse/ICU-10923"
+    echo ""
+else
+    echo ""
+    echo "Found Python 3. You are all set for ICU 64, which will require Python 3 to build."
+    echo "For more info on Python 3 requirement, see: https://unicode-org.atlassian.net/browse/ICU-10923"
+    echo ""
+fi
+
 $as_unset _CXX_CXXSUFFIX
index 8053f3f..487108f 100644 (file)
@@ -1,6 +1,6 @@
 # © 2016 and later: Unicode, Inc. and others.\r
 # License & terms of use: http://www.unicode.org/copyright.html#License\r
-BRK_RES_CLDR_VERSION = 33.1\r
+BRK_RES_CLDR_VERSION = 34\r
 # A list of txt's to build\r
 # Note:\r
 #\r
@@ -39,13 +39,13 @@ BRK_DICT_SOURCE = burmesedict.txt cjdict.txt khmerdict.txt laodict.txt\
 \r
 \r
 # List of break iterator files (brk).\r
-BRK_SOURCE = char.txt line.txt line_fi.txt line_loose.txt\\r
- line_loose_cj.txt line_loose_fi.txt line_normal.txt line_normal_cj.txt line_normal_fi.txt\\r
sent.txt sent_el.txt title.txt word.txt word_POSIX.txt\r
+BRK_SOURCE = char.txt line.txt line_loose.txt line_loose_cj.txt\\r
+ line_normal.txt line_normal_cj.txt sent.txt sent_el.txt title.txt\\r
+ word.txt word_POSIX.txt\r
 \r
 \r
 # Ordinary resources\r
 BRK_RES_SOURCE = de.txt el.txt en.txt en_US.txt\\r
- en_US_POSIX.txt es.txt fi.txt fr.txt it.txt\\r
ja.txt pt.txt ru.txt zh.txt zh_Hant.txt\r
+ en_US_POSIX.txt es.txt fr.txt it.txt ja.txt\\r
+ pt.txt ru.txt zh.txt zh_Hant.txt\r
 \r
diff --git a/source/data/brkitr/fi.txt b/source/data/brkitr/fi.txt
deleted file mode 100644 (file)
index 976568a..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
-// © 2016 and later: Unicode, Inc. and others.\r
-// License & terms of use: http://www.unicode.org/copyright.html#License\r
-fi{\r
-    Version{"2.1.19.14"}\r
-    boundaries{\r
-        line:process(dependency){"line_fi.brk"}\r
-        line_loose:process(dependency){"line_loose_fi.brk"}\r
-        line_normal:process(dependency){"line_normal_fi.brk"}\r
-        line_strict:process(dependency){"line_fi.brk"}\r
-    }\r
-}\r
index fa0b016..e4f6158 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 ja{\r
-    Version{"2.1.29.25"}\r
+    Version{"2.1.44.56"}\r
     boundaries{\r
         line:process(dependency){"line_normal.brk"}\r
         line_loose:process(dependency){"line_loose_cj.brk"}\r
index ee3d919..0dff488 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 root{\r
-    Version{"2.1.37.61"}\r
+    Version{"2.1.44.57"}\r
     boundaries{\r
         grapheme:process(dependency){"char.brk"}\r
         line:process(dependency){"line.brk"}\r
index 2c66d3e..fd59b39 100644 (file)
@@ -8,11 +8,10 @@
 #         Line Breaking Rules\r
 #         Implement default line breaking as defined by\r
 #         Unicode Standard Annex #14 Revision 40 for Unicode 11.0\r
-#         http://www.unicode.org/reports/tr14/\r
+#         http://www.unicode.org/reports/tr14/, with the following modification:\r
 #\r
-#         TODO:  Rule LB 8 remains as it was in Unicode 5.2\r
-#         This is only because of a limitation of ICU break engine implementation,\r
-#         not because the older behavior is desirable.\r
+#         Boundaries between hyphens and following letters are suppressed when\r
+#         there is a boundary preceding the hyphen. See rule 20.9\r
 #\r
 #         This corresponds to CSS line-break=strict (BCP47 -u-lb-strict).\r
 #         It sets characters of class CJ to behave like NS.\r
@@ -27,6 +26,7 @@
 $AI = [:LineBreak =  Ambiguous:];\r
 $AL = [:LineBreak =  Alphabetic:];\r
 $BA = [:LineBreak =  Break_After:];\r
+$HH = [\u2010];     # \u2010 is HYPHEN, default line break is BA.\r
 $BB = [:LineBreak =  Break_Before:];\r
 $BK = [:LineBreak =  Mandatory_Break:];\r
 $B2 = [:LineBreak =  Break_Both:];\r
@@ -132,12 +132,11 @@ $CAN_CM $CM*  [$SP $ZW];
 \r
 #\r
 # LB 8         Break after zero width space\r
-#              TODO:  ZW SP* <break>\r
-#              An engine change is required to write the reverse rule for this.\r
-#              For now, leave the Unicode 5.2 rule, ZW <break>\r
+#              ZW SP* ÷\r
 #\r
 $LB8Breaks    = [$LB4Breaks $ZW];\r
 $LB8NonBreaks = [[$LB4NonBreaks] - [$ZW]];\r
+$ZW $SP* / [^$SP $ZW $LB4Breaks];\r
 \r
 # LB 8a        ZWJ x            Do not break Emoji ZWJ sequences.\r
 #\r
@@ -230,17 +229,24 @@ $LB18NonBreaks $CM* $QU;
 #         QU  x\r
 $QU $CM* .;\r
 \r
-\r
 # LB 20\r
 #        <break>  $CB\r
 #        $CB   <break>\r
-\r
+#\r
 $LB20NonBreaks = [$LB18NonBreaks - $CB];\r
 \r
+# LB 20.09    Don't break between Hyphens and Letters when there is a break preceding the hyphen.\r
+#             Originally added as a Finnish tailoring, now promoted to default ICU behavior.\r
+#             Note: this is not default UAX-14 behaviour. See issue ICU-8151.\r
+#\r
+^($HY | $HH) $CM* $ALPlus;\r
+\r
 # LB 21        x   (BA | HY | NS)\r
 #           BB x\r
 #\r
 $LB20NonBreaks $CM* ($BA | $HY | $NS);\r
+\r
+\r
 ^$CM+ ($BA | $HY | $NS);\r
 \r
 $BB $CM* [^$CB];                                  #  $BB  x\r
diff --git a/source/data/brkitr/rules/line_fi.txt b/source/data/brkitr/rules/line_fi.txt
deleted file mode 100644 (file)
index 5211c02..0000000
+++ /dev/null
@@ -1,340 +0,0 @@
-# Copyright (C) 2016 and later: Unicode, Inc. and others.\r
-# License & terms of use: http://www.unicode.org/copyright.html\r
-# Copyright (c) 2002-2016  International Business Machines Corporation and\r
-# others. All Rights Reserved.\r
-#\r
-#  file:  line_fi.txt\r
-#\r
-#         Line Breaking Rules\r
-#         Implement default line breaking as defined by\r
-#         Unicode Standard Annex #14 Revision 40 for Unicode 11.0\r
-#         http://www.unicode.org/reports/tr14/\r
-#         tailored as noted in 2nd paragraph below.\r
-#\r
-#         TODO:  Rule LB 8 remains as it was in Unicode 5.2\r
-#         This is only because of a limitation of ICU break engine implementation,\r
-#         not because the older behavior is desirable.\r
-#\r
-#         This tailors the line break behavior for Finnish, while otherwise behaving\r
-#         per UAX 14 which corresponds to CSS line-break=strict (BCP47 -u-lb-strict).\r
-#         It sets characters of class CJ to behave like NS.\r
-#\r
-#         This corresponds to CSS line-break=strict (BCP47 -u-lb-strict).\r
-#         It sets characters of class CJ to behave like NS.\r
-\r
-#\r
-#  Character Classes defined by TR 14.\r
-#\r
-\r
-!!chain;\r
-!!quoted_literals_only;\r
-\r
-$AI = [:LineBreak =  Ambiguous:];\r
-$AL = [:LineBreak =  Alphabetic:];\r
-$BA = [:LineBreak =  Break_After:];\r
-$HH = [\u2010];     # \u2010 is HYPHEN, default line break is BA.\r
-$BB = [:LineBreak =  Break_Before:];\r
-$BK = [:LineBreak =  Mandatory_Break:];\r
-$B2 = [:LineBreak =  Break_Both:];\r
-$CB = [:LineBreak =  Contingent_Break:];\r
-$CJ = [:LineBreak =  Conditional_Japanese_Starter:];\r
-$CL = [:LineBreak =  Close_Punctuation:];\r
-# $CM = [:LineBreak =  Combining_Mark:];\r
-$CP = [:LineBreak =  Close_Parenthesis:];\r
-$CR = [:LineBreak =  Carriage_Return:];\r
-$EB = [:LineBreak =  EB:];\r
-$EM = [:LineBreak =  EM:];\r
-$EX = [:LineBreak =  Exclamation:];\r
-$GL = [:LineBreak =  Glue:];\r
-$HL = [:LineBreak =  Hebrew_Letter:];\r
-$HY = [:LineBreak =  Hyphen:];\r
-$H2 = [:LineBreak =  H2:];\r
-$H3 = [:LineBreak =  H3:];\r
-$ID = [:LineBreak =  Ideographic:];\r
-$IN = [:LineBreak =  Inseperable:];\r
-$IS = [:LineBreak =  Infix_Numeric:];\r
-$JL = [:LineBreak =  JL:];\r
-$JV = [:LineBreak =  JV:];\r
-$JT = [:LineBreak =  JT:];\r
-$LF = [:LineBreak =  Line_Feed:];\r
-$NL = [:LineBreak =  Next_Line:];\r
-# NS includes CJ for CSS strict line breaking.\r
-$NS = [[:LineBreak =  Nonstarter:] $CJ];\r
-$NU = [:LineBreak =  Numeric:];\r
-$OP = [:LineBreak =  Open_Punctuation:];\r
-$PO = [:LineBreak =  Postfix_Numeric:];\r
-$PR = [:LineBreak =  Prefix_Numeric:];\r
-$QU = [:LineBreak =  Quotation:];\r
-$RI = [:LineBreak =  Regional_Indicator:];\r
-$SA = [:LineBreak =  Complex_Context:];\r
-$SG = [:LineBreak =  Surrogate:];\r
-$SP = [:LineBreak =  Space:];\r
-$SY = [:LineBreak =  Break_Symbols:];\r
-$WJ = [:LineBreak =  Word_Joiner:];\r
-$XX = [:LineBreak =  Unknown:];\r
-$ZW = [:LineBreak =  ZWSpace:];\r
-$ZWJ = [:LineBreak = ZWJ:];\r
-\r
-# By LB9, a ZWJ also behaves as a CM. Including it in the definition of CM avoids having to explicitly\r
-#         list it in the numerous rules that use CM.\r
-# By LB1, SA characters with general categor of Mn or Mc also resolve to CM.\r
-\r
-$CM = [[:LineBreak = Combining_Mark:] $ZWJ [$SA & [[:Mn:][:Mc:]]]];\r
-\r
-#   Dictionary character set, for triggering language-based break engines. Currently\r
-#   limited to LineBreak=Complex_Context (SA).\r
-\r
-$dictionary = [$SA];\r
-\r
-#\r
-#  Rule LB1.  By default, treat AI  (characters with ambiguous east Asian width),\r
-#                               SA  (Dictionary chars, excluding Mn and Mc)\r
-#                               SG  (Unpaired Surrogates)\r
-#                               XX  (Unknown, unassigned)\r
-#                         as $AL  (Alphabetic)\r
-#\r
-$ALPlus = [$AL $AI $SG $XX [$SA-[[:Mn:][:Mc:]]]];\r
-\r
-\r
-## -------------------------------------------------\r
-\r
-#\r
-# CAN_CM  is the set of characters that may combine with CM combining chars.\r
-#         Note that Linebreak UAX 14's concept of a combining char and the rules\r
-#         for what they can combine with are _very_ different from the rest of Unicode.\r
-#\r
-#         Note that $CM itself is left out of this set.  If CM is needed as a base\r
-#         it must be listed separately in the rule.\r
-#\r
-$CAN_CM  = [^$SP $BK $CR $LF $NL $ZW $CM];       # Bases that can   take CMs\r
-$CANT_CM = [ $SP $BK $CR $LF $NL $ZW $CM];       # Bases that can't take CMs\r
-\r
-#\r
-# AL_FOLLOW  set of chars that can unconditionally follow an AL\r
-#            Needed in rules where stand-alone $CM s are treated as AL.\r
-#\r
-$AL_FOLLOW      = [$BK $CR $LF $NL $ZW $SP $CL $CP $EX $HL $IS $SY $WJ $GL $OP $QU $BA $HH $HY $NS $IN $NU $PR $PO $ALPlus];\r
-\r
-\r
-#\r
-#  Rule LB 4, 5    Mandatory (Hard) breaks.\r
-#\r
-$LB4Breaks    = [$BK $CR $LF $NL];\r
-$LB4NonBreaks = [^$BK $CR $LF $NL $CM];\r
-$CR $LF {100};\r
-\r
-#\r
-#  LB 6    Do not break before hard line breaks.\r
-#\r
-$LB4NonBreaks?  $LB4Breaks {100};    # LB 5  do not break before hard breaks.\r
-$CAN_CM $CM*    $LB4Breaks {100};\r
-^$CM+           $LB4Breaks {100};\r
-\r
-# LB 7         x SP\r
-#              x ZW\r
-$LB4NonBreaks [$SP $ZW];\r
-$CAN_CM $CM*  [$SP $ZW];\r
-^$CM+         [$SP $ZW];\r
-\r
-#\r
-# LB 8         Break after zero width space\r
-#              TODO:  ZW SP* <break>\r
-#              An engine change is required to write the reverse rule for this.\r
-#              For now, leave the Unicode 5.2 rule, ZW <break>\r
-#\r
-$LB8Breaks    = [$LB4Breaks $ZW];\r
-$LB8NonBreaks = [[$LB4NonBreaks] - [$ZW]];\r
-\r
-# LB 8a        ZWJ x            Do not break Emoji ZWJ sequences.\r
-#\r
-$ZWJ [^$CM];\r
-\r
-# LB 9     Combining marks.      X   $CM needs to behave like X, where X is not $SP, $BK $CR $LF $NL\r
-#                                $CM not covered by the above needs to behave like $AL\r
-#                                See definition of $CAN_CM.\r
-\r
-$CAN_CM $CM+;                   #  Stick together any combining sequences that don't match other rules.\r
-^$CM+;\r
-\r
-#\r
-# LB 11  Do not break before or after WORD JOINER & related characters.\r
-#\r
-$CAN_CM $CM*  $WJ;\r
-$LB8NonBreaks $WJ;\r
-^$CM+         $WJ;\r
-\r
-$WJ $CM* .;\r
-\r
-#\r
-# LB 12  Do not break after NBSP and related characters.\r
-#         GL  x\r
-#\r
-$GL $CM* .;\r
-\r
-#\r
-# LB 12a  Do not break before NBSP and related characters ...\r
-#            [^SP BA HY] x GL\r
-#\r
-[[$LB8NonBreaks] - [$SP $BA $HH $HY]] $CM* $GL;\r
-^$CM+ $GL;\r
-\r
-\r
-\r
-#\r
-# LB 13   Don't break before ']' or '!' or ';' or '/', even after spaces.\r
-#\r
-$LB8NonBreaks $CL;\r
-$CAN_CM $CM*  $CL;\r
-^$CM+         $CL;              # by rule 10, stand-alone CM behaves as AL\r
-\r
-$LB8NonBreaks $CP;\r
-$CAN_CM $CM*  $CP;\r
-^$CM+         $CP;              # by rule 10, stand-alone CM behaves as AL\r
-\r
-$LB8NonBreaks $EX;\r
-$CAN_CM $CM*  $EX;\r
-^$CM+         $EX;              # by rule 10, stand-alone CM behaves as AL\r
-\r
-$LB8NonBreaks $IS;\r
-$CAN_CM $CM*  $IS;\r
-^$CM+         $IS;              # by rule 10, stand-alone CM behaves as AL\r
-\r
-$LB8NonBreaks $SY;\r
-$CAN_CM $CM*  $SY;\r
-^$CM+         $SY;              # by rule 10, stand-alone CM behaves as AL\r
-\r
-\r
-#\r
-# LB 14  Do not break after OP, even after spaces\r
-#\r
-$OP $CM* $SP* .;\r
-\r
-$OP $CM* $SP+ $CM+ $AL_FOLLOW?;    # by rule 10, stand-alone CM behaves as AL\r
-                                   # by rule 8, CM following a SP is stand-alone.\r
-\r
-# LB 15\r
-$QU $CM* $SP* $OP;\r
-\r
-# LB 16\r
-($CL | $CP) $CM* $SP* $NS;\r
-\r
-# LB 17\r
-$B2 $CM* $SP* $B2;\r
-\r
-#\r
-# LB 18  Break after spaces.\r
-#\r
-$LB18NonBreaks = [$LB8NonBreaks - [$SP]];\r
-$LB18Breaks    = [$LB8Breaks $SP];\r
-\r
-\r
-# LB 19\r
-#         x QU\r
-$LB18NonBreaks $CM* $QU;\r
-^$CM+               $QU;\r
-\r
-#         QU  x\r
-$QU $CM* .;\r
-\r
-\r
-# LB 20\r
-#        <break>  $CB\r
-#        $CB   <break>\r
-\r
-$LB20NonBreaks = [$LB18NonBreaks - $CB];\r
-\r
-# LB 20.09 added rule for Finnish tailoring\r
-# LB 21        x   (BA | HY | NS)\r
-#           BB x\r
-#\r
-$LB20NonBreaks $CM* ($BA | $HH | $HY | $NS) $CM* / $AL;\r
-$LB20NonBreaks $CM* ($BA | $HH | $HY | $NS);\r
-($HY | $HH) $AL;\r
-^$CM+ ($BA | $HY | $HH | $NS);\r
-\r
-$BB $CM* [^$CB];                                  #  $BB  x\r
-$BB $CM* $LB20NonBreaks;\r
-\r
-# LB 21a Don't break after Hebrew + Hyphen\r
-#   HL (HY | BA) x\r
-#\r
-$HL $CM* ($HY | $BA | $HH) $CM* [^$CB]?;\r
-\r
-# LB 21b (forward) Don't break between SY and HL\r
-# (break between HL and SY already disallowed by LB 13 above)\r
-$SY $CM* $HL;\r
-\r
-# LB 22\r
-($ALPlus | $HL) $CM* $IN;\r
-^$CM+    $IN;     #  by rule 10, any otherwise unattached CM behaves as AL\r
-$EX $CM*    $IN;\r
-($ID | $EB | $EM) $CM*  $IN;\r
-$IN $CM*    $IN;\r
-$NU $CM*    $IN;\r
-\r
-\r
-# $LB 23\r
-#\r
-($ALPlus | $HL) $CM* $NU;\r
-^$CM+  $NU;       # Rule 10, any otherwise unattached CM behaves as AL\r
-$NU $CM* ($ALPlus | $HL);\r
-\r
-# LB 23a\r
-#\r
-$PR $CM* ($ID | $EB | $EM);\r
-($ID | $EB | $EM) $CM*  $PO;\r
-\r
-\r
-#\r
-# LB 24\r
-#\r
-($PR | $PO) $CM* ($ALPlus | $HL);\r
-($ALPlus | $HL) $CM* ($PR | $PO);\r
-^$CM+ ($PR | $PO);       # Rule 10, any otherwise unattached CM behaves as AL\r
-\r
-#\r
-# LB 25   Numbers.\r
-#\r
-(($PR | $PO) $CM*)? (($OP | $HY) $CM*)? $NU ($CM* ($NU | $SY | $IS))*\r
-    ($CM* ($CL | $CP))? ($CM* ($PR | $PO))?;\r
-\r
-# LB 26  Do not break a Korean syllable\r
-#\r
-$JL $CM* ($JL | $JV | $H2 | $H3);\r
-($JV | $H2) $CM* ($JV | $JT);\r
-($JT | $H3) $CM* $JT;\r
-\r
-# LB 27  Treat korean Syllable Block the same as ID  (don't break it)\r
-($JL | $JV | $JT | $H2 | $H3) $CM* $IN;\r
-($JL | $JV | $JT | $H2 | $H3) $CM* $PO;\r
-$PR $CM* ($JL | $JV | $JT | $H2 | $H3);\r
-\r
-\r
-# LB 28   Do not break between alphabetics\r
-#\r
-($ALPlus | $HL) $CM* ($ALPlus | $HL);\r
-^$CM+ ($ALPlus | $HL);      # The $CM+ is from rule 10, an unattached CM is treated as AL\r
-\r
-# LB 29\r
-$IS $CM* ($ALPlus | $HL);\r
-\r
-# LB 30\r
-($ALPlus | $HL | $NU) $CM* $OP;\r
-^$CM+ $OP;         # The $CM+ is from rule 10, an unattached CM is treated as AL.\r
-$CP $CM* ($ALPlus | $HL | $NU);\r
-\r
-# LB 30a  Do not break between regional indicators. Break after pairs of them.\r
-#         Tricky interaction with LB8a: ZWJ x .   together with ZWJ acting like a CM.\r
-$RI $CM* $RI                 / [[^$BK $CR $LF $NL $SP $ZW $WJ $CL $CP $EX $IS $SY $GL $QU $BA $HY $NS $CM]];\r
-$RI $CM* $RI $CM* [$CM-$ZWJ] / [[^$BK $CR $LF $NL $SP $ZW $WJ $CL $CP $EX $IS $SY $GL $QU $BA $HY $NS $CM]];\r
-$RI $CM* $RI $CM* [$BK $CR $LF $NL $SP $ZW $WJ $CL $CP $EX $IS $SY $GL $QU $BA $HY $NS $ZWJ {eof}];\r
-# note: the preceding rule includes {eof} rather than having the last [set] term qualified with '?'\r
-#       because of the chain-out behavior difference. The rule must chain out only from the [set characters],\r
-#       not from the preceding $RI or $CM, which it would be able to do if the set were optional.\r
-\r
-# LB 30b Do not break between an Emoji Base and an Emoji Modifier\r
-$EB $CM* $EM;\r
-\r
-# LB 31 Break everywhere else.\r
-#       Match a single code point if no other rule applies.\r
-.;\r
index bd11fdc..2bce4ed 100644 (file)
@@ -9,13 +9,10 @@
 #         Line Breaking Rules\r
 #         Implement default line breaking as defined by\r
 #         Unicode Standard Annex #14 Revision 40 for Unicode 11.0\r
-#         http://www.unicode.org/reports/tr14/\r
+#         http://www.unicode.org/reports/tr14/, with the following modification:\r
 #\r
-#         tailored as noted in 2nd paragraph below.\r
-#\r
-#         TODO:  Rule LB 8 remains as it was in Unicode 5.2\r
-#         This is only because of a limitation of ICU break engine implementation,\r
-#         not because the older behavior is desirable.\r
+#         Boundaries between hyphens and following letters are suppressed when\r
+#         there is a boundary preceding the hyphen. See rule 20.9\r
 #\r
 #         This tailors the line break behavior to correspond to CSS\r
 #         line-break=loose (BCP47 -u-lb-loose) as defined for languages other than\r
@@ -35,6 +32,7 @@
 $AI = [:LineBreak =  Ambiguous:];\r
 $AL = [:LineBreak =  Alphabetic:];\r
 $BA = [:LineBreak =  Break_After:];\r
+$HH = [\u2010];     # \u2010 is HYPHEN, default line break is BA.\r
 $BB = [:LineBreak =  Break_Before:];\r
 $BK = [:LineBreak =  Mandatory_Break:];\r
 $B2 = [:LineBreak =  Break_Both:];\r
@@ -141,12 +139,11 @@ $CAN_CM $CM*  [$SP $ZW];
 \r
 #\r
 # LB 8         Break after zero width space\r
-#              TODO:  ZW SP* <break>\r
-#              An engine change is required to write the reverse rule for this.\r
-#              For now, leave the Unicode 5.2 rule, ZW <break>\r
+#              ZW SP* ÷\r
 #\r
 $LB8Breaks    = [$LB4Breaks $ZW];\r
 $LB8NonBreaks = [[$LB4NonBreaks] - [$ZW]];\r
+$ZW $SP* / [^$SP $ZW $LB4Breaks];\r
 \r
 # LB 8a        ZWJ x            Do not break Emoji ZWJ sequences.\r
 #\r
@@ -241,18 +238,25 @@ $LB18NonBreaks $CM* $QU;
 #         QU  x\r
 $QU $CM* .;\r
 \r
-\r
 # LB 20\r
 #        <break>  $CB\r
 #        $CB   <break>\r
-\r
+#\r
 $LB20NonBreaks = [$LB18NonBreaks - $CB];\r
 \r
+# LB 20.09    Don't break between Hyphens and Letters when there is a break preceding the hyphen.\r
+#             Originally added as a Finnish tailoring, now promoted to default ICU behavior.\r
+#             Note: this is not default UAX-14 behaviour. See issue ICU-8151.\r
+#\r
+^($HY | $HH) $CM* $ALPlus;\r
+\r
 # LB 21        x   (BA | HY | NS)\r
 #           BB x\r
 #\r
 # DO allow breaks here before NSX, so don't include it\r
 $LB20NonBreaks $CM* ($BA | $HY | $NS);\r
+\r
+\r
 ^$CM+ ($BA | $HY | $NS);\r
 \r
 $BB $CM* [^$CB];                                  #  $BB  x\r
index f9a2e32..caae232 100644 (file)
@@ -8,13 +8,10 @@
 #         Line Breaking Rules\r
 #         Implement default line breaking as defined by\r
 #         Unicode Standard Annex #14 Revision 40 for Unicode 11.0\r
-#         http://www.unicode.org/reports/tr14/\r
+#         http://www.unicode.org/reports/tr14/, with the following modification:\r
 #\r
-#         tailored as noted in 2nd paragraph below.\r
-#\r
-#         TODO:  Rule LB 8 remains as it was in Unicode 5.2\r
-#         This is only because of a limitation of ICU break engine implementation,\r
-#         not because the older behavior is desirable.\r
+#         Boundaries between hyphens and following letters are suppressed when\r
+#         there is a boundary preceding the hyphen. See rule 20.9\r
 #\r
 #         This tailors the line break behavior to correspond to CSS\r
 #         line-break=loose (BCP47 -u-lb-loose) as defined for Chinese & Japanese.\r
@@ -42,6 +39,7 @@ $AI = [:LineBreak =  Ambiguous:];
 $AL = [:LineBreak =  Alphabetic:];\r
 $BAX = [\u2010 \u2013];\r
 $BA = [[:LineBreak =  Break_After:] - $BAX];\r
+$HH = [\u2010];     # \u2010 is HYPHEN, default line break is BA.\r
 $BB = [:LineBreak =  Break_Before:];\r
 $BK = [:LineBreak =  Mandatory_Break:];\r
 $B2 = [:LineBreak =  Break_Both:];\r
@@ -151,12 +149,11 @@ $CAN_CM $CM*  [$SP $ZW];
 \r
 #\r
 # LB 8         Break after zero width space\r
-#              TODO:  ZW SP* <break>\r
-#              An engine change is required to write the reverse rule for this.\r
-#              For now, leave the Unicode 5.2 rule, ZW <break>\r
+#              ZW SP* ÷\r
 #\r
 $LB8Breaks    = [$LB4Breaks $ZW];\r
 $LB8NonBreaks = [[$LB4NonBreaks] - [$ZW]];\r
+$ZW $SP* / [^$SP $ZW $LB4Breaks];\r
 \r
 # LB 8a        ZWJ x            Do not break Emoji ZWJ sequences.\r
 #\r
@@ -251,18 +248,25 @@ $LB18NonBreaks $CM* $QU;
 #         QU  x\r
 $QU $CM* .;\r
 \r
-\r
 # LB 20\r
 #        <break>  $CB\r
 #        $CB   <break>\r
-\r
+#\r
 $LB20NonBreaks = [$LB18NonBreaks - $CB];\r
 \r
+# LB 20.09    Don't break between Hyphens and Letters when there is a break preceding the hyphen.\r
+#             Originally added as a Finnish tailoring, now promoted to default ICU behavior.\r
+#             Note: this is not default UAX-14 behaviour. See issue ICU-8151.\r
+#\r
+^($HY | $HH) $CM* $ALPlus;\r
+\r
 # LB 21        x   (BA | HY | NS)\r
 #           BB x\r
 #\r
 # DO allow breaks here before $BAX and $NSX, so don't include them\r
 $LB20NonBreaks $CM* ($BA | $HY | $NS);\r
+\r
+\r
 ^$CM+ ($BA | $HY | $NS);\r
 \r
 $BB $CM* [^$CB];                                  #  $BB  x\r
diff --git a/source/data/brkitr/rules/line_loose_fi.txt b/source/data/brkitr/rules/line_loose_fi.txt
deleted file mode 100644 (file)
index 765576c..0000000
+++ /dev/null
@@ -1,342 +0,0 @@
-# Copyright (C) 2016 and later: Unicode, Inc. and others.\r
-# License & terms of use: http://www.unicode.org/copyright.html\r
-# Copyright (c) 2002-2016  International Business Machines Corporation and\r
-# others. All Rights Reserved.\r
-#\r
-#  file:  line_loose_fi.txt\r
-#\r
-#         Line Breaking Rules\r
-#         Implement default line breaking as defined by\r
-#         Unicode Standard Annex #14 Revision 40 for Unicode 11.0\r
-#         http://www.unicode.org/reports/tr14/\r
-#         tailored as noted in 3rd paragraph below.\r
-#\r
-#         TODO:  Rule LB 8 remains as it was in Unicode 5.2\r
-#         This is only because of a limitation of ICU break engine implementation,\r
-#         not because the older behavior is desirable.\r
-#\r
-#         This tailors the line break behavior both for Finnish and to correpond to CSS\r
-#         line-break=loose (BCP47 -u-lb-loose) as defined for languages other than\r
-#         Chinese & Japanese.\r
-#         It sets characters of class CJ to behave like ID.\r
-#         In addition, it allows breaks before 3005, 303B, 309D, 309E, 30FD, 30FE (all NS).\r
-#\r
-#  Character Classes defined by TR 14.\r
-#\r
-\r
-!!chain;\r
-!!quoted_literals_only;\r
-\r
-$AI = [:LineBreak =  Ambiguous:];\r
-$AL = [:LineBreak =  Alphabetic:];\r
-$BA = [:LineBreak =  Break_After:];\r
-$HH = [\u2010];     # \u2010 is HYPHEN, default line break is BA.\r
-$BB = [:LineBreak =  Break_Before:];\r
-$BK = [:LineBreak =  Mandatory_Break:];\r
-$B2 = [:LineBreak =  Break_Both:];\r
-$CB = [:LineBreak =  Contingent_Break:];\r
-$CJ = [:LineBreak =  Conditional_Japanese_Starter:];\r
-$CL = [:LineBreak =  Close_Punctuation:];\r
-# $CM = [:LineBreak =  Combining_Mark:];\r
-$CP = [:LineBreak =  Close_Parenthesis:];\r
-$CR = [:LineBreak =  Carriage_Return:];\r
-$EB = [:LineBreak =  EB:];\r
-$EM = [:LineBreak =  EM:];\r
-$EX = [:LineBreak =  Exclamation:];\r
-$GL = [:LineBreak =  Glue:];\r
-$HL = [:LineBreak =  Hebrew_Letter:];\r
-$HY = [:LineBreak =  Hyphen:];\r
-$H2 = [:LineBreak =  H2:];\r
-$H3 = [:LineBreak =  H3:];\r
-# CSS Loose tailoring: CJ resolves to ID\r
-$ID = [[:LineBreak =  Ideographic:] $CJ];\r
-$IN = [:LineBreak =  Inseperable:];\r
-$IS = [:LineBreak =  Infix_Numeric:];\r
-$JL = [:LineBreak =  JL:];\r
-$JV = [:LineBreak =  JV:];\r
-$JT = [:LineBreak =  JT:];\r
-$LF = [:LineBreak =  Line_Feed:];\r
-$NL = [:LineBreak =  Next_Line:];\r
-$NSX = [\u3005 \u303B \u309D \u309E \u30FD \u30FE];\r
-$NS = [[:LineBreak =  Nonstarter:] - $NSX];\r
-$NU = [:LineBreak =  Numeric:];\r
-$OP = [:LineBreak =  Open_Punctuation:];\r
-$PO = [:LineBreak =  Postfix_Numeric:];\r
-$PR = [:LineBreak =  Prefix_Numeric:];\r
-$QU = [:LineBreak =  Quotation:];\r
-$RI = [:LineBreak =  Regional_Indicator:];\r
-$SA = [:LineBreak =  Complex_Context:];\r
-$SG = [:LineBreak =  Surrogate:];\r
-$SP = [:LineBreak =  Space:];\r
-$SY = [:LineBreak =  Break_Symbols:];\r
-$WJ = [:LineBreak =  Word_Joiner:];\r
-$XX = [:LineBreak =  Unknown:];\r
-$ZW = [:LineBreak =  ZWSpace:];\r
-$ZWJ = [:LineBreak = ZWJ:];\r
-\r
-# By LB9, a ZWJ also behaves as a CM. Including it in the definition of CM avoids having to explicitly\r
-#         list it in the numerous rules that use CM.\r
-# By LB1, SA characters with general categor of Mn or Mc also resolve to CM.\r
-\r
-$CM = [[:LineBreak = Combining_Mark:] $ZWJ [$SA & [[:Mn:][:Mc:]]]];\r
-\r
-#   Dictionary character set, for triggering language-based break engines. Currently\r
-#   limited to LineBreak=Complex_Context (SA).\r
-\r
-$dictionary = [$SA];\r
-\r
-#\r
-#  Rule LB1.  By default, treat AI  (characters with ambiguous east Asian width),\r
-#                               SA  (Dictionary chars, excluding Mn and Mc)\r
-#                               SG  (Unpaired Surrogates)\r
-#                               XX  (Unknown, unassigned)\r
-#                         as $AL  (Alphabetic)\r
-#\r
-$ALPlus = [$AL $AI $SG $XX [$SA-[[:Mn:][:Mc:]]]];\r
-\r
-\r
-## -------------------------------------------------\r
-\r
-#\r
-# CAN_CM  is the set of characters that may combine with CM combining chars.\r
-#         Note that Linebreak UAX 14's concept of a combining char and the rules\r
-#         for what they can combine with are _very_ different from the rest of Unicode.\r
-#\r
-#         Note that $CM itself is left out of this set.  If CM is needed as a base\r
-#         it must be listed separately in the rule.\r
-#\r
-$CAN_CM  = [^$SP $BK $CR $LF $NL $ZW $CM];       # Bases that can   take CMs\r
-$CANT_CM = [ $SP $BK $CR $LF $NL $ZW $CM];       # Bases that can't take CMs\r
-\r
-#\r
-# AL_FOLLOW  set of chars that can unconditionally follow an AL\r
-#            Needed in rules where stand-alone $CM s are treated as AL.\r
-#\r
-$AL_FOLLOW      = [$BK $CR $LF $NL $ZW $SP $CL $CP $EX $HL $IS $SY $WJ $GL $OP $QU $BA $HH $HY $NS $IN $NU $PR $PO $ALPlus];\r
-\r
-\r
-#\r
-#  Rule LB 4, 5    Mandatory (Hard) breaks.\r
-#\r
-$LB4Breaks    = [$BK $CR $LF $NL];\r
-$LB4NonBreaks = [^$BK $CR $LF $NL $CM];\r
-$CR $LF {100};\r
-\r
-#\r
-#  LB 6    Do not break before hard line breaks.\r
-#\r
-$LB4NonBreaks?  $LB4Breaks {100};    # LB 5  do not break before hard breaks.\r
-$CAN_CM $CM*    $LB4Breaks {100};\r
-^$CM+           $LB4Breaks {100};\r
-\r
-# LB 7         x SP\r
-#              x ZW\r
-$LB4NonBreaks [$SP $ZW];\r
-$CAN_CM $CM*  [$SP $ZW];\r
-^$CM+         [$SP $ZW];\r
-\r
-#\r
-# LB 8         Break after zero width space\r
-#              TODO:  ZW SP* <break>\r
-#              An engine change is required to write the reverse rule for this.\r
-#              For now, leave the Unicode 5.2 rule, ZW <break>\r
-#\r
-$LB8Breaks    = [$LB4Breaks $ZW];\r
-$LB8NonBreaks = [[$LB4NonBreaks] - [$ZW]];\r
-\r
-# LB 8a        ZWJ x            Do not break Emoji ZWJ sequences.\r
-#\r
-$ZWJ [^$CM];\r
-\r
-# LB 9     Combining marks.      X   $CM needs to behave like X, where X is not $SP, $BK $CR $LF $NL\r
-#                                $CM not covered by the above needs to behave like $AL\r
-#                                See definition of $CAN_CM.\r
-\r
-$CAN_CM $CM+;                   #  Stick together any combining sequences that don't match other rules.\r
-^$CM+;\r
-\r
-#\r
-# LB 11  Do not break before or after WORD JOINER & related characters.\r
-#\r
-$CAN_CM $CM*  $WJ;\r
-$LB8NonBreaks $WJ;\r
-^$CM+         $WJ;\r
-\r
-$WJ $CM* .;\r
-\r
-#\r
-# LB 12  Do not break after NBSP and related characters.\r
-#         GL  x\r
-#\r
-$GL $CM* .;\r
-\r
-#\r
-# LB 12a  Do not break before NBSP and related characters ...\r
-#            [^SP BA HY] x GL\r
-#\r
-[[$LB8NonBreaks] - [$SP $BA $HH $HY]] $CM* $GL;\r
-^$CM+ $GL;\r
-\r
-\r
-\r
-#\r
-# LB 13   Don't break before ']' or '!' or ';' or '/', even after spaces.\r
-#\r
-$LB8NonBreaks $CL;\r
-$CAN_CM $CM*  $CL;\r
-^$CM+         $CL;              # by rule 10, stand-alone CM behaves as AL\r
-\r
-$LB8NonBreaks $CP;\r
-$CAN_CM $CM*  $CP;\r
-^$CM+         $CP;              # by rule 10, stand-alone CM behaves as AL\r
-\r
-$LB8NonBreaks $EX;\r
-$CAN_CM $CM*  $EX;\r
-^$CM+         $EX;              # by rule 10, stand-alone CM behaves as AL\r
-\r
-$LB8NonBreaks $IS;\r
-$CAN_CM $CM*  $IS;\r
-^$CM+         $IS;              # by rule 10, stand-alone CM behaves as AL\r
-\r
-$LB8NonBreaks $SY;\r
-$CAN_CM $CM*  $SY;\r
-^$CM+         $SY;              # by rule 10, stand-alone CM behaves as AL\r
-\r
-\r
-#\r
-# LB 14  Do not break after OP, even after spaces\r
-#\r
-$OP $CM* $SP* .;\r
-\r
-$OP $CM* $SP+ $CM+ $AL_FOLLOW?;    # by rule 10, stand-alone CM behaves as AL\r
-                                   # by rule 8, CM following a SP is stand-alone.\r
-\r
-# LB 15\r
-$QU $CM* $SP* $OP;\r
-\r
-# LB 16\r
-# Do not break between closing punctuation and $NS, even with intervening spaces\r
-# But DO allow a break between closing punctuation and $NSX, don't include it here\r
-($CL | $CP) $CM* $SP* $NS;\r
-\r
-# LB 17\r
-$B2 $CM* $SP* $B2;\r
-\r
-#\r
-# LB 18  Break after spaces.\r
-#\r
-$LB18NonBreaks = [$LB8NonBreaks - [$SP]];\r
-$LB18Breaks    = [$LB8Breaks $SP];\r
-\r
-\r
-# LB 19\r
-#         x QU\r
-$LB18NonBreaks $CM* $QU;\r
-^$CM+               $QU;\r
-\r
-#         QU  x\r
-$QU $CM* .;\r
-\r
-\r
-# LB 20\r
-#        <break>  $CB\r
-#        $CB   <break>\r
-\r
-$LB20NonBreaks = [$LB18NonBreaks - $CB];\r
-\r
-# LB 20.09 added rule for Finnish tailoring\r
-# LB 21        x   (BA | HY | NS)\r
-#           BB x\r
-#\r
-# DO allow breaks here before NSX, so don't include it\r
-$LB20NonBreaks $CM* ($BA | $HH | $HY | $NS) $CM* / $AL;\r
-$LB20NonBreaks $CM* ($BA | $HH | $HY | $NS);\r
-($HY | $HH) $AL;\r
-^$CM+ ($BA | $HY | $HH | $NS);\r
-\r
-$BB $CM* [^$CB];                                  #  $BB  x\r
-$BB $CM* $LB20NonBreaks;\r
-\r
-# LB 21a Don't break after Hebrew + Hyphen\r
-#   HL (HY | BA) x\r
-#\r
-$HL $CM* ($HY | $BA | $HH) $CM* [^$CB]?;\r
-\r
-# LB 21b (forward) Don't break between SY and HL\r
-# (break between HL and SY already disallowed by LB 13 above)\r
-$SY $CM* $HL;\r
-\r
-# LB 22\r
-($ALPlus | $HL) $CM* $IN;\r
-^$CM+    $IN;     #  by rule 10, any otherwise unattached CM behaves as AL\r
-$EX $CM*    $IN;\r
-($ID | $EB | $EM) $CM*  $IN;\r
-# $IN $CM*    $IN;  # delete this rule for CSS loose\r
-$NU $CM*    $IN;\r
-\r
-\r
-# $LB 23\r
-#\r
-($ALPlus | $HL) $CM* $NU;\r
-^$CM+  $NU;       # Rule 10, any otherwise unattached CM behaves as AL\r
-$NU $CM* ($ALPlus | $HL);\r
-\r
-# LB 23a\r
-#\r
-$PR $CM* ($ID | $EB | $EM);\r
-($ID | $EB | $EM) $CM*  $PO;\r
-\r
-\r
-#\r
-# LB 24\r
-#\r
-($PR | $PO) $CM* ($ALPlus | $HL);\r
-($ALPlus | $HL) $CM* ($PR | $PO);\r
-^$CM+ ($PR | $PO);       # Rule 10, any otherwise unattached CM behaves as AL\r
-\r
-#\r
-# LB 25   Numbers.\r
-#\r
-(($PR | $PO) $CM*)? (($OP | $HY) $CM*)? $NU ($CM* ($NU | $SY | $IS))*\r
-    ($CM* ($CL | $CP))? ($CM* ($PR | $PO))?;\r
-\r
-# LB 26  Do not break a Korean syllable\r
-#\r
-$JL $CM* ($JL | $JV | $H2 | $H3);\r
-($JV | $H2) $CM* ($JV | $JT);\r
-($JT | $H3) $CM* $JT;\r
-\r
-# LB 27  Treat korean Syllable Block the same as ID  (don't break it)\r
-($JL | $JV | $JT | $H2 | $H3) $CM* $IN;\r
-($JL | $JV | $JT | $H2 | $H3) $CM* $PO;\r
-$PR $CM* ($JL | $JV | $JT | $H2 | $H3);\r
-\r
-\r
-# LB 28   Do not break between alphabetics\r
-#\r
-($ALPlus | $HL) $CM* ($ALPlus | $HL);\r
-^$CM+ ($ALPlus | $HL);      # The $CM+ is from rule 10, an unattached CM is treated as AL\r
-\r
-# LB 29\r
-$IS $CM* ($ALPlus | $HL);\r
-\r
-# LB 30\r
-($ALPlus | $HL | $NU) $CM* $OP;\r
-^$CM+ $OP;         # The $CM+ is from rule 10, an unattached CM is treated as AL.\r
-$CP $CM* ($ALPlus | $HL | $NU);\r
-\r
-# LB 30a  Do not break between regional indicators. Break after pairs of them.\r
-#         Tricky interaction with LB8a: ZWJ x .   together with ZWJ acting like a CM.\r
-$RI $CM* $RI                 / [[^$BK $CR $LF $NL $SP $ZW $WJ $CL $CP $EX $IS $SY $GL $QU $BA $HY $NS $CM]];\r
-$RI $CM* $RI $CM* [$CM-$ZWJ] / [[^$BK $CR $LF $NL $SP $ZW $WJ $CL $CP $EX $IS $SY $GL $QU $BA $HY $NS $CM]];\r
-$RI $CM* $RI $CM* [$BK $CR $LF $NL $SP $ZW $WJ $CL $CP $EX $IS $SY $GL $QU $BA $HY $NS $ZWJ {eof}];\r
-# note: the preceding rule includes {eof} rather than having the last [set] term qualified with '?'\r
-#       because of the chain-out behavior difference. The rule must chain out only from the [set characters],\r
-#       not from the preceding $RI or $CM, which it would be able to do if the set were optional.\r
-\r
-# LB 30b Do not break between an Emoji Base and an Emoji Modifier\r
-$EB $CM* $EM;\r
-\r
-# LB 31 Break everywhere else.\r
-#       Match a single code point if no other rule applies.\r
-.;\r
index 3e37c23..80da310 100644 (file)
@@ -8,13 +8,10 @@
 #         Line Breaking Rules\r
 #         Implement default line breaking as defined by\r
 #         Unicode Standard Annex #14 Revision 40 for Unicode 11.0\r
-#         http://www.unicode.org/reports/tr14/\r
+#         http://www.unicode.org/reports/tr14/, with the following modification:\r
 #\r
-#         tailored as noted in 2nd paragraph below.\r
-#\r
-#         TODO:  Rule LB 8 remains as it was in Unicode 5.2\r
-#         This is only because of a limitation of ICU break engine implementation,\r
-#         not because the older behavior is desirable.\r
+#         Boundaries between hyphens and following letters are suppressed when\r
+#         there is a boundary preceding the hyphen. See rule 20.9\r
 #\r
 #         This tailors the line break behavior to correspond to CSS\r
 #         line-break=normal (BCP47 -u-lb-normal) as defined for languages other than\r
@@ -31,6 +28,7 @@
 $AI = [:LineBreak =  Ambiguous:];\r
 $AL = [:LineBreak =  Alphabetic:];\r
 $BA = [:LineBreak =  Break_After:];\r
+$HH = [\u2010];     # \u2010 is HYPHEN, default line break is BA.\r
 $BB = [:LineBreak =  Break_Before:];\r
 $BK = [:LineBreak =  Mandatory_Break:];\r
 $B2 = [:LineBreak =  Break_Both:];\r
@@ -136,12 +134,11 @@ $CAN_CM $CM*  [$SP $ZW];
 \r
 #\r
 # LB 8         Break after zero width space\r
-#              TODO:  ZW SP* <break>\r
-#              An engine change is required to write the reverse rule for this.\r
-#              For now, leave the Unicode 5.2 rule, ZW <break>\r
+#              ZW SP* ÷\r
 #\r
 $LB8Breaks    = [$LB4Breaks $ZW];\r
 $LB8NonBreaks = [[$LB4NonBreaks] - [$ZW]];\r
+$ZW $SP* / [^$SP $ZW $LB4Breaks];\r
 \r
 # LB 8a        ZWJ x            Do not break Emoji ZWJ sequences.\r
 #\r
@@ -234,17 +231,24 @@ $LB18NonBreaks $CM* $QU;
 #         QU  x\r
 $QU $CM* .;\r
 \r
-\r
 # LB 20\r
 #        <break>  $CB\r
 #        $CB   <break>\r
-\r
+#\r
 $LB20NonBreaks = [$LB18NonBreaks - $CB];\r
 \r
+# LB 20.09    Don't break between Hyphens and Letters when there is a break preceding the hyphen.\r
+#             Originally added as a Finnish tailoring, now promoted to default ICU behavior.\r
+#             Note: this is not default UAX-14 behaviour. See issue ICU-8151.\r
+#\r
+^($HY | $HH) $CM* $ALPlus;\r
+\r
 # LB 21        x   (BA | HY | NS)\r
 #           BB x\r
 #\r
 $LB20NonBreaks $CM* ($BA | $HY | $NS);\r
+\r
+\r
 ^$CM+ ($BA | $HY | $NS);\r
 \r
 $BB $CM* [^$CB];                                  #  $BB  x\r
index bd704b6..22e00ec 100644 (file)
@@ -8,13 +8,10 @@
 #         Line Breaking Rules\r
 #         Implement default line breaking as defined by\r
 #         Unicode Standard Annex #14 Revision 40 for Unicode 11.0\r
-#         http://www.unicode.org/reports/tr14/\r
+#         http://www.unicode.org/reports/tr14/, with the following modification:\r
 #\r
-#         tailored as noted in 2nd paragraph below.\r
-#\r
-#         TODO:  Rule LB 8 remains as it was in Unicode 5.2\r
-#         This is only because of a limitation of ICU break engine implementation,\r
-#         not because the older behavior is desirable.\r
+#         Boundaries between hyphens and following letters are suppressed when\r
+#         there is a boundary preceding the hyphen. See rule 20.9\r
 #\r
 #         This tailors the line break behavior to correspond to CSS\r
 #         line-break=normal (BCP47 -u-lb-normal) as defined for Chinese & Japanese.\r
@@ -33,6 +30,7 @@ $AI = [:LineBreak =  Ambiguous:];
 $AL = [:LineBreak =  Alphabetic:];\r
 $BAX = [\u2010 \u2013];\r
 $BA = [[:LineBreak =  Break_After:] - $BAX];\r
+$HH = [\u2010];     # \u2010 is HYPHEN, default line break is BA.\r
 $BB = [:LineBreak =  Break_Before:];\r
 $BK = [:LineBreak =  Mandatory_Break:];\r
 $B2 = [:LineBreak =  Break_Both:];\r
@@ -139,12 +137,11 @@ $CAN_CM $CM*  [$SP $ZW];
 \r
 #\r
 # LB 8         Break after zero width space\r
-#              TODO:  ZW SP* <break>\r
-#              An engine change is required to write the reverse rule for this.\r
-#              For now, leave the Unicode 5.2 rule, ZW <break>\r
+#              ZW SP* ÷\r
 #\r
 $LB8Breaks    = [$LB4Breaks $ZW];\r
 $LB8NonBreaks = [[$LB4NonBreaks] - [$ZW]];\r
+$ZW $SP* / [^$SP $ZW $LB4Breaks];\r
 \r
 # LB 8a        ZWJ x            Do not break Emoji ZWJ sequences.\r
 #\r
@@ -239,18 +236,25 @@ $LB18NonBreaks $CM* $QU;
 #         QU  x\r
 $QU $CM* .;\r
 \r
-\r
 # LB 20\r
 #        <break>  $CB\r
 #        $CB   <break>\r
-\r
+#\r
 $LB20NonBreaks = [$LB18NonBreaks - $CB];\r
 \r
+# LB 20.09    Don't break between Hyphens and Letters when there is a break preceding the hyphen.\r
+#             Originally added as a Finnish tailoring, now promoted to default ICU behavior.\r
+#             Note: this is not default UAX-14 behaviour. See issue ICU-8151.\r
+#\r
+^($HY | $HH) $CM* $ALPlus;\r
+\r
 # LB 21        x   (BA | HY | NS)\r
 #           BB x\r
 #\r
-# DO allow breaks here before $BAXcm and $NSXcm, so don't include them\r
+# DO allow breaks here before $BAX and $NSX, so don't include them\r
 $LB20NonBreaks $CM* ($BA | $HY | $NS);\r
+\r
+\r
 ^$CM+ ($BA | $HY | $NS);\r
 \r
 $BB $CM* [^$CB];                                  #  $BB  x\r
diff --git a/source/data/brkitr/rules/line_normal_fi.txt b/source/data/brkitr/rules/line_normal_fi.txt
deleted file mode 100644 (file)
index a37e5bb..0000000
+++ /dev/null
@@ -1,338 +0,0 @@
-# Copyright (C) 2016 and later: Unicode, Inc. and others.\r
-# License & terms of use: http://www.unicode.org/copyright.html\r
-# Copyright (c) 2002-2016  International Business Machines Corporation and\r
-# others. All Rights Reserved.\r
-#\r
-#  file:  line_normal_fi.txt\r
-#\r
-#         Line Breaking Rules\r
-#         Implement default line breaking as defined by\r
-#         Unicode Standard Annex #14 Revision 40 for Unicode 11.0\r
-#         http://www.unicode.org/reports/tr14/\r
-#         tailored as noted in 3rd paragraph below.\r
-#\r
-#         TODO:  Rule LB 8 remains as it was in Unicode 5.2\r
-#         This is only because of a limitation of ICU break engine implementation,\r
-#         not because the older behavior is desirable.\r
-#\r
-#         This tailors the line break behavior for Finnish, and to correspond to CSS\r
-#         line-break=normal (BCP47 -u-lb-normal) as defined for languages other than\r
-#         Chinese & Japanese.\r
-#         It sets characters of class CJ to behave like ID.\r
-\r
-#\r
-#  Character Classes defined by TR 14.\r
-#\r
-\r
-!!chain;\r
-!!quoted_literals_only;\r
-\r
-$AI = [:LineBreak =  Ambiguous:];\r
-$AL = [:LineBreak =  Alphabetic:];\r
-$BA = [:LineBreak =  Break_After:];\r
-$HH = [\u2010];     # \u2010 is HYPHEN, default line break is BA.\r
-$BB = [:LineBreak =  Break_Before:];\r
-$BK = [:LineBreak =  Mandatory_Break:];\r
-$B2 = [:LineBreak =  Break_Both:];\r
-$CB = [:LineBreak =  Contingent_Break:];\r
-$CJ = [:LineBreak =  Conditional_Japanese_Starter:];\r
-$CL = [:LineBreak =  Close_Punctuation:];\r
-# $CM = [:LineBreak =  Combining_Mark:];\r
-$CP = [:LineBreak =  Close_Parenthesis:];\r
-$CR = [:LineBreak =  Carriage_Return:];\r
-$EB = [:LineBreak =  EB:];\r
-$EM = [:LineBreak =  EM:];\r
-$EX = [:LineBreak =  Exclamation:];\r
-$GL = [:LineBreak =  Glue:];\r
-$HL = [:LineBreak =  Hebrew_Letter:];\r
-$HY = [:LineBreak =  Hyphen:];\r
-$H2 = [:LineBreak =  H2:];\r
-$H3 = [:LineBreak =  H3:];\r
-# CSS Normal tailoring: CJ resolves to ID\r
-$ID = [[:LineBreak =  Ideographic:] $CJ];\r
-$IN = [:LineBreak =  Inseperable:];\r
-$IS = [:LineBreak =  Infix_Numeric:];\r
-$JL = [:LineBreak =  JL:];\r
-$JV = [:LineBreak =  JV:];\r
-$JT = [:LineBreak =  JT:];\r
-$LF = [:LineBreak =  Line_Feed:];\r
-$NL = [:LineBreak =  Next_Line:];\r
-$NS = [:LineBreak =  Nonstarter:];\r
-$NU = [:LineBreak =  Numeric:];\r
-$OP = [:LineBreak =  Open_Punctuation:];\r
-$PO = [:LineBreak =  Postfix_Numeric:];\r
-$PR = [:LineBreak =  Prefix_Numeric:];\r
-$QU = [:LineBreak =  Quotation:];\r
-$RI = [:LineBreak =  Regional_Indicator:];\r
-$SA = [:LineBreak =  Complex_Context:];\r
-$SG = [:LineBreak =  Surrogate:];\r
-$SP = [:LineBreak =  Space:];\r
-$SY = [:LineBreak =  Break_Symbols:];\r
-$WJ = [:LineBreak =  Word_Joiner:];\r
-$XX = [:LineBreak =  Unknown:];\r
-$ZW = [:LineBreak =  ZWSpace:];\r
-$ZWJ = [:LineBreak = ZWJ:];\r
-\r
-# By LB9, a ZWJ also behaves as a CM. Including it in the definition of CM avoids having to explicitly\r
-#         list it in the numerous rules that use CM.\r
-# By LB1, SA characters with general categor of Mn or Mc also resolve to CM.\r
-\r
-$CM = [[:LineBreak = Combining_Mark:] $ZWJ [$SA & [[:Mn:][:Mc:]]]];\r
-\r
-#   Dictionary character set, for triggering language-based break engines. Currently\r
-#   limited to LineBreak=Complex_Context (SA).\r
-\r
-$dictionary = [$SA];\r
-\r
-#\r
-#  Rule LB1.  By default, treat AI  (characters with ambiguous east Asian width),\r
-#                               SA  (Dictionary chars, excluding Mn and Mc)\r
-#                               SG  (Unpaired Surrogates)\r
-#                               XX  (Unknown, unassigned)\r
-#                         as $AL  (Alphabetic)\r
-#\r
-$ALPlus = [$AL $AI $SG $XX [$SA-[[:Mn:][:Mc:]]]];\r
-\r
-\r
-## -------------------------------------------------\r
-\r
-#\r
-# CAN_CM  is the set of characters that may combine with CM combining chars.\r
-#         Note that Linebreak UAX 14's concept of a combining char and the rules\r
-#         for what they can combine with are _very_ different from the rest of Unicode.\r
-#\r
-#         Note that $CM itself is left out of this set.  If CM is needed as a base\r
-#         it must be listed separately in the rule.\r
-#\r
-$CAN_CM  = [^$SP $BK $CR $LF $NL $ZW $CM];       # Bases that can   take CMs\r
-$CANT_CM = [ $SP $BK $CR $LF $NL $ZW $CM];       # Bases that can't take CMs\r
-\r
-#\r
-# AL_FOLLOW  set of chars that can unconditionally follow an AL\r
-#            Needed in rules where stand-alone $CM s are treated as AL.\r
-#\r
-$AL_FOLLOW      = [$BK $CR $LF $NL $ZW $SP $CL $CP $EX $HL $IS $SY $WJ $GL $OP $QU $BA $HH $HY $NS $IN $NU $PR $PO $ALPlus];\r
-\r
-\r
-#\r
-#  Rule LB 4, 5    Mandatory (Hard) breaks.\r
-#\r
-$LB4Breaks    = [$BK $CR $LF $NL];\r
-$LB4NonBreaks = [^$BK $CR $LF $NL $CM];\r
-$CR $LF {100};\r
-\r
-#\r
-#  LB 6    Do not break before hard line breaks.\r
-#\r
-$LB4NonBreaks?  $LB4Breaks {100};    # LB 5  do not break before hard breaks.\r
-$CAN_CM $CM*    $LB4Breaks {100};\r
-^$CM+           $LB4Breaks {100};\r
-\r
-# LB 7         x SP\r
-#              x ZW\r
-$LB4NonBreaks [$SP $ZW];\r
-$CAN_CM $CM*  [$SP $ZW];\r
-^$CM+         [$SP $ZW];\r
-\r
-#\r
-# LB 8         Break after zero width space\r
-#              TODO:  ZW SP* <break>\r
-#              An engine change is required to write the reverse rule for this.\r
-#              For now, leave the Unicode 5.2 rule, ZW <break>\r
-#\r
-$LB8Breaks    = [$LB4Breaks $ZW];\r
-$LB8NonBreaks = [[$LB4NonBreaks] - [$ZW]];\r
-\r
-# LB 8a        ZWJ x            Do not break Emoji ZWJ sequences.\r
-#\r
-$ZWJ [^$CM];\r
-\r
-# LB 9     Combining marks.      X   $CM needs to behave like X, where X is not $SP, $BK $CR $LF $NL\r
-#                                $CM not covered by the above needs to behave like $AL\r
-#                                See definition of $CAN_CM.\r
-\r
-$CAN_CM $CM+;                   #  Stick together any combining sequences that don't match other rules.\r
-^$CM+;\r
-\r
-#\r
-# LB 11  Do not break before or after WORD JOINER & related characters.\r
-#\r
-$CAN_CM $CM*  $WJ;\r
-$LB8NonBreaks $WJ;\r
-^$CM+         $WJ;\r
-\r
-$WJ $CM* .;\r
-\r
-#\r
-# LB 12  Do not break after NBSP and related characters.\r
-#         GL  x\r
-#\r
-$GL $CM* .;\r
-\r
-#\r
-# LB 12a  Do not break before NBSP and related characters ...\r
-#            [^SP BA HY] x GL\r
-#\r
-[[$LB8NonBreaks] - [$SP $BA $HH $HY]] $CM* $GL;\r
-^$CM+ $GL;\r
-\r
-\r
-\r
-#\r
-# LB 13   Don't break before ']' or '!' or ';' or '/', even after spaces.\r
-#\r
-$LB8NonBreaks $CL;\r
-$CAN_CM $CM*  $CL;\r
-^$CM+         $CL;              # by rule 10, stand-alone CM behaves as AL\r
-\r
-$LB8NonBreaks $CP;\r
-$CAN_CM $CM*  $CP;\r
-^$CM+         $CP;              # by rule 10, stand-alone CM behaves as AL\r
-\r
-$LB8NonBreaks $EX;\r
-$CAN_CM $CM*  $EX;\r
-^$CM+         $EX;              # by rule 10, stand-alone CM behaves as AL\r
-\r
-$LB8NonBreaks $IS;\r
-$CAN_CM $CM*  $IS;\r
-^$CM+         $IS;              # by rule 10, stand-alone CM behaves as AL\r
-\r
-$LB8NonBreaks $SY;\r
-$CAN_CM $CM*  $SY;\r
-^$CM+         $SY;              # by rule 10, stand-alone CM behaves as AL\r
-\r
-\r
-#\r
-# LB 14  Do not break after OP, even after spaces\r
-#\r
-$OP $CM* $SP* .;\r
-\r
-$OP $CM* $SP+ $CM+ $AL_FOLLOW?;    # by rule 10, stand-alone CM behaves as AL\r
-                                   # by rule 8, CM following a SP is stand-alone.\r
-\r
-# LB 15\r
-$QU $CM* $SP* $OP;\r
-\r
-# LB 16\r
-($CL | $CP) $CM* $SP* $NS;\r
-\r
-# LB 17\r
-$B2 $CM* $SP* $B2;\r
-\r
-#\r
-# LB 18  Break after spaces.\r
-#\r
-$LB18NonBreaks = [$LB8NonBreaks - [$SP]];\r
-$LB18Breaks    = [$LB8Breaks $SP];\r
-\r
-\r
-# LB 19\r
-#         x QU\r
-$LB18NonBreaks $CM* $QU;\r
-^$CM+               $QU;\r
-\r
-#         QU  x\r
-$QU $CM* .;\r
-\r
-\r
-# LB 20\r
-#        <break>  $CB\r
-#        $CB   <break>\r
-\r
-$LB20NonBreaks = [$LB18NonBreaks - $CB];\r
-\r
-# LB 20.09 added rule for Finnish tailoring\r
-# LB 21        x   (BA | HY | NS)\r
-#           BB x\r
-#\r
-$LB20NonBreaks $CM* ($BA | $HH | $HY | $NS) $CM* / $AL;\r
-$LB20NonBreaks $CM* ($BA | $HH | $HY | $NS);\r
-($HY | $HH) $AL;\r
-^$CM+ ($BA | $HY | $HH | $NS);\r
-\r
-$BB $CM* [^$CB];                                  #  $BB  x\r
-$BB $CM* $LB20NonBreaks;\r
-\r
-# LB 21a Don't break after Hebrew + Hyphen\r
-#   HL (HY | BA) x\r
-#\r
-$HL $CM* ($HY | $BA | $HH) $CM* [^$CB]?;\r
-\r
-# LB 21b (forward) Don't break between SY and HL\r
-# (break between HL and SY already disallowed by LB 13 above)\r
-$SY $CM* $HL;\r
-\r
-# LB 22\r
-($ALPlus | $HL) $CM* $IN;\r
-^$CM+    $IN;     #  by rule 10, any otherwise unattached CM behaves as AL\r
-$EX $CM*    $IN;\r
-($ID | $EB | $EM) $CM*  $IN;\r
-$IN $CM*    $IN;\r
-$NU $CM*    $IN;\r
-\r
-\r
-# $LB 23\r
-#\r
-($ALPlus | $HL) $CM* $NU;\r
-^$CM+  $NU;       # Rule 10, any otherwise unattached CM behaves as AL\r
-$NU $CM* ($ALPlus | $HL);\r
-\r
-# LB 23a\r
-#\r
-$PR $CM* ($ID | $EB | $EM);\r
-($ID | $EB | $EM) $CM*  $PO;\r
-\r
-\r
-#\r
-# LB 24\r
-#\r
-($PR | $PO) $CM* ($ALPlus | $HL);\r
-($ALPlus | $HL) $CM* ($PR | $PO);\r
-^$CM+ ($PR | $PO);       # Rule 10, any otherwise unattached CM behaves as AL\r
-\r
-#\r
-# LB 25   Numbers.\r
-#\r
-(($PR | $PO) $CM*)? (($OP | $HY) $CM*)? $NU ($CM* ($NU | $SY | $IS))*\r
-    ($CM* ($CL | $CP))? ($CM* ($PR | $PO))?;\r
-\r
-# LB 26  Do not break a Korean syllable\r
-#\r
-$JL $CM* ($JL | $JV | $H2 | $H3);\r
-($JV | $H2) $CM* ($JV | $JT);\r
-($JT | $H3) $CM* $JT;\r
-\r
-# LB 27  Treat korean Syllable Block the same as ID  (don't break it)\r
-($JL | $JV | $JT | $H2 | $H3) $CM* $IN;\r
-($JL | $JV | $JT | $H2 | $H3) $CM* $PO;\r
-$PR $CM* ($JL | $JV | $JT | $H2 | $H3);\r
-\r
-\r
-# LB 28   Do not break between alphabetics\r
-#\r
-($ALPlus | $HL) $CM* ($ALPlus | $HL);\r
-^$CM+ ($ALPlus | $HL);      # The $CM+ is from rule 10, an unattached CM is treated as AL\r
-\r
-# LB 29\r
-$IS $CM* ($ALPlus | $HL);\r
-\r
-# LB 30\r
-($ALPlus | $HL | $NU) $CM* $OP;\r
-^$CM+ $OP;         # The $CM+ is from rule 10, an unattached CM is treated as AL.\r
-$CP $CM* ($ALPlus | $HL | $NU);\r
-\r
-# LB 30a  Do not break between regional indicators. Break after pairs of them.\r
-#         Tricky interaction with LB8a: ZWJ x .   together with ZWJ acting like a CM.\r
-$RI $CM* $RI                 / [[^$BK $CR $LF $NL $SP $ZW $WJ $CL $CP $EX $IS $SY $GL $QU $BA $HY $NS $CM]];\r
-$RI $CM* $RI $CM* [$CM-$ZWJ] / [[^$BK $CR $LF $NL $SP $ZW $WJ $CL $CP $EX $IS $SY $GL $QU $BA $HY $NS $CM]];\r
-$RI $CM* $RI $CM* [$BK $CR $LF $NL $SP $ZW $WJ $CL $CP $EX $IS $SY $GL $QU $BA $HY $NS $ZWJ {eof}];\r
-# note: the preceding rule includes {eof} rather than having the last [set] term qualified with '?'\r
-#       because of the chain-out behavior difference. The rule must chain out only from the [set characters],\r
-#       not from the preceding $RI or $CM, which it would be able to do if the set were optional.\r
-\r
-# LB 30b Do not break between an Emoji Base and an Emoji Modifier\r
-$EB $CM* $EM;\r
-\r
-# LB 31 Break everywhere else.\r
-#       Match a single code point if no other rule applies.\r
-.;\r
index da0b68d..599cec9 100644 (file)
@@ -59,7 +59,7 @@
         </taskdef>\r
     </target>\r
     <!-- target for generating ICU data -->\r
-    <target name="all" depends="locales, collation, rbnf, supplementalData, metadata, metaZones, windowsZones, likelySubtags, plurals, numberingSystems, translit, brkitr, keyTypeData, genderList, dayPeriods" />\r
+    <target name="all" depends="locales, collation, rbnf, supplementalData, metadata, metaZones, windowsZones, likelySubtags, plurals, pluralRanges, numberingSystems, translit, brkitr, keyTypeData, genderList, dayPeriods" />\r
     <!-- parallel target -->\r
     <target name="pall" depends="init">\r
         <parallel threadsPerProcessor ="1">\r
             </run>\r
         </cldr-build>\r
     </target>\r
+    <target name="pluralRanges" depends="init,setup" description="builds pluralRanges.txt from pluralRanges.xml">\r
+        <cldr-build toolName="org.unicode.cldr.icu.NewLdml2IcuConverter" destFile="pluralRanges.txt" noArgs="true">\r
+            <!-- launch the tool and generate the data after reading the config file -->\r
+            <run>\r
+                <args>\r
+                    <arg name="-s" value="${env.CLDR_DIR}/common/supplemental" />\r
+                    <arg name="-d" value="${env.ICU4C_DIR}/source/data/misc"/>\r
+                    <arg name="-t" value="pluralRanges"/>\r
+                </args>\r
+            </run>\r
+        </cldr-build>\r
+    </target>\r
     <target name="numberingSystems" depends="init,setup" description="builds numberingSystems.txt from numberingSystems.xml">\r
         <cldr-build toolName="org.unicode.cldr.icu.NewLdml2IcuConverter" destFile="numberingSystems.txt" noArgs="true">\r
             <!-- launch the tool and generate the data after reading the config file -->\r
             <fileset id="plurals" dir="${env.ICU4C_DIR}/source/data/misc">\r
                 <include name="plurals.txt" />\r
             </fileset>\r
+            <fileset id="pluralRanges" dir="${env.ICU4C_DIR}/source/data/misc">\r
+                <include name="pluralRanges.txt" />\r
+            </fileset>\r
             <fileset id="numberingSystems" dir="${env.ICU4C_DIR}/source/data/misc">\r
                 <include name="numberingSystems.txt" />\r
             </fileset>\r
index 5a5c262..edb5dae 100644 (file)
@@ -9,9 +9,6 @@
 #    - CLDR (the source of most of the data, and some Java tools)\r
 #    - ICU4J  (used only for checking the converted data)\r
 #    - ICU4C  (the destination for the new data, and the source for some of it)\r
-#             (Either check out ICU4C from Subversion, or download the additional \r
-#              icu4c-*-data.zip file so that the icu/source/data/ directory is fully\r
-#              populated.)\r
 #\r
 # For an official CLDR data integration into ICU, these should be clean, freshly\r
 # checked-out. For released CLDR sources, an alternative to checking out sources\r
 #\r
 # IP address whitelisting\r
 #\r
-# Parts of the build process (notably building the new ICU data filescin step 4)\r
+# Parts of the build process (notably building the new ICU data files in step 4)\r
 # require http: access to files in the CLDR repository; for example, processing\r
 # the files in icu4c/source/data/xml/ may require access to\r
 # http://www.unicode.org/repos/cldr/trunk/common/dtd/ldml.dtd\r
 #\r
-# The IP address of the system requesting such access be whitelisted with Unicode,\r
-# otherwise there may be timeout failures; contact Rick McGowan.\r
+# Unless you cache the dtds locally by e.g. setting -DCLDR_DTD_CACHE=/tmp, the\r
+# builds will repeatedly make such requests, which will likely result in the\r
+# Unicode server blocking access and consequent timeout failures. You can\r
+# prevent such blockage by having the external IP address of your build system\r
+# whitelisted with Unicode; contact Rick McGowan or Steven Loomis.\r
 #\r
 #----\r
 #\r
@@ -66,6 +66,8 @@
 #\r
 #                -Xmx3072m, to give Java more memory; otherwise it may run out\r
 #                 of heap.\r
+#                -DCLDR_DTD_CACHE=/tmp, to reduce frequent http: access to dtds\r
+#                 and consequent blockage by Unicode server.\r
 #\r
 # b) CLDR-related variables\r
 #\r
 # 1a. Java and ant variables, adjust for your system\r
 \r
 export JAVA_HOME=`/usr/libexec/java_home`\r
-export ANT_OPTS="-Xmx3072m"\r
+export ANT_OPTS="-Xmx3072m -DCLDR_DTD_CACHE=/tmp"\r
 \r
 # 1b. CLDR variables, adjust for your setup; with cygwin it might be e.g.\r
 # CLDR_DIR=`cygpath -wp /build/cldr`\r
@@ -184,7 +186,7 @@ ant all 2>&1 | tee /tmp/cldr-newData-buildLog.txt
 # (if there are no changes, you may not need to proceed further). Make sure the\r
 # list seems reasonable.\r
 \r
-svn status\r
+git status\r
 \r
 # 6. Fix any errors, investigate any warnings. Some warnings are expected,\r
 # including  warnings for missing versions in locale names which specify some\r
@@ -258,11 +260,11 @@ ant check 2>&1 | tee /tmp/icu4j-newData-antCheck.txt
 # commit the changes.\r
 \r
 cd $ICU4C_DIR/source\r
-svn status\r
+git status\r
 # add or remove as necessary\r
 \r
 cd $ICU4J_ROOT\r
-svn status\r
+git status\r
 # add or remove as necessary\r
 \r
 cd $HOME/icu/trunk/\r
index fa56607..fdf1094 100644 (file)
@@ -5,7 +5,7 @@ af{
     collations{\r
         standard{\r
             Sequence{"&N<<<ʼn"}\r
-            Version{"33.1"}\r
+            Version{"34"}\r
         }\r
     }\r
 }\r
index 8ba15bc..6244cff 100644 (file)
@@ -5,7 +5,7 @@ am{
     collations{\r
         standard{\r
             Sequence{"[reorder Ethi]"}\r
-            Version{"33.1"}\r
+            Version{"34"}\r
         }\r
     }\r
 }\r
index 12f4851..9eb1118 100644 (file)
@@ -9,7 +9,7 @@ ar{
                 "&ت<<ة<<<ﺔ<<<ﺓ"\r
                 "&ي<<ى<<<ﯨ<<<ﯩ<<<ﻰ<<<ﻯ<<<ﲐ<<<ﱝ"\r
             }\r
-            Version{"33.1"}\r
+            Version{"34"}\r
         }\r
         standard{\r
             Sequence{\r
@@ -397,7 +397,7 @@ ar{
                 "‎&ۓ‎=ﮰ‎=ﮱ"\r
                 "‎&ۀ‎=ﮤ‎=ﮥ"\r
             }\r
-            Version{"33.1"}\r
+            Version{"34"}\r
         }\r
     }\r
 }\r
index 2f3dec9..b4c4412 100644 (file)
@@ -11,7 +11,7 @@ as{
                 "&[before 1]ত<ৎ=ত্\u200D"\r
                 "&হ<ক্ষ"\r
             }\r
-            Version{"33.1"}\r
+            Version{"34"}\r
         }\r
     }\r
 }\r
index 3e4e5bb..e223023 100644 (file)
@@ -9,7 +9,7 @@ az{
                 "[import az-u-co-standard]"\r
                 "[reorder others]"\r
             }\r
-            Version{"33.1"}\r
+            Version{"34"}\r
         }\r
         standard{\r
             Sequence{\r
@@ -26,7 +26,7 @@ az{
                 "&H<x<<<X"\r
                 "&Z<w<<<W"\r
             }\r
-            Version{"33.1"}\r
+            Version{"34"}\r
         }\r
     }\r
 }\r
index c1f797d..03fb3be 100644 (file)
@@ -9,7 +9,7 @@ be{
                 "&Е<ё<<<Ё"\r
                 "&у<ў<<<Ў"\r
             }\r
-            Version{"33.1"}\r
+            Version{"34"}\r
         }\r
     }\r
 }\r
index c2b1fc1..91f86ac 100644 (file)
@@ -5,7 +5,7 @@ bg{
     collations{\r
         standard{\r
             Sequence{"[reorder Cyrl]"}\r
-            Version{"33.1"}\r
+            Version{"34"}\r
         }\r
     }\r
 }\r
index 5ba5fc1..6fffc8d 100644 (file)
@@ -9,7 +9,7 @@ bn{
                 "[reorder Beng Deva Guru Gujr Orya Taml Telu Knda Mlym Sinh]"\r
                 "&ঔ<ং<ঃ<ঁ"\r
             }\r
-            Version{"33.1"}\r
+            Version{"34"}\r
         }\r
         traditional{\r
             Sequence{\r
@@ -629,7 +629,7 @@ bn{
                 "&যৌ<<<য়ৌ"\r
                 "&য্<<<য়্"\r
             }\r
-            Version{"33.1"}\r
+            Version{"34"}\r
         }\r
     }\r
 }\r
index 39c6e41..a9f189c 100644 (file)
@@ -5,11 +5,11 @@ bs{
     collations{\r
         search{\r
             Sequence{"[import hr-u-co-search]"}\r
-            Version{"33.1"}\r
+            Version{"34"}\r
         }\r
         standard{\r
             Sequence{"[import hr]"}\r
-            Version{"33.1"}\r
+            Version{"34"}\r
         }\r
     }\r
 }\r
index 98ab128..f7544de 100644 (file)
@@ -5,7 +5,7 @@ bs_Cyrl{
     collations{\r
         standard{\r
             Sequence{"[import sr]"}\r
-            Version{"33.1"}\r
+            Version{"34"}\r
         }\r
     }\r
 }\r
index 06d1f3a..251ba34 100644 (file)
@@ -8,7 +8,7 @@ ca{
                 "[import und-u-co-search]"\r
                 "&L<ŀ=l·<<<Ŀ=L·"\r
             }\r
-            Version{"33.1"}\r
+            Version{"34"}\r
         }\r
     }\r
 }\r
index da93832..8ecfde3 100644 (file)
@@ -5,7 +5,7 @@ chr{
     collations{\r
         standard{\r
             Sequence{"[reorder Cher]"}\r
-            Version{"33.1"}\r
+            Version{"34"}\r
         }\r
     }\r
 }\r
index a326bec..b898f36 100644 (file)
@@ -1,6 +1,6 @@
 # © 2016 and later: Unicode, Inc. and others.\r
 # License & terms of use: http://www.unicode.org/copyright.html#License\r
-COLLATION_CLDR_VERSION = 33.1\r
+COLLATION_CLDR_VERSION = 34\r
 # A list of txt's to build\r
 # Note:\r
 #\r
@@ -59,15 +59,16 @@ COLLATION_SOURCE = $(COLLATION_EMPTY_SOURCE) af.txt am.txt ar.txt\
  hsb.txt hu.txt hy.txt id.txt ig.txt\\r
  is.txt it.txt ja.txt ka.txt kk.txt\\r
  kl.txt km.txt kn.txt ko.txt kok.txt\\r
- ky.txt lb.txt lkt.txt ln.txt lo.txt\\r
- lt.txt lv.txt mk.txt ml.txt mn.txt\\r
- mr.txt ms.txt mt.txt my.txt nb.txt\\r
- ne.txt nl.txt nn.txt om.txt or.txt\\r
- pa.txt pl.txt ps.txt pt.txt ro.txt\\r
- ru.txt se.txt si.txt sk.txt sl.txt\\r
- smn.txt sq.txt sr.txt sr_Latn.txt sv.txt\\r
- sw.txt ta.txt te.txt th.txt to.txt\\r
- tr.txt ug.txt uk.txt ur.txt uz.txt\\r
- vi.txt wae.txt wo.txt yi.txt yo.txt\\r
- zh.txt zh_Hant.txt zu.txt\r
+ ku.txt ky.txt lb.txt lkt.txt ln.txt\\r
+ lo.txt lt.txt lv.txt mk.txt ml.txt\\r
+ mn.txt mr.txt ms.txt mt.txt my.txt\\r
+ nb.txt ne.txt nl.txt nn.txt om.txt\\r
+ or.txt pa.txt pl.txt ps.txt pt.txt\\r
+ ro.txt ru.txt se.txt si.txt sk.txt\\r
+ sl.txt smn.txt sq.txt sr.txt sr_Latn.txt\\r
+ sv.txt sw.txt ta.txt te.txt th.txt\\r
+ tk.txt to.txt tr.txt ug.txt uk.txt\\r
+ ur.txt uz.txt vi.txt wae.txt wo.txt\\r
+ xh.txt yi.txt yo.txt zh.txt zh_Hant.txt\\r
+ zu.txt\r
 \r
index 21b4874..fff6d60 100644 (file)
@@ -11,7 +11,7 @@ cs{
                 "&S<š<<<Š"\r
                 "&Z<ž<<<Ž"\r
             }\r
-            Version{"33.1"}\r
+            Version{"34"}\r
         }\r
     }\r
 }\r
index 8c1a266..39b7376 100644 (file)
@@ -14,7 +14,7 @@ cy{
                 "&R<rh<<<Rh<<<RH"\r
                 "&T<th<<<Th<<<TH"\r
             }\r
-            Version{"33.1"}\r
+            Version{"34"}\r
         }\r
     }\r
 }\r
index 8a5dc04..ccea594 100644 (file)
@@ -9,7 +9,7 @@ da{
                 "[import da-u-co-standard]"\r
                 "[caseFirst off]"\r
             }\r
-            Version{"33.1"}\r
+            Version{"34"}\r
         }\r
         standard{\r
             Sequence{\r
@@ -21,7 +21,7 @@ da{
                 "&[before 1]ǀ<æ<<<Æ<<ä<<<Ä<ø<<<Ø<<ö<<<Ö<<ő<<<Ő<å<<<Å<<<aa<<<Aa<<<AA"\r
                 "&oe<<œ<<<Œ"\r
             }\r
-            Version{"33.1"}\r
+            Version{"34"}\r
         }\r
     }\r
 }\r
index 2de4c14..d4a3327 100644 (file)
@@ -9,14 +9,14 @@ de{
                 "&OE<<ö<<<Ö"\r
                 "&UE<<ü<<<Ü"\r
             }\r
-            Version{"33.1"}\r
+            Version{"34"}\r
         }\r
         search{\r
             Sequence{\r
                 "[import und-u-co-search]"\r
                 "[import de-u-co-phonebk]"\r
             }\r
-            Version{"33.1"}\r
+            Version{"34"}\r
         }\r
     }\r
 }\r
index 3ac767f..8893d2b 100644 (file)
@@ -10,7 +10,7 @@ de_AT{
                 "&u<ü<<<Ü"\r
                 "&ss<ß<<<ẞ"\r
             }\r
-            Version{"33.1"}\r
+            Version{"34"}\r
         }\r
     }\r
 }\r
index c045dad..8f2bb9a 100644 (file)
@@ -14,7 +14,7 @@ dsb{
                 "&S<š<<<Š<ś<<<Ś"\r
                 "&Z<ž<<<Ž<ź<<<Ź"\r
             }\r
-            Version{"33.1"}\r
+            Version{"34"}\r
         }\r
     }\r
 }\r
index fa435a6..6b5907e 100644 (file)
@@ -17,7 +17,7 @@ ee{
                 "&T<ts<<<Ts<<<TS"\r
                 "&V<ʋ<<<Ʋ"\r
             }\r
-            Version{"33.1"}\r
+            Version{"34"}\r
         }\r
     }\r
 }\r
index 54d3578..21dafbb 100644 (file)
@@ -8,7 +8,7 @@ el{
                 "[normalization on]"\r
                 "[reorder Grek]"\r
             }\r
-            Version{"33.1"}\r
+            Version{"34"}\r
         }\r
     }\r
 }\r
index faf55a3..c0972eb 100644 (file)
@@ -8,7 +8,7 @@ en_US_POSIX{
                 "&A<*'\u0020'-'/'<*0-'@'<*ABCDEFGHIJKLMNOPQRSTUVWXYZ<*'['-'`'<*abcdefghijklmnopqrstuvwxyz"\r
                 "<*'{'-'\u007F'"\r
             }\r
-            Version{"33.1"}\r
+            Version{"34"}\r
         }\r
     }\r
 }\r
index 1beebab..c105c5c 100644 (file)
@@ -12,7 +12,7 @@ eo{
                 "&S<ŝ<<<Ŝ"\r
                 "&U<ŭ<<<Ŭ"\r
             }\r
-            Version{"33.1"}\r
+            Version{"34"}\r
         }\r
     }\r
 }\r
index 681533e..e69479b 100644 (file)
@@ -8,11 +8,11 @@ es{
                 "[import und-u-co-search]"\r
                 "&N<ñ<<<Ñ"\r
             }\r
-            Version{"33.1"}\r
+            Version{"34"}\r
         }\r
         standard{\r
             Sequence{"&N<ñ<<<Ñ"}\r
-            Version{"33.1"}\r
+            Version{"34"}\r
         }\r
         traditional{\r
             Sequence{\r
@@ -20,7 +20,7 @@ es{
                 "&C<ch<<<Ch<<<CH"\r
                 "&l<ll<<<Ll<<<LL"\r
             }\r
-            Version{"33.1"}\r
+            Version{"34"}\r
         }\r
     }\r
 }\r
index dcb6673..feb8a7a 100644 (file)
@@ -8,7 +8,7 @@ et{
                 "&[before 1]T<š<<<Š<z<<<Z<ž<<<Ž"\r
                 "&[before 1]X<õ<<<Õ<ä<<<Ä<ö<<<Ö<ü<<<Ü"\r
             }\r
-            Version{"33.1"}\r
+            Version{"34"}\r
         }\r
     }\r
 }\r
index c468156..1ec4f55 100644 (file)
@@ -16,7 +16,7 @@ fa{
                 "&ۏ<ه<<ە<<ہ<<ة<<ۃ<<ۀ<<ھ"\r
                 "&ی<<*ىےيېۑۍێ"\r
             }\r
-            Version{"33.1"}\r
+            Version{"34"}\r
         }\r
     }\r
 }\r
index 3d8b82d..b288abf 100644 (file)
@@ -5,7 +5,7 @@ fa_AF{
     collations{\r
         standard{\r
             Sequence{"[import ps]"}\r
-            Version{"33.1"}\r
+            Version{"34"}\r
         }\r
     }\r
 }\r
index 7287462..304a3c3 100644 (file)
@@ -8,7 +8,7 @@ fi{
                 "[import und-u-co-search]"\r
                 "[import fi-u-co-trad]"\r
             }\r
-            Version{"33.1"}\r
+            Version{"34"}\r
         }\r
         standard{\r
             Sequence{\r
@@ -20,7 +20,7 @@ fi{
                 "&Z\u0335<<ʒ<<<Ʒ"\r
                 "&[before 1]ǀ<å<<<Å<ä<<<Ä<<æ<<<Æ<ö<<<Ö<<ø<<<Ø"\r
             }\r
-            Version{"33.1"}\r
+            Version{"34"}\r
         }\r
         traditional{\r
             Sequence{\r
@@ -31,7 +31,7 @@ fi{
                 "&Y<<ü<<<Ü<<ű<<<Ű"\r
                 "&[before 1]ǀ<å<<<Å<ä<<<Ä<<æ<<<Æ<ö<<<Ö<<ø<<<Ø<<ő<<<Ő<<õ<<<Õ<<œ<<<Œ"\r
             }\r
-            Version{"33.1"}\r
+            Version{"34"}\r
         }\r
     }\r
 }\r
index 61f129a..4fd1e37 100644 (file)
@@ -5,7 +5,7 @@ fil{
     collations{\r
         standard{\r
             Sequence{"&N<ñ<<<Ñ<ng<<<Ng<<<NG"}\r
-            Version{"33.1"}\r
+            Version{"34"}\r
         }\r
     }\r
 }\r
index 8943849..da25a48 100644 (file)
@@ -8,7 +8,7 @@ fo{
                 "[import und-u-co-search]"\r
                 "[import fo-u-co-standard]"\r
             }\r
-            Version{"33.1"}\r
+            Version{"34"}\r
         }\r
         standard{\r
             Sequence{\r
@@ -18,7 +18,7 @@ fo{
                 "&Y<<ü<<<Ü<<ű<<<Ű"\r
                 "&[before 1]ǀ<æ<<<Æ<<ä<<<Ä<<ę<<<Ę<ø<<<Ø<<ö<<<Ö<<ő<<<Ő<<œ<<<Œ<å<<<Å<<<aa<<<Aa<<<AA"\r
             }\r
-            Version{"33.1"}\r
+            Version{"34"}\r
         }\r
     }\r
 }\r
index 9b48c7f..09a32fa 100644 (file)
@@ -5,7 +5,7 @@ fr_CA{
     collations{\r
         standard{\r
             Sequence{"[backwards 2]"}\r
-            Version{"33.1"}\r
+            Version{"34"}\r
         }\r
     }\r
 }\r
index db548b4..544c8c7 100644 (file)
@@ -5,11 +5,11 @@ gl{
     collations{\r
         search{\r
             Sequence{"[import es-u-co-search]"}\r
-            Version{"33.1"}\r
+            Version{"34"}\r
         }\r
         standard{\r
             Sequence{"[import es]"}\r
-            Version{"33.1"}\r
+            Version{"34"}\r
         }\r
     }\r
 }\r
index 3c33c79..62df43d 100644 (file)
@@ -9,7 +9,7 @@ gu{
                 "[reorder Gujr Deva Beng Guru Orya Taml Telu Knda Mlym Sinh]"\r
                 "&ૐ<ં<<ઁ<ઃ"\r
             }\r
-            Version{"33.1"}\r
+            Version{"34"}\r
         }\r
     }\r
 }\r
index 4623585..acb860c 100644 (file)
@@ -12,7 +12,7 @@ ha{
                 "&T<ts<<<Ts<<<TS"\r
                 "&Y<ƴ<<<ʼy<<<''y<<<Ƴ<<<ʼY<<<''Y"\r
             }\r
-            Version{"33.1"}\r
+            Version{"34"}\r
         }\r
     }\r
 }\r
index 0d64ed6..20a2b3b 100644 (file)
@@ -8,7 +8,7 @@ haw{
                 "&a<e<<<E<i<<<I<o<<<O<u<<<U"\r
                 "&w<ʻ"\r
             }\r
-            Version{"33.1"}\r
+            Version{"34"}\r
         }\r
     }\r
 }\r
index 94e39f5..b505881 100644 (file)
@@ -11,7 +11,7 @@ he{
                 "‎&״"\r
                 "<<'\u0022'"\r
             }\r
-            Version{"33.1"}\r
+            Version{"34"}\r
         }\r
         standard{\r
             Sequence{\r
@@ -20,7 +20,7 @@ he{
                 "&[before 2]''<<׳"\r
                 "&[before 2]'\u0022'<<״"\r
             }\r
-            Version{"33.1"}\r
+            Version{"34"}\r
         }\r
     }\r
 }\r
index 86cc276..80f6949 100644 (file)
@@ -9,7 +9,7 @@ hi{
                 "[reorder Deva Beng Guru Gujr Orya Taml Telu Knda Mlym Sinh]"\r
                 "&ॐ<ं<<ँ<ः"\r
             }\r
-            Version{"33.1"}\r
+            Version{"34"}\r
         }\r
     }\r
 }\r
index da8c40b..f72f60e 100644 (file)
@@ -9,7 +9,7 @@ hr{
                 "[import hr-u-co-standard]"\r
                 "[reorder others]"\r
             }\r
-            Version{"33.1"}\r
+            Version{"34"}\r
         }\r
         standard{\r
             Sequence{\r
@@ -21,7 +21,7 @@ hr{
                 "&S<š<<<Š"\r
                 "&Z<ž<<<Ž"\r
             }\r
-            Version{"33.1"}\r
+            Version{"34"}\r
         }\r
     }\r
 }\r
index 2e47b26..adf26e4 100644 (file)
@@ -13,7 +13,7 @@ hsb{
                 "&S<š<<<Š"\r
                 "&Z<ž<<<Ž<ź<<<Ź"\r
             }\r
-            Version{"33.1"}\r
+            Version{"34"}\r
         }\r
     }\r
 }\r
index 9615c26..ee063c5 100644 (file)
@@ -44,7 +44,7 @@ hu{
                 "&Zs<<<Zzs/zs"\r
                 "&ZS<<<ZZS/ZS"\r
             }\r
-            Version{"33.1"}\r
+            Version{"34"}\r
         }\r
     }\r
 }\r
index 3687798..1b30998 100644 (file)
@@ -8,7 +8,7 @@ hy{
                 "[reorder Armn]"\r
                 "&ք<և<<<Եւ"\r
             }\r
-            Version{"33.1"}\r
+            Version{"34"}\r
         }\r
     }\r
 }\r
index fe77f2c..cd2f084 100644 (file)
@@ -15,7 +15,7 @@ ig{
                 "&S<sh<<<Sh<<<SH"\r
                 "&U<ụ<<<Ụ"\r
             }\r
-            Version{"33.1"}\r
+            Version{"34"}\r
         }\r
     }\r
 }\r
index 1731c1a..27e7d33 100644 (file)
@@ -8,7 +8,7 @@ is{
                 "[import und-u-co-search]"\r
                 "[import is-u-co-standard]"\r
             }\r
-            Version{"33.1"}\r
+            Version{"34"}\r
         }\r
         standard{\r
             Sequence{\r
@@ -21,7 +21,7 @@ is{
                 "&[before 1]z<ý<<<Ý"\r
                 "&[before 1]ǀ<æ<<<Æ<<ä<<<Ä<ö<<<Ö<<ø<<<Ø<å<<<Å"\r
             }\r
-            Version{"33.1"}\r
+            Version{"34"}\r
         }\r
     }\r
 }\r
index a44025c..fe4cb63 100644 (file)
@@ -412,21 +412,21 @@ ja{
                 "&「=「"\r
                 "&」=」"\r
             }\r
-            Version{"33.1"}\r
+            Version{"34"}\r
         }\r
         standard{\r
             Sequence{\r
                 "[import ja-u-co-private-kana]"\r
                 "&[last regular]<*亜唖娃阿哀愛挨姶逢葵茜穐悪握渥旭葦芦鯵梓圧斡扱宛姐虻飴絢綾鮎或粟袷安庵按暗案闇鞍杏以伊位依偉囲夷委威尉惟意慰易椅為畏異移維緯胃萎衣謂違遺医井亥域育郁磯一壱溢逸稲茨芋鰯允印咽員因姻引飲淫胤蔭院陰隠韻吋右宇烏羽迂雨卯鵜窺丑碓臼渦嘘唄欝蔚鰻姥厩浦瓜閏噂云運雲荏餌叡営嬰影映曳栄永泳洩瑛盈穎頴英衛詠鋭液疫益駅悦謁越閲榎厭円園堰奄宴延怨掩援沿演炎焔煙燕猿縁艶苑薗遠鉛鴛塩於汚甥凹央奥往応押旺横欧殴王翁襖鴬鴎黄岡沖荻億屋憶臆桶牡乙俺卸恩温穏音下化仮何伽価佳加可嘉夏嫁家寡科暇果架歌河火珂禍禾稼箇花苛茄荷華菓蝦課嘩貨迦過霞蚊俄峨我牙画臥芽蛾賀雅餓駕介会解回塊壊廻快怪悔恢懐戒拐改魁晦械海灰界皆絵芥蟹開階貝凱劾外咳害崖慨概涯碍蓋街該鎧骸浬馨蛙垣柿蛎鈎劃嚇各廓拡撹格核殻獲確穫覚角赫較郭閣隔革学岳楽額顎掛笠樫橿梶鰍潟割喝恰括活渇滑葛褐轄且鰹叶椛樺鞄株兜竃蒲釜鎌噛鴨栢茅萱粥刈苅瓦乾侃冠寒刊勘勧巻喚堪姦完官寛干幹患感慣憾換敢柑桓棺款歓汗漢澗潅環甘監看竿管簡緩缶翰肝艦莞観諌貫還鑑間閑関陥韓館舘丸含岸巌玩癌眼岩翫贋雁頑顔願企伎危喜器基奇嬉寄岐希幾忌揮机旗既期棋棄機帰毅気汽畿祈季稀紀徽規記貴起軌輝飢騎鬼亀偽儀妓宜戯技擬欺犠疑祇義蟻誼議掬菊鞠吉吃喫桔橘詰砧杵黍却客脚虐逆丘久仇休及吸宮弓急救朽求汲泣灸球究窮笈級糾給旧牛去居巨拒拠挙渠虚許距鋸漁禦魚亨享京供侠僑兇競共凶協匡卿叫喬境峡強彊怯恐恭挟教橋況狂狭矯胸脅興蕎郷鏡響饗驚仰凝尭暁業局曲極玉桐粁僅勤均巾錦斤欣欽琴禁禽筋緊芹菌衿襟謹近金吟銀九倶句区狗玖矩苦躯駆駈駒具愚虞喰空偶寓遇隅串櫛釧屑屈掘窟沓靴轡窪熊隈粂栗繰桑鍬勲君薫訓群軍郡卦袈祁係傾刑兄啓圭珪型契形径恵慶慧憩掲携敬景桂渓畦稽系経継繋罫茎荊蛍計詣警軽頚鶏芸迎鯨劇戟撃激隙桁傑欠決潔穴結血訣月件倹倦健兼券剣喧圏堅嫌建憲懸拳捲検権牽犬献研硯絹県肩見謙賢軒遣鍵険顕験鹸元原厳幻弦減源玄現絃舷言諺限乎個古呼固姑孤己庫弧戸故枯湖狐糊袴股胡菰虎誇跨鈷雇顧鼓五互伍午呉吾娯後御悟梧檎瑚碁語誤護醐乞鯉交佼侯候倖光公功効勾厚口向后喉坑垢好孔孝宏工巧巷幸広庚康弘恒慌抗拘控攻昂晃更杭校梗構江洪浩港溝甲皇硬稿糠紅紘絞綱耕考肯肱腔膏航荒行衡講貢購郊酵鉱砿鋼閤降項香高鴻剛劫号合壕拷濠豪轟麹克刻告国穀酷鵠黒獄漉腰甑忽惚骨狛込此頃今困坤墾婚恨懇昏昆根梱混痕紺艮魂些佐叉唆嵯左差査沙瑳砂詐鎖裟坐座挫債催再最哉塞妻宰彩才採栽歳済災采犀砕砦祭斎細菜裁載際剤在材罪財冴坂阪堺榊肴咲崎埼碕鷺作削咋搾昨朔柵窄策索錯桜鮭笹匙冊刷察拶撮擦札殺薩雑皐鯖捌錆鮫皿晒三傘参山惨撒散桟燦珊産算纂蚕讃賛酸餐斬暫残仕仔伺使刺司史嗣四士始姉姿子屍市師志思指支孜斯施旨枝止死氏獅祉私糸紙紫肢脂至視詞詩試誌諮資賜雌飼歯事似侍児字寺慈持時次滋治爾璽痔磁示而耳自蒔辞汐鹿式識鴫竺軸宍雫七叱執失嫉室悉湿漆疾質実蔀篠偲柴芝屡蕊縞舎写射捨赦斜煮社紗者謝車遮蛇邪借勺尺杓灼爵酌釈錫若寂弱惹主取守手朱殊狩珠種腫趣酒首儒受呪寿授樹綬需囚収周宗就州修愁拾洲秀秋終繍習臭舟蒐衆襲讐蹴輯週酋酬集醜什住充十従戎柔汁渋獣縦重銃叔夙宿淑祝縮粛塾熟出術述俊峻春瞬竣舜駿准循旬楯殉淳準潤盾純巡遵醇順処初所暑曙渚庶緒署書薯藷諸助叙女序徐恕鋤除傷償勝匠升召哨商唱嘗奨妾娼宵将小少尚庄床廠彰承抄招掌捷昇昌昭晶松梢樟樵沼消渉湘焼焦照症省硝礁祥称章笑粧紹肖菖蒋蕉衝裳訟証詔詳象賞醤鉦鍾鐘障鞘上丈丞乗冗剰城場壌嬢常情擾条杖浄状畳穣蒸譲醸錠嘱埴飾拭植殖燭織職色触食蝕辱尻伸信侵唇娠寝審心慎振新晋森榛浸深申疹真神秦紳臣芯薪親診身辛進針震人仁刃塵壬尋甚尽腎訊迅陣靭笥諏須酢図厨逗吹垂帥推水炊睡粋翠衰遂酔錐錘随瑞髄崇嵩数枢趨雛据杉椙菅頗雀裾澄摺寸世瀬畝是凄制勢姓征性成政整星晴棲栖正清牲生盛精聖声製西誠誓請逝醒青静斉税脆隻席惜戚斥昔析石積籍績脊責赤跡蹟碩切拙接摂折設窃節説雪絶舌蝉仙先千占宣専尖川戦扇撰栓栴泉浅洗染潜煎煽旋穿箭線繊羨腺舛船薦詮賎践選遷銭銑閃鮮前善漸然全禅繕膳糎噌塑岨措曾曽楚狙疏疎礎祖租粗素組蘇訴阻遡鼠僧創双叢倉喪壮奏爽宋層匝惣想捜掃挿掻操早曹巣槍槽漕燥争痩相窓糟総綜聡草荘葬蒼藻装走送遭鎗霜騒像増憎臓蔵贈造促側則即息捉束測足速俗属賊族続卒袖其揃存孫尊損村遜他多太汰詑唾堕妥惰打柁舵楕陀駄騨体堆対耐岱帯待怠態戴替泰滞胎腿苔袋貸退逮隊黛鯛代台大第醍題鷹滝瀧卓啄宅托択拓沢濯琢託鐸濁諾茸凧蛸只叩但達辰奪脱巽竪辿棚谷狸鱈樽誰丹単嘆坦担探旦歎淡湛炭短端箪綻耽胆蛋誕鍛団壇弾断暖檀段男談値知地弛恥智池痴稚置致蜘遅馳築畜竹筑蓄逐秩窒茶嫡着中仲宙忠抽昼柱注虫衷註酎鋳駐樗瀦猪苧著貯丁兆凋喋寵帖帳庁弔張彫徴懲挑暢朝潮牒町眺聴脹腸蝶調諜超跳銚長頂鳥勅捗直朕沈珍賃鎮陳津墜椎槌追鎚痛通塚栂掴槻佃漬柘辻蔦綴鍔椿潰坪壷嬬紬爪吊釣鶴亭低停偵剃貞呈堤定帝底庭廷弟悌抵挺提梯汀碇禎程締艇訂諦蹄逓邸鄭釘鼎泥摘擢敵滴的笛適鏑溺哲徹撤轍迭鉄典填天展店添纏甜貼転顛点伝殿澱田電兎吐堵塗妬屠徒斗杜渡登菟賭途都鍍砥砺努度土奴怒倒党冬凍刀唐塔塘套宕島嶋悼投搭東桃梼棟盗淘湯涛灯燈当痘祷等答筒糖統到董蕩藤討謄豆踏逃透鐙陶頭騰闘働動同堂導憧撞洞瞳童胴萄道銅峠鴇匿得徳涜特督禿篤毒独読栃橡凸突椴届鳶苫寅酉瀞噸屯惇敦沌豚遁頓呑曇鈍奈那内乍凪薙謎灘捺鍋楢馴縄畷南楠軟難汝二尼弐迩匂賑肉虹廿日乳入如尿韮任妊忍認濡禰祢寧葱猫熱年念捻撚燃粘乃廼之埜嚢悩濃納能脳膿農覗蚤巴把播覇杷波派琶破婆罵芭馬俳廃拝排敗杯盃牌背肺輩配倍培媒梅楳煤狽買売賠陪這蝿秤矧萩伯剥博拍柏泊白箔粕舶薄迫曝漠爆縛莫駁麦函箱硲箸肇筈櫨幡肌畑畠八鉢溌発醗髪伐罰抜筏閥鳩噺塙蛤隼伴判半反叛帆搬斑板氾汎版犯班畔繁般藩販範釆煩頒飯挽晩番盤磐蕃蛮匪卑否妃庇彼悲扉批披斐比泌疲皮碑秘緋罷肥被誹費避非飛樋簸備尾微枇毘琵眉美鼻柊稗匹疋髭彦膝菱肘弼必畢筆逼桧姫媛紐百謬俵彪標氷漂瓢票表評豹廟描病秒苗錨鋲蒜蛭鰭品彬斌浜瀕貧賓頻敏瓶不付埠夫婦富冨布府怖扶敷斧普浮父符腐膚芙譜負賦赴阜附侮撫武舞葡蕪部封楓風葺蕗伏副復幅服福腹複覆淵弗払沸仏物鮒分吻噴墳憤扮焚奮粉糞紛雰文聞丙併兵塀幣平弊柄並蔽閉陛米頁僻壁癖碧別瞥蔑箆偏変片篇編辺返遍便勉娩弁鞭保舗鋪圃捕歩甫補輔穂募墓慕戊暮母簿菩倣俸包呆報奉宝峰峯崩庖抱捧放方朋法泡烹砲縫胞芳萌蓬蜂褒訪豊邦鋒飽鳳鵬乏亡傍剖坊妨帽忘忙房暴望某棒冒紡肪膨謀貌貿鉾防吠頬北僕卜墨撲朴牧睦穆釦勃没殆堀幌奔本翻凡盆摩磨魔麻埋妹昧枚毎哩槙幕膜枕鮪柾鱒桝亦俣又抹末沫迄侭繭麿万慢満漫蔓味未魅巳箕岬密蜜湊蓑稔脈妙粍民眠務夢無牟矛霧鵡椋婿娘冥名命明盟迷銘鳴姪牝滅免棉綿緬面麺摸模茂妄孟毛猛盲網耗蒙儲木黙目杢勿餅尤戻籾貰問悶紋門匁也冶夜爺耶野弥矢厄役約薬訳躍靖柳薮鑓愉愈油癒諭輸唯佑優勇友宥幽悠憂揖有柚湧涌猶猷由祐裕誘遊邑郵雄融夕予余与誉輿預傭幼妖容庸揚揺擁曜楊様洋溶熔用窯羊耀葉蓉要謡踊遥陽養慾抑欲沃浴翌翼淀羅螺裸来莱頼雷洛絡落酪乱卵嵐欄濫藍蘭覧利吏履李梨理璃痢裏裡里離陸律率立葎掠略劉流溜琉留硫粒隆竜龍侶慮旅虜了亮僚両凌寮料梁涼猟療瞭稜糧良諒遼量陵領力緑倫厘林淋燐琳臨輪隣鱗麟瑠塁涙累類令伶例冷励嶺怜玲礼苓鈴隷零霊麗齢暦歴列劣烈裂廉恋憐漣煉簾練聯蓮連錬呂魯櫓炉賂路露労婁廊弄朗楼榔浪漏牢狼篭老聾蝋郎六麓禄肋録論倭和話歪賄脇惑枠鷲亙亘鰐詫藁蕨椀湾碗腕弌丐丕个丱丶丼丿乂乖乘亂亅豫亊舒弍于亞亟亠亢亰亳亶从仍仄仆仂仗仞仭仟价伉佚估佛佝佗佇佶侈侏侘佻佩佰侑佯來侖儘俔俟俎俘俛俑俚俐俤俥倚倨倔倪倥倅伜俶倡倩倬俾俯們倆偃假會偕偐偈做偖偬偸傀傚傅傴傲僉僊傳僂僖僞僥僭僣僮價僵儉儁儂儖儕儔儚儡儺儷儼儻儿兀兒兌兔兢竸兩兪兮冀冂囘册冉冏冑冓冕冖冤冦冢冩冪冫决冱冲冰况冽凅凉凛几處凩凭凰凵凾刄刋刔刎刧刪刮刳刹剏剄剋剌剞剔剪剴剩剳剿剽劍劔劒剱劈劑辨辧劬劭劼劵勁勍勗勞勣勦飭勠勳勵勸勹匆匈甸匍匐匏匕匚匣匯匱匳匸區卆卅丗卉卍凖卞卩卮夘卻卷厂厖厠厦厥厮厰厶參簒雙叟曼燮叮叨叭叺吁吽呀听吭吼吮吶吩吝呎咏呵咎呟呱呷呰咒呻咀呶咄咐咆哇咢咸咥咬哄哈咨咫哂咤咾咼哘哥哦唏唔哽哮哭哺哢唹啀啣啌售啜啅啖啗唸唳啝喙喀咯喊喟啻啾喘喞單啼喃喩喇喨嗚嗅嗟嗄嗜嗤嗔嘔嗷嘖嗾嗽嘛嗹噎噐營嘴嘶嘲嘸噫噤嘯噬噪嚆嚀嚊嚠嚔嚏嚥嚮嚶嚴囂嚼囁囃囀囈囎囑囓囗囮囹圀囿圄圉圈國圍圓團圖嗇圜圦圷圸坎圻址坏坩埀垈坡坿垉垓垠垳垤垪垰埃埆埔埒埓堊埖埣堋堙堝塲堡塢塋塰毀塒堽塹墅墹墟墫墺壞墻墸墮壅壓壑壗壙壘壥壜壤壟壯壺壹壻壼壽夂夊夐夛梦夥夬夭夲夸夾竒奕奐奎奚奘奢奠奧奬奩奸妁妝佞侫妣妲姆姨姜妍姙姚娥娟娑娜娉娚婀婬婉娵娶婢婪媚媼媾嫋嫂媽嫣嫗嫦嫩嫖嫺嫻嬌嬋嬖嬲嫐嬪嬶嬾孃孅孀孑孕孚孛孥孩孰孳孵學斈孺宀它宦宸寃寇寉寔寐寤實寢寞寥寫寰寶寳尅將專對尓尠尢尨尸尹屁屆屎屓屐屏孱屬屮乢屶屹岌岑岔妛岫岻岶岼岷峅岾峇峙峩峽峺峭嶌峪崋崕崗嵜崟崛崑崔崢崚崙崘嵌嵒嵎嵋嵬嵳嵶嶇嶄嶂嶢嶝嶬嶮嶽嶐嶷嶼巉巍巓巒巖巛巫已巵帋帚帙帑帛帶帷幄幃幀幎幗幔幟幢幤幇幵并幺麼广庠廁廂廈廐廏廖廣廝廚廛廢廡廨廩廬廱廳廰廴廸廾弃弉彝彜弋弑弖弩弭弸彁彈彌彎弯彑彖彗彙彡彭彳彷徃徂彿徊很徑徇從徙徘徠徨徭徼忖忻忤忸忱忝悳忿怡恠怙怐怩怎怱怛怕怫怦怏怺恚恁恪恷恟恊恆恍恣恃恤恂恬恫恙悁悍惧悃悚悄悛悖悗悒悧悋惡悸惠惓悴忰悽惆悵惘慍愕愆惶惷愀惴惺愃愡惻惱愍愎慇愾愨愧慊愿愼愬愴愽慂慄慳慷慘慙慚慫慴慯慥慱慟慝慓慵憙憖憇憬憔憚憊憑憫憮懌懊應懷懈懃懆憺懋罹懍懦懣懶懺懴懿懽懼懾戀戈戉戍戌戔戛戞戡截戮戰戲戳扁扎扞扣扛扠扨扼抂抉找抒抓抖拔抃抔拗拑抻拏拿拆擔拈拜拌拊拂拇抛拉挌拮拱挧挂挈拯拵捐挾捍搜捏掖掎掀掫捶掣掏掉掟掵捫捩掾揩揀揆揣揉插揶揄搖搴搆搓搦搶攝搗搨搏摧摯摶摎攪撕撓撥撩撈撼據擒擅擇撻擘擂擱擧舉擠擡抬擣擯攬擶擴擲擺攀擽攘攜攅攤攣攫攴攵攷收攸畋效敖敕敍敘敞敝敲數斂斃變斛斟斫斷旃旆旁旄旌旒旛旙无旡旱杲昊昃旻杳昵昶昴昜晏晄晉晁晞晝晤晧晨晟晢晰暃暈暎暉暄暘暝曁暹曉暾暼曄暸曖曚曠昿曦曩曰曵曷朏朖朞朦朧霸朮朿朶杁朸朷杆杞杠杙杣杤枉杰枩杼杪枌枋枦枡枅枷柯枴柬枳柩枸柤柞柝柢柮枹柎柆柧檜栞框栩桀桍栲桎梳栫桙档桷桿梟梏梭梔條梛梃檮梹桴梵梠梺椏梍桾椁棊椈棘椢椦棡椌棍棔棧棕椶椒椄棗棣椥棹棠棯椨椪椚椣椡棆楹楷楜楸楫楔楾楮椹楴椽楙椰楡楞楝榁楪榲榮槐榿槁槓榾槎寨槊槝榻槃榧樮榑榠榜榕榴槞槨樂樛槿權槹槲槧樅榱樞槭樔槫樊樒櫁樣樓橄樌橲樶橸橇橢橙橦橈樸樢檐檍檠檄檢檣檗蘗檻櫃櫂檸檳檬櫞櫑櫟檪櫚櫪櫻欅蘖櫺欒欖鬱欟欸欷盜欹飮歇歃歉歐歙歔歛歟歡歸歹歿殀殄殃殍殘殕殞殤殪殫殯殲殱殳殷殼毆毋毓毟毬毫毳毯麾氈氓气氛氤氣汞汕汢汪沂沍沚沁沛汾汨汳沒沐泄泱泓沽泗泅泝沮沱沾沺泛泯泙泪洟衍洶洫洽洸洙洵洳洒洌浣涓浤浚浹浙涎涕濤涅淹渕渊涵淇淦涸淆淬淞淌淨淒淅淺淙淤淕淪淮渭湮渮渙湲湟渾渣湫渫湶湍渟湃渺湎渤滿渝游溂溪溘滉溷滓溽溯滄溲滔滕溏溥滂溟潁漑灌滬滸滾漿滲漱滯漲滌漾漓滷澆潺潸澁澀潯潛濳潭澂潼潘澎澑濂潦澳澣澡澤澹濆澪濟濕濬濔濘濱濮濛瀉瀋濺瀑瀁瀏濾瀛瀚潴瀝瀘瀟瀰瀾瀲灑灣炙炒炯烱炬炸炳炮烟烋烝烙焉烽焜焙煥煕熈煦煢煌煖煬熏燻熄熕熨熬燗熹熾燒燉燔燎燠燬燧燵燼燹燿爍爐爛爨爭爬爰爲爻爼爿牀牆牋牘牴牾犂犁犇犒犖犢犧犹犲狃狆狄狎狒狢狠狡狹狷倏猗猊猜猖猝猴猯猩猥猾獎獏默獗獪獨獰獸獵獻獺珈玳珎玻珀珥珮珞璢琅瑯琥珸琲琺瑕琿瑟瑙瑁瑜瑩瑰瑣瑪瑶瑾璋璞璧瓊瓏瓔珱瓠瓣瓧瓩瓮瓲瓰瓱瓸瓷甄甃甅甌甎甍甕甓甞甦甬甼畄畍畊畉畛畆畚畩畤畧畫畭畸當疆疇畴疊疉疂疔疚疝疥疣痂疳痃疵疽疸疼疱痍痊痒痙痣痞痾痿痼瘁痰痺痲痳瘋瘍瘉瘟瘧瘠瘡瘢瘤瘴瘰瘻癇癈癆癜癘癡癢癨癩癪癧癬癰癲癶癸發皀皃皈皋皎皖皓皙皚皰皴皸皹皺盂盍盖盒盞盡盥盧盪蘯盻眈眇眄眩眤眞眥眦眛眷眸睇睚睨睫睛睥睿睾睹瞎瞋瞑瞠瞞瞰瞶瞹瞿瞼瞽瞻矇矍矗矚矜矣矮矼砌砒礦砠礪硅碎硴碆硼碚碌碣碵碪碯磑磆磋磔碾碼磅磊磬磧磚磽磴礇礒礑礙礬礫祀祠祗祟祚祕祓祺祿禊禝禧齋禪禮禳禹禺秉秕秧秬秡秣稈稍稘稙稠稟禀稱稻稾稷穃穗穉穡穢穩龝穰穹穽窈窗窕窘窖窩竈窰窶竅竄窿邃竇竊竍竏竕竓站竚竝竡竢竦竭竰笂笏笊笆笳笘笙笞笵笨笶筐筺笄筍笋筌筅筵筥筴筧筰筱筬筮箝箘箟箍箜箚箋箒箏筝箙篋篁篌篏箴篆篝篩簑簔篦篥籠簀簇簓篳篷簗簍篶簣簧簪簟簷簫簽籌籃籔籏籀籐籘籟籤籖籥籬籵粃粐粤粭粢粫粡粨粳粲粱粮粹粽糀糅糂糘糒糜糢鬻糯糲糴糶糺紆紂紜紕紊絅絋紮紲紿紵絆絳絖絎絲絨絮絏絣經綉絛綏絽綛綺綮綣綵緇綽綫總綢綯緜綸綟綰緘緝緤緞緻緲緡縅縊縣縡縒縱縟縉縋縢繆繦縻縵縹繃縷縲縺繧繝繖繞繙繚繹繪繩繼繻纃緕繽辮繿纈纉續纒纐纓纔纖纎纛纜缸缺罅罌罍罎罐网罕罔罘罟罠罨罩罧罸羂羆羃羈羇羌羔羞羝羚羣羯羲羹羮羶羸譱翅翆翊翕翔翡翦翩翳翹飜耆耄耋耒耘耙耜耡耨耿耻聊聆聒聘聚聟聢聨聳聲聰聶聹聽聿肄肆肅肛肓肚肭冐肬胛胥胙胝胄胚胖脉胯胱脛脩脣脯腋隋腆脾腓腑胼腱腮腥腦腴膃膈膊膀膂膠膕膤膣腟膓膩膰膵膾膸膽臀臂膺臉臍臑臙臘臈臚臟臠臧臺臻臾舁舂舅與舊舍舐舖舩舫舸舳艀艙艘艝艚艟艤艢艨艪艫舮艱艷艸艾芍芒芫芟芻芬苡苣苟苒苴苳苺莓范苻苹苞茆苜茉苙茵茴茖茲茱荀茹荐荅茯茫茗茘莅莚莪莟莢莖茣莎莇莊荼莵荳荵莠莉莨菴萓菫菎菽萃菘萋菁菷萇菠菲萍萢萠莽萸蔆菻葭萪萼蕚蒄葷葫蒭葮蒂葩葆萬葯葹萵蓊葢蒹蒿蒟蓙蓍蒻蓚蓐蓁蓆蓖蒡蔡蓿蓴蔗蔘蔬蔟蔕蔔蓼蕀蕣蕘蕈蕁蘂蕋蕕薀薤薈薑薊薨蕭薔薛藪薇薜蕷蕾薐藉薺藏薹藐藕藝藥藜藹蘊蘓蘋藾藺蘆蘢蘚蘰蘿虍乕虔號虧虱蚓蚣蚩蚪蚋蚌蚶蚯蛄蛆蚰蛉蠣蚫蛔蛞蛩蛬蛟蛛蛯蜒蜆蜈蜀蜃蛻蜑蜉蜍蛹蜊蜴蜿蜷蜻蜥蜩蜚蝠蝟蝸蝌蝎蝴蝗蝨蝮蝙蝓蝣蝪蠅螢螟螂螯蟋螽蟀蟐雖螫蟄螳蟇蟆螻蟯蟲蟠蠏蠍蟾蟶蟷蠎蟒蠑蠖蠕蠢蠡蠱蠶蠹蠧蠻衄衂衒衙衞衢衫袁衾袞衵衽袵衲袂袗袒袮袙袢袍袤袰袿袱裃裄裔裘裙裝裹褂裼裴裨裲褄褌褊褓襃褞褥褪褫襁襄褻褶褸襌褝襠襞襦襤襭襪襯襴襷襾覃覈覊覓覘覡覩覦覬覯覲覺覽覿觀觚觜觝觧觴觸訃訖訐訌訛訝訥訶詁詛詒詆詈詼詭詬詢誅誂誄誨誡誑誥誦誚誣諄諍諂諚諫諳諧諤諱謔諠諢諷諞諛謌謇謚諡謖謐謗謠謳鞫謦謫謾謨譁譌譏譎證譖譛譚譫譟譬譯譴譽讀讌讎讒讓讖讙讚谺豁谿豈豌豎豐豕豢豬豸豺貂貉貅貊貍貎貔豼貘戝貭貪貽貲貳貮貶賈賁賤賣賚賽賺賻贄贅贊贇贏贍贐齎贓賍贔贖赧赭赱赳趁趙跂趾趺跏跚跖跌跛跋跪跫跟跣跼踈踉跿踝踞踐踟蹂踵踰踴蹊蹇蹉蹌蹐蹈蹙蹤蹠踪蹣蹕蹶蹲蹼躁躇躅躄躋躊躓躑躔躙躪躡躬躰軆躱躾軅軈軋軛軣軼軻軫軾輊輅輕輒輙輓輜輟輛輌輦輳輻輹轅轂輾轌轉轆轎轗轜轢轣轤辜辟辣辭辯辷迚迥迢迪迯邇迴逅迹迺逑逕逡逍逞逖逋逧逶逵逹迸遏遐遑遒逎遉逾遖遘遞遨遯遶隨遲邂遽邁邀邊邉邏邨邯邱邵郢郤扈郛鄂鄒鄙鄲鄰酊酖酘酣酥酩酳酲醋醉醂醢醫醯醪醵醴醺釀釁釉釋釐釖釟釡釛釼釵釶鈞釿鈔鈬鈕鈑鉞鉗鉅鉉鉤鉈銕鈿鉋鉐銜銖銓銛鉚鋏銹銷鋩錏鋺鍄錮錙錢錚錣錺錵錻鍜鍠鍼鍮鍖鎰鎬鎭鎔鎹鏖鏗鏨鏥鏘鏃鏝鏐鏈鏤鐚鐔鐓鐃鐇鐐鐶鐫鐵鐡鐺鑁鑒鑄鑛鑠鑢鑞鑪鈩鑰鑵鑷鑽鑚鑼鑾钁鑿閂閇閊閔閖閘閙閠閨閧閭閼閻閹閾闊濶闃闍闌闕闔闖關闡闥闢阡阨阮阯陂陌陏陋陷陜陞陝陟陦陲陬隍隘隕隗險隧隱隲隰隴隶隸隹雎雋雉雍襍雜霍雕雹霄霆霈霓霎霑霏霖霙霤霪霰霹霽霾靄靆靈靂靉靜靠靤靦靨勒靫靱靹鞅靼鞁靺鞆鞋鞏鞐鞜鞨鞦鞣鞳鞴韃韆韈韋韜韭齏韲竟韶韵頏頌頸頤頡頷頽顆顏顋顫顯顰顱顴顳颪颯颱颶飄飃飆飩飫餃餉餒餔餘餡餝餞餤餠餬餮餽餾饂饉饅饐饋饑饒饌饕馗馘馥馭馮馼駟駛駝駘駑駭駮駱駲駻駸騁騏騅駢騙騫騷驅驂驀驃騾驕驍驛驗驟驢驥驤驩驫驪骭骰骼髀髏髑髓體髞髟髢髣髦髯髫髮髴髱髷髻鬆鬘鬚鬟鬢鬣鬥鬧鬨鬩鬪鬮鬯鬲魄魃魏魍魎魑魘魴鮓鮃鮑鮖鮗鮟鮠鮨鮴鯀鯊鮹鯆鯏鯑鯒鯣鯢鯤鯔鯡鰺鯲鯱鯰鰕鰔鰉鰓鰌鰆鰈鰒鰊鰄鰮鰛鰥鰤鰡鰰鱇鰲鱆鰾鱚鱠鱧鱶鱸鳧鳬鳰鴉鴈鳫鴃鴆鴪鴦鶯鴣鴟鵄鴕鴒鵁鴿鴾鵆鵈鵝鵞鵤鵑鵐鵙鵲鶉鶇鶫鵯鵺鶚鶤鶩鶲鷄鷁鶻鶸鶺鷆鷏鷂鷙鷓鷸鷦鷭鷯鷽鸚鸛鸞鹵鹹鹽麁麈麋麌麒麕麑麝麥麩麸麪麭靡黌黎黏黐黔黜點黝黠黥黨黯黴黶黷黹黻黼黽鼇鼈皷鼕鼡鼬鼾齊齒齔齣齟齠齡齦齧齬齪齷齲齶龕龜龠堯槇遙瑤凜熙"\r
             }\r
-            Version{"33.1"}\r
+            Version{"34"}\r
         }\r
         unihan{\r
             Sequence{\r
                 "[import und-u-co-private-unihan]"\r
                 "[import ja-u-co-private-kana]"\r
             }\r
-            Version{"33.1"}\r
+            Version{"34"}\r
         }\r
     }\r
 }\r
index eaacf49..80265a7 100644 (file)
@@ -5,7 +5,7 @@ ka{
     collations{\r
         standard{\r
             Sequence{"[reorder Geor]"}\r
-            Version{"33.1"}\r
+            Version{"34"}\r
         }\r
     }\r
 }\r
index ba63b0d..59d9117 100644 (file)
@@ -10,7 +10,7 @@ kk{
                 "&Ұ<ү<<<Ү"\r
                 "&[before 1]ь<і<<<І"\r
             }\r
-            Version{"33.1"}\r
+            Version{"34"}\r
         }\r
     }\r
 }\r
index e95a050..bba0e07 100644 (file)
@@ -8,7 +8,7 @@ kl{
                 "[import und-u-co-search]"\r
                 "[import kl-u-co-standard]"\r
             }\r
-            Version{"33.1"}\r
+            Version{"34"}\r
         }\r
         standard{\r
             Sequence{\r
@@ -19,7 +19,7 @@ kl{
                 "&Y<<ü<<<Ü<<ű<<<Ű"\r
                 "&[before 1]ǀ<æ<<<Æ<<ä<<<Ä<<ę<<<Ę<ø<<<Ø<<ö<<<Ö<<ő<<<Ő<<œ<<<Œ<å<<<Å"\r
             }\r
-            Version{"33.1"}\r
+            Version{"34"}\r
         }\r
     }\r
 }\r
index 221b158..c24f5ee 100644 (file)
@@ -66,7 +66,7 @@ km{
                 "&ឱ<<<ឲ"\r
                 "&ៅ<ុំ<ំ<ាំ<ះ<ិះ<ុះ<េះ<ោះ"\r
             }\r
-            Version{"33.1"}\r
+            Version{"34"}\r
         }\r
     }\r
 }\r
index 1250cb3..dfceac7 100644 (file)
@@ -9,7 +9,7 @@ kn{
                 "[reorder Knda Deva Beng Guru Gujr Orya Taml Telu Mlym Sinh]"\r
                 "&ಔ<ಂ<ಃ<ೱ<ೲ"\r
             }\r
-            Version{"33.1"}\r
+            Version{"34"}\r
         }\r
         traditional{\r
             Sequence{\r
@@ -651,7 +651,7 @@ kn{
                 "&ಫೋ<<<ಫ಼ೋ"\r
                 "&ಫೌ<<<ಫ಼ೌ"\r
             }\r
-            Version{"33.1"}\r
+            Version{"34"}\r
         }\r
     }\r
 }\r
index 6d1e795..c05fe07 100644 (file)
@@ -283,7 +283,7 @@ ko{
                 "&ᅩᅣᅵ"\r
                 "=ᆧ"\r
             }\r
-            Version{"33.1"}\r
+            Version{"34"}\r
         }\r
         searchjl{\r
             Sequence{\r
@@ -378,7 +378,7 @@ ko{
                 "&\u1109\u1109=\u110A<<<\u3146"\r
                 "&\u110C\u110C=\u110D<<<\u3149"\r
             }\r
-            Version{"33.1"}\r
+            Version{"34"}\r
         }\r
         standard{\r
             Sequence{\r
@@ -862,14 +862,14 @@ ko{
                 "&희<<*僖凞喜噫囍姬嬉希憙憘戱晞曦熙熹熺犧禧稀羲咥唏嘻悕戲暿欷燹爔豨餼"\r
                 "&힐<<*詰犵纈襭頡黠"\r
             }\r
-            Version{"33.1"}\r
+            Version{"34"}\r
         }\r
         unihan{\r
             Sequence{\r
                 "[import und-u-co-private-unihan]"\r
                 "[reorder Hang Hani]"\r
             }\r
-            Version{"33.1"}\r
+            Version{"34"}\r
         }\r
     }\r
 }\r
index 305cf9c..fc0deec 100644 (file)
@@ -11,7 +11,7 @@ kok{
                 "&ह<ळ"\r
                 "<क्ष"\r
             }\r
-            Version{"33.1"}\r
+            Version{"34"}\r
         }\r
     }\r
 }\r
diff --git a/source/data/coll/ku.txt b/source/data/coll/ku.txt
new file mode 100644 (file)
index 0000000..158074e
--- /dev/null
@@ -0,0 +1,21 @@
+// © 2016 and later: Unicode, Inc. and others.\r
+// License & terms of use: http://www.unicode.org/copyright.html#License\r
+ku{\r
+    Version{"2.1.44.82"}\r
+    collations{\r
+        standard{\r
+            Sequence{\r
+                "[reorder Latn Arab]"\r
+                "&c<ç<<<Ç"\r
+                "&e<ê<<<Ê"\r
+                "&i<î<<<Î"\r
+                "&s<ş<<<Ş"\r
+                "&u<û<<<Û"\r
+                "&ê<<é<<<É"\r
+                "&î<<í<<<Í"\r
+                "&û<<ú<<<Ú"\r
+            }\r
+            Version{"34"}\r
+        }\r
+    }\r
+}\r
index e2035f1..b37b3a4 100644 (file)
@@ -8,7 +8,7 @@ ky{
                 "[reorder Cyrl]"\r
                 "&е<ё<<<Ё"\r
             }\r
-            Version{"33.1"}\r
+            Version{"34"}\r
         }\r
     }\r
 }\r
index 8eb3f75..f1ed391 100644 (file)
@@ -11,7 +11,7 @@ lkt{
                 "&S<š<<<Š"\r
                 "&Z<ž<<<Ž"\r
             }\r
-            Version{"33.1"}\r
+            Version{"34"}\r
         }\r
     }\r
 }\r
index 767214f..38b4361 100644 (file)
@@ -16,14 +16,14 @@ ln{
                 "&S<sh<<<sH<<<Sh<<<SH"\r
                 "&T<ts<<<tS<<<Ts<<<TS"\r
             }\r
-            Version{"33.1"}\r
+            Version{"34"}\r
         }\r
         standard{\r
             Sequence{\r
                 "&E<ɛ<<<Ɛ"\r
                 "&O<<ɔ<<<Ɔ"\r
             }\r
-            Version{"33.1"}\r
+            Version{"34"}\r
         }\r
     }\r
 }\r
index 6463b23..5d4b68a 100644 (file)
@@ -5,7 +5,7 @@ lo{
     collations{\r
         standard{\r
             Sequence{"[reorder Laoo]"}\r
-            Version{"33.1"}\r
+            Version{"34"}\r
         }\r
     }\r
 }\r
index 4e35324..6421aeb 100644 (file)
@@ -16,7 +16,7 @@ lt{
                 "&U<<ų<<<Ų<<ū<<<Ū"\r
                 "&Z<ž<<<Ž"\r
             }\r
-            Version{"33.1"}\r
+            Version{"34"}\r
         }\r
     }\r
 }\r
index a68ff56..3cc834f 100644 (file)
@@ -15,7 +15,7 @@ lv{
                 "&[before 1]T<š<<<Š"\r
                 "&[before 1]Ʒ<ž<<<Ž"\r
             }\r
-            Version{"33.1"}\r
+            Version{"34"}\r
         }\r
     }\r
 }\r
index 034555a..fd5feea 100644 (file)
@@ -10,7 +10,7 @@ mk{
                 "&ԃ<ѓ<<<Ѓ"\r
                 "&ћ<ќ<<<Ќ"\r
             }\r
-            Version{"33.1"}\r
+            Version{"34"}\r
         }\r
     }\r
 }\r
index 059a030..a9a6aae 100644 (file)
@@ -17,7 +17,7 @@ ml{
                 "&മ്<<ം"\r
                 "&ന്<<<ൻ്"\r
             }\r
-            Version{"33.1"}\r
+            Version{"34"}\r
         }\r
     }\r
 }\r
index 71e36d9..6386c43 100644 (file)
@@ -5,7 +5,7 @@ mn{
     collations{\r
         standard{\r
             Sequence{"[reorder Cyrl Mong]"}\r
-            Version{"33.1"}\r
+            Version{"34"}\r
         }\r
     }\r
 }\r
index 5a5dfca..54dca97 100644 (file)
@@ -12,7 +12,7 @@ mr{
                 "<क्ष"\r
                 "<ज्ञ"\r
             }\r
-            Version{"33.1"}\r
+            Version{"34"}\r
         }\r
     }\r
 }\r
index 290c6c3..a66d7cb 100644 (file)
@@ -12,7 +12,7 @@ mt{
                 "&[before 1]i<ħ<<<Ħ"\r
                 "&[before 1]z<ż<<<Ż"\r
             }\r
-            Version{"33.1"}\r
+            Version{"34"}\r
         }\r
     }\r
 }\r
index 56266dd..ffa806b 100644 (file)
@@ -373,7 +373,7 @@ my{
                 "&ထမင်း=ထ္မင်း"\r
                 "&လက်ဘက်=လ္ဘက်"\r
             }\r
-            Version{"33.1"}\r
+            Version{"34"}\r
         }\r
     }\r
 }\r
index 1589383..478c949 100644 (file)
@@ -8,7 +8,7 @@ nb{
                 "[import und-u-co-search]"\r
                 "[import nb-u-co-standard]"\r
             }\r
-            Version{"33.1"}\r
+            Version{"34"}\r
         }\r
         standard{\r
             Sequence{\r
@@ -18,7 +18,7 @@ nb{
                 "&Y<<ü<<<Ü<<ű<<<Ű"\r
                 "&[before 1]ǀ<æ<<<Æ<<ä<<<Ä<<ę<<<Ę<ø<<<Ø<<ö<<<Ö<<ő<<<Ő<<œ<<<Œ<å<<<Å<<aa<<<Aa<<<AA"\r
             }\r
-            Version{"33.1"}\r
+            Version{"34"}\r
         }\r
     }\r
 }\r
index 7871061..958daac 100644 (file)
@@ -5,7 +5,7 @@ ne{
     collations{\r
         standard{\r
             Sequence{"[reorder Deva]"}\r
-            Version{"33.1"}\r
+            Version{"34"}\r
         }\r
     }\r
 }\r
index 0d7cfdb..cbaa718 100644 (file)
@@ -5,11 +5,11 @@ nn{
     collations{\r
         search{\r
             Sequence{"[import nb-u-co-search]"}\r
-            Version{"33.1"}\r
+            Version{"34"}\r
         }\r
         standard{\r
             Sequence{"[import nb-u-co-standard]"}\r
-            Version{"33.1"}\r
+            Version{"34"}\r
         }\r
     }\r
 }\r
index 0ff04ed..28b5cfe 100644 (file)
@@ -8,7 +8,7 @@ om{
                 "&Z<ch<<<Ch<<<CH<dh<<<Dh<<<DH<kh<<<Kh<<<KH<ny<<<Ny<<<NY<ph<<<Ph<<<PH<"\r
                 "sh<<<Sh"\r
             }\r
-            Version{"33.1"}\r
+            Version{"34"}\r
         }\r
     }\r
 }\r
index 4585dbc..a79c51c 100644 (file)
@@ -11,7 +11,7 @@ or{
                 "&ହ<କ୍ଷ"\r
                 "&ଯ<<ୟ"\r
             }\r
-            Version{"33.1"}\r
+            Version{"34"}\r
         }\r
     }\r
 }\r
index 3b7eb14..8ea7770 100644 (file)
@@ -10,7 +10,7 @@ pa{
                 "&ੱ<<ੰ<<ਂ<<ਁ<<਼"\r
                 "&ੜ<੍"\r
             }\r
-            Version{"33.1"}\r
+            Version{"34"}\r
         }\r
     }\r
 }\r
index 32d9732..a2c4cb0 100644 (file)
@@ -14,7 +14,7 @@ pl{
                 "&S<ś<<<Ś"\r
                 "&Z<ź<<<Ź<ż<<<Ż"\r
             }\r
-            Version{"33.1"}\r
+            Version{"34"}\r
         }\r
     }\r
 }\r
index 37498a6..b1667d2 100644 (file)
@@ -24,7 +24,7 @@ ps{
                 "&ی<<*ىےيېۍ<<یٔ<<<ىٔ<<<ئ"\r
                 "&\u00A0<<\u200C<<\u200D"\r
             }\r
-            Version{"33.1"}\r
+            Version{"34"}\r
         }\r
     }\r
 }\r
index 05cb73b..d21ad4f 100644 (file)
@@ -10,7 +10,7 @@ ro{
                 "&S<ş=ș<<<Ş=Ș"\r
                 "&T<ţ=ț<<<Ţ=Ț"\r
             }\r
-            Version{"33.1"}\r
+            Version{"34"}\r
         }\r
     }\r
 }\r
index b0099fa..9a83d0e 100644 (file)
@@ -5,29 +5,70 @@
  */\r
 root{\r
     UCARules:process(uca_rules){"../unidata/UCARules.txt"}\r
-    Version{"2.1.41.72"}\r
+    Version{"2.1.44.66"}\r
     collations{\r
         default{"standard"}\r
         emoji{\r
             Sequence{\r
-                "& [last primary ignorable]<<*ð\9f\8f»ð\9f\8f¼ð\9f\8f½ð\9f\8f¾ð\9f\8f¿ð\9f¦°ð\9f¦±ð\9f¦³ð\9f¦²"\r
+                "& [last primary ignorable]<<*ð\9f¦°ð\9f¦±ð\9f¦³ð\9f¦²ð\9f\8f»ð\9f\8f¼ð\9f\8f½ð\9f\8f¾ð\9f\8f¿"\r
                 "& [before 1]﷑€"\r
-                "<*😀😁😂🤣😃😄😅😆😉😊😋😎😍😘🥰😗😙😚☺🙂🤗🤩"\r
-                "<*🤔🤨😐😑😶🙄😏😣😥😮🤐😯😪😫😴😌😛😜😝🤤😒😓😔😕🙃🤑😲"\r
-                "<*☹🙁😖😞😟😤😢😭😦😧😨😩🤯😬😰😱🥵🥶😳🤪😵😡😠🤬"\r
-                "<*😷🤒🤕🤢🤮🤧"\r
-                "<*😇🤠🥳🥴🥺🤥🤫🤭🧐🤓"\r
-                "<*😈👿🤡👹👺💀☠👻👽👾🤖💩"\r
+                "<*😀😃😄😁😆😅🤣😂🙂🙃😉😊😇"\r
+                "<*🥰😍🤩😘😗☺😚😙"\r
+                "<*😋😛😜🤪😝🤑"\r
+                "<*🤗🤭🤫🤔"\r
+                "<*🤐🤨😐😑😶😏😒🙄😬🤥"\r
+                "<*😌😔😪🤤😴"\r
+                "<*😷🤒🤕🤢🤮🤧🥵🥶🥴😵🤯"\r
+                "<*🤠🥳"\r
+                "<*😎🤓🧐"\r
+                "<*😕😟🙁☹😮😯😲😳🥺😦😧😨😰😥😢😭😱😖😣😞😓😩😫"\r
+                "<*😤😡😠🤬😈👿💀☠"\r
+                "<*💩🤡👹👺👻👽👾🤖"\r
                 "<*😺😸😹😻😼😽🙀😿😾"\r
                 "<*🙈🙉🙊"\r
-                "<*👶🧒👦👧🧑"\r
-                "<<👱"\r
+                "<*💋💌💘💝💖💗💓💞💕💟❣💔❤🧡💛💚💙💜🖤💯💢💥💫💦💨🕳💣💬"\r
+                "< 👁‍🗨 = 👁️‍🗨"\r
+                "<*🗨🗯💭💤"\r
+                "<*👋🤚🖐✋🖖"\r
+                "<*👌✌🤞🤟🤘🤙"\r
+                "<*👈👉👆🖕👇☝"\r
+                "<*👍👎✊👊🤛🤜"\r
+                "<*👏🙌👐🤲🤝🙏"\r
+                "<*✍💅🤳"\r
+                "<*💪🦵🦶👂👃🧠🦷🦴👀👁👅👄"\r
+                "<*👶🧒👦👧🧑 <<👱"\r
                 "<*👨"\r
-                "< 👱‍♂ << 👱🏻‍♂ << 👱🏼‍♂ << 👱🏽‍♂ << 👱🏾‍♂ << 👱🏿‍♂"\r
-                "<<🧔"\r
+                "< 👱‍♂ << 👱🏻‍♂ << 👱🏼‍♂ << 👱🏽‍♂ << 👱🏾‍♂ << 👱🏿‍♂ <<🧔"\r
                 "<*👩"\r
                 "< 👱‍♀ << 👱🏻‍♀ << 👱🏼‍♀ << 👱🏽‍♀ << 👱🏾‍♀ << 👱🏿‍♀"\r
                 "<*🧓👴👵"\r
+                "<*🙍"\r
+                "< 🙍‍♂ << 🙍🏻‍♂ << 🙍🏼‍♂ << 🙍🏽‍♂ << 🙍🏾‍♂ << 🙍🏿‍♂"\r
+                "< 🙍‍♀ << 🙍🏻‍♀ << 🙍🏼‍♀ << 🙍🏽‍♀ << 🙍🏾‍♀ << 🙍🏿‍♀"\r
+                "<*🙎"\r
+                "< 🙎‍♂ << 🙎🏻‍♂ << 🙎🏼‍♂ << 🙎🏽‍♂ << 🙎🏾‍♂ << 🙎🏿‍♂"\r
+                "< 🙎‍♀ << 🙎🏻‍♀ << 🙎🏼‍♀ << 🙎🏽‍♀ << 🙎🏾‍♀ << 🙎🏿‍♀"\r
+                "<*🙅"\r
+                "< 🙅‍♂ << 🙅🏻‍♂ << 🙅🏼‍♂ << 🙅🏽‍♂ << 🙅🏾‍♂ << 🙅🏿‍♂"\r
+                "< 🙅‍♀ << 🙅🏻‍♀ << 🙅🏼‍♀ << 🙅🏽‍♀ << 🙅🏾‍♀ << 🙅🏿‍♀"\r
+                "<*🙆"\r
+                "< 🙆‍♂ << 🙆🏻‍♂ << 🙆🏼‍♂ << 🙆🏽‍♂ << 🙆🏾‍♂ << 🙆🏿‍♂"\r
+                "< 🙆‍♀ << 🙆🏻‍♀ << 🙆🏼‍♀ << 🙆🏽‍♀ << 🙆🏾‍♀ << 🙆🏿‍♀"\r
+                "<*💁"\r
+                "< 💁‍♂ << 💁🏻‍♂ << 💁🏼‍♂ << 💁🏽‍♂ << 💁🏾‍♂ << 💁🏿‍♂"\r
+                "< 💁‍♀ << 💁🏻‍♀ << 💁🏼‍♀ << 💁🏽‍♀ << 💁🏾‍♀ << 💁🏿‍♀"\r
+                "<*🙋"\r
+                "< 🙋‍♂ << 🙋🏻‍♂ << 🙋🏼‍♂ << 🙋🏽‍♂ << 🙋🏾‍♂ << 🙋🏿‍♂"\r
+                "< 🙋‍♀ << 🙋🏻‍♀ << 🙋🏼‍♀ << 🙋🏽‍♀ << 🙋🏾‍♀ << 🙋🏿‍♀"\r
+                "<*🙇"\r
+                "< 🙇‍♂ << 🙇🏻‍♂ << 🙇🏼‍♂ << 🙇🏽‍♂ << 🙇🏾‍♂ << 🙇🏿‍♂"\r
+                "< 🙇‍♀ << 🙇🏻‍♀ << 🙇🏼‍♀ << 🙇🏽‍♀ << 🙇🏾‍♀ << 🙇🏿‍♀"\r
+                "<*🤦"\r
+                "< 🤦‍♂ << 🤦🏻‍♂ << 🤦🏼‍♂ << 🤦🏽‍♂ << 🤦🏾‍♂ << 🤦🏿‍♂"\r
+                "< 🤦‍♀ << 🤦🏻‍♀ << 🤦🏼‍♀ << 🤦🏽‍♀ << 🤦🏾‍♀ << 🤦🏿‍♀"\r
+                "<*🤷"\r
+                "< 🤷‍♂ << 🤷🏻‍♂ << 🤷🏼‍♂ << 🤷🏽‍♂ << 🤷🏾‍♂ << 🤷🏿‍♂"\r
+                "< 🤷‍♀ << 🤷🏻‍♀ << 🤷🏼‍♀ << 🤷🏽‍♀ << 🤷🏾‍♀ << 🤷🏿‍♀"\r
                 "< 🧑‍⚕ << 🧑🏻‍⚕ << 🧑🏼‍⚕ << 🧑🏽‍⚕ << 🧑🏾‍⚕ << 🧑🏿‍⚕"\r
                 "< 👨‍⚕ << 👨🏻‍⚕ << 👨🏼‍⚕ << 👨🏽‍⚕ << 👨🏾‍⚕ << 👨🏿‍⚕"\r
                 "< 👩‍⚕ << 👩🏻‍⚕ << 👩🏼‍⚕ << 👩🏽‍⚕ << 👩🏾‍⚕ << 👩🏿‍⚕"\r
@@ -93,59 +134,32 @@ root{
                 "< 👳‍♀ << 👳🏻‍♀ << 👳🏼‍♀ << 👳🏽‍♀ << 👳🏾‍♀ << 👳🏿‍♀"\r
                 "<*👲🧕🤵👰🤰🤱"\r
                 "<*👼🎅🤶🦸"\r
-                "< 🦸‍♀ << 🦸🏻‍♀ << 🦸🏼‍♀ << 🦸🏽‍♀ << 🦸🏾‍♀ << 🦸🏿‍♀"\r
                 "< 🦸‍♂ << 🦸🏻‍♂ << 🦸🏼‍♂ << 🦸🏽‍♂ << 🦸🏾‍♂ << 🦸🏿‍♂"\r
+                "< 🦸‍♀ << 🦸🏻‍♀ << 🦸🏼‍♀ << 🦸🏽‍♀ << 🦸🏾‍♀ << 🦸🏿‍♀"\r
                 "<*🦹"\r
-                "< 🦹‍♀ << 🦹🏻‍♀ << 🦹🏼‍♀ << 🦹🏽‍♀ << 🦹🏾‍♀ << 🦹🏿‍♀"\r
                 "< 🦹‍♂ << 🦹🏻‍♂ << 🦹🏼‍♂ << 🦹🏽‍♂ << 🦹🏾‍♂ << 🦹🏿‍♂"\r
+                "< 🦹‍♀ << 🦹🏻‍♀ << 🦹🏼‍♀ << 🦹🏽‍♀ << 🦹🏾‍♀ << 🦹🏿‍♀"\r
                 "<*🧙"\r
-                "< 🧙‍♀ << 🧙🏻‍♀ << 🧙🏼‍♀ << 🧙🏽‍♀ << 🧙🏾‍♀ << 🧙🏿‍♀"\r
                 "< 🧙‍♂ << 🧙🏻‍♂ << 🧙🏼‍♂ << 🧙🏽‍♂ << 🧙🏾‍♂ << 🧙🏿‍♂"\r
+                "< 🧙‍♀ << 🧙🏻‍♀ << 🧙🏼‍♀ << 🧙🏽‍♀ << 🧙🏾‍♀ << 🧙🏿‍♀"\r
                 "<*🧚"\r
-                "< 🧚‍♀ << 🧚🏻‍♀ << 🧚🏼‍♀ << 🧚🏽‍♀ << 🧚🏾‍♀ << 🧚🏿‍♀"\r
                 "< 🧚‍♂ << 🧚🏻‍♂ << 🧚🏼‍♂ << 🧚🏽‍♂ << 🧚🏾‍♂ << 🧚🏿‍♂"\r
+                "< 🧚‍♀ << 🧚🏻‍♀ << 🧚🏼‍♀ << 🧚🏽‍♀ << 🧚🏾‍♀ << 🧚🏿‍♀"\r
                 "<*🧛"\r
-                "< 🧛‍♀ << 🧛🏻‍♀ << 🧛🏼‍♀ << 🧛🏽‍♀ << 🧛🏾‍♀ << 🧛🏿‍♀"\r
                 "< 🧛‍♂ << 🧛🏻‍♂ << 🧛🏼‍♂ << 🧛🏽‍♂ << 🧛🏾‍♂ << 🧛🏿‍♂"\r
+                "< 🧛‍♀ << 🧛🏻‍♀ << 🧛🏼‍♀ << 🧛🏽‍♀ << 🧛🏾‍♀ << 🧛🏿‍♀"\r
                 "<*🧜"\r
-                "< 🧜‍♀ << 🧜🏻‍♀ << 🧜🏼‍♀ << 🧜🏽‍♀ << 🧜🏾‍♀ << 🧜🏿‍♀"\r
                 "< 🧜‍♂ << 🧜🏻‍♂ << 🧜🏼‍♂ << 🧜🏽‍♂ << 🧜🏾‍♂ << 🧜🏿‍♂"\r
+                "< 🧜‍♀ << 🧜🏻‍♀ << 🧜🏼‍♀ << 🧜🏽‍♀ << 🧜🏾‍♀ << 🧜🏿‍♀"\r
                 "<*🧝"\r
-                "< 🧝‍♀ << 🧝🏻‍♀ << 🧝🏼‍♀ << 🧝🏽‍♀ << 🧝🏾‍♀ << 🧝🏿‍♀"\r
                 "< 🧝‍♂ << 🧝🏻‍♂ << 🧝🏼‍♂ << 🧝🏽‍♂ << 🧝🏾‍♂ << 🧝🏿‍♂"\r
+                "< 🧝‍♀ << 🧝🏻‍♀ << 🧝🏼‍♀ << 🧝🏽‍♀ << 🧝🏾‍♀ << 🧝🏿‍♀"\r
                 "<*🧞"\r
-                "< 🧞‍♀"\r
                 "< 🧞‍♂"\r
+                "< 🧞‍♀"\r
                 "<*🧟"\r
-                "< 🧟‍♀"\r
                 "< 🧟‍♂"\r
-                "<*🙍"\r
-                "< 🙍‍♂ << 🙍🏻‍♂ << 🙍🏼‍♂ << 🙍🏽‍♂ << 🙍🏾‍♂ << 🙍🏿‍♂"\r
-                "< 🙍‍♀ << 🙍🏻‍♀ << 🙍🏼‍♀ << 🙍🏽‍♀ << 🙍🏾‍♀ << 🙍🏿‍♀"\r
-                "<*🙎"\r
-                "< 🙎‍♂ << 🙎🏻‍♂ << 🙎🏼‍♂ << 🙎🏽‍♂ << 🙎🏾‍♂ << 🙎🏿‍♂"\r
-                "< 🙎‍♀ << 🙎🏻‍♀ << 🙎🏼‍♀ << 🙎🏽‍♀ << 🙎🏾‍♀ << 🙎🏿‍♀"\r
-                "<*🙅"\r
-                "< 🙅‍♂ << 🙅🏻‍♂ << 🙅🏼‍♂ << 🙅🏽‍♂ << 🙅🏾‍♂ << 🙅🏿‍♂"\r
-                "< 🙅‍♀ << 🙅🏻‍♀ << 🙅🏼‍♀ << 🙅🏽‍♀ << 🙅🏾‍♀ << 🙅🏿‍♀"\r
-                "<*🙆"\r
-                "< 🙆‍♂ << 🙆🏻‍♂ << 🙆🏼‍♂ << 🙆🏽‍♂ << 🙆🏾‍♂ << 🙆🏿‍♂"\r
-                "< 🙆‍♀ << 🙆🏻‍♀ << 🙆🏼‍♀ << 🙆🏽‍♀ << 🙆🏾‍♀ << 🙆🏿‍♀"\r
-                "<*💁"\r
-                "< 💁‍♂ << 💁🏻‍♂ << 💁🏼‍♂ << 💁🏽‍♂ << 💁🏾‍♂ << 💁🏿‍♂"\r
-                "< 💁‍♀ << 💁🏻‍♀ << 💁🏼‍♀ << 💁🏽‍♀ << 💁🏾‍♀ << 💁🏿‍♀"\r
-                "<*🙋"\r
-                "< 🙋‍♂ << 🙋🏻‍♂ << 🙋🏼‍♂ << 🙋🏽‍♂ << 🙋🏾‍♂ << 🙋🏿‍♂"\r
-                "< 🙋‍♀ << 🙋🏻‍♀ << 🙋🏼‍♀ << 🙋🏽‍♀ << 🙋🏾‍♀ << 🙋🏿‍♀"\r
-                "<*🙇"\r
-                "< 🙇‍♂ << 🙇🏻‍♂ << 🙇🏼‍♂ << 🙇🏽‍♂ << 🙇🏾‍♂ << 🙇🏿‍♂"\r
-                "< 🙇‍♀ << 🙇🏻‍♀ << 🙇🏼‍♀ << 🙇🏽‍♀ << 🙇🏾‍♀ << 🙇🏿‍♀"\r
-                "<*🤦"\r
-                "< 🤦‍♂ << 🤦🏻‍♂ << 🤦🏼‍♂ << 🤦🏽‍♂ << 🤦🏾‍♂ << 🤦🏿‍♂"\r
-                "< 🤦‍♀ << 🤦🏻‍♀ << 🤦🏼‍♀ << 🤦🏽‍♀ << 🤦🏾‍♀ << 🤦🏿‍♀"\r
-                "<*🤷"\r
-                "< 🤷‍♂ << 🤷🏻‍♂ << 🤷🏼‍♂ << 🤷🏽‍♂ << 🤷🏾‍♂ << 🤷🏿‍♂"\r
-                "< 🤷‍♀ << 🤷🏻‍♀ << 🤷🏼‍♀ << 🤷🏽‍♀ << 🤷🏾‍♀ << 🤷🏿‍♀"\r
+                "< 🧟‍♀"\r
                 "<*💆"\r
                 "< 💆‍♂ << 💆🏻‍♂ << 💆🏼‍♂ << 💆🏽‍♂ << 💆🏾‍♂ << 💆🏿‍♂"\r
                 "< 💆‍♀ << 💆🏻‍♀ << 💆🏼‍♀ << 💆🏽‍♀ << 💆🏾‍♀ << 💆🏿‍♀"\r
@@ -158,19 +172,15 @@ root{
                 "<*🏃"\r
                 "< 🏃‍♂ << 🏃🏻‍♂ << 🏃🏼‍♂ << 🏃🏽‍♂ << 🏃🏾‍♂ << 🏃🏿‍♂"\r
                 "< 🏃‍♀ << 🏃🏻‍♀ << 🏃🏼‍♀ << 🏃🏽‍♀ << 🏃🏾‍♀ << 🏃🏿‍♀"\r
-                "<*💃🕺👯"\r
+                "<*ð\9f\92\83ð\9f\95ºð\9f\95´ð\9f\91¯"\r
                 "< 👯‍♂"\r
                 "< 👯‍♀"\r
                 "<*🧖"\r
-                "< 🧖‍♀ << 🧖🏻‍♀ << 🧖🏼‍♀ << 🧖🏽‍♀ << 🧖🏾‍♀ << 🧖🏿‍♀"\r
                 "< 🧖‍♂ << 🧖🏻‍♂ << 🧖🏼‍♂ << 🧖🏽‍♂ << 🧖🏾‍♂ << 🧖🏿‍♂"\r
+                "< 🧖‍♀ << 🧖🏻‍♀ << 🧖🏼‍♀ << 🧖🏽‍♀ << 🧖🏾‍♀ << 🧖🏿‍♀"\r
                 "<*🧗"\r
-                "< 🧗‍♀ << 🧗🏻‍♀ << 🧗🏼‍♀ << 🧗🏽‍♀ << 🧗🏾‍♀ << 🧗🏿‍♀"\r
                 "< 🧗‍♂ << 🧗🏻‍♂ << 🧗🏼‍♂ << 🧗🏽‍♂ << 🧗🏾‍♂ << 🧗🏿‍♂"\r
-                "<*🧘"\r
-                "< 🧘‍♀ << 🧘🏻‍♀ << 🧘🏼‍♀ << 🧘🏽‍♀ << 🧘🏾‍♀ << 🧘🏿‍♀"\r
-                "< 🧘‍♂ << 🧘🏻‍♂ << 🧘🏼‍♂ << 🧘🏽‍♂ << 🧘🏾‍♂ << 🧘🏿‍♂"\r
-                "<*🛀🛌🕴🗣👤👥"\r
+                "< 🧗‍♀ << 🧗🏻‍♀ << 🧗🏼‍♀ << 🧗🏽‍♀ << 🧗🏾‍♀ << 🧗🏿‍♀"\r
                 "<*🤺🏇⛷🏂🏌"\r
                 "< 🏌‍♂ = 🏌️‍♂ << 🏌🏻‍♂ << 🏌🏼‍♂ << 🏌🏽‍♂ << 🏌🏾‍♂ << 🏌🏿‍♂"\r
                 "< 🏌‍♀ = 🏌️‍♀ << 🏌🏻‍♀ << 🏌🏼‍♀ << 🏌🏽‍♀ << 🏌🏾‍♀ << 🏌🏿‍♀"\r
@@ -195,7 +205,7 @@ root{
                 "<*🚵"\r
                 "< 🚵‍♂ << 🚵🏻‍♂ << 🚵🏼‍♂ << 🚵🏽‍♂ << 🚵🏾‍♂ << 🚵🏿‍♂"\r
                 "< 🚵‍♀ << 🚵🏻‍♀ << 🚵🏼‍♀ << 🚵🏽‍♀ << 🚵🏾‍♀ << 🚵🏿‍♀"\r
-                "<*ð\9f\8f\8eð\9f\8f\8dð\9f¤¸"\r
+                "<*🤸"\r
                 "< 🤸‍♂ << 🤸🏻‍♂ << 🤸🏼‍♂ << 🤸🏽‍♂ << 🤸🏾‍♂ << 🤸🏿‍♂"\r
                 "< 🤸‍♀ << 🤸🏻‍♀ << 🤸🏼‍♀ << 🤸🏽‍♀ << 🤸🏾‍♀ << 🤸🏿‍♀"\r
                 "<*🤼"\r
@@ -210,6 +220,10 @@ root{
                 "<*🤹"\r
                 "< 🤹‍♂ << 🤹🏻‍♂ << 🤹🏼‍♂ << 🤹🏽‍♂ << 🤹🏾‍♂ << 🤹🏿‍♂"\r
                 "< 🤹‍♀ << 🤹🏻‍♀ << 🤹🏼‍♀ << 🤹🏽‍♀ << 🤹🏾‍♀ << 🤹🏿‍♀"\r
+                "<*🧘"\r
+                "< 🧘‍♂ << 🧘🏻‍♂ << 🧘🏼‍♂ << 🧘🏽‍♂ << 🧘🏾‍♂ << 🧘🏿‍♂"\r
+                "< 🧘‍♀ << 🧘🏻‍♀ << 🧘🏼‍♀ << 🧘🏽‍♀ << 🧘🏾‍♀ << 🧘🏿‍♀"\r
+                "<*🛀🛌"\r
                 "<*👫👬👭💏"\r
                 "< 👩‍❤‍💋‍👨 = 👩‍❤️‍💋‍👨"\r
                 "< 👨‍❤‍💋‍👨 = 👨‍❤️‍💋‍👨"\r
@@ -244,17 +258,14 @@ root{
                 "< 👩‍👧"\r
                 "< 👩‍👧‍👦"\r
                 "< 👩‍👧‍👧"\r
-                "<*🤳💪🦵🦶👈👉☝👆🖕👇✌🤞🖖🤘🤙🖐✋👌👍👎✊👊🤛🤜🤚👋🤟✍👏👐🙌🤲🙏🤝💅👂👃👣👀👁"\r
-                "< 👁‍🗨 = 👁️‍🗨"\r
-                "<*🧠🦴🦷👅👄"\r
+                "<*🗣👤👥👣"\r
                 "<*🦰🦱🦳🦲"\r
-                "<*💋💘💝💖💗💓💞💕💌❣💔❤🧡💛💚💙💜🖤💟💤💢💣💥💦💨💫💬🗨🗯💭🕳"\r
-                "<*👓🕶🥽🥼👔👕👖🧣🧤🧥🧦👗👘👙👚👛👜👝🛍🎒👞👟🥾🥿👠👡👢👑👒🎩🎓🧢⛑📿💄💍💎"\r
-                "<*🐵🐒🦍🐶🐕🐩🐺🦊🦝🐱🐈🦁🐯🐅🐆🐴🐎🦄🦓🦌🐮🐂🐃🐄🐷🐖🐗🐽🐏🐑🐐🐪🐫🦙🦒🐘🦏🦛🐭🐁🐀🐹🐰🐇🐿🦔🦇🐻🐨🐼🦘🦡🐾"\r
+                "<*♀♂"\r
+                "<*🐵🐒🦍🐶🐕🐩🐺🦊🦝🐱🐈🦁🐯🐅🐆🐴🐎🦄🦓🦌🐮🐂🐃🐄🐷🐖🐗🐽🐏🐑🐐🐪🐫🦙🦒🐘🦏🦛🐭🐁🐀🐹🐰🐇🐿🦔🦇🐻🐨🐼🦘🦡"\r
                 "<*🦃🐔🐓🐣🐤🐥🐦🐧🕊🦅🦆🦢🦉🦚🦜"\r
                 "<*🐸"\r
                 "<*🐊🐢🦎🐍🐲🐉🦕🦖"\r
-                "<*🐳🐋🐬🐟🐠🐡🦈🐙🐚🦀🦞🦐🦑"\r
+                "<*🐳🐋🐬🐟🐠🐡🦈🐙🐚"\r
                 "<*🐌🦋🐛🐜🐝🐞🦗🕷🕸🦂🦟🦠"\r
                 "<*💐🌸💮🏵🌹🥀🌺🌻🌼🌷"\r
                 "<*🌱🌲🌳🌴🌵🌾🌿☘🍀🍁🍂🍃"\r
@@ -262,6 +273,7 @@ root{
                 "<*🥑🍆🥔🥕🌽🌶🥒🥬🥦🍄🥜🌰"\r
                 "<*🍞🥐🥖🥨🥯🥞🧀🍖🍗🥩🥓🍔🍟🍕🌭🥪🌮🌯🥙🥚🍳🥘🍲🥣🥗🍿🧂🥫"\r
                 "<*🍱🍘🍙🍚🍛🍜🍝🍠🍢🍣🍤🍥🥮🍡🥟🥠🥡"\r
+                "<*🦀🦞🦐🦑"\r
                 "<*🍦🍧🍨🍩🍪🎂🍰🧁🥧🍫🍬🍭🍮🍯"\r
                 "<*🍼🥛☕🍵🍶🍾🍷🍸🍹🍺🍻🥂🥃🥤"\r
                 "<*🥢🍽🍴🥄🔪🏺"\r
@@ -270,7 +282,7 @@ root{
                 "<*🏟🏛🏗🧱🏘🏚🏠🏡🏢🏣🏤🏥🏦🏨🏩🏪🏫🏬🏭🏯🏰💒🗼🗽"\r
                 "<*⛪🕌🕍⛩🕋"\r
                 "<*⛲⛺🌁🌃🏙🌄🌅🌆🌇🌉♨🌌🎠🎡🎢💈🎪"\r
-                "<*ð\9f\9a\82ð\9f\9a\83ð\9f\9a\84ð\9f\9a\85ð\9f\9a\86ð\9f\9a\87ð\9f\9a\88ð\9f\9a\89ð\9f\9a\8að\9f\9a\9dð\9f\9a\9eð\9f\9a\8bð\9f\9a\8cð\9f\9a\8dð\9f\9a\8eð\9f\9a\90ð\9f\9a\91ð\9f\9a\92ð\9f\9a\93ð\9f\9a\94ð\9f\9a\95ð\9f\9a\96ð\9f\9a\97ð\9f\9a\98ð\9f\9a\99ð\9f\9a\9að\9f\9a\9bð\9f\9a\9cð\9f\9a²ð\9f\9b´ð\9f\9b¹ð\9f\9bµ🚏🛣🛤🛢⛽🚨🚥🚦🛑🚧"\r
+                "<*ð\9f\9a\82ð\9f\9a\83ð\9f\9a\84ð\9f\9a\85ð\9f\9a\86ð\9f\9a\87ð\9f\9a\88ð\9f\9a\89ð\9f\9a\8að\9f\9a\9dð\9f\9a\9eð\9f\9a\8bð\9f\9a\8cð\9f\9a\8dð\9f\9a\8eð\9f\9a\90ð\9f\9a\91ð\9f\9a\92ð\9f\9a\93ð\9f\9a\94ð\9f\9a\95ð\9f\9a\96ð\9f\9a\97ð\9f\9a\98ð\9f\9a\99ð\9f\9a\9að\9f\9a\9bð\9f\9a\9cð\9f\8f\8eð\9f\8f\8dð\9f\9bµð\9f\9a²ð\9f\9b´ð\9f\9b¹🚏🛣🛤🛢⛽🚨🚥🚦🛑🚧"\r
                 "<*⚓⛵🛶🚤🛳⛴🛥🚢"\r
                 "<*✈🛩🛫🛬💺🚁🚟🚠🚡🛰🚀🛸"\r
                 "<*🛎🧳"\r
@@ -281,6 +293,7 @@ root{
                 "<*⚽⚾🥎🏀🏐🏈🏉🎾🥏🎳🏏🏑🏒🥍🏓🏸🥊🥋🥅⛳⛸🎣🎽🎿🛷🥌"\r
                 "<*🎯🎱🔮🧿🎮🕹🎰🎲🧩🧸♠♥♦♣♟🃏🀄🎴"\r
                 "<*🎭🖼🎨🧵🧶"\r
+                "<*👓🕶🥽🥼👔👕👖🧣🧤🧥🧦👗👘👙👚👛👜👝🛍🎒👞👟🥾🥿👠👡👢👑👒🎩🎓🧢⛑📿💄💍💎"\r
                 "<*🔇🔈🔉🔊📢📣📯🔔🔕"\r
                 "<*🎼🎵🎶🎙🎚🎛🎤🎧📻"\r
                 "<*🎷🎸🎹🎺🎻🥁"\r
@@ -304,7 +317,7 @@ root{
                 "<*🛐⚛🕉✡☸☯✝☦☪☮🕎🔯"\r
                 "<*♈♉♊♋♌♍♎♏♐♑♒♓⛎"\r
                 "<*🔀🔁🔂▶⏩⏭⏯◀⏪⏮🔼⏫🔽⏬⏸⏹⏺⏏🎦🔅🔆📶📳📴"\r
-                "<*â\99\80â\99\82â\9a\95â\99¾â\99»â\9a\9cð\9f\94±ð\9f\93\9bð\9f\94°â­\95â\9c\85â\98\91â\9c\94â\9c\96â\9d\8câ\9d\8eâ\9e\95â\9e\96â\9e\97â\9e°â\9e¿ã\80½â\9c³â\9c´â\9d\87â\80¼â\81\89â\9d\93â\9d\94â\9d\95â\9d\97ã\80°Â©Â®â\84¢"\r
+                "<*⚕♾♻⚜🔱📛🔰⭕✅☑✔✖❌❎➕➖➗➰➿〽✳✴❇‼⁉❓❔❕❗〰©®™"\r
                 "< '#⃣' = '#️⃣'"\r
                 "< '*⃣' = '*️⃣'"\r
                 "< 0⃣ = 0️⃣"\r
@@ -318,7 +331,7 @@ root{
                 "< 8⃣ = 8️⃣"\r
                 "< 9⃣ = 9️⃣"\r
                 "<*🔟"\r
-                "<*ð\9f\92¯ð\9f\94 ð\9f\94¡ð\9f\94¢ð\9f\94£ð\9f\94¤ð\9f\85°ð\9f\86\8eð\9f\85±ð\9f\86\91ð\9f\86\92ð\9f\86\93â\84¹ð\9f\86\94â\93\82ð\9f\86\95ð\9f\86\96ð\9f\85¾ð\9f\86\97ð\9f\85¿ð\9f\86\98ð\9f\86\99ð\9f\86\9að\9f\88\81ð\9f\88\82ð\9f\88·ð\9f\88¶ð\9f\88¯ð\9f\89\90ð\9f\88¹ð\9f\88\9að\9f\88²ð\9f\89\91ð\9f\88¸ð\9f\88´ð\9f\88³ã\8a\97ã\8a\99ð\9f\88ºð\9f\88µ"\r
+                "<*🔠🔡🔢🔣🔤🅰🆎🅱🆑🆒🆓ℹ🆔Ⓜ🆕🆖🅾🆗🅿🆘🆙🆚🈁🈂🈷🈶🈯🉐🈹🈚🈲🉑🈸🈴🈳㊗㊙🈺🈵"\r
                 "<*🔴🔵⚪⚫⬜⬛◼◻◽◾▫▪🔶🔷🔸🔹🔺🔻💠🔘🔲🔳"\r
                 "<*🏁🚩🎌🏴🏳"\r
                 "< 🏳‍🌈 = 🏳️‍🌈"\r
@@ -328,7 +341,7 @@ root{
                 "< 🏴󠁧󠁢󠁳󠁣󠁴󠁿"\r
                 "< 🏴󠁧󠁢󠁷󠁬󠁳󠁿"\r
             }\r
-            Version{"33.1"}\r
+            Version{"34"}\r
         }\r
         eor{\r
             Sequence{\r
@@ -868,7 +881,7 @@ root{
                 "&ք"\r
                 "<և"\r
             }\r
-            Version{"33.1"}\r
+            Version{"34"}\r
         }\r
         private-unihan{\r
             Sequence{\r
@@ -1111,7 +1124,7 @@ root{
                 "&龟=\uFDD0龟"\r
                 "&龠=\uFDD0龠"\r
             }\r
-            Version{"33.1"}\r
+            Version{"34"}\r
         }\r
         search{\r
             Sequence{\r
@@ -1230,11 +1243,11 @@ root{
                 "&ᅳᅵ"\r
                 "=ᅴ"\r
             }\r
-            Version{"33.1"}\r
+            Version{"34"}\r
         }\r
         standard{\r
             Sequence{""}\r
-            Version{"33.1"}\r
+            Version{"34"}\r
         }\r
     }\r
     depends:process(dependency){"ucadata.icu"}\r
index e23b569..5d03604 100644 (file)
@@ -5,7 +5,7 @@ ru{
     collations{\r
         standard{\r
             Sequence{"[reorder Cyrl]"}\r
-            Version{"33.1"}\r
+            Version{"34"}\r
         }\r
     }\r
 }\r
index 5a02ae2..7773938 100644 (file)
@@ -8,7 +8,7 @@ se{
                 "[import und-u-co-search]"\r
                 "[import se-u-co-standard]"\r
             }\r
-            Version{"33.1"}\r
+            Version{"34"}\r
         }\r
         standard{\r
             Sequence{\r
@@ -53,7 +53,7 @@ se{
                 "<<<Ô<<ǫ"\r
                 "<<<Ǫ"\r
             }\r
-            Version{"33.1"}\r
+            Version{"34"}\r
         }\r
     }\r
 }\r
index 5fa37c7..fff4135 100644 (file)
@@ -10,7 +10,7 @@ si{
                 "&ඖ<ං<ඃ"\r
                 "&ජ්ඤ<<ඥ"\r
             }\r
-            Version{"33.1"}\r
+            Version{"34"}\r
         }\r
         standard{\r
             Sequence{\r
@@ -19,7 +19,7 @@ si{
                 "&ඖ<ං<ඃ"\r
                 "&ඥ<ඤ"\r
             }\r
-            Version{"33.1"}\r
+            Version{"34"}\r
         }\r
     }\r
 }\r
index 282b9e7..7268da6 100644 (file)
@@ -21,7 +21,7 @@ sk{
                 "&Y<ý<<<Ý"\r
                 "&Z<ž<<<Ž"\r
             }\r
-            Version{"33.1"}\r
+            Version{"34"}\r
         }\r
         standard{\r
             Sequence{\r
@@ -33,7 +33,7 @@ sk{
                 "&S<š<<<Š"\r
                 "&Z<ž<<<Ž"\r
             }\r
-            Version{"33.1"}\r
+            Version{"34"}\r
         }\r
     }\r
 }\r
index ff193a1..e86643c 100644 (file)
@@ -10,7 +10,7 @@ sl{
                 "&S<š<<<Š"\r
                 "&Z<ž<<<Ž"\r
             }\r
-            Version{"33.1"}\r
+            Version{"34"}\r
         }\r
     }\r
 }\r
index db317de..26f33f4 100644 (file)
@@ -8,7 +8,7 @@ smn{
                 "[import und-u-co-search]"\r
                 "[import smn-u-co-standard]"\r
             }\r
-            Version{"33.1"}\r
+            Version{"34"}\r
         }\r
         standard{\r
             Sequence{\r
@@ -19,7 +19,7 @@ smn{
                 "&S<š<<<Š"\r
                 "&Z<ž<<<Ž<æ<<<Æ<ø<<<Ø<å<<<Å<ã<<<Ã<ä<<<Ä<á<<<Á<ö<<<Ö"\r
             }\r
-            Version{"33.1"}\r
+            Version{"34"}\r
         }\r
     }\r
 }\r
index 910324a..bcf3c39 100644 (file)
@@ -17,7 +17,7 @@ sq{
                 "&[before 1]Y<xh<<<Xh<<<XH"\r
                 "&[before 1]Ʒ<zh<<<Zh<<<ZH"\r
             }\r
-            Version{"33.1"}\r
+            Version{"34"}\r
         }\r
     }\r
 }\r
index 2d281a8..1638b9a 100644 (file)
@@ -8,7 +8,7 @@ sr{
                 "[reorder Cyrl]"\r
                 "[suppressContractions [Ии]]"\r
             }\r
-            Version{"33.1"}\r
+            Version{"34"}\r
         }\r
     }\r
 }\r
index 162c1a7..3b2e78e 100644 (file)
@@ -5,11 +5,11 @@ sr_Latn{
     collations{\r
         search{\r
             Sequence{"[import hr-u-co-search]"}\r
-            Version{"33.1"}\r
+            Version{"34"}\r
         }\r
         standard{\r
             Sequence{"[import hr]"}\r
-            Version{"33.1"}\r
+            Version{"34"}\r
         }\r
     }\r
 }\r
index aa1ff57..4014f6d 100644 (file)
@@ -12,14 +12,14 @@ sv{
                 "&Y<<ü<<<Ü<<ű<<<Ű"\r
                 "&[before 1]ǀ<å<<<Å<ä<<<Ä<<æ<<<Æ<<ę<<<Ę<ö<<<Ö<<ø<<<Ø<<ő<<<Ő<<œ<<<Œ<<ô<<<Ô"\r
             }\r
-            Version{"33.1"}\r
+            Version{"34"}\r
         }\r
         search{\r
             Sequence{\r
                 "[import und-u-co-search]"\r
                 "[import sv-u-co-standard]"\r
             }\r
-            Version{"33.1"}\r
+            Version{"34"}\r
         }\r
         standard{\r
             Sequence{\r
@@ -30,7 +30,7 @@ sv{
                 "&Y<<ü<<<Ü<<ű<<<Ű"\r
                 "&[before 1]ǀ<å<<<Å<ä<<<Ä<<æ<<<Æ<<ę<<<Ę<ö<<<Ö<<ø<<<Ø<<ő<<<Ő<<œ<<<Œ<<ô<<<Ô"\r
             }\r
-            Version{"33.1"}\r
+            Version{"34"}\r
         }\r
     }\r
 }\r
index 0828bff..22eecca 100644 (file)
@@ -34,7 +34,7 @@ ta{
                 "&[before 1]ஹ<ஹ்"\r
                 "&[before 1]க்ஷ<க்ஷ்"\r
             }\r
-            Version{"33.1"}\r
+            Version{"34"}\r
         }\r
     }\r
 }\r
index 675106b..3050a7d 100644 (file)
@@ -9,7 +9,7 @@ te{
                 "[reorder Telu Deva Beng Guru Gujr Orya Taml Knda Mlym Sinh]"\r
                 "&ఔ<ఁ<ం<ః"\r
             }\r
-            Version{"33.1"}\r
+            Version{"34"}\r
         }\r
     }\r
 }\r
index c6a2010..b1969fd 100644 (file)
@@ -17,7 +17,7 @@ th{
                 "&ๅํ<<<ํๅ"\r
                 "&ไ<ฺ"\r
             }\r
-            Version{"33.1"}\r
+            Version{"34"}\r
         }\r
     }\r
 }\r
diff --git a/source/data/coll/tk.txt b/source/data/coll/tk.txt
new file mode 100644 (file)
index 0000000..55d0903
--- /dev/null
@@ -0,0 +1,20 @@
+// © 2016 and later: Unicode, Inc. and others.\r
+// License & terms of use: http://www.unicode.org/copyright.html#License\r
+tk{\r
+    Version{"2.1.19.14"}\r
+    collations{\r
+        standard{\r
+            Sequence{\r
+                "&C<ç<<<Ç"\r
+                "&E<ä<<<Ä"\r
+                "&J<ž<<<Ž"\r
+                "&N<ň<<<Ň"\r
+                "&O<ö<<<Ö"\r
+                "&S<ş<<<Ş"\r
+                "&U<ü<<<Ü"\r
+                "&Y<ý<<<Ý"\r
+            }\r
+            Version{"34"}\r
+        }\r
+    }\r
+}\r
index 66269f0..a1a1515 100644 (file)
@@ -13,7 +13,7 @@ to{
                 "&o<<ó<<<Ó<<ō<<<Ō"\r
                 "&u<<ú<<<Ú<<ū<<<Ū"\r
             }\r
-            Version{"33.1"}\r
+            Version{"34"}\r
         }\r
     }\r
 }\r
index 336df1e..dc08f0a 100644 (file)
@@ -8,7 +8,7 @@ tr{
                 "[import und-u-co-search]"\r
                 "[import tr-u-co-standard]"\r
             }\r
-            Version{"33.1"}\r
+            Version{"34"}\r
         }\r
         standard{\r
             Sequence{\r
@@ -20,7 +20,7 @@ tr{
                 "&S<ş<<<Ş"\r
                 "&U<ü<<<Ü"\r
             }\r
-            Version{"33.1"}\r
+            Version{"34"}\r
         }\r
     }\r
 }\r
index 6f67786..dd98db9 100644 (file)
@@ -10,7 +10,7 @@ ug{
                 "&ك<گ<ڭ<ل"\r
                 "&ھ<و<ۇ<ۆ<ۈ<ۋ<ې<ى<ي"\r
             }\r
-            Version{"33.1"}\r
+            Version{"34"}\r
         }\r
     }\r
 }\r
index 24e2e31..5a85fe8 100644 (file)
@@ -9,7 +9,7 @@ uk{
                 "&Г<ґ<<<Ґ"\r
                 "&ꙇ<ї<<<\uA676<<<Ї"\r
             }\r
-            Version{"33.1"}\r
+            Version{"34"}\r
         }\r
     }\r
 }\r
index 6d6e58b..27d9006 100644 (file)
@@ -12,7 +12,7 @@ ur{
                 "<<\u0651<<\u0658<<\u0653"\r
                 "&[last tertiary ignorable]<<<\u0610<<<\u0611<<<\u0613<<<\u0612<<<\u0614"\r
             }\r
-            Version{"33.1"}\r
+            Version{"34"}\r
         }\r
     }\r
 }\r
index 7621ef7..08fe06c 100644 (file)
@@ -10,7 +10,7 @@ uz{
                 "<sh<<<Sh<<<SH"\r
                 "<ch<<<Ch<<<CH"\r
             }\r
-            Version{"33.1"}\r
+            Version{"34"}\r
         }\r
     }\r
 }\r
index 941a822..534f901 100644 (file)
@@ -13,7 +13,7 @@ vi{
                 "&o<ô<<<Ô<ơ<<<Ơ"\r
                 "&u<ư<<<Ư"\r
             }\r
-            Version{"33.1"}\r
+            Version{"34"}\r
         }\r
         traditional{\r
             Sequence{\r
@@ -32,7 +32,7 @@ vi{
                 "&T<th<<<Th<<<TH<tr<<<Tr<<<TR"\r
                 "&u<ư<<<Ư"\r
             }\r
-            Version{"33.1"}\r
+            Version{"34"}\r
         }\r
     }\r
 }\r
index 544b45c..b571056 100644 (file)
@@ -11,7 +11,7 @@ wo{
                 "&N<ñ<<<Ñ<ŋ<<<Ŋ"\r
                 "&O<ó<<<Ó"\r
             }\r
-            Version{"33.1"}\r
+            Version{"34"}\r
         }\r
     }\r
 }\r
similarity index 77%
rename from source/data/locales/ff_CM.txt
rename to source/data/coll/xh.txt
index 80fc708..4a9ae19 100644 (file)
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
-ff_CM{\r
-    Version{"2.1.38.69"}\r
+xh{\r
+    Version{"2.1.44.82"}\r
 }\r
index 74f7de9..b041a63 100644 (file)
@@ -11,7 +11,7 @@ yi{
                 "‎&״"\r
                 "<<'\u0022'"\r
             }\r
-            Version{"33.1"}\r
+            Version{"34"}\r
         }\r
         standard{\r
             Sequence{\r
@@ -28,7 +28,7 @@ yi{
                 "&ש<שׂ"\r
                 "&[before 1]ת<תּ"\r
             }\r
-            Version{"33.1"}\r
+            Version{"34"}\r
         }\r
     }\r
 }\r
index 2f78011..5f1f73f 100644 (file)
@@ -11,7 +11,7 @@ yo{
                 "&O<ọ<<<Ọ"\r
                 "&S<ṣ<<<Ṣ"\r
             }\r
-            Version{"33.1"}\r
+            Version{"34"}\r
         }\r
     }\r
 }\r
index 14ca956..e48c8ad 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 zh{\r
-    Version{"2.1.41.48"}\r
+    Version{"2.1.41.30"}\r
     collations{\r
         big5han{\r
             Sequence{\r
@@ -9,7 +9,7 @@ zh{
                 "[reorder Latn Hani Bopo]"\r
                 "&[last regular]<*兙兛兞兝兡兣嗧瓩糎一乙丁七乃九了二人儿入八几刀刁力匕十卜又三下丈上丫丸凡久么也乞于亡兀刃勺千叉口土士夕大女子孑孓寸小尢尸山川工己已巳巾干廾弋弓才丑丐不中丰丹之尹予云井互五亢仁什仃仆仇仍今介仄元允內六兮公冗凶分切刈勻勾勿化匹午升卅卞厄友及反壬天夫太夭孔少尤尺屯巴幻廿弔引心戈戶手扎支文斗斤方日曰月木欠止歹毋比毛氏水火爪父爻片牙牛犬王丙世丕且丘主乍乏乎以付仔仕他仗代令仙仞充兄冉冊冬凹出凸刊加功包匆北匝仟半卉卡占卯卮去可古右召叮叩叨叼司叵叫另只史叱台句叭叻四囚外央失奴奶孕它尼巨巧左市布平幼弁弘弗必戊打扔扒扑斥旦朮本未末札正母民氐永汁汀氾犯玄玉瓜瓦甘生用甩田由甲申疋白皮皿目矛矢石示禾穴立丞丟乒乓乩亙交亦亥仿伉伙伊伕伍伐休伏仲件任仰仳份企伋光兇兆先全共再冰列刑划刎刖劣匈匡匠印危吉吏同吊吐吁吋各向名合吃后吆吒因回囝圳地在圭圬圯圩夙多夷夸妄奸妃好她如妁字存宇守宅安寺尖屹州帆并年式弛忙忖戎戌戍成扣扛托收早旨旬旭曲曳有朽朴朱朵次此死氖汝汗汙江池汐汕污汛汍汎灰牟牝百竹米糸缶羊羽老考而耒耳聿肉肋肌臣自至臼舌舛舟艮色艾虫血行衣西阡串亨位住佇佗佞伴佛何估佐佑伽伺伸佃佔似但佣作你伯低伶余佝佈佚兌克免兵冶冷別判利刪刨劫助努劬匣即卵吝吭吞吾否呎吧呆呃吳呈呂君吩告吹吻吸吮吵吶吠吼呀吱含吟听囪困囤囫坊坑址坍均坎圾坐坏圻壯夾妝妒妨妞妣妙妖妍妤妓妊妥孝孜孚孛完宋宏尬局屁尿尾岐岑岔岌巫希序庇床廷弄弟彤形彷役忘忌志忍忱快忸忪戒我抄抗抖技扶抉扭把扼找批扳抒扯折扮投抓抑抆改攻攸旱更束李杏材村杜杖杞杉杆杠杓杗步每求汞沙沁沈沉沅沛汪決沐汰沌汨沖沒汽沃汲汾汴沆汶沍沔沘沂灶灼災灸牢牡牠狄狂玖甬甫男甸皂盯矣私秀禿究系罕肖肓肝肘肛肚育良芒芋芍見角言谷豆豕貝赤走足身車辛辰迂迆迅迄巡邑邢邪邦那酉釆里防阮阱阪阬並乖乳事些亞享京佯依侍佳使佬供例來侃佰併侈佩佻侖佾侏侑佺兔兒兕兩具其典冽函刻券刷刺到刮制剁劾劻卒協卓卑卦卷卸卹取叔受味呵咖呸咕咀呻呷咄咒咆呼咐呱呶和咚呢周咋命咎固垃坷坪坩坡坦坤坼夜奉奇奈奄奔妾妻委妹妮姑姆姐姍始姓姊妯妳姒姅孟孤季宗定官宜宙宛尚屈居屆岷岡岸岩岫岱岳帘帚帖帕帛帑幸庚店府底庖延弦弧弩往征彿彼忝忠忽念忿怏怔怯怵怖怪怕怡性怩怫怛或戕房戾所承拉拌拄抿拂抹拒招披拓拔拋拈抨抽押拐拙拇拍抵拚抱拘拖拗拆抬拎放斧於旺昔易昌昆昂明昀昏昕昊昇服朋杭枋枕東果杳杷枇枝林杯杰板枉松析杵枚枓杼杪杲欣武歧歿氓氛泣注泳沱泌泥河沽沾沼波沫法泓沸泄油況沮泗泅泱沿治泡泛泊沬泯泜泖泠炕炎炒炊炙爬爭爸版牧物狀狎狙狗狐玩玨玟玫玥甽疝疙疚的盂盲直知矽社祀祁秉秈空穹竺糾罔羌羋者肺肥肢肱股肫肩肴肪肯臥臾舍芳芝芙芭芽芟芹花芬芥芯芸芣芰芾芷虎虱初表軋迎返近邵邸邱邶采金長門阜陀阿阻附陂隹雨青非亟亭亮信侵侯便俠俑俏保促侶俘俟俊俗侮俐俄係俚俎俞侷兗冒冑冠剎剃削前剌剋則勇勉勃勁匍南卻厚叛咬哀咨哎哉咸咦咳哇哂咽咪品哄哈咯咫咱咻咩咧咿囿垂型垠垣垢城垮垓奕契奏奎奐姜姘姿姣姨娃姥姪姚姦威姻孩宣宦室客宥封屎屏屍屋峙峒巷帝帥帟幽庠度建弈弭彥很待徊律徇後徉怒思怠急怎怨恍恰恨恢恆恃恬恫恪恤扁拜挖按拼拭持拮拽指拱拷拯括拾拴挑挂政故斫施既春昭映昧是星昨昱昤曷柿染柱柔某柬架枯柵柩柯柄柑枴柚查枸柏柞柳枰柙柢柝柒歪殃殆段毒毗氟泉洋洲洪流津洌洱洞洗活洽派洶洛泵洹洧洸洩洮洵洎洫炫為炳炬炯炭炸炮炤爰牲牯牴狩狠狡玷珊玻玲珍珀玳甚甭畏界畎畋疫疤疥疢疣癸皆皇皈盈盆盃盅省盹相眉看盾盼眇矜砂研砌砍祆祉祈祇禹禺科秒秋穿突竿竽籽紂紅紀紉紇約紆缸美羿耄耐耍耑耶胖胥胚胃胄背胡胛胎胞胤胝致舢苧范茅苣苛苦茄若茂茉苒苗英茁苜苔苑苞苓苟苯茆虐虹虻虺衍衫要觔計訂訃貞負赴赳趴軍軌述迦迢迪迥迭迫迤迨郊郎郁郃酋酊重閂限陋陌降面革韋韭音頁風飛食首香乘亳倌倍倣俯倦倥俸倩倖倆值借倚倒們俺倀倔倨俱倡個候倘俳修倭倪俾倫倉兼冤冥冢凍凌准凋剖剜剔剛剝匪卿原厝叟哨唐唁唷哼哥哲唆哺唔哩哭員唉哮哪哦唧唇哽唏圃圄埂埔埋埃堉夏套奘奚娑娘娜娟娛娓姬娠娣娩娥娌娉孫屘宰害家宴宮宵容宸射屑展屐峭峽峻峪峨峰島崁峴差席師庫庭座弱徒徑徐恙恣恥恐恕恭恩息悄悟悚悍悔悌悅悖扇拳挈拿捎挾振捕捂捆捏捉挺捐挽挪挫挨捍捌效敉料旁旅時晉晏晃晒晌晅晁書朔朕朗校核案框桓根桂桔栩梳栗桌桑栽柴桐桀格桃株桅栓栘桁殊殉殷氣氧氨氦氤泰浪涕消涇浦浸海浙涓浬涉浮浚浴浩涌涊浹涅浥涔烊烘烤烙烈烏爹特狼狹狽狸狷玆班琉珮珠珪珞畔畝畜畚留疾病症疲疳疽疼疹痂疸皋皰益盍盎眩真眠眨矩砰砧砸砝破砷砥砭砠砟砲祕祐祠祟祖神祝祗祚秤秣秧租秦秩秘窄窈站笆笑粉紡紗紋紊素索純紐紕級紜納紙紛缺罟羔翅翁耆耘耕耙耗耽耿胱脂胰脅胭胴脆胸胳脈能脊胼胯臭臬舀舐航舫舨般芻茫荒荔荊茸荐草茵茴荏茲茹茶茗荀茱茨荃虔蚊蚪蚓蚤蚩蚌蚣蚜衰衷袁袂衽衹記訐討訌訕訊託訓訖訏訑豈豺豹財貢起躬軒軔軏辱送逆迷退迺迴逃追逅迸邕郡郝郢酒配酌釘針釗釜釙閃院陣陡陛陝除陘陞隻飢馬骨高鬥鬲鬼乾偺偽停假偃偌做偉健偶偎偕偵側偷偏倏偯偭兜冕凰剪副勒務勘動匐匏匙匿區匾參曼商啪啦啄啞啡啃啊唱啖問啕唯啤唸售啜唬啣唳啁啗圈國圉域堅堊堆埠埤基堂堵執培夠奢娶婁婉婦婪婀娼婢婚婆婊孰寇寅寄寂宿密尉專將屠屜屝崇崆崎崛崖崢崑崩崔崙崤崧崗巢常帶帳帷康庸庶庵庾張強彗彬彩彫得徙從徘御徠徜恿患悉悠您惋悴惦悽情悻悵惜悼惘惕惆惟悸惚惇戚戛扈掠控捲掖探接捷捧掘措捱掩掉掃掛捫推掄授掙採掬排掏掀捻捩捨捺敝敖救教敗啟敏敘敕敔斜斛斬族旋旌旎晝晚晤晨晦晞曹勗望梁梯梢梓梵桿桶梱梧梗械梃棄梭梆梅梔條梨梟梡梂欲殺毫毬氫涎涼淳淙液淡淌淤添淺清淇淋涯淑涮淞淹涸混淵淅淒渚涵淚淫淘淪深淮淨淆淄涪淬涿淦烹焉焊烽烯爽牽犁猜猛猖猓猙率琅琊球理現琍瓠瓶瓷甜產略畦畢異疏痔痕疵痊痍皎盔盒盛眷眾眼眶眸眺硫硃硎祥票祭移窒窕笠笨笛第符笙笞笮粒粗粕絆絃統紮紹紼絀細紳組累終紲紱缽羞羚翌翎習耜聊聆脯脖脣脫脩脰脤舂舵舷舶船莎莞莘荸莢莖莽莫莒莊莓莉莠荷荻荼莆莧處彪蛇蛀蚶蛄蚵蛆蛋蚱蚯蛉術袞袈被袒袖袍袋覓規訪訝訣訥許設訟訛訢豉豚販責貫貨貪貧赧赦趾趺軛軟這逍通逗連速逝逐逕逞造透逢逖逛途部郭都酗野釵釦釣釧釭釩閉陪陵陳陸陰陴陶陷陬雀雪雩章竟頂頃魚鳥鹵鹿麥麻傢傍傅備傑傀傖傘傚最凱割剴創剩勞勝勛博厥啻喀喧啼喊喝喘喂喜喪喔喇喋喃喳單喟唾喲喚喻喬喱啾喉喫喙圍堯堪場堤堰報堡堝堠壹壺奠婷媚婿媒媛媧孳孱寒富寓寐尊尋就嵌嵐崴嵇巽幅帽幀幃幾廊廁廂廄弼彭復循徨惑惡悲悶惠愜愣惺愕惰惻惴慨惱愎惶愉愀愒戟扉掣掌描揀揩揉揆揍插揣提握揖揭揮捶援揪換摒揚揹敞敦敢散斑斐斯普晰晴晶景暑智晾晷曾替期朝棺棕棠棘棗椅棟棵森棧棹棒棲棣棋棍植椒椎棉棚楮棻款欺欽殘殖殼毯氮氯氬港游湔渡渲湧湊渠渥渣減湛湘渤湖湮渭渦湯渴湍渺測湃渝渾滋溉渙湎湣湄湲湩湟焙焚焦焰無然煮焜牌犄犀猶猥猴猩琺琪琳琢琥琵琶琴琯琛琦琨甥甦畫番痢痛痣痙痘痞痠登發皖皓皴盜睏短硝硬硯稍稈程稅稀窘窗窖童竣等策筆筐筒答筍筋筏筑粟粥絞結絨絕紫絮絲絡給絢絰絳善翔翕耋聒肅腕腔腋腑腎脹腆脾腌腓腴舒舜菩萃菸萍菠菅萋菁華菱菴著萊菰萌菌菽菲菊萸萎萄菜萇菔菟虛蛟蛙蛭蛔蛛蛤蛐蛞街裁裂袱覃視註詠評詞証詁詔詛詐詆訴診訶詖象貂貯貼貳貽賁費賀貴買貶貿貸越超趁跎距跋跚跑跌跛跆軻軸軼辜逮逵週逸進逶鄂郵鄉郾酣酥量鈔鈕鈣鈉鈞鈍鈐鈇鈑閔閏開閑間閒閎隊階隋陽隅隆隍陲隄雁雅雄集雇雯雲韌項順須飧飪飯飩飲飭馮馭黃黍黑亂傭債傲傳僅傾催傷傻傯僇剿剷剽募勦勤勢勣匯嗟嗨嗓嗦嗎嗜嗇嗑嗣嗤嗯嗚嗡嗅嗆嗥嗉園圓塞塑塘塗塚塔填塌塭塊塢塒塋奧嫁嫉嫌媾媽媼媳嫂媲嵩嵯幌幹廉廈弒彙徬微愚意慈感想愛惹愁愈慎慌慄慍愾愴愧愍愆愷戡戢搓搾搞搪搭搽搬搏搜搔損搶搖搗搆敬斟新暗暉暇暈暖暄暘暍會榔業楚楷楠楔極椰概楊楨楫楞楓楹榆楝楣楛歇歲毀殿毓毽溢溯滓溶滂源溝滇滅溥溘溼溺溫滑準溜滄滔溪溧溴煎煙煩煤煉照煜煬煦煌煥煞煆煨煖爺牒猷獅猿猾瑯瑚瑕瑟瑞瑁琿瑙瑛瑜當畸瘀痰瘁痲痱痺痿痴痳盞盟睛睫睦睞督睹睪睬睜睥睨睢矮碎碰碗碘碌碉硼碑碓硿祺祿禁萬禽稜稚稠稔稟稞窟窠筷節筠筮筧粱粳粵經絹綑綁綏絛置罩罪署義羨群聖聘肆肄腱腰腸腥腮腳腫腹腺腦舅艇蒂葷落萱葵葦葫葉葬葛萼萵葡董葩葭葆虞虜號蛹蜓蜈蜇蜀蛾蛻蜂蜃蜆蜊衙裟裔裙補裘裝裡裊裕裒覜解詫該詳試詩詰誇詼詣誠話誅詭詢詮詬詹詻訾詨豢貊貉賊資賈賄貲賃賂賅跡跟跨路跳跺跪跤跦躲較載軾輊辟農運遊道遂達逼違遐遇遏過遍遑逾遁鄒鄗酬酪酩釉鈷鉗鈸鈽鉀鈾鉛鉋鉤鉑鈴鉉鉍鉅鈹鈿鉚閘隘隔隕雍雋雉雊雷電雹零靖靴靶預頑頓頊頒頌飼飴飽飾馳馱馴髡鳩麂鼎鼓鼠僧僮僥僖僭僚僕像僑僱僎僩兢凳劃劂匱厭嗾嘀嘛嘗嗽嘔嘆嘉嘍嘎嗷嘖嘟嘈嘐嗶團圖塵塾境墓墊塹墅塽壽夥夢夤奪奩嫡嫦嫩嫗嫖嫘嫣孵寞寧寡寥實寨寢寤察對屢嶄嶇幛幣幕幗幔廓廖弊彆彰徹慇愿態慷慢慣慟慚慘慵截撇摘摔撤摸摟摺摑摧搴摭摻敲斡旗旖暢暨暝榜榨榕槁榮槓構榛榷榻榫榴槐槍榭槌榦槃榣歉歌氳漳演滾漓滴漩漾漠漬漏漂漢滿滯漆漱漸漲漣漕漫漯澈漪滬漁滲滌滷熔熙煽熊熄熒爾犒犖獄獐瑤瑣瑪瑰瑭甄疑瘧瘍瘋瘉瘓盡監瞄睽睿睡磁碟碧碳碩碣禎福禍種稱窪窩竭端管箕箋筵算箝箔箏箸箇箄粹粽精綻綰綜綽綾綠緊綴網綱綺綢綿綵綸維緒緇綬罰翠翡翟聞聚肇腐膀膏膈膊腿膂臧臺與舔舞艋蓉蒿蓆蓄蒙蒞蒲蒜蓋蒸蓀蓓蒐蒼蓑蓊蜿蜜蜻蜢蜥蜴蜘蝕蜷蜩裳褂裴裹裸製裨褚裯誦誌語誣認誡誓誤說誥誨誘誑誚誧豪貍貌賓賑賒赫趙趕跼輔輒輕輓辣遠遘遜遣遙遞遢遝遛鄙鄘鄞酵酸酷酴鉸銀銅銘銖鉻銓銜銨鉼銑閡閨閩閣閥閤隙障際雌雒需靼鞅韶頗領颯颱餃餅餌餉駁骯骰髦魁魂鳴鳶鳳麼鼻齊億儀僻僵價儂儈儉儅凜劇劈劉劍劊勰厲嘮嘻嘹嘲嘿嘴嘩噓噎噗噴嘶嘯嘰墀墟增墳墜墮墩墦奭嬉嫻嬋嫵嬌嬈寮寬審寫層履嶝嶔幢幟幡廢廚廟廝廣廠彈影德徵慶慧慮慝慕憂慼慰慫慾憧憐憫憎憬憚憤憔憮戮摩摯摹撞撲撈撐撰撥撓撕撩撒撮播撫撚撬撙撢撳敵敷數暮暫暴暱樣樟槨樁樞標槽模樓樊槳樂樅槭樑歐歎殤毅毆漿潼澄潑潦潔澆潭潛潸潮澎潺潰潤澗潘滕潯潠潟熟熬熱熨牖犛獎獗瑩璋璃瑾璀畿瘠瘩瘟瘤瘦瘡瘢皚皺盤瞎瞇瞌瞑瞋磋磅確磊碾磕碼磐稿稼穀稽稷稻窯窮箭箱範箴篆篇篁箠篌糊締練緯緻緘緬緝編緣線緞緩綞緙緲緹罵罷羯翩耦膛膜膝膠膚膘蔗蔽蔚蓮蔬蔭蔓蔑蔣蔡蔔蓬蔥蓿蔆螂蝴蝶蝠蝦蝸蝨蝙蝗蝌蝓衛衝褐複褒褓褕褊誼諒談諄誕請諸課諉諂調誰論諍誶誹諛豌豎豬賠賞賦賤賬賭賢賣賜質賡赭趟趣踫踐踝踢踏踩踟踡踞躺輝輛輟輩輦輪輜輞輥適遮遨遭遷鄰鄭鄧鄱醇醉醋醃鋅銻銷鋪銬鋤鋁銳銼鋒鋇鋰銲閭閱霄霆震霉靠鞍鞋鞏頡頫頜颳養餓餒餘駝駐駟駛駑駕駒駙骷髮髯鬧魅魄魷魯鴆鴉鴃麩麾黎墨齒儒儘儔儐儕冀冪凝劑劓勳噙噫噹噩噤噸噪器噥噱噯噬噢噶壁墾壇壅奮嬝嬴學寰導彊憲憑憩憊懍憶憾懊懈戰擅擁擋撻撼據擄擇擂操撿擒擔撾整曆曉暹曄曇暸樽樸樺橙橫橘樹橄橢橡橋橇樵機橈歙歷氅濂澱澡濃澤濁澧澳激澹澶澦澠澴熾燉燐燒燈燕熹燎燙燜燃燄獨璜璣璘璟璞瓢甌甍瘴瘸瘺盧盥瞠瞞瞟瞥磨磚磬磧禦積穎穆穌穋窺篙簑築篤篛篡篩篦糕糖縊縑縈縛縣縞縝縉縐罹羲翰翱翮耨膳膩膨臻興艘艙蕊蕙蕈蕨蕩蕃蕉蕭蕪蕞螃螟螞螢融衡褪褲褥褫褡親覦諦諺諫諱謀諜諧諮諾謁謂諷諭諳諶諼豫豭貓賴蹄踱踴蹂踹踵輻輯輸輳辨辦遵遴選遲遼遺鄴醒錠錶鋸錳錯錢鋼錫錄錚錐錦錡錕錮錙閻隧隨險雕霎霑霖霍霓霏靛靜靦鞘頰頸頻頷頭頹頤餐館餞餛餡餚駭駢駱骸骼髻髭鬨鮑鴕鴣鴦鴨鴒鴛默黔龍龜優償儡儲勵嚎嚀嚐嚅嚇嚏壕壓壑壎嬰嬪嬤孺尷屨嶼嶺嶽嶸幫彌徽應懂懇懦懋戲戴擎擊擘擠擰擦擬擱擢擭斂斃曙曖檀檔檄檢檜櫛檣橾檗檐檠歜殮毚氈濘濱濟濠濛濤濫濯澀濬濡濩濕濮濰燧營燮燦燥燭燬燴燠爵牆獰獲璩環璦璨癆療癌盪瞳瞪瞰瞬瞧瞭矯磷磺磴磯礁禧禪穗窿簇簍篾篷簌篠糠糜糞糢糟糙糝縮績繆縷縲繃縫總縱繅繁縴縹繈縵縿縯罄翳翼聱聲聰聯聳臆臃膺臂臀膿膽臉膾臨舉艱薪薄蕾薜薑薔薯薛薇薨薊虧蟀蟑螳蟒蟆螫螻螺蟈蟋褻褶襄褸褽覬謎謗謙講謊謠謝謄謐豁谿豳賺賽購賸賻趨蹉蹋蹈蹊轄輾轂轅輿避遽還邁邂邀鄹醣醞醜鍍鎂錨鍵鍊鍥鍋錘鍾鍬鍛鍰鍚鍔闊闋闌闈闆隱隸雖霜霞鞠韓顆颶餵騁駿鮮鮫鮪鮭鴻鴿麋黏點黜黝黛鼾齋叢嚕嚮壙壘嬸彝懣戳擴擲擾攆擺擻擷斷曜朦檳檬櫃檻檸櫂檮檯歟歸殯瀉瀋濾瀆濺瀑瀏燻燼燾燸獷獵璧璿甕癖癘癒瞽瞿瞻瞼礎禮穡穢穠竄竅簫簧簪簞簣簡糧織繕繞繚繡繒繙罈翹翻職聶臍臏舊藏薩藍藐藉薰薺薹薦蟯蟬蟲蟠覆覲觴謨謹謬謫豐贅蹙蹣蹦蹤蹟蹕軀轉轍邇邃邈醫醬釐鎔鎊鎖鎢鎳鎮鎬鎰鎘鎚鎗闔闖闐闕離雜雙雛雞霤鞣鞦鞭韹額顏題顎顓颺餾餿餽餮馥騎髁鬃鬆魏魎魍鯊鯉鯽鯈鯀鵑鵝鵠黠鼕鼬儳嚥壞壟壢寵龐廬懲懷懶懵攀攏曠曝櫥櫝櫚櫓瀛瀟瀨瀚瀝瀕瀘爆爍牘犢獸獺璽瓊瓣疇疆癟癡矇礙禱穫穩簾簿簸簽簷籀繫繭繹繩繪羅繳羶羹羸臘藩藝藪藕藤藥藷蟻蠅蠍蟹蟾襠襟襖襞譁譜識證譚譎譏譆譙贈贊蹼蹲躇蹶蹬蹺蹴轔轎辭邊邋醱醮鏡鏑鏟鏃鏈鏜鏝鏖鏢鏍鏘鏤鏗鏨關隴難霪霧靡韜韻類願顛颼饅饉騖騙鬍鯨鯧鯖鯛鶉鵡鵲鵪鵬麒麗麓麴勸嚨嚷嚶嚴嚼壤孀孃孽寶巉懸懺攘攔攙曦朧櫬瀾瀰瀲爐獻瓏癢癥礦礪礬礫竇競籌籃籍糯糰辮繽繼纂罌耀臚艦藻藹蘑藺蘆蘋蘇蘊蠔蠕襤覺觸議譬警譯譟譫贏贍躉躁躅躂醴釋鐘鐃鏽闡霰飄饒饑馨騫騰騷騵鰓鰍鹹麵黨鼯齟齣齡儷儸囁囀囂夔屬巍懼懾攝攜斕曩櫻欄櫺殲灌爛犧瓖瓔癩矓籐纏續羼蘗蘭蘚蠣蠢蠡蠟襪襬覽譴護譽贓躊躍躋轟辯醺鐮鐳鐵鐺鐸鐲鐫闢霸霹露響顧顥饗驅驃驀騾髏魔魑鰭鰥鶯鶴鷂鶸麝黯鼙齜齦齧儼儻囈囊囉孿巔巒彎懿攤權歡灑灘玀瓤疊癮癬禳籠籟聾聽臟襲襯觼讀贖贗躑躓轡酈鑄鑑鑒霽霾韃韁顫饕驕驍髒鬚鱉鰱鰾鰻鷓鷗鼴齬齪龔囌巖戀攣攫攪曬欐瓚竊籤籣籥纓纖纔臢蘸蘿蠱變邐邏鑣鑠鑤靨顯饜驚驛驗髓體髑鱔鱗鱖鷥麟黴囑壩攬灞癱癲矗罐羈蠶蠹衢讓讒讖艷贛釀鑪靂靈靄韆顰驟鬢魘鱟鷹鷺鹼鹽鼇齷齲廳欖灣籬籮蠻觀躡釁鑲鑰顱饞髖鬣黌灤矚讚鑷韉驢驥纜讜躪釅鑽鑾鑼鱷鱸黷豔鑿鸚爨驪鬱鸛鸞籲乂乜凵匚厂万丌乇亍囗屮彳丏冇与丮亓仂仉仈冘勼卬厹圠夃夬尐巿旡殳毌气爿丱丼仨仜仩仡仝仚刌匜卌圢圣夗夯宁宄尒尻屴屳帄庀庂忉戉扐氕氶汃氿氻犮犰玊禸肊阞伎优伬仵伔仱伀价伈伝伂伅伢伓伄仴伒冱刓刉刐劦匢匟卍厊吇囡囟圮圪圴夼妀奼妅奻奾奷奿孖尕尥屼屺屻屾巟幵庄异弚彴忕忔忏扜扞扤扡扦扢扙扠扚扥旯旮朾朹朸朻机朿朼朳氘汆汒汜汏汊汔汋汌灱牞犴犵玎甪癿穵网艸艼芀艽艿虍襾邙邗邘邛邔阢阤阠阣佖伻佢佉体佤伾佧佒佟佁佘伭伳伿佡冏冹刜刞刡劭劮匉卣卲厎厏吰吷吪呔呅吙吜吥吘吽呏呁吨吤呇囮囧囥坁坅坌坉坋坒夆奀妦妘妠妗妎妢妐妏妧妡宎宒尨尪岍岏岈岋岉岒岊岆岓岕巠帊帎庋庉庌庈庍弅弝彸彶忒忑忐忭忨忮忳忡忤忣忺忯忷忻怀忴戺抃抌抎抏抔抇扱扻扺扰抁抈扷扽扲扴攷旰旴旳旲旵杅杇杙杕杌杈杝杍杚杋毐氙氚汸汧汫沄沋沏汱汯汩沚汭沇沕沜汦汳汥汻沎灴灺牣犿犽狃狆狁犺狅玕玗玓玔玒町甹疔疕皁礽耴肕肙肐肒肜芐芏芅芎芑芓芊芃芄豸迉辿邟邡邥邞邧邠阰阨阯阭丳侘佼侅佽侀侇佶佴侉侄佷佌侗佪侚佹侁佸侐侜侔侞侒侂侕佫佮冞冼冾刵刲刳剆刱劼匊匋匼厒厔咇呿咁咑咂咈呫呺呾呥呬呴呦咍呯呡呠咘呣呧呤囷囹坯坲坭坫坱坰坶垀坵坻坳坴坢坨坽夌奅妵妺姏姎妲姌姁妶妼姃姖妱妽姀姈妴姇孢孥宓宕屄屇岮岤岠岵岯岨岬岟岣岭岢岪岧岝岥岶岰岦帗帔帙弨弢弣弤彔徂彾彽忞忥怭怦怙怲怋怴怊怗怳怚怞怬怢怍怐怮怓怑怌怉怜戔戽抭抴拑抾抪抶拊抮抳抯抻抩抰抸攽斨斻昉旼昄昒昈旻昃昋昍昅旽昑昐曶朊枅杬枎枒杶杻枘枆构杴枍枌杺枟枑枙枃杽极杸杹枔欥殀歾毞氝沓泬泫泮泙沶泔沭泧沷泐泂沺泃泆泭泲泒泝沴沊沝沀泞泀洰泍泇沰泹泏泩泑炔炘炅炓炆炄炑炖炂炚炃牪狖狋狘狉狜狒狔狚狌狑玤玡玭玦玢玠玬玝瓝瓨甿畀甾疌疘皯盳盱盰盵矸矼矹矻矺矷祂礿秅穸穻竻籵糽耵肏肮肣肸肵肭舠芠苀芫芚芘芛芵芧芮芼芞芺芴芨芡芩苂芤苃芶芢虰虯虭虮豖迒迋迓迍迖迕迗邲邴邯邳邰阹阽阼阺陃俍俅俓侲俉俋俁俔俜俙侻侳俛俇俖侺俀侹俬剄剉勀勂匽卼厗厖厙厘咺咡咭咥哏哃茍咷咮哖咶哅哆咠呰咼咢咾呲哞咰垵垞垟垤垌垗垝垛垔垘垏垙垥垚垕壴复奓姡姞姮娀姱姝姺姽姼姶姤姲姷姛姩姳姵姠姾姴姭宨屌峐峘峌峗峋峛峞峚峉峇峊峖峓峔峏峈峆峎峟峸巹帡帢帣帠帤庰庤庢庛庣庥弇弮彖徆怷怹恔恲恞恅恓恇恉恛恌恀恂恟怤恄恘恦恮扂扃拏挍挋拵挎挃拫拹挏挌拸拶挀挓挔拺挕拻拰敁敃斪斿昶昡昲昵昜昦昢昳昫昺昝昴昹昮朏朐柁柲柈枺柜枻柸柘柀枷柅柫柤柟枵柍枳柷柶柮柣柂枹柎柧柰枲柼柆柭柌枮柦柛柺柉柊柃柪柋欨殂殄殶毖毘毠氠氡洨洴洭洟洼洿洒洊泚洳洄洙洺洚洑洀洝浂洁洘洷洃洏浀洇洠洬洈洢洉洐炷炟炾炱炰炡炴炵炩牁牉牊牬牰牳牮狊狤狨狫狟狪狦狣玅珌珂珈珅玹玶玵玴珫玿珇玾珃珆玸珋瓬瓮甮畇畈疧疪癹盄眈眃眄眅眊盷盻盺矧矨砆砑砒砅砐砏砎砉砃砓祊祌祋祅祄秕种秏秖秎窀穾竑笀笁籺籸籹籿粀粁紃紈紁罘羑羍羾耇耎耏耔耷胘胇胠胑胈胂胐胅胣胙胜胊胕胉胏胗胦胍臿舡芔苙苾苹茇苨茀苕茺苫苖苴苬苡苲苵茌苻苶苰苪苤苠苺苳苭虷虴虼虳衁衎衧衪衩觓訄訇赲迣迡迮迠郱邽邿郕郅邾郇郋郈釔釓陔陏陑陓陊陎倞倅倇倓倢倰倛俵俴倳倷倬俶俷倗倜倠倧倵倯倱倎党冔冓凊凄凅凈凎剡剚剒剞剟剕剢勍匎厞唦哢唗唒哧哳哤唚哿唄唈哫唑唅哱唊哻哷哸哠唎唃唋圁圂埌堲埕埒垺埆垽垼垸垶垿埇埐垹埁夎奊娙娖娭娮娕娏娗娊娞娳孬宧宭宬尃屖屔峬峿峮峱峷崀峹帩帨庨庮庪庬弳弰彧恝恚恧恁悢悈悀悒悁悝悃悕悛悗悇悜悎戙扆拲挐捖挬捄捅挶捃揤挹捋捊挼挩捁挴捘捔捙挭捇挳捚捑挸捗捀捈敊敆旆旃旄旂晊晟晇晑朒朓栟栚桉栲栳栻桋桏栖栱栜栵栫栭栯桎桄栴栝栒栔栦栨栮桍栺栥栠欬欯欭欱欴歭肂殈毦毤毨毣毢毧氥浺浣浤浶洍浡涒浘浢浭浯涑涍淯浿涆浞浧浠涗浰浼浟涂涘洯浨涋浾涀涄洖涃浻浽浵涐烜烓烑烝烋缹烢烗烒烞烠烔烍烅烆烇烚烎烡牂牸牷牶猀狺狴狾狶狳狻猁珓珙珥珖玼珧珣珩珜珒珛珔珝珚珗珘珨瓞瓟瓴瓵甡畛畟疰痁疻痄痀疿疶疺皊盉眝眛眐眓眒眣眑眕眙眚眢眧砣砬砢砵砯砨砮砫砡砩砳砪砱祔祛祏祜祓祒祑秫秬秠秮秭秪秜秞秝窆窉窅窋窌窊窇竘笐笄笓笅笏笈笊笎笉笒粄粑粊粌粈粍粅紞紝紑紎紘紖紓紟紒紏紌罜罡罞罠罝罛羖羒翃翂翀耖耾耹胺胲胹胵脁胻脀舁舯舥茳茭荄茙荑茥荖茿荁茦茜茢荂荎茛茪茈茼荍茖茤茠茷茯茩荇荅荌荓茞茬荋茧荈虓虒蚢蚨蚖蚍蚑蚞蚇蚗蚆蚋蚚蚅蚥蚙蚡蚧蚕蚘蚎蚝蚐蚔衃衄衭衵衶衲袀衱衿衯袃衾衴衼訒豇豗豻貤貣赶赸趵趷趶軑軓迾迵适迿迻逄迼迶郖郠郙郚郣郟郥郘郛郗郜郤酐酎酏釕釢釚陜陟隼飣髟鬯乿偰偪偡偞偠偓偋偝偲偈偍偁偛偊偢倕偅偟偩偫偣偤偆偀偮偳偗偑凐剫剭剬剮勖勓匭厜啵啶唼啍啐唴唪啑啢唶唵唰啒啅唌唲啥啎唹啈唭唻啀啋圊圇埻堔埢埶埜埴堀埭埽堈埸堋埳埏堇埮埣埲埥埬埡堎埼堐埧堁堌埱埩埰堍堄奜婠婘婕婧婞娸娵婭婐婟婥婬婓婤婗婃婝婒婄婛婈媎娾婍娹婌婰婩婇婑婖婂婜孲孮寁寀屙崞崋崝崚崠崌崨崍崦崥崏崰崒崣崟崮帾帴庱庴庹庲庳弶弸徛徖徟悊悐悆悾悰悺惓惔惏惤惙惝惈悱惛悷惊悿惃惍惀挲捥掊掂捽掽掞掭掝掗掫掎捯掇掐据掯捵掜捭掮捼掤挻掟捸掅掁掑掍捰敓旍晥晡晛晙晜晢朘桹梇梐梜桭桮梮梫楖桯梣梬梩桵桴梲梏桷梒桼桫桲梪梀桱桾梛梖梋梠梉梤桸桻梑梌梊桽欶欳欷欸殑殏殍殎殌氪淀涫涴涳湴涬淩淢涷淶淔渀淈淠淟淖涾淥淜淝淛淴淊涽淭淰涺淕淂淏淉淐淲淓淽淗淍淣涻烺焍烷焗烴焌烰焄烳焐烼烿焆焓焀烸烶焋焂焎牾牻牼牿猝猗猇猑猘猊猈狿猏猞玈珶珸珵琄琁珽琇琀珺珼珿琌琋珴琈畤畣痎痒痏痋痌痑痐皏皉盓眹眯眭眱眲眴眳眽眥眻眵硈硒硉硍硊硌砦硅硐祤祧祩祪祣祫祡离秺秸秶秷窏窔窐笵筇笴笥笰笢笤笳笘笪笝笱笫笭笯笲笸笚笣粔粘粖粣紵紽紸紶紺絅紬紩絁絇紾紿絊紻紨罣羕羜羝羛翊翋翍翐翑翇翏翉耟耞耛聇聃聈脘脥脙脛脭脟脬脞脡脕脧脝脢舑舸舳舺舴舲艴莐莣莨莍荺荳莤荴莏莁莕莙荵莔莩荽莃莌莝莛莪莋荾莥莯莈莗莰荿莦莇莮荶莚虙虖蚿蚷蛂蛁蛅蚺蚰蛈蚹蚳蚸蛌蚴蚻蚼蛃蚽蚾衒袉袕袨袢袪袚袑袡袟袘袧袙袛袗袤袬袌袓袎覂觖觙觕訰訧訬訞谹谻豜豝豽貥赽赻赹趼跂趹趿跁軘軞軝軜軗軠軡逤逋逑逜逌逡郯郪郰郴郲郳郔郫郬郩酖酘酚酓酕釬釴釱釳釸釤釹釪釫釷釨釮镺閆閈陼陭陫陱陯隿靪頄飥馗傛傕傔傞傋傣傃傌傎傝偨傜傒傂傇兟凔匒匑厤厧喑喨喥喭啷噅喢喓喈喏喵喁喣喒喤啽喌喦啿喕喡喎圌堩堷堙堞堧堣堨埵塈堥堜堛堳堿堶堮堹堸堭堬堻奡媯媔媟婺媢媞婸媦婼媥媬媕媮娷媄媊媗媃媋媩婻婽媌媜媏媓媝寪寍寋寔寑寊寎尌尰崷嵃嵫嵁嵋崿崵嵑嵎嵕崳崺嵒崽崱嵙嵂崹嵉崸崼崲崶嵀嵅幄幁彘徦徥徫惉悹惌惢惎惄愔惲愊愖愅惵愓惸惼惾惁愃愘愝愐惿愄愋扊掔掱掰揎揥揨揯揃撝揳揊揠揶揕揲揵摡揟掾揝揜揄揘揓揂揇揌揋揈揰揗揙攲敧敪敤敜敨敥斌斝斞斮旐旒晼晬晻暀晱晹晪晲朁椌棓椄棜椪棬棪棱椏棖棷棫棤棶椓椐棳棡椇棌椈楰梴椑棯棆椔棸棐棽棼棨椋椊椗棎棈棝棞棦棴棑椆棔棩椕椥棇欹欻欿欼殔殗殙殕殽毰毲毳氰淼湆湇渟湉溈渼渽湅湢渫渿湁湝湳渜渳湋湀湑渻渃渮湞湨湜湡渱渨湠湱湫渹渢渰湓湥渧湸湤湷湕湹湒湦渵渶湚焠焞焯烻焮焱焣焥焢焲焟焨焺焛牋牚犈犉犆犅犋猒猋猰猢猱猳猧猲猭猦猣猵猌琮琬琰琫琖琚琡琭琱琤琣琝琩琠琲瓻甯畯畬痧痚痡痦痝痟痤痗皕皒盚睆睇睄睍睅睊睎睋睌矞矬硠硤硥硜硭硱硪确硰硩硨硞硢祴祳祲祰稂稊稃稌稄窙竦竤筊笻筄筈筌筎筀筘筅粢粞粨粡絘絯絣絓絖絧絪絏絭絜絫絒絔絩絑絟絎缾缿罥罦羢羠羡翗聑聏聐胾胔腃腊腒腏腇脽腍脺臦臮臷臸臹舄舼舽舿艵茻菏菹萣菀菨萒菧菤菼菶萐菆菈菫菣莿萁菝菥菘菿菡菋菎菖菵菉萉萏菞萑萆菂菳菕菺菇菑菪萓菃菬菮菄菻菗菢萛菛菾蛘蛢蛦蛓蛣蛚蛪蛝蛫蛜蛬蛩蛗蛨蛑衈衖衕袺裗袹袸裀袾袶袼袷袽袲褁裉覕覘覗觝觚觛詎詍訹詙詀詗詘詄詅詒詈詑詊詌詏豟貁貀貺貾貰貹貵趄趀趉跘跓跍跇跖跜跏跕跙跈跗跅軯軷軺軹軦軮軥軵軧軨軶軫軱軬軴軩逭逴逯鄆鄬鄄郿郼鄈郹郻鄁鄀鄇鄅鄃酡酤酟酢酠鈁鈊鈥鈃鈚鈦鈏鈌鈀鈒釿釽鈆鈄鈧鈂鈜鈤鈙鈗鈅鈖镻閍閌閐隇陾隈隉隃隀雂雈雃雱雰靬靰靮頇颩飫鳦黹亃亄亶傽傿僆傮僄僊傴僈僂傰僁傺傱僋僉傶傸凗剺剸剻剼嗃嗛嗌嗐嗋嗊嗝嗀嗔嗄嗩喿嗒喍嗏嗕嗢嗖嗈嗲嗍嗙嗂圔塓塨塤塏塍塉塯塕塎塝塙塥塛堽塣塱壼嫇嫄嫋媺媸媱媵媰媿嫈媻嫆媷嫀嫊媴媶嫍媹媐寖寘寙尟尳嵱嵣嵊嵥嵲嵬嵞嵨嵧嵢巰幏幎幊幍幋廅廌廆廋廇彀徯徭惷慉慊愫慅愶愲愮慆愯慏愩慀戠酨戣戥戤揅揱揫搐搒搉搠搤搳摃搟搕搘搹搷搢搣搌搦搰搨摁搵搯搊搚摀搥搧搋揧搛搮搡搎敯斒旓暆暌暕暐暋暊暙暔晸朠楦楟椸楎楢楱椿楅楪椹楂楗楙楺楈楉椵楬椳椽楥棰楸椴楩楀楯楄楶楘楁楴楌椻楋椷楜楏楑椲楒椯楻椼歆歅歃歂歈歁殛毻毼毹毷毸溛滖滈溏滀溟溓溔溠溱溹滆滒溽滁溞滉溷溰滍溦滏溲溾滃滜滘溙溒溎溍溤溡溿溳滐滊溗溮溣煇煔煒煣煠煁煝煢煲煸煪煡煂煘煃煋煰煟煐煓煄煍煚牏犍犌犑犐犎猼獂猻猺獀獊獉瑄瑊瑋瑒瑑瑗瑀瑏瑐瑎瑂瑆瑍瑔瓡瓿瓾瓽甝畹畷榃痯瘏瘃痷痾痼痹痸瘐痻痶痭痵痽皙皵盝睕睟睠睒睖睚睩睧睔睙睭矠碇碚碔碏碄碕碅碆碡碃硹碙碀碖硻祼禂祽祹稑稘稙稒稗稕稢稓稛稐窣窢窞竫筦筤筭筴筩筲筥筳筱筰筡筸筶筣粲粴粯綈綆綀綍絿綅絺綎絻綃絼綌綔綄絽綒罭罫罧罨罬羦羥羧翛翜耡腤腠腷腜腩腛腢腲朡腞腶腧腯腄腡舝艉艄艀艂艅蓱萿葖葶葹蒏蒍葥葑葀蒆葧萰葍葽葚葙葴葳葝蔇葞萷萺萴葺葃葸萲葅萩菙葋萯葂萭葟葰萹葎葌葒葯蓅蒎萻葇萶萳葨葾葄萫葠葔葮葐蜋蜄蛷蜌蛺蛖蛵蝍蛸蜎蜉蜁蛶蜍蜅裖裋裍裎裞裛裚裌裐覅覛觟觥觤觡觠觢觜触詶誆詿詡訿詷誂誄詵誃誁詴詺谼豋豊豥豤豦貆貄貅賌赨赩趑趌趎趏趍趓趔趐趒跰跠跬跱跮跐跩跣跢跧跲跫跴輆軿輁輀輅輇輈輂輋遒逿遄遉逽鄐鄍鄏鄑鄖鄔鄋鄎酮酯鉈鉒鈰鈺鉦鈳鉥鉞銃鈮鉊鉆鉭鉬鉏鉠鉧鉯鈶鉡鉰鈱鉔鉣鉐鉲鉎鉓鉌鉖鈲閟閜閞閛隒隓隑隗雎雺雽雸雵靳靷靸靲頏頍頎颬飶飹馯馲馰馵骭骫魛鳪鳭鳧麀黽僦僔僗僨僳僛僪僝僤僓僬僰僯僣僠凘劀劁勩勫匰厬嘧嘕嘌嘒嗼嘏嘜嘁嘓嘂嗺嘝嘄嗿嗹墉塼墐墘墆墁塿塴墋塺墇墑墎塶墂墈塻墔墏壾奫嫜嫮嫥嫕嫪嫚嫭嫫嫳嫢嫠嫛嫬嫞嫝嫙嫨嫟孷寠寣屣嶂嶀嵽嶆嵺嶁嵷嶊嶉嶈嵾嵼嶍嵹嵿幘幙幓廘廑廗廎廜廕廙廒廔彄彃彯徶愬愨慁慞慱慳慒慓慲慬憀慴慔慺慛慥愻慪慡慖戩戧戫搫摍摛摝摴摶摲摳摽摵摦撦摎撂摞摜摋摓摠摐摿搿摬摫摙摥摷敳斠暡暠暟朅朄朢榱榶槉榠槎榖榰榬榼榑榙榎榧榍榩榾榯榿槄榽榤槔榹槊榚槏榳榓榪榡榞槙榗榐槂榵榥槆歊歍歋殞殟殠毃毄毾滎滵滱漃漥滸漷滻漮漉潎漙漚漧漘漻漒滭漊漶潳滹滮漭潀漰漼漵滫漇漎潃漅滽滶漹漜滼漺漟漍漞漈漡熇熐熉熀熅熂熏煻熆熁熗牄牓犗犕犓獃獍獑獌瑢瑳瑱瑵瑲瑧瑮甀甂甃畽疐瘖瘈瘌瘕瘑瘊瘔皸瞁睼瞅瞂睮瞀睯睾瞃碲碪碴碭碨硾碫碞碥碠碬碢碤禘禊禋禖禕禔禓禗禈禒禐稫穊稰稯稨稦窨窫窬竮箈箜箊箑箐箖箍箌箛箎箅箘劄箙箤箂粻粿粼粺綧綷緂綣綪緁緀緅綝緎緄緆緋緌綯綹綖綼綟綦綮綩綡緉罳翢翣翥翞耤聝聜膉膆膃膇膍膌膋舕蒗蒤蒡蒟蒺蓎蓂蒬蒮蒫蒹蒴蓁蓍蒪蒚蒱蓐蒝蒧蒻蒢蒔蓇蓌蒛蒩蒯蒨蓖蒘蒶蓏蒠蓗蓔蓒蓛蒰蒑虡蜳蜣蜨蝫蝀蜮蜞蜡蜙蜛蝃蜬蝁蜾蝆蜠蜲蜪蜭蜼蜒蜺蜱蜵蝂蜦蜧蜸蜤蜚蜰蜑裷裧裱裲裺裾裮裼裶裻裰裬裫覝覡覟覞觩觫觨誫誙誋誒誏誖谽豨豩賕賏賗趖踉踂跿踍跽踊踃踇踆踅跾踀踄輐輑輎輍鄣鄜鄠鄢鄟鄝鄚鄤鄡鄛酺酲酹酳銥銤鉶銛鉺銠銔銪銍銦銚銫鉹銗鉿銣鋮銎銂銕銢鉽銈銡銊銆銌銙銧鉾銇銩銝銋鈭隞隡雿靘靽靺靾鞃鞀鞂靻鞄鞁靿韎韍頖颭颮餂餀餇馝馜駃馹馻馺駂馽駇骱髣髧鬾鬿魠魡魟鳱鳲鳵麧僿儃儰僸儆儇僶僾儋儌僽儊劋劌勱勯噈噂噌嘵噁噊噉噆噘噚噀嘳嘽嘬嘾嘸嘪嘺圚墫墝墱墠墣墯墬墥墡壿嫿嫴嫽嫷嫶嬃嫸嬂嫹嬁嬇嬅嬏屧嶙嶗嶟嶒嶢嶓嶕嶠嶜嶡嶚嶞幩幝幠幜緳廛廞廡彉徲憋憃慹憱憰憢憉憛憓憯憭憟憒憪憡憍慦憳戭摮摰撖撠撅撗撜撏撋撊撌撣撟摨撱撘敶敺敹敻斲斳暵暰暩暲暷暪暯樀樆樗槥槸樕槱槤樠槿槬槢樛樝槾樧槲槮樔槷槧橀樈槦槻樍槼槫樉樄樘樥樏槶樦樇槴樖歑殥殣殢殦氁氀毿氂潁漦潾澇濆澒澍澉澌潢潏澅潚澖潶潬澂潕潲潒潐潗澔澓潝漀潡潫潽潧澐潓澋潩潿澕潣潷潪潻熲熯熛熰熠熚熩熵熝熥熞熤熡熪熜熧熳犘犚獘獒獞獟獠獝獛獡獚獙獢璇璉璊璆璁瑽璅璈瑼瑹甈甇畾瘥瘞瘙瘝瘜瘣瘚瘨瘛皜皝皞皛瞍瞏瞉瞈磍碻磏磌磑磎磔磈磃磄磉禚禡禠禜禢禛歶稹窲窴窳箷篋箾箬篎箯箹篊箵糅糈糌糋緷緛緪緧緗緡縃緺緦緶緱緰緮緟罶羬羰羭翭翫翪翬翦翨聤聧膣膟膞膕膢膙膗舖艏艓艒艐艎艑蔤蔻蔏蔀蔩蔎蔉蔍蔟蔊蔧蔜蓻蔫蓺蔈蔌蓴蔪蓲蔕蓷蓫蓳蓼蔒蓪蓩蔖蓾蔨蔝蔮蔂蓽蔞蓶蔱蔦蓧蓨蓰蓯蓹蔘蔠蔰蔋蔙蔯虢蝖蝣蝤蝷蟡蝳蝘蝔蝛蝒蝡蝚蝑蝞蝭蝪蝐蝎蝟蝝蝯蝬蝺蝮蝜蝥蝏蝻蝵蝢蝧蝩衚褅褌褔褋褗褘褙褆褖褑褎褉覢覤覣觭觰觬諏諆誸諓諑諔諕誻諗誾諀諅諘諃誺誽諙谾豍貏賥賟賙賨賚賝賧趠趜趡趛踠踣踥踤踮踕踛踖踑踙踦踧踔踒踘踓踜踗踚輬輤輘輚輠輣輖輗遳遰遯遧遫鄯鄫鄩鄪鄲鄦鄮醅醆醊醁醂醄醀鋐鋃鋄鋀鋙銶鋏鋱鋟鋘鋩鋗鋝鋌鋯鋂鋨鋊鋈鋎鋦鋍鋕鋉鋠鋞鋧鋑鋓銵鋡鋆銴镼閬閫閮閰隤隢雓霅霈霂靚鞊鞎鞈韐韏頞頝頦頩頨頠頛頧颲餈飺餑餔餖餗餕駜駍駏駓駔駎駉駖駘駋駗駌骳髬髫髳髲髱魆魃魧魴魱魦魶魵魰魨魤魬鳼鳺鳽鳿鳷鴇鴀鳹鳻鴈鴅鴄麃黓鼏鼐儜儓儗儚儑凞匴叡噰噠噮噳噦噣噭噲噞噷圜圛壈墽壉墿墺壂墼壆嬗嬙嬛嬡嬔嬓嬐嬖嬨嬚嬠嬞寯嶬嶱嶩嶧嶵嶰嶮嶪嶨嶲嶭嶯嶴幧幨幦幯廩廧廦廨廥彋徼憝憨憖懅憴懆懁懌憺憿憸憌擗擖擐擏擉撽撉擃擛擳擙攳敿敼斢曈暾曀曊曋曏暽暻暺曌朣樴橦橉橧樲橨樾橝橭橶橛橑樨橚樻樿橁橪橤橐橏橔橯橩橠樼橞橖橕橍橎橆歕歔歖殧殪殫毈毇氄氃氆澭濋澣濇澼濎濈潞濄澽澞濊澨瀄澥澮澺澬澪濏澿澸澢濉澫濍澯澲澰燅燂熿熸燖燀燁燋燔燊燇燏熽燘熼燆燚燛犝犞獩獦獧獬獥獫獪瑿璚璠璔璒璕璡甋疀瘯瘭瘱瘽瘳瘼瘵瘲瘰皻盦瞚瞝瞡瞜瞛瞢瞣瞕瞙瞗磝磩磥磪磞磣磛磡磢磭磟磠禤穄穈穇窶窸窵窱窷篞篣篧篝篕篥篚篨篹篔篪篢篜篫篘篟糒糔糗糐糑縒縡縗縌縟縠縓縎縜縕縚縢縋縏縖縍縔縥縤罃罻罼罺羱翯耪耩聬膱膦膮膹膵膫膰膬膴膲膷膧臲艕艖艗蕖蕅蕫蕍蕓蕡蕘蕀蕆蕤蕁蕢蕄蕑蕇蕣蔾蕛蕱蕎蕮蕵蕕蕧蕠薌蕦蕝蕔蕥蕬虣虥虤螛螏螗螓螒螈螁螖螘蝹螇螣螅螐螑螝螄螔螜螚螉褞褦褰褭褮褧褱褢褩褣褯褬褟觱諠諢諲諴諵諝謔諤諟諰諈諞諡諨諿諯諻貑貒貐賵賮賱賰賳赬赮趥趧踳踾踸蹀蹅踶踼踽蹁踰踿躽輶輮輵輲輹輷輴遶遹遻邆郺鄳鄵鄶醓醐醑醍醏錧錞錈錟錆錏鍺錸錼錛錣錒錁鍆錭錎錍鋋錝鋺錥錓鋹鋷錴錂錤鋿錩錹錵錪錔錌錋鋾錉錀鋻錖閼闍閾閹閺閶閿閵閽隩雔霋霒霐鞙鞗鞔韰韸頵頯頲餤餟餧餩馞駮駬駥駤駰駣駪駩駧骹骿骴骻髶髺髹髷鬳鮀鮅鮇魼魾魻鮂鮓鮒鮐魺鮕魽鮈鴥鴗鴠鴞鴔鴩鴝鴘鴢鴐鴙鴟麈麆麇麮麭黕黖黺鼒鼽儦儥儢儤儠儩勴嚓嚌嚍嚆嚄嚃噾嚂噿嚁壖壔壏壒嬭嬥嬲嬣嬬嬧嬦嬯嬮孻寱寲嶷幬幪徾徻懃憵憼懧懠懥懤懨懞擯擩擣擫擤擨斁斀斶旚曒檍檖檁檥檉檟檛檡檞檇檓檎檕檃檨檤檑橿檦檚檅檌檒歛殭氉濌澩濴濔濣濜濭濧濦濞濲濝濢濨燡燱燨燲燤燰燢獳獮獯璗璲璫璐璪璭璱璥璯甐甑甒甏疄癃癈癉癇皤盩瞵瞫瞲瞷瞶瞴瞱瞨矰磳磽礂磻磼磲礅磹磾礄禫禨穜穛穖穘穔穚窾竀竁簅簏篲簀篿篻簎篴簋篳簂簉簃簁篸篽簆篰篱簐簊糨縭縼繂縳顈縸縪繉繀繇縩繌縰縻縶繄縺罅罿罾罽翴翲耬膻臄臌臊臅臇膼臩艛艚艜薃薀薏薧薕薠薋薣蕻薤薚薞蕷蕼薉薡蕺蕸蕗薎薖薆薍薙薝薁薢薂薈薅蕹蕶薘薐薟虨螾螪螭蟅螰螬螹螵螼螮蟉蟃蟂蟌螷螯蟄蟊螴螶螿螸螽蟞螲褵褳褼褾襁襒褷襂覭覯覮觲觳謞謘謖謑謅謋謢謏謒謕謇謍謈謆謜謓謚豏豰豲豱豯貕貔賹赯蹎蹍蹓蹐蹌蹇轃轀邅遾鄸醚醢醛醙醟醡醝醠鎡鎃鎯鍤鍖鍇鍼鍘鍜鍶鍉鍐鍑鍠鍭鎏鍌鍪鍹鍗鍕鍒鍏鍱鍷鍻鍡鍞鍣鍧鎀鍎鍙闇闀闉闃闅閷隮隰隬霠霟霘霝霙鞚鞡鞜鞞鞝韕韔韱顁顄顊顉顅顃餥餫餬餪餳餲餯餭餱餰馘馣馡騂駺駴駷駹駸駶駻駽駾駼騃骾髾髽鬁髼魈鮚鮨鮞鮛鮦鮡鮥鮤鮆鮢鮠鮯鴳鵁鵧鴶鴮鴯鴱鴸鴰鵅鵂鵃鴾鴷鵀鴽翵鴭麊麉麍麰黈黚黻黿鼤鼣鼢齔龠儱儭儮嚘嚜嚗嚚嚝嚙奰嬼屩屪巀幭幮懘懟懭懮懱懪懰懫懖懩擿攄擽擸攁攃擼斔旛曚曛曘櫅檹檽櫡櫆檺檶檷櫇檴檭歞毉氋瀇瀌瀍瀁瀅瀔瀎濿瀀濻瀦濼濷瀊爁燿燹爃燽獶璸瓀璵瓁璾璶璻瓂甔甓癜癤癙癐癓癗癚皦皽盬矂瞺磿礌礓礔礉礐礒礑禭禬穟簜簩簙簠簟簭簝簦簨簢簥簰繜繐繖繣繘繢繟繑繠繗繓羵羳翷翸聵臑臒臐艟艞薴藆藀藃藂薳薵薽藇藄薿藋藎藈藅薱薶藒蘤薸薷薾虩蟧蟦蟢蟛蟫蟪蟥蟟蟳蟤蟔蟜蟓蟭蟘蟣螤蟗蟙蠁蟴蟨蟝襓襋襏襌襆襐襑襉謪謧謣謳謰謵譇謯謼謾謱謥謷謦謶謮謤謻謽謺豂豵貙貘貗賾贄贂贀蹜蹢蹠蹗蹖蹞蹥蹧蹛蹚蹡蹝蹩蹔轆轇轈轋鄨鄺鄻鄾醨醥醧醯醪鎵鎌鎒鎷鎛鎝鎉鎧鎎鎪鎞鎦鎕鎈鎙鎟鎍鎱鎑鎲鎤鎨鎴鎣鎥闒闓闑隳雗雚巂雟雘雝霣霢霥鞬鞮鞨鞫鞤鞪鞢鞥韗韙韖韘韺顐顑顒颸饁餼餺騏騋騉騍騄騑騊騅騇騆髀髜鬈鬄鬅鬩鬵魊魌魋鯇鯆鯃鮿鯁鮵鮸鯓鮶鯄鮹鮽鵜鵓鵏鵊鵛鵋鵙鵖鵌鵗鵒鵔鵟鵘鵚麎麌黟鼁鼀鼖鼥鼫鼪鼩鼨齌齕儴儵劖勷厴嚫嚭嚦嚧嚪嚬壚壝壛夒嬽嬾嬿巃幰徿懻攇攐攍攉攌攎斄旞旝曞櫧櫠櫌櫑櫙櫋櫟櫜櫐櫫櫏櫍櫞歠殰氌瀙瀧瀠瀖瀫瀡瀢瀣瀩瀗瀤瀜瀪爌爊爇爂爅犥犦犤犣犡瓋瓅璷瓃甖癠矉矊矄矱礝礛礡礜礗礞禰穧穨簳簼簹簬簻糬糪繶繵繸繰繷繯繺繲繴繨罋罊羃羆羷翽翾聸臗臕艤艡艣藫藱藭藙藡藨藚藗藬藲藸藘藟藣藜藑藰藦藯藞藢蠀蟺蠃蟶蟷蠉蠌蠋蠆蟼蠈蟿蠊蠂襢襚襛襗襡襜襘襝襙覈覷覶觶譐譈譊譀譓譖譔譋譕譑譂譒譗豃豷豶貚贆贇贉趬趪趭趫蹭蹸蹳蹪蹯蹻軂轒轑轏轐轓辴酀鄿醰醭鏞鏇鏏鏂鏚鏐鏹鏬鏌鏙鎩鏦鏊鏔鏮鏣鏕鏄鏎鏀鏒鏧镽闚闛雡霩霫霬霨霦鞳鞷鞶韝韞韟顜顙顝顗颿颽颻颾饈饇饃馦馧騚騕騥騝騤騛騢騠騧騣騞騜騔髂鬋鬊鬎鬌鬷鯪鯫鯠鯞鯤鯦鯢鯰鯔鯗鯬鯜鯙鯥鯕鯡鯚鵷鶁鶊鶄鶈鵱鶀鵸鶆鶋鶌鵽鵫鵴鵵鵰鵩鶅鵳鵻鶂鵯鵹鵿鶇鵨麔麑黀黼鼭齀齁齍齖齗齘匷嚲嚵嚳壣孅巆巇廮廯忀忁懹攗攖攕攓旟曨曣曤櫳櫰櫪櫨櫹櫱櫮櫯瀼瀵瀯瀷瀴瀱灂瀸瀿瀺瀹灀瀻瀳灁爓爔犨獽獼璺皫皪皾盭矌矎矏矍矲礥礣礧礨礤礩禲穮穬穭竷籉籈籊籇籅糮繻繾纁纀羺翿聹臛臙舋艨艩蘢藿蘁藾蘛蘀藶蘄蘉蘅蘌藽蠙蠐蠑蠗蠓蠖襣襦覹觷譠譪譝譨譣譥譧譭趮躆躈躄轙轖轗轕轘轚邍酃酁醷醵醲醳鐋鐓鏻鐠鐏鐔鏾鐕鐐鐨鐙鐍鏵鐀鏷鐇鐎鐖鐒鏺鐉鏸鐊鏿鏼鐌鏶鐑鐆闞闠闟霮霯鞹鞻韽韾顠顢顣顟飁飂饐饎饙饌饋饓騲騴騱騬騪騶騩騮騸騭髇髊髆鬐鬒鬑鰋鰈鯷鰅鰒鯸鱀鰇鰎鰆鰗鰔鰉鶟鶙鶤鶝鶒鶘鶐鶛鶠鶔鶜鶪鶗鶡鶚鶢鶨鶞鶣鶿鶩鶖鶦鶧麙麛麚黥黤黧黦鼰鼮齛齠齞齝齙龑儺儹劘劗囃嚽嚾孈孇巋巏廱懽攛欂櫼欃櫸欀灃灄灊灈灉灅灆爝爚爙獾甗癪矐礭礱礯籔籓糲纊纇纈纋纆纍罍羻耰臝蘘蘪蘦蘟蘣蘜蘙蘧蘮蘡蘠蘩蘞蘥蠩蠝蠛蠠蠤蠜蠫衊襭襩襮襫觺譹譸譅譺譻贐贔趯躎躌轞轛轝酆酄酅醹鐿鐻鐶鐩鐽鐼鐰鐹鐪鐷鐬鑀鐱闥闤闣霵霺鞿韡顤飉飆飀饘饖騹騽驆驄驂驁騺騿髍鬕鬗鬘鬖鬺魒鰫鰝鰜鰬鰣鰨鰩鰤鰡鶷鶶鶼鷁鷇鷊鷏鶾鷅鷃鶻鶵鷎鶹鶺鶬鷈鶱鶭鷌鶳鷍鶲鹺麜黫黮黭鼛鼘鼚鼱齎齥齤龒亹囆囅囋奱孋孌巕巑廲攡攠攦攢欋欈欉氍灕灖灗灒爞爟犩獿瓘瓕瓙瓗癭皭礵禴穰穱籗籜籙籛籚糴糱纑罏羇臞艫蘴蘵蘳蘬蘲蘶蠬蠨蠦蠪蠥襱覿覾觻譾讄讂讆讅譿贕躕躔躚躒躐躖躗轠轢酇鑌鑐鑊鑋鑏鑇鑅鑈鑉鑆霿韣顪顩飋饔饛驎驓驔驌驏驈驊驉驒驐髐鬙鬫鬻魖魕鱆鱈鰿鱄鰹鰳鱁鰼鰷鰴鰲鰽鰶鷛鷒鷞鷚鷋鷐鷜鷑鷟鷩鷙鷘鷖鷵鷕鷝麶黰鼵鼳鼲齂齫龕龢儽劙壨壧奲孍巘蠯彏戁戃戄攩攥斖曫欑欒欏毊灛灚爢玂玁玃癰矔籧籦纕艬蘺虀蘹蘼蘱蘻蘾蠰蠲蠮蠳襶襴襳觾讌讎讋讈豅贙躘轤轣醼鑢鑕鑝鑗鑞韄韅頀驖驙鬞鬟鬠鱒鱘鱐鱊鱍鱋鱕鱙鱌鱎鷻鷷鷯鷣鷫鷸鷤鷶鷡鷮鷦鷲鷰鷢鷬鷴鷳鷨鷭黂黐黲黳鼆鼜鼸鼷鼶齃齏齱齰齮齯囓囍孎屭攭曭曮欓灟灡灝灠爣瓛瓥矕礸禷禶籪纗羉艭虃蠸蠷蠵衋讔讕躞躟躠躝醾醽釂鑫鑨鑩雥靆靃靇韇韥驞髕魙鱣鱧鱦鱢鱞鱠鸂鷾鸇鸃鸆鸅鸀鸁鸉鷿鷽鸄麠鼞齆齴齵齶囔攮斸欘欙欗欚灢爦犪矘矙礹籩籫糶纚纘纛纙臠臡虆虇虈襹襺襼襻觿讘讙躥躤躣鑮鑭鑯鑱鑳靉顲饟鱨鱮鱭鸋鸍鸐鸏鸒鸑麡黵鼉齇齸齻齺齹圞灦籯蠼趲躦釃鑴鑸鑶鑵驠鱴鱳鱱鱵鸔鸓黶鼊龤灨灥糷虪蠾蠽蠿讞貜躩軉靋顳顴飌饡馫驤驦驧鬤鸕鸗齈戇欞爧虌躨钂钀钁驩驨鬮鸙爩虋讟钃鱹麷癵驫鱺鸝灩灪麤齾齉龘"\r
             }\r
-            Version{"33.1"}\r
+            Version{"34"}\r
         }\r
         default{"pinyin"}\r
         gb2312han{\r
@@ -18,7 +18,7 @@ zh{
                 "[reorder Latn Hani]"\r
                 "&[last regular]<*啊阿埃挨哎唉哀皑癌蔼矮艾碍爱隘鞍氨安俺按暗岸胺案肮昂盎凹敖熬翱袄傲奥懊澳芭捌扒叭吧笆八疤巴拔跋靶把耙坝霸罢爸白柏百摆佰败拜稗斑班搬扳般颁板版扮拌伴瓣半办绊邦帮梆榜膀绑棒磅蚌镑傍谤苞胞包褒剥薄雹保堡饱宝抱报暴豹鲍爆杯碑悲卑北辈背贝钡倍狈备惫焙被奔苯本笨崩绷甭泵蹦迸逼鼻比鄙笔彼碧蓖蔽毕毙毖币庇痹闭敝弊必辟壁臂避陛鞭边编贬扁便变卞辨辩辫遍标彪膘表鳖憋别瘪彬斌濒滨宾摈兵冰柄丙秉饼炳病并玻菠播拨钵波博勃搏铂箔伯帛舶脖膊渤泊驳捕卜哺补埠不布步簿部怖擦猜裁材才财睬踩采彩菜蔡餐参蚕残惭惨灿苍舱仓沧藏操糙槽曹草厕策侧册测层蹭插叉茬茶查碴搽察岔差诧拆柴豺搀掺蝉馋谗缠铲产阐颤昌猖场尝常长偿肠厂敞畅唱倡超抄钞朝嘲潮巢吵炒车扯撤掣彻澈郴臣辰尘晨忱沉陈趁衬撑称城橙成呈乘程惩澄诚承逞骋秤吃痴持匙池迟弛驰耻齿侈尺赤翅斥炽充冲虫崇宠抽酬畴踌稠愁筹仇绸瞅丑臭初出橱厨躇锄雏滁除楚础储矗搐触处揣川穿椽传船喘串疮窗幢床闯创吹炊捶锤垂春椿醇唇淳纯蠢戳绰疵茨磁雌辞慈瓷词此刺赐次聪葱囱匆从丛凑粗醋簇促蹿篡窜摧崔催脆瘁粹淬翠村存寸磋撮搓措挫错搭达答瘩打大呆歹傣戴带殆代贷袋待逮怠耽担丹单郸掸胆旦氮但惮淡诞弹蛋当挡党荡档刀捣蹈倒岛祷导到稻悼道盗德得的蹬灯登等瞪凳邓堤低滴迪敌笛狄涤翟嫡抵底地蒂第帝弟递缔颠掂滇碘点典靛垫电佃甸店惦奠淀殿碉叼雕凋刁掉吊钓调跌爹碟蝶迭谍叠丁盯叮钉顶鼎锭定订丢东冬董懂动栋侗恫冻洞兜抖斗陡豆逗痘都督毒犊独读堵睹赌杜镀肚度渡妒端短锻段断缎堆兑队对墩吨蹲敦顿囤钝盾遁掇哆多夺垛躲朵跺舵剁惰堕蛾峨鹅俄额讹娥恶厄扼遏鄂饿恩而儿耳尔饵洱二贰发罚筏伐乏阀法珐藩帆番翻樊矾钒繁凡烦反返范贩犯饭泛坊芳方肪房防妨仿访纺放菲非啡飞肥匪诽吠肺废沸费芬酚吩氛分纷坟焚汾粉奋份忿愤粪丰封枫蜂峰锋风疯烽逢冯缝讽奉凤佛否夫敷肤孵扶拂辐幅氟符伏俘服浮涪福袱弗甫抚辅俯釜斧脯腑府腐赴副覆赋复傅付阜父腹负富讣附妇缚咐噶嘎该改概钙盖溉干甘杆柑竿肝赶感秆敢赣冈刚钢缸肛纲岗港杠篙皋高膏羔糕搞镐稿告哥歌搁戈鸽胳疙割革葛格蛤阁隔铬个各给根跟耕更庚羹埂耿梗工攻功恭龚供躬公宫弓巩汞拱贡共钩勾沟苟狗垢构购够辜菇咕箍估沽孤姑鼓古蛊骨谷股故顾固雇刮瓜剐寡挂褂乖拐怪棺关官冠观管馆罐惯灌贯光广逛瑰规圭硅归龟闺轨鬼诡癸桂柜跪贵刽辊滚棍锅郭国果裹过哈骸孩海氦亥害骇酣憨邯韩含涵寒函喊罕翰撼捍旱憾悍焊汗汉夯杭航壕嚎豪毫郝好耗号浩呵喝荷菏核禾和何合盒貉阂河涸赫褐鹤贺嘿黑痕很狠恨哼亨横衡恒轰哄烘虹鸿洪宏弘红喉侯猴吼厚候后呼乎忽瑚壶葫胡蝴狐糊湖弧虎唬护互沪户花哗华猾滑画划化话槐徊怀淮坏欢环桓还缓换患唤痪豢焕涣宦幻荒慌黄磺蝗簧皇凰惶煌晃幌恍谎灰挥辉徽恢蛔回毁悔慧卉惠晦贿秽会烩汇讳诲绘荤昏婚魂浑混豁活伙火获或惑霍货祸击圾基机畸稽积箕肌饥迹激讥鸡姬绩缉吉极棘辑籍集及急疾汲即嫉级挤几脊己蓟技冀季伎祭剂悸济寄寂计记既忌际妓继纪嘉枷夹佳家加荚颊贾甲钾假稼价架驾嫁歼监坚尖笺间煎兼肩艰奸缄茧检柬碱硷拣捡简俭剪减荐槛鉴践贱见键箭件健舰剑饯渐溅涧建僵姜将浆江疆蒋桨奖讲匠酱降蕉椒礁焦胶交郊浇骄娇嚼搅铰矫侥脚狡角饺缴绞剿教酵轿较叫窖揭接皆秸街阶截劫节桔杰捷睫竭洁结解姐戒藉芥界借介疥诫届巾筋斤金今津襟紧锦仅谨进靳晋禁近烬浸尽劲荆兢茎睛晶鲸京惊精粳经井警景颈静境敬镜径痉靖竟竞净炯窘揪究纠玖韭久灸九酒厩救旧臼舅咎就疚鞠拘狙疽居驹菊局咀矩举沮聚拒据巨具距踞锯俱句惧炬剧捐鹃娟倦眷卷绢撅攫抉掘倔爵觉决诀绝均菌钧军君峻俊竣浚郡骏喀咖卡咯开揩楷凯慨刊堪勘坎砍看康慷糠扛抗亢炕考拷烤靠坷苛柯棵磕颗科壳咳可渴克刻客课肯啃垦恳坑吭空恐孔控抠口扣寇枯哭窟苦酷库裤夸垮挎跨胯块筷侩快宽款匡筐狂框矿眶旷况亏盔岿窥葵奎魁傀馈愧溃坤昆捆困括扩廓阔垃拉喇蜡腊辣啦莱来赖蓝婪栏拦篮阑兰澜谰揽览懒缆烂滥琅榔狼廊郎朗浪捞劳牢老佬姥酪烙涝勒乐雷镭蕾磊累儡垒擂肋类泪棱楞冷厘梨犁黎篱狸离漓理李里鲤礼莉荔吏栗丽厉励砾历利傈例俐痢立粒沥隶力璃哩俩联莲连镰廉怜涟帘敛脸链恋炼练粮凉梁粱良两辆量晾亮谅撩聊僚疗燎寥辽潦了撂镣廖料列裂烈劣猎琳林磷霖临邻鳞淋凛赁吝拎玲菱零龄铃伶羚凌灵陵岭领另令溜琉榴硫馏留刘瘤流柳六龙聋咙笼窿隆垄拢陇楼娄搂篓漏陋芦卢颅庐炉掳卤虏鲁麓碌露路赂鹿潞禄录陆戮驴吕铝侣旅履屡缕虑氯律率滤绿峦挛孪滦卵乱掠略抡轮伦仑沦纶论萝螺罗逻锣箩骡裸落洛骆络妈麻玛码蚂马骂嘛吗埋买麦卖迈脉瞒馒蛮满蔓曼慢漫谩芒茫盲氓忙莽猫茅锚毛矛铆卯茂冒帽貌贸么玫枚梅酶霉煤没眉媒镁每美昧寐妹媚门闷们萌蒙檬盟锰猛梦孟眯醚靡糜迷谜弥米秘觅泌蜜密幂棉眠绵冕免勉娩缅面苗描瞄藐秒渺庙妙蔑灭民抿皿敏悯闽明螟鸣铭名命谬摸摹蘑模膜磨摩魔抹末莫墨默沫漠寞陌谋牟某拇牡亩姆母墓暮幕募慕木目睦牧穆拿哪呐钠那娜纳氖乃奶耐奈南男难囊挠脑恼闹淖呢馁内嫩能妮霓倪泥尼拟你匿腻逆溺蔫拈年碾撵捻念娘酿鸟尿捏聂孽啮镊镍涅您柠狞凝宁拧泞牛扭钮纽脓浓农弄奴努怒女暖虐疟挪懦糯诺哦欧鸥殴藕呕偶沤啪趴爬帕怕琶拍排牌徘湃派攀潘盘磐盼畔判叛乓庞旁耪胖抛咆刨炮袍跑泡呸胚培裴赔陪配佩沛喷盆砰抨烹澎彭蓬棚硼篷膨朋鹏捧碰坯砒霹批披劈琵毗啤脾疲皮匹痞僻屁譬篇偏片骗飘漂瓢票撇瞥拼频贫品聘乒坪苹萍平凭瓶评屏坡泼颇婆破魄迫粕剖扑铺仆莆葡菩蒲埔朴圃普浦谱曝瀑期欺栖戚妻七凄漆柒沏其棋奇歧畦崎脐齐旗祈祁骑起岂乞企启契砌器气迄弃汽泣讫掐恰洽牵扦钎铅千迁签仟谦乾黔钱钳前潜遣浅谴堑嵌欠歉枪呛腔羌墙蔷强抢橇锹敲悄桥瞧乔侨巧鞘撬翘峭俏窍切茄且怯窃钦侵亲秦琴勤芹擒禽寝沁青轻氢倾卿清擎晴氰情顷请庆琼穷秋丘邱球求囚酋泅趋区蛆曲躯屈驱渠取娶龋趣去圈颧权醛泉全痊拳犬券劝缺炔瘸却鹊榷确雀裙群然燃冉染瓤壤攘嚷让饶扰绕惹热壬仁人忍韧任认刃妊纫扔仍日戎茸蓉荣融熔溶容绒冗揉柔肉茹蠕儒孺如辱乳汝入褥软阮蕊瑞锐闰润若弱撒洒萨腮鳃塞赛三叁伞散桑嗓丧搔骚扫嫂瑟色涩森僧莎砂杀刹沙纱傻啥煞筛晒珊苫杉山删煽衫闪陕擅赡膳善汕扇缮墒伤商赏晌上尚裳梢捎稍烧芍勺韶少哨邵绍奢赊蛇舌舍赦摄射慑涉社设砷申呻伸身深娠绅神沈审婶甚肾慎渗声生甥牲升绳省盛剩胜圣师失狮施湿诗尸虱十石拾时什食蚀实识史矢使屎驶始式示士世柿事拭誓逝势是嗜噬适仕侍释饰氏市恃室视试收手首守寿授售受瘦兽蔬枢梳殊抒输叔舒淑疏书赎孰熟薯暑曙署蜀黍鼠属术述树束戍竖墅庶数漱恕刷耍摔衰甩帅栓拴霜双爽谁水睡税吮瞬顺舜说硕朔烁斯撕嘶思私司丝死肆寺嗣四伺似饲巳松耸怂颂送宋讼诵搜艘擞嗽苏酥俗素速粟僳塑溯宿诉肃酸蒜算虽隋随绥髓碎岁穗遂隧祟孙损笋蓑梭唆缩琐索锁所塌他它她塔獭挞蹋踏胎苔抬台泰酞太态汰坍摊贪瘫滩坛檀痰潭谭谈坦毯袒碳探叹炭汤塘搪堂棠膛唐糖倘躺淌趟烫掏涛滔绦萄桃逃淘陶讨套特藤腾疼誊梯剔踢锑提题蹄啼体替嚏惕涕剃屉天添填田甜恬舔腆挑条迢眺跳贴铁帖厅听烃汀廷停亭庭挺艇通桐酮瞳同铜彤童桶捅筒统痛偷投头透凸秃突图徒途涂屠土吐兔湍团推颓腿蜕褪退吞屯臀拖托脱鸵陀驮驼椭妥拓唾挖哇蛙洼娃瓦袜歪外豌弯湾玩顽丸烷完碗挽晚皖惋宛婉万腕汪王亡枉网往旺望忘妄威巍微危韦违桅围唯惟为潍维苇萎委伟伪尾纬未蔚味畏胃喂魏位渭谓尉慰卫瘟温蚊文闻纹吻稳紊问嗡翁瓮挝蜗涡窝我斡卧握沃巫呜钨乌污诬屋无芜梧吾吴毋武五捂午舞伍侮坞戊雾晤物勿务悟误昔熙析西硒矽晰嘻吸锡牺稀息希悉膝夕惜熄烯溪汐犀檄袭席习媳喜铣洗系隙戏细瞎虾匣霞辖暇峡侠狭下厦夏吓掀锨先仙鲜纤咸贤衔舷闲涎弦嫌显险现献县腺馅羡宪陷限线相厢镶香箱襄湘乡翔祥详想响享项巷橡像向象萧硝霄削哮嚣销消宵淆晓小孝校肖啸笑效楔些歇蝎鞋协挟携邪斜胁谐写械卸蟹懈泄泻谢屑薪芯锌欣辛新忻心信衅星腥猩惺兴刑型形邢行醒幸杏性姓兄凶胸匈汹雄熊休修羞朽嗅锈秀袖绣墟戌需虚嘘须徐许蓄酗叙旭序畜恤絮婿绪续轩喧宣悬旋玄选癣眩绚靴薛学穴雪血勋熏循旬询寻驯巡殉汛训讯逊迅压押鸦鸭呀丫芽牙蚜崖衙涯雅哑亚讶焉咽阉烟淹盐严研蜒岩延言颜阎炎沿奄掩眼衍演艳堰燕厌砚雁唁彦焰宴谚验殃央鸯秧杨扬佯疡羊洋阳氧仰痒养样漾邀腰妖瑶摇尧遥窑谣姚咬舀药要耀椰噎耶爷野冶也页掖业叶曳腋夜液一壹医揖铱依伊衣颐夷遗移仪胰疑沂宜姨彝椅蚁倚已乙矣以艺抑易邑屹亿役臆逸肄疫亦裔意毅忆义益溢诣议谊译异翼翌绎茵荫因殷音阴姻吟银淫寅饮尹引隐印英樱婴鹰应缨莹萤营荧蝇迎赢盈影颖硬映哟拥佣臃痈庸雍踊蛹咏泳涌永恿勇用幽优悠忧尤由邮铀犹油游酉有友右佑釉诱又幼迂淤于盂榆虞愚舆余俞逾鱼愉渝渔隅予娱雨与屿禹宇语羽玉域芋郁吁遇喻峪御愈欲狱育誉浴寓裕预豫驭鸳渊冤元垣袁原援辕园员圆猿源缘远苑愿怨院曰约越跃钥岳粤月悦阅耘云郧匀陨允运蕴酝晕韵孕匝砸杂栽哉灾宰载再在咱攒暂赞赃脏葬遭糟凿藻枣早澡蚤躁噪造皂灶燥责择则泽贼怎增憎曾赠扎喳渣札轧铡闸眨栅榨咋乍炸诈摘斋宅窄债寨瞻毡詹粘沾盏斩辗崭展蘸栈占战站湛绽樟章彰漳张掌涨杖丈帐账仗胀瘴障招昭找沼赵照罩兆肇召遮折哲蛰辙者锗蔗这浙珍斟真甄砧臻贞针侦枕疹诊震振镇阵蒸挣睁征狰争怔整拯正政帧症郑证芝枝支吱蜘知肢脂汁之织职直植殖执值侄址指止趾只旨纸志挚掷至致置帜峙制智秩稚质炙痔滞治窒中盅忠钟衷终种肿重仲众舟周州洲诌粥轴肘帚咒皱宙昼骤珠株蛛朱猪诸诛逐竹烛煮拄瞩嘱主著柱助蛀贮铸筑住注祝驻抓爪拽专砖转撰赚篆桩庄装妆撞壮状椎锥追赘坠缀谆准捉拙卓桌琢茁酌啄着灼浊兹咨资姿滋淄孜紫仔籽滓子自渍字鬃棕踪宗综总纵邹走奏揍租足卒族祖诅阻组钻纂嘴醉最罪尊遵昨左佐柞做作坐座亍丌兀丐廿卅丕亘丞鬲孬噩丨禺丿匕乇夭爻卮氐囟胤馗毓睾鼗丶亟鼐乜乩亓芈孛啬嘏仄厍厝厣厥厮靥赝匚叵匦匮匾赜卦卣刂刈刎刭刳刿剀剌剞剡剜蒯剽劂劁劐劓冂罔亻仃仉仂仨仡仫仞伛仳伢佤仵伥伧伉伫佞佧攸佚佝佟佗伲伽佶佴侑侉侃侏佾佻侪佼侬侔俦俨俪俅俚俣俜俑俟俸倩偌俳倬倏倮倭俾倜倌倥倨偾偃偕偈偎偬偻傥傧傩傺僖儆僭僬僦僮儇儋仝氽佘佥俎龠汆籴兮巽黉馘冁夔勹匍訇匐凫夙兕亠兖亳衮袤亵脔裒禀嬴蠃羸冫冱冽冼凇冖冢冥讠讦讧讪讴讵讷诂诃诋诏诎诒诓诔诖诘诙诜诟诠诤诨诩诮诰诳诶诹诼诿谀谂谄谇谌谏谑谒谔谕谖谙谛谘谝谟谠谡谥谧谪谫谮谯谲谳谵谶卩卺阝阢阡阱阪阽阼陂陉陔陟陧陬陲陴隈隍隗隰邗邛邝邙邬邡邴邳邶邺邸邰郏郅邾郐郄郇郓郦郢郜郗郛郫郯郾鄄鄢鄞鄣鄱鄯鄹酃酆刍奂劢劬劭劾哿勐勖勰叟燮矍廴凵凼鬯厶弁畚巯坌垩垡塾墼壅壑圩圬圪圳圹圮圯坜圻坂坩垅坫垆坼坻坨坭坶坳垭垤垌垲埏垧垴垓垠埕埘埚埙埒垸埴埯埸埤埝堋堍埽埭堀堞堙塄堠塥塬墁墉墚墀馨鼙懿艹艽艿芏芊芨芄芎芑芗芙芫芸芾芰苈苊苣芘芷芮苋苌苁芩芴芡芪芟苄苎芤苡茉苷苤茏茇苜苴苒苘茌苻苓茑茚茆茔茕苠苕茜荑荛荜茈莒茼茴茱莛荞茯荏荇荃荟荀茗荠茭茺茳荦荥荨茛荩荬荪荭荮莰荸莳莴莠莪莓莜莅荼莶莩荽莸荻莘莞莨莺莼菁萁菥菘堇萘萋菝菽菖萜萸萑萆菔菟萏萃菸菹菪菅菀萦菰菡葜葑葚葙葳蒇蒈葺蒉葸萼葆葩葶蒌蒎萱葭蓁蓍蓐蓦蒽蓓蓊蒿蒺蓠蒡蒹蒴蒗蓥蓣蔌甍蔸蓰蔹蔟蔺蕖蔻蓿蓼蕙蕈蕨蕤蕞蕺瞢蕃蕲蕻薤薨薇薏蕹薮薜薅薹薷薰藓藁藜藿蘧蘅蘩蘖蘼廾弈夼奁耷奕奚奘匏尢尥尬尴扌扪抟抻拊拚拗拮挢拶挹捋捃掭揶捱捺掎掴捭掬掊捩掮掼揲揸揠揿揄揞揎摒揆掾摅摁搋搛搠搌搦搡摞撄摭撖摺撷撸撙撺擀擐擗擤擢攉攥攮弋忒甙弑卟叱叽叩叨叻吒吖吆呋呒呓呔呖呃吡呗呙吣吲咂咔呷呱呤咚咛咄呶呦咝哐咭哂咴哒咧咦哓哔呲咣哕咻咿哌哙哚哜咩咪咤哝哏哞唛哧唠哽唔哳唢唣唏唑唧唪啧喏喵啉啭啁啕唿啐唼唷啖啵啶啷唳唰啜喋嗒喃喱喹喈喁喟啾嗖喑啻嗟喽喾喔喙嗪嗷嗉嘟嗑嗫嗬嗔嗦嗝嗄嗯嗥嗲嗳嗌嗍嗨嗵嗤辔嘞嘈嘌嘁嘤嘣嗾嘀嘧嘭噘嘹噗嘬噍噢噙噜噌噔嚆噤噱噫噻噼嚅嚓嚯囔囗囝囡囵囫囹囿圄圊圉圜帏帙帔帑帱帻帼帷幄幔幛幞幡岌屺岍岐岖岈岘岙岑岚岜岵岢岽岬岫岱岣峁岷峄峒峤峋峥崂崃崧崦崮崤崞崆崛嵘崾崴崽嵬嵛嵯嵝嵫嵋嵊嵩嵴嶂嶙嶝豳嶷巅彳彷徂徇徉後徕徙徜徨徭徵徼衢彡犭犰犴犷犸狃狁狎狍狒狨狯狩狲狴狷猁狳猃狺狻猗猓猡猊猞猝猕猢猹猥猬猸猱獐獍獗獠獬獯獾舛夥飧夤夂饣饧饨饩饪饫饬饴饷饽馀馄馇馊馍馐馑馓馔馕庀庑庋庖庥庠庹庵庾庳赓廒廑廛廨廪膺忄忉忖忏怃忮怄忡忤忾怅怆忪忭忸怙怵怦怛怏怍怩怫怊怿怡恸恹恻恺恂恪恽悖悚悭悝悃悒悌悛惬悻悱惝惘惆惚悴愠愦愕愣惴愀愎愫慊慵憬憔憧憷懔懵忝隳闩闫闱闳闵闶闼闾阃阄阆阈阊阋阌阍阏阒阕阖阗阙阚丬爿戕氵汔汜汊沣沅沐沔沌汨汩汴汶沆沩泐泔沭泷泸泱泗沲泠泖泺泫泮沱泓泯泾洹洧洌浃浈洇洄洙洎洫浍洮洵洚浏浒浔洳涑浯涞涠浞涓涔浜浠浼浣渚淇淅淞渎涿淠渑淦淝淙渖涫渌涮渫湮湎湫溲湟溆湓湔渲渥湄滟溱溘滠漭滢溥溧溽溻溷滗溴滏溏滂溟潢潆潇漤漕滹漯漶潋潴漪漉漩澉澍澌潸潲潼潺濑濉澧澹澶濂濡濮濞濠濯瀚瀣瀛瀹瀵灏灞宀宄宕宓宥宸甯骞搴寤寮褰寰蹇謇辶迓迕迥迮迤迩迦迳迨逅逄逋逦逑逍逖逡逵逶逭逯遄遑遒遐遨遘遢遛暹遴遽邂邈邃邋彐彗彖彘尻咫屐屙孱屣屦羼弪弩弭艴弼鬻屮妁妃妍妩妪妣妗姊妫妞妤姒妲妯姗妾娅娆姝娈姣姘姹娌娉娲娴娑娣娓婀婧婊婕娼婢婵胬媪媛婷婺媾嫫媲嫒嫔媸嫠嫣嫱嫖嫦嫘嫜嬉嬗嬖嬲嬷孀尕尜孚孥孳孑孓孢驵驷驸驺驿驽骀骁骅骈骊骐骒骓骖骘骛骜骝骟骠骢骣骥骧纟纡纣纥纨纩纭纰纾绀绁绂绉绋绌绐绔绗绛绠绡绨绫绮绯绱绲缍绶绺绻绾缁缂缃缇缈缋缌缏缑缒缗缙缜缛缟缡缢缣缤缥缦缧缪缫缬缭缯缰缱缲缳缵幺畿巛甾邕玎玑玮玢玟珏珂珑玷玳珀珉珈珥珙顼琊珩珧珞玺珲琏琪瑛琦琥琨琰琮琬琛琚瑁瑜瑗瑕瑙瑷瑭瑾璜璎璀璁璇璋璞璨璩璐璧瓒璺韪韫韬杌杓杞杈杩枥枇杪杳枘枧杵枨枞枭枋杷杼柰栉柘栊柩枰栌柙枵柚枳柝栀柃枸柢栎柁柽栲栳桠桡桎桢桄桤梃栝桕桦桁桧桀栾桊桉栩梵梏桴桷梓桫棂楮棼椟椠棹椤棰椋椁楗棣椐楱椹楠楂楝榄楫榀榘楸椴槌榇榈槎榉楦楣楹榛榧榻榫榭槔榱槁槊槟榕槠榍槿樯槭樗樘橥槲橄樾檠橐橛樵檎橹樽樨橘橼檑檐檩檗檫猷獒殁殂殇殄殒殓殍殚殛殡殪轫轭轱轲轳轵轶轸轷轹轺轼轾辁辂辄辇辋辍辎辏辘辚軎戋戗戛戟戢戡戥戤戬臧瓯瓴瓿甏甑甓攴旮旯旰昊昙杲昃昕昀炅曷昝昴昱昶昵耆晟晔晁晏晖晡晗晷暄暌暧暝暾曛曜曦曩贲贳贶贻贽赀赅赆赈赉赇赍赕赙觇觊觋觌觎觏觐觑牮犟牝牦牯牾牿犄犋犍犏犒挈挲掰搿擘耄毪毳毽毵毹氅氇氆氍氕氘氙氚氡氩氤氪氲攵敕敫牍牒牖爰虢刖肟肜肓肼朊肽肱肫肭肴肷胧胨胩胪胛胂胄胙胍胗朐胝胫胱胴胭脍脎胲胼朕脒豚脶脞脬脘脲腈腌腓腴腙腚腱腠腩腼腽腭腧塍媵膈膂膑滕膣膪臌朦臊膻臁膦欤欷欹歃歆歙飑飒飓飕飙飚殳彀毂觳斐齑斓於旆旄旃旌旎旒旖炀炜炖炝炻烀炷炫炱烨烊焐焓焖焯焱煳煜煨煅煲煊煸煺熘熳熵熨熠燠燔燧燹爝爨灬焘煦熹戾戽扃扈扉礻祀祆祉祛祜祓祚祢祗祠祯祧祺禅禊禚禧禳忑忐怼恝恚恧恁恙恣悫愆愍慝憩憝懋懑戆肀聿沓泶淼矶矸砀砉砗砘砑斫砭砜砝砹砺砻砟砼砥砬砣砩硎硭硖硗砦硐硇硌硪碛碓碚碇碜碡碣碲碹碥磔磙磉磬磲礅磴礓礤礞礴龛黹黻黼盱眄眍盹眇眈眚眢眙眭眦眵眸睐睑睇睃睚睨睢睥睿瞍睽瞀瞌瞑瞟瞠瞰瞵瞽町畀畎畋畈畛畲畹疃罘罡罟詈罨罴罱罹羁罾盍盥蠲钅钆钇钋钊钌钍钏钐钔钗钕钚钛钜钣钤钫钪钭钬钯钰钲钴钶钷钸钹钺钼钽钿铄铈铉铊铋铌铍铎铐铑铒铕铖铗铙铘铛铞铟铠铢铤铥铧铨铪铩铫铮铯铳铴铵铷铹铼铽铿锃锂锆锇锉锊锍锎锏锒锓锔锕锖锘锛锝锞锟锢锪锫锩锬锱锲锴锶锷锸锼锾锿镂锵镄镅镆镉镌镎镏镒镓镔镖镗镘镙镛镞镟镝镡镢镤镥镦镧镨镩镪镫镬镯镱镲镳锺矧矬雉秕秭秣秫稆嵇稃稂稞稔稹稷穑黏馥穰皈皎皓皙皤瓞瓠甬鸠鸢鸨鸩鸪鸫鸬鸲鸱鸶鸸鸷鸹鸺鸾鹁鹂鹄鹆鹇鹈鹉鹋鹌鹎鹑鹕鹗鹚鹛鹜鹞鹣鹦鹧鹨鹩鹪鹫鹬鹱鹭鹳疒疔疖疠疝疬疣疳疴疸痄疱疰痃痂痖痍痣痨痦痤痫痧瘃痱痼痿瘐瘀瘅瘌瘗瘊瘥瘘瘕瘙瘛瘼瘢瘠癀瘭瘰瘿瘵癃瘾瘳癍癞癔癜癖癫癯翊竦穸穹窀窆窈窕窦窠窬窨窭窳衤衩衲衽衿袂袢裆袷袼裉裢裎裣裥裱褚裼裨裾裰褡褙褓褛褊褴褫褶襁襦襻疋胥皲皴矜耒耔耖耜耠耢耥耦耧耩耨耱耋耵聃聆聍聒聩聱覃顸颀颃颉颌颍颏颔颚颛颞颟颡颢颥颦虍虔虬虮虿虺虼虻蚨蚍蚋蚬蚝蚧蚣蚪蚓蚩蚶蛄蚵蛎蚰蚺蚱蚯蛉蛏蚴蛩蛱蛲蛭蛳蛐蜓蛞蛴蛟蛘蛑蜃蜇蛸蜈蜊蜍蜉蜣蜻蜞蜥蜮蜚蜾蝈蜴蜱蜩蜷蜿螂蜢蝽蝾蝻蝠蝰蝌蝮螋蝓蝣蝼蝤蝙蝥螓螯螨蟒蟆螈螅螭螗螃螫蟥螬螵螳蟋蟓螽蟑蟀蟊蟛蟪蟠蟮蠖蠓蟾蠊蠛蠡蠹蠼缶罂罄罅舐竺竽笈笃笄笕笊笫笏筇笸笪笙笮笱笠笥笤笳笾笞筘筚筅筵筌筝筠筮筻筢筲筱箐箦箧箸箬箝箨箅箪箜箢箫箴篑篁篌篝篚篥篦篪簌篾篼簏簖簋簟簪簦簸籁籀臾舁舂舄臬衄舡舢舣舭舯舨舫舸舻舳舴舾艄艉艋艏艚艟艨衾袅袈裘裟襞羝羟羧羯羰羲籼敉粑粝粜粞粢粲粼粽糁糇糌糍糈糅糗糨艮暨羿翎翕翥翡翦翩翮翳糸絷綦綮繇纛麸麴赳趄趔趑趱赧赭豇豉酊酐酎酏酤酢酡酰酩酯酽酾酲酴酹醌醅醐醍醑醢醣醪醭醮醯醵醴醺豕鹾趸跫踅蹙蹩趵趿趼趺跄跖跗跚跞跎跏跛跆跬跷跸跣跹跻跤踉跽踔踝踟踬踮踣踯踺蹀踹踵踽踱蹉蹁蹂蹑蹒蹊蹰蹶蹼蹯蹴躅躏躔躐躜躞豸貂貊貅貘貔斛觖觞觚觜觥觫觯訾謦靓雩雳雯霆霁霈霏霎霪霭霰霾龀龃龅龆龇龈龉龊龌黾鼋鼍隹隼隽雎雒瞿雠銎銮鋈錾鍪鏊鎏鐾鑫鱿鲂鲅鲆鲇鲈稣鲋鲎鲐鲑鲒鲔鲕鲚鲛鲞鲟鲠鲡鲢鲣鲥鲦鲧鲨鲩鲫鲭鲮鲰鲱鲲鲳鲴鲵鲶鲷鲺鲻鲼鲽鳄鳅鳆鳇鳊鳋鳌鳍鳎鳏鳐鳓鳔鳕鳗鳘鳙鳜鳝鳟鳢靼鞅鞑鞒鞔鞯鞫鞣鞲鞴骱骰骷鹘骶骺骼髁髀髅髂髋髌髑魅魃魇魉魈魍魑飨餍餮饕饔髟髡髦髯髫髻髭髹鬈鬏鬓鬟鬣麽麾縻麂麇麈麋麒鏖麝麟黛黜黝黠黟黢黩黧黥黪黯鼢鼬鼯鼹鼷鼽鼾齄"\r
             }\r
-            Version{"33.1"}\r
+            Version{"34"}\r
         }\r
         pinyin{\r
             Sequence{\r
@@ -1888,7 +1888,7 @@ zh{
                 "&弞<沈阳/阳"\r
                 "&銺<藏文/文"\r
             }\r
-            Version{"33.1"}\r
+            Version{"34"}\r
         }\r
         private-pinyin{\r
             Sequence{\r
@@ -1902,7 +1902,7 @@ zh{
                 "&[before 2]u<<ū<<<Ū<<ú<<<Ú<<ǔ<<<Ǔ<<ù<<<Ù"\r
                 "&U<<ǖ<<<Ǖ<<ǘ<<<Ǘ<<ǚ<<<Ǚ<<ǜ<<<Ǜ<<ü<<<Ü"\r
             }\r
-            Version{"33.1"}\r
+            Version{"34"}\r
         }\r
         stroke{\r
             Sequence{\r
@@ -2604,7 +2604,7 @@ zh{
                 "&龟<<<⻳"\r
                 "&龠<<<⿕"\r
             }\r
-            Version{"33.1"}\r
+            Version{"34"}\r
         }\r
         unihan{\r
             Sequence{\r
@@ -2612,7 +2612,7 @@ zh{
                 "[import zh-u-co-private-pinyin]"\r
                 "[reorder Hani Bopo]"\r
             }\r
-            Version{"33.1"}\r
+            Version{"34"}\r
         }\r
         zhuyin{\r
             Sequence{\r
@@ -4638,7 +4638,7 @@ zh{
                 "&龟<<<⻳"\r
                 "&龠<<<⿕"\r
             }\r
-            Version{"33.1"}\r
+            Version{"34"}\r
         }\r
     }\r
 }\r
index e36b44d..3d6bc2a 100644 (file)
@@ -184,7 +184,7 @@ af{
         }\r
         EUR{\r
             "€",\r
-            "Euro",\r
+            "euro",\r
         }\r
         FJD{\r
             "FJD",\r
@@ -630,6 +630,10 @@ af{
             "VEF",\r
             "Venezolaanse bolivar",\r
         }\r
+        VES{\r
+            "VES",\r
+            "Venezolaanse Bolívar",\r
+        }\r
         VND{\r
             "₫",\r
             "Viëtnamese dong",\r
@@ -659,8 +663,8 @@ af{
             "CFP-frank",\r
         }\r
         XXX{\r
-            "XXX",\r
-            "Onbekende geldeenheid",\r
+            "¤",\r
+            "onbekende geldeenheid",\r
         }\r
         YER{\r
             "YER",\r
@@ -1378,8 +1382,12 @@ af{
             other{"Oezbekiese som"}\r
         }\r
         VEF{\r
-            one{"Venezolaanse bolivar"}\r
-            other{"Venezolaanse bolivar"}\r
+            one{"Venezolaanse bolívar (2008–2018)"}\r
+            other{"Venezolaanse bolívare (2008–2018)"}\r
+        }\r
+        VES{\r
+            one{"Venezolaanse bolívar"}\r
+            other{"Venezolaanse bolívare"}\r
         }\r
         VND{\r
             one{"Viëtnamese dong"}\r
@@ -1430,5 +1438,5 @@ af{
         one{"{0} {1}"}\r
         other{"{0} {1}"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.65"}\r
 }\r
index 7ecb034..34991c1 100644 (file)
@@ -504,11 +504,11 @@ am{
         }\r
         SDG{\r
             "SDG",\r
-            "á\8b¨á\88±á\8b³á\8a\95 á\8b²á\8a\93á\88­",\r
+            "á\8b¨á\88±á\8b³á\8a\95 á\8d\93á\8b\8dá\8a\95á\8bµ",\r
         }\r
         SDP{\r
             "SDP",\r
-            "የሱዳን ፓውንድ",\r
+            "የሱዳን ፓውንድ (1957–1998)",\r
         }\r
         SEK{\r
             "SEK",\r
@@ -612,7 +612,11 @@ am{
         }\r
         VEF{\r
             "VEF",\r
-            "የቬንዝዌላ ቦሊቫር",\r
+            "የቬንዝዌላ ቦሊቫር (2008–2018)",\r
+        }\r
+        VES{\r
+            "VES",\r
+            "የቬንዝዌላ-ቦሊቫር",\r
         }\r
         VND{\r
             "₫",\r
@@ -643,7 +647,7 @@ am{
             "ሲ ኤፍ ፒ ፍራንክ",\r
         }\r
         XXX{\r
-            "XXX",\r
+            "¤",\r
             "ያልታወቀ ገንዘብ",\r
         }\r
         YER{\r
@@ -1261,8 +1265,12 @@ am{
             other{"የሲሼል ሩፒ"}\r
         }\r
         SDG{\r
-            one{"የሱዳን ዲናር"}\r
-            other{"የሱዳን ዲናር"}\r
+            one{"የሱዳን ፓውንድ"}\r
+            other{"የሱዳን ፓውንድ"}\r
+        }\r
+        SDP{\r
+            one{"የሱዳን ፓውንድ (1957–1998)"}\r
+            other{"የሱዳን ፓውንድ (1957–1998)"}\r
         }\r
         SEK{\r
             one{"የስዊድን ክሮና"}\r
@@ -1365,8 +1373,12 @@ am{
             other{"የኡዝፔኪስታን ሶም"}\r
         }\r
         VEF{\r
-            one{"የቬንዝዌላ ቦሊቫር"}\r
-            other{"የቬንዝዌላ ቦሊቫር"}\r
+            one{"የቬንዝዌላ ቦሊቫር (2008–2018)"}\r
+            other{"የቬንዝዌላ ቦሊቫር (2008–2018)"}\r
+        }\r
+        VES{\r
+            one{"የቬንዝዌላ-ቦሊቫር"}\r
+            other{"የቬንዝዌላ-ቦሊቫር"}\r
         }\r
         VND{\r
             one{"የቭየትናም ዶንግ"}\r
@@ -1421,5 +1433,5 @@ am{
         one{"{0} {1}"}\r
         other{"{0} {1}"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.65"}\r
 }\r
index f2affb7..06687bf 100644 (file)
@@ -236,7 +236,7 @@ ar{
         }\r
         CVE{\r
             "CVE",\r
-            "اسÙ\83Ù\88دÙ\88 Ø§Ù\84رأس Ø§Ù\84خضراء",\r
+            "اسÙ\83Ù\88دÙ\88 Ø§Ù\84رأس Ø§Ù\84أخضر",\r
         }\r
         CYP{\r
             "CYP",\r
@@ -567,11 +567,11 @@ ar{
             "باتاكا ماكاوي",\r
         }\r
         MRO{\r
-            "أ.م.‏",\r
+            "MRO",\r
             "أوقية موريتانية - 1973-2017",\r
         }\r
         MRU{\r
-            "MRU",\r
+            "أ.م.",\r
             "أوقية موريتانية",\r
         }\r
         MTL{\r
@@ -900,6 +900,10 @@ ar{
         }\r
         VEF{\r
             "VEF",\r
+            "بوليفار فنزويلي - 2008–2018",\r
+        }\r
+        VES{\r
+            "VES",\r
             "بوليفار فنزويلي",\r
         }\r
         VND{\r
@@ -1425,12 +1429,12 @@ ar{
             zero{"بيزو كوبي"}\r
         }\r
         CVE{\r
-            few{"اسÙ\83Ù\88دÙ\88 Ø§Ù\84رأس Ø§Ù\84خضراء"}\r
-            many{"اسÙ\83Ù\88دÙ\88 Ø§Ù\84رأس Ø§Ù\84خضراء"}\r
-            one{"اسÙ\83Ù\88دÙ\88 Ø§Ù\84رأس Ø§Ù\84خضراء"}\r
-            other{"اسÙ\83Ù\88دÙ\88 Ø§Ù\84رأس Ø§Ù\84خضراء"}\r
-            two{"اسÙ\83Ù\88دÙ\88 Ø§Ù\84رأس Ø§Ù\84خضراء"}\r
-            zero{"اسÙ\83Ù\88دÙ\88 Ø§Ù\84رأس Ø§Ù\84خضراء"}\r
+            few{"اسÙ\83Ù\88دÙ\88 Ø§Ù\84رأس Ø§Ù\84أخضر"}\r
+            many{"اسÙ\83Ù\88دÙ\88 Ø§Ù\84رأس Ø§Ù\84أخضر"}\r
+            one{"اسÙ\83Ù\88دÙ\88 Ø§Ù\84رأس Ø§Ù\84أخضر"}\r
+            other{"اسÙ\83Ù\88دÙ\88 Ø§Ù\84رأس Ø§Ù\84أخضر"}\r
+            two{"اسÙ\83Ù\88دÙ\88 Ø§Ù\84رأس Ø§Ù\84أخضر"}\r
+            zero{"اسÙ\83Ù\88دÙ\88 Ø§Ù\84رأس Ø§Ù\84أخضر"}\r
         }\r
         CZK{\r
             few{"كرونة تشيكية"}\r
@@ -2329,6 +2333,14 @@ ar{
             zero{"سوم أوزبكستاني"}\r
         }\r
         VEF{\r
+            few{"بوليفار فنزويلي - 2008–2018"}\r
+            many{"بوليفار فنزويلي - 2008–2018"}\r
+            one{"بوليفار فنزويلي - 2008–2018"}\r
+            other{"بوليفار فنزويلي - 2008–2018"}\r
+            two{"بوليفار فنزويلي - 2008–2018"}\r
+            zero{"بوليفار فنزويلي - 2008–2018"}\r
+        }\r
+        VES{\r
             few{"بوليفار فنزويلي"}\r
             many{"بوليفار فنزويلي"}\r
             one{"بوليفار فنزويلي"}\r
@@ -2441,5 +2453,5 @@ ar{
         two{"{0} {1}"}\r
         zero{"{0} {1}"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.50"}\r
 }\r
index d5fda93..7d9f27b 100644 (file)
@@ -586,8 +586,16 @@ as{
             "UZS",\r
             "উজবেকিস্তানী ছোম",\r
         }\r
+        VEB{\r
+            "VEB",\r
+            "ভেনিজুৱেলান বলিভাৰ (1871–2008)",\r
+        }\r
         VEF{\r
             "VEF",\r
+            "ভেনিজুৱেলান বলিভাৰ (2008–2018)",\r
+        }\r
+        VES{\r
+            "VES",\r
             "ভেনিজুৱেলান বলিভাৰ",\r
         }\r
         VND{\r
@@ -619,7 +627,7 @@ as{
             "CFP ফ্ৰেংক",\r
         }\r
         XXX{\r
-            "XXX",\r
+            "¤",\r
             "অজ্ঞাত মুদ্ৰা",\r
         }\r
         YER{\r
@@ -1319,9 +1327,17 @@ as{
             one{"উজবেকিস্তানী ছোম"}\r
             other{"উজবেকিস্তানী ছোম"}\r
         }\r
+        VEB{\r
+            one{"ভেনিজুৱেলান বলিভাৰ (1871–2008)"}\r
+            other{"ভেনিজুৱেলান বলিভাৰ (1871–2008)"}\r
+        }\r
         VEF{\r
-            one{"ভেনিজুৱেলান বলিভাৰ"}\r
-            other{"ভেনিজুৱেলান বলিভাৰ"}\r
+            one{"ভেনিজুৱেলান বলিভাৰ (2008–2018)"}\r
+            other{"ভেনিজুৱেলান বলিভাৰ (2008–2018)"}\r
+        }\r
+        VES{\r
+            one{"ভেনিজুৱেলান ব’লিভাৰ"}\r
+            other{"ভেনিজুৱেলান ব’লিভাৰছ্"}\r
         }\r
         VND{\r
             one{"ভিয়েটনামীজ ডং"}\r
@@ -1368,5 +1384,5 @@ as{
             other{"জাম্বিয়ান কোৱাচা"}\r
         }\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.94"}\r
 }\r
index f7c5242..dce9e1d 100644 (file)
@@ -1040,6 +1040,10 @@ ast{
         }\r
         VEF{\r
             "VEF",\r
+            "bolívar venezolanu (2008–2018)",\r
+        }\r
+        VES{\r
+            "VES",\r
             "bolívar venezolanu",\r
         }\r
         VND{\r
@@ -2344,6 +2348,10 @@ ast{
             other{"bolívares venezolanos (1871–2008)"}\r
         }\r
         VEF{\r
+            one{"bolívar venezolanu (2008–2018)"}\r
+            other{"bolívares venezolanos (2008–2018)"}\r
+        }\r
+        VES{\r
             one{"bolívar venezolanu"}\r
             other{"bolívares venezolanos"}\r
         }\r
@@ -2512,5 +2520,5 @@ ast{
         one{"{0} {1}"}\r
         other{"{0} {1}"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.91"}\r
 }\r
index 825858d..a7cb680 100644 (file)
@@ -956,6 +956,10 @@ az{
         }\r
         VEF{\r
             "VEF",\r
+            "Venesuela Bolivarı (2008–2018)",\r
+        }\r
+        VES{\r
+            "VES",\r
             "Venesuela Bolivarı",\r
         }\r
         VND{\r
@@ -1015,7 +1019,7 @@ az{
             "Platinum",\r
         }\r
         XXX{\r
-            "XXX",\r
+            "¤",\r
             "Naməlum Valyuta",\r
         }\r
         YDD{\r
@@ -2129,6 +2133,10 @@ az{
             other{"Venesuela bolivarı (1871–2008)"}\r
         }\r
         VEF{\r
+            one{"Venesuela bolivarı (2008–2018)"}\r
+            other{"Venesuela bolivarı (2008–2018)"}\r
+        }\r
+        VES{\r
             one{"Venesuela bolivarı"}\r
             other{"Venesuela bolivarı"}\r
         }\r
@@ -2253,5 +2261,5 @@ az{
         one{"{0} {1}"}\r
         other{"{0} {1}"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.53"}\r
 }\r
index 29fda17..9c5cd0a 100644 (file)
@@ -11,5 +11,5 @@ az_Cyrl{
     Currencies%variant{\r
         AZN{"ман."}\r
     }\r
-    Version{"2.1.38.69"}\r
+    Version{"2.1.44.53"}\r
 }\r
index ff63bd6..617347f 100644 (file)
@@ -592,6 +592,10 @@ be{
         }\r
         VEF{\r
             "VEF",\r
+            "венесуальскі балівар (2008–2018)",\r
+        }\r
+        VES{\r
+            "VES",\r
             "венесуальскі балівар",\r
         }\r
         VND{\r
@@ -623,7 +627,7 @@ be{
             "французскі ціхаакіянскі франк",\r
         }\r
         XXX{\r
-            "XXX",\r
+            "¤",\r
             "невядомая валюта",\r
         }\r
         YER{\r
@@ -1623,6 +1627,12 @@ be{
             other{"узбекскага сума"}\r
         }\r
         VEF{\r
+            few{"венесуальскія балівары (2008–2018)"}\r
+            many{"венесуальскіх балівараў (2008–2018)"}\r
+            one{"венесуальскі балівар (2008–2018)"}\r
+            other{"венесуальскага балівара (2008–2018)"}\r
+        }\r
+        VES{\r
             few{"венесуальскія балівары"}\r
             many{"венесуальскіх балівараў"}\r
             one{"венесуальскі балівар"}\r
@@ -1701,5 +1711,5 @@ be{
         one{"{0} {1}"}\r
         other{"{0} {1}"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.65"}\r
 }\r
index 616a37a..a3f4746 100644 (file)
@@ -950,6 +950,10 @@ bg{
             "VEF",\r
             "Венецуелски боливар",\r
         }\r
+        VES{\r
+            "VES",\r
+            "Венецуелски боливар (VES)",\r
+        }\r
         VND{\r
             "VND",\r
             "Виетнамски донг",\r
@@ -1027,7 +1031,7 @@ bg{
             "Код резервиран за целите на тестване",\r
         }\r
         XXX{\r
-            "XXX",\r
+            "¤",\r
             "Непозната валута",\r
         }\r
         YDD{\r
@@ -2031,6 +2035,10 @@ bg{
             one{"венецуелски боливар"}\r
             other{"венецуелски боливара"}\r
         }\r
+        VES{\r
+            one{"венецуелски боливар (VES)"}\r
+            other{"венецуелски боливара (VES)"}\r
+        }\r
         VND{\r
             one{"виетнамски донг"}\r
             other{"виетнамски донга"}\r
@@ -2120,5 +2128,5 @@ bg{
         one{"{0} {1}"}\r
         other{"{0} {1}"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.94"}\r
 }\r
index ef3099c..45d5a4e 100644 (file)
@@ -972,6 +972,10 @@ bn{
         }\r
         VEF{\r
             "VEF",\r
+            "ভেনিজুয়েলীয় বলিভার (২০০৮–২০১৮)",\r
+        }\r
+        VES{\r
+            "VES",\r
             "ভেনিজুয়েলীয় বলিভার",\r
         }\r
         VND{\r
@@ -1035,7 +1039,7 @@ bn{
             "প্লাটিনাম",\r
         }\r
         XXX{\r
-            "XXX",\r
+            "¤",\r
             "অজানা মুদ্রা",\r
         }\r
         YDD{\r
@@ -1797,6 +1801,10 @@ bn{
             other{"উজবেকিস্তানি সোম"}\r
         }\r
         VEF{\r
+            one{"ভেনিজুয়েলীয় বলিভার (২০০৮–২০১৮)"}\r
+            other{"ভেনিজুয়েলীয় বলিভার (২০০৮–২০১৮)"}\r
+        }\r
+        VES{\r
             one{"ভেনিজুয়েলীয় বলিভার"}\r
             other{"ভেনিজুয়েলীয় বলিভার"}\r
         }\r
@@ -1845,5 +1853,5 @@ bn{
             other{"জাম্বিয়ান কওয়াচা"}\r
         }\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.91"}\r
 }\r
index 199b64f..e4cf507 100644 (file)
@@ -15,7 +15,7 @@ bo{
             "ཨ་རིའི་སྒོར་",\r
         }\r
         XXX{\r
-            "XXX",\r
+            "¤",\r
             "མ་རྟོགས་པའི་ནུས་མེད་དངུལ་ལོར",\r
         }\r
     }\r
index 208ccef..39d94a3 100644 (file)
@@ -1040,6 +1040,10 @@ br{
         }\r
         VEF{\r
             "VEF",\r
+            "bolivar Venezuela (2008–2018)",\r
+        }\r
+        VES{\r
+            "VES",\r
             "bolivar Venezuela",\r
         }\r
         VND{\r
@@ -2910,6 +2914,13 @@ br{
             two{"volivar Venezuela (1871–2008)"}\r
         }\r
         VEF{\r
+            few{"bolivar Venezuela (2008–2018)"}\r
+            many{"a volivaroù Venezuela (2008–2018)"}\r
+            one{"bolivar Venezuela (2008–2018)"}\r
+            other{"bolivar Venezuela (2008–2018)"}\r
+            two{"volivar Venezuela (2008–2018)"}\r
+        }\r
+        VES{\r
             few{"bolivar Venezuela"}\r
             many{"a volivaroù Venezuela"}\r
             one{"bolivar Venezuela"}\r
@@ -3127,5 +3138,5 @@ br{
         other{"{0} {1}"}\r
         two{"{0} {1}"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.91"}\r
 }\r
index 9f39581..b77c904 100644 (file)
@@ -948,6 +948,10 @@ brx{
         }\r
         VEF{\r
             "VEF",\r
+            "वेनेज़ुएलाई बोलिवार (2008–2018)",\r
+        }\r
+        VES{\r
+            "VES",\r
             "वेनेज़ुएलाई बोलिवार",\r
         }\r
         VND{\r
@@ -1035,7 +1039,7 @@ brx{
             "टेस्टींग करनसी कोड",\r
         }\r
         XXX{\r
-            "XXX",\r
+            "¤",\r
             "अज्ञात या अवैध मुद्रा",\r
         }\r
         YDD{\r
@@ -1083,5 +1087,5 @@ brx{
             "ज़ीम्बाबवेई डॉलर",\r
         }\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.41.34"}\r
 }\r
index 024c9b5..11ae47b 100644 (file)
@@ -1004,7 +1004,11 @@ bs{
         }\r
         VEF{\r
             "VEF",\r
-            "Venecuelanski bolivar",\r
+            "venecuelanski bolivar (2008–2018)",\r
+        }\r
+        VES{\r
+            "VES",\r
+            "venecuelanski bolivar",\r
         }\r
         VND{\r
             "₫",\r
@@ -1095,7 +1099,7 @@ bs{
             "Kod testirane valute",\r
         }\r
         XXX{\r
-            "XXX",\r
+            "¤",\r
             "Nepoznata valuta",\r
         }\r
         YDD{\r
@@ -2506,8 +2510,13 @@ bs{
             other{"venecuelskih bolivara (1871–2008)"}\r
         }\r
         VEF{\r
+            few{"venecuelanska bolivara (2008–2018)"}\r
+            one{"venecuelanski bolivar (2008–2018)"}\r
+            other{"venecuelanskih bolivara (2008–2018)"}\r
+        }\r
+        VES{\r
             few{"venecuelanska bolivara"}\r
-            one{"venecuelanski bolivar"}\r
+            one{"venecuelanskih bolivara"}\r
             other{"venecuelanskih bolivara"}\r
         }\r
         VND{\r
@@ -2701,5 +2710,5 @@ bs{
         one{"{0} {1}"}\r
         other{"{0} {1}"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.88"}\r
 }\r
index da0d1ca..414ca4c 100644 (file)
@@ -973,6 +973,10 @@ bs_Cyrl{
         }\r
         VEF{\r
             "VEF",\r
+            "Венецуелански боливар (2008–2018)",\r
+        }\r
+        VES{\r
+            "VES",\r
             "Венецуелански боливар",\r
         }\r
         VND{\r
@@ -1060,7 +1064,7 @@ bs_Cyrl{
             "Код тестиране валуте",\r
         }\r
         XXX{\r
-            "XXX",\r
+            "¤",\r
             "Непозната или неважећа валута",\r
         }\r
         YDD{\r
@@ -2332,6 +2336,11 @@ bs_Cyrl{
             other{"венецуеланских боливара (1871–2008)"}\r
         }\r
         VEF{\r
+            few{"венецуеланска боливара (2008–2018)"}\r
+            one{"венецуелански боливар (2008–2018)"}\r
+            other{"венецуеланских боливара (2008–2018)"}\r
+        }\r
+        VES{\r
             few{"венецуеланска боливара"}\r
             one{"венецуелански боливар"}\r
             other{"венецуеланских боливара"}\r
@@ -2512,5 +2521,5 @@ bs_Cyrl{
         one{"{0} {1}"}\r
         other{"{0} {1}"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.41.34"}\r
 }\r
index 8fbe46a..55c7cd6 100644 (file)
@@ -267,7 +267,7 @@ ca{
             "iuan xinès extracontinental",\r
         }\r
         CNY{\r
-            "¥",\r
+            "CNY",\r
             "iuan xinès",\r
         }\r
         COP{\r
@@ -280,7 +280,7 @@ ca{
         }\r
         CRC{\r
             "CRC",\r
-            "colón costa-riqueny",\r
+            "colon costa-riqueny",\r
         }\r
         CSD{\r
             "CSD",\r
@@ -753,7 +753,7 @@ ca{
         }\r
         NIO{\r
             "NIO",\r
-            "córdoba oro nicaragüenca",\r
+            "córdoba nicaragüenc",\r
         }\r
         NLG{\r
             "NLG",\r
@@ -929,7 +929,7 @@ ca{
         }\r
         SVC{\r
             "SVC",\r
-            "colón salvadorenc",\r
+            "colon salvadorenc",\r
         }\r
         SYP{\r
             "SYP",\r
@@ -1041,6 +1041,10 @@ ca{
         }\r
         VEF{\r
             "VEF",\r
+            "bolívar veneçolà (2008–2018)",\r
+        }\r
+        VES{\r
+            "VES",\r
             "bolívar veneçolà",\r
         }\r
         VND{\r
@@ -1286,7 +1290,7 @@ ca{
         UAH{"₴"}\r
         USD{"$"}\r
         UYU{"$"}\r
-        VEF{"VEF"}\r
+        VEF{"Bs F"}\r
         VND{"₫"}\r
         XCD{"$"}\r
         ZAR{"R"}\r
@@ -1559,7 +1563,7 @@ ca{
         }\r
         CNH{\r
             one{"iuan xinès extracontinental"}\r
-            other{"iuan xinès extracontinental"}\r
+            other{"iuans xinesos extracontinentals"}\r
         }\r
         CNX{\r
             one{"dòlar del Banc Popular Xinès"}\r
@@ -1567,7 +1571,7 @@ ca{
         }\r
         CNY{\r
             one{"iuan xinès"}\r
-            other{"iuan xinesos"}\r
+            other{"iuans xinesos"}\r
         }\r
         COP{\r
             one{"peso colombià"}\r
@@ -1578,8 +1582,8 @@ ca{
             other{"unidades de valor real colombianes"}\r
         }\r
         CRC{\r
-            one{"colón costa-riqueny"}\r
-            other{"colones costa-riquenys"}\r
+            one{"colon costa-riqueny"}\r
+            other{"colons costa-riquenys"}\r
         }\r
         CSD{\r
             one{"dinar serbi antic"}\r
@@ -2003,7 +2007,7 @@ ca{
         }\r
         MWK{\r
             one{"kwacha malawià"}\r
-            other{"kwachas malawians"}\r
+            other{"kwacha malawians"}\r
         }\r
         MXN{\r
             one{"peso mexicà"}\r
@@ -2046,8 +2050,8 @@ ca{
             other{"córdobas nicaragüenques"}\r
         }\r
         NIO{\r
-            one{"córdoba oro nicaragüenca"}\r
-            other{"córdobas oro nicaragüenques"}\r
+            one{"córdoba nicaragüenc"}\r
+            other{"córdobas nicaragüencs"}\r
         }\r
         NLG{\r
             one{"florí neerlandès"}\r
@@ -2115,7 +2119,7 @@ ca{
         }\r
         QAR{\r
             one{"rial de Qatar"}\r
-            other{"rials qatarians"}\r
+            other{"rials de Qatar"}\r
         }\r
         RHD{\r
             one{"dòlar rhodesià"}\r
@@ -2334,6 +2338,10 @@ ca{
             other{"bolívars veneçolans (1871–2008)"}\r
         }\r
         VEF{\r
+            one{"bolívar veneçolà (2008–2018)"}\r
+            other{"bolívars veneçolans (2008–2018)"}\r
+        }\r
+        VES{\r
             one{"bolívar veneçolà"}\r
             other{"bolívars veneçolans"}\r
         }\r
@@ -2494,5 +2502,5 @@ ca{
         one{"{0} {1}"}\r
         other{"{0} {1}"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.65"}\r
 }\r
index 3de8370..e308147 100644 (file)
@@ -960,6 +960,10 @@ ccp{
         }\r
         VEF{\r
             "VEF",\r
+            "𑄞𑄬𑄚𑄨𑄎𑄪𑄔𑄮𑄣𑄚𑄴 𑄝𑄧𑄣𑄨𑄞𑄢𑄴 (2008–2018)",\r
+        }\r
+        VES{\r
+            "VES",\r
             "𑄞𑄬𑄚𑄨𑄎𑄪𑄔𑄮𑄣𑄚𑄴 𑄝𑄧𑄣𑄨𑄞𑄢𑄴",\r
         }\r
         VND{\r
@@ -1019,7 +1023,7 @@ ccp{
             "𑄛𑄳𑄣𑄑𑄨𑄚𑄟𑄴",\r
         }\r
         XXX{\r
-            "XXX",\r
+            "¤",\r
             "𑄦𑄧𑄝𑄢𑄴 𑄚𑄧𑄛𑄬𑄠𑄬 𑄑𑄬𑄋",\r
         }\r
         YDD{\r
@@ -1776,6 +1780,10 @@ ccp{
             other{"𑄃𑄪𑄌𑄴𑄝𑄬𑄇𑄨𑄌𑄴𑄖𑄚𑄨 𑄥𑄮𑄟𑄴"}\r
         }\r
         VEF{\r
+            one{"𑄞𑄬𑄚𑄨𑄎𑄪𑄔𑄮𑄣𑄚𑄴 𑄝𑄧𑄣𑄨𑄞𑄢𑄴 (2008–2018)"}\r
+            other{"𑄞𑄬𑄚𑄨𑄎𑄪𑄔𑄮𑄣𑄚𑄴 𑄝𑄧𑄣𑄨𑄞𑄢𑄴 (2008–2018)"}\r
+        }\r
+        VES{\r
             one{"𑄞𑄬𑄚𑄨𑄎𑄪𑄔𑄮𑄣𑄚𑄴 𑄝𑄧𑄣𑄨𑄞𑄢𑄴"}\r
             other{"𑄞𑄬𑄚𑄨𑄎𑄪𑄔𑄮𑄣𑄚𑄴 𑄝𑄧𑄣𑄨𑄞𑄢𑄴"}\r
         }\r
@@ -1824,5 +1832,5 @@ ccp{
             other{"𑄎𑄟𑄴𑄝𑄨𑄠𑄚𑄴 𑄇𑄧𑄤𑄌"}\r
         }\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.50"}\r
 }\r
index 6be8f60..3620c87 100644 (file)
@@ -588,6 +588,10 @@ ce{
         }\r
         VEF{\r
             "VEF",\r
+            "Венесуэлан боливар (2008–2018)",\r
+        }\r
+        VES{\r
+            "VES",\r
             "Венесуэлан боливар",\r
         }\r
         VND{\r
@@ -619,7 +623,7 @@ ce{
             "Французийн Тийна океанан франк",\r
         }\r
         XXX{\r
-            "XXX",\r
+            "¤",\r
             "девзаш доцу я лелаш доцу ахча",\r
         }\r
         YER{\r
@@ -1319,6 +1323,10 @@ ce{
             other{"Узбекистанан сомаш"}\r
         }\r
         VEF{\r
+            one{"Венесуэлан боливар (2008–2018)"}\r
+            other{"Венесуэлан боливарш (2008–2018)"}\r
+        }\r
+        VES{\r
             one{"Венесуэлан боливар"}\r
             other{"Венесуэлан боливарш"}\r
         }\r
@@ -1371,5 +1379,5 @@ ce{
         one{"{0} {1}"}\r
         other{"{0} {1}"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.41.34"}\r
 }\r
index 6cce482..66f3512 100644 (file)
@@ -44,7 +44,7 @@ chr{
         }\r
         BAM{\r
             "BAM",\r
-            "ᏉᏏᏂᎠ ᎠᎴ ᎲᏤᎪᏫ ᎦᏁᏟᏴᏍᏔᏅ ᎠᏕᎳ",\r
+            "ᏉᏏᏂᎠ-ᎲᏤᎪᏫ ᎦᏁᏟᏴᏍᏔᏅ ᎠᏕᎳ",\r
         }\r
         BBD{\r
             "BBD",\r
@@ -328,7 +328,7 @@ chr{
         }\r
         LKR{\r
             "LKR",\r
-            "ᏍᎵᎳᏂᎧ ᎠᏕᎳ",\r
+            "ᏍᎵ ᎳᏂᎧ ᎠᏕᎳ",\r
         }\r
         LRD{\r
             "LRD",\r
@@ -368,11 +368,11 @@ chr{
         }\r
         MRO{\r
             "MRO",\r
-            "á\8e¼á\8eµá\8f\8fá\8e¥á\8f\8d ᎠᏕᎳ (1973–2017)",\r
+            "á\8e¹á\8f\88á\8f\94á\8f\82á\8e  ᎠᏕᎳ (1973–2017)",\r
         }\r
         MRU{\r
             "MRU",\r
-            "á\8e¼á\8eµá\8f\8fá\8e¥á\8f\8d ᎠᏕᎳ",\r
+            "á\8e¹á\8f\88á\8f\94á\8f\82á\8e  ᎠᏕᎳ",\r
         }\r
         MUR{\r
             "MUR",\r
@@ -524,7 +524,7 @@ chr{
         }\r
         STN{\r
             "STN",\r
-            "ᏌᎣᏙᎺ ᎠᎴ ᏈᏂᏏᏇ ᎠᏕᎳ",\r
+            "ᏌᎣᏙᎺ & ᏈᏂᏏᏇ ᎠᏕᎳ",\r
         }\r
         SYP{\r
             "SYP",\r
@@ -560,7 +560,7 @@ chr{
         }\r
         TTD{\r
             "TTD",\r
-            "ᏟᏂᏕᏗ ᎠᎴ ᏙᏆᎪ ᎠᏕᎳ",\r
+            "ᏟᏂᏕᏗ & ᏙᏆᎪ ᎠᏕᎳ",\r
         }\r
         TWD{\r
             "NT$",\r
@@ -592,7 +592,11 @@ chr{
         }\r
         VEF{\r
             "VEF",\r
-            "ᏪᏁᏑᏪᎳ ᎠᏕᎳ",\r
+            "ᏪᏁᏑᏪ ᎠᏕᎳ (2008–2018)",\r
+        }\r
+        VES{\r
+            "VES",\r
+            "ᏪᏁᏑᏪ ᎠᏕᎳ",\r
         }\r
         VND{\r
             "₫",\r
@@ -623,7 +627,7 @@ chr{
             "CFP ᎠᏕᎳ",\r
         }\r
         XXX{\r
-            "XXX",\r
+            "¤",\r
             "ᏄᏬᎵᏍᏛᎾ ᎠᏕᎳ",\r
         }\r
         YER{\r
@@ -740,8 +744,8 @@ chr{
     }\r
     CurrencyPlurals{\r
         AED{\r
-            one{"ᏌᏊ ᎢᏳᎾᎵᏍᏔᏅ ᎡᎳᏈ ᎢᎹᎵᏘᏏ ᎠᏕᎳ"}\r
-            other{"ᏌᏊ ᎢᏳᎾᎵᏍᏔᏅ ᎡᎳᏈ ᎢᎹᎵᏘᏏ ᎠᏕᎳ"}\r
+            one{"UAE ᎠᏕᎳ"}\r
+            other{"UAE ᎠᏕᎳ"}\r
         }\r
         AFN{\r
             one{"ᎠᏫᎨᏂᏍᏖᏂ ᎠᏕᎳ"}\r
@@ -780,8 +784,8 @@ chr{
             other{"ᎠᏏᎵᏆᏌᏂ ᎠᏕᎳ"}\r
         }\r
         BAM{\r
-            one{"ᏉᏏᏂᎠ ᎠᎴ ᎲᏤᎪᏫ ᎦᏁᏟᏴᏍᏔᏅ ᎠᏕᎳ"}\r
-            other{"ᏉᏏᏂᎠ ᎠᎴ ᎲᏤᎪᏫ ᎦᏁᏟᏴᏍᏔᏅ ᎠᏕᎳ"}\r
+            one{"ᏉᏏᏂᎠ-ᎲᏤᎪᏫ ᎦᏁᏟᏴᏍᏔᏅ ᎠᏕᎳ"}\r
+            other{"ᏉᏏᏂᎠ-ᎲᏤᎪᏫ ᎦᏁᏟᏴᏍᏔᏅ ᎠᏕᎳ"}\r
         }\r
         BBD{\r
             one{"ᏆᏇᏙᏍ ᎠᏕᎳ"}\r
@@ -1064,8 +1068,8 @@ chr{
             other{"ᎴᏆᎾᏂ ᎠᏕᎳ"}\r
         }\r
         LKR{\r
-            one{"ᏍᎵᎳᏂᎧ ᎠᏕᎳ"}\r
-            other{"ᏍᎵᎳᏂᎧ ᎠᏕᎳ"}\r
+            one{"ᏍᎵ ᎳᏂᎧ ᎠᏕᎳ"}\r
+            other{"ᏍᎵ ᎳᏂᎧ ᎠᏕᎳ"}\r
         }\r
         LRD{\r
             one{"ᎳᏈᎵᏯ ᎠᏕᎳ"}\r
@@ -1104,12 +1108,12 @@ chr{
             other{"ᎹᎧᎣ ᎠᏕᎳ"}\r
         }\r
         MRO{\r
-            one{"á\8e¼á\8eµá\8f\8fá\8e¥á\8f\8d ᎠᏕᎳ (1973–2017)"}\r
-            other{"á\8e¼á\8eµá\8f\8fá\8e¥á\8f\8d ᎠᏕᎳ (1973–2017)"}\r
+            one{"á\8e¹á\8f\88á\8f\94á\8f\82á\8e  ᎠᏕᎳ (1973–2017)"}\r
+            other{"á\8e¹á\8f\88á\8f\94á\8f\82á\8e  ᎠᏕᎳ (1973–2017)"}\r
         }\r
         MRU{\r
-            one{"á\8e¼á\8eµá\8f\8fá\8e¥á\8f\8d ᎠᏕᎳ"}\r
-            other{"á\8e¼á\8eµá\8f\8fá\8e¥á\8f\8d ᎠᏕᎳ"}\r
+            one{"á\8e¹á\8f\88á\8f\94á\8f\82á\8e  ᎠᏕᎳ"}\r
+            other{"á\8e¹á\8f\88á\8f\94á\8f\82á\8e  ᎠᏕᎳ"}\r
         }\r
         MUR{\r
             one{"ᎹᏘᎢᏯ ᎠᏕᎳ"}\r
@@ -1260,8 +1264,8 @@ chr{
             other{"ᏌᎣᏙᎺ ᎠᎴ ᏈᏂᏏᏇ ᎠᏕᎳ (1977–2017)"}\r
         }\r
         STN{\r
-            one{"ᏌᎣᏙᎺ ᎠᎴ ᏈᏂᏏᏇ ᎠᏕᎳ"}\r
-            other{"ᏌᎣᏙᎺ ᎠᎴ ᏈᏂᏏᏇ ᎠᏕᎳ"}\r
+            one{"ᏌᎣᏙᎺ & ᏈᏂᏏᏇ ᎠᏕᎳ"}\r
+            other{"ᏌᎣᏙᎺ & ᏈᏂᏏᏇ ᎠᏕᎳ"}\r
         }\r
         SYP{\r
             one{"ᏏᎵᎠ ᎠᏕᎳ"}\r
@@ -1296,8 +1300,8 @@ chr{
             other{"ᎬᏃ ᎠᏕᎳ"}\r
         }\r
         TTD{\r
-            one{"ᏟᏂᏕᏗ ᎠᎴ ᏙᏆᎪ ᎠᏕᎳ"}\r
-            other{"ᏟᏂᏕᏗ ᎠᎴ ᏙᏆᎪ ᎠᏕᎳ"}\r
+            one{"ᏟᏂᏕᏗ & ᏙᏆᎪ ᎠᏕᎳ"}\r
+            other{"ᏟᏂᏕᏗ & ᏙᏆᎪ ᎠᏕᎳ"}\r
         }\r
         TWD{\r
             one{"ᎢᏤ ᏔᎢᏩᏂ ᎠᏕᎳ"}\r
@@ -1331,6 +1335,10 @@ chr{
             one{"ᏪᏁᏑᏪᎳ ᎠᏕᎳ"}\r
             other{"ᏪᏁᏑᏪᎳ ᎠᏕᎳ"}\r
         }\r
+        VES{\r
+            one{"ᏪᏁᏑᏪ ᎠᏕᎳ"}\r
+            other{"ᏪᏁᏑᏪ ᎠᏕᎳ"}\r
+        }\r
         VND{\r
             one{"ᏫᎡᏘᎾᎻᏍ ᎠᏕᎳ"}\r
             other{"ᏫᎡᏘᎾᎻᏍ ᎠᏕᎳ"}\r
@@ -1380,5 +1388,5 @@ chr{
         one{"{0} {1}"}\r
         other{"{0} {1}"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.2"}\r
 }\r
index 2cc9153..226447c 100644 (file)
@@ -7,5 +7,5 @@ ckb{
             "IQD",\r
         }\r
     }\r
-    Version{"2.1.38.71"}\r
+    Version{"2.1.44.88"}\r
 }\r
index 443f4ee..87216cd 100644 (file)
@@ -1044,6 +1044,10 @@ cs{
         }\r
         VEF{\r
             "VEF",\r
+            "venezuelský bolívar (2008–2018)",\r
+        }\r
+        VES{\r
+            "VES",\r
             "venezuelský bolívar",\r
         }\r
         VND{\r
@@ -2873,6 +2877,12 @@ cs{
             other{"venezuelských bolívarů (1871–2008)"}\r
         }\r
         VEF{\r
+            few{"venezuelské bolívary (2008–2018)"}\r
+            many{"venezuelského bolívaru (2008–2018)"}\r
+            one{"venezuelský bolívar (2008–2018)"}\r
+            other{"venezuelských bolívarů (2008–2018)"}\r
+        }\r
+        VES{\r
             few{"venezuelské bolívary"}\r
             many{"venezuelského bolívaru"}\r
             one{"venezuelský bolívar"}\r
@@ -3113,5 +3123,5 @@ cs{
         one{"{0} {1}"}\r
         other{"{0} {1}"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.91"}\r
 }\r
index abcfbcb..36cd3fb 100644 (file)
@@ -980,6 +980,10 @@ cy{
         }\r
         VEF{\r
             "VEF",\r
+            "Bolívar Venezuela (2008–2018)",\r
+        }\r
+        VES{\r
+            "VES",\r
             "Bolívar Venezuela",\r
         }\r
         VND{\r
@@ -3053,6 +3057,14 @@ cy{
             zero{"bolívar Venezuela (1871–2008)"}\r
         }\r
         VEF{\r
+            few{"bolívar Venezuela (2008–2018)"}\r
+            many{"bolívar Venezuela (2008–2018)"}\r
+            one{"bolívar Venezuela (2008–2018)"}\r
+            other{"bolívar Venezuela (2008–2018)"}\r
+            two{"bolívar Venezuela (2008–2018)"}\r
+            zero{"bolívar Venezuela (2008–2018)"}\r
+        }\r
+        VES{\r
             few{"bolívar Venezuela"}\r
             many{"bolívar Venezuela"}\r
             one{"bolívar Venezuela"}\r
@@ -3261,5 +3273,5 @@ cy{
         two{"{0} {1}"}\r
         zero{"{0} {1}"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.91"}\r
 }\r
index 6549a82..c7e249c 100644 (file)
@@ -700,7 +700,7 @@ da{
         }\r
         PEN{\r
             "PEN",\r
-            "peruviansk sol",\r
+            "peruansk sol",\r
         }\r
         PES{\r
             "PES",\r
@@ -948,6 +948,10 @@ da{
         }\r
         VEF{\r
             "VEF",\r
+            "venezuelansk bolivar (2008–2018)",\r
+        }\r
+        VES{\r
+            "VES",\r
             "venezuelansk bolivar",\r
         }\r
         VND{\r
@@ -1027,7 +1031,7 @@ da{
             "testvalutakode",\r
         }\r
         XXX{\r
-            "XXX",\r
+            "¤",\r
             "ukendt valuta",\r
         }\r
         YDD{\r
@@ -1885,8 +1889,8 @@ da{
             other{"peruvianske inti"}\r
         }\r
         PEN{\r
-            one{"peruviansk sol"}\r
-            other{"peruvianske soles"}\r
+            one{"peruansk sol"}\r
+            other{"peruanske soles"}\r
         }\r
         PES{\r
             one{"peruviansk sol (1863–1965)"}\r
@@ -2133,8 +2137,12 @@ da{
             other{"Venezuelanske bolivar (1871–2008)"}\r
         }\r
         VEF{\r
+            one{"venezuelansk bolivar (2008–2018)"}\r
+            other{"venezuelanske bolivarer (2008–2018)"}\r
+        }\r
+        VES{\r
             one{"venezuelansk bolivar"}\r
-            other{"venezuelanske bolivar"}\r
+            other{"venezuelanske bolivarer"}\r
         }\r
         VND{\r
             one{"vietnamesisk dong"}\r
@@ -2241,5 +2249,5 @@ da{
         one{"{0} {1}"}\r
         other{"{0} {1}"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.65"}\r
 }\r
index a7d1018..4c00a1d 100644 (file)
@@ -1044,6 +1044,10 @@ de{
         }\r
         VEF{\r
             "VEF",\r
+            "Venezolanischer Bolívar (2008–2018)",\r
+        }\r
+        VES{\r
+            "VES",\r
             "Venezolanischer Bolívar",\r
         }\r
         VND{\r
@@ -2232,7 +2236,7 @@ de{
         }\r
         STN{\r
             one{"São-toméischer Dobra"}\r
-            other{"São-toméische Dobra"}\r
+            other{"São-toméische Dobras"}\r
         }\r
         SUR{\r
             one{"Sowjetische Rubel"}\r
@@ -2351,6 +2355,10 @@ de{
             other{"Venezolanische Bolívares (1871–2008)"}\r
         }\r
         VEF{\r
+            one{"Venezolanischer Bolívar (2008–2018)"}\r
+            other{"Venezolanische Bolívares (2008–2018)"}\r
+        }\r
+        VES{\r
             one{"Venezolanischer Bolívar"}\r
             other{"Venezolanische Bolívares"}\r
         }\r
@@ -2519,5 +2527,5 @@ de{
         one{"{0} {1}"}\r
         other{"{0} {1}"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.91"}\r
 }\r
index 7497234..d262b5c 100644 (file)
@@ -14,14 +14,18 @@ de_CH{
             "EUR",\r
             "Euro",\r
         }\r
-        PEN{\r
-            "PEN",\r
-            "Peruanischer Neuer Sol",\r
-        }\r
         STN{\r
             "STN",\r
             "São-toméischer Dobra (2018)",\r
         }\r
+        VEF{\r
+            "VEF",\r
+            "Venezolanischer Bolívar",\r
+        }\r
+        VES{\r
+            "VES",\r
+            "VES",\r
+        }\r
     }\r
     Currencies%narrow{\r
         EUR{"EUR"}\r
@@ -35,13 +39,18 @@ de_CH{
             one{"Weissrussischer Rubel (2000–2016)"}\r
             other{"Weissrussische Rubel (2000–2016)"}\r
         }\r
-        PEN{\r
-            one{"Peruanischer Neuer Sol"}\r
-        }\r
         STN{\r
             one{"São-toméischer Dobra (2018)"}\r
             other{"São-toméischer Dobra (2018)"}\r
         }\r
+        VEF{\r
+            one{"Venezolanischer Bolívar"}\r
+            other{"Venezolanische Bolívares"}\r
+        }\r
+        VES{\r
+            one{"VES"}\r
+            other{"VES"}\r
+        }\r
     }\r
-    Version{"2.1.39.37"}\r
+    Version{"2.1.44.50"}\r
 }\r
index 993d8a0..d5aa5e8 100644 (file)
@@ -700,6 +700,10 @@ dsb{
         }\r
         VEF{\r
             "VEF",\r
+            "venezuelski bolívar (2008–2018)",\r
+        }\r
+        VES{\r
+            "VES",\r
             "venezuelski bolívar",\r
         }\r
         VND{\r
@@ -731,7 +735,7 @@ dsb{
             "CFP-frank",\r
         }\r
         XXX{\r
-            "XXX",\r
+            "¤",\r
             "njeznate pjenjeze",\r
         }\r
         YER{\r
@@ -1796,6 +1800,12 @@ dsb{
             two{"usbekiskej suma"}\r
         }\r
         VEF{\r
+            few{"venezuelske bolívary (2008–2018)"}\r
+            one{"venezuelski bolívar (2008–2018)"}\r
+            other{"venezuelskich bolívarow (2008–2018)"}\r
+            two{"venezuelskej bolívara (2008–2018)"}\r
+        }\r
+        VES{\r
             few{"venezuelske bolívary"}\r
             one{"venezuelski bolívar"}\r
             other{"venezuelskich bolívarow"}\r
@@ -1874,5 +1884,5 @@ dsb{
         other{"{0} {1}"}\r
         two{"{0} {1}"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.41.34"}\r
 }\r
index 3597fdb..b204812 100644 (file)
@@ -284,6 +284,10 @@ dz{
         }\r
         VEF{\r
             "VEF",\r
+            "བེ་ནི་ཛུ་ཝེ་ལ་གི་དངུལ་ བོ་ལི་བར (2008–2018)",\r
+        }\r
+        VES{\r
+            "VES",\r
             "བེ་ནི་ཛུ་ཝེ་ལ་གི་དངུལ་ བོ་ལི་བར",\r
         }\r
         VND{\r
@@ -295,7 +299,7 @@ dz{
             "XAF",\r
         }\r
         XXX{\r
-            "XXX",\r
+            "¤",\r
             "མ་ཤེས་པའི་དངུལ",\r
         }\r
         ZAR{\r
@@ -303,5 +307,5 @@ dz{
             "སཱའུཐ་ ཨཕ་རི་ཀ་གི་དངུལ་ རཱནད",\r
         }\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.41.34"}\r
 }\r
index ada5153..ddae4f7 100644 (file)
@@ -1004,6 +1004,10 @@ ee{
         }\r
         VEF{\r
             "VEF",\r
+            "venezuelaga bolívar (2008–2018)",\r
+        }\r
+        VES{\r
+            "VES",\r
             "venezuelaga bolívar",\r
         }\r
         VND{\r
@@ -1095,7 +1099,7 @@ ee{
             "gaɖuɖu dodokpɔ dzesi xts",\r
         }\r
         XXX{\r
-            "XXX",\r
+            "¤",\r
             "gaɖuɖu manya",\r
         }\r
         YDD{\r
@@ -2222,6 +2226,10 @@ ee{
             other{"venezuelaga bolívar (1871–2008)"}\r
         }\r
         VEF{\r
+            one{"venezuelaga bolívar (2008–2018)"}\r
+            other{"venezuelaga bolívar (2008–2018)"}\r
+        }\r
+        VES{\r
             one{"venezuelaga bolívar"}\r
             other{"venezuelaga bolívar"}\r
         }\r
@@ -2382,5 +2390,5 @@ ee{
         one{"{1} {0}"}\r
         other{"{1} {0}"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.88"}\r
 }\r
index 7738224..7edab2f 100644 (file)
@@ -965,6 +965,10 @@ el{
         }\r
         VEF{\r
             "VEF",\r
+            "Μπολιβάρ Βενεζουέλας (2008–2018)",\r
+        }\r
+        VES{\r
+            "VES",\r
             "Μπολιβάρ Βενεζουέλας",\r
         }\r
         VND{\r
@@ -1028,7 +1032,7 @@ el{
             "Φράγκο CFP",\r
         }\r
         XXX{\r
-            "XXX",\r
+            "¤",\r
             "Άγνωστο νόμισμα",\r
         }\r
         YDD{\r
@@ -1199,7 +1203,7 @@ el{
         }\r
         AFN{\r
             one{"αφγάνι Αφγανιστάν"}\r
-            other{"αφγάνι Αφγανιστάν"}\r
+            other{"αφγάνια Αφγανιστάν"}\r
         }\r
         ALL{\r
             one{"λεκ Αλβανίας"}\r
@@ -1215,7 +1219,7 @@ el{
         }\r
         AOA{\r
             one{"κουάνζα Ανγκόλας"}\r
-            other{"κοÏ\85άνζεÏ\82 Ανγκόλας"}\r
+            other{"κοÏ\85άνζα Ανγκόλας"}\r
         }\r
         AOK{\r
             one{"κουάνζα Ανγκόλας (AOK)"}\r
@@ -1807,7 +1811,7 @@ el{
         }\r
         MVR{\r
             one{"ρουφίγια Μαλδίβων"}\r
-            other{"Ï\81οÏ\85Ï\86ίγια Μαλδίβων"}\r
+            other{"Ï\81οÏ\85Ï\86ίγιεÏ\82 Μαλδίβων"}\r
         }\r
         MWK{\r
             one{"κουάτσα Μαλάουι"}\r
@@ -2134,6 +2138,10 @@ el{
             other{"μπολιβάρ Βενεζουέλας (1871–2008)"}\r
         }\r
         VEF{\r
+            one{"μπολιβάρ Βενεζουέλας (2008–2018)"}\r
+            other{"μπολιβάρ Βενεζουέλας (2008–2018)"}\r
+        }\r
+        VES{\r
             one{"μπολιβάρ Βενεζουέλας"}\r
             other{"μπολιβάρ Βενεζουέλας"}\r
         }\r
@@ -2258,5 +2266,5 @@ el{
         one{"{0} {1}"}\r
         other{"{0} {1}"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.65"}\r
 }\r
index 99310c5..cccaac8 100644 (file)
@@ -1034,6 +1034,10 @@ en{
             "UYU",\r
             "Uruguayan Peso",\r
         }\r
+        UYW{\r
+            "UYW",\r
+            "Uruguayan Nominal Wage Index Unit",\r
+        }\r
         UZS{\r
             "UZS",\r
             "Uzbekistani Som",\r
@@ -1044,6 +1048,10 @@ en{
         }\r
         VEF{\r
             "VEF",\r
+            "Venezuelan Bolívar (2008–2018)",\r
+        }\r
+        VES{\r
+            "VES",\r
             "Venezuelan Bolívar",\r
         }\r
         VND{\r
@@ -1143,7 +1151,7 @@ en{
             "ADB Unit of Account",\r
         }\r
         XXX{\r
-            "XXX",\r
+            "¤",\r
             "Unknown Currency",\r
         }\r
         YDD{\r
@@ -2240,6 +2248,10 @@ en{
             one{"Uruguayan peso"}\r
             other{"Uruguayan pesos"}\r
         }\r
+        UYW{\r
+            one{"Uruguayan nominal wage index unit"}\r
+            other{"Uruguayan nominal wage index units"}\r
+        }\r
         UZS{\r
             one{"Uzbekistani som"}\r
             other{"Uzbekistani som"}\r
@@ -2249,6 +2261,10 @@ en{
             other{"Venezuelan bolívars (1871–2008)"}\r
         }\r
         VEF{\r
+            one{"Venezuelan bolívar (2008–2018)"}\r
+            other{"Venezuelan bolívars (2008–2018)"}\r
+        }\r
+        VES{\r
             one{"Venezuelan bolívar"}\r
             other{"Venezuelan bolívars"}\r
         }\r
@@ -2417,5 +2433,5 @@ en{
         one{"{0} {1}"}\r
         other{"{0} {1}"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.91"}\r
 }\r
index 5d54d85..1e1cd09 100644 (file)
@@ -69,5 +69,5 @@ en_001{
             other{"Tajikistani roubles"}\r
         }\r
     }\r
-    Version{"2.1.38.69"}\r
+    Version{"2.1.44.18"}\r
 }\r
index 247d117..52245d6 100644 (file)
@@ -130,10 +130,6 @@ en_AU{
         SEK{"Kr"}\r
         UYU{"$U"}\r
     }\r
-    Currencies%variant{\r
-        GEL{"GEL"}\r
-        TRY{"TRY"}\r
-    }\r
     CurrencyPlurals{\r
         BAM{\r
             one{"Bosnia-Herzegovina convertible marka"}\r
@@ -175,6 +171,9 @@ en_AU{
             one{"Laotian kip"}\r
             other{"Laotian kip"}\r
         }\r
+        MGA{\r
+            one{"Malagasy ariary"}\r
+        }\r
         MKD{\r
             one{"Macedonian denar"}\r
             other{"Macedonian denar"}\r
@@ -199,6 +198,10 @@ en_AU{
             one{"Uzbekistani som"}\r
             other{"Uzbekistani soms"}\r
         }\r
+        VEF{\r
+            one{"Venezuelan bolívar"}\r
+            other{"Venezuelan bolívars"}\r
+        }\r
         VND{\r
             one{"Vietnamese dong"}\r
             other{"Vietnamese dongs"}\r
@@ -208,5 +211,5 @@ en_AU{
             other{"Samoan talas"}\r
         }\r
     }\r
-    Version{"2.1.38.73"}\r
+    Version{"2.1.44.18"}\r
 }\r
index 79bbbec..c9f5e1b 100644 (file)
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 en_BE{\r
     %%Parent{"en_001"}\r
-    Version{"2.1.38.69"}\r
+    Version{"2.1.44.18"}\r
 }\r
index fd6ba68..5b30d9b 100644 (file)
@@ -14,5 +14,5 @@ en_CA{
             other{"Israeli new sheqels"}\r
         }\r
     }\r
-    Version{"2.1.38.73"}\r
+    Version{"2.1.44.88"}\r
 }\r
index e028e10..8b082d8 100644 (file)
@@ -9,16 +9,10 @@ en_GB{
         }\r
     }\r
     CurrencyPlurals{\r
-        MKD{\r
-            other{"Macedonian denari"}\r
-        }\r
         SHP{\r
             one{"St Helena pound"}\r
             other{"St Helena pounds"}\r
         }\r
-        XOF{\r
-            other{"West African CFA francs"}\r
-        }\r
     }\r
-    Version{"2.1.38.73"}\r
+    Version{"2.1.44.18"}\r
 }\r
index e057509..422f3b6 100644 (file)
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 en_HK{\r
     %%Parent{"en_001"}\r
-    Version{"2.1.38.69"}\r
+    Version{"2.1.43.65"}\r
 }\r
index 56507ab..1b0d83f 100644 (file)
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 en_IE{\r
     %%Parent{"en_001"}\r
-    Version{"2.1.38.69"}\r
+    Version{"2.1.44.18"}\r
 }\r
index 55ab372..f8d3fc5 100644 (file)
@@ -2,5 +2,25 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 en_IN{\r
     %%Parent{"en_001"}\r
-    Version{"2.1.38.73"}\r
+    Currencies{\r
+        VEF{\r
+            "VEF",\r
+            "Venezuelan Bolívar",\r
+        }\r
+        VES{\r
+            "VES",\r
+            "VES",\r
+        }\r
+    }\r
+    CurrencyPlurals{\r
+        VEF{\r
+            one{"Venezuelan bolívar"}\r
+            other{"Venezuelan bolívars"}\r
+        }\r
+        VES{\r
+            one{"VES"}\r
+            other{"VES"}\r
+        }\r
+    }\r
+    Version{"2.1.44.18"}\r
 }\r
index 4ae9e3e..429d89a 100644 (file)
@@ -8,5 +8,5 @@ en_JM{
             "Jamaican Dollar",\r
         }\r
     }\r
-    Version{"2.1.38.69"}\r
+    Version{"2.1.44.18"}\r
 }\r
index e2a9edc..45a21bc 100644 (file)
@@ -8,5 +8,5 @@ en_NZ{
             "New Zealand Dollar",\r
         }\r
     }\r
-    Version{"2.1.38.73"}\r
+    Version{"2.1.44.88"}\r
 }\r
index 3c7e040..14f8030 100644 (file)
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 en_ZW{\r
     %%Parent{"en_001"}\r
-    Version{"2.1.38.69"}\r
+    Version{"2.1.44.18"}\r
 }\r
index a94cd5f..96c3586 100644 (file)
@@ -962,6 +962,10 @@ es{
             "UYU",\r
             "peso uruguayo",\r
         }\r
+        UYW{\r
+            "UYW",\r
+            "unidad previsional uruguayo",\r
+        }\r
         UZS{\r
             "UZS",\r
             "sum",\r
@@ -972,6 +976,10 @@ es{
         }\r
         VEF{\r
             "VEF",\r
+            "bolívar venezolano (2008–2018)",\r
+        }\r
+        VES{\r
+            "VES",\r
             "bolívar venezolano",\r
         }\r
         VND{\r
@@ -1059,7 +1067,7 @@ es{
             "código reservado para pruebas",\r
         }\r
         XXX{\r
-            "XXX",\r
+            "¤",\r
             "moneda desconocida",\r
         }\r
         YDD{\r
@@ -2100,6 +2108,10 @@ es{
             one{"peso uruguayo"}\r
             other{"pesos uruguayos"}\r
         }\r
+        UYW{\r
+            one{"unidad previsional uruguayo"}\r
+            other{"unidades previsionales uruguayos"}\r
+        }\r
         UZS{\r
             one{"sum"}\r
             other{"sums"}\r
@@ -2109,6 +2121,10 @@ es{
             other{"bolívares venezolanos (1871–2008)"}\r
         }\r
         VEF{\r
+            one{"bolívar venezolano (2008–2018)"}\r
+            other{"bolívares venezolanos (2008–2018)"}\r
+        }\r
+        VES{\r
             one{"bolívar venezolano"}\r
             other{"bolívares venezolanos"}\r
         }\r
@@ -2213,5 +2229,5 @@ es{
         one{"{0} {1}"}\r
         other{"{0} {1}"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.88"}\r
 }\r
index 81bddb8..3f6a815 100644 (file)
@@ -18,18 +18,46 @@ es_419{
             "EUR",\r
             "euro",\r
         }\r
+        MYR{\r
+            "MYR",\r
+            "ringgit malayo",\r
+        }\r
         THB{\r
             "THB",\r
-            "bat",\r
+            "baht tailandes",\r
         }\r
         USD{\r
             "USD",\r
             "dólar estadounidense",\r
         }\r
+        UZS{\r
+            "UZS",\r
+            "som uzbeko",\r
+        }\r
+        VEF{\r
+            "VEF",\r
+            "bolívar venezolano",\r
+        }\r
+        VES{\r
+            "VES",\r
+            "VES",\r
+        }\r
         VND{\r
             "VND",\r
             "dong",\r
         }\r
+        XAF{\r
+            "XAF",\r
+            "franco CFA BEAC",\r
+        }\r
+        XOF{\r
+            "XOF",\r
+            "franco CFA BCEAO",\r
+        }\r
+        ZMW{\r
+            "ZMW",\r
+            "kuacha zambiano",\r
+        }\r
     }\r
     Currencies%narrow{\r
         EGP{"E£"}\r
@@ -46,10 +74,42 @@ es_419{
         LVL{\r
             one{"lats letón"}\r
         }\r
+        MYR{\r
+            one{"ringgit malayo"}\r
+            other{"ringgits malayos"}\r
+        }\r
+        THB{\r
+            one{"baht tailandes"}\r
+            other{"bahts tailandeses"}\r
+        }\r
+        UZS{\r
+            one{"som uzbeko"}\r
+            other{"soms uzbekos"}\r
+        }\r
+        VEF{\r
+            one{"bolívar venezolano"}\r
+            other{"bolívares venezolanos"}\r
+        }\r
+        VES{\r
+            one{"VES"}\r
+            other{"VES"}\r
+        }\r
+        XAF{\r
+            one{"franco CFA BEAC"}\r
+            other{"francos CFA BEAC"}\r
+        }\r
+        XOF{\r
+            one{"franco CFA BCEAO"}\r
+            other{"francos CFA BCEAO"}\r
+        }\r
         XXX{\r
             one{"(unidad de moneda desconocida)"}\r
             other{"(moneda desconocida)"}\r
         }\r
+        ZMW{\r
+            one{"kuacha zambiano"}\r
+            other{"kuachas zambianos"}\r
+        }\r
     }\r
-    Version{"2.1.38.39"}\r
+    Version{"2.1.43.65"}\r
 }\r
index 88a9169..fb1e92e 100644 (file)
@@ -15,5 +15,5 @@ es_AR{
     Currencies%variant{\r
         GEL{"GEL"}\r
     }\r
-    Version{"2.1.38.39"}\r
+    Version{"2.1.43.65"}\r
 }\r
index 5ce0385..3246c3e 100644 (file)
@@ -12,5 +12,5 @@ es_CO{
             "dólar estadounidense",\r
         }\r
     }\r
-    Version{"2.1.38.39"}\r
+    Version{"2.1.43.65"}\r
 }\r
index 6f9e6e4..96015e2 100644 (file)
@@ -3,6 +3,14 @@
 es_MX{\r
     %%Parent{"es_419"}\r
     Currencies{\r
+        BDT{\r
+            "BDT",\r
+            "taka bangladesí",\r
+        }\r
+        BTN{\r
+            "BTN",\r
+            "ngultrum butanés",\r
+        }\r
         CNH{\r
             "CNH",\r
             "CNH",\r
@@ -11,6 +19,30 @@ es_MX{
             "ERN",\r
             "nakfa",\r
         }\r
+        KGS{\r
+            "KGS",\r
+            "som kirguís",\r
+        }\r
+        KHR{\r
+            "KHR",\r
+            "riel camboyano",\r
+        }\r
+        LAK{\r
+            "LAK",\r
+            "kip laosiano",\r
+        }\r
+        MRO{\r
+            "MRU",\r
+            "uguiya (1973–2017)",\r
+        }\r
+        MRU{\r
+            "UM",\r
+            "uguiya",\r
+        }\r
+        MVR{\r
+            "MVR",\r
+            "rupia de Maldivas",\r
+        }\r
         MXN{\r
             "$",\r
             "peso mexicano",\r
@@ -31,6 +63,18 @@ es_MX{
             "UZS",\r
             "sum",\r
         }\r
+        VEF{\r
+            "VEF",\r
+            "bolívar venezolano (2008–2018)",\r
+        }\r
+        VES{\r
+            "VES",\r
+            "bolívar venezolano",\r
+        }\r
+        VND{\r
+            "VND",\r
+            "dong vietnamita",\r
+        }\r
         ZMW{\r
             "ZMW",\r
             "kwacha zambiano",\r
@@ -42,35 +86,81 @@ es_MX{
         RON{"lei"}\r
         SSP{"£"}\r
         SYP{"£"}\r
+        VEF{"Bs"}\r
     }\r
     CurrencyPlurals{\r
+        AMD{\r
+            one{"dram armenio"}\r
+            other{"drams armenios"}\r
+        }\r
+        BDT{\r
+            one{"taka bangladesí"}\r
+            other{"takas bangladesíes"}\r
+        }\r
         BGN{\r
             other{"levas búlgaras"}\r
         }\r
+        BTN{\r
+            one{"ngultrum butanés"}\r
+            other{"gultrums bultaneses"}\r
+        }\r
         CNH{\r
             one{"CNH"}\r
             other{"CNH"}\r
         }\r
+        KGS{\r
+            one{"som kirguís"}\r
+            other{"soms kirguises"}\r
+        }\r
+        KHR{\r
+            one{"riel camboyano"}\r
+            other{"rieles camboyanos"}\r
+        }\r
+        LAK{\r
+            one{"kip laosiano"}\r
+            other{"kips laosianos"}\r
+        }\r
         LVL{\r
             one{"lats letón"}\r
             other{"lats letones"}\r
         }\r
+        MVR{\r
+            one{"rupia de Maldivas"}\r
+            other{"rupias de Maldivas"}\r
+        }\r
+        MWK{\r
+            one{"kwacha malauí"}\r
+        }\r
         MYR{\r
             one{"ringit"}\r
             other{"ringits"}\r
         }\r
         STN{\r
             one{"dobra santotomense"}\r
-            other{"dobra santotomense"}\r
+            other{"dobras santotomenses"}\r
         }\r
         THB{\r
             one{"baht tailandés"}\r
-            other{"bats"}\r
+        }\r
+        TMT{\r
+            other{"manats turcomanos"}\r
         }\r
         UZS{\r
             one{"sum"}\r
             other{"sums"}\r
         }\r
+        VEF{\r
+            one{"bolívar venezolano (2008–2018)"}\r
+            other{"bolívares venezolanos (2008–2018)"}\r
+        }\r
+        VES{\r
+            one{"bolívar venezolano"}\r
+            other{"bolivares venezolanos"}\r
+        }\r
+        VND{\r
+            one{"dong vietnamita"}\r
+            other{"dongs vietnamitas"}\r
+        }\r
         XXX{\r
             one{"(moneda desconocida)"}\r
         }\r
@@ -79,5 +169,5 @@ es_MX{
             other{"kwachas zambianos"}\r
         }\r
     }\r
-    Version{"2.1.38.73"}\r
+    Version{"2.1.44.5"}\r
 }\r
index 20d9c46..8b3216f 100644 (file)
@@ -8,5 +8,5 @@ es_PY{
             "guaraní paraguayo",\r
         }\r
     }\r
-    Version{"2.1.38.39"}\r
+    Version{"2.1.43.65"}\r
 }\r
index b4cf939..143bbc0 100644 (file)
@@ -3,6 +3,10 @@
 es_US{\r
     %%Parent{"es_419"}\r
     Currencies{\r
+        AMD{\r
+            "AMD",\r
+            "dram",\r
+        }\r
         JPY{\r
             "¥",\r
             "yen",\r
@@ -41,21 +45,16 @@ es_US{
         RON{"lei"}\r
         SSP{"£"}\r
         SYP{"£"}\r
+        VEF{"Bs"}\r
     }\r
     CurrencyPlurals{\r
         KGS{\r
             one{"som"}\r
         }\r
-        MWK{\r
-            one{"kwacha malauí"}\r
-        }\r
         MYR{\r
             one{"ringit"}\r
             other{"ringits"}\r
         }\r
-        RON{\r
-            one{"leu rumano"}\r
-        }\r
         STN{\r
             one{"dobra santotomense"}\r
             other{"dobra santotomense"}\r
@@ -77,5 +76,5 @@ es_US{
             other{"francos CFA de África Occidental"}\r
         }\r
     }\r
-    Version{"2.1.38.73"}\r
+    Version{"2.1.43.65"}\r
 }\r
index b3fe54e..0f2faa9 100644 (file)
@@ -11,6 +11,10 @@ es_UY{
             "$",\r
             "peso uruguayo",\r
         }\r
+        UYW{\r
+            "UP",\r
+            "unidad previsional uruguayo",\r
+        }\r
     }\r
-    Version{"2.1.38.39"}\r
+    Version{"2.1.44.79"}\r
 }\r
index 923d2eb..6e45aa0 100644 (file)
@@ -7,9 +7,20 @@ es_VE{
             "Bs.",\r
             "bolívar venezolano",\r
         }\r
+        VES{\r
+            "Bs.S",\r
+            "bolívar soberano",\r
+        }\r
     }\r
     Currencies%narrow{\r
         VEF{"Bs."}\r
+        VES{"Bs.S"}\r
+    }\r
+    CurrencyPlurals{\r
+        VES{\r
+            one{"bolívar soberano"}\r
+            other{"bolívares soberanos"}\r
+        }\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.41.45"}\r
 }\r
index d1edb2c..98de3da 100644 (file)
@@ -965,6 +965,10 @@ et{
         }\r
         VEF{\r
             "VEF",\r
+            "Venezuela boliivar (2008–2018)",\r
+        }\r
+        VES{\r
+            "VES",\r
             "Venezuela boliivar",\r
         }\r
         VND{\r
@@ -1052,7 +1056,7 @@ et{
             "vääringute testkood",\r
         }\r
         XXX{\r
-            "XXX",\r
+            "¤",\r
             "määramata rahaühik",\r
         }\r
         YDD{\r
@@ -1101,14 +1105,18 @@ et{
         }\r
     }\r
     Currencies%narrow{\r
+        AOA{"Kz"}\r
         ARS{"$"}\r
         AUD{"$"}\r
+        BAM{"KM"}\r
         BBD{"$"}\r
         BDT{"৳"}\r
         BMD{"$"}\r
         BND{"$"}\r
+        BOB{"Bs"}\r
         BRL{"R$"}\r
         BSD{"$"}\r
+        BWP{"P"}\r
         BYN{"р."}\r
         BZD{"$"}\r
         CAD{"$"}\r
@@ -1116,45 +1124,84 @@ et{
         CNY{"¥"}\r
         COP{"$"}\r
         CRC{"₡"}\r
+        CUC{"$"}\r
         CUP{"$"}\r
+        CZK{"Kč"}\r
         DKK{"kr"}\r
         DOP{"$"}\r
+        EGP{"E£"}\r
         EUR{"€"}\r
         FJD{"$"}\r
+        FKP{"£"}\r
         GBP{"£"}\r
+        GEL{"₾"}\r
         GIP{"£"}\r
+        GNF{"FG"}\r
+        GTQ{"Q"}\r
         GYD{"$"}\r
         HKD{"$"}\r
+        HNL{"L"}\r
+        HRK{"kn"}\r
+        HUF{"Ft"}\r
+        IDR{"Rp"}\r
         ILS{"₪"}\r
         INR{"₹"}\r
         ISK{"kr"}\r
         JMD{"$"}\r
         JPY{"¥"}\r
         KHR{"៛"}\r
+        KMF{"CF"}\r
+        KPW{"₩"}\r
         KRW{"₩"}\r
         KYD{"$"}\r
         KZT{"₸"}\r
         LAK{"₭"}\r
+        LBP{"L£"}\r
+        LKR{"Rs"}\r
         LRD{"$"}\r
+        MGA{"Ar"}\r
+        MMK{"K"}\r
         MNT{"₮"}\r
+        MUR{"Rs"}\r
         MXN{"$"}\r
+        MYR{"RM"}\r
         NAD{"$"}\r
         NGN{"₦"}\r
+        NIO{"C$"}\r
+        NOK{"kr"}\r
+        NPR{"Rs"}\r
         NZD{"$"}\r
         PHP{"₱"}\r
+        PKR{"Rs"}\r
+        PLN{"zł"}\r
         PYG{"₲"}\r
+        RON{"lei"}\r
+        RUB{"₽"}\r
+        RWF{"RF"}\r
         SBD{"$"}\r
+        SEK{"kr"}\r
         SGD{"$"}\r
+        SHP{"£"}\r
         SRD{"$"}\r
         SSP{"£"}\r
+        STN{"Db"}\r
+        SYP{"£"}\r
         THB{"฿"}\r
+        TOP{"T$"}\r
         TRY{"₺"}\r
         TTD{"$"}\r
         TWD{"NT$"}\r
         UAH{"₴"}\r
         USD{"$"}\r
         UYU{"$"}\r
+        VEF{"Bs"}\r
         VND{"₫"}\r
+        XCD{"$"}\r
+        ZAR{"R"}\r
+        ZMW{"ZK"}\r
+    }\r
+    Currencies%variant{\r
+        TRY{"TL"}\r
     }\r
     CurrencyPlurals{\r
         ADP{\r
@@ -2066,6 +2113,10 @@ et{
             other{"Venezuela boliivarit (1871–2008)"}\r
         }\r
         VEF{\r
+            one{"Venezuela boliivar (2008–2018)"}\r
+            other{"Venezuela boliivarit (2008–2018)"}\r
+        }\r
+        VES{\r
             one{"Venezuela boliivar"}\r
             other{"Venezuela boliivarit"}\r
         }\r
@@ -2174,5 +2225,5 @@ et{
         one{"{0} {1}"}\r
         other{"{0} {1}"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.91"}\r
 }\r
index 3075f08..8e3bdc1 100644 (file)
@@ -545,7 +545,7 @@ eu{
         }\r
         STN{\r
             "STN",\r
-            "Sao Tomeko eta Principeko dobra",\r
+            "Sao Tome eta Principeko dobra",\r
         }\r
         SYP{\r
             "SYP",\r
@@ -613,6 +613,10 @@ eu{
         }\r
         VEF{\r
             "VEF",\r
+            "Venezuelako bolivarra (2008–2018)",\r
+        }\r
+        VES{\r
+            "VES",\r
             "Venezuelako bolivarra",\r
         }\r
         VND{\r
@@ -644,7 +648,7 @@ eu{
             "CFP frankoa",\r
         }\r
         XXX{\r
-            "XXX",\r
+            "¤",\r
             "Moneta ezezaguna",\r
         }\r
         YER{\r
@@ -1292,8 +1296,8 @@ eu{
             other{"Sao Tomeko eta Principeko dobra (1977–2017)"}\r
         }\r
         STN{\r
-            one{"Sao Tomeko eta Principeko dobra"}\r
-            other{"Sao Tomeko eta Principeko dobra"}\r
+            one{"Sao Tome eta Principeko dobra"}\r
+            other{"Sao Tome eta Principeko dobra"}\r
         }\r
         SYP{\r
             one{"Siriako libera"}\r
@@ -1360,6 +1364,10 @@ eu{
             other{"Uzbekistango som"}\r
         }\r
         VEF{\r
+            one{"Venezuelako bolivar (2008–2018)"}\r
+            other{"Venezuelako bolivar (2008–2018)"}\r
+        }\r
+        VES{\r
             one{"Venezuelako bolivar"}\r
             other{"Venezuelako bolivar"}\r
         }\r
@@ -1412,5 +1420,5 @@ eu{
         one{"{0} {1}"}\r
         other{"{0} {1}"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.65"}\r
 }\r
index 3e129f2..2a5dc00 100644 (file)
@@ -788,6 +788,10 @@ fa{
         }\r
         VEF{\r
             "VEF",\r
+            "بولیوار ونزوئلا (۲۰۰۸ تا ۲۰۱۸)",\r
+        }\r
+        VES{\r
+            "VES",\r
             "بولیوار ونزوئلا",\r
         }\r
         VND{\r
@@ -839,7 +843,7 @@ fa{
             "پلاتین",\r
         }\r
         XXX{\r
-            "XXX",\r
+            "¤",\r
             "ارز نامشخص",\r
         }\r
         YDD{\r
@@ -1614,6 +1618,10 @@ fa{
             other{"بولیوار ونزوئلا (۱۸۷۱ تا ۲۰۰۸)"}\r
         }\r
         VEF{\r
+            one{"بولیوار ونزوئلا (۲۰۰۸ تا ۲۰۱۸)"}\r
+            other{"بولیوار ونزوئلا (۲۰۰۸ تا ۲۰۱۸)"}\r
+        }\r
+        VES{\r
             one{"بولیوار ونزوئلا"}\r
             other{"بولیوار ونزوئلا"}\r
         }\r
@@ -1662,5 +1670,5 @@ fa{
             other{"کواچای زامبیا"}\r
         }\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.65"}\r
 }\r
index d859a3e..aecfec4 100644 (file)
@@ -63,5 +63,5 @@ fa_AF{
             "دالر امریکا",\r
         }\r
     }\r
-    Version{"2.1.38.39"}\r
+    Version{"2.1.43.65"}\r
 }\r
diff --git a/source/data/curr/ff_MR.txt b/source/data/curr/ff_MR.txt
deleted file mode 100644 (file)
index ac97c49..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
-// © 2016 and later: Unicode, Inc. and others.\r
-// License & terms of use: http://www.unicode.org/copyright.html#License\r
-ff_MR{\r
-    Currencies{\r
-        MRU{\r
-            "UM",\r
-            "Ugiyya Muritani",\r
-        }\r
-    }\r
-    Version{"2.1.39.11"}\r
-}\r
index 1ac0cb1..4c8da82 100644 (file)
@@ -1040,11 +1040,15 @@ fi{
         }\r
         VEB{\r
             "VEB",\r
-            "Venezuelan bolivar (1871–2008)",\r
+            "Venezuelan bolívar (1871–2008)",\r
         }\r
         VEF{\r
             "VEF",\r
-            "Venezuelan bolivar",\r
+            "Venezuelan bolívar (2008–2018)",\r
+        }\r
+        VES{\r
+            "VES",\r
+            "Venezuelan suvereeni bolívar",\r
         }\r
         VND{\r
             "VND",\r
@@ -2352,8 +2356,12 @@ fi{
             other{"Venezuelan bolivaria (1871–2008)"}\r
         }\r
         VEF{\r
-            one{"Venezuelan bolivar"}\r
-            other{"Venezuelan bolivaria"}\r
+            one{"Venezuelan bolívar (2008–2018)"}\r
+            other{"Venezuelan bolívaria (2008–2018)"}\r
+        }\r
+        VES{\r
+            one{"Venezuelan suvereeni bolívar"}\r
+            other{"Venezuelan suvereenia bolívaria"}\r
         }\r
         VND{\r
             one{"Vietnamin dong"}\r
@@ -2520,5 +2528,5 @@ fi{
         one{"{0} {1}"}\r
         other{"{0} {1}"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.91"}\r
 }\r
index 5c95acc..38e112e 100644 (file)
@@ -396,7 +396,7 @@ fil{
         }\r
         MRU{\r
             "MRU",\r
-            "Mauritanian Ouguiya",\r
+            "Ouguiya ng Mauritania",\r
         }\r
         MUR{\r
             "MUR",\r
@@ -556,7 +556,7 @@ fil{
         }\r
         STN{\r
             "STN",\r
-            "São Tomé & Príncipe Dobra",\r
+            "São Tomé & Príncipe Dobra (2018)",\r
         }\r
         SYP{\r
             "SYP",\r
@@ -628,6 +628,10 @@ fil{
         }\r
         VEF{\r
             "VEF",\r
+            "Bolívar ng Venezuela (2008–2018)",\r
+        }\r
+        VES{\r
+            "VES",\r
             "Bolívar ng Venezuela",\r
         }\r
         VND{\r
@@ -659,7 +663,7 @@ fil{
             "CFP Franc",\r
         }\r
         XXX{\r
-            "XXX",\r
+            "¤",\r
             "Hindi Kilalang Pera",\r
         }\r
         YER{\r
@@ -1377,6 +1381,10 @@ fil{
             other{"Uzbekistan som"}\r
         }\r
         VEF{\r
+            one{"bolívar ng Venezuela (2008–2018)"}\r
+            other{"bolívars ng Venezuela (2008–2018)"}\r
+        }\r
+        VES{\r
             one{"bolívar ng Venezuela"}\r
             other{"bolívars ng Venezuela"}\r
         }\r
@@ -1429,5 +1437,5 @@ fil{
         one{"{0} {1}"}\r
         other{"{0} {1}"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.91"}\r
 }\r
index 1132fda..5c32b09 100644 (file)
@@ -592,6 +592,10 @@ fo{
         }\r
         VEF{\r
             "VEF",\r
+            "Venesuela bolívar (2008–2018)",\r
+        }\r
+        VES{\r
+            "VES",\r
             "Venesuela bolívar",\r
         }\r
         VND{\r
@@ -639,7 +643,7 @@ fo{
             "unse platin",\r
         }\r
         XXX{\r
-            "XXX",\r
+            "¤",\r
             "ókent gjaldoyra",\r
         }\r
         YER{\r
@@ -1344,6 +1348,10 @@ fo{
             other{"Usbekistan som"}\r
         }\r
         VEF{\r
+            one{"Venesuela bolívar (2008–2018)"}\r
+            other{"Venesuela bolívar (2008–2018)"}\r
+        }\r
+        VES{\r
             one{"Venesuela bolívar"}\r
             other{"Venesuela bolívar"}\r
         }\r
@@ -1412,5 +1420,5 @@ fo{
         one{"{0} {1}"}\r
         other{"{0} {1}"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.41.34"}\r
 }\r
index f7618b8..2bdfa53 100644 (file)
@@ -171,7 +171,7 @@ fr{
             "cruzeiro",\r
         }\r
         BSD{\r
-            "$BS",\r
+            "BSD",\r
             "dollar bahaméen",\r
         }\r
         BTN{\r
@@ -976,6 +976,10 @@ fr{
         }\r
         VEF{\r
             "VEF",\r
+            "bolivar vénézuélien (2008–2018)",\r
+        }\r
+        VES{\r
+            "VES",\r
             "bolivar vénézuélien",\r
         }\r
         VND{\r
@@ -1063,7 +1067,7 @@ fr{
             "(devise de test)",\r
         }\r
         XXX{\r
-            "XXX",\r
+            "¤",\r
             "devise inconnue ou non valide",\r
         }\r
         YDD{\r
@@ -2197,6 +2201,10 @@ fr{
             other{"bolivar vénézuélien (1871–2008)"}\r
         }\r
         VEF{\r
+            one{"bolivar vénézuélien (2008–2018)"}\r
+            other{"bolivars vénézuéliens (2008–2018)"}\r
+        }\r
+        VES{\r
             one{"bolivar vénézuélien"}\r
             other{"bolivars vénézuéliens"}\r
         }\r
@@ -2345,5 +2353,5 @@ fr{
         one{"{0} {1}"}\r
         other{"{0} {1}"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.91"}\r
 }\r
index b0db616..83fc1d7 100644 (file)
@@ -10,6 +10,10 @@ fr_CA{
             "$ AU",\r
             "dollar australien",\r
         }\r
+        AZN{\r
+            "AZN",\r
+            "manat azerbaïdjanais",\r
+        }\r
         BMD{\r
             "BMD",\r
             "dollar bermudien",\r
@@ -18,10 +22,6 @@ fr_CA{
             "BND",\r
             "dollar brunéien",\r
         }\r
-        BSD{\r
-            "BSD",\r
-            "dollar bahaméen",\r
-        }\r
         BZD{\r
             "BZD",\r
             "dollar bélizéen",\r
@@ -42,6 +42,10 @@ fr_CA{
             "COP",\r
             "peso colombien",\r
         }\r
+        CVE{\r
+            "CVE",\r
+            "escudo cap-verdien",\r
+        }\r
         FJD{\r
             "FJD",\r
             "dollar fidjien",\r
@@ -82,6 +86,10 @@ fr_CA{
             "KRW",\r
             "won sud-coréen",\r
         }\r
+        LAK{\r
+            "LAK",\r
+            "kip laotien",\r
+        }\r
         LBP{\r
             "LBP",\r
             "livre libanaise",\r
@@ -102,6 +110,18 @@ fr_CA{
             "OMR",\r
             "rial omanais",\r
         }\r
+        PEN{\r
+            "PEN",\r
+            "nouveau sol péruvien",\r
+        }\r
+        PGK{\r
+            "PGK",\r
+            "kina papou-néo-guinéen",\r
+        }\r
+        QAR{\r
+            "QAR",\r
+            "riyal du Qatar",\r
+        }\r
         SAR{\r
             "SAR",\r
             "rial saoudien",\r
@@ -116,7 +136,7 @@ fr_CA{
         }\r
         SRD{\r
             "SRD",\r
-            "dollar surinamais",\r
+            "dollar du Suriname",\r
         }\r
         TOP{\r
             "TOP",\r
@@ -138,6 +158,14 @@ fr_CA{
             "VND",\r
             "dông vietnamien",\r
         }\r
+        VUV{\r
+            "VUV",\r
+            "vatu",\r
+        }\r
+        WST{\r
+            "WST",\r
+            "tala",\r
+        }\r
         XAF{\r
             "XAF",\r
             "franc CFA (BEAC)",\r
@@ -151,7 +179,7 @@ fr_CA{
             "franc CFP",\r
         }\r
         XXX{\r
-            "XXX",\r
+            "¤",\r
             "Devise inconnue",\r
         }\r
         YER{\r
@@ -170,26 +198,69 @@ fr_CA{
         TRY{"TL"}\r
     }\r
     CurrencyPlurals{\r
+        AZN{\r
+            one{"manat azerbaïdjanais"}\r
+            other{"manats azerbaïdjanais"}\r
+        }\r
+        CVE{\r
+            one{"escudo cap-verdien"}\r
+            other{"escudos cap-verdiens"}\r
+        }\r
         FKP{\r
             one{"livre des Îles Malouines"}\r
             other{"livres des Îles Malouines"}\r
         }\r
+        GEL{\r
+            one{"lari géorgien"}\r
+        }\r
+        GYD{\r
+            one{"dollar guyanien"}\r
+            other{"dollars guyaniens"}\r
+        }\r
         IRR{\r
             one{"rial iranien"}\r
             other{"rials iraniens"}\r
         }\r
+        LAK{\r
+            one{"kip laotien"}\r
+            other{"kips laotiens"}\r
+        }\r
         OMR{\r
             one{"rial omanais"}\r
             other{"rials omanis"}\r
         }\r
+        PEN{\r
+            one{"nouveau sol péruvien"}\r
+            other{"nouveaux sols péruviens"}\r
+        }\r
+        PGK{\r
+            one{"kina papou-néo-guinéen"}\r
+            other{"kinas papou-néo-guinéens"}\r
+        }\r
+        QAR{\r
+            one{"riyal du Qatar"}\r
+            other{"riyals du Qatar"}\r
+        }\r
         SAR{\r
             one{"rial saoudien"}\r
             other{"rials saoudiens"}\r
         }\r
+        SRD{\r
+            one{"dollar du Suriname"}\r
+            other{"dollars du Suriname"}\r
+        }\r
         TOP{\r
             one{"pa’anga"}\r
             other{"pa’angas"}\r
         }\r
+        VUV{\r
+            one{"vatu"}\r
+            other{"vatus"}\r
+        }\r
+        WST{\r
+            one{"tala"}\r
+            other{"talas"}\r
+        }\r
         XXX{\r
             one{"(devise inconnue)"}\r
             other{"(devise inconnue)"}\r
@@ -199,5 +270,5 @@ fr_CA{
             other{"rials yéménites"}\r
         }\r
     }\r
-    Version{"2.1.38.73"}\r
+    Version{"2.1.43.65"}\r
 }\r
index 749bfb2..4eaff78 100644 (file)
@@ -263,7 +263,7 @@ fur{
             "codiç di verifiche de monede",\r
         }\r
         XXX{\r
-            "XXX",\r
+            "¤",\r
             "Monede no valide o no cognossude",\r
         }\r
         ZAR{\r
index 876bad7..faf3c33 100644 (file)
@@ -1020,6 +1020,10 @@ fy{
         }\r
         VEF{\r
             "VEF",\r
+            "Fenezolaanske bolivar (2008–2018)",\r
+        }\r
+        VES{\r
+            "VES",\r
             "Fenezolaanske bolivar",\r
         }\r
         VND{\r
@@ -1119,7 +1123,7 @@ fy{
             "ADB-rekkenienheid",\r
         }\r
         XXX{\r
-            "XXX",\r
+            "¤",\r
             "Unbekende muntienheid",\r
         }\r
         YDD{\r
@@ -2201,6 +2205,10 @@ fy{
             other{"Fenezolaanske bolivar (1871–2008)"}\r
         }\r
         VEF{\r
+            one{"Fenezolaanske bolivar (2008–2018)"}\r
+            other{"Fenezolaanske bolivar (2008–2018)"}\r
+        }\r
+        VES{\r
             one{"Fenezolaanske bolivar"}\r
             other{"Fenezolaanske bolivar"}\r
         }\r
@@ -2369,5 +2377,5 @@ fy{
         one{"{0} {1}"}\r
         other{"{0} {1}"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.41.34"}\r
 }\r
index fcd7a3d..d463d86 100644 (file)
@@ -1000,6 +1000,10 @@ ga{
         }\r
         VEF{\r
             "VEF",\r
+            "Bolívar Veiniséala (2008–2018)",\r
+        }\r
+        VES{\r
+            "VES",\r
             "Bolívar Veiniséala",\r
         }\r
         VND{\r
@@ -2932,6 +2936,13 @@ ga{
             two{"bholívar Veiniséala (1871–2008)"}\r
         }\r
         VEF{\r
+            few{"bholívar Veiniséala (2008–2018)"}\r
+            many{"mbolívar Veiniséala (2008–2018)"}\r
+            one{"bholívar Veiniséala (2008–2018)"}\r
+            other{"bolívar Veiniséala (2008–2018)"}\r
+            two{"bholívar Veiniséala (2008–2018)"}\r
+        }\r
+        VES{\r
             few{"bholívar Veiniséala"}\r
             many{"mbolívar Veiniséala"}\r
             one{"bholívar Veiniséala"}\r
@@ -3177,5 +3188,5 @@ ga{
         other{"{0} {1}"}\r
         two{"{0} {1}"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.91"}\r
 }\r
index b924b2f..baae233 100644 (file)
@@ -262,6 +262,10 @@ gd{
             "CLP",\r
             "Peso Sileach",\r
         }\r
+        CNH{\r
+            "CNH",\r
+            "Yuan Sìneach (far-thìreach)",\r
+        }\r
         CNX{\r
             "CNX",\r
             "Dolar an t-sluagh-bhanca Shìnich",\r
@@ -1040,6 +1044,10 @@ gd{
         }\r
         VEF{\r
             "VEF",\r
+            "Bolívar Bheinisealach (2008–2018)",\r
+        }\r
+        VES{\r
+            "VES",\r
             "Bolívar Bheinisealach",\r
         }\r
         VND{\r
@@ -1697,6 +1705,12 @@ gd{
             other{"peso Sileach"}\r
             two{"pheso Sileach"}\r
         }\r
+        CNH{\r
+            few{"yuan Sìneach (far-thìreach)"}\r
+            one{"yuan Sìneach (far-thìreach)"}\r
+            other{"yuan Sìneach (far-thìreach)"}\r
+            two{"yuan Sìneach (far-thìreach)"}\r
+        }\r
         CNX{\r
             few{"dolaran an t-sluagh-bhanca Shìnich"}\r
             one{"dolar an t-sluagh-bhanca Shìnich"}\r
@@ -2862,6 +2876,12 @@ gd{
             two{"bholívar Bheinisealach (1871–2008)"}\r
         }\r
         VEF{\r
+            few{"bolívar Bheinisealach (2008–2018)"}\r
+            one{"bholívar Bheinisealach (2008–2018)"}\r
+            other{"bolívar Bheinisealach (2008–2018)"}\r
+            two{"bholívar Bheinisealach (2008–2018)"}\r
+        }\r
+        VES{\r
             few{"bolívar Bheinisealach"}\r
             one{"bholívar Bheinisealach"}\r
             other{"bolívar Bheinisealach"}\r
@@ -3114,5 +3134,5 @@ gd{
         other{"{0} {1}"}\r
         two{"{0} {1}"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.91"}\r
 }\r
index ed99de1..29bd638 100644 (file)
@@ -293,7 +293,7 @@ gl{
         }\r
         GIP{\r
             "GIP",\r
-            "libra xibraltareña",\r
+            "Libra xibraltareña",\r
         }\r
         GMD{\r
             "GMD",\r
@@ -777,6 +777,10 @@ gl{
         }\r
         VEF{\r
             "VEF",\r
+            "Bolívar venezolano (2008–2018)",\r
+        }\r
+        VES{\r
+            "VES",\r
             "Bolívar venezolano",\r
         }\r
         VND{\r
@@ -824,7 +828,7 @@ gl{
             "Platino",\r
         }\r
         XXX{\r
-            "XXX",\r
+            "¤",\r
             "Moeda descoñecida",\r
         }\r
         YER{\r
@@ -1630,6 +1634,10 @@ gl{
             other{"bolívares venezolanos (1871–2008)"}\r
         }\r
         VEF{\r
+            one{"bolívar venezolano (2008–2018)"}\r
+            other{"bolívares venezolanos (2008–2018)"}\r
+        }\r
+        VES{\r
             one{"bolívar venezolano"}\r
             other{"bolívares venezolanos"}\r
         }\r
@@ -1682,5 +1690,5 @@ gl{
         one{"{0} {1}"}\r
         other{"{0} {1}"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.94"}\r
 }\r
index 8114b56..0814024 100644 (file)
@@ -956,6 +956,10 @@ gsw{
         }\r
         VEF{\r
             "VEF",\r
+            "Bolivar (2008–2018)",\r
+        }\r
+        VES{\r
+            "VES",\r
             "Bolivar",\r
         }\r
         VND{\r
@@ -1043,7 +1047,7 @@ gsw{
             "Teschtwährig",\r
         }\r
         XXX{\r
-            "XXX",\r
+            "¤",\r
             "Unbekannti Währig",\r
         }\r
         YDD{\r
@@ -2017,6 +2021,10 @@ gsw{
             other{"Bolivar (1871–2008)"}\r
         }\r
         VEF{\r
+            one{"Bolivar (2008–2018)"}\r
+            other{"Bolivar (2008–2018)"}\r
+        }\r
+        VES{\r
             one{"Bolivar"}\r
             other{"Bolivar"}\r
         }\r
@@ -2153,5 +2161,5 @@ gsw{
         one{"{0} {1}"}\r
         other{"{0} {1}"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.41.34"}\r
 }\r
index c6ba285..4607ec3 100644 (file)
@@ -604,6 +604,10 @@ gu{
         }\r
         VEF{\r
             "VEF",\r
+            "વેનેઝુએલન બોલિવર (2008–2018)",\r
+        }\r
+        VES{\r
+            "VES",\r
             "વેનેઝુએલન બોલિવર",\r
         }\r
         VND{\r
@@ -635,7 +639,7 @@ gu{
             "[CFP] ફ્રેંક",\r
         }\r
         XXX{\r
-            "XXX",\r
+            "¤",\r
             "અજ્ઞાત ચલણ",\r
         }\r
         YER{\r
@@ -1353,6 +1357,10 @@ gu{
             other{"ઉઝ્બેકિસ્તાન સોમ"}\r
         }\r
         VEF{\r
+            one{"વેનેઝુએલન બોલિવર (2008–2018)"}\r
+            other{"વેનેઝુએલન બોલિવર (2008–2018)"}\r
+        }\r
+        VES{\r
             one{"વેનેઝુએલન બોલિવર"}\r
             other{"વેનેઝુએલન બોલિવર"}\r
         }\r
@@ -1405,5 +1413,5 @@ gu{
         one{"{0} {1}"}\r
         other{"{0} {1}"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.2"}\r
 }\r
index 327e816..4cae229 100644 (file)
@@ -231,5 +231,5 @@ ha{
             "Dalar zimbabuwe",\r
         }\r
     }\r
-    Version{"2.1.39.11"}\r
+    Version{"2.1.43.2"}\r
 }\r
index acb7f36..c835f12 100644 (file)
@@ -11,5 +11,5 @@ haw{
         one{"{0} {1}"}\r
         other{"{0} {1}"}\r
     }\r
-    Version{"2.1.38.69"}\r
+    Version{"2.1.43.94"}\r
 }\r
index 2407bb3..375438f 100644 (file)
@@ -812,6 +812,10 @@ he{
         }\r
         VEF{\r
             "VEF",\r
+            "בוליבר ונצואלי (2008–2018)",\r
+        }\r
+        VES{\r
+            "VES",\r
             "בוליבר ונצואלי",\r
         }\r
         VND{\r
@@ -871,7 +875,7 @@ he{
             "סימון למטרות בדיקה",\r
         }\r
         XXX{\r
-            "XXX",\r
+            "¤",\r
             "מטבע שאינו ידוע",\r
         }\r
         YDD{\r
@@ -1910,6 +1914,12 @@ he{
             two{"סום אוזבקי"}\r
         }\r
         VEF{\r
+            many{"בוליבר ונצואלי (2008–2018)"}\r
+            one{"בוליבר ונצואלי (2008–2018)"}\r
+            other{"בוליבר ונצואלי (2008–2018)"}\r
+            two{"בוליבר ונצואלי (2008–2018)"}\r
+        }\r
+        VES{\r
             many{"בוליבר ונצואלי"}\r
             one{"בוליבר ונצואלי"}\r
             other{"בוליבר ונצואלי"}\r
@@ -1988,5 +1998,5 @@ he{
         other{"{0} {1}"}\r
         two{"{0} {1}"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.94"}\r
 }\r
index e71abf6..4aebd0c 100644 (file)
@@ -596,7 +596,7 @@ hi{
         }\r
         STN{\r
             "STN",\r
-            "साà¤\93 à¤¤ोम और प्रिंसिपे डोबरा",\r
+            "साà¤\93 à¤\9fोम और प्रिंसिपे डोबरा",\r
         }\r
         SUR{\r
             "SUR",\r
@@ -688,6 +688,10 @@ hi{
         }\r
         VEF{\r
             "VEF",\r
+            "वेनेज़ुएला बोलिवर (2008–2018)",\r
+        }\r
+        VES{\r
+            "VES",\r
             "वेनेज़ुएला बोलिवर",\r
         }\r
         VND{\r
@@ -719,7 +723,7 @@ hi{
             "[CFP] फ़्रैंक",\r
         }\r
         XXX{\r
-            "XXX",\r
+            "¤",\r
             "अज्ञात मुद्रा",\r
         }\r
         YER{\r
@@ -1369,8 +1373,8 @@ hi{
             other{"साओ तोम और प्रिंसिपे डोबरा (1977–2017)"}\r
         }\r
         STN{\r
-            one{"साà¤\93 à¤¤ोम और प्रिंसिपे डोबरा"}\r
-            other{"साà¤\93 à¤¤ोम और प्रिंसिपे डोबरा"}\r
+            one{"साà¤\93 à¤\9fोम और प्रिंसिपे डोबरा"}\r
+            other{"साà¤\93 à¤\9fोम और प्रिंसिपे डोबरा"}\r
         }\r
         SYP{\r
             one{"सीरियाई पाउंड"}\r
@@ -1437,6 +1441,10 @@ hi{
             other{"उज़्बेकिस्तान सोम"}\r
         }\r
         VEF{\r
+            one{"वेनेज़ुएला बोलिवर (2008–2018)"}\r
+            other{"वेनेज़ुएला बोलिवर (2008–2018)"}\r
+        }\r
+        VES{\r
             one{"वेनेज़ुएला बोलिवर"}\r
             other{"वेनेज़ुएला बोलिवर"}\r
         }\r
@@ -1489,5 +1497,5 @@ hi{
         one{"{0} {1}"}\r
         other{"{0} {1}"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.50"}\r
 }\r
index ca9ee7b..b95d750 100644 (file)
@@ -684,7 +684,7 @@ hr{
         }\r
         MRO{\r
             "MRO",\r
-            "mauritanijska ouguja (1973–2017)",\r
+            "mauritanijska ouguja (1973. – 2017.)",\r
         }\r
         MRU{\r
             "MRU",\r
@@ -1044,6 +1044,10 @@ hr{
         }\r
         VEF{\r
             "VEF",\r
+            "venezuelanski bolivar (2008. – 2018.)",\r
+        }\r
+        VES{\r
+            "VES",\r
             "venezuelanski bolivar",\r
         }\r
         VND{\r
@@ -2151,9 +2155,9 @@ hr{
             other{"makaoških pataka"}\r
         }\r
         MRO{\r
-            few{"mauritanijske ouguje (1973–2017)"}\r
-            one{"mauritanijska ouguja (1973–2017)"}\r
-            other{"mauritanijskih ouguja (1973–2017)"}\r
+            few{"mauritanijske ouguje (1973. – 2017.)"}\r
+            one{"mauritanijska ouguja (1973. – 2017.)"}\r
+            other{"mauritanijskih ouguja (1973. – 2017.)"}\r
         }\r
         MRU{\r
             few{"mauritanijske ouguje"}\r
@@ -2601,6 +2605,11 @@ hr{
             other{"venezuelanskih bolivara (1871.–2008.)"}\r
         }\r
         VEF{\r
+            few{"venezuelanska bolivara (2008. – 2018.)"}\r
+            one{"venezuelanski bolivar (2008. – 2018.)"}\r
+            other{"venezuelanskih bolivara (2008. – 2018.)"}\r
+        }\r
+        VES{\r
             few{"venezuelanska bolivara"}\r
             one{"venezuelanski bolivar"}\r
             other{"venezuelanskih bolivara"}\r
@@ -2811,5 +2820,5 @@ hr{
         one{"{0} {1}"}\r
         other{"{0} {1}"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.50"}\r
 }\r
index cdaf4c4..5ee3e00 100644 (file)
@@ -700,6 +700,10 @@ hsb{
         }\r
         VEF{\r
             "VEF",\r
+            "venezuelski bolívar (2008–2018)",\r
+        }\r
+        VES{\r
+            "VES",\r
             "venezuelski bolívar",\r
         }\r
         VND{\r
@@ -731,7 +735,7 @@ hsb{
             "CFP-frank",\r
         }\r
         XXX{\r
-            "XXX",\r
+            "¤",\r
             "njeznata měna",\r
         }\r
         YER{\r
@@ -1796,6 +1800,12 @@ hsb{
             two{"uzbekskej sumaj"}\r
         }\r
         VEF{\r
+            few{"venezuelske bolívary (2008–2018)"}\r
+            one{"venezuelski bolívar (2008–2018)"}\r
+            other{"venezuelskich bolívarow (2008–2018)"}\r
+            two{"venezuelskej bolívaraj (2008–2018)"}\r
+        }\r
+        VES{\r
             few{"venezuelske bolívary"}\r
             one{"venezuelski bolívar"}\r
             other{"venezuelskich bolívarow"}\r
@@ -1874,5 +1884,5 @@ hsb{
         other{"{0} {1}"}\r
         two{"{0} {1}"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.41.34"}\r
 }\r
index 22b69d3..bd76bc4 100644 (file)
@@ -356,7 +356,7 @@ hu{
         }\r
         GBP{\r
             "GBP",\r
-            "brit font",\r
+            "angol font",\r
         }\r
         GEK{\r
             "GEK",\r
@@ -972,6 +972,10 @@ hu{
         }\r
         VEF{\r
             "VEF",\r
+            "venezuelai bolivar (2008–2018)",\r
+        }\r
+        VES{\r
+            "VES",\r
             "venezuelai bolivar",\r
         }\r
         VND{\r
@@ -1059,7 +1063,7 @@ hu{
             "Tesztelési pénznemkód",\r
         }\r
         XXX{\r
-            "XXX",\r
+            "¤",\r
             "ismeretlen pénznem",\r
         }\r
         YDD{\r
@@ -1497,8 +1501,8 @@ hu{
             other{"falkland-szigeteki font"}\r
         }\r
         GBP{\r
-            one{"brit font"}\r
-            other{"brit font"}\r
+            one{"angol font"}\r
+            other{"angol font"}\r
         }\r
         GEL{\r
             one{"grúz lari"}\r
@@ -1949,6 +1953,10 @@ hu{
             other{"Venezuelai bolivar (1871–2008)"}\r
         }\r
         VEF{\r
+            one{"venezuelai bolivar (2008–2018)"}\r
+            other{"venezuelai bolivar (2008–2018)"}\r
+        }\r
+        VES{\r
             one{"venezuelai bolivar"}\r
             other{"venezuelai bolivar"}\r
         }\r
@@ -2037,5 +2045,5 @@ hu{
         one{"{0} {1}"}\r
         other{"{0} {1}"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.65"}\r
 }\r
index 620ca2e..df513b2 100644 (file)
@@ -240,7 +240,7 @@ hy{
         }\r
         HTG{\r
             "HTG",\r
-            "հաիթյան գուրդ",\r
+            "Õ°Õ¡ÕµÕ«Õ©ÕµÕ¡Õ¶ Õ£Õ¸Ö\82Ö\80Õ¤",\r
         }\r
         HUF{\r
             "HUF",\r
@@ -600,6 +600,10 @@ hy{
         }\r
         VEF{\r
             "VEF",\r
+            "վենեսուելական բոլիվար (2008–2018)",\r
+        }\r
+        VES{\r
+            "VES",\r
             "վենեսուելական բոլիվար",\r
         }\r
         VND{\r
@@ -631,7 +635,7 @@ hy{
             "ԿՊՖ ֆրանկ",\r
         }\r
         XXX{\r
-            "XXX",\r
+            "¤",\r
             "անհայտ արժույթ",\r
         }\r
         YER{\r
@@ -989,8 +993,8 @@ hy{
             other{"խորվաթական կունա"}\r
         }\r
         HTG{\r
-            one{"հաիթյան գուրդ"}\r
-            other{"հաիթյան գուրդ"}\r
+            one{"Õ°Õ¡ÕµÕ«Õ©ÕµÕ¡Õ¶ Õ£Õ¸Ö\82Ö\80Õ¤"}\r
+            other{"Õ°Õ¡ÕµÕ«Õ©ÕµÕ¡Õ¶ Õ£Õ¸Ö\82Ö\80Õ¤"}\r
         }\r
         HUF{\r
             one{"հունգարական ֆորինտ"}\r
@@ -1349,6 +1353,10 @@ hy{
             other{"ուզբեկական սոմ"}\r
         }\r
         VEF{\r
+            one{"վենեսուելական բոլիվար (2008–2018)"}\r
+            other{"վենեսուելական բոլիվար (2008–2018)"}\r
+        }\r
+        VES{\r
             one{"վենեսուելական բոլիվար"}\r
             other{"վենեսուելական բոլիվար"}\r
         }\r
@@ -1405,5 +1413,5 @@ hy{
         one{"{0} {1}"}\r
         other{"{0} {1}"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.50"}\r
 }\r
diff --git a/source/data/curr/ia.txt b/source/data/curr/ia.txt
new file mode 100644 (file)
index 0000000..068adcd
--- /dev/null
@@ -0,0 +1,482 @@
+// © 2016 and later: Unicode, Inc. and others.\r
+// License & terms of use: http://www.unicode.org/copyright.html#License\r
+ia{\r
+    Currencies{\r
+        ALL{\r
+            "ALL",\r
+            "lek albanese",\r
+        }\r
+        ANG{\r
+            "ANG",\r
+            "florino antillan",\r
+        }\r
+        AOA{\r
+            "AOA",\r
+            "kwanza angolan",\r
+        }\r
+        ARS{\r
+            "ARS",\r
+            "peso argentin",\r
+        }\r
+        AUD{\r
+            "A$",\r
+            "dollar australian",\r
+        }\r
+        AWG{\r
+            "AWG",\r
+            "florino aruban",\r
+        }\r
+        BAM{\r
+            "BAM",\r
+            "marco convertibile de Bosnia-Herzegovina",\r
+        }\r
+        BBD{\r
+            "BBD",\r
+            "dollar barbadian",\r
+        }\r
+        BGN{\r
+            "BGN",\r
+            "lev bulgare",\r
+        }\r
+        BIF{\r
+            "BIF",\r
+            "franco burundese",\r
+        }\r
+        BMD{\r
+            "BMD",\r
+            "dollar bermudan",\r
+        }\r
+        BOB{\r
+            "BOB",\r
+            "boliviano bolivian",\r
+        }\r
+        BRL{\r
+            "R$",\r
+            "real brasilian",\r
+        }\r
+        BSD{\r
+            "BSD",\r
+            "dollar bahamian",\r
+        }\r
+        BWP{\r
+            "BWP",\r
+            "pula botswanese",\r
+        }\r
+        BYN{\r
+            "BYN",\r
+            "rublo bielorusse",\r
+        }\r
+        BZD{\r
+            "BZD",\r
+            "dollar belizan",\r
+        }\r
+        CAD{\r
+            "CA$",\r
+            "dollar canadian",\r
+        }\r
+        CDF{\r
+            "CDF",\r
+            "franco congolese",\r
+        }\r
+        CHF{\r
+            "CHF",\r
+            "franco suisse",\r
+        }\r
+        CLP{\r
+            "CLP",\r
+            "peso chilen",\r
+        }\r
+        CNY{\r
+            "CN¥",\r
+            "yuan chinese",\r
+        }\r
+        COP{\r
+            "COP",\r
+            "peso colombian",\r
+        }\r
+        CRC{\r
+            "CRC",\r
+            "colon costarican",\r
+        }\r
+        CUC{\r
+            "CUC",\r
+            "peso cuban convertibile",\r
+        }\r
+        CUP{\r
+            "CUP",\r
+            "peso cuban",\r
+        }\r
+        CVE{\r
+            "CVE",\r
+            "escudo capoverdian",\r
+        }\r
+        CZK{\r
+            "CZK",\r
+            "corona chec",\r
+        }\r
+        DEM{\r
+            "DEM",\r
+            "Marco geman",\r
+        }\r
+        DJF{\r
+            "DJF",\r
+            "franco djibutian",\r
+        }\r
+        DKK{\r
+            "DKK",\r
+            "corona danese",\r
+        }\r
+        DOP{\r
+            "DOP",\r
+            "peso dominican",\r
+        }\r
+        DZD{\r
+            "DZD",\r
+            "dinar algerin",\r
+        }\r
+        EEK{\r
+            "EEK",\r
+            "Corona estonian",\r
+        }\r
+        EGP{\r
+            "EGP",\r
+            "libra egyptie",\r
+        }\r
+        ERN{\r
+            "ERN",\r
+            "nakfa eritree",\r
+        }\r
+        ETB{\r
+            "ETB",\r
+            "birr ethiope",\r
+        }\r
+        EUR{\r
+            "€",\r
+            "euro",\r
+        }\r
+        FIM{\r
+            "FIM",\r
+            "Marco finnese",\r
+        }\r
+        FJD{\r
+            "FJD",\r
+            "dollar fijian",\r
+        }\r
+        FKP{\r
+            "FKP",\r
+            "libra falklandese",\r
+        }\r
+        FRF{\r
+            "FRF",\r
+            "Franco francese",\r
+        }\r
+        GBP{\r
+            "£",\r
+            "libra sterling",\r
+        }\r
+        GHS{\r
+            "GHS",\r
+            "cedi ghanese",\r
+        }\r
+        GIP{\r
+            "GIP",\r
+            "libra de Gibraltar",\r
+        }\r
+        GMD{\r
+            "GMD",\r
+            "dalasi gambian",\r
+        }\r
+        GNF{\r
+            "GNF",\r
+            "franco guinean",\r
+        }\r
+        GTQ{\r
+            "GTQ",\r
+            "quetzal guatemaltec",\r
+        }\r
+        GYD{\r
+            "GYD",\r
+            "dollar guyanese",\r
+        }\r
+        HNL{\r
+            "HNL",\r
+            "lempira hondurese",\r
+        }\r
+        HRK{\r
+            "HRK",\r
+            "kuna croate",\r
+        }\r
+        HTG{\r
+            "HTG",\r
+            "gourde haitian",\r
+        }\r
+        HUF{\r
+            "HUF",\r
+            "forint hungare",\r
+        }\r
+        IEP{\r
+            "IEP",\r
+            "Libra irlandese",\r
+        }\r
+        INR{\r
+            "₹",\r
+            "rupia indian",\r
+        }\r
+        ISK{\r
+            "ISK",\r
+            "corona islandese",\r
+        }\r
+        JMD{\r
+            "JMD",\r
+            "dollar jamaican",\r
+        }\r
+        JPY{\r
+            "JP¥",\r
+            "yen japonese",\r
+        }\r
+        KES{\r
+            "KES",\r
+            "shilling kenyan",\r
+        }\r
+        KMF{\r
+            "KMF",\r
+            "franco comorian",\r
+        }\r
+        KYD{\r
+            "KYD",\r
+            "dollar del Insulas Caiman",\r
+        }\r
+        LRD{\r
+            "LRD",\r
+            "dollar liberian",\r
+        }\r
+        LYD{\r
+            "LYD",\r
+            "dinar libyc",\r
+        }\r
+        MAD{\r
+            "MAD",\r
+            "dirham marocchin",\r
+        }\r
+        MDL{\r
+            "MDL",\r
+            "leu moldave",\r
+        }\r
+        MGA{\r
+            "MGA",\r
+            "ariary malgache",\r
+        }\r
+        MKD{\r
+            "MKD",\r
+            "denar macedonie",\r
+        }\r
+        MRO{\r
+            "MRO",\r
+            "ouguiya mauritan (1973–2017)",\r
+        }\r
+        MRU{\r
+            "MRU",\r
+            "ouguiya mauritan",\r
+        }\r
+        MUR{\r
+            "MUR",\r
+            "rupia mauritian",\r
+        }\r
+        MWK{\r
+            "MWK",\r
+            "kwacha malawian",\r
+        }\r
+        MXN{\r
+            "MX$",\r
+            "peso mexican",\r
+        }\r
+        MZN{\r
+            "MZN",\r
+            "metical mozambican",\r
+        }\r
+        NAD{\r
+            "NAD",\r
+            "dollar namibian",\r
+        }\r
+        NGN{\r
+            "NGN",\r
+            "naira nigerian",\r
+        }\r
+        NIO{\r
+            "NIO",\r
+            "cordoba nicaraguan",\r
+        }\r
+        NLG{\r
+            "ƒ",\r
+            "Florino nederlandese",\r
+        }\r
+        NOK{\r
+            "NOK",\r
+            "corona norvegian",\r
+        }\r
+        NZD{\r
+            "NZ$",\r
+            "dollar neozelandese",\r
+        }\r
+        PAB{\r
+            "PAB",\r
+            "balboa panamen",\r
+        }\r
+        PEN{\r
+            "PEN",\r
+            "sol peruvian",\r
+        }\r
+        PGK{\r
+            "PGK",\r
+            "kina papuan",\r
+        }\r
+        PLN{\r
+            "PLN",\r
+            "zloty polonese",\r
+        }\r
+        PYG{\r
+            "PYG",\r
+            "guarani paraguayan",\r
+        }\r
+        RON{\r
+            "RON",\r
+            "leu romanian",\r
+        }\r
+        RSD{\r
+            "RSD",\r
+            "dinar serbe",\r
+        }\r
+        RUB{\r
+            "₽",\r
+            "rublo russe",\r
+        }\r
+        RWF{\r
+            "RWF",\r
+            "franco ruandese",\r
+        }\r
+        SBD{\r
+            "SBD",\r
+            "dollar del insulas Salomon",\r
+        }\r
+        SCR{\r
+            "SCR",\r
+            "rupia seychellese",\r
+        }\r
+        SDG{\r
+            "SDG",\r
+            "libra sudanese",\r
+        }\r
+        SEK{\r
+            "SEK",\r
+            "corona svedese",\r
+        }\r
+        SHP{\r
+            "SHP",\r
+            "libra de St. Helena",\r
+        }\r
+        SLL{\r
+            "SLL",\r
+            "leone sierraleonese",\r
+        }\r
+        SOS{\r
+            "SOS",\r
+            "shilling somali",\r
+        }\r
+        SRD{\r
+            "SRD",\r
+            "dollar surinamese",\r
+        }\r
+        SSP{\r
+            "SSP",\r
+            "libra sud-sudanese",\r
+        }\r
+        STN{\r
+            "STN",\r
+            "dobra de São Tomé e Príncipe",\r
+        }\r
+        SZL{\r
+            "SZL",\r
+            "lilangeni swazilandese",\r
+        }\r
+        TND{\r
+            "TND",\r
+            "dinar tunisian",\r
+        }\r
+        TOP{\r
+            "TOP",\r
+            "paʻanga tongan",\r
+        }\r
+        TTD{\r
+            "TTD",\r
+            "dollar de Trinidad e Tobago",\r
+        }\r
+        TZS{\r
+            "TZS",\r
+            "shilling tanzanian",\r
+        }\r
+        UAH{\r
+            "UAH",\r
+            "hryvnia ukrainian",\r
+        }\r
+        UGX{\r
+            "UGX",\r
+            "shilling ugandese",\r
+        }\r
+        USD{\r
+            "US$",\r
+            "dollar statounitese",\r
+        }\r
+        UYU{\r
+            "UYU",\r
+            "peso uruguayan",\r
+        }\r
+        VEF{\r
+            "VEF",\r
+            "bolivar venezuelan (2008–2018)",\r
+        }\r
+        VES{\r
+            "VES",\r
+            "bolivar venezuelan",\r
+        }\r
+        VUV{\r
+            "VUV",\r
+            "vatu vanuatuan",\r
+        }\r
+        WST{\r
+            "WST",\r
+            "tala samoan",\r
+        }\r
+        XAF{\r
+            "FCFA",\r
+            "franco CFA de Africa Central",\r
+        }\r
+        XCD{\r
+            "EC$",\r
+            "dollar del Caribes Oriental",\r
+        }\r
+        XOF{\r
+            "CFA",\r
+            "franco CFA de Africa Occidental",\r
+        }\r
+        XPF{\r
+            "CFPF",\r
+            "franco CFP",\r
+        }\r
+        XXX{\r
+            "¤",\r
+            "moneta incognite",\r
+        }\r
+        ZAR{\r
+            "ZAR",\r
+            "rand sudafrican",\r
+        }\r
+        ZMW{\r
+            "ZMW",\r
+            "kwacha zambian",\r
+        }\r
+    }\r
+    Currencies%narrow{\r
+        RUB{"₽"}\r
+    }\r
+    Version{"2.1.44.15"}\r
+}\r
index 6eef626..332fc80 100644 (file)
@@ -1036,6 +1036,10 @@ id{
         }\r
         VEF{\r
             "VEF",\r
+            "Bolivar Venezuela (2008–2018)",\r
+        }\r
+        VES{\r
+            "VES",\r
             "Bolivar Venezuela",\r
         }\r
         VND{\r
@@ -1862,6 +1866,9 @@ id{
             other{"Bolivar Venezuela (1871–2008)"}\r
         }\r
         VEF{\r
+            other{"Bolivar Venezuela (2008–2018)"}\r
+        }\r
+        VES{\r
             other{"Bolivar Venezuela"}\r
         }\r
         VND{\r
@@ -1928,5 +1935,5 @@ id{
     CurrencyUnitPatterns{\r
         other{"{0} {1}"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.20"}\r
 }\r
index 3585802..cebb84d 100644 (file)
@@ -14,5 +14,5 @@ ig{
     CurrencyUnitPatterns{\r
         other{"{0} {1}"}\r
     }\r
-    Version{"2.1.38.69"}\r
+    Version{"2.1.44.88"}\r
 }\r
index d09c934..53ece25 100644 (file)
@@ -7,7 +7,7 @@ ii{
             "CNY",\r
         }\r
         XXX{\r
-            "XXX",\r
+            "¤",\r
             "ꅉꀋꐚꌠꌋꆀꎆꃀꀋꈁꀐꌠ",\r
         }\r
     }\r
index 885a934..36b6b57 100644 (file)
@@ -824,6 +824,10 @@ is{
         }\r
         VEF{\r
             "VEF",\r
+            "venesúelskur bólívari (2008–2018)",\r
+        }\r
+        VES{\r
+            "VES",\r
             "venesúelskur bólívari",\r
         }\r
         VND{\r
@@ -867,7 +871,7 @@ is{
             "pólinesískur franki",\r
         }\r
         XXX{\r
-            "XXX",\r
+            "¤",\r
             "óþekktur gjaldmiðill",\r
         }\r
         YDD{\r
@@ -1617,6 +1621,10 @@ is{
             other{"úsbeksk súm"}\r
         }\r
         VEF{\r
+            one{"venesúelskur bólívari (2008–2018)"}\r
+            other{"venesúelskir bólívarar (2008–2018)"}\r
+        }\r
+        VES{\r
             one{"venesúelskur bólívari"}\r
             other{"venesúelskir bólívarar"}\r
         }\r
@@ -1669,5 +1677,5 @@ is{
         one{"{0} {1}"}\r
         other{"{0} {1}"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.91"}\r
 }\r
index 5228a2a..2fb01d2 100644 (file)
@@ -837,7 +837,7 @@ it{
         }\r
         STN{\r
             "STN",\r
-            "dobra di Sao Tomé e Principe",\r
+            "dobra di Sao Tomé e Príncipe",\r
         }\r
         SUR{\r
             "SUR",\r
@@ -957,6 +957,10 @@ it{
         }\r
         VEF{\r
             "VEF",\r
+            "bolívar venezuelano (2008–2018)",\r
+        }\r
+        VES{\r
+            "VES",\r
             "bolívar venezuelano",\r
         }\r
         VND{\r
@@ -1040,7 +1044,7 @@ it{
             "codice di verifica della valuta",\r
         }\r
         XXX{\r
-            "XXX",\r
+            "¤",\r
             "valuta sconosciuta",\r
         }\r
         YDD{\r
@@ -1738,8 +1742,8 @@ it{
             other{"dobra di Sao Tomé e Principe (1977–2017)"}\r
         }\r
         STN{\r
-            one{"dobra di Sao Tomé e Principe"}\r
-            other{"dobra di Sao Tomé e Principe"}\r
+            one{"dobra di Sao Tomé e Príncipe"}\r
+            other{"dobra di Sao Tomé e Príncipe"}\r
         }\r
         SYP{\r
             one{"lira siriana"}\r
@@ -1814,6 +1818,10 @@ it{
             other{"bolivares venezuelani (1871–2008)"}\r
         }\r
         VEF{\r
+            one{"bolívar venezuelano (2008–2018)"}\r
+            other{"bolívares venezuelani (2008–2018)"}\r
+        }\r
+        VES{\r
             one{"bolívar venezuelano"}\r
             other{"bolívares venezuelani"}\r
         }\r
@@ -1870,5 +1878,5 @@ it{
         one{"{0} {1}"}\r
         other{"{0} {1}"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.86"}\r
 }\r
index ad87152..a8d5491 100644 (file)
@@ -1044,6 +1044,10 @@ ja{
         }\r
         VEF{\r
             "VEF",\r
+            "ベネズエラ ボリバル (2008–2018)",\r
+        }\r
+        VES{\r
+            "VES",\r
             "ベネズエラ ボリバル",\r
         }\r
         VND{\r
@@ -2090,6 +2094,9 @@ ja{
             other{"ベネズエラ ボリバル (1871–2008)"}\r
         }\r
         VEF{\r
+            other{"ベネズエラ ボリバル (2008–2018)"}\r
+        }\r
+        VES{\r
             other{"ベネズエラ ボリバル"}\r
         }\r
         VND{\r
@@ -2216,5 +2223,5 @@ ja{
     CurrencyUnitPatterns{\r
         other{"{0}{1}"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.91"}\r
 }\r
index d9d031a..7d2f981 100644 (file)
@@ -19,7 +19,7 @@ jgo{
             "Fɛlâŋ",\r
         }\r
         XXX{\r
-            "XXX",\r
+            "¤",\r
             "ntɛ-ŋkáp yi pɛ́ ká kɛ́ jínɛ",\r
         }\r
     }\r
diff --git a/source/data/curr/jv.txt b/source/data/curr/jv.txt
new file mode 100644 (file)
index 0000000..52d3e3b
--- /dev/null
@@ -0,0 +1,1217 @@
+// © 2016 and later: Unicode, Inc. and others.\r
+// License & terms of use: http://www.unicode.org/copyright.html#License\r
+jv{\r
+    Currencies{\r
+        AED{\r
+            "AED",\r
+            "Dirham Uni Emirat Arab",\r
+        }\r
+        AFN{\r
+            "AFN",\r
+            "Afghani Afganistan",\r
+        }\r
+        ALL{\r
+            "ALL",\r
+            "Lek Albania",\r
+        }\r
+        AMD{\r
+            "AMD",\r
+            "Dram Armenia",\r
+        }\r
+        ANG{\r
+            "ANG",\r
+            "Guilder Antilla Walanda",\r
+        }\r
+        AOA{\r
+            "AOA",\r
+            "Kwanza Angola",\r
+        }\r
+        ARS{\r
+            "ARS",\r
+            "Peso Argentina",\r
+        }\r
+        AUD{\r
+            "A$",\r
+            "Dolar Australia",\r
+        }\r
+        AWG{\r
+            "AWG",\r
+            "Florin Aruban",\r
+        }\r
+        AZN{\r
+            "AZN",\r
+            "Manat Azerbaijan",\r
+        }\r
+        BAM{\r
+            "BAM",\r
+            "Mark Konvertibel Bosnia-Herzegovina",\r
+        }\r
+        BBD{\r
+            "BBD",\r
+            "Dolar Barbadian",\r
+        }\r
+        BDT{\r
+            "BDT",\r
+            "Taka Bangladesh",\r
+        }\r
+        BGN{\r
+            "BGN",\r
+            "Lev Bulgaria",\r
+        }\r
+        BHD{\r
+            "BHD",\r
+            "Bahrain Dinar",\r
+        }\r
+        BIF{\r
+            "BIF",\r
+            "Franc Burundi",\r
+        }\r
+        BMD{\r
+            "BMD",\r
+            "Dolar Bermuda",\r
+        }\r
+        BND{\r
+            "BND",\r
+            "Dolar Brunai",\r
+        }\r
+        BOB{\r
+            "BOB",\r
+            "Boliviano Bolivia",\r
+        }\r
+        BRL{\r
+            "R$",\r
+            "Real Brasil",\r
+        }\r
+        BSD{\r
+            "BSD",\r
+            "Dolar Bahamian",\r
+        }\r
+        BTN{\r
+            "BTN",\r
+            "Ngultrum Bhutan",\r
+        }\r
+        BWP{\r
+            "BWP",\r
+            "Pula Botswana",\r
+        }\r
+        BYN{\r
+            "BYN",\r
+            "Ruble Belarusia",\r
+        }\r
+        BZD{\r
+            "BZD",\r
+            "Dolar Belise",\r
+        }\r
+        CAD{\r
+            "CA$",\r
+            "Dolar Kanada",\r
+        }\r
+        CDF{\r
+            "CDF",\r
+            "Franc Kongo",\r
+        }\r
+        CHF{\r
+            "CHF",\r
+            "Franc Swiss",\r
+        }\r
+        CLP{\r
+            "CLP",\r
+            "Peso Chili",\r
+        }\r
+        CNH{\r
+            "CNH",\r
+            "Yuan Cina (Jaban Rangkah)",\r
+        }\r
+        CNY{\r
+            "CN¥",\r
+            "Yuan Cina",\r
+        }\r
+        COP{\r
+            "COP",\r
+            "Peso Kolumbia",\r
+        }\r
+        CRC{\r
+            "CRC",\r
+            "Colon Kosta Rika",\r
+        }\r
+        CUC{\r
+            "CUC",\r
+            "Peso Konvertibel Kuba",\r
+        }\r
+        CUP{\r
+            "CUP",\r
+            "Peso Kuba",\r
+        }\r
+        CVE{\r
+            "CVE",\r
+            "Escudo Tanjung Verde",\r
+        }\r
+        CZK{\r
+            "CZK",\r
+            "Koruna Czech",\r
+        }\r
+        DJF{\r
+            "DJF",\r
+            "Franc Djibouti",\r
+        }\r
+        DKK{\r
+            "DKK",\r
+            "Krone Denmark",\r
+        }\r
+        DOP{\r
+            "DOP",\r
+            "Peso Dominika",\r
+        }\r
+        DZD{\r
+            "DZD",\r
+            "Dinar Algeria",\r
+        }\r
+        EGP{\r
+            "EGP",\r
+            "Pound Mesir",\r
+        }\r
+        ERN{\r
+            "ERN",\r
+            "Nakfa Eritrea",\r
+        }\r
+        ETB{\r
+            "ETB",\r
+            "Birr Ethiopia",\r
+        }\r
+        EUR{\r
+            "€",\r
+            "Euro",\r
+        }\r
+        FJD{\r
+            "FJD",\r
+            "Dolar Fiji",\r
+        }\r
+        FKP{\r
+            "FKP",\r
+            "Pound Kepuloan Falkland",\r
+        }\r
+        GBP{\r
+            "£",\r
+            "Pound Inggris",\r
+        }\r
+        GEL{\r
+            "GEL",\r
+            "Lari Georgia",\r
+        }\r
+        GHS{\r
+            "GHS",\r
+            "Cedi Ghana",\r
+        }\r
+        GIP{\r
+            "GIP",\r
+            "Pound Gibraltar",\r
+        }\r
+        GMD{\r
+            "GMD",\r
+            "Dalasi Gambia",\r
+        }\r
+        GNF{\r
+            "GNF",\r
+            "Franc Guinea",\r
+        }\r
+        GTQ{\r
+            "GTQ",\r
+            "Quetzal Guatemala",\r
+        }\r
+        GYD{\r
+            "GYD",\r
+            "Dolar Guyana",\r
+        }\r
+        HKD{\r
+            "HK$",\r
+            "Dolar Hong Kong",\r
+        }\r
+        HNL{\r
+            "HNL",\r
+            "Lempira Honduras",\r
+        }\r
+        HRK{\r
+            "HRK",\r
+            "Kuna Kroasia",\r
+        }\r
+        HTG{\r
+            "HTG",\r
+            "Gourde Haiti",\r
+        }\r
+        HUF{\r
+            "HUF",\r
+            "Forint Hungaria",\r
+        }\r
+        IDR{\r
+            "Rp",\r
+            "Rupiah Indonesia",\r
+        }\r
+        ILS{\r
+            "₪",\r
+            "Shekel Anyar Israel",\r
+        }\r
+        INR{\r
+            "₹",\r
+            "Rupee India",\r
+        }\r
+        IQD{\r
+            "IQD",\r
+            "Dinar Irak",\r
+        }\r
+        IRR{\r
+            "IRR",\r
+            "Rial Iran",\r
+        }\r
+        ISK{\r
+            "ISK",\r
+            "Krona Islandia",\r
+        }\r
+        JMD{\r
+            "JMD",\r
+            "Dolar Jamaika",\r
+        }\r
+        JOD{\r
+            "JOD",\r
+            "Dinar Yordania",\r
+        }\r
+        JPY{\r
+            "JP¥",\r
+            "Yen Jepang",\r
+        }\r
+        KES{\r
+            "KES",\r
+            "Shilling Kenya",\r
+        }\r
+        KGS{\r
+            "KGS",\r
+            "Som Kirgistan",\r
+        }\r
+        KHR{\r
+            "KHR",\r
+            "Riel Kamboja",\r
+        }\r
+        KMF{\r
+            "KMF",\r
+            "Franc Komoro",\r
+        }\r
+        KPW{\r
+            "KPW",\r
+            "Won Korea Lor",\r
+        }\r
+        KRW{\r
+            "₩",\r
+            "Won Korea Kidul",\r
+        }\r
+        KWD{\r
+            "KWD",\r
+            "Dinar Kuwait",\r
+        }\r
+        KYD{\r
+            "KYD",\r
+            "Dolar Kepuloan Caiman",\r
+        }\r
+        KZT{\r
+            "KZT",\r
+            "Tenge Kasakhstan",\r
+        }\r
+        LAK{\r
+            "LAK",\r
+            "Kip Laos",\r
+        }\r
+        LBP{\r
+            "LBP",\r
+            "Pound Libanon",\r
+        }\r
+        LKR{\r
+            "LKR",\r
+            "Rupee Sri Lanka",\r
+        }\r
+        LRD{\r
+            "LRD",\r
+            "Dolar Liberia",\r
+        }\r
+        LYD{\r
+            "LYD",\r
+            "Dinar Libya",\r
+        }\r
+        MAD{\r
+            "MAD",\r
+            "Dirham Maroko",\r
+        }\r
+        MDL{\r
+            "MDL",\r
+            "Leu Moldova",\r
+        }\r
+        MGA{\r
+            "MGA",\r
+            "Ariary Malagasi",\r
+        }\r
+        MKD{\r
+            "MKD",\r
+            "Denar Masedonia",\r
+        }\r
+        MMK{\r
+            "MMK",\r
+            "Kyat Myanmar",\r
+        }\r
+        MNT{\r
+            "MNT",\r
+            "Tugrik Mongol",\r
+        }\r
+        MOP{\r
+            "MOP",\r
+            "Pataca Macau",\r
+        }\r
+        MRO{\r
+            "MRO",\r
+            "Ouguiya Mauritania (1973 - 2017)",\r
+        }\r
+        MRU{\r
+            "MRU",\r
+            "Ouguiya Mauritania",\r
+        }\r
+        MUR{\r
+            "MUR",\r
+            "Rupee Mauritius",\r
+        }\r
+        MVR{\r
+            "MVR",\r
+            "Rufiyaa Maladewa",\r
+        }\r
+        MWK{\r
+            "MWK",\r
+            "Kwacha Malawi",\r
+        }\r
+        MXN{\r
+            "MX$",\r
+            "Peso Meksiko",\r
+        }\r
+        MYR{\r
+            "MYR",\r
+            "Ringgit Malaysia",\r
+        }\r
+        MZN{\r
+            "MZN",\r
+            "Metical Mosambik",\r
+        }\r
+        NAD{\r
+            "NAD",\r
+            "Dolar Namibia",\r
+        }\r
+        NGN{\r
+            "NGN",\r
+            "Naira Nigeria",\r
+        }\r
+        NIO{\r
+            "NIO",\r
+            "Cordoba Nikaragua",\r
+        }\r
+        NOK{\r
+            "NOK",\r
+            "Krone Norwegia",\r
+        }\r
+        NPR{\r
+            "NPR",\r
+            "Rupee Nepal",\r
+        }\r
+        NZD{\r
+            "NZ$",\r
+            "Dolar Selandia Anyar",\r
+        }\r
+        OMR{\r
+            "OMR",\r
+            "Rial Oman",\r
+        }\r
+        PAB{\r
+            "PAB",\r
+            "Balboa Panama",\r
+        }\r
+        PEN{\r
+            "PEN",\r
+            "Sol Peru",\r
+        }\r
+        PGK{\r
+            "PGK",\r
+            "Kina Papua Nugini",\r
+        }\r
+        PHP{\r
+            "PHP",\r
+            "Piso Filipina",\r
+        }\r
+        PKR{\r
+            "PKR",\r
+            "Rupee Pakistan",\r
+        }\r
+        PLN{\r
+            "PLN",\r
+            "Zloty Polandia",\r
+        }\r
+        PYG{\r
+            "PYG",\r
+            "Guarani Paraguay",\r
+        }\r
+        QAR{\r
+            "QAR",\r
+            "Rial Qatar",\r
+        }\r
+        RON{\r
+            "RON",\r
+            "Leu Rumania",\r
+        }\r
+        RSD{\r
+            "RSD",\r
+            "Dinar Serbia",\r
+        }\r
+        RUB{\r
+            "RUB",\r
+            "Rubel Rusia",\r
+        }\r
+        RWF{\r
+            "RWF",\r
+            "Franc Rwanda",\r
+        }\r
+        SAR{\r
+            "SAR",\r
+            "Riyal Saudi",\r
+        }\r
+        SBD{\r
+            "SBD",\r
+            "Dolar Kepuloan Solomon",\r
+        }\r
+        SCR{\r
+            "SCR",\r
+            "Rupee Seichelles",\r
+        }\r
+        SDG{\r
+            "SDG",\r
+            "Pound Sudan",\r
+        }\r
+        SEK{\r
+            "SEK",\r
+            "Krona Swedia",\r
+        }\r
+        SGD{\r
+            "SGD",\r
+            "Dolar Singapura",\r
+        }\r
+        SHP{\r
+            "SHP",\r
+            "Pound Santa Helena",\r
+        }\r
+        SLL{\r
+            "SLL",\r
+            "Leone Sierra Leone",\r
+        }\r
+        SOS{\r
+            "SOS",\r
+            "Shilling Somalia",\r
+        }\r
+        SRD{\r
+            "SRD",\r
+            "Dolar Suriname",\r
+        }\r
+        SSP{\r
+            "SSP",\r
+            "Pound Sudan Kidul",\r
+        }\r
+        STN{\r
+            "STN",\r
+            "Dobra Sao Tome lan Principe",\r
+        }\r
+        SYP{\r
+            "SYP",\r
+            "Pound Siria",\r
+        }\r
+        SZL{\r
+            "SZL",\r
+            "Lilangeni Swasi",\r
+        }\r
+        THB{\r
+            "THB",\r
+            "Baht Thai",\r
+        }\r
+        TJS{\r
+            "TJS",\r
+            "Somoni Tajikistan",\r
+        }\r
+        TMT{\r
+            "TMT",\r
+            "Manat Turmenistan",\r
+        }\r
+        TND{\r
+            "TND",\r
+            "Dinar Tunisia",\r
+        }\r
+        TOP{\r
+            "TOP",\r
+            "Paʻanga Tonga",\r
+        }\r
+        TRY{\r
+            "TRY",\r
+            "Lira Turki",\r
+        }\r
+        TTD{\r
+            "TTD",\r
+            "Dolar Trinidad lan Tobago",\r
+        }\r
+        TWD{\r
+            "NT$",\r
+            "Dolar Anyar Taiwan",\r
+        }\r
+        TZS{\r
+            "TZS",\r
+            "Shilling Tansania",\r
+        }\r
+        UAH{\r
+            "UAH",\r
+            "Hryvnia Ukrania",\r
+        }\r
+        UGX{\r
+            "UGX",\r
+            "Shilling Uganda",\r
+        }\r
+        USD{\r
+            "US$",\r
+            "Dolar Amerika Serikat",\r
+        }\r
+        UYU{\r
+            "UYU",\r
+            "Peso Uruguay",\r
+        }\r
+        UZS{\r
+            "UZS",\r
+            "Som Usbekistan",\r
+        }\r
+        VEF{\r
+            "VEF",\r
+            "Bolivar Venezuela (2008 - 2018)",\r
+        }\r
+        VES{\r
+            "VES",\r
+            "Bolivar Venezuela",\r
+        }\r
+        VND{\r
+            "₫",\r
+            "Dong Vietnam",\r
+        }\r
+        VUV{\r
+            "VUV",\r
+            "Vatu Vanuatu",\r
+        }\r
+        WST{\r
+            "WST",\r
+            "Tala Samoa",\r
+        }\r
+        XAF{\r
+            "FCFA",\r
+            "CFA Franc Afrika Tengah",\r
+        }\r
+        XCD{\r
+            "EC$",\r
+            "Dolar Karibia Wetan",\r
+        }\r
+        XOF{\r
+            "CFA",\r
+            "CFA Franc Afrika Kulon",\r
+        }\r
+        XPF{\r
+            "CFPF",\r
+            "Franc CFP",\r
+        }\r
+        XXX{\r
+            "¤",\r
+            "Dhuwit Ora Dikenali",\r
+        }\r
+        YER{\r
+            "YER",\r
+            "Rial Yaman",\r
+        }\r
+        ZAR{\r
+            "ZAR",\r
+            "Rand Afrika Kidul",\r
+        }\r
+        ZMW{\r
+            "ZMW",\r
+            "Kwacha Sambia",\r
+        }\r
+    }\r
+    Currencies%narrow{\r
+        AOA{"Kz"}\r
+        ARS{"$"}\r
+        AUD{"$"}\r
+        BAM{"KM"}\r
+        BBD{"$"}\r
+        BDT{"৳"}\r
+        BMD{"$"}\r
+        BND{"$"}\r
+        BOB{"Bs"}\r
+        BRL{"R$"}\r
+        BSD{"$"}\r
+        BWP{"P"}\r
+        BYN{"р."}\r
+        BZD{"$"}\r
+        CAD{"$"}\r
+        CLP{"$"}\r
+        CNY{"¥"}\r
+        COP{"$"}\r
+        CRC{"₡"}\r
+        CUC{"$"}\r
+        CUP{"$"}\r
+        CZK{"Kč"}\r
+        DKK{"kr"}\r
+        DOP{"$"}\r
+        EGP{"E£"}\r
+        EUR{"€"}\r
+        FJD{"$"}\r
+        FKP{"£"}\r
+        GBP{"£"}\r
+        GEL{"₾"}\r
+        GIP{"£"}\r
+        GNF{"FG"}\r
+        GTQ{"Q"}\r
+        GYD{"$"}\r
+        HKD{"$"}\r
+        HNL{"L"}\r
+        HRK{"kn"}\r
+        HUF{"Ft"}\r
+        IDR{"Rp"}\r
+        ILS{"₪"}\r
+        INR{"₹"}\r
+        ISK{"kr"}\r
+        JMD{"$"}\r
+        JPY{"¥"}\r
+        KHR{"៛"}\r
+        KMF{"CF"}\r
+        KPW{"₩"}\r
+        KRW{"₩"}\r
+        KYD{"$"}\r
+        KZT{"₸"}\r
+        LAK{"₭"}\r
+        LBP{"L£"}\r
+        LKR{"Rs"}\r
+        LRD{"$"}\r
+        MGA{"Ar"}\r
+        MMK{"K"}\r
+        MNT{"₮"}\r
+        MUR{"Rs"}\r
+        MXN{"$"}\r
+        MYR{"RM"}\r
+        NAD{"$"}\r
+        NGN{"₦"}\r
+        NIO{"C$"}\r
+        NOK{"kr"}\r
+        NPR{"Rs"}\r
+        NZD{"$"}\r
+        PHP{"₱"}\r
+        PKR{"Rs"}\r
+        PLN{"zł"}\r
+        PYG{"₲"}\r
+        RON{"lei"}\r
+        RUB{"₽"}\r
+        RWF{"RF"}\r
+        SBD{"$"}\r
+        SEK{"kr"}\r
+        SGD{"$"}\r
+        SHP{"£"}\r
+        SRD{"$"}\r
+        SSP{"£"}\r
+        STN{"Db"}\r
+        SYP{"£"}\r
+        THB{"฿"}\r
+        TOP{"T$"}\r
+        TRY{"₺"}\r
+        TTD{"$"}\r
+        TWD{"$"}\r
+        UAH{"₴"}\r
+        USD{"$"}\r
+        UYU{"$"}\r
+        VEF{"Bs"}\r
+        VND{"₫"}\r
+        XCD{"$"}\r
+        ZAR{"R"}\r
+        ZMW{"ZK"}\r
+    }\r
+    Currencies%variant{\r
+        TRY{"TL"}\r
+    }\r
+    CurrencyPlurals{\r
+        AED{\r
+            other{"Dirham Uni Emirat Arab"}\r
+        }\r
+        AFN{\r
+            other{"Afghani Afganistan"}\r
+        }\r
+        ALL{\r
+            other{"Lek Albania"}\r
+        }\r
+        AMD{\r
+            other{"Dram Armenia"}\r
+        }\r
+        ANG{\r
+            other{"Guilder Antilla Walanda"}\r
+        }\r
+        AOA{\r
+            other{"Kwanza Angola"}\r
+        }\r
+        ARS{\r
+            other{"Peso Argentina"}\r
+        }\r
+        AUD{\r
+            other{"Dolar Australia"}\r
+        }\r
+        AWG{\r
+            other{"Florin Aruban"}\r
+        }\r
+        AZN{\r
+            other{"Manat Azerbaijan"}\r
+        }\r
+        BAM{\r
+            other{"Mark Konvertibel Bosnia-Herzegovina"}\r
+        }\r
+        BBD{\r
+            other{"Dolar Barbadian"}\r
+        }\r
+        BDT{\r
+            other{"Taka Bangladesh"}\r
+        }\r
+        BGN{\r
+            other{"Lev Bulgaria"}\r
+        }\r
+        BHD{\r
+            other{"Bahrain Dinar"}\r
+        }\r
+        BIF{\r
+            other{"Franc Burundi"}\r
+        }\r
+        BMD{\r
+            other{"Dolar Bermuda"}\r
+        }\r
+        BND{\r
+            other{"Dolar Brunai"}\r
+        }\r
+        BOB{\r
+            other{"Boliviano Bolivia"}\r
+        }\r
+        BRL{\r
+            other{"Real Brasil"}\r
+        }\r
+        BSD{\r
+            other{"Dolar Bahamian"}\r
+        }\r
+        BTN{\r
+            other{"Ngultrum Bhutan"}\r
+        }\r
+        BWP{\r
+            other{"Pula Botswana"}\r
+        }\r
+        BYN{\r
+            other{"Ruble Belarusia"}\r
+        }\r
+        BZD{\r
+            other{"Dolar Belise"}\r
+        }\r
+        CAD{\r
+            other{"Dolar Kanada"}\r
+        }\r
+        CDF{\r
+            other{"Franc Kongo"}\r
+        }\r
+        CHF{\r
+            other{"Franc Swiss"}\r
+        }\r
+        CLP{\r
+            other{"Peso Chili"}\r
+        }\r
+        CNH{\r
+            other{"Yuan Cina (Jaban Rangkah)"}\r
+        }\r
+        CNY{\r
+            other{"Yuan Cina"}\r
+        }\r
+        COP{\r
+            other{"Peso Kolumbia"}\r
+        }\r
+        CRC{\r
+            other{"Colon Kosta Rika"}\r
+        }\r
+        CUC{\r
+            other{"Peso Konvertibel Kuba"}\r
+        }\r
+        CUP{\r
+            other{"Peso Kuba"}\r
+        }\r
+        CVE{\r
+            other{"Escudo Tanjung Verde"}\r
+        }\r
+        CZK{\r
+            other{"Koruna Czech"}\r
+        }\r
+        DJF{\r
+            other{"Franc Djibouti"}\r
+        }\r
+        DKK{\r
+            other{"Krone Denmark"}\r
+        }\r
+        DOP{\r
+            other{"Peso Dominika"}\r
+        }\r
+        DZD{\r
+            other{"Dinar Algeria"}\r
+        }\r
+        EGP{\r
+            other{"Pound Mesir"}\r
+        }\r
+        ERN{\r
+            other{"Nakfa Eritrea"}\r
+        }\r
+        ETB{\r
+            other{"Birr Ethiopia"}\r
+        }\r
+        EUR{\r
+            other{"Euro"}\r
+        }\r
+        FJD{\r
+            other{"Dolar Fiji"}\r
+        }\r
+        FKP{\r
+            other{"Pound Kepuloan Falkland"}\r
+        }\r
+        GBP{\r
+            other{"Pound Inggris"}\r
+        }\r
+        GEL{\r
+            other{"Lari Georgia"}\r
+        }\r
+        GHS{\r
+            other{"Cedi Ghana"}\r
+        }\r
+        GIP{\r
+            other{"Pound Gibraltar"}\r
+        }\r
+        GMD{\r
+            other{"Dalasi Gambia"}\r
+        }\r
+        GNF{\r
+            other{"Franc Guinea"}\r
+        }\r
+        GTQ{\r
+            other{"Quetzal Guatemala"}\r
+        }\r
+        GYD{\r
+            other{"Dolar Guyana"}\r
+        }\r
+        HKD{\r
+            other{"Dolar Hong Kong"}\r
+        }\r
+        HNL{\r
+            other{"Lempira Honduras"}\r
+        }\r
+        HRK{\r
+            other{"Kuna Kroasia"}\r
+        }\r
+        HTG{\r
+            other{"Gourde Haiti"}\r
+        }\r
+        HUF{\r
+            other{"Forint Hungaria"}\r
+        }\r
+        IDR{\r
+            other{"Rupiah Indonesia"}\r
+        }\r
+        ILS{\r
+            other{"Shekel Anyar Israel"}\r
+        }\r
+        INR{\r
+            other{"Rupee India"}\r
+        }\r
+        IQD{\r
+            other{"Dinar Irak"}\r
+        }\r
+        IRR{\r
+            other{"Rial Iran"}\r
+        }\r
+        ISK{\r
+            other{"Krona Islandia"}\r
+        }\r
+        JMD{\r
+            other{"Dolar Jamaika"}\r
+        }\r
+        JOD{\r
+            other{"Dinar Yordania"}\r
+        }\r
+        JPY{\r
+            other{"Yen Jepang"}\r
+        }\r
+        KES{\r
+            other{"Shilling Kenya"}\r
+        }\r
+        KGS{\r
+            other{"Som Kirgistan"}\r
+        }\r
+        KHR{\r
+            other{"Riel Kamboja"}\r
+        }\r
+        KMF{\r
+            other{"Franc Komoro"}\r
+        }\r
+        KPW{\r
+            other{"Won Korea Lor"}\r
+        }\r
+        KRW{\r
+            other{"Won Korea Kidul"}\r
+        }\r
+        KWD{\r
+            other{"Dinar Kuwait"}\r
+        }\r
+        KYD{\r
+            other{"Dolar Kepuloan Caiman"}\r
+        }\r
+        KZT{\r
+            other{"Tenge Kasakhstan"}\r
+        }\r
+        LAK{\r
+            other{"Kip Laos"}\r
+        }\r
+        LBP{\r
+            other{"Pound Libanon"}\r
+        }\r
+        LKR{\r
+            other{"Rupee Sri Lanka"}\r
+        }\r
+        LRD{\r
+            other{"Dolar Liberia"}\r
+        }\r
+        LYD{\r
+            other{"Dinar Libya"}\r
+        }\r
+        MAD{\r
+            other{"Dirham Moroko"}\r
+        }\r
+        MDL{\r
+            other{"Leu Moldova"}\r
+        }\r
+        MGA{\r
+            other{"Ariary Malagasi"}\r
+        }\r
+        MKD{\r
+            other{"Denar Masedonia"}\r
+        }\r
+        MMK{\r
+            other{"Kyat Myanmar"}\r
+        }\r
+        MNT{\r
+            other{"Tugrik Mongol"}\r
+        }\r
+        MOP{\r
+            other{"MOP"}\r
+        }\r
+        MRO{\r
+            other{"Ouguiya Mauritania (1973 - 2017)"}\r
+        }\r
+        MRU{\r
+            other{"Ouguiya Mauritania"}\r
+        }\r
+        MUR{\r
+            other{"Rupee Mauritius"}\r
+        }\r
+        MVR{\r
+            other{"Rufiyaa Maladewa"}\r
+        }\r
+        MWK{\r
+            other{"Kwacha Malawi"}\r
+        }\r
+        MXN{\r
+            other{"Peso Meksiko"}\r
+        }\r
+        MYR{\r
+            other{"Ringgit Malaysia"}\r
+        }\r
+        MZN{\r
+            other{"Metical Mosambik"}\r
+        }\r
+        NAD{\r
+            other{"Dolar Namibia"}\r
+        }\r
+        NGN{\r
+            other{"Naira Nigeria"}\r
+        }\r
+        NIO{\r
+            other{"Cordoba Nikaragua"}\r
+        }\r
+        NOK{\r
+            other{"Krone Norwegia"}\r
+        }\r
+        NPR{\r
+            other{"Rupee Nepal"}\r
+        }\r
+        NZD{\r
+            other{"Dolar Selandia Anyar"}\r
+        }\r
+        OMR{\r
+            other{"Rial Oman"}\r
+        }\r
+        PAB{\r
+            other{"Balboa Panama"}\r
+        }\r
+        PEN{\r
+            other{"Sol Peru"}\r
+        }\r
+        PGK{\r
+            other{"Kina Papua Nugini"}\r
+        }\r
+        PHP{\r
+            other{"Piso Filipina"}\r
+        }\r
+        PKR{\r
+            other{"Rupee Pakistan"}\r
+        }\r
+        PLN{\r
+            other{"Zloty Polandia"}\r
+        }\r
+        PYG{\r
+            other{"Guarani Paraguay"}\r
+        }\r
+        QAR{\r
+            other{"Rial Qatar"}\r
+        }\r
+        RON{\r
+            other{"Leu Rumania"}\r
+        }\r
+        RSD{\r
+            other{"Dinar Serbia"}\r
+        }\r
+        RUB{\r
+            other{"Rubel Rusia"}\r
+        }\r
+        RWF{\r
+            other{"Franc Rwanda"}\r
+        }\r
+        SAR{\r
+            other{"Riyal Saudi"}\r
+        }\r
+        SBD{\r
+            other{"Dolar Kepuloan Solomon"}\r
+        }\r
+        SCR{\r
+            other{"Rupee Seichelles"}\r
+        }\r
+        SDG{\r
+            other{"Pound Sudan"}\r
+        }\r
+        SEK{\r
+            other{"Krona Swedia"}\r
+        }\r
+        SGD{\r
+            other{"Dolar Singapura"}\r
+        }\r
+        SHP{\r
+            other{"Pound Santa Helena"}\r
+        }\r
+        SLL{\r
+            other{"Leone Sierra Leone"}\r
+        }\r
+        SOS{\r
+            other{"Shilling Somalia"}\r
+        }\r
+        SRD{\r
+            other{"Dolar Suriname"}\r
+        }\r
+        SSP{\r
+            other{"Pound Sudan Kidul"}\r
+        }\r
+        STN{\r
+            other{"Dobra Sao Tome lan Principe"}\r
+        }\r
+        SYP{\r
+            other{"Pound Siria"}\r
+        }\r
+        SZL{\r
+            other{"Lilangeni Swasi"}\r
+        }\r
+        THB{\r
+            other{"Baht Thai"}\r
+        }\r
+        TJS{\r
+            other{"Somoni Tajikistan"}\r
+        }\r
+        TMT{\r
+            other{"Manat Turmenistan"}\r
+        }\r
+        TND{\r
+            other{"Dinar Tunisia"}\r
+        }\r
+        TOP{\r
+            other{"Paʻanga Tonga"}\r
+        }\r
+        TRY{\r
+            other{"Lira Turki"}\r
+        }\r
+        TTD{\r
+            other{"Dolar Trinidad lan Tobago"}\r
+        }\r
+        TWD{\r
+            other{"Dolar Anyar Taiwan"}\r
+        }\r
+        TZS{\r
+            other{"Shilling Tansania"}\r
+        }\r
+        UAH{\r
+            other{"Hryvnia Ukrania"}\r
+        }\r
+        UGX{\r
+            other{"Shilling Uganda"}\r
+        }\r
+        USD{\r
+            other{"Dolar Amerika Serikat"}\r
+        }\r
+        UYU{\r
+            other{"Peso Uruguay"}\r
+        }\r
+        UZS{\r
+            other{"Som Usbekistan"}\r
+        }\r
+        VEF{\r
+            other{"Bolivar Venezuela (2008 - 2018)"}\r
+        }\r
+        VES{\r
+            other{"Bolivar Venezuela"}\r
+        }\r
+        VND{\r
+            other{"Dong Vietnam"}\r
+        }\r
+        VUV{\r
+            other{"Vatu Vanuatu"}\r
+        }\r
+        WST{\r
+            other{"Tala Samoa"}\r
+        }\r
+        XAF{\r
+            other{"CFA Franc Afrika Tengah"}\r
+        }\r
+        XCD{\r
+            other{"Dolar Karibia Wetan"}\r
+        }\r
+        XOF{\r
+            other{"CFA Franc Afrika Kulon"}\r
+        }\r
+        XPF{\r
+            other{"Franc CFP"}\r
+        }\r
+        XXX{\r
+            other{"Dhuwit Ora Dikenali"}\r
+        }\r
+        YER{\r
+            other{"Rial Yaman"}\r
+        }\r
+        ZAR{\r
+            other{"Rand Afrika Kidul"}\r
+        }\r
+        ZMW{\r
+            other{"Kwacha Sambia"}\r
+        }\r
+    }\r
+    CurrencyUnitPatterns{\r
+        other{"{0} {1}"}\r
+    }\r
+    Version{"2.1.44.15"}\r
+}\r
index 3a0a17d..d8e84ae 100644 (file)
@@ -884,6 +884,10 @@ ka{
         }\r
         VEF{\r
             "VEF",\r
+            "ვენესუელის ბოლივარი (2008–2018)",\r
+        }\r
+        VES{\r
+            "VES",\r
             "ვენესუელის ბოლივარი",\r
         }\r
         VND{\r
@@ -928,14 +932,14 @@ ka{
         }\r
         XOF{\r
             "CFA",\r
-            "(CFA) ფრანკი (BCEAO)",\r
+            "დასავლეთ აფრიკული CFA ფრანკი",\r
         }\r
         XPF{\r
             "CFPF",\r
             "CFP ფრანკი",\r
         }\r
         XXX{\r
-            "XXX",\r
+            "¤",\r
             "უცნობი ვალუტა",\r
         }\r
         YDD{\r
@@ -1277,7 +1281,7 @@ ka{
         }\r
         GBP{\r
             one{"ბრიტანული გირვანქა სტერლინგი"}\r
-            other{"á\83\98á\83\9cá\83\92á\83\9aá\83\98á\83¡á\83£á\83 ი გირვანქა სტერლინგი"}\r
+            other{"á\83\91á\83 á\83\98á\83¢á\83\90á\83\9cá\83£á\83\9aი გირვანქა სტერლინგი"}\r
         }\r
         GEL{\r
             one{"ქართული ლარი"}\r
@@ -1684,6 +1688,10 @@ ka{
             other{"უზბეკური სუმი"}\r
         }\r
         VEF{\r
+            one{"ვენესუელის ბოლივარი (2008–2018)"}\r
+            other{"ვენესუელის ბოლივარი (2008–2018)"}\r
+        }\r
+        VES{\r
             one{"ვენესუელის ბოლივარი"}\r
             other{"ვენესუელის ბოლივარი"}\r
         }\r
@@ -1740,5 +1748,5 @@ ka{
         one{"{0} {1}"}\r
         other{"{0} {1}"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.50"}\r
 }\r
index 6d0ff79..840296c 100644 (file)
@@ -231,5 +231,5 @@ kab{
             "Adular Azimbabwi",\r
         }\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.94"}\r
 }\r
index 4c4570f..a4105f1 100644 (file)
@@ -141,7 +141,7 @@ kea{
         }\r
         GHC{\r
             "GHC",\r
-            "Sedi di Gana",\r
+            "Sedi di Gana (1979–2007)",\r
         }\r
         GMD{\r
             "GMD",\r
@@ -397,7 +397,7 @@ kea{
         }\r
         SDP{\r
             "SDP",\r
-            "Libra sudanes antigu",\r
+            "Libra sudanes antigu (1957–1998)",\r
         }\r
         SEK{\r
             "SEK",\r
@@ -508,7 +508,7 @@ kea{
             "XPF",\r
         }\r
         XXX{\r
-            "XXX",\r
+            "¤",\r
             "Mueda diskonxedu",\r
         }\r
         YER{\r
@@ -529,7 +529,7 @@ kea{
         }\r
         ZWD{\r
             "ZWD",\r
-            "Dola di Zimbabue",\r
+            "Dola di Zimbabue (1980–2008)",\r
         }\r
     }\r
     Currencies%narrow{\r
@@ -757,5 +757,5 @@ kea{
     CurrencyUnitPatterns{\r
         other{"{0} {1}"}\r
     }\r
-    Version{"2.1.39.11"}\r
+    Version{"2.1.43.65"}\r
 }\r
index 756f86b..18bbe50 100644 (file)
@@ -600,6 +600,10 @@ kk{
         }\r
         VEF{\r
             "VEF",\r
+            "Венесуэла боливары (2008–2018)",\r
+        }\r
+        VES{\r
+            "VES",\r
             "Венесуэла боливары",\r
         }\r
         VND{\r
@@ -631,7 +635,7 @@ kk{
             "КФП франкі",\r
         }\r
         XXX{\r
-            "XXX",\r
+            "¤",\r
             "Белгісіз валюта",\r
         }\r
         YER{\r
@@ -1343,6 +1347,10 @@ kk{
             other{"Өзбекстан сомы"}\r
         }\r
         VEF{\r
+            one{"Венесуэла боливары (2008–2018)"}\r
+            other{"Венесуэла боливары (2008–2018)"}\r
+        }\r
+        VES{\r
             one{"Венесуэла боливары"}\r
             other{"Венесуэла боливары"}\r
         }\r
@@ -1395,5 +1403,5 @@ kk{
         one{"{0} {1}"}\r
         other{"{0} {1}"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.88"}\r
 }\r
index 7861393..136fdb1 100644 (file)
@@ -17,5 +17,5 @@ kl{
             other{"euro"}\r
         }\r
     }\r
-    Version{"2.1.38.69"}\r
+    Version{"2.1.45.12"}\r
 }\r
index 85c43fe..4f6955d 100644 (file)
@@ -600,6 +600,10 @@ km{
         }\r
         VEF{\r
             "VEF",\r
+            "ប៊ូលីវ៉ា​វ៉េណេស៊ុយអេឡា (2008–2018)",\r
+        }\r
+        VES{\r
+            "VES",\r
             "ប៊ូលីវ៉ា​វ៉េណេស៊ុយអេឡា",\r
         }\r
         VND{\r
@@ -631,7 +635,7 @@ km{
             "ហ្វ្រង់ CFP",\r
         }\r
         XXX{\r
-            "XXX",\r
+            "¤",\r
             "រូបិយប័ណ្ណ​មិនស្គាល់",\r
         }\r
         YER{\r
@@ -1196,6 +1200,9 @@ km{
             other{"សុមអ៊ូបេគីស្ថាន"}\r
         }\r
         VEF{\r
+            other{"ប៊ូលីវ៉ា​វ៉េណេស៊ុយអេឡា (2008–2018)"}\r
+        }\r
+        VES{\r
             other{"ប៊ូលីវ៉ា​វ៉េណេស៊ុយអេឡា"}\r
         }\r
         VND{\r
@@ -1235,5 +1242,5 @@ km{
     CurrencyUnitPatterns{\r
         other{"{0} {1}"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.88"}\r
 }\r
index 84c9371..223bfdd 100644 (file)
@@ -604,6 +604,10 @@ kn{
         }\r
         VEF{\r
             "VEF",\r
+            "ವೆನಿಜುಲಿಯನ್ ಬೊಲಿವರ್ (2008–2018)",\r
+        }\r
+        VES{\r
+            "VES",\r
             "ವೆನಿಜುಲಿಯನ್ ಬೊಲಿವರ್",\r
         }\r
         VND{\r
@@ -635,7 +639,7 @@ kn{
             "[CFP] ಫ್ರಾಂಕ್",\r
         }\r
         XXX{\r
-            "XXX",\r
+            "¤",\r
             "ಅಪರಿಚಿತ ಕರೆನ್ಸಿ",\r
         }\r
         YER{\r
@@ -1353,6 +1357,10 @@ kn{
             other{"ಉಜ್ಬೇಕಿಸ್ತಾನ್ ಸೊಮ್"}\r
         }\r
         VEF{\r
+            one{"ವೆನಿಜುಲಿಯನ್ ಬೊಲಿವರ್ (2008–2018)"}\r
+            other{"ವೆನಿಜುಲಿಯನ್ ಬೊಲಿವರ್‌ಗಳು (2008–2018)"}\r
+        }\r
+        VES{\r
             one{"ವೆನಿಜುಲಿಯನ್ ಬೊಲಿವರ್"}\r
             other{"ವೆನಿಜುಲಿಯನ್ ಬೊಲಿವರ್‌ಗಳು"}\r
         }\r
@@ -1405,5 +1413,5 @@ kn{
         one{"{0} {1}"}\r
         other{"{0} {1}"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.88"}\r
 }\r
index 2e1ba53..cfa2169 100644 (file)
@@ -1016,6 +1016,10 @@ ko{
         }\r
         VEF{\r
             "VEF",\r
+            "베네수엘라 볼리바르 (2008–2018)",\r
+        }\r
+        VES{\r
+            "VES",\r
             "베네수엘라 볼리바르",\r
         }\r
         VND{\r
@@ -1107,7 +1111,7 @@ ko{
             "테스트 통화 코드",\r
         }\r
         XXX{\r
-            "XXX",\r
+            "¤",\r
             "알 수 없는 통화 단위",\r
         }\r
         YDD{\r
@@ -1716,6 +1720,9 @@ ko{
             other{"우즈베키스탄 숨"}\r
         }\r
         VEF{\r
+            other{"베네수엘라 볼리바르 (2008–2018)"}\r
+        }\r
+        VES{\r
             other{"베네수엘라 볼리바르"}\r
         }\r
         VND{\r
@@ -1755,5 +1762,5 @@ ko{
     CurrencyUnitPatterns{\r
         other{"{0} {1}"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.91"}\r
 }\r
index e5f87b3..3a6f14f 100644 (file)
@@ -35,7 +35,7 @@ kok{
             "USD",\r
         }\r
         XXX{\r
-            "XXX",\r
+            "¤",\r
             "XXX",\r
         }\r
     }\r
@@ -81,5 +81,5 @@ kok{
     CurrencyUnitPatterns{\r
         other{"{0} {1}"}\r
     }\r
-    Version{"2.1.38.69"}\r
+    Version{"2.1.44.88"}\r
 }\r
index b7c5d1a..9242479 100644 (file)
@@ -880,6 +880,10 @@ ks{
         }\r
         VEF{\r
             "VEF",\r
+            "وینٕزوٗلیُک بولِوَر (2008–2018)",\r
+        }\r
+        VES{\r
+            "VES",\r
             "وینٕزوٗلیُک بولِوَر",\r
         }\r
         VND{\r
@@ -967,7 +971,7 @@ ks{
             "ٹیٚسٹِنٛگ کَرَنسی کوڈ",\r
         }\r
         XXX{\r
-            "XXX",\r
+            "¤",\r
             "اَنزٲنۍ یا نالَگہٕ ہار سِکہٕ",\r
         }\r
         YDD{\r
@@ -1015,5 +1019,5 @@ ks{
             "زِمبابِیُک ڈالَر",\r
         }\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.41.34"}\r
 }\r
index 9125535..795644d 100644 (file)
@@ -628,6 +628,10 @@ ksh{
         }\r
         VEF{\r
             "VEF",\r
+            "venezuelaanesche Bolívar (2008–2018)",\r
+        }\r
+        VES{\r
+            "VES",\r
             "venezuelaanesche Bolívar",\r
         }\r
         VND{\r
@@ -683,7 +687,7 @@ ksh{
             "Währong zum Prööfe",\r
         }\r
         XXX{\r
-            "XXX",\r
+            "¤",\r
             "onbikannte Währong",\r
         }\r
         YER{\r
@@ -908,5 +912,5 @@ ksh{
         other{"{0} {1}"}\r
         zero{"{0} {1}"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.41.34"}\r
 }\r
diff --git a/source/data/curr/ku.txt b/source/data/curr/ku.txt
new file mode 100644 (file)
index 0000000..11142f1
--- /dev/null
@@ -0,0 +1,37 @@
+// © 2016 and later: Unicode, Inc. and others.\r
+// License & terms of use: http://www.unicode.org/copyright.html#License\r
+ku{\r
+    Currencies{\r
+        EUR{\r
+            "€",\r
+            "ewro",\r
+        }\r
+        TRY{\r
+            "₺",\r
+            "TRY",\r
+            {\r
+                "¤#,##0.00",\r
+                ",",\r
+                ".",\r
+            }\r
+        }\r
+    }\r
+    Currencies%narrow{\r
+        EUR{"€"}\r
+        TRY{"₺"}\r
+    }\r
+    Currencies%variant{\r
+        TRY{"TL"}\r
+    }\r
+    CurrencyPlurals{\r
+        EUR{\r
+            one{"ewro"}\r
+            other{"ewro"}\r
+        }\r
+    }\r
+    CurrencyUnitPatterns{\r
+        one{"{0} {1}"}\r
+        other{"{0} {1}"}\r
+    }\r
+    Version{"2.1.44.82"}\r
+}\r
index dd763ab..9fa7cdd 100644 (file)
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 kw{\r
-    Version{"2.1.38.69"}\r
+    Version{"2.1.43.65"}\r
 }\r
index a9e1e00..23d3b3c 100644 (file)
@@ -316,7 +316,7 @@ ky{
         }\r
         KZT{\r
             "KZT",\r
-            "Казакстан теӊгеси",\r
+            "Казакстан теңгеси",\r
         }\r
         LAK{\r
             "LAK",\r
@@ -428,7 +428,7 @@ ky{
         }\r
         NZD{\r
             "NZD",\r
-            "Жаӊы Зеландия доллары",\r
+            "Жаңы Зеландия доллары",\r
         }\r
         OMR{\r
             "OMR",\r
@@ -444,7 +444,7 @@ ky{
         }\r
         PGK{\r
             "PGK",\r
-            "Папуа Жаӊы Гвинея кинасы",\r
+            "Папуа Жаңы Гвинея кинасы",\r
         }\r
         PHP{\r
             "PHP",\r
@@ -572,7 +572,7 @@ ky{
         }\r
         TWD{\r
             "TWD",\r
-            "Тайвань жаӊы доллары",\r
+            "Тайвань жаңы доллары",\r
         }\r
         TZS{\r
             "TZS",\r
@@ -600,11 +600,15 @@ ky{
         }\r
         VEF{\r
             "VEF",\r
-            "венесуэла боливары",\r
+            "венесуэла боливары (2008–2018)",\r
+        }\r
+        VES{\r
+            "VES",\r
+            "VES",\r
         }\r
         VND{\r
             "₫",\r
-            "Вьетнам доӊу",\r
+            "Вьетнам доңу",\r
         }\r
         VUV{\r
             "VUV",\r
@@ -631,7 +635,7 @@ ky{
             "КФП франкы",\r
         }\r
         XXX{\r
-            "XXX",\r
+            "¤",\r
             "Белгисиз акча",\r
         }\r
         YER{\r
@@ -1061,8 +1065,8 @@ ky{
             other{"кайман доллары"}\r
         }\r
         KZT{\r
-            one{"Казакстан теӊгеси"}\r
-            other{"Казакстан теӊгеси"}\r
+            one{"Казакстан теңгеси"}\r
+            other{"Казакстан теңгеси"}\r
         }\r
         LAK{\r
             one{"Лаос киби"}\r
@@ -1173,8 +1177,8 @@ ky{
             other{"Непал руписи"}\r
         }\r
         NZD{\r
-            one{"Жаӊы Зеландия доллары"}\r
-            other{"Жаӊы Зеландия доллары"}\r
+            one{"Жаңы Зеландия доллары"}\r
+            other{"Жаңы Зеландия доллары"}\r
         }\r
         OMR{\r
             one{"Оман риалы"}\r
@@ -1189,8 +1193,8 @@ ky{
             other{"перу солу"}\r
         }\r
         PGK{\r
-            one{"Папуа Жаӊы Гвинея кинасы"}\r
-            other{"Папуа Жаӊы Гвинея кинасы"}\r
+            one{"Папуа Жаңы Гвинея кинасы"}\r
+            other{"Папуа Жаңы Гвинея кинасы"}\r
         }\r
         PHP{\r
             one{"Филиппин песосу"}\r
@@ -1317,8 +1321,8 @@ ky{
             other{"тринидад жана тобаго доллары"}\r
         }\r
         TWD{\r
-            one{"Тайвань жаӊы доллары"}\r
-            other{"Тайвань жаӊы доллары"}\r
+            one{"Тайвань жаңы доллары"}\r
+            other{"Тайвань жаңы доллары"}\r
         }\r
         TZS{\r
             one{"Танзания шиллинги"}\r
@@ -1345,12 +1349,16 @@ ky{
             other{"Өзбекстан суму"}\r
         }\r
         VEF{\r
-            one{"венесуэла боливары"}\r
-            other{"венесуэла боливары"}\r
+            one{"венесуэла боливары (2008–2018)"}\r
+            other{"венесуэла боливары (2008–2018)"}\r
+        }\r
+        VES{\r
+            one{"VES"}\r
+            other{"VES"}\r
         }\r
         VND{\r
-            one{"Вьетнам доӊу"}\r
-            other{"Вьетнам доӊу"}\r
+            one{"Вьетнам доңу"}\r
+            other{"Вьетнам доңу"}\r
         }\r
         VUV{\r
             one{"Вануату ватусу"}\r
@@ -1397,5 +1405,5 @@ ky{
         one{"{0} {1}"}\r
         other{"{0} {1}"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.65"}\r
 }\r
index 8be2304..ba6fec1 100644 (file)
@@ -964,6 +964,10 @@ lb{
         }\r
         VEF{\r
             "VEF",\r
+            "Venezolanesche Bolívar (2008–2018)",\r
+        }\r
+        VES{\r
+            "VES",\r
             "Venezolanesche Bolívar",\r
         }\r
         VND{\r
@@ -1051,7 +1055,7 @@ lb{
             "Testwährung",\r
         }\r
         XXX{\r
-            "XXX",\r
+            "¤",\r
             "Onbekannt Währung",\r
         }\r
         YDD{\r
@@ -2089,6 +2093,10 @@ lb{
             other{"Venezolanesch Bolívares (1871–2008)"}\r
         }\r
         VEF{\r
+            one{"Venezolanesche Bolívar (2008–2018)"}\r
+            other{"Venezolanesch Bolívares (2008–2018)"}\r
+        }\r
+        VES{\r
             one{"Venezolanesche Bolívar"}\r
             other{"Venezolanesch Bolívares"}\r
         }\r
@@ -2241,5 +2249,5 @@ lb{
         one{"{0} {1}"}\r
         other{"{0} {1}"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.91"}\r
 }\r
index 23882c4..06c0067 100644 (file)
@@ -1024,6 +1024,10 @@ lo{
         }\r
         VEF{\r
             "VEF",\r
+            "ເວ​ເນ​ຊູ​ເອ​ລັນ ໂບ​ລິ​ວາ (2008–2018)",\r
+        }\r
+        VES{\r
+            "VES",\r
             "ເວ​ເນ​ຊູ​ເອ​ລັນ ໂບ​ລິ​ວາ",\r
         }\r
         VND{\r
@@ -1115,7 +1119,7 @@ lo{
             "ລະຫັດທົດສອບສະກຸນເງິນ",\r
         }\r
         XXX{\r
-            "XXX",\r
+            "¤",\r
             "ສະກຸນເງິນທີ່ບໍ່ຮູ້ຈັກ",\r
         }\r
         YDD{\r
@@ -1727,6 +1731,9 @@ lo{
             other{"ອຸສເບກິສຖານິ ໂຊມ"}\r
         }\r
         VEF{\r
+            other{"ເວເນຊູເອລັນ ໂບລິວາສ໌"}\r
+        }\r
+        VES{\r
             other{"ເວ​ເນ​ຊູ​ເອ​ລັນ ໂບ​ລິ​ວາ"}\r
         }\r
         VND{\r
@@ -1766,5 +1773,5 @@ lo{
     CurrencyUnitPatterns{\r
         other{"{0} {1}"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.50"}\r
 }\r
index 1785e83..c20dab9 100644 (file)
@@ -39,7 +39,7 @@ lrc{
             "USD",\r
         }\r
         XXX{\r
-            "XXX",\r
+            "¤",\r
             "پیل نادیار",\r
         }\r
     }\r
@@ -82,5 +82,5 @@ lrc{
             other{"پیل نادیار"}\r
         }\r
     }\r
-    Version{"2.1.38.69"}\r
+    Version{"2.1.43.65"}\r
 }\r
index aea6952..2898821 100644 (file)
@@ -1044,6 +1044,10 @@ lt{
         }\r
         VEF{\r
             "VEF",\r
+            "Venesuelos bolivaras (2008–2018)",\r
+        }\r
+        VES{\r
+            "VES",\r
             "Venesuelos bolivaras",\r
         }\r
         VND{\r
@@ -1143,7 +1147,7 @@ lt{
             "Azijos plėtros banko apskaitos vienetas",\r
         }\r
         XXX{\r
-            "XXX",\r
+            "¤",\r
             "nežinoma valiuta",\r
         }\r
         YDD{\r
@@ -2870,6 +2874,12 @@ lt{
             other{"Venesuelos bolivarų (1871–2008)"}\r
         }\r
         VEF{\r
+            few{"Venesuelos bolivarai (2008–2018)"}\r
+            many{"Venesuelos bolivaro (2008–2018)"}\r
+            one{"Venesuelos bolivaras (2008–2018)"}\r
+            other{"Venesuelos bolivarų (2008–2018)"}\r
+        }\r
+        VES{\r
             few{"Venesuelos bolivarai"}\r
             many{"Venesuelos bolivaro"}\r
             one{"Venesuelos bolivaras"}\r
@@ -3116,5 +3126,5 @@ lt{
         one{"{0} {1}"}\r
         other{"{0} {1}"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.91"}\r
 }\r
index c99379d..ac36784 100644 (file)
@@ -580,7 +580,7 @@ lv{
         }\r
         SAR{\r
             "SAR",\r
-            "Saūda riāls",\r
+            "Saūda Arābijas riāls",\r
         }\r
         SBD{\r
             "SBD",\r
@@ -724,6 +724,10 @@ lv{
         }\r
         VEF{\r
             "VEF",\r
+            "Venecuēlas bolivārs (2008–2018)",\r
+        }\r
+        VES{\r
+            "VES",\r
             "Venecuēlas bolivārs",\r
         }\r
         VND{\r
@@ -807,7 +811,7 @@ lv{
             "Testa valūtas kods",\r
         }\r
         XXX{\r
-            "XXX",\r
+            "¤",\r
             "Nezināma valūta",\r
         }\r
         YER{\r
@@ -1717,6 +1721,11 @@ lv{
             zero{"Venecuēlas bolivāri (1871–2008)"}\r
         }\r
         VEF{\r
+            one{"Venecuēlas bolivārs (2008–2018)"}\r
+            other{"Venecuēlas bolivāri (2008–2018)"}\r
+            zero{"Venecuēlas bolivāri (2008–2018)"}\r
+        }\r
+        VES{\r
             one{"Venecuēlas bolivārs"}\r
             other{"Venecuēlas bolivāri"}\r
             zero{"Venecuēlas bolivāri"}\r
@@ -1812,5 +1821,5 @@ lv{
         other{"{0} {1}"}\r
         zero{"{0} {1}"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.91"}\r
 }\r
index 8eea9d8..e021310 100644 (file)
@@ -239,5 +239,5 @@ mg{
         one{"{0} {1}"}\r
         other{"{0} {1}"}\r
     }\r
-    Version{"2.1.39.11"}\r
+    Version{"2.1.43.94"}\r
 }\r
index a12f9c8..0f90145 100644 (file)
@@ -7,7 +7,7 @@ mgo{
             "shirè",\r
         }\r
         XXX{\r
-            "XXX",\r
+            "¤",\r
             "iku ikap mɔʼɔ",\r
         }\r
     }\r
diff --git a/source/data/curr/mi.txt b/source/data/curr/mi.txt
new file mode 100644 (file)
index 0000000..01f8134
--- /dev/null
@@ -0,0 +1,264 @@
+// © 2016 and later: Unicode, Inc. and others.\r
+// License & terms of use: http://www.unicode.org/copyright.html#License\r
+mi{\r
+    Currencies{\r
+        ANG{\r
+            "ANG",\r
+            "ANG",\r
+        }\r
+        ARS{\r
+            "ARS",\r
+            "ARS",\r
+        }\r
+        AWG{\r
+            "AWG",\r
+            "AWG",\r
+        }\r
+        BBD{\r
+            "BBD",\r
+            "BBD",\r
+        }\r
+        BMD{\r
+            "BMD",\r
+            "BMD",\r
+        }\r
+        BRL{\r
+            "R$",\r
+            "Real Parahi",\r
+        }\r
+        BSD{\r
+            "BSD",\r
+            "BSD",\r
+        }\r
+        BZD{\r
+            "BZD",\r
+            "BZD",\r
+        }\r
+        CAD{\r
+            "CA$",\r
+            "CAD",\r
+        }\r
+        CNY{\r
+            "CN¥",\r
+            "Yuan Haina",\r
+        }\r
+        CRC{\r
+            "CRC",\r
+            "CRC",\r
+        }\r
+        CUC{\r
+            "CUC",\r
+            "CUC",\r
+        }\r
+        CUP{\r
+            "CUP",\r
+            "CUP",\r
+        }\r
+        DOP{\r
+            "DOP",\r
+            "DOP",\r
+        }\r
+        EUR{\r
+            "€",\r
+            "Euro",\r
+        }\r
+        GBP{\r
+            "£",\r
+            "Pāuna Piritene",\r
+        }\r
+        GTQ{\r
+            "GTQ",\r
+            "GTQ",\r
+        }\r
+        HNL{\r
+            "HNL",\r
+            "HNL",\r
+        }\r
+        HTG{\r
+            "HTG",\r
+            "HTG",\r
+        }\r
+        INR{\r
+            "₹",\r
+            "Rupee Iniana",\r
+        }\r
+        JMD{\r
+            "JMD",\r
+            "JMD",\r
+        }\r
+        JPY{\r
+            "¥",\r
+            "Yen Hapanihi",\r
+        }\r
+        KYD{\r
+            "KYD",\r
+            "KYD",\r
+        }\r
+        MXN{\r
+            "MX$",\r
+            "MXN",\r
+        }\r
+        NIO{\r
+            "NIO",\r
+            "NIO",\r
+        }\r
+        NZD{\r
+            "$",\r
+            "Tāra o Aotearoa",\r
+        }\r
+        PAB{\r
+            "PAB",\r
+            "PAB",\r
+        }\r
+        RUB{\r
+            "RUB",\r
+            "Rūpera Ruhiana",\r
+        }\r
+        TTD{\r
+            "TTD",\r
+            "TTD",\r
+        }\r
+        USD{\r
+            "US$",\r
+            "Tāra US",\r
+        }\r
+        XCD{\r
+            "EC$",\r
+            "XCD",\r
+        }\r
+        XXX{\r
+            "¤",\r
+            "Moni Tē Mōhiotia",\r
+        }\r
+    }\r
+    Currencies%narrow{\r
+        ARS{"$"}\r
+        BBD{"$"}\r
+        BMD{"$"}\r
+        BRL{"R$"}\r
+        BSD{"$"}\r
+        BZD{"$"}\r
+        CAD{"$"}\r
+        CNY{"¥"}\r
+        CRC{"₡"}\r
+        CUC{"$"}\r
+        CUP{"$"}\r
+        DOP{"$"}\r
+        EUR{"€"}\r
+        GBP{"£"}\r
+        GTQ{"Q"}\r
+        HNL{"L"}\r
+        INR{"₹"}\r
+        JMD{"$"}\r
+        JPY{"¥"}\r
+        KYD{"$"}\r
+        MXN{"$"}\r
+        NIO{"C$"}\r
+        RUB{"₽"}\r
+        TTD{"$"}\r
+        USD{"$"}\r
+        XCD{"$"}\r
+    }\r
+    CurrencyPlurals{\r
+        ANG{\r
+            other{"ANG"}\r
+        }\r
+        ARS{\r
+            other{"ARS"}\r
+        }\r
+        AWG{\r
+            other{"AWG"}\r
+        }\r
+        BBD{\r
+            other{"BBD"}\r
+        }\r
+        BMD{\r
+            other{"BMD"}\r
+        }\r
+        BRL{\r
+            other{"Ngā real Parahi"}\r
+        }\r
+        BSD{\r
+            other{"BSD"}\r
+        }\r
+        BZD{\r
+            other{"BZD"}\r
+        }\r
+        CAD{\r
+            other{"CAD"}\r
+        }\r
+        CNY{\r
+            other{"Yuan Haina"}\r
+        }\r
+        CRC{\r
+            other{"CRC"}\r
+        }\r
+        CUC{\r
+            other{"CUC"}\r
+        }\r
+        CUP{\r
+            other{"CUP"}\r
+        }\r
+        DOP{\r
+            other{"DOP"}\r
+        }\r
+        EUR{\r
+            other{"euros"}\r
+        }\r
+        GBP{\r
+            other{"Ngā pāuna Piritene"}\r
+        }\r
+        GTQ{\r
+            other{"GTQ"}\r
+        }\r
+        HNL{\r
+            other{"HNL"}\r
+        }\r
+        HTG{\r
+            other{"HTG"}\r
+        }\r
+        INR{\r
+            other{"Ngā rupee Iniana"}\r
+        }\r
+        JMD{\r
+            other{"JMD"}\r
+        }\r
+        JPY{\r
+            other{"Yen Hapanihi"}\r
+        }\r
+        KYD{\r
+            other{"KYD"}\r
+        }\r
+        MXN{\r
+            other{"MXN"}\r
+        }\r
+        NIO{\r
+            other{"NIO"}\r
+        }\r
+        NZD{\r
+            other{"Ngā tāra o Aotearoa"}\r
+        }\r
+        PAB{\r
+            other{"PAB"}\r
+        }\r
+        RUB{\r
+            other{"Ngā rūpera Ruhiana"}\r
+        }\r
+        TTD{\r
+            other{"TTD"}\r
+        }\r
+        USD{\r
+            other{"Ngā tāra US"}\r
+        }\r
+        XCD{\r
+            other{"XCD"}\r
+        }\r
+        XXX{\r
+            other{"(moni tē mōhiotia)"}\r
+        }\r
+    }\r
+    CurrencyUnitPatterns{\r
+        other{"{0} {1}"}\r
+    }\r
+    Version{"2.1.44.15"}\r
+}\r
index 7ca4c7a..7000c77 100644 (file)
@@ -164,7 +164,7 @@ mk{
         }\r
         CHF{\r
             "CHF",\r
-            "Швајцарски Франк",\r
+            "Швајцарски франк",\r
         }\r
         CLP{\r
             "CLP",\r
@@ -268,7 +268,7 @@ mk{
         }\r
         GBP{\r
             "GBP",\r
-            "Британска Фунта",\r
+            "Британска фунта",\r
         }\r
         GEL{\r
             "GEL",\r
@@ -464,7 +464,7 @@ mk{
         }\r
         MAD{\r
             "MAD",\r
-            "Ð\9cаÑ\80оканÑ\81ки Ð\94ирхам",\r
+            "Ð\9cаÑ\80оканÑ\81ки Ð´ирхам",\r
         }\r
         MAF{\r
             "MAF",\r
@@ -836,6 +836,10 @@ mk{
         }\r
         VEF{\r
             "VEF",\r
+            "Венецуелски боливар (2008–2018)",\r
+        }\r
+        VES{\r
+            "VES",\r
             "Венецуелски боливар",\r
         }\r
         VND{\r
@@ -867,7 +871,7 @@ mk{
             "ЦФП франк",\r
         }\r
         XXX{\r
-            "XXX",\r
+            "¤",\r
             "Непозната валута",\r
         }\r
         YDD{\r
@@ -1089,7 +1093,7 @@ mk{
             other{"Брунејски долар"}\r
         }\r
         BOB{\r
-            one{"Ð\91оливиÑ\81ки Ð±Ð¾Ð»Ð¸Ð²Ð¸Ð°Ð½Ð¸"}\r
+            one{"Ð\91оливиÑ\81ки Ð±Ð¾Ð»Ð¸Ð²Ð¸Ð°Ð½Ð¾"}\r
             other{"Боливиски боливиани"}\r
         }\r
         BRL{\r
@@ -1129,7 +1133,7 @@ mk{
             other{"Конголски франци"}\r
         }\r
         CHF{\r
-            one{"Швајцарски Франк"}\r
+            one{"Швајцарски франк"}\r
             other{"Швајцарски франци"}\r
         }\r
         CLP{\r
@@ -1174,7 +1178,7 @@ mk{
         }\r
         DKK{\r
             one{"Данска круна"}\r
-            other{"Ð\94анÑ\81ка ÐºÑ\80Ñ\83на"}\r
+            other{"Ð\94анÑ\81ки ÐºÑ\80Ñ\83ни"}\r
         }\r
         DOP{\r
             one{"Доминикански Пезос"}\r
@@ -1205,11 +1209,11 @@ mk{
             other{"Фиџиски долари"}\r
         }\r
         FKP{\r
-            one{"ФолкландÑ\81ки Ñ\84Ñ\83нÑ\82и"}\r
+            one{"ФолкландÑ\81ка Ñ\84Ñ\83нÑ\82а"}\r
             other{"Фолкландски фунти"}\r
         }\r
         GBP{\r
-            one{"Британска Фунта"}\r
+            one{"Британска фунта"}\r
             other{"Британски фунти"}\r
         }\r
         GEL{\r
@@ -1361,7 +1365,7 @@ mk{
             other{"Либијски динари"}\r
         }\r
         MAD{\r
-            one{"Ð\9cаÑ\80оканÑ\81ки Ð\94ирхам"}\r
+            one{"Ð\9cаÑ\80оканÑ\81ки Ð´ирхам"}\r
             other{"Марокански дирхами"}\r
         }\r
         MDL{\r
@@ -1458,7 +1462,7 @@ mk{
         }\r
         PEN{\r
             one{"Перуански сол"}\r
-            other{"Перуански сол"}\r
+            other{"Перуански соли"}\r
         }\r
         PGK{\r
             one{"Папуа новогвинејска кина"}\r
@@ -1478,7 +1482,7 @@ mk{
         }\r
         PYG{\r
             one{"Парагвајска гуарана"}\r
-            other{"Ð\9fаÑ\80агваÑ\98Ñ\81ка Ð³Ñ\83аÑ\80ана"}\r
+            other{"Ð\9fаÑ\80агваÑ\98Ñ\81ки Ð³Ñ\83аÑ\80ани"}\r
         }\r
         QAR{\r
             one{"Катарски риал"}\r
@@ -1617,7 +1621,7 @@ mk{
             other{"Американски долари"}\r
         }\r
         UYU{\r
-            one{"Уругвајски пезоси"}\r
+            one{"Уругвајски пезос"}\r
             other{"Уругвајски пезоси"}\r
         }\r
         UZS{\r
@@ -1629,6 +1633,10 @@ mk{
             other{"Венецуелски боливар (1871–2008)"}\r
         }\r
         VEF{\r
+            one{"Венецуелски боливар (2008–2018)"}\r
+            other{"Венецуелски боливари (2008–2018)"}\r
+        }\r
+        VES{\r
             one{"Венецуелски боливар"}\r
             other{"Венецуелски боливари"}\r
         }\r
@@ -1681,5 +1689,5 @@ mk{
         one{"{0} {1}"}\r
         other{"{0} {1}"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.65"}\r
 }\r
index 90e644b..4f8e252 100644 (file)
@@ -972,6 +972,10 @@ ml{
         }\r
         VEF{\r
             "VEF",\r
+            "വെനിസ്വേലൻ ബൊളീവർ (2008–2018)",\r
+        }\r
+        VES{\r
+            "VES",\r
             "വെനിസ്വേലൻ ബൊളീവർ",\r
         }\r
         VND{\r
@@ -1059,7 +1063,7 @@ ml{
             "ടെസ്റ്റിംഗിനുള്ള കറൻസി കോഡ്",\r
         }\r
         XXX{\r
-            "XXX",\r
+            "¤",\r
             "അജ്ഞാത നാണയം",\r
         }\r
         YDD{\r
@@ -1474,7 +1478,7 @@ ml{
         }\r
         CVE{\r
             one{"കേപ് വെർദിയൻ എസ്‌ക്യുഡോ"}\r
-            other{"കേപ് വെർദിയൻ എസ്‌ക്യുഡോ"}\r
+            other{"കേപ് വെർദിയൻ എസ്‌ക്യുഡോസ്"}\r
         }\r
         CYP{\r
             one{"സൈപ്രസ് പൌണ്ട്"}\r
@@ -1590,11 +1594,11 @@ ml{
         }\r
         GMD{\r
             one{"ഗാംബിയൻ ദലാസി"}\r
-            other{"ഗാംബിയൻ ദലാസി"}\r
+            other{"ഗാംബിയൻ ദലാസിസ്"}\r
         }\r
         GNF{\r
             one{"ഗിനിയൻ ഫ്രാങ്ക്"}\r
-            other{"ഗിനിയൻ ഫ്രാങ്ക്"}\r
+            other{"ഗിനിയൻ ഫ്രാങ്ക്സ്"}\r
         }\r
         GNS{\r
             one{"ഗിനിയ സൈലി"}\r
@@ -1814,11 +1818,11 @@ ml{
         }\r
         MRO{\r
             one{"മൗറിറ്റേനിയൻ ഔഗിയ (1973–2017)"}\r
-            other{"മൗറിറ്റേനിയൻ ഔഗിയ (1973–2017)"}\r
+            other{"മൗറിറ്റേനിയൻ ഔഗിയസ് (1973–2017)"}\r
         }\r
         MRU{\r
             one{"മൗറിറ്റേനിയൻ ഔഗിയ"}\r
-            other{"മൗറിറ്റേനിയൻ ഔഗിയ"}\r
+            other{"മൗറിറ്റേനിയൻ ഔഗിയസ്"}\r
         }\r
         MUR{\r
             one{"മൗറീഷ്യൻ റുപ്പീ"}\r
@@ -1970,7 +1974,7 @@ ml{
         }\r
         SLL{\r
             one{"സിയെറ ലിയോണിയൻ ലിയോൺ"}\r
-            other{"സിയàµ\86à´± à´²à´¿à´¯àµ\8bണിയൻ à´²à´¿à´¯àµ\8bൺ"}\r
+            other{"സിയàµ\86à´± à´²à´¿à´¯àµ\8bണിയൻ à´²à´¿à´¯àµ\8bണസàµ\8d"}\r
         }\r
         SOS{\r
             one{"സോമാലി ഷില്ലിംഗ്"}\r
@@ -2093,6 +2097,10 @@ ml{
             other{"വെനസ്വേലൻ ബോലിവർസ് (1871–2008)"}\r
         }\r
         VEF{\r
+            one{"വെനിസ്വേലൻ ബൊളീവർ (2008–2018)"}\r
+            other{"വെനിസ്വേലൻ ബൊളീവർ (2008–2018)"}\r
+        }\r
+        VES{\r
             one{"വെനിസ്വേലൻ ബൊളീവർ"}\r
             other{"വെനിസ്വേലൻ ബൊളീവർ"}\r
         }\r
@@ -2237,5 +2245,5 @@ ml{
         one{"{0} {1}"}\r
         other{"{0} {1}"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.50"}\r
 }\r
index 11e4a5a..f7e9c5b 100644 (file)
@@ -600,6 +600,10 @@ mn{
         }\r
         VEF{\r
             "VEF",\r
+            "венесуэлийн боливар (2008–2018)",\r
+        }\r
+        VES{\r
+            "VES",\r
             "венесуэлийн боливар",\r
         }\r
         VND{\r
@@ -631,7 +635,7 @@ mn{
             "францын колоний франк",\r
         }\r
         XXX{\r
-            "XXX",\r
+            "¤",\r
             "тодорхойгүй мөнгөн тэмдэгт",\r
         }\r
         YER{\r
@@ -1349,6 +1353,10 @@ mn{
             other{"узбекийн сом"}\r
         }\r
         VEF{\r
+            one{"венесуэлийн боливар (2008–2018)"}\r
+            other{"венесуэлийн боливар (2008–2018)"}\r
+        }\r
+        VES{\r
             one{"венесуэлийн боливар"}\r
             other{"венесуэлийн боливар"}\r
         }\r
@@ -1405,5 +1413,5 @@ mn{
         one{"{0} {1}"}\r
         other{"{0} {1}"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.94"}\r
 }\r
index 4cac4e9..1f5140f 100644 (file)
@@ -604,6 +604,10 @@ mr{
         }\r
         VEF{\r
             "VEF",\r
+            "व्हेनेझुएला बोलिव्हार (2008–2018)",\r
+        }\r
+        VES{\r
+            "VES",\r
             "व्हेनेझुएला बोलिव्हार",\r
         }\r
         VND{\r
@@ -635,7 +639,7 @@ mr{
             "[CFP] फ्रँक",\r
         }\r
         XXX{\r
-            "XXX",\r
+            "¤",\r
             "अज्ञात चलन",\r
         }\r
         YER{\r
@@ -914,7 +918,7 @@ mr{
         }\r
         DKK{\r
             one{"डॅनिश क्रोन"}\r
-            other{"डॅनिश क्रोन"}\r
+            other{"डॅनिश क्रोन"}\r
         }\r
         DOP{\r
             one{"डोमिनिकन पेसो"}\r
@@ -1353,6 +1357,10 @@ mr{
             other{"उझबेकिस्तानी सोम"}\r
         }\r
         VEF{\r
+            one{"व्हेनेझुएला बोलिव्हार (2008–2018)"}\r
+            other{"व्हेनेझुएला बोलिव्हार्स (2008–2018)"}\r
+        }\r
+        VES{\r
             one{"व्हेनेझुएला बोलिव्हार"}\r
             other{"व्हेनेझुएला बोलिव्हार्स"}\r
         }\r
@@ -1401,5 +1409,5 @@ mr{
             other{"झांबियन क्वाचास"}\r
         }\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.65"}\r
 }\r
index 1c60f37..8efecaa 100644 (file)
@@ -604,6 +604,10 @@ ms{
         }\r
         VEF{\r
             "VEF",\r
+            "Bolivar Venezuela (2008–2018)",\r
+        }\r
+        VES{\r
+            "VES",\r
             "Bolivar Venezuela",\r
         }\r
         VND{\r
@@ -635,7 +639,7 @@ ms{
             "Franc CFP",\r
         }\r
         XXX{\r
-            "XXX",\r
+            "¤",\r
             "Mata Wang Tidak Diketahui",\r
         }\r
         YER{\r
@@ -1203,6 +1207,9 @@ ms{
             other{"Som Uzbekistan"}\r
         }\r
         VEF{\r
+            other{"Bolivar Venezuela (2008–2018)"}\r
+        }\r
+        VES{\r
             other{"Bolivar Venezuela"}\r
         }\r
         VND{\r
@@ -1242,5 +1249,5 @@ ms{
     CurrencyUnitPatterns{\r
         other{"{0} {1}"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.91"}\r
 }\r
index 4a462d6..16e1645 100644 (file)
@@ -566,6 +566,10 @@ mt{
             "VEF",\r
             "VEF",\r
         }\r
+        VES{\r
+            "VES",\r
+            "VES",\r
+        }\r
         VND{\r
             "₫",\r
             "VND",\r
@@ -595,7 +599,7 @@ mt{
             "XPF",\r
         }\r
         XXX{\r
-            "XXX",\r
+            "¤",\r
             "Munita Mhix Magħrufa jew Mhix Valida",\r
         }\r
         YER{\r
@@ -1534,6 +1538,12 @@ mt{
             one{"VEF"}\r
             other{"VEF"}\r
         }\r
+        VES{\r
+            few{"VES"}\r
+            many{"VES"}\r
+            one{"VES"}\r
+            other{"VES"}\r
+        }\r
         VND{\r
             few{"VND"}\r
             many{"VND"}\r
@@ -1607,5 +1617,5 @@ mt{
         one{"{0} {1}"}\r
         other{"{0} {1}"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.94"}\r
 }\r
index 785f066..9aa323f 100644 (file)
@@ -416,11 +416,11 @@ my{
         }\r
         MRO{\r
             "MRO",\r
-            "မော်ရီတေးနီးယား အူဂီးယာ (1973–2017)",\r
+            "မော်ရီတေးနီးယား အူဂီးယာ (၁၉၇၃–၂၀၁၇)",\r
         }\r
         MRU{\r
             "MRU",\r
-            "á\80\99á\80±á\80¬á\80ºá\80\9bá\80®á\80\90á\80±á\80¸á\80\94á\80®á\80¸á\80\9aá\80¬း အူဂီးယာ",\r
+            "á\80\99á\80±á\80¬á\80ºá\80\9bá\80®á\80\90á\80±á\80¸á\80\94á\80®á\80¸á\80\9aá\80\94á\80ºး အူဂီးယာ",\r
         }\r
         MUR{\r
             "MUR",\r
@@ -436,7 +436,7 @@ my{
         }\r
         MXN{\r
             "MX$",\r
-            "á\80\99á\80\80á\80¹ကဆီကို ပီဆို",\r
+            "á\80\99á\80\80á\80ºကဆီကို ပီဆို",\r
         }\r
         MYR{\r
             "MYR",\r
@@ -476,7 +476,7 @@ my{
         }\r
         PAB{\r
             "B/.",\r
-            "á\80\95á\80\94á\80¬á\80¸á\80\99á\80¬á\80¸ á\80\98á\80\9cá\80ºဘိုးအာ",\r
+            "á\80\95á\80\94á\80¬á\80¸á\80\99á\80¬á\80¸ á\80\98á\80\9cá\80»ဘိုးအာ",\r
         }\r
         PEN{\r
             "PEN",\r
@@ -576,11 +576,11 @@ my{
         }\r
         STD{\r
             "STD",\r
-            "ဆောင်တူမေးနှင့် ပရင်စီပီ ဒိုဘရာ (1977–2017)",\r
+            "ဆောင်တူမေးနှင့် ပရင်စီပီ ဒိုဘရာ",\r
         }\r
         STN{\r
             "STN",\r
-            "ဆောင်တူမေးနှင့် ပရင်စီပီ ဒိုဘရာ",\r
+            "ဆောင်တူမေးနှင့် ပရင်စီပီ ဒိုဘရာ (၂၀၁၈)",\r
         }\r
         SUR{\r
             "SUR",\r
@@ -664,7 +664,11 @@ my{
         }\r
         VEF{\r
             "VEF",\r
-            "ဗင်နီဇွဲလား ဘိုလီဗာ",\r
+            "ဗင်နီဇွဲလား ဘိုလီဗာ (၂၀၀၈–၂၀၁၈)",\r
+        }\r
+        VES{\r
+            "VES",\r
+            "ဗင်နီဇွဲလန်း ဘိုလီဗာ",\r
         }\r
         VND{\r
             "₫",\r
@@ -719,7 +723,7 @@ my{
             "စမ်းသပ် ငွေကြေး ကုဒ်",\r
         }\r
         XXX{\r
-            "XXX",\r
+            "¤",\r
             "မသိသို့မဟုတ်မရှိသောငွေကြေး",\r
         }\r
         YER{\r
@@ -1119,10 +1123,10 @@ my{
             other{"မကာအို ပါတားကား"}\r
         }\r
         MRO{\r
-            other{"မော်ရီတေးနီးယား အူဂီးယာ (1973–2017)"}\r
+            other{"မော်ရီတေးနီးယား အူဂီးယာ (၁၉၇၃–၂၀၁၇)"}\r
         }\r
         MRU{\r
-            other{"á\80\99á\80±á\80¬á\80ºá\80\9bá\80®á\80\90á\80±á\80¸á\80\94á\80®á\80¸á\80\9aá\80¬း အူဂီးယာ"}\r
+            other{"á\80\99á\80±á\80¬á\80ºá\80\9bá\80®á\80\90á\80±á\80¸á\80\94á\80®á\80¸á\80\9aá\80\94á\80ºး အူဂီးယာ"}\r
         }\r
         MUR{\r
             other{"မောရစ်ရှ ရူပီး"}\r
@@ -1134,7 +1138,7 @@ my{
             other{"မာလာဝီ ခွါးချာ"}\r
         }\r
         MXN{\r
-            other{"á\80\99á\80\80á\80¹ကဆီကို ပီဆို"}\r
+            other{"á\80\99á\80\80á\80ºကဆီကို ပီဆို"}\r
         }\r
         MYR{\r
             other{"မလေးရှား ရင်းဂစ်"}\r
@@ -1164,7 +1168,7 @@ my{
             other{"အိုမန်နီ ရီရယ်"}\r
         }\r
         PAB{\r
-            other{"á\80\95á\80\94á\80¬á\80¸á\80\99á\80¬á\80¸ á\80\98á\80\9cá\80ºဘိုးအာ"}\r
+            other{"á\80\95á\80\94á\80¬á\80¸á\80\99á\80¬á\80¸ á\80\98á\80\9cá\80»ဘိုးအာ"}\r
         }\r
         PEN{\r
             other{"ပီရူး ဆိုးလ်"}\r
@@ -1233,10 +1237,10 @@ my{
             other{"တောင်ဆူဒန် ပေါင်"}\r
         }\r
         STD{\r
-            other{"ဆောင်တူမေးနှင့် ပရင်စီပီ ဒိုဘရာ (1977–2017)"}\r
+            other{"ဆောင်တူမေးနှင့် ပရင်စီပီ ဒိုဘရာ"}\r
         }\r
         STN{\r
-            other{"ဆောင်တူမေးနှင့် ပရင်စီပီ ဒိုဘရာ"}\r
+            other{"ဆောင်တူမေးနှင့် ပရင်စီပီ ဒိုဘရာစ် (၂၀၁၈)"}\r
         }\r
         SYP{\r
             other{"ဆီးရီးယား ပေါင်"}\r
@@ -1287,7 +1291,10 @@ my{
             other{"ဥဇဘက်ကစ္စတန် ဆော်မ်"}\r
         }\r
         VEF{\r
-            other{"ဗင်နီဇွဲလား ဘိုလီဗာ"}\r
+            other{"ဗင်နီဇွဲလား ဘိုလီဗာ (၂၀၀၈–၂၀၁၈)"}\r
+        }\r
+        VES{\r
+            other{"ဗင်နီဇွဲလန်း ဘိုလီဗာ"}\r
         }\r
         VND{\r
             other{"ဗီယက်နမ် ဒေါင်"}\r
@@ -1323,5 +1330,5 @@ my{
             other{"ဇင်ဘာဘွေ ခွါးချာ"}\r
         }\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.88"}\r
 }\r
index 7f0bc81..a3477b7 100644 (file)
@@ -564,6 +564,10 @@ mzn{
         }\r
         VEF{\r
             "VEF",\r
+            "ونزوئلایِ بولیوار (2008–2018)",\r
+        }\r
+        VES{\r
+            "VES",\r
             "ونزوئلایِ بولیوار",\r
         }\r
         VND{\r
@@ -1110,6 +1114,9 @@ mzn{
             other{"ازبکستون ِسام"}\r
         }\r
         VEF{\r
+            other{"ونزوئلایِ بولیوار (2008–2018)"}\r
+        }\r
+        VES{\r
             other{"ونزوئلایِ بولیوار"}\r
         }\r
         VND{\r
@@ -1134,5 +1141,5 @@ mzn{
             other{"زامبیای ِکواچا"}\r
         }\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.41.34"}\r
 }\r
index e202436..68c3c22 100644 (file)
@@ -1044,6 +1044,10 @@ nb{
         }\r
         VEF{\r
             "VEF",\r
+            "venezuelanske bolivar (2008–2018)",\r
+        }\r
+        VES{\r
+            "VES",\r
             "venezuelanske bolivar",\r
         }\r
         VND{\r
@@ -2343,6 +2347,10 @@ nb{
             other{"venezuelanske bolivar (1871–2008)"}\r
         }\r
         VEF{\r
+            one{"venezuelansk bolivar (2008–2018)"}\r
+            other{"venezuelanske bolivar (2008–2018)"}\r
+        }\r
+        VES{\r
             one{"venezuelansk bolivar"}\r
             other{"venezuelanske bolivar"}\r
         }\r
@@ -2507,5 +2515,5 @@ nb{
         one{"{0} {1}"}\r
         other{"{0} {1}"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.2"}\r
 }\r
index c4183ed..62b228e 100644 (file)
@@ -604,7 +604,11 @@ ne{
         }\r
         VEF{\r
             "VEF",\r
-            "भेनेजुएलन बोलिभर",\r
+            "भेनेजुएलन बोलिभर (२००८–२०१८)",\r
+        }\r
+        VES{\r
+            "VES",\r
+            "भेनेजुएलन बोलिभर-2",\r
         }\r
         VND{\r
             "₫",\r
@@ -635,7 +639,7 @@ ne{
             "सीएफ्‌पी फ्रान्क",\r
         }\r
         XXX{\r
-            "XXX",\r
+            "¤",\r
             "अज्ञात मुद्रा",\r
         }\r
         YER{\r
@@ -1357,6 +1361,10 @@ ne{
             one{"भेनेजुएलन बोलिभर"}\r
             other{"भेनेजुएलन बोलिभर"}\r
         }\r
+        VES{\r
+            one{"भेनेजुएलन बोलिभर मुद्रा"}\r
+            other{"भेनेजुएलन बोलिभर-3"}\r
+        }\r
         VND{\r
             one{"भियतनामी डङ्"}\r
             other{"भियतनामी डङ्"}\r
@@ -1406,5 +1414,5 @@ ne{
             other{"जाम्बियाली क्वाचा"}\r
         }\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.50"}\r
 }\r
index a8cdaad..5c6f7d5 100644 (file)
@@ -1044,6 +1044,10 @@ nl{
         }\r
         VEF{\r
             "VEF",\r
+            "Venezolaanse bolivar (2008–2018)",\r
+        }\r
+        VES{\r
+            "VES",\r
             "Venezolaanse bolivar",\r
         }\r
         VND{\r
@@ -1263,6 +1267,8 @@ nl{
         LBP{"L£"}\r
         LKR{"Rs"}\r
         LRD{"$"}\r
+        LTL{"Lt"}\r
+        LVL{"Ls"}\r
         MGA{"Ar"}\r
         MMK{"K"}\r
         MNT{"₮"}\r
@@ -2351,6 +2357,10 @@ nl{
             other{"Venezolaanse bolivar (1871–2008)"}\r
         }\r
         VEF{\r
+            one{"Venezolaanse bolivar (2008–2018)"}\r
+            other{"Venezolaanse bolivar (2008–2018)"}\r
+        }\r
+        VES{\r
             one{"Venezolaanse bolivar"}\r
             other{"Venezolaanse bolivar"}\r
         }\r
@@ -2519,5 +2529,5 @@ nl{
         one{"{0} {1}"}\r
         other{"{0} {1}"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.45.14"}\r
 }\r
index e5c9301..fd6c322 100644 (file)
@@ -968,6 +968,10 @@ nn{
         }\r
         VEF{\r
             "VEF",\r
+            "venezuelanske bolivar (2008–2018)",\r
+        }\r
+        VES{\r
+            "VES",\r
             "venezuelanske bolivar",\r
         }\r
         VND{\r
@@ -1055,7 +1059,7 @@ nn{
             "testvalutakode",\r
         }\r
         XXX{\r
-            "XXX",\r
+            "¤",\r
             "ukjend valuta",\r
         }\r
         YDD{\r
@@ -2080,6 +2084,10 @@ nn{
             other{"venezuelanske bolivar (1871–2008)"}\r
         }\r
         VEF{\r
+            one{"venezuelansk bolivar (2008–2018)"}\r
+            other{"venezuelanske bolivar (2008–2018)"}\r
+        }\r
+        VES{\r
             one{"venezuelansk bolivar"}\r
             other{"venezuelanske bolivar"}\r
         }\r
@@ -2204,5 +2212,5 @@ nn{
         one{"{0} {1}"}\r
         other{"{0} {1}"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.94"}\r
 }\r
index 58a3f8e..a6e0cc5 100644 (file)
@@ -43,5 +43,5 @@ om{
         one{"{0} {1}"}\r
         other{"{0} {1}"}\r
     }\r
-    Version{"2.1.38.69"}\r
+    Version{"2.1.43.94"}\r
 }\r
index bde600b..087d1e2 100644 (file)
@@ -588,6 +588,10 @@ or{
         }\r
         VEF{\r
             "VEF",\r
+            "ଭେନେଜୁଏଲାନ୍ ବୋଲିଭାର୍ (2008–2018)",\r
+        }\r
+        VES{\r
+            "VES",\r
             "ଭେନେଜୁଏଲାନ୍ ବୋଲିଭାର୍",\r
         }\r
         VND{\r
@@ -619,7 +623,7 @@ or{
             "CFP ଫ୍ରାଙ୍କ୍",\r
         }\r
         XXX{\r
-            "XXX",\r
+            "¤",\r
             "ଅଜଣା ମୁଦ୍ରା",\r
         }\r
         YER{\r
@@ -1320,6 +1324,10 @@ or{
             other{"ଉଜବେକିସ୍ତାନୀ ସୋମ୍"}\r
         }\r
         VEF{\r
+            one{"ଭେନେଜୁଏଲାନ୍ ବୋଲିଭାର୍ (2008–2018)"}\r
+            other{"ଭେନେଜୁଏଲାନ୍ ବୋଲିଭାର୍ (2008–2018)"}\r
+        }\r
+        VES{\r
             one{"ଭେନେଜୁଏଲାନ୍ ବୋଲିଭାର୍"}\r
             other{"ଭେନେଜୁଏଲାନ୍ ବୋଲିଭାର୍"}\r
         }\r
@@ -1372,5 +1380,5 @@ or{
         one{"{0} {1}"}\r
         other{"{0} {1}"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.65"}\r
 }\r
index ca255d1..c3e884e 100644 (file)
@@ -27,7 +27,7 @@ os{
             "АИШ-ы Доллар",\r
         }\r
         XXX{\r
-            "XXX",\r
+            "¤",\r
             "Нӕзонгӕ валютӕ",\r
         }\r
     }\r
index f43a4f2..7b4e27a 100644 (file)
@@ -680,6 +680,10 @@ pa{
         }\r
         VEF{\r
             "VEF",\r
+            "ਵੇਨੇਜ਼ੂਏਲਨ ਬੋਲੀਵਰ (2008–2018)",\r
+        }\r
+        VES{\r
+            "VES",\r
             "ਵੇਨੇਜ਼ੂਏਲਨ ਬੋਲੀਵਰ",\r
         }\r
         VND{\r
@@ -1454,7 +1458,7 @@ pa{
             other{"ਸਾਉ ਟੋਮੀ ਐਂਡ ਪ੍ਰਿੰਸਪੀ ਡੋਬਰਾ (1977–2017)"}\r
         }\r
         STN{\r
-            one{"ਸਾà¨\89 à¨\9fà©\8bਮà©\80 à¨\90à¨\82ਡ ਪ੍ਰਿੰਸਪੀ ਡੋਬਰਾ"}\r
+            one{"ਸਾà¨\89 à¨\9fà©\8bਮà©\80 à¨\85ਤà©\87 ਪ੍ਰਿੰਸਪੀ ਡੋਬਰਾ"}\r
             other{"ਸਾਉ ਟੋਮੀ ਐਂਡ ਪ੍ਰਿੰਸਪੀ ਡੋਬਰਾ"}\r
         }\r
         SUR{\r
@@ -1534,6 +1538,10 @@ pa{
             other{"ਵੇਨੇਜ਼ੂਏਲਨ ਬੋਲੀਵਰ (1871–2008)"}\r
         }\r
         VEF{\r
+            one{"ਵੇਨੇਜ਼ੂਏਲਨ ਬੋਲੀਵਰ (2008–2018)"}\r
+            other{"ਵੇਨੇਜ਼ੂਏਲਨ ਬੋਲੀਵਰ (2008–2018)"}\r
+        }\r
+        VES{\r
             one{"ਵੇਨੇਜ਼ੂਏਲਨ ਬੋਲੀਵਰ"}\r
             other{"ਵੇਨੇਜ਼ੂਏਲਨ ਬੋਲੀਵਰ"}\r
         }\r
@@ -1606,5 +1614,5 @@ pa{
         one{"{0} {1}"}\r
         other{"{0} {1}"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.65"}\r
 }\r
index bc1af4c..f00024a 100644 (file)
@@ -936,6 +936,10 @@ pl{
         }\r
         VEF{\r
             "VEF",\r
+            "boliwar wenezuelski (2008–2018)",\r
+        }\r
+        VES{\r
+            "VES",\r
             "boliwar wenezuelski",\r
         }\r
         VND{\r
@@ -1011,7 +1015,7 @@ pl{
             "testowy kod waluty",\r
         }\r
         XXX{\r
-            "XXX",\r
+            "¤",\r
             "nieznana waluta",\r
         }\r
         YDD{\r
@@ -2237,6 +2241,12 @@ pl{
             other{"boliwary wenezuelskiego (1871–2008)"}\r
         }\r
         VEF{\r
+            few{"boliwary wenezuelskie (2008–2018)"}\r
+            many{"boliwarów wenezuelskich (2008–2018)"}\r
+            one{"boliwar wenezuelski (2008–2018)"}\r
+            other{"boliwara wenezuelskiego (2008–2018)"}\r
+        }\r
+        VES{\r
             few{"boliwary wenezuelskie"}\r
             many{"boliwarów wenezuelskich"}\r
             one{"boliwar wenezuelski"}\r
@@ -2321,5 +2331,5 @@ pl{
         one{"{0} {1}"}\r
         other{"{0} {1}"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.50"}\r
 }\r
index 3001bd9..20658a7 100644 (file)
Binary files a/source/data/curr/pool.res and b/source/data/curr/pool.res differ
index c38ad32..2df84f8 100644 (file)
@@ -592,7 +592,11 @@ ps{
         }\r
         VEF{\r
             "VEF",\r
-            "VEF",\r
+            "VEF (2008–2018)",\r
+        }\r
+        VES{\r
+            "VES",\r
+            "VES",\r
         }\r
         VND{\r
             "₫",\r
@@ -623,8 +627,8 @@ ps{
             "XPF",\r
         }\r
         XXX{\r
-            "XXX",\r
-            "نامعلوم د اسعارو له",\r
+            "¤",\r
+            "نامعلومه مروجه پېسې",\r
         }\r
         YER{\r
             "YER",\r
@@ -1104,8 +1108,8 @@ ps{
             other{"MOP"}\r
         }\r
         MRO{\r
-            one{"MRO"}\r
-            other{"MRO"}\r
+            one{"MRO (1973–2017)"}\r
+            other{"MRO (1973–2017)"}\r
         }\r
         MRU{\r
             one{"MRU"}\r
@@ -1328,8 +1332,12 @@ ps{
             other{"UZS"}\r
         }\r
         VEF{\r
-            one{"VEF"}\r
-            other{"VEF"}\r
+            one{"VEF (2008–2018)"}\r
+            other{"VEF (2008–2018)"}\r
+        }\r
+        VES{\r
+            one{"VES"}\r
+            other{"VES"}\r
         }\r
         VND{\r
             one{"VND"}\r
@@ -1360,8 +1368,8 @@ ps{
             other{"XPF"}\r
         }\r
         XXX{\r
-            one{"د اسعارو د نامعلومو واحد"}\r
-            other{"نامعلوم د اسعارو له"}\r
+            one{"(د نامعلومه مروجه پېسو واحد)"}\r
+            other{"(نامعلومه مروجه پېسې)"}\r
         }\r
         YER{\r
             one{"YER"}\r
@@ -1376,5 +1384,5 @@ ps{
             other{"ZMW"}\r
         }\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.94"}\r
 }\r
index c76960c..7da17fb 100644 (file)
@@ -8,7 +8,7 @@ pt{
         }\r
         AED{\r
             "AED",\r
-            "Dir dos Emirados Árabes Unidos",\r
+            "Dirham dos Emirados Árabes Unidos",\r
         }\r
         AFA{\r
             "AFA",\r
@@ -108,7 +108,7 @@ pt{
         }\r
         BDT{\r
             "BDT",\r
-            "Taka bengalesa",\r
+            "Taka bengali",\r
         }\r
         BEC{\r
             "BEC",\r
@@ -156,7 +156,7 @@ pt{
         }\r
         BOB{\r
             "BOB",\r
-            "Boliviano",\r
+            "Boliviano da Bolívia",\r
         }\r
         BOL{\r
             "BOL",\r
@@ -264,7 +264,7 @@ pt{
         }\r
         CNH{\r
             "CNH",\r
-            "Yuan (offshore)",\r
+            "Renminbi chinês (offshore)",\r
         }\r
         CNX{\r
             "CNX",\r
@@ -272,7 +272,7 @@ pt{
         }\r
         CNY{\r
             "CN¥",\r
-            "Yuan chinês",\r
+            "Renminbi chinês",\r
         }\r
         COP{\r
             "COP",\r
@@ -496,7 +496,7 @@ pt{
         }\r
         ILS{\r
             "₪",\r
-            "Sheqel novo israelita",\r
+            "Novo shekel israelense",\r
         }\r
         INR{\r
             "₹",\r
@@ -588,7 +588,7 @@ pt{
         }\r
         LKR{\r
             "LKR",\r
-            "Rupia ceilandesa",\r
+            "Rupia do Sri Lanka",\r
         }\r
         LRD{\r
             "LRD",\r
@@ -672,7 +672,7 @@ pt{
         }\r
         MMK{\r
             "MMK",\r
-            "Kyat mianmarense",\r
+            "Quiat de Myanmar",\r
         }\r
         MNT{\r
             "MNT",\r
@@ -680,7 +680,7 @@ pt{
         }\r
         MOP{\r
             "MOP",\r
-            "Pataca macaense",\r
+            "Pataca de Macau",\r
         }\r
         MRO{\r
             "MRO",\r
@@ -704,7 +704,7 @@ pt{
         }\r
         MVR{\r
             "MVR",\r
-            "Rupia maldiva",\r
+            "Rupia maldivana",\r
         }\r
         MWK{\r
             "MWK",\r
@@ -784,7 +784,7 @@ pt{
         }\r
         PEN{\r
             "PEN",\r
-            "Sol peruano",\r
+            "Novo sol peruano",\r
         }\r
         PES{\r
             "PES",\r
@@ -804,7 +804,7 @@ pt{
         }\r
         PLN{\r
             "PLN",\r
-            "Zloti polonês",\r
+            "Zloty polonês",\r
         }\r
         PLZ{\r
             "PLZ",\r
@@ -900,7 +900,7 @@ pt{
         }\r
         SOS{\r
             "SOS",\r
-            "Xelim somaliano",\r
+            "Xelim somali",\r
         }\r
         SRD{\r
             "SRD",\r
@@ -1040,6 +1040,10 @@ pt{
         }\r
         VEF{\r
             "VEF",\r
+            "Bolívar venezuelano (2008–2018)",\r
+        }\r
+        VES{\r
+            "VES",\r
             "Bolívar venezuelano",\r
         }\r
         VND{\r
@@ -1052,7 +1056,7 @@ pt{
         }\r
         VUV{\r
             "VUV",\r
-            "Vatu vanuatuense",\r
+            "Vatu de Vanuatu",\r
         }\r
         WST{\r
             "WST",\r
@@ -1131,7 +1135,7 @@ pt{
             "Código de Moeda de Teste",\r
         }\r
         XXX{\r
-            "XXX",\r
+            "¤",\r
             "Moeda desconhecida",\r
         }\r
         YDD{\r
@@ -1276,7 +1280,7 @@ pt{
         SRD{"$"}\r
         SSP{"£"}\r
         STN{"Db"}\r
-        SYP{"£"}\r
+        SYP{"S£"}\r
         THB{"฿"}\r
         TOP{"T$"}\r
         TRY{"₺"}\r
@@ -1301,8 +1305,8 @@ pt{
             other{"Pesetas de Andorra"}\r
         }\r
         AED{\r
-            one{"Dirrã dos Emirados Árabes Unidos"}\r
-            other{"Dirrãs dos Emirados Árabes Unidos"}\r
+            one{"Dirham dos EAU"}\r
+            other{"Dirhams dos EAU"}\r
         }\r
         AFA{\r
             one{"Afegane do Afeganistão (AFA)"}\r
@@ -1401,8 +1405,8 @@ pt{
             other{"Dólares barbadenses"}\r
         }\r
         BDT{\r
-            one{"Taka bengalesa"}\r
-            other{"Takas bengalesas"}\r
+            one{"Taka bengali"}\r
+            other{"Takas bengalis"}\r
         }\r
         BEC{\r
             one{"Franco belga (conversível)"}\r
@@ -1449,8 +1453,8 @@ pt{
             other{"Dólares bruneanos"}\r
         }\r
         BOB{\r
-            one{"Boliviano"}\r
-            other{"Bolivianos"}\r
+            one{"Boliviano da Bolívia"}\r
+            other{"Bolivianos da Bolívia"}\r
         }\r
         BOL{\r
             one{"Boliviano (1863–1963)"}\r
@@ -1557,8 +1561,8 @@ pt{
             other{"Pesos chilenos"}\r
         }\r
         CNH{\r
-            one{"Yuan (offshore)"}\r
-            other{"Yuans (offshore)"}\r
+            one{"Yuan chinês (offshore)"}\r
+            other{"Yuans chineses (offshore)"}\r
         }\r
         CNX{\r
             one{"Dólar do Banco Popular da China"}\r
@@ -1789,8 +1793,8 @@ pt{
             other{"Sheqels antigos israelitas"}\r
         }\r
         ILS{\r
-            one{"Sheqel novo israelita"}\r
-            other{"Sheqels novos israelita"}\r
+            one{"Novo shekel israelense"}\r
+            other{"Novos shekels israelenses"}\r
         }\r
         INR{\r
             one{"Rupia indiana"}\r
@@ -1881,8 +1885,8 @@ pt{
             other{"Libras libanesas"}\r
         }\r
         LKR{\r
-            one{"Rupia ceilandesa"}\r
-            other{"Rupias ceilandesas"}\r
+            one{"Rupia do Sri Lanka"}\r
+            other{"Rupias do Sri Lanka"}\r
         }\r
         LRD{\r
             one{"Dólar liberiano"}\r
@@ -1965,16 +1969,16 @@ pt{
             other{"Francos de Mali"}\r
         }\r
         MMK{\r
-            one{"Kyat mianmarense"}\r
-            other{"Kyats mianmarenses"}\r
+            one{"Quiat de Myanmar"}\r
+            other{"Quiat de Myanmar"}\r
         }\r
         MNT{\r
             one{"Tugrik mongol"}\r
             other{"Tugriks mongóis"}\r
         }\r
         MOP{\r
-            one{"Pataca macaense"}\r
-            other{"Patacas macaenses"}\r
+            one{"Pataca de Macau"}\r
+            other{"Patacas de Macau"}\r
         }\r
         MRO{\r
             one{"Ouguiya mauritana (1973–2017)"}\r
@@ -1997,8 +2001,8 @@ pt{
             other{"Rupias mauricianas"}\r
         }\r
         MVR{\r
-            one{"Rupia maldiva"}\r
-            other{"Rupias maldivas"}\r
+            one{"Rupia maldivana"}\r
+            other{"Rupias maldivanas"}\r
         }\r
         MWK{\r
             one{"Kwacha malauiana"}\r
@@ -2077,8 +2081,8 @@ pt{
             other{"Intis peruanos"}\r
         }\r
         PEN{\r
-            one{"Sol peruano"}\r
-            other{"Sóis peruanos"}\r
+            one{"Novo sol peruano"}\r
+            other{"Novos sóis peruanos"}\r
         }\r
         PES{\r
             one{"Sol peruano (1863–1965)"}\r
@@ -2097,8 +2101,8 @@ pt{
             other{"Rupias paquistanesas"}\r
         }\r
         PLN{\r
-            one{"Zloti polonês"}\r
-            other{"Zlotis poloneses"}\r
+            one{"Zloty polonês"}\r
+            other{"Zlotys poloneses"}\r
         }\r
         PLZ{\r
             one{"Zloti polonês (1950–1995)"}\r
@@ -2193,8 +2197,8 @@ pt{
             other{"Leones de Serra Leoa"}\r
         }\r
         SOS{\r
-            one{"Xelim somaliano"}\r
-            other{"Xelins somalianos"}\r
+            one{"Xelim somali"}\r
+            other{"Xelins somalis"}\r
         }\r
         SRD{\r
             one{"Dólar surinamês"}\r
@@ -2333,6 +2337,10 @@ pt{
             other{"Bolívares venezuelanos (1871–2008)"}\r
         }\r
         VEF{\r
+            one{"Bolívar venezuelano (2008–2018)"}\r
+            other{"Bolívares venezuelanos (2008–2018)"}\r
+        }\r
+        VES{\r
             one{"Bolívar venezuelano"}\r
             other{"Bolívares venezuelanos"}\r
         }\r
@@ -2345,8 +2353,8 @@ pt{
             other{"Dong vietnamita (1978–1985)"}\r
         }\r
         VUV{\r
-            one{"Vatu vanuatuense"}\r
-            other{"Vatus vanuatuenses"}\r
+            one{"Vatu de Vanuatu"}\r
+            other{"Vatus de Vanuatu"}\r
         }\r
         WST{\r
             one{"Tala samoano"}\r
@@ -2425,7 +2433,7 @@ pt{
             other{"Códigos de moeda de teste"}\r
         }\r
         XXX{\r
-            one{"(moeda desconhecida)"}\r
+            one{"(unidade monetária desconhecida)"}\r
             other{"(moedas desconhecidas)"}\r
         }\r
         YDD{\r
@@ -2493,5 +2501,5 @@ pt{
         one{"{0} {1}"}\r
         other{"{0} {1}"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.65"}\r
 }\r
index 8bc1b6a..3c344f1 100644 (file)
@@ -5,7 +5,7 @@ pt_AO{
     Currencies{\r
         AOA{\r
             "Kz",\r
-            "Kwanza angolano",\r
+            "kwanza angolano",\r
         }\r
     }\r
     Version{"2.1.38.39"}\r
index dab5ae5..71b6157 100644 (file)
@@ -5,7 +5,7 @@ pt_MZ{
     Currencies{\r
         MZN{\r
             "MTn",\r
-            "Metical de Moçambique",\r
+            "metical moçambicano",\r
         }\r
     }\r
     Version{"2.1.38.39"}\r
index d99149d..c29d57c 100644 (file)
@@ -2,10 +2,6 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 pt_PT{\r
     Currencies{\r
-        AED{\r
-            "AED",\r
-            "Dirham dos Emirados Árabes Unidos",\r
-        }\r
         AFA{\r
             "AFA",\r
             "Afeghani (1927–2002)",\r
@@ -22,6 +18,10 @@ pt_PT{
             "AMD",\r
             "Dram arménio",\r
         }\r
+        AOA{\r
+            "AOA",\r
+            "kwanza angolano",\r
+        }\r
         ARS{\r
             "ARS",\r
             "peso argentino",\r
@@ -62,6 +62,10 @@ pt_PT{
             "BHD",\r
             "Dinar baremita",\r
         }\r
+        BIF{\r
+            "BIF",\r
+            "franco burundiano",\r
+        }\r
         BMD{\r
             "BMD",\r
             "dólar bermudense",\r
@@ -106,6 +110,10 @@ pt_PT{
             "CA$",\r
             "dólar canadiano",\r
         }\r
+        CDF{\r
+            "CDF",\r
+            "franco congolês",\r
+        }\r
         CHF{\r
             "CHF",\r
             "franco suíço",\r
@@ -152,7 +160,7 @@ pt_PT{
         }\r
         DJF{\r
             "DJF",\r
-            "Franco jibutiano",\r
+            "franco jibutiano",\r
         }\r
         DKK{\r
             "DKK",\r
@@ -170,6 +178,14 @@ pt_PT{
             "EGP",\r
             "libra egípcia",\r
         }\r
+        ERN{\r
+            "ERN",\r
+            "nakfa eritreia",\r
+        }\r
+        ETB{\r
+            "ETB",\r
+            "birr etíope",\r
+        }\r
         EUR{\r
             "€",\r
             "euro",\r
@@ -188,7 +204,7 @@ pt_PT{
         }\r
         GHS{\r
             "GHS",\r
-            "Cedi de Gana",\r
+            "cedi ganês",\r
         }\r
         GIP{\r
             "GIP",\r
@@ -196,11 +212,11 @@ pt_PT{
         }\r
         GMD{\r
             "GMD",\r
-            "Dalasi da Gâmbia",\r
+            "dalasi gambiano",\r
         }\r
         GNF{\r
             "GNF",\r
-            "Franco guineense",\r
+            "franco guineense",\r
         }\r
         GTQ{\r
             "GTQ",\r
@@ -222,14 +238,26 @@ pt_PT{
             "HUF",\r
             "forint húngaro",\r
         }\r
+        ILS{\r
+            "₪",\r
+            "Sheqel novo israelita",\r
+        }\r
         ISK{\r
             "ISK",\r
             "coroa islandesa",\r
         }\r
+        KES{\r
+            "KES",\r
+            "xelim queniano",\r
+        }\r
         KGS{\r
             "KGS",\r
             "Som do Quirguistão",\r
         }\r
+        KMF{\r
+            "KMF",\r
+            "franco comoriano",\r
+        }\r
         KYD{\r
             "KYD",\r
             "Dólar das Ilhas Caimão",\r
@@ -242,9 +270,9 @@ pt_PT{
             "LAK",\r
             "Kip de Laos",\r
         }\r
-        LKR{\r
-            "LKR",\r
-            "Rupia do Sri Lanka",\r
+        LRD{\r
+            "LRD",\r
+            "dólar liberiano",\r
         }\r
         LTL{\r
             "LTL",\r
@@ -268,7 +296,7 @@ pt_PT{
         }\r
         MGA{\r
             "MGA",\r
-            "Ariari de Madagáscar",\r
+            "ariari malgaxe",\r
         }\r
         MKD{\r
             "MKD",\r
@@ -282,17 +310,17 @@ pt_PT{
             "MNT",\r
             "Tugrik da Mongólia",\r
         }\r
-        MOP{\r
-            "MOP",\r
-            "Pataca de Macau",\r
-        }\r
         MRO{\r
             "MRO",\r
-            "Ouguiya da Mauritânia (1973–2017)",\r
+            "ouguiya mauritana (1973–2017)",\r
         }\r
         MRU{\r
             "MRU",\r
-            "Ouguiya da Mauritânia",\r
+            "ouguiya mauritana",\r
+        }\r
+        MUR{\r
+            "MUR",\r
+            "rupia mauriciana",\r
         }\r
         MVR{\r
             "MVR",\r
@@ -300,7 +328,7 @@ pt_PT{
         }\r
         MWK{\r
             "MWK",\r
-            "Kwacha do Malawi",\r
+            "kwacha malauiano",\r
         }\r
         MXN{\r
             "MX$",\r
@@ -316,7 +344,7 @@ pt_PT{
         }\r
         MZN{\r
             "MZN",\r
-            "Metical de Moçambique",\r
+            "metical moçambicano",\r
         }\r
         NAD{\r
             "NAD",\r
@@ -383,10 +411,18 @@ pt_PT{
             "RUB",\r
             "rublo russo",\r
         }\r
+        RWF{\r
+            "RWF",\r
+            "franco ruandês",\r
+        }\r
         SAR{\r
             "SAR",\r
             "Rial saudita",\r
         }\r
+        SCR{\r
+            "SCR",\r
+            "rupia seichelense",\r
+        }\r
         SDG{\r
             "SDG",\r
             "libra sudanesa",\r
@@ -399,17 +435,25 @@ pt_PT{
             "SGD",\r
             "Dólar de Singapura",\r
         }\r
+        SHP{\r
+            "SHP",\r
+            "libra santa-helenense",\r
+        }\r
         SOS{\r
             "SOS",\r
-            "Xelim somali",\r
+            "xelim somali",\r
         }\r
         SRD{\r
             "SRD",\r
             "dólar do Suriname",\r
         }\r
+        SSP{\r
+            "SSP",\r
+            "libra sul-sudanesa",\r
+        }\r
         STN{\r
             "STN",\r
-            "São Tomé & Príncipe Dobra (2018)",\r
+            "dobra de São Tomé e Príncipe",\r
         }\r
         SZL{\r
             "SZL",\r
@@ -457,15 +501,15 @@ pt_PT{
         }\r
         VEF{\r
             "VEF",\r
-            "bolívar",\r
+            "bolívar (2008–2018)",\r
         }\r
-        VUV{\r
-            "VUV",\r
-            "Vatu de Vanuatu",\r
+        VES{\r
+            "VES",\r
+            "bolívar",\r
         }\r
         XAF{\r
             "FCFA",\r
-            "Franco CFA (BEAC)",\r
+            "franco CFA (BEAC)",\r
         }\r
         XCD{\r
             "EC$",\r
@@ -476,7 +520,7 @@ pt_PT{
             "franco CFA (BCEAO)",\r
         }\r
         XXX{\r
-            "XXX",\r
+            "¤",\r
             "moeda desconhecida",\r
         }\r
         ZMK{\r
@@ -484,6 +528,9 @@ pt_PT{
             "Kwacha zambiano (1968–2012)",\r
         }\r
     }\r
+    Currencies%narrow{\r
+        SYP{"£"}\r
+    }\r
     CurrencyPlurals{\r
         AED{\r
             one{"Dirham dos Emirados Árabes Unidos"}\r
@@ -501,6 +548,10 @@ pt_PT{
             one{"Dram arménio"}\r
             other{"Drams arménios"}\r
         }\r
+        AOA{\r
+            one{"kwanza angolano"}\r
+            other{"kwanzas angolanos"}\r
+        }\r
         ARS{\r
             one{"peso argentino"}\r
             other{"pesos argentinos"}\r
@@ -533,6 +584,10 @@ pt_PT{
             one{"Dinar baremita"}\r
             other{"Dinares baremitas"}\r
         }\r
+        BIF{\r
+            one{"franco burundiano"}\r
+            other{"francos burundianos"}\r
+        }\r
         BMD{\r
             one{"dólar bermudense"}\r
             other{"dólares bermudense"}\r
@@ -573,6 +628,10 @@ pt_PT{
             one{"dólar canadiano"}\r
             other{"dólares canadianos"}\r
         }\r
+        CDF{\r
+            one{"franco congolês"}\r
+            other{"francos congoleses"}\r
+        }\r
         CHF{\r
             one{"franco suíço"}\r
             other{"francos suíços"}\r
@@ -614,8 +673,8 @@ pt_PT{
             other{"coroas checas"}\r
         }\r
         DJF{\r
-            one{"Franco jibutiano"}\r
-            other{"Francos jibutianos"}\r
+            one{"franco jibutiano"}\r
+            other{"francos jibutianos"}\r
         }\r
         DKK{\r
             one{"coroa dinamarquesa"}\r
@@ -629,6 +688,14 @@ pt_PT{
             one{"libra egípcia"}\r
             other{"libras egípcias"}\r
         }\r
+        ERN{\r
+            one{"nakfa eritreia"}\r
+            other{"nakfas eritreias"}\r
+        }\r
+        ETB{\r
+            one{"birr etíope"}\r
+            other{"birres etíopes"}\r
+        }\r
         EUR{\r
             one{"euro"}\r
             other{"euros"}\r
@@ -646,20 +713,20 @@ pt_PT{
             other{"libras esterlinas britânicas"}\r
         }\r
         GHS{\r
-            one{"Cedi de Gana"}\r
-            other{"Cedis de Gana"}\r
+            one{"cedi ganês"}\r
+            other{"cedis ganeses"}\r
         }\r
         GIP{\r
             one{"libra de Gibraltar"}\r
             other{"libras de Gibraltar"}\r
         }\r
         GMD{\r
-            one{"Dalasi da Gâmbia"}\r
-            other{"Dalasis da Gâmbia"}\r
+            one{"dalasi gambiano"}\r
+            other{"dalasis gambianos"}\r
         }\r
         GNF{\r
-            one{"Franco guineense"}\r
-            other{"Francos guineenses"}\r
+            one{"franco guineense"}\r
+            other{"francos guineenses"}\r
         }\r
         GTQ{\r
             one{"quetzal da Guatemala"}\r
@@ -693,10 +760,18 @@ pt_PT{
             one{"coroa islandesa"}\r
             other{"coroas islandesas"}\r
         }\r
+        KES{\r
+            one{"xelim queniano"}\r
+            other{"xelins quenianos"}\r
+        }\r
         KGS{\r
             one{"Som do Quirguistão"}\r
             other{"Sons do Quirguistão"}\r
         }\r
+        KMF{\r
+            one{"franco comoriano"}\r
+            other{"francos comorianos"}\r
+        }\r
         KYD{\r
             one{"Dólar das Ilhas Caimão"}\r
             other{"Dólares das Ilhas Caimão"}\r
@@ -709,9 +784,9 @@ pt_PT{
             one{"Kip de Laos"}\r
             other{"Kips de Laos"}\r
         }\r
-        LKR{\r
-            one{"Rupia do Sri Lanka"}\r
-            other{"Rupias do Sri Lanka"}\r
+        LRD{\r
+            one{"dólar liberiano"}\r
+            other{"dólares liberianos"}\r
         }\r
         LTL{\r
             one{"Litas da Lituânia"}\r
@@ -734,8 +809,8 @@ pt_PT{
             other{"leus moldavos"}\r
         }\r
         MGA{\r
-            one{"Ariari de Madagáscar"}\r
-            other{"Ariaris de Madagáscar"}\r
+            one{"ariari malgaxe"}\r
+            other{"ariaris malgaxes"}\r
         }\r
         MKD{\r
             one{"dinar macedónio"}\r
@@ -749,33 +824,33 @@ pt_PT{
             one{"Tugrik da Mongólia"}\r
             other{"Tugriks da Mongólia"}\r
         }\r
-        MOP{\r
-            one{"Pataca de Macau"}\r
-            other{"Patacas de Macau"}\r
-        }\r
         MRO{\r
-            one{"Ouguiya da Mauritânia (1973–2017)"}\r
-            other{"Ouguiyas da Mauritânia (1973–2017)"}\r
+            one{"ouguiya mauritana (1973–2017)"}\r
+            other{"ouguiyas mauritanas (1973–2017)"}\r
         }\r
         MRU{\r
-            one{"Ouguiya da Mauritânia"}\r
-            other{"Ouguiyas da Mauritânia"}\r
+            one{"ouguiya mauritana"}\r
+            other{"ouguiyas mauritanas"}\r
+        }\r
+        MUR{\r
+            one{"rupia mauriciana"}\r
+            other{"rupias mauricianas"}\r
         }\r
         MVR{\r
             one{"Rupia das Ilhas Maldivas"}\r
             other{"Rupias das Ilhas Maldivas"}\r
         }\r
         MWK{\r
-            one{"Kwacha do Malawi"}\r
-            other{"Kwachas do Malawi"}\r
+            one{"kwacha malauiano"}\r
+            other{"kwachas malauianos"}\r
         }\r
         MXN{\r
             one{"peso mexicano"}\r
             other{"pesos mexicanos"}\r
         }\r
         MZN{\r
-            one{"Metical de Moçambique"}\r
-            other{"Meticales de Moçambique"}\r
+            one{"metical moçambicano"}\r
+            other{"meticais moçambicanos"}\r
         }\r
         NAD{\r
             one{"Dólar da Namíbia"}\r
@@ -837,10 +912,18 @@ pt_PT{
             one{"rublo russo"}\r
             other{"rublos russos"}\r
         }\r
+        RWF{\r
+            one{"franco ruandês"}\r
+            other{"francos ruandeses"}\r
+        }\r
         SAR{\r
             one{"Rial saudita"}\r
             other{"Riais sauditas"}\r
         }\r
+        SCR{\r
+            one{"rupia seichelense"}\r
+            other{"rupias seichelenses"}\r
+        }\r
         SDG{\r
             one{"libra sudanesa"}\r
             other{"libras sudanesas"}\r
@@ -854,16 +937,20 @@ pt_PT{
             other{"Dólares de Singapura"}\r
         }\r
         SOS{\r
-            one{"Xelim somali"}\r
-            other{"Xelins somalis"}\r
+            one{"xelim somali"}\r
+            other{"xelins somalis"}\r
         }\r
         SRD{\r
             one{"dólar do Suriname"}\r
             other{"dólares do Suriname"}\r
         }\r
+        SSP{\r
+            one{"libra sul-sudanesa"}\r
+            other{"libras sul-sudanesas"}\r
+        }\r
         STN{\r
-            one{"São Tomé & Príncipe dobra (2018)"}\r
-            other{"São Tomé & Príncipe dobras (2018)"}\r
+            one{"dobra de São Tomé e Príncipe"}\r
+            other{"dobras de São Tomé e Príncipe"}\r
         }\r
         SZL{\r
             one{"Lilangeni da Suazilândia"}\r
@@ -910,16 +997,16 @@ pt_PT{
             other{"Sons do Uzbequistão"}\r
         }\r
         VEF{\r
+            one{"bolívar (2008–2018)"}\r
+            other{"bolívares (2008–2018)"}\r
+        }\r
+        VES{\r
             one{"bolívar"}\r
             other{"bolívares"}\r
         }\r
-        VUV{\r
-            one{"Vatu de Vanuatu"}\r
-            other{"Vatus de Vanuatu"}\r
-        }\r
         XAF{\r
-            one{"Franco CFA (BEAC)"}\r
-            other{"Francos CFA (BEAC)"}\r
+            one{"franco CFA (BEAC)"}\r
+            other{"francos CFA (BEAC)"}\r
         }\r
         XCD{\r
             one{"Dólar das Caraíbas Orientais"}\r
@@ -929,6 +1016,10 @@ pt_PT{
             one{"franco CFA (BCEAO)"}\r
             other{"francos CFA (BCEAO)"}\r
         }\r
+        XXX{\r
+            one{"(moeda desconhecida)"}\r
+            other{"(moedas desconhecidas)"}\r
+        }\r
         YER{\r
             one{"Rial iemenita"}\r
             other{"Riais iemenitas"}\r
@@ -938,5 +1029,5 @@ pt_PT{
             other{"Kwachas zambianos (1968–2012)"}\r
         }\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.9"}\r
 }\r
index 49f4bf9..1a3fc49 100644 (file)
@@ -5,7 +5,7 @@ pt_ST{
     Currencies{\r
         STN{\r
             "Db",\r
-            "São Tomé & Príncipe Dobra (2018)",\r
+            "dobra de São Tomé e Príncipe",\r
         }\r
     }\r
     Version{"2.1.39.11"}\r
index a605577..a08b435 100644 (file)
@@ -10,5 +10,5 @@ qu{
     CurrencyUnitPatterns{\r
         other{"{0} {1}"}\r
     }\r
-    Version{"2.1.38.72"}\r
+    Version{"2.1.43.94"}\r
 }\r
index c56afca..827351c 100644 (file)
@@ -1,6 +1,6 @@
 # © 2016 and later: Unicode, Inc. and others.\r
 # License & terms of use: http://www.unicode.org/copyright.html#License\r
-CURR_CLDR_VERSION = 33.1\r
+CURR_CLDR_VERSION = 34\r
 # A list of txt's to build\r
 # Note:\r
 #\r
@@ -85,50 +85,51 @@ CURR_SOURCE = af.txt af_NA.txt agq.txt ak.txt\
  es_MX.txt es_NI.txt es_PA.txt es_PE.txt es_PH.txt\\r
  es_PR.txt es_PY.txt es_SV.txt es_US.txt es_UY.txt\\r
  es_VE.txt et.txt eu.txt ewo.txt fa.txt\\r
- fa_AF.txt ff.txt ff_GN.txt ff_MR.txt fi.txt\\r
- fil.txt fo.txt fo_DK.txt fr.txt fr_BI.txt\\r
- fr_CA.txt fr_CD.txt fr_DJ.txt fr_DZ.txt fr_GN.txt\\r
- fr_HT.txt fr_KM.txt fr_LU.txt fr_MG.txt fr_MR.txt\\r
- fr_MU.txt fr_RW.txt fr_SC.txt fr_SY.txt fr_TN.txt\\r
- fr_VU.txt fur.txt fy.txt ga.txt gd.txt\\r
- gl.txt gsw.txt gu.txt guz.txt gv.txt\\r
- ha.txt ha_GH.txt haw.txt he.txt hi.txt\\r
- hr.txt hr_BA.txt hsb.txt hu.txt hy.txt\\r
- id.txt ig.txt ii.txt is.txt it.txt\\r
- ja.txt jgo.txt jmc.txt ka.txt kab.txt\\r
+ fa_AF.txt ff.txt fi.txt fil.txt fo.txt\\r
+ fo_DK.txt fr.txt fr_BI.txt fr_CA.txt fr_CD.txt\\r
+ fr_DJ.txt fr_DZ.txt fr_GN.txt fr_HT.txt fr_KM.txt\\r
+ fr_LU.txt fr_MG.txt fr_MR.txt fr_MU.txt fr_RW.txt\\r
+ fr_SC.txt fr_SY.txt fr_TN.txt fr_VU.txt fur.txt\\r
+ fy.txt ga.txt gd.txt gl.txt gsw.txt\\r
+ gu.txt guz.txt gv.txt ha.txt ha_GH.txt\\r
+ haw.txt he.txt hi.txt hr.txt hr_BA.txt\\r
+ hsb.txt hu.txt hy.txt ia.txt id.txt\\r
+ ig.txt ii.txt is.txt it.txt ja.txt\\r
+ jgo.txt jmc.txt jv.txt ka.txt kab.txt\\r
  kam.txt kde.txt kea.txt khq.txt ki.txt\\r
  kk.txt kkj.txt kl.txt kln.txt km.txt\\r
  kn.txt ko.txt kok.txt ks.txt ksb.txt\\r
- ksf.txt ksh.txt kw.txt ky.txt lag.txt\\r
- lb.txt lg.txt lkt.txt ln.txt ln_AO.txt\\r
- lo.txt lrc.txt lt.txt lu.txt luo.txt\\r
- luy.txt lv.txt mas.txt mas_TZ.txt mer.txt\\r
- mfe.txt mg.txt mgh.txt mgo.txt mk.txt\\r
- ml.txt mn.txt mr.txt ms.txt ms_BN.txt\\r
- ms_SG.txt mt.txt mua.txt my.txt mzn.txt\\r
- naq.txt nb.txt nd.txt nds.txt ne.txt\\r
- nl.txt nl_AW.txt nl_BQ.txt nl_CW.txt nl_SR.txt\\r
- nl_SX.txt nmg.txt nn.txt nnh.txt nus.txt\\r
- nyn.txt om.txt om_KE.txt or.txt os.txt\\r
- os_RU.txt pa.txt pa_Arab.txt pa_Guru.txt pl.txt\\r
- ps.txt pt.txt pt_AO.txt pt_CH.txt pt_CV.txt\\r
- pt_GQ.txt pt_GW.txt pt_LU.txt pt_MO.txt pt_MZ.txt\\r
- pt_PT.txt pt_ST.txt pt_TL.txt qu.txt qu_BO.txt\\r
- qu_EC.txt rm.txt rn.txt ro.txt ro_MD.txt\\r
- rof.txt ru.txt ru_BY.txt ru_KG.txt ru_KZ.txt\\r
- ru_MD.txt rw.txt rwk.txt sah.txt saq.txt\\r
- sbp.txt se.txt se_SE.txt seh.txt ses.txt\\r
- sg.txt shi.txt shi_Latn.txt shi_Tfng.txt si.txt\\r
- sk.txt sl.txt smn.txt sn.txt so.txt\\r
- so_DJ.txt so_ET.txt so_KE.txt sq.txt sq_MK.txt\\r
- sr.txt sr_Cyrl.txt sr_Latn.txt sv.txt sw.txt\\r
- sw_CD.txt sw_UG.txt ta.txt ta_LK.txt ta_MY.txt\\r
- ta_SG.txt te.txt teo.txt teo_KE.txt tg.txt\\r
- th.txt ti.txt ti_ER.txt to.txt tr.txt\\r
- tt.txt twq.txt tzm.txt ug.txt uk.txt\\r
- ur.txt ur_IN.txt uz.txt uz_Arab.txt uz_Cyrl.txt\\r
- uz_Latn.txt vai.txt vai_Latn.txt vai_Vaii.txt vi.txt\\r
- vun.txt wae.txt wo.txt xog.txt yav.txt\\r
+ ksf.txt ksh.txt ku.txt kw.txt ky.txt\\r
+ lag.txt lb.txt lg.txt lkt.txt ln.txt\\r
+ ln_AO.txt lo.txt lrc.txt lt.txt lu.txt\\r
+ luo.txt luy.txt lv.txt mas.txt mas_TZ.txt\\r
+ mer.txt mfe.txt mg.txt mgh.txt mgo.txt\\r
+ mi.txt mk.txt ml.txt mn.txt mr.txt\\r
+ ms.txt ms_BN.txt ms_SG.txt mt.txt mua.txt\\r
+ my.txt mzn.txt naq.txt nb.txt nd.txt\\r
+ nds.txt ne.txt nl.txt nl_AW.txt nl_BQ.txt\\r
+ nl_CW.txt nl_SR.txt nl_SX.txt nmg.txt nn.txt\\r
+ nnh.txt nus.txt nyn.txt om.txt om_KE.txt\\r
+ or.txt os.txt os_RU.txt pa.txt pa_Arab.txt\\r
+ pa_Guru.txt pl.txt ps.txt pt.txt pt_AO.txt\\r
+ pt_CH.txt pt_CV.txt pt_GQ.txt pt_GW.txt pt_LU.txt\\r
+ pt_MO.txt pt_MZ.txt pt_PT.txt pt_ST.txt pt_TL.txt\\r
+ qu.txt qu_BO.txt qu_EC.txt rm.txt rn.txt\\r
+ ro.txt ro_MD.txt rof.txt ru.txt ru_BY.txt\\r
+ ru_KG.txt ru_KZ.txt ru_MD.txt rw.txt rwk.txt\\r
+ sah.txt saq.txt sbp.txt sd.txt se.txt\\r
+ se_SE.txt seh.txt ses.txt sg.txt shi.txt\\r
+ shi_Latn.txt shi_Tfng.txt si.txt sk.txt sl.txt\\r
+ smn.txt sn.txt so.txt so_DJ.txt so_ET.txt\\r
+ so_KE.txt sq.txt sq_MK.txt sr.txt sr_Cyrl.txt\\r
+ sr_Latn.txt sv.txt sw.txt sw_CD.txt sw_UG.txt\\r
+ ta.txt ta_LK.txt ta_MY.txt ta_SG.txt te.txt\\r
+ teo.txt teo_KE.txt tg.txt th.txt ti.txt\\r
+ ti_ER.txt tk.txt to.txt tr.txt tt.txt\\r
+ twq.txt tzm.txt ug.txt uk.txt ur.txt\\r
+ ur_IN.txt uz.txt uz_Arab.txt uz_Cyrl.txt uz_Latn.txt\\r
+ vai.txt vai_Latn.txt vai_Vaii.txt vi.txt vun.txt\\r
+ wae.txt wo.txt xh.txt xog.txt yav.txt\\r
  yi.txt yo.txt yo_BJ.txt yue.txt yue_Hans.txt\\r
  yue_Hant.txt zgh.txt zh.txt zh_Hans.txt zh_Hans_HK.txt\\r
  zh_Hans_MO.txt zh_Hans_SG.txt zh_Hant.txt zh_Hant_HK.txt zh_Hant_MO.txt\\r
index e6839b4..dcbc0d4 100644 (file)
@@ -1024,6 +1024,10 @@ rm{
         }\r
         VEF{\r
             "VEF",\r
+            "bolivar venezuelan (2008–2018)",\r
+        }\r
+        VES{\r
+            "VES",\r
             "bolivar venezuelan",\r
         }\r
         VND{\r
@@ -1107,7 +1111,7 @@ rm{
             "code per verifitgar la valuta",\r
         }\r
         XXX{\r
-            "XXX",\r
+            "¤",\r
             "valuta nunenconuschenta",\r
         }\r
         YDD{\r
@@ -1273,5 +1277,5 @@ rm{
         one{"{0} {1}"}\r
         other{"{0} {1}"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.94"}\r
 }\r
index f8e1ac8..ff6e555 100644 (file)
@@ -864,6 +864,10 @@ ro{
         }\r
         VEF{\r
             "VEF",\r
+            "bolivar venezuelean (2008–2018)",\r
+        }\r
+        VES{\r
+            "VES",\r
             "bolivar venezuelean",\r
         }\r
         VND{\r
@@ -947,7 +951,7 @@ ro{
             "cod monetar de test",\r
         }\r
         XXX{\r
-            "XXX",\r
+            "¤",\r
             "monedă necunoscută",\r
         }\r
         YDD{\r
@@ -2110,6 +2114,11 @@ ro{
             other{"bolivari Venezuela (1871–2008)"}\r
         }\r
         VEF{\r
+            few{"bolivari venezueleni (2008–2018)"}\r
+            one{"bolivar venezuelean (2008–2018)"}\r
+            other{"bolivari venezueleni (2008–2018)"}\r
+        }\r
+        VES{\r
             few{"bolivari venezueleni"}\r
             one{"bolivar venezuelean"}\r
             other{"bolivari venezueleni"}\r
@@ -2215,5 +2224,5 @@ ro{
         one{"{0} {1}"}\r
         other{"{0} de {1}"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.94"}\r
 }\r
index e2b556d..6be7765 100644 (file)
@@ -85,6 +85,10 @@ root{
             "CFPF",\r
             "XPF",\r
         }\r
+        XXX{\r
+            "¤",\r
+            "XXX",\r
+        }\r
     }\r
     Currencies%narrow{\r
         AOA{"Kz"}\r
@@ -192,7 +196,7 @@ root{
     CurrencyUnitPatterns{\r
         other{"{0} {1}"}\r
     }\r
-    Version{"2.1.41.58"}\r
+    Version{"2.1.44.91"}\r
     currencySpacing{\r
         afterCurrency{\r
             currencyMatch{"[:^S:]"}\r
index e57708c..3e596f3 100644 (file)
@@ -56,7 +56,7 @@ ru{
         }\r
         ARS{\r
             "ARS",\r
-            "аÑ\80генÑ\82инÑ\81кое песо",\r
+            "аÑ\80генÑ\82инÑ\81кий песо",\r
         }\r
         ATS{\r
             "ATS",\r
@@ -224,7 +224,7 @@ ru{
         }\r
         CLP{\r
             "CLP",\r
-            "Ñ\87илийÑ\81кое песо",\r
+            "Ñ\87илийÑ\81кий песо",\r
         }\r
         CNH{\r
             "CNH",\r
@@ -236,7 +236,7 @@ ru{
         }\r
         COP{\r
             "COP",\r
-            "колÑ\83мбийÑ\81кое песо",\r
+            "колÑ\83мбийÑ\81кий песо",\r
         }\r
         COU{\r
             "COU",\r
@@ -256,11 +256,11 @@ ru{
         }\r
         CUC{\r
             "CUC",\r
-            "кÑ\83бинÑ\81кое ÐºÐ¾Ð½Ð²ÐµÑ\80Ñ\82иÑ\80Ñ\83емое песо",\r
+            "кÑ\83бинÑ\81кий ÐºÐ¾Ð½Ð²ÐµÑ\80Ñ\82иÑ\80Ñ\83емÑ\8bй песо",\r
         }\r
         CUP{\r
             "CUP",\r
-            "кÑ\83бинÑ\81кое песо",\r
+            "кÑ\83бинÑ\81кий песо",\r
         }\r
         CVE{\r
             "CVE",\r
@@ -292,7 +292,7 @@ ru{
         }\r
         DOP{\r
             "DOP",\r
-            "доминиканÑ\81кое песо",\r
+            "доминиканÑ\81кий песо",\r
         }\r
         DZD{\r
             "DZD",\r
@@ -500,7 +500,7 @@ ru{
         }\r
         KMF{\r
             "KMF",\r
-            "франк Коморских островов",\r
+            "коморский франк",\r
         }\r
         KPW{\r
             "KPW",\r
@@ -516,7 +516,7 @@ ru{
         }\r
         KYD{\r
             "KYD",\r
-            "доллаÑ\80 Ð\9aаймановÑ\8bÑ\85 Ð¾Ñ\81Ñ\82Ñ\80овов",\r
+            "доллаÑ\80 Ð\9eÑ\81Ñ\82Ñ\80овов Ð\9aайман",\r
         }\r
         KZT{\r
             "KZT",\r
@@ -644,7 +644,7 @@ ru{
         }\r
         MXN{\r
             "MX$",\r
-            "мекÑ\81иканÑ\81кое песо",\r
+            "мекÑ\81иканÑ\81кий песо",\r
         }\r
         MXP{\r
             "MXP",\r
@@ -728,7 +728,7 @@ ru{
         }\r
         PHP{\r
             "PHP",\r
-            "Ñ\84илиппинÑ\81кое песо",\r
+            "Ñ\84илиппинÑ\81кий песо",\r
         }\r
         PKR{\r
             "PKR",\r
@@ -788,7 +788,7 @@ ru{
         }\r
         SBD{\r
             "SBD",\r
-            "доллаÑ\80 Ð¡Ð¾Ð»Ð¾Ð¼Ð¾Ð½Ð¾Ð²Ñ\8bÑ\85 Ð¾стровов",\r
+            "доллаÑ\80 Ð¡Ð¾Ð»Ð¾Ð¼Ð¾Ð½Ð¾Ð²Ñ\8bÑ\85 Ð\9eстровов",\r
         }\r
         SCR{\r
             "SCR",\r
@@ -960,7 +960,7 @@ ru{
         }\r
         UYU{\r
             "UYU",\r
-            "Ñ\83Ñ\80Ñ\83гвайÑ\81кое песо",\r
+            "Ñ\83Ñ\80Ñ\83гвайÑ\81кий песо",\r
         }\r
         UZS{\r
             "UZS",\r
@@ -972,6 +972,10 @@ ru{
         }\r
         VEF{\r
             "VEF",\r
+            "венесуэльский боливар (2008–2018)",\r
+        }\r
+        VES{\r
+            "VES",\r
             "венесуэльский боливар",\r
         }\r
         VND{\r
@@ -1274,7 +1278,7 @@ ru{
         ARS{\r
             few{"аргентинских песо"}\r
             many{"аргентинских песо"}\r
-            one{"аÑ\80генÑ\82инÑ\81кое песо"}\r
+            one{"аÑ\80генÑ\82инÑ\81кий песо"}\r
             other{"аргентинского песо"}\r
         }\r
         AUD{\r
@@ -1412,7 +1416,7 @@ ru{
         CLP{\r
             few{"чилийских песо"}\r
             many{"чилийских песо"}\r
-            one{"Ñ\87илийÑ\81кое песо"}\r
+            one{"Ñ\87илийÑ\81кий песо"}\r
             other{"чилийского песо"}\r
         }\r
         CNH{\r
@@ -1430,7 +1434,7 @@ ru{
         COP{\r
             few{"колумбийских песо"}\r
             many{"колумбийских песо"}\r
-            one{"колÑ\83мбийÑ\81кое песо"}\r
+            one{"колÑ\83мбийÑ\81кий песо"}\r
             other{"колумбийского песо"}\r
         }\r
         CRC{\r
@@ -1442,13 +1446,13 @@ ru{
         CUC{\r
             few{"кубинских конвертируемых песо"}\r
             many{"кубинских конвертируемых песо"}\r
-            one{"кÑ\83бинÑ\81кое ÐºÐ¾Ð½Ð²ÐµÑ\80Ñ\82иÑ\80Ñ\83емое песо"}\r
+            one{"кÑ\83бинÑ\81кий ÐºÐ¾Ð½Ð²ÐµÑ\80Ñ\82иÑ\80Ñ\83емÑ\8bй песо"}\r
             other{"кубинского конвертируемого песо"}\r
         }\r
         CUP{\r
             few{"кубинских песо"}\r
             many{"кубинских песо"}\r
-            one{"кÑ\83бинÑ\81кое песо"}\r
+            one{"кÑ\83бинÑ\81кий песо"}\r
             other{"кубинского песо"}\r
         }\r
         CVE{\r
@@ -1478,7 +1482,7 @@ ru{
         DOP{\r
             few{"доминиканских песо"}\r
             many{"доминиканских песо"}\r
-            one{"доминиканÑ\81кое песо"}\r
+            one{"доминиканÑ\81кий песо"}\r
             other{"доминиканского песо"}\r
         }\r
         DZD{\r
@@ -1674,10 +1678,10 @@ ru{
             other{"камбоджийского риеля"}\r
         }\r
         KMF{\r
-            few{"франка Коморских островов"}\r
-            many{"франков Коморских островов"}\r
-            one{"франк Коморских островов"}\r
-            other{"франка Коморских островов"}\r
+            few{"коморских франка"}\r
+            many{"коморских франков"}\r
+            one{"коморский франк"}\r
+            other{"коморского франка"}\r
         }\r
         KPW{\r
             few{"северокорейские воны"}\r
@@ -1698,10 +1702,10 @@ ru{
             other{"кувейтского динара"}\r
         }\r
         KYD{\r
-            few{"доллаÑ\80а Ð\9aаймановÑ\8bÑ\85 Ð¾Ñ\81Ñ\82Ñ\80овов"}\r
-            many{"доллаÑ\80ов Ð\9aаймановÑ\8bÑ\85 Ð¾Ñ\81Ñ\82Ñ\80овов"}\r
-            one{"доллаÑ\80 Ð\9aаймановÑ\8bÑ\85 Ð¾Ñ\81Ñ\82Ñ\80овов"}\r
-            other{"доллаÑ\80а Ð\9aаймановÑ\8bÑ\85 Ð¾Ñ\81Ñ\82Ñ\80овов"}\r
+            few{"доллаÑ\80а Ð\9eÑ\81Ñ\82Ñ\80овов Ð\9aайман"}\r
+            many{"доллаÑ\80ов Ð\9eÑ\81Ñ\82Ñ\80овов Ð\9aайман"}\r
+            one{"доллаÑ\80 Ð\9eÑ\81Ñ\82Ñ\80овов Ð\9aайман"}\r
+            other{"доллаÑ\80а Ð\9eÑ\81Ñ\82Ñ\80овов Ð\9aайман"}\r
         }\r
         KZT{\r
             few{"казахских тенге"}\r
@@ -1826,7 +1830,7 @@ ru{
         MXN{\r
             few{"мексиканских песо"}\r
             many{"мексиканских песо"}\r
-            one{"мекÑ\81иканÑ\81кое песо"}\r
+            one{"мекÑ\81иканÑ\81кий песо"}\r
             other{"мексиканского песо"}\r
         }\r
         MYR{\r
@@ -1910,7 +1914,7 @@ ru{
         PHP{\r
             few{"филиппинских песо"}\r
             many{"филиппинских песо"}\r
-            one{"Ñ\84илиппинÑ\81кое песо"}\r
+            one{"Ñ\84илиппинÑ\81кий песо"}\r
             other{"филиппинского песо"}\r
         }\r
         PKR{\r
@@ -1968,10 +1972,10 @@ ru{
             other{"саудовского рияла"}\r
         }\r
         SBD{\r
-            few{"доллаÑ\80а Ð¡Ð¾Ð»Ð¾Ð¼Ð¾Ð½Ð¾Ð²Ñ\8bÑ\85 Ð¾стровов"}\r
-            many{"доллаÑ\80ов Ð¡Ð¾Ð»Ð¾Ð¼Ð¾Ð½Ð¾Ð²Ñ\8bÑ\85 Ð¾стровов"}\r
-            one{"доллаÑ\80 Ð¡Ð¾Ð»Ð¾Ð¼Ð¾Ð½Ð¾Ð²Ñ\8bÑ\85 Ð¾стровов"}\r
-            other{"доллаÑ\80а Ð¡Ð¾Ð»Ð¾Ð¼Ð¾Ð½Ð¾Ð²Ñ\8bÑ\85 Ð¾стровов"}\r
+            few{"доллаÑ\80а Ð¡Ð¾Ð»Ð¾Ð¼Ð¾Ð½Ð¾Ð²Ñ\8bÑ\85 Ð\9eстровов"}\r
+            many{"доллаÑ\80ов Ð¡Ð¾Ð»Ð¾Ð¼Ð¾Ð½Ð¾Ð²Ñ\8bÑ\85 Ð\9eстровов"}\r
+            one{"доллаÑ\80 Ð¡Ð¾Ð»Ð¾Ð¼Ð¾Ð½Ð¾Ð²Ñ\8bÑ\85 Ð\9eстровов"}\r
+            other{"доллаÑ\80а Ð¡Ð¾Ð»Ð¾Ð¼Ð¾Ð½Ð¾Ð²Ñ\8bÑ\85 Ð\9eстровов"}\r
         }\r
         SCR{\r
             few{"сейшельские рупии"}\r
@@ -2132,7 +2136,7 @@ ru{
         UYU{\r
             few{"уругвайских песо"}\r
             many{"уругвайских песо"}\r
-            one{"Ñ\83Ñ\80Ñ\83гвайÑ\81кое песо"}\r
+            one{"Ñ\83Ñ\80Ñ\83гвайÑ\81кий песо"}\r
             other{"уругвайского песо"}\r
         }\r
         UZS{\r
@@ -2142,6 +2146,12 @@ ru{
             other{"узбекского сума"}\r
         }\r
         VEF{\r
+            few{"венесуэльских боливара (2008–2018)"}\r
+            many{"венесуэльских боливаров (2008–2018)"}\r
+            one{"венесуэльский боливар (2008–2018)"}\r
+            other{"венесуэльского боливара (2008–2018)"}\r
+        }\r
+        VES{\r
             few{"венесуэльских боливара"}\r
             many{"венесуэльских боливаров"}\r
             one{"венесуэльский боливар"}\r
@@ -2226,5 +2236,5 @@ ru{
         one{"{0} {1}"}\r
         other{"{0} {1}"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.45.15"}\r
 }\r
index 813c60f..282269d 100644 (file)
@@ -10,5 +10,5 @@ rw{
     CurrencyUnitPatterns{\r
         other{"{0} {1}"}\r
     }\r
-    Version{"2.1.38.72"}\r
+    Version{"2.1.44.88"}\r
 }\r
index 41870a8..c20455a 100644 (file)
@@ -25,5 +25,5 @@ sah{
     CurrencyUnitPatterns{\r
         other{"{0} {1}"}\r
     }\r
-    Version{"2.1.38.69"}\r
+    Version{"2.1.43.94"}\r
 }\r
diff --git a/source/data/curr/sd.txt b/source/data/curr/sd.txt
new file mode 100644 (file)
index 0000000..13ff38e
--- /dev/null
@@ -0,0 +1,1388 @@
+// © 2016 and later: Unicode, Inc. and others.\r
+// License & terms of use: http://www.unicode.org/copyright.html#License\r
+sd{\r
+    Currencies{\r
+        AED{\r
+            "AED",\r
+            "گڏيل عرب امارات درهم",\r
+        }\r
+        AFN{\r
+            "AFN",\r
+            "افغاني افغاني",\r
+        }\r
+        ALL{\r
+            "ALL",\r
+            "الباني ليڪ",\r
+        }\r
+        AMD{\r
+            "AMD",\r
+            "ارماني ڊرم",\r
+        }\r
+        ANG{\r
+            "ANG",\r
+            "نيڌرلينڊ انٽليئن گلڊر",\r
+        }\r
+        AOA{\r
+            "AOA",\r
+            "انگوليائي ڪوانزا",\r
+        }\r
+        ARS{\r
+            "ARS",\r
+            "ارجنٽائن پيسو",\r
+        }\r
+        AUD{\r
+            "A$",\r
+            "آسٽريلوي ڊالر",\r
+        }\r
+        AWG{\r
+            "AWG",\r
+            "اروبن فلورن",\r
+        }\r
+        AZN{\r
+            "AZN",\r
+            "آذربائيجاني منت",\r
+        }\r
+        BAM{\r
+            "BAM",\r
+            "بوسنيا هرزگوينا ڪنورٽبل مارڪ",\r
+        }\r
+        BBD{\r
+            "BBD",\r
+            "باربيڊين ڊالر",\r
+        }\r
+        BDT{\r
+            "BDT",\r
+            "بنگلاديشي ٽڪا",\r
+        }\r
+        BGN{\r
+            "BGN",\r
+            "بلغارین لیو",\r
+        }\r
+        BHD{\r
+            "BHD",\r
+            "بحريني دينار",\r
+        }\r
+        BIF{\r
+            "BIF",\r
+            "برونڊي فرينڪ",\r
+        }\r
+        BMD{\r
+            "BMD",\r
+            "برمودي ڊالر",\r
+        }\r
+        BND{\r
+            "BND",\r
+            "برونائي ڊالر",\r
+        }\r
+        BOB{\r
+            "BOB",\r
+            "بولیوین بولیویانو",\r
+        }\r
+        BRL{\r
+            "R$",\r
+            "برازيلي ريل",\r
+        }\r
+        BSD{\r
+            "BSD",\r
+            "بهاماني ڊادلر",\r
+        }\r
+        BTN{\r
+            "BTN",\r
+            "ڀوٽاني گلٽرم",\r
+        }\r
+        BWP{\r
+            "BWP",\r
+            "بوستواني پولا",\r
+        }\r
+        BYN{\r
+            "BYN",\r
+            "بیلاروسی ربل",\r
+        }\r
+        BYR{\r
+            "BYR",\r
+            "BYR",\r
+        }\r
+        BZD{\r
+            "BZD",\r
+            "بيليز ڊالر",\r
+        }\r
+        CAD{\r
+            "CA$",\r
+            "ڪئينڊيائي ڊالر",\r
+        }\r
+        CDF{\r
+            "CDF",\r
+            "ڪانگو فرينڪ",\r
+        }\r
+        CHF{\r
+            "CHF",\r
+            "سوئس فرينڪ",\r
+        }\r
+        CLP{\r
+            "CLP",\r
+            "چلي پيسو",\r
+        }\r
+        CNH{\r
+            "CNH",\r
+            "چيني يوآن (غير ملڪي)",\r
+        }\r
+        CNY{\r
+            "CN¥",\r
+            "چيني يوآن",\r
+        }\r
+        COP{\r
+            "COP",\r
+            "ڪولمبيائي پيسو",\r
+        }\r
+        CRC{\r
+            "CRC",\r
+            "ڪوسٽا ريڪا ڪولن",\r
+        }\r
+        CUC{\r
+            "CUC",\r
+            "ڪيوبن ڪنورٽيبل پيسو",\r
+        }\r
+        CUP{\r
+            "CUP",\r
+            "ڪيوبن پيسو",\r
+        }\r
+        CVE{\r
+            "CVE",\r
+            "ڪيپ وردي ايسڪوڊو",\r
+        }\r
+        CZK{\r
+            "CZK",\r
+            "چيڪ ڪرونا",\r
+        }\r
+        DJF{\r
+            "DJF",\r
+            "جبوتي فرينڪ",\r
+        }\r
+        DKK{\r
+            "DKK",\r
+            "دانش ڪرون",\r
+        }\r
+        DOP{\r
+            "DOP",\r
+            "ڊومينيڪن پيسو",\r
+        }\r
+        DZD{\r
+            "DZD",\r
+            "الجيريائي دينار",\r
+        }\r
+        EGP{\r
+            "EGP",\r
+            "مصري پائونڊ",\r
+        }\r
+        ERN{\r
+            "ERN",\r
+            "ايريٽيريائي ناڪفا",\r
+        }\r
+        ETB{\r
+            "ETB",\r
+            "ايٿوپيائي بر",\r
+        }\r
+        EUR{\r
+            "€",\r
+            "يورو",\r
+        }\r
+        FJD{\r
+            "FJD",\r
+            "فجي ڊالر",\r
+        }\r
+        FKP{\r
+            "FKP",\r
+            "فاڪلينڊ ٻيٽ پائونڊ",\r
+        }\r
+        GBP{\r
+            "£",\r
+            "برطانوي پائونڊ",\r
+        }\r
+        GEL{\r
+            "GEL",\r
+            "جارجيائي لاري",\r
+        }\r
+        GHS{\r
+            "GHS",\r
+            "گهانين سيدي",\r
+        }\r
+        GIP{\r
+            "GIP",\r
+            "جبرالٽر پائونڊ",\r
+        }\r
+        GMD{\r
+            "GMD",\r
+            "گيمبيا دلاسائي",\r
+        }\r
+        GNF{\r
+            "GNF",\r
+            "گني فرينڪ",\r
+        }\r
+        GTQ{\r
+            "GTQ",\r
+            "گوئٽي مالا ڪٽزل",\r
+        }\r
+        GYD{\r
+            "GYD",\r
+            "گيانا ڊالر",\r
+        }\r
+        HKD{\r
+            "HK$",\r
+            "هانگ ڪانگ ڊالر",\r
+        }\r
+        HNL{\r
+            "HNL",\r
+            "هونڊوراس ليمپرا",\r
+        }\r
+        HRK{\r
+            "HRK",\r
+            "ڪروشيائي ڪونا",\r
+        }\r
+        HTG{\r
+            "HTG",\r
+            "هيٽي گورڊي",\r
+        }\r
+        HUF{\r
+            "HUF",\r
+            "هنگيرين فورنٽ",\r
+        }\r
+        IDR{\r
+            "IDR",\r
+            "انڊونيشيائي رپيه",\r
+        }\r
+        ILS{\r
+            "₪",\r
+            "اسرائيلي نيو شيڪل",\r
+        }\r
+        INR{\r
+            "₹",\r
+            "انڊين رپي",\r
+        }\r
+        IQD{\r
+            "IQD",\r
+            "عراقي دينار",\r
+        }\r
+        IRR{\r
+            "IRR",\r
+            "ايراني ريال",\r
+        }\r
+        ISK{\r
+            "ISK",\r
+            "آئيس لينڊي ڪرونا",\r
+        }\r
+        JMD{\r
+            "JMD",\r
+            "جميڪائي ڊالر",\r
+        }\r
+        JOD{\r
+            "JOD",\r
+            "اردني دينار",\r
+        }\r
+        JPY{\r
+            "JP¥",\r
+            "جاپاني يين",\r
+        }\r
+        KES{\r
+            "KES",\r
+            "ڪينيائي سلنگ",\r
+        }\r
+        KGS{\r
+            "KGS",\r
+            "ڪرغزستاني سوم",\r
+        }\r
+        KHR{\r
+            "KHR",\r
+            "ڪمبوڊيائي ريال",\r
+        }\r
+        KMF{\r
+            "KMF",\r
+            "ڪوموريائي فرينڪ",\r
+        }\r
+        KPW{\r
+            "KPW",\r
+            "اتر ڪوريائي ون",\r
+        }\r
+        KRW{\r
+            "₩",\r
+            "ڏکڻ ڪوريائي ون",\r
+        }\r
+        KWD{\r
+            "KWD",\r
+            "ڪويتي دينار",\r
+        }\r
+        KYD{\r
+            "KYD",\r
+            "ڪيمين ٻيٽ ڊالر",\r
+        }\r
+        KZT{\r
+            "KZT",\r
+            "قازقستان ٽينگا",\r
+        }\r
+        LAK{\r
+            "LAK",\r
+            "لائوشيائي ڪپ",\r
+        }\r
+        LBP{\r
+            "LBP",\r
+            "لبناني پائونڊ",\r
+        }\r
+        LKR{\r
+            "LKR",\r
+            "سري لنڪن رپي",\r
+        }\r
+        LRD{\r
+            "LRD",\r
+            "لائبیریائی ڊالر",\r
+        }\r
+        LYD{\r
+            "LYD",\r
+            "لبيائي دينار",\r
+        }\r
+        MAD{\r
+            "MAD",\r
+            "موروڪيائي درهم",\r
+        }\r
+        MDL{\r
+            "MDL",\r
+            "مالديپ ليو",\r
+        }\r
+        MGA{\r
+            "MGA",\r
+            "ملاگاسي اریاری",\r
+        }\r
+        MKD{\r
+            "MKD",\r
+            "ميسي ڊوني دينار",\r
+        }\r
+        MMK{\r
+            "MMK",\r
+            "ميانمار ڪياٽ",\r
+        }\r
+        MNT{\r
+            "MNT",\r
+            "منگولي تجرڪ",\r
+        }\r
+        MOP{\r
+            "MOP",\r
+            "ميڪانيز پٽاڪا",\r
+        }\r
+        MRO{\r
+            "MRO",\r
+            "موريشيائي اوگوئیا (1973–2017)",\r
+        }\r
+        MRU{\r
+            "MRU",\r
+            "موريشيائي اوگوئیا",\r
+        }\r
+        MUR{\r
+            "MUR",\r
+            "ماريشيائي رپي",\r
+        }\r
+        MVR{\r
+            "MVR",\r
+            "مالديپ روفيا",\r
+        }\r
+        MWK{\r
+            "MWK",\r
+            "ملاوي ڪواچا",\r
+        }\r
+        MXN{\r
+            "MX$",\r
+            "ميڪسيڪو پيسو",\r
+        }\r
+        MYR{\r
+            "MYR",\r
+            "ملائيشيائي رنگٽ",\r
+        }\r
+        MZN{\r
+            "MZN",\r
+            "موزمبيق ميٽيڪل",\r
+        }\r
+        NAD{\r
+            "NAD",\r
+            "نميبائي ڊالر",\r
+        }\r
+        NGN{\r
+            "NGN",\r
+            "نائجريائي نائرا",\r
+        }\r
+        NIO{\r
+            "NIO",\r
+            "نڪارا گوا ڪارڊوبا",\r
+        }\r
+        NOK{\r
+            "NOK",\r
+            "نارويائي ڪرون",\r
+        }\r
+        NPR{\r
+            "NPR",\r
+            "نيپالي رپي",\r
+        }\r
+        NZD{\r
+            "NZ$",\r
+            "نيوزي لينڊي ڊالر",\r
+        }\r
+        OMR{\r
+            "OMR",\r
+            "عماني ريال",\r
+        }\r
+        PAB{\r
+            "PAB",\r
+            "پاناما پالبوا",\r
+        }\r
+        PEN{\r
+            "PEN",\r
+            "پيرو سول",\r
+        }\r
+        PGK{\r
+            "PGK",\r
+            "پاپوا نيو گني ڪنا",\r
+        }\r
+        PHP{\r
+            "PHP",\r
+            "فلپائني پيسو",\r
+        }\r
+        PKR{\r
+            "Rs",\r
+            "پاڪستاني رپي",\r
+        }\r
+        PLN{\r
+            "PLN",\r
+            "پولش زلاٽي",\r
+        }\r
+        PYG{\r
+            "PYG",\r
+            "پيراگوئي گاراني",\r
+        }\r
+        QAR{\r
+            "QAR",\r
+            "قطري ريال",\r
+        }\r
+        RON{\r
+            "RON",\r
+            "رومانیائي لیو",\r
+        }\r
+        RSD{\r
+            "RSD",\r
+            "سربيا دينار",\r
+        }\r
+        RUB{\r
+            "RUB",\r
+            "روسي ربل",\r
+        }\r
+        RWF{\r
+            "RWF",\r
+            "روانڊا فرينڪ",\r
+        }\r
+        SAR{\r
+            "SAR",\r
+            "سعودي ريال",\r
+        }\r
+        SBD{\r
+            "SBD",\r
+            "سولومان ٻيٽ ڊالر",\r
+        }\r
+        SCR{\r
+            "SCR",\r
+            "سشلي رپي",\r
+        }\r
+        SDG{\r
+            "SDG",\r
+            "سوڊاني پائونڊ",\r
+        }\r
+        SEK{\r
+            "SEK",\r
+            "سويڊني ڪرونا",\r
+        }\r
+        SGD{\r
+            "SGD",\r
+            "سنگاپوري ڊالر",\r
+        }\r
+        SHP{\r
+            "SHP",\r
+            "سينٽ هيلنا پائونڊ",\r
+        }\r
+        SLL{\r
+            "SLL",\r
+            "سیرا لیونيائي لیون",\r
+        }\r
+        SOS{\r
+            "SOS",\r
+            "سومالي شلنگ",\r
+        }\r
+        SRD{\r
+            "SRD",\r
+            "سرينامي ڊالر",\r
+        }\r
+        SSP{\r
+            "SSP",\r
+            "ڏکڻ سوڊاني پائونڊ",\r
+        }\r
+        STD{\r
+            "STD",\r
+            "سائو ٽوم ۽ پرنسپي دوبرا (1977–2017)",\r
+        }\r
+        STN{\r
+            "STN",\r
+            "سائو ٽوم ۽ پرنسپي دوبرا",\r
+        }\r
+        SYP{\r
+            "SYP",\r
+            "سيريائي پائونڊ",\r
+        }\r
+        SZL{\r
+            "SZL",\r
+            "سوازي للانگيني",\r
+        }\r
+        THB{\r
+            "THB",\r
+            "ٿائي باهت",\r
+        }\r
+        TJS{\r
+            "TJS",\r
+            "تاجڪستاني سوموني",\r
+        }\r
+        TMT{\r
+            "TMT",\r
+            "ترڪمانستان منت",\r
+        }\r
+        TND{\r
+            "TND",\r
+            "تیونس دینار",\r
+        }\r
+        TOP{\r
+            "TOP",\r
+            "تونگن پانگا",\r
+        }\r
+        TRY{\r
+            "TRY",\r
+            "ترڪي لرا",\r
+        }\r
+        TTD{\r
+            "TTD",\r
+            "ٽرينڊيڊ ۽ ٽوباگو ڊالر",\r
+        }\r
+        TWD{\r
+            "NT$",\r
+            "نيو تائيوان ڊالر",\r
+        }\r
+        TZS{\r
+            "TZS",\r
+            "تنزانيائي شلنگ",\r
+        }\r
+        UAH{\r
+            "UAH",\r
+            "یوڪرائن هریونیا",\r
+        }\r
+        UGX{\r
+            "UGX",\r
+            "يگانڊا شلنگ",\r
+        }\r
+        USD{\r
+            "US$",\r
+            "آمريڪي ڊالر",\r
+        }\r
+        UYU{\r
+            "UYU",\r
+            "يوروگوئي پيسو",\r
+        }\r
+        UZS{\r
+            "UZS",\r
+            "ازبڪستاني سوم",\r
+        }\r
+        VEF{\r
+            "VEF",\r
+            "Venezuelan Bolívar (2008–2018)",\r
+        }\r
+        VES{\r
+            "VES",\r
+            "وینزویلا بولیور",\r
+        }\r
+        VND{\r
+            "₫",\r
+            "ويٽنامي ڊونگ",\r
+        }\r
+        VUV{\r
+            "VUV",\r
+            "وانواتو واتو",\r
+        }\r
+        WST{\r
+            "WST",\r
+            "ساموآن ٽالا",\r
+        }\r
+        XAF{\r
+            "FCFA",\r
+            "وچ آفريڪا فرينڪ",\r
+        }\r
+        XCD{\r
+            "EC$",\r
+            "اوڀر ڪيريبين ڊالر",\r
+        }\r
+        XOF{\r
+            "CFA",\r
+            "اولهه آفريڪا فرينڪ",\r
+        }\r
+        XPF{\r
+            "CFPF",\r
+            "CFP فرينڪ",\r
+        }\r
+        XXX{\r
+            "¤",\r
+            "اڻڄاتل سڪو",\r
+        }\r
+        YER{\r
+            "YER",\r
+            "يمني ريال",\r
+        }\r
+        ZAR{\r
+            "ZAR",\r
+            "ڏکڻ آفريقي رانڊ",\r
+        }\r
+        ZMW{\r
+            "ZMW",\r
+            "زمبائي ڪواچا",\r
+        }\r
+    }\r
+    Currencies%narrow{\r
+        AOA{"Kz"}\r
+        ARS{"$"}\r
+        AUD{"$"}\r
+        BAM{"KM"}\r
+        BBD{"$"}\r
+        BDT{"৳"}\r
+        BMD{"$"}\r
+        BND{"$"}\r
+        BOB{"Bs"}\r
+        BRL{"R$"}\r
+        BSD{"$"}\r
+        BWP{"P"}\r
+        BYN{"р."}\r
+        BZD{"$"}\r
+        CAD{"$"}\r
+        CLP{"$"}\r
+        CNY{"¥"}\r
+        COP{"$"}\r
+        CRC{"₡"}\r
+        CUC{"$"}\r
+        CUP{"$"}\r
+        CZK{"Kč"}\r
+        DKK{"kr"}\r
+        DOP{"$"}\r
+        EGP{"E£"}\r
+        EUR{"€"}\r
+        FJD{"$"}\r
+        FKP{"£"}\r
+        GBP{"£"}\r
+        GEL{"₾"}\r
+        GIP{"£"}\r
+        GNF{"FG"}\r
+        GTQ{"Q"}\r
+        GYD{"$"}\r
+        HKD{"$"}\r
+        HNL{"L"}\r
+        HRK{"kn"}\r
+        HUF{"Ft"}\r
+        IDR{"Rp"}\r
+        ILS{"₪"}\r
+        INR{"₹"}\r
+        ISK{"kr"}\r
+        JMD{"$"}\r
+        JPY{"¥"}\r
+        KHR{"៛"}\r
+        KMF{"CF"}\r
+        KPW{"₩"}\r
+        KRW{"₩"}\r
+        KYD{"$"}\r
+        KZT{"₸"}\r
+        LAK{"₭"}\r
+        LBP{"L£"}\r
+        LKR{"Rs"}\r
+        LRD{"$"}\r
+        MGA{"Ar"}\r
+        MMK{"K"}\r
+        MNT{"₮"}\r
+        MUR{"Rs"}\r
+        MXN{"$"}\r
+        MYR{"RM"}\r
+        NAD{"$"}\r
+        NGN{"₦"}\r
+        NIO{"C$"}\r
+        NOK{"kr"}\r
+        NPR{"Rs"}\r
+        NZD{"$"}\r
+        PHP{"₱"}\r
+        PKR{"Rs"}\r
+        PLN{"zł"}\r
+        PYG{"₲"}\r
+        RON{"lei"}\r
+        RUB{"₽"}\r
+        RWF{"RF"}\r
+        SBD{"$"}\r
+        SEK{"kr"}\r
+        SGD{"$"}\r
+        SHP{"£"}\r
+        SRD{"$"}\r
+        SSP{"£"}\r
+        STN{"Db"}\r
+        SYP{"£"}\r
+        THB{"฿"}\r
+        TOP{"T$"}\r
+        TRY{"₺"}\r
+        TTD{"$"}\r
+        TWD{"$"}\r
+        UAH{"₴"}\r
+        USD{"$"}\r
+        UYU{"$"}\r
+        VEF{"Bs"}\r
+        VND{"₫"}\r
+        XCD{"$"}\r
+        ZAR{"R"}\r
+        ZMW{"ZK"}\r
+    }\r
+    Currencies%variant{\r
+        TRY{"TL"}\r
+    }\r
+    CurrencyPlurals{\r
+        AED{\r
+            one{"گڏيل عرب امارات درهم"}\r
+            other{"گڏيل عرب امارات درهم"}\r
+        }\r
+        AFN{\r
+            one{"افغاني افغاني"}\r
+            other{"افغاني افغاني"}\r
+        }\r
+        ALL{\r
+            one{"الباني ليڪ"}\r
+            other{"الباني ليڪ"}\r
+        }\r
+        AMD{\r
+            one{"ارماني ڊرم"}\r
+            other{"ارماني ڊرم"}\r
+        }\r
+        ANG{\r
+            one{"نيڌرلينڊ انٽليئن گلڊر"}\r
+            other{"نيڌرلينڊ انٽليئن گلڊر"}\r
+        }\r
+        AOA{\r
+            one{"انگوليائي ڪوانزا"}\r
+            other{"انگوليائي ڪوانزا"}\r
+        }\r
+        ARS{\r
+            one{"ارجنٽائن پيسو"}\r
+            other{"ارجنٽائن پيسو"}\r
+        }\r
+        AUD{\r
+            one{"آسٽريلوي ڊالر"}\r
+            other{"آسٽريلوي ڊالر"}\r
+        }\r
+        AWG{\r
+            one{"اروبن فلورن"}\r
+            other{"اروبن فلورن"}\r
+        }\r
+        AZN{\r
+            one{"آذربائيجاني منت"}\r
+            other{"آذربائيجاني منت"}\r
+        }\r
+        BAM{\r
+            one{"بوسنيا هرزگوينا ڪنورٽبل مارڪ"}\r
+            other{"بوسنيا هرزگوينا ڪنورٽبل مارڪ"}\r
+        }\r
+        BBD{\r
+            one{"باربيڊين ڊالر"}\r
+            other{"باربيڊين ڊالر"}\r
+        }\r
+        BDT{\r
+            one{"بنگلاديشي ٽڪا"}\r
+            other{"بنگلاديشي ٽڪا"}\r
+        }\r
+        BGN{\r
+            one{"بلغارین لیو"}\r
+            other{"بلغارین لیو"}\r
+        }\r
+        BHD{\r
+            one{"بحريني دينار"}\r
+            other{"بحريني دينار"}\r
+        }\r
+        BIF{\r
+            one{"برونڊي فرينڪ"}\r
+            other{"برونڊي فرينڪ"}\r
+        }\r
+        BMD{\r
+            one{"برمودي ڊالر"}\r
+            other{"برمودي ڊالر"}\r
+        }\r
+        BND{\r
+            one{"برونائي ڊالر"}\r
+            other{"برونائي ڊالر"}\r
+        }\r
+        BOB{\r
+            one{"بولیوین بولیویانو"}\r
+            other{"بولیوین بولیویانو"}\r
+        }\r
+        BRL{\r
+            one{"برازيلي ريل"}\r
+            other{"برازيلي ريل"}\r
+        }\r
+        BSD{\r
+            one{"بهاماني ڊادلر"}\r
+            other{"بهاماني ڊادلر"}\r
+        }\r
+        BTN{\r
+            one{"ڀوٽاني گلٽرم"}\r
+            other{"ڀوٽاني گلٽرم"}\r
+        }\r
+        BWP{\r
+            one{"بوستواني پولا"}\r
+            other{"بوستواني پولا"}\r
+        }\r
+        BYN{\r
+            one{"بیلاروسی ربل"}\r
+            other{"بیلاروسی ربل"}\r
+        }\r
+        BYR{\r
+            one{"BYR"}\r
+            other{"BYR"}\r
+        }\r
+        BZD{\r
+            one{"بيليز ڊالر"}\r
+            other{"بيليز ڊالر"}\r
+        }\r
+        CAD{\r
+            one{"ڪئينڊيائي ڊالر"}\r
+            other{"ڪئينڊيائي ڊالر"}\r
+        }\r
+        CDF{\r
+            one{"ڪانگو فرينڪ"}\r
+            other{"ڪانگو فرينڪ"}\r
+        }\r
+        CHF{\r
+            one{"سوئس فرينڪ"}\r
+            other{"سوئس فرينڪ"}\r
+        }\r
+        CLP{\r
+            one{"چلي پيسو"}\r
+            other{"چلي پيسو"}\r
+        }\r
+        CNH{\r
+            one{"چيني يوآن (غير ملڪي)"}\r
+            other{"چيني يوآن (غير ملڪي)"}\r
+        }\r
+        CNY{\r
+            one{"چيني يوآن"}\r
+            other{"چيني يوآن"}\r
+        }\r
+        COP{\r
+            one{"ڪولمبيائي پيسو"}\r
+            other{"ڪولمبيائي پيسو"}\r
+        }\r
+        CRC{\r
+            one{"ڪوسٽا ريڪا ڪولن"}\r
+            other{"ڪوسٽا ريڪا ڪولن"}\r
+        }\r
+        CUC{\r
+            one{"ڪيوبن ڪنورٽيبل پيسو"}\r
+            other{"ڪيوبن ڪنورٽيبل پيسو"}\r
+        }\r
+        CUP{\r
+            one{"ڪيوبن پيسو"}\r
+            other{"ڪيوبن پيسو"}\r
+        }\r
+        CVE{\r
+            one{"ڪيپ وردي ايسڪوڊو"}\r
+            other{"ڪيپ وردي ايسڪوڊو"}\r
+        }\r
+        CZK{\r
+            one{"چيڪ ڪرونا"}\r
+            other{"چيڪ ڪرونا"}\r
+        }\r
+        DJF{\r
+            one{"جبوتي فرينڪ"}\r
+            other{"جبوتي فرينڪ"}\r
+        }\r
+        DKK{\r
+            one{"دانش ڪرون"}\r
+            other{"دانش ڪرون"}\r
+        }\r
+        DOP{\r
+            one{"ڊومينيڪن پيسو"}\r
+            other{"ڊومينيڪن پيسو"}\r
+        }\r
+        DZD{\r
+            one{"الجيريائي دينار"}\r
+            other{"الجيريائي دينار"}\r
+        }\r
+        EGP{\r
+            one{"مصري پائونڊ"}\r
+            other{"مصري پائونڊ"}\r
+        }\r
+        ERN{\r
+            one{"ايريٽيريائي ناڪفا"}\r
+            other{"ايريٽيريائي ناڪفا"}\r
+        }\r
+        ETB{\r
+            one{"ايٿوپيائي بر"}\r
+            other{"ايٿوپيائي بر"}\r
+        }\r
+        EUR{\r
+            one{"يورو"}\r
+            other{"يورو"}\r
+        }\r
+        FJD{\r
+            one{"فجي ڊالر"}\r
+            other{"فجي ڊالر"}\r
+        }\r
+        FKP{\r
+            one{"فاڪلينڊ ٻيٽ پائونڊ"}\r
+            other{"فاڪلينڊ ٻيٽ پائونڊ"}\r
+        }\r
+        GBP{\r
+            one{"برطانوي پائونڊ"}\r
+            other{"برطانوي پائونڊ"}\r
+        }\r
+        GEL{\r
+            one{"جارجيائي لاري"}\r
+            other{"جارجيائي لاري"}\r
+        }\r
+        GHS{\r
+            one{"گهانين سيدي"}\r
+            other{"گهانين سيدي"}\r
+        }\r
+        GIP{\r
+            one{"جبرالٽر پائونڊ"}\r
+            other{"جبرالٽر پائونڊ"}\r
+        }\r
+        GMD{\r
+            one{"گيمبيا دلاسائي"}\r
+            other{"گيمبيا دلاسائي"}\r
+        }\r
+        GNF{\r
+            one{"گني فرينڪ"}\r
+            other{"گني فرينڪ"}\r
+        }\r
+        GTQ{\r
+            one{"گوئٽي مالا ڪٽزل"}\r
+            other{"گوئٽي مالا ڪٽزل"}\r
+        }\r
+        GYD{\r
+            one{"گيانا ڊالر"}\r
+            other{"گيانا ڊالر"}\r
+        }\r
+        HKD{\r
+            one{"هانگ ڪانگ ڊالر"}\r
+            other{"هانگ ڪانگ ڊالر"}\r
+        }\r
+        HNL{\r
+            one{"هونڊوراس ليمپرا"}\r
+            other{"هونڊوراس ليمپرا"}\r
+        }\r
+        HRK{\r
+            one{"ڪروشيائي ڪونا"}\r
+            other{"ڪروشيائي ڪونا"}\r
+        }\r
+        HTG{\r
+            one{"هيٽي گورڊي"}\r
+            other{"هيٽي گورڊي"}\r
+        }\r
+        HUF{\r
+            one{"هنگيرين فورنٽ"}\r
+            other{"هنگيرين فورنٽ"}\r
+        }\r
+        IDR{\r
+            one{"انڊونيشيائي رپيه"}\r
+            other{"انڊونيشيائي رپيه"}\r
+        }\r
+        ILS{\r
+            one{"اسرائيلي نيو شيڪل"}\r
+            other{"اسرائيلي نيو شيڪل"}\r
+        }\r
+        INR{\r
+            one{"انڊين رپي"}\r
+            other{"انڊين رپي"}\r
+        }\r
+        IQD{\r
+            one{"عراقي دينار"}\r
+            other{"عراقي دينار"}\r
+        }\r
+        IRR{\r
+            one{"ايراني ريال"}\r
+            other{"ايراني ريال"}\r
+        }\r
+        ISK{\r
+            one{"آئيس لينڊي ڪرونا"}\r
+            other{"آئيس لينڊي ڪرونا"}\r
+        }\r
+        JMD{\r
+            one{"جميڪائي ڊالر"}\r
+            other{"جميڪائي ڊالر"}\r
+        }\r
+        JOD{\r
+            one{"اردني دينار"}\r
+            other{"اردني دينار"}\r
+        }\r
+        JPY{\r
+            one{"جاپاني يين"}\r
+            other{"جاپاني يين"}\r
+        }\r
+        KES{\r
+            one{"ڪينيائي سلنگ"}\r
+            other{"ڪينيائي سلنگ"}\r
+        }\r
+        KGS{\r
+            one{"ڪرغزستاني سوم"}\r
+            other{"ڪرغزستاني سوم"}\r
+        }\r
+        KHR{\r
+            one{"ڪمبوڊيائي ريال"}\r
+            other{"ڪمبوڊيائي ريال"}\r
+        }\r
+        KMF{\r
+            one{"ڪوموريائي فرينڪ"}\r
+            other{"ڪوموريائي فرينڪ"}\r
+        }\r
+        KPW{\r
+            one{"اتر ڪوريائي ون"}\r
+            other{"اتر ڪوريائي ون"}\r
+        }\r
+        KRW{\r
+            one{"ڏکڻ ڪوريائي ون"}\r
+            other{"ڏکڻ ڪوريائي ون"}\r
+        }\r
+        KWD{\r
+            one{"ڪويتي دينار"}\r
+            other{"ڪويتي دينار"}\r
+        }\r
+        KYD{\r
+            one{"ڪيمين ٻيٽ ڊالر"}\r
+            other{"ڪيمين ٻيٽ ڊالر"}\r
+        }\r
+        KZT{\r
+            one{"قازقستان ٽينگا"}\r
+            other{"قازقستان ٽينگا"}\r
+        }\r
+        LAK{\r
+            one{"لائوشيائي ڪپ"}\r
+            other{"لائوشيائي ڪپ"}\r
+        }\r
+        LBP{\r
+            one{"لبناني پائونڊ"}\r
+            other{"لبناني پائونڊ"}\r
+        }\r
+        LKR{\r
+            one{"سري لنڪن رپي"}\r
+            other{"سري لنڪن رپي"}\r
+        }\r
+        LRD{\r
+            one{"لائبیریائی ڊالر"}\r
+            other{"لائبیریائی ڊالر"}\r
+        }\r
+        LYD{\r
+            one{"لبيائي دينار"}\r
+            other{"لبيائي دينار"}\r
+        }\r
+        MAD{\r
+            one{"موروڪيائي درهم"}\r
+            other{"موروڪيائي درهم"}\r
+        }\r
+        MDL{\r
+            one{"مالديپ ليو"}\r
+            other{"مالديپ ليو"}\r
+        }\r
+        MGA{\r
+            one{"ملاگاسي اریاری"}\r
+            other{"ملاگاسي اریاری"}\r
+        }\r
+        MKD{\r
+            one{"ميسي ڊوني دينار"}\r
+            other{"ميسي ڊوني دينار"}\r
+        }\r
+        MMK{\r
+            one{"ميانمار ڪياٽ"}\r
+            other{"ميانمار ڪياٽ"}\r
+        }\r
+        MNT{\r
+            one{"منگولي تجرڪ"}\r
+            other{"منگولي تجرڪ"}\r
+        }\r
+        MOP{\r
+            one{"ميڪانيز پٽاڪا"}\r
+            other{"ميڪانيز پٽاڪا"}\r
+        }\r
+        MRO{\r
+            one{"موريشيائي اوگوئیا (1973–2017)"}\r
+            other{"موريشيائي اوگوئیا (1973–2017)"}\r
+        }\r
+        MRU{\r
+            one{"موريشيائي اوگوئیا"}\r
+            other{"موريشيائي اوگوئیا"}\r
+        }\r
+        MUR{\r
+            one{"ماريشين روپي"}\r
+            other{"ماريشيائي رپي"}\r
+        }\r
+        MVR{\r
+            one{"مالديپ روفيا"}\r
+            other{"مالديپ روفيا"}\r
+        }\r
+        MWK{\r
+            one{"ملاوي ڪواچا"}\r
+            other{"ملاوي ڪواچا"}\r
+        }\r
+        MXN{\r
+            one{"ميڪسيڪو پيسو"}\r
+            other{"ميڪسيڪو پيسو"}\r
+        }\r
+        MYR{\r
+            one{"ملائيشيائي رنگٽ"}\r
+            other{"ملائيشيائي رنگٽ"}\r
+        }\r
+        MZN{\r
+            one{"موزمبيق ميٽيڪل"}\r
+            other{"موزمبيق ميٽيڪل"}\r
+        }\r
+        NAD{\r
+            one{"نميبائي ڊالر"}\r
+            other{"نميبائي ڊالر"}\r
+        }\r
+        NGN{\r
+            one{"نائجريائي نائرا"}\r
+            other{"نائجريائي نائرا"}\r
+        }\r
+        NIO{\r
+            one{"نڪارا گوا ڪارڊوبا"}\r
+            other{"نڪارا گوا ڪارڊوبا"}\r
+        }\r
+        NOK{\r
+            one{"نارويائي ڪرون"}\r
+            other{"نارويائي ڪرون"}\r
+        }\r
+        NPR{\r
+            one{"نيپالي رپي"}\r
+            other{"نيپالي رپي"}\r
+        }\r
+        NZD{\r
+            one{"نيوزي لينڊي ڊالر"}\r
+            other{"نيوزي لينڊي ڊالر"}\r
+        }\r
+        OMR{\r
+            one{"عماني ريال"}\r
+            other{"عماني ريال"}\r
+        }\r
+        PAB{\r
+            one{"پاناما پالبوا"}\r
+            other{"پاناما پالبوا"}\r
+        }\r
+        PEN{\r
+            one{"پيرو سول"}\r
+            other{"پيرو سول"}\r
+        }\r
+        PGK{\r
+            one{"پاپوا نيو گني ڪنا"}\r
+            other{"پاپوا نيو گني ڪنا"}\r
+        }\r
+        PHP{\r
+            one{"فلپائني پيسو"}\r
+            other{"فلپائني پيسو"}\r
+        }\r
+        PKR{\r
+            one{"پاڪستاني رپي"}\r
+            other{"پاڪستاني رپي"}\r
+        }\r
+        PLN{\r
+            one{"پولش زلاٽي"}\r
+            other{"پولش زلاٽي"}\r
+        }\r
+        PYG{\r
+            one{"پيراگوئي گاراني"}\r
+            other{"پيراگوئي گاراني"}\r
+        }\r
+        QAR{\r
+            one{"قطري ريال"}\r
+            other{"قطري ريال"}\r
+        }\r
+        RON{\r
+            one{"رومانیائي لیو"}\r
+            other{"رومانیائي لیو"}\r
+        }\r
+        RSD{\r
+            one{"سربيا دينار"}\r
+            other{"سربيا دينار"}\r
+        }\r
+        RUB{\r
+            one{"روسي ربل"}\r
+            other{"روسي ربل"}\r
+        }\r
+        RWF{\r
+            one{"روانڊا فرينڪ"}\r
+            other{"روانڊا فرينڪ"}\r
+        }\r
+        SAR{\r
+            one{"سعودي ريال"}\r
+            other{"سعودي ريال"}\r
+        }\r
+        SBD{\r
+            one{"سولومان ٻيٽ ڊالر"}\r
+            other{"سولومان ٻيٽ ڊالر"}\r
+        }\r
+        SCR{\r
+            one{"سشلي رپي"}\r
+            other{"سشلي رپي"}\r
+        }\r
+        SDG{\r
+            one{"سوڊاني پائونڊ"}\r
+            other{"سوڊاني پائونڊ"}\r
+        }\r
+        SEK{\r
+            one{"سويڊني ڪرونا"}\r
+            other{"سويڊني ڪرونا"}\r
+        }\r
+        SGD{\r
+            one{"سنگاپوري ڊالر"}\r
+            other{"سنگاپوري ڊالر"}\r
+        }\r
+        SHP{\r
+            one{"سينٽ هيلنا پائونڊ"}\r
+            other{"سينٽ هيلنا پائونڊ"}\r
+        }\r
+        SLL{\r
+            one{"سیرا لیونيائي لیون"}\r
+            other{"سیرا لیونيائي لیون"}\r
+        }\r
+        SOS{\r
+            one{"سومالي شلنگ"}\r
+            other{"سومالي شلنگ"}\r
+        }\r
+        SRD{\r
+            one{"سرينامي ڊالر"}\r
+            other{"سرينامي ڊالر"}\r
+        }\r
+        SSP{\r
+            one{"ڏکڻ سوڊاني پائونڊ"}\r
+            other{"ڏکڻ سوڊاني پائونڊ"}\r
+        }\r
+        STD{\r
+            one{"سائو ٽوم ۽ پرنسپي دوبرا (1977–2017)"}\r
+            other{"سائو ٽوم ۽ پرنسپي دوبرا (1977–2017)"}\r
+        }\r
+        STN{\r
+            one{"سائو ٽوم ۽ پرنسپي دوبرا"}\r
+            other{"سائو ٽوم ۽ پرنسپي دوبرا"}\r
+        }\r
+        SYP{\r
+            one{"سيريائي پائونڊ"}\r
+            other{"سيريائي پائونڊ"}\r
+        }\r
+        SZL{\r
+            one{"سوازي للانگيني"}\r
+            other{"سوازي للانگيني"}\r
+        }\r
+        THB{\r
+            one{"ٿائي باهت"}\r
+            other{"ٿائي باهت"}\r
+        }\r
+        TJS{\r
+            one{"تاجڪستاني سوموني"}\r
+            other{"تاجڪستاني سوموني"}\r
+        }\r
+        TMT{\r
+            one{"ترڪمانستان منت"}\r
+            other{"ترڪمانستان منت"}\r
+        }\r
+        TND{\r
+            one{"تیونس دینار"}\r
+            other{"تیونس دینار"}\r
+        }\r
+        TOP{\r
+            one{"تونگن پانگا"}\r
+            other{"تونگن پانگا"}\r
+        }\r
+        TRY{\r
+            one{"ترڪي لرا"}\r
+            other{"ترڪي لرا"}\r
+        }\r
+        TTD{\r
+            one{"ٽرينڊيڊ ۽ ٽوباگو ڊالر"}\r
+            other{"ٽرينڊيڊ ۽ ٽوباگو ڊالر"}\r
+        }\r
+        TWD{\r
+            one{"نيو تائيوان ڊالر"}\r
+            other{"نيو تائيوان ڊالر"}\r
+        }\r
+        TZS{\r
+            one{"تنزانيائي شلنگ"}\r
+            other{"تنزانيائي شلنگ"}\r
+        }\r
+        UAH{\r
+            one{"یوڪرائن هریونیا"}\r
+            other{"یوڪرائن هریونیا"}\r
+        }\r
+        UGX{\r
+            one{"يگانڊا شلنگ"}\r
+            other{"يگانڊا شلنگ"}\r
+        }\r
+        USD{\r
+            one{"آمريڪي ڊالر"}\r
+            other{"آمريڪي ڊالر"}\r
+        }\r
+        UYU{\r
+            one{"يوروگوئي پيسو"}\r
+            other{"يوروگوئي پيسو"}\r
+        }\r
+        UZS{\r
+            one{"ازبڪستاني سوم"}\r
+            other{"ازبڪستاني سوم"}\r
+        }\r
+        VEF{\r
+            one{"وینزویلا بولیور (2008–2018)"}\r
+            other{"وینزویلا بولیور (2008–2018)"}\r
+        }\r
+        VES{\r
+            one{"وینزویلا بولیور"}\r
+            other{"وینزویلا بولیور"}\r
+        }\r
+        VND{\r
+            one{"ويٽنامي ڊونگ"}\r
+            other{"ويٽنامي ڊونگ"}\r
+        }\r
+        VUV{\r
+            one{"وانواتو واتو"}\r
+            other{"وانواتو واتو"}\r
+        }\r
+        WST{\r
+            one{"ساموآن ٽالا"}\r
+            other{"ساموآن ٽالا"}\r
+        }\r
+        XAF{\r
+            one{"وچ آفريڪا فرينڪ"}\r
+            other{"وچ آفريڪا فرينڪ"}\r
+        }\r
+        XCD{\r
+            one{"اوڀر ڪيريبين ڊالر"}\r
+            other{"اوڀر ڪيريبين ڊالر"}\r
+        }\r
+        XOF{\r
+            one{"اولهه آفريڪا فرينڪ"}\r
+            other{"اولهه آفريڪا فرينڪ"}\r
+        }\r
+        XPF{\r
+            one{"CFP فرينڪ"}\r
+            other{"CFP فرينڪ"}\r
+        }\r
+        XXX{\r
+            one{"اڻڄاتل سڪو"}\r
+            other{"اڻڄاتل سڪو"}\r
+        }\r
+        YER{\r
+            one{"يمني ريال"}\r
+            other{"يمني ريال"}\r
+        }\r
+        ZAR{\r
+            one{"ڏکڻ آفريقي رانڊ"}\r
+            other{"ڏکڻ آفريقي رانڊ"}\r
+        }\r
+        ZMW{\r
+            one{"زمبائي ڪواچا"}\r
+            other{"زمبائي ڪواچا"}\r
+        }\r
+    }\r
+    Version{"2.1.43.94"}\r
+}\r
index c35733e..eae7470 100644 (file)
@@ -73,5 +73,5 @@ se{
         other{"{0} {1}"}\r
         two{"{0} {1}"}\r
     }\r
-    Version{"2.1.38.69"}\r
+    Version{"2.1.43.94"}\r
 }\r
index 143ff91..27f3a09 100644 (file)
@@ -600,6 +600,10 @@ si{
         }\r
         VEF{\r
             "VEF",\r
+            "වෙනිසියුලානු බොලිවර් (2008–2018)",\r
+        }\r
+        VES{\r
+            "VES",\r
             "වෙනිසියුලානු බොලිවර්",\r
         }\r
         VND{\r
@@ -631,7 +635,7 @@ si{
             "ප්‍රංශ පොලිනීසියානු ෆ්‍රෑන්ක්",\r
         }\r
         XXX{\r
-            "XXX",\r
+            "¤",\r
             "නොදත් මුදල්",\r
         }\r
         YER{\r
@@ -1345,6 +1349,10 @@ si{
             other{"උස්බෙකිස්ථාන සම්"}\r
         }\r
         VEF{\r
+            one{"වෙනිසියුලානු බොලිවර් (2008–2018)"}\r
+            other{"වෙනිසියුලානු බොලිවර් (2008–2018)"}\r
+        }\r
+        VES{\r
             one{"වෙනිසියුලානු බොලිවර්"}\r
             other{"වෙනිසියුලානු බොලිවර්"}\r
         }\r
@@ -1397,5 +1405,5 @@ si{
         one{"{1}{0}"}\r
         other{"{1}{0}"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.50"}\r
 }\r
index 595740a..4d6f3d7 100644 (file)
@@ -1044,6 +1044,10 @@ sk{
         }\r
         VEF{\r
             "VEF",\r
+            "venezuelský bolívar (2008–2018)",\r
+        }\r
+        VES{\r
+            "VES",\r
             "venezuelský bolívar",\r
         }\r
         VND{\r
@@ -2874,6 +2878,12 @@ sk{
             other{"venezuelských bolívarov (1871 – 2008)"}\r
         }\r
         VEF{\r
+            few{"venezuelské bolívary (2008–2018)"}\r
+            many{"venezuelského bolívaru (2008–2018)"}\r
+            one{"venezuelský bolívar (2008–2018)"}\r
+            other{"venezuelských bolívarov (2008–2018)"}\r
+        }\r
+        VES{\r
             few{"venezuelské bolívary"}\r
             many{"venezuelského bolívaru"}\r
             one{"venezuelský bolívar"}\r
@@ -3126,5 +3136,5 @@ sk{
         one{"{0} {1}"}\r
         other{"{0} {1}"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.65"}\r
 }\r
index 8a36a19..8f5a44f 100644 (file)
@@ -968,6 +968,10 @@ sl{
         }\r
         VEF{\r
             "VEF",\r
+            "venezuelski bolivar (2008–2018)",\r
+        }\r
+        VES{\r
+            "VES",\r
             "venezuelski bolivar",\r
         }\r
         VND{\r
@@ -1051,7 +1055,7 @@ sl{
             "koda za potrebe testiranja",\r
         }\r
         XXX{\r
-            "XXX",\r
+            "¤",\r
             "neznana valuta",\r
         }\r
         YDD{\r
@@ -2109,6 +2113,12 @@ sl{
             two{"uzbeška suma"}\r
         }\r
         VEF{\r
+            few{"venezuelski bolivarji (2008–2018)"}\r
+            one{"venezuelski bolivar (2008–2018)"}\r
+            other{"venezuelskih bolivarjev (2008–2018)"}\r
+            two{"venezuelska bolivarja (2008–2018)"}\r
+        }\r
+        VES{\r
             few{"venezuelski bolivarji"}\r
             one{"venezuelski bolivar"}\r
             other{"venezuelskih bolivarjev"}\r
@@ -2187,5 +2197,5 @@ sl{
         other{"{0} {1}"}\r
         two{"{0} {1}"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.91"}\r
 }\r
index f3bb8be..ff117a1 100644 (file)
@@ -239,5 +239,5 @@ sn{
         one{"{0} {1}"}\r
         other{"{0} {1}"}\r
     }\r
-    Version{"2.1.39.11"}\r
+    Version{"2.1.43.94"}\r
 }\r
index 9400703..19966ba 100644 (file)
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 so{\r
     Currencies{\r
+        AED{\r
+            "AED",\r
+            "Dirhamka Isutaga Imaaraatka Carabta",\r
+        }\r
+        AFN{\r
+            "AFN",\r
+            "Afgan Afgan",\r
+        }\r
+        ALL{\r
+            "ALL",\r
+            "Lek Albaniya",\r
+        }\r
+        AMD{\r
+            "AMD",\r
+            "Daraamka Armeniya",\r
+        }\r
+        ANG{\r
+            "ANG",\r
+            "Galdar Nadarland Antilean",\r
+        }\r
+        AOA{\r
+            "AOA",\r
+            "Kawansada Angola",\r
+        }\r
+        ARS{\r
+            "ARS",\r
+            "Beeso Arjentina",\r
+        }\r
+        AUD{\r
+            "A$",\r
+            "Doolarka Awstaraaliya",\r
+        }\r
+        AWG{\r
+            "AWG",\r
+            "Foloorin Aruban",\r
+        }\r
+        AZN{\r
+            "AZN",\r
+            "Manaatada Asarbeyjan",\r
+        }\r
+        BAM{\r
+            "BAM",\r
+            "Konfatibal Maak Bosnia-Hersogofina",\r
+        }\r
+        BBD{\r
+            "DBB",\r
+            "Doolarka Barbaadiyaanka",\r
+        }\r
+        BDT{\r
+            "BDT",\r
+            "Taka Bangledesh",\r
+        }\r
+        BGN{\r
+            "BGN",\r
+            "Lef Bulgariya",\r
+        }\r
+        BHD{\r
+            "BHD",\r
+            "Dinaarka Baxreyn",\r
+        }\r
+        BIF{\r
+            "BIF",\r
+            "Farank Burundi",\r
+        }\r
+        BMD{\r
+            "BMD",\r
+            "Doolarka Barmuuda",\r
+        }\r
+        BND{\r
+            "BND",\r
+            "Doollarka Burunel",\r
+        }\r
+        BOB{\r
+            "BOB",\r
+            "Bolifiano Bolifiya",\r
+        }\r
+        BRL{\r
+            "R$",\r
+            "Real Barasil",\r
+        }\r
+        BSD{\r
+            "DBS",\r
+            "Doolarka Bahamaas",\r
+        }\r
+        BTN{\r
+            "BTN",\r
+            "Ngultaram Butan",\r
+        }\r
+        BWP{\r
+            "BWP",\r
+            "Buulada Botswana",\r
+        }\r
+        BYN{\r
+            "BYN",\r
+            "Rubalka Belarus",\r
+        }\r
+        BZD{\r
+            "BZD",\r
+            "Doolarka Beelisa",\r
+        }\r
+        CAD{\r
+            "CA$",\r
+            "Doolarka Kanada",\r
+        }\r
+        CDF{\r
+            "CDF",\r
+            "Farank Kongo",\r
+        }\r
+        CHF{\r
+            "CHF",\r
+            "Farank Iswis",\r
+        }\r
+        CLP{\r
+            "CLP",\r
+            "Beeso Jili",\r
+        }\r
+        CNH{\r
+            "CNH",\r
+            "Yuanta Shiinaha (Offshore)",\r
+        }\r
+        CNY{\r
+            "CN¥",\r
+            "Yuanta Shiinaha",\r
+        }\r
+        COP{\r
+            "COP",\r
+            "Beeso Kolombiya",\r
+        }\r
+        CRC{\r
+            "KKR",\r
+            "Kolon Kosta Rika",\r
+        }\r
+        CUC{\r
+            "CUC",\r
+            "Beeso Kuuba Konfatibal",\r
+        }\r
+        CUP{\r
+            "CUP",\r
+            "Beeso Kuuba",\r
+        }\r
+        CVE{\r
+            "CVE",\r
+            "Eskudo Keyb Farde",\r
+        }\r
+        CZK{\r
+            "CZK",\r
+            "Korunada Jeek",\r
+        }\r
         DJF{\r
             "DJF",\r
             "Faran Jabbuuti",\r
         }\r
+        DKK{\r
+            "DKK",\r
+            "Koranka Danishka",\r
+        }\r
+        DOP{\r
+            "DOP",\r
+            "Beeso Dominika",\r
+        }\r
+        DZD{\r
+            "DZD",\r
+            "Dinaarka Aljeriya",\r
+        }\r
+        EGP{\r
+            "EGP",\r
+            "Bowndka Masar",\r
+        }\r
+        ERN{\r
+            "ERN",\r
+            "Nafkada Eritriya",\r
+        }\r
         ETB{\r
             "ETB",\r
             "Birta Itoobbiya",\r
@@ -14,26 +182,1187 @@ so{
             "€",\r
             "Yuuroo",\r
         }\r
+        FJD{\r
+            "FJD",\r
+            "Doolarka Fiji",\r
+        }\r
+        FKP{\r
+            "FKP",\r
+            "Bowndka Faalkland Island",\r
+        }\r
+        GBP{\r
+            "£",\r
+            "Bowndka Biritishka",\r
+        }\r
+        GEL{\r
+            "GEL",\r
+            "Laariga Joorjiya",\r
+        }\r
+        GHS{\r
+            "GHS",\r
+            "Sedi Gana",\r
+        }\r
+        GIP{\r
+            "GIP",\r
+            "Bowndka Gibraltar",\r
+        }\r
+        GMD{\r
+            "GMD",\r
+            "Dalasi Gambiya",\r
+        }\r
+        GNF{\r
+            "GNF",\r
+            "Faranka Gini",\r
+        }\r
+        GTQ{\r
+            "GTQ",\r
+            "Quetsal Guatemala",\r
+        }\r
+        GYD{\r
+            "GYD",\r
+            "Doolarka Guyanes",\r
+        }\r
+        HKD{\r
+            "HK$",\r
+            "Doollarka Hong Kong",\r
+        }\r
+        HNL{\r
+            "LHN",\r
+            "Lembira Hondura",\r
+        }\r
+        HRK{\r
+            "HRK",\r
+            "Kuna Korooshiya",\r
+        }\r
+        HTG{\r
+            "HTG",\r
+            "Goorde Haiti",\r
+        }\r
+        HUF{\r
+            "HUF",\r
+            "Forintiska Hangari",\r
+        }\r
+        IDR{\r
+            "IDR",\r
+            "Rubiah Indonesiya",\r
+        }\r
+        ILS{\r
+            "₪",\r
+            "Niyuu Shekelka Israaiil",\r
+        }\r
+        INR{\r
+            "₹",\r
+            "Rubiga Hindiya",\r
+        }\r
+        IQD{\r
+            "IQD",\r
+            "Dinaarka Ciraaq",\r
+        }\r
+        IRR{\r
+            "IRR",\r
+            "Riyaalka Iran",\r
+        }\r
+        ISK{\r
+            "ISK",\r
+            "Korona Eysland",\r
+        }\r
+        JMD{\r
+            "JMD",\r
+            "Doolarka Jamaaika",\r
+        }\r
+        JOD{\r
+            "JOD",\r
+            "Dinaarka Joordan",\r
+        }\r
+        JPY{\r
+            "JP¥",\r
+            "Yenta Jaban",\r
+        }\r
+        KES{\r
+            "KES",\r
+            "Shilingka Kenya",\r
+        }\r
+        KGS{\r
+            "KGS",\r
+            "Soom Kiyrgiystan",\r
+        }\r
+        KHR{\r
+            "KHR",\r
+            "Riyf Cambodiya",\r
+        }\r
+        KMF{\r
+            "KMF",\r
+            "Farank Komora",\r
+        }\r
+        KPW{\r
+            "KPW",\r
+            "Wonka Waqooyi Kuuriya",\r
+        }\r
+        KRW{\r
+            "₩",\r
+            "Wonka Koonfur Kuuriya",\r
+        }\r
+        KWD{\r
+            "KWD",\r
+            "Dinaarka Kuweyt",\r
+        }\r
+        KYD{\r
+            "KYD",\r
+            "Doolarka jasiiradaha Kayman",\r
+        }\r
+        KZT{\r
+            "KZT",\r
+            "Tenge Kasakhstan",\r
+        }\r
+        LAK{\r
+            "LAK",\r
+            "Kib Laoti",\r
+        }\r
+        LBP{\r
+            "LBP",\r
+            "Bowndka Lebanon",\r
+        }\r
+        LKR{\r
+            "LKR",\r
+            "Rubiga Siri lanka",\r
+        }\r
+        LRD{\r
+            "LRD",\r
+            "Doollarka Liberiya",\r
+        }\r
+        LYD{\r
+            "LYD",\r
+            "Dinaarka Libya",\r
+        }\r
+        MAD{\r
+            "MAD",\r
+            "Dirhamka Moroko",\r
+        }\r
+        MDL{\r
+            "MDL",\r
+            "Leeyuu Moldofa",\r
+        }\r
+        MGA{\r
+            "MGA",\r
+            "Ariari Malagasy",\r
+        }\r
+        MKD{\r
+            "MKD",\r
+            "Denaarka Masedoniya",\r
+        }\r
+        MMK{\r
+            "MMK",\r
+            "Kayat Mayanmaar",\r
+        }\r
+        MNT{\r
+            "MNT",\r
+            "Tugrik Mongoliya",\r
+        }\r
+        MOP{\r
+            "MOP",\r
+            "Bataka Makana",\r
+        }\r
+        MRO{\r
+            "MRO",\r
+            "Oogiya Mawritaniya (1973–2017)",\r
+        }\r
+        MRU{\r
+            "MRU",\r
+            "MRU",\r
+        }\r
+        MUR{\r
+            "MUR",\r
+            "Rubiga Mowrishiya",\r
+        }\r
+        MVR{\r
+            "MVR",\r
+            "Rufiya Maldifiya",\r
+        }\r
+        MWK{\r
+            "MWK",\r
+            "Kawajada Malawi",\r
+        }\r
+        MXN{\r
+            "MX$",\r
+            "Beeso Meksikaan",\r
+        }\r
+        MYR{\r
+            "MYR",\r
+            "Ringit Malayshiya",\r
+        }\r
+        MZN{\r
+            "MZN",\r
+            "Metikalka Mosambik",\r
+        }\r
+        NAD{\r
+            "NAD",\r
+            "Doollarka Namibiya",\r
+        }\r
+        NGN{\r
+            "NGN",\r
+            "Nairada Neyjeeriya",\r
+        }\r
+        NIO{\r
+            "NIO",\r
+            "Nikaragua Kordoba",\r
+        }\r
+        NOK{\r
+            "NOK",\r
+            "Koronka Norway",\r
+        }\r
+        NPR{\r
+            "NPR",\r
+            "Rubiga Nebal",\r
+        }\r
+        NZD{\r
+            "NZ$",\r
+            "Doolarka Niyuu Siyalaan",\r
+        }\r
+        OMR{\r
+            "OMR",\r
+            "Riyaalka Comaan",\r
+        }\r
+        PAB{\r
+            "PAB",\r
+            "Balboa Panama",\r
+        }\r
+        PEN{\r
+            "PEN",\r
+            "Sol Beeru",\r
+        }\r
+        PGK{\r
+            "PGK",\r
+            "Kinada Babua Niyuu Gini",\r
+        }\r
+        PHP{\r
+            "PHP",\r
+            "Biso Filibin",\r
+        }\r
+        PKR{\r
+            "PKR",\r
+            "Rubiga Bakistan",\r
+        }\r
+        PLN{\r
+            "PLN",\r
+            "Solotida Boland",\r
+        }\r
+        PYG{\r
+            "PYG",\r
+            "Guarani Baraguay",\r
+        }\r
+        QAR{\r
+            "QAR",\r
+            "Riyaalka Qatar",\r
+        }\r
+        RON{\r
+            "RON",\r
+            "Liyuu ROmaniya",\r
+        }\r
+        RSD{\r
+            "RSD",\r
+            "Dinaarka Serbiya",\r
+        }\r
+        RUB{\r
+            "RUB",\r
+            "Rubalka Ruush",\r
+        }\r
+        RWF{\r
+            "RWF",\r
+            "Farank Ruwanda",\r
+        }\r
         SAR{\r
             "SAR",\r
             "Riyaalka Sacuudiga",\r
         }\r
+        SBD{\r
+            "SBD",\r
+            "Doolarka Jasiiradaha Solomon",\r
+        }\r
+        SCR{\r
+            "SCR",\r
+            "Rubiga Siisalis",\r
+        }\r
+        SDG{\r
+            "SDG",\r
+            "Bowndka Suudaan",\r
+        }\r
+        SEK{\r
+            "SEK",\r
+            "Koronka Isweden",\r
+        }\r
+        SGD{\r
+            "SGD",\r
+            "Doollarka Singabuur",\r
+        }\r
+        SHP{\r
+            "SHP",\r
+            "Bowndka St Helen",\r
+        }\r
+        SLL{\r
+            "SLL",\r
+            "Leonka Sira Leon",\r
+        }\r
         SOS{\r
             "S",\r
-            "Shilin soomaali",\r
+            "Shilingka Soomaaliya",\r
+        }\r
+        SRD{\r
+            "SRD",\r
+            "Doolarka Surinamees",\r
+        }\r
+        SSP{\r
+            "SSP",\r
+            "Boownka Koonfurta Suudaan",\r
+        }\r
+        STN{\r
+            "STN",\r
+            "Dobra Sao Tome & Birinsibal",\r
+        }\r
+        SYP{\r
+            "SYP",\r
+            "Bowndka Suuriya",\r
+        }\r
+        SZL{\r
+            "SZL",\r
+            "Lilangeenida iswasi",\r
+        }\r
+        THB{\r
+            "THB",\r
+            "Baatka Tayland",\r
+        }\r
+        TJS{\r
+            "TJS",\r
+            "Somoon Tajikistan",\r
+        }\r
+        TMT{\r
+            "TMT",\r
+            "Manaat Turkmenistan",\r
+        }\r
+        TND{\r
+            "TND",\r
+            "Dinaarka Tunisiya",\r
+        }\r
+        TOP{\r
+            "TOP",\r
+            "Ba’anga Tonga",\r
+        }\r
+        TRY{\r
+            "TRY",\r
+            "Liirada Turkiga",\r
+        }\r
+        TTD{\r
+            "TTD",\r
+            "Doolarka Tirinad iyo Tobago",\r
+        }\r
+        TWD{\r
+            "NT$",\r
+            "Doollarka Taywaanta Cusubta",\r
         }\r
         TZS{\r
             "TZS",\r
-            "Shilin Tansaani",\r
+            "Shilingka Tansaaniya",\r
+        }\r
+        UAH{\r
+            "UAH",\r
+            "Hirfiniyada Yukreeyn",\r
+        }\r
+        UGX{\r
+            "UGX",\r
+            "Shilingka Uganda",\r
         }\r
         USD{\r
             "US$",\r
-            "Doollar maraykan",\r
+            "USD",\r
+        }\r
+        UYU{\r
+            "UYU",\r
+            "Beeso Uruguay",\r
+        }\r
+        UZS{\r
+            "UZS",\r
+            "Soom Usbekistan",\r
+        }\r
+        VEF{\r
+            "VEF",\r
+            "Bolifar Fenesuala (2008–2018)",\r
+        }\r
+        VES{\r
+            "VES",\r
+            "Bolifar Fenezuela",\r
+        }\r
+        VND{\r
+            "₫",\r
+            "Dong Fitnaam",\r
+        }\r
+        VUV{\r
+            "VUV",\r
+            "Fatu Fanuatu",\r
+        }\r
+        WST{\r
+            "WST",\r
+            "Tala Samao",\r
+        }\r
+        XAF{\r
+            "FCFA",\r
+            "Farank CFA ee Bartamaha Afrika",\r
+        }\r
+        XCD{\r
+            "EC$",\r
+            "Doolaraka Bariga Kaaribyan",\r
+        }\r
+        XOF{\r
+            "CFA",\r
+            "Faranka CFA Galbeedka Afrika",\r
+        }\r
+        XPF{\r
+            "CFPF",\r
+            "Farank CFP",\r
         }\r
         XXX{\r
-            "XXX",\r
+            "¤",\r
             "Lacag aan la qoon ama aan saxnayn",\r
         }\r
+        YER{\r
+            "YER",\r
+            "Riyaalka Yemen",\r
+        }\r
+        ZAR{\r
+            "ZAR",\r
+            "Randka Koonfur Afrika",\r
+        }\r
+        ZMW{\r
+            "ZMW",\r
+            "Kawajada Sambiya",\r
+        }\r
+    }\r
+    Currencies%narrow{\r
+        AOA{"Kz"}\r
+        ARS{"SAR$"}\r
+        AUD{"$"}\r
+        BAM{"KM"}\r
+        BBD{"DBB$"}\r
+        BDT{"৳"}\r
+        BMD{"$"}\r
+        BND{"$"}\r
+        BOB{"Bs"}\r
+        BRL{"R$"}\r
+        BSD{"$"}\r
+        BWP{"P"}\r
+        BYN{"р."}\r
+        BZD{"$"}\r
+        CAD{"$"}\r
+        CLP{"$"}\r
+        CNY{"¥"}\r
+        COP{"$"}\r
+        CRC{"₡"}\r
+        CUC{"$"}\r
+        CUP{"$"}\r
+        CZK{"Kč"}\r
+        DKK{"kr"}\r
+        DOP{"$"}\r
+        EGP{"E£"}\r
+        EUR{"€"}\r
+        FJD{"$"}\r
+        FKP{"£"}\r
+        GBP{"£"}\r
+        GEL{"₾"}\r
+        GIP{"£"}\r
+        GNF{"FG"}\r
+        GTQ{"Q"}\r
+        GYD{"$"}\r
+        HKD{"$"}\r
+        HNL{"L"}\r
+        HRK{"kn"}\r
+        HUF{"Ft"}\r
+        IDR{"Rp"}\r
+        ILS{"₪"}\r
+        INR{"₹"}\r
+        ISK{"kr"}\r
+        JMD{"$"}\r
+        JPY{"¥"}\r
+        KHR{"៛"}\r
+        KMF{"CF"}\r
+        KPW{"₩"}\r
+        KRW{"₩"}\r
+        KYD{"$"}\r
+        KZT{"₸"}\r
+        LAK{"₭"}\r
+        LBP{"L£"}\r
+        LKR{"Rs"}\r
+        LRD{"$"}\r
+        MGA{"Ar"}\r
+        MMK{"K"}\r
+        MNT{"₮"}\r
+        MUR{"Rs"}\r
+        MXN{"$"}\r
+        MYR{"RM"}\r
+        NAD{"$"}\r
+        NGN{"₦"}\r
+        NIO{"C$"}\r
+        NOK{"kr"}\r
+        NPR{"Rs"}\r
+        NZD{"$"}\r
+        PHP{"₱"}\r
+        PKR{"Rs"}\r
+        PLN{"zł"}\r
+        PYG{"₲"}\r
+        RON{"lei"}\r
+        RUB{"₽"}\r
+        RWF{"RF"}\r
+        SBD{"$"}\r
+        SEK{"kr"}\r
+        SGD{"$"}\r
+        SHP{"£"}\r
+        SRD{"$"}\r
+        SSP{"£"}\r
+        STN{"Db"}\r
+        SYP{"£"}\r
+        THB{"฿"}\r
+        TOP{"T$"}\r
+        TRY{"₺"}\r
+        TTD{"$"}\r
+        TWD{"$"}\r
+        UAH{"₴"}\r
+        USD{"$"}\r
+        UYU{"$"}\r
+        VEF{"Bs"}\r
+        VND{"₫"}\r
+        XCD{"$"}\r
+        ZAR{"R"}\r
+        ZMW{"ZK"}\r
+    }\r
+    Currencies%variant{\r
+        TRY{"TL"}\r
+    }\r
+    CurrencyPlurals{\r
+        AED{\r
+            one{"Dirham Isutaga Imaaraatka Carabta"}\r
+            other{"Dirhamka Isutaga Imaaraatka Carabta"}\r
+        }\r
+        AFN{\r
+            one{"Afgan Afgan"}\r
+            other{"Afgan Afgan"}\r
+        }\r
+        ALL{\r
+            one{"Lek Abaniya"}\r
+            other{"ALL"}\r
+        }\r
+        AMD{\r
+            one{"Daraam Armeniya"}\r
+            other{"Daraamka Armeniya"}\r
+        }\r
+        ANG{\r
+            one{"Galdar Nadarland Antilaan"}\r
+            other{"Galdar Nadarland Antilean"}\r
+        }\r
+        AOA{\r
+            one{"Kawansa Angola"}\r
+            other{"Kawansada Angola"}\r
+        }\r
+        ARS{\r
+            one{"Beeso Arjentiina"}\r
+            other{"Beeso Arjentina"}\r
+        }\r
+        AUD{\r
+            one{"Doolarka Awstaraaliya"}\r
+            other{"Doolarada Awstaraaliya"}\r
+        }\r
+        AWG{\r
+            one{"Foloorin Aruban"}\r
+            other{"Foloorin Aruban"}\r
+        }\r
+        AZN{\r
+            one{"Manaata Asarbeyjan"}\r
+            other{"Manaatada Asarbeyjan"}\r
+        }\r
+        BAM{\r
+            one{"Konfatibal Maak Bosni-Harsegofina"}\r
+            other{"Konfatibal Maak Bosnia-Hersogofina"}\r
+        }\r
+        BBD{\r
+            one{"Doolarka Barbaadiyaanka"}\r
+            other{"Doolarada Barbaadiyaanka"}\r
+        }\r
+        BDT{\r
+            one{"Taka Bangledesh"}\r
+            other{"Taka Bangledesh"}\r
+        }\r
+        BGN{\r
+            one{"Lef Bulgariya"}\r
+            other{"BGN"}\r
+        }\r
+        BHD{\r
+            one{"Dinaar Baxreyn"}\r
+            other{"Dinaarka Baxreyn"}\r
+        }\r
+        BIF{\r
+            one{"Farank Burundi"}\r
+            other{"Farank Burundi"}\r
+        }\r
+        BMD{\r
+            one{"Doolaraka Barmuuda"}\r
+            other{"Doolarada Barmuuda"}\r
+        }\r
+        BND{\r
+            one{"Doollar Burunel"}\r
+            other{"Doollarka Burunel"}\r
+        }\r
+        BOB{\r
+            one{"Bolifaano Bolifiya"}\r
+            other{"BOB"}\r
+        }\r
+        BRL{\r
+            one{"Real Barasil"}\r
+            other{"Real Barasil"}\r
+        }\r
+        BSD{\r
+            one{"Doolarka Bahamaas"}\r
+            other{"Doolarada Bahamaas"}\r
+        }\r
+        BTN{\r
+            one{"Ngultaram Butan"}\r
+            other{"Ngultaram Butan"}\r
+        }\r
+        BWP{\r
+            one{"Buulo Botswana"}\r
+            other{"Buulada Botswana"}\r
+        }\r
+        BYN{\r
+            one{"Rubal Belarus"}\r
+            other{"Rubalka Belarus"}\r
+        }\r
+        BZD{\r
+            one{"Doolarka Beelisa"}\r
+            other{"Doolarada Beelisa"}\r
+        }\r
+        CAD{\r
+            one{"Doolarka Kanada"}\r
+            other{"Doolarada Kanada"}\r
+        }\r
+        CDF{\r
+            one{"Farank Kongo"}\r
+            other{"Farank Kongo"}\r
+        }\r
+        CHF{\r
+            one{"Farank Iswis"}\r
+            other{"Farank Iswis"}\r
+        }\r
+        CLP{\r
+            one{"Beeso Jili"}\r
+            other{"Beeso Jili"}\r
+        }\r
+        CNH{\r
+            one{"Yuan Shiinaha (offshore)"}\r
+            other{"Yuanta Shiinaha (Offshore)"}\r
+        }\r
+        CNY{\r
+            one{"Yuanta Shiinaha"}\r
+            other{"CNY"}\r
+        }\r
+        COP{\r
+            one{"Beeso Kolombiya"}\r
+            other{"COP"}\r
+        }\r
+        CRC{\r
+            one{"Kolon Kosta Rika"}\r
+            other{"Kolon Kosta Rika"}\r
+        }\r
+        CUC{\r
+            one{"Beeso Kuuba Konfatibal"}\r
+            other{"Beeso Kuuba Konfatibal"}\r
+        }\r
+        CUP{\r
+            one{"Beeso Kuuba"}\r
+            other{"Beeso Kuuba"}\r
+        }\r
+        CVE{\r
+            one{"Eskudo Keyb Farde"}\r
+            other{"Eskudo Keyb Farde"}\r
+        }\r
+        CZK{\r
+            one{"Koruna Jeek"}\r
+            other{"Korunada Jeek"}\r
+        }\r
+        DJF{\r
+            one{"Farank Jabuuti"}\r
+            other{"Farank Jabuuti"}\r
+        }\r
+        DKK{\r
+            one{"Koran Danish"}\r
+            other{"Koranka Danishka"}\r
+        }\r
+        DOP{\r
+            one{"Beeso Dominika"}\r
+            other{"Beeso Dominika"}\r
+        }\r
+        DZD{\r
+            one{"Dinaar Aljeriya"}\r
+            other{"Dinaarka Aljeriya"}\r
+        }\r
+        EGP{\r
+            one{"Bownd Masar"}\r
+            other{"Bowndka Masar"}\r
+        }\r
+        ERN{\r
+            one{"Nakfa Eritriya"}\r
+            other{"Nafkada Eritriya"}\r
+        }\r
+        EUR{\r
+            one{"Yuuroo"}\r
+            other{"Yuuroo"}\r
+        }\r
+        FJD{\r
+            one{"Doolarka Fiji"}\r
+            other{"Doolarada Fiji"}\r
+        }\r
+        FKP{\r
+            one{"Bowndka Faalkland Island"}\r
+            other{"Bowndka Faalkland Island"}\r
+        }\r
+        GBP{\r
+            one{"Bownd Biritish"}\r
+            other{"Bowndka Biritishka"}\r
+        }\r
+        GEL{\r
+            one{"Laari Joorjiya"}\r
+            other{"Laariga Joorjiya"}\r
+        }\r
+        GHS{\r
+            one{"Sedi Gana"}\r
+            other{"Sedi Gana"}\r
+        }\r
+        GIP{\r
+            one{"Bownd Gibraltar"}\r
+            other{"Bowndka Gibraltar"}\r
+        }\r
+        GMD{\r
+            one{"Dalasi Gambiya"}\r
+            other{"Dalasi Gambiya"}\r
+        }\r
+        GNF{\r
+            one{"Farank Gini"}\r
+            other{"GNF"}\r
+        }\r
+        GTQ{\r
+            one{"Quetsal Guatemala"}\r
+            other{"Quetsal Guatemala"}\r
+        }\r
+        GYD{\r
+            one{"Doolarka Guyanes"}\r
+            other{"GYD"}\r
+        }\r
+        HKD{\r
+            one{"Doollar Hong Kong"}\r
+            other{"Doollarka Hong Kong"}\r
+        }\r
+        HNL{\r
+            one{"Lembira Hondura"}\r
+            other{"Lembira Hondura"}\r
+        }\r
+        HRK{\r
+            one{"Kuna Korooshiya"}\r
+            other{"HRK"}\r
+        }\r
+        HTG{\r
+            one{"Goorde Haiti"}\r
+            other{"Goorde Haiti"}\r
+        }\r
+        HUF{\r
+            one{"Forintis Hangari"}\r
+            other{"Forintiska Hangari"}\r
+        }\r
+        IDR{\r
+            one{"Rubiah Indonesiya"}\r
+            other{"Rubiah Indonesiya"}\r
+        }\r
+        ILS{\r
+            one{"Niyuu Shekel Israaiil"}\r
+            other{"Niyuu Shekelka Israaiil"}\r
+        }\r
+        INR{\r
+            one{"Rubi Hindiya"}\r
+            other{"INR"}\r
+        }\r
+        IQD{\r
+            one{"Dinaar Ciraaq"}\r
+            other{"Dinaarka Ciraaq"}\r
+        }\r
+        IRR{\r
+            one{"Riyaal Iran"}\r
+            other{"Riyaalka Iran"}\r
+        }\r
+        ISK{\r
+            one{"Korona Eysland"}\r
+            other{"Koronada Eysland"}\r
+        }\r
+        JMD{\r
+            one{"Doolarka Jamaaika"}\r
+            other{"Doolarada Jamaaika"}\r
+        }\r
+        JOD{\r
+            one{"Dinaar Joordan"}\r
+            other{"Dinaarka Joordan"}\r
+        }\r
+        JPY{\r
+            one{"Yen Jaban"}\r
+            other{"Yenta Jaban"}\r
+        }\r
+        KES{\r
+            one{"Shiling Kenya"}\r
+            other{"Shilingka Kenya"}\r
+        }\r
+        KGS{\r
+            one{"Soom Kiyriygstan"}\r
+            other{"KGS"}\r
+        }\r
+        KHR{\r
+            one{"Riyf Combodiya"}\r
+            other{"Riyf Cambodiya"}\r
+        }\r
+        KMF{\r
+            one{"Farank Komora"}\r
+            other{"Farank Komora"}\r
+        }\r
+        KPW{\r
+            one{"Won Waqooyi Kuuriya"}\r
+            other{"Wonka Waqooyi Kuuriya"}\r
+        }\r
+        KRW{\r
+            one{"Won Koonfur Kuuriya"}\r
+            other{"Wonka Koonfur Kuuriya"}\r
+        }\r
+        KWD{\r
+            one{"Dinaar Kuweyt"}\r
+            other{"Dinaarka Kuweyt"}\r
+        }\r
+        KYD{\r
+            one{"Doolarka jasiiradaha Kayman"}\r
+            other{"Doolarka Jasiiradaha Kayman"}\r
+        }\r
+        KZT{\r
+            one{"Tenge Kasakhstan"}\r
+            other{"Tenge Kasakhstan"}\r
+        }\r
+        LAK{\r
+            one{"Kib Laoti"}\r
+            other{"LAK"}\r
+        }\r
+        LBP{\r
+            one{"Bownd Lebanon"}\r
+            other{"Bowndka Lebanon"}\r
+        }\r
+        LKR{\r
+            one{"Rubiga Siri Lanka"}\r
+            other{"Rubiga Siri lanka"}\r
+        }\r
+        LRD{\r
+            one{"Doollar Liberiya"}\r
+            other{"Doollarka Liberiya"}\r
+        }\r
+        LYD{\r
+            one{"Dinaar Libya"}\r
+            other{"Dinaarka Libya"}\r
+        }\r
+        MAD{\r
+            one{"Dirham Moroko"}\r
+            other{"Dirhamka Moroko"}\r
+        }\r
+        MDL{\r
+            one{"Leeyuu Moldofa"}\r
+            other{"Leeyuu Moldofa"}\r
+        }\r
+        MGA{\r
+            one{"Ariari Malagasi"}\r
+            other{"Ariari Malagasy"}\r
+        }\r
+        MKD{\r
+            one{"Denaar Masedoniya"}\r
+            other{"MKD"}\r
+        }\r
+        MMK{\r
+            one{"Kayat Mayanmaar"}\r
+            other{"Kayat Mayanmaar"}\r
+        }\r
+        MNT{\r
+            one{"Tugrik Mongoliya"}\r
+            other{"Tugrik Mongoliya"}\r
+        }\r
+        MOP{\r
+            one{"Bataka Makana"}\r
+            other{"Bataka Makana"}\r
+        }\r
+        MRO{\r
+            one{"Oogiya Mawritaniya (1973–2017)"}\r
+            other{"Oogiya Mawritaniya (1973–2017)"}\r
+        }\r
+        MRU{\r
+            one{"Oogiya Mawritaniya"}\r
+            other{"Oogiya Mawritaniya"}\r
+        }\r
+        MUR{\r
+            one{"Rubi Mowrishiya"}\r
+            other{"Rubiga Mowrishiya"}\r
+        }\r
+        MVR{\r
+            one{"Rufiya Maldifiya"}\r
+            other{"Rufiya Maldifiya"}\r
+        }\r
+        MWK{\r
+            one{"Kawaja Malawi"}\r
+            other{"Kawajada Malawi"}\r
+        }\r
+        MXN{\r
+            one{"Beeso Meksikaan"}\r
+            other{"BMX"}\r
+        }\r
+        MYR{\r
+            one{"Ringit Malayshiya"}\r
+            other{"Ringit Malayshiya"}\r
+        }\r
+        MZN{\r
+            one{"Metikal Mosambik"}\r
+            other{"Metikalka Mosambik"}\r
+        }\r
+        NAD{\r
+            one{"Doollar Namibiya"}\r
+            other{"Doollarka Namibiya"}\r
+        }\r
+        NGN{\r
+            one{"Naira Neyjeeriya"}\r
+            other{"Nairada Neyjeeriya"}\r
+        }\r
+        NIO{\r
+            one{"Nakaragua Kordoba"}\r
+            other{"NIkaragua Kordoba"}\r
+        }\r
+        NOK{\r
+            one{"Koronka Norway"}\r
+            other{"Koronka Norway"}\r
+        }\r
+        NPR{\r
+            one{"Rubiga Nebal"}\r
+            other{"Rubiga Nebal"}\r
+        }\r
+        NZD{\r
+            one{"Doolarka Niyuu siyalaan"}\r
+            other{"Doolarada Niyuu Siya laan"}\r
+        }\r
+        OMR{\r
+            one{"Riyaal Comaan"}\r
+            other{"Riyaalka Comaan"}\r
+        }\r
+        PAB{\r
+            one{"Balbao Banaama"}\r
+            other{"Balboa Panama"}\r
+        }\r
+        PEN{\r
+            one{"Sol Beero"}\r
+            other{"PEN"}\r
+        }\r
+        PGK{\r
+            one{"Kina Babua Niyuu Gini"}\r
+            other{"Kinada Babua Niyuu Gini"}\r
+        }\r
+        PHP{\r
+            one{"Biso Filibin"}\r
+            other{"Biso Filibin"}\r
+        }\r
+        PKR{\r
+            one{"Rubi Bakistan"}\r
+            other{"Rubiga Bakistan"}\r
+        }\r
+        PLN{\r
+            one{"Sooti Boland"}\r
+            other{"Solotida Boland"}\r
+        }\r
+        PYG{\r
+            one{"Guarani Baraguay"}\r
+            other{"Guarani Baraguay"}\r
+        }\r
+        QAR{\r
+            one{"Riyaal Qatar"}\r
+            other{"Riyaalka Qatar"}\r
+        }\r
+        RON{\r
+            one{"Liyuu Romaniya"}\r
+            other{"Liyuu ROmaniya"}\r
+        }\r
+        RSD{\r
+            one{"Dinaar Serbiya"}\r
+            other{"RSD"}\r
+        }\r
+        RUB{\r
+            one{"Rubal Ruush"}\r
+            other{"Rubalka Ruush"}\r
+        }\r
+        RWF{\r
+            one{"Farank Ruwanda"}\r
+            other{"Farank Ruwanda"}\r
+        }\r
+        SAR{\r
+            one{"Riyaal Sacuudi"}\r
+            other{"Riyaalka Sacuudiga"}\r
+        }\r
+        SBD{\r
+            one{"Doolarka Jasiiradaha Solomon"}\r
+            other{"Doolarada Jasiiradaha Solomon"}\r
+        }\r
+        SCR{\r
+            one{"Rubi Siisalis"}\r
+            other{"SCR"}\r
+        }\r
+        SDG{\r
+            one{"SDG"}\r
+            other{"SDG"}\r
+        }\r
+        SEK{\r
+            one{"Koronka Isweden"}\r
+            other{"Koronka Isweden"}\r
+        }\r
+        SGD{\r
+            one{"Doollar Singabuur"}\r
+            other{"Doollarka Singabuur"}\r
+        }\r
+        SHP{\r
+            one{"Bownd St Helen"}\r
+            other{"SHP"}\r
+        }\r
+        SLL{\r
+            one{"Leon Sira Leo"}\r
+            other{"Leonka Sira Leon"}\r
+        }\r
+        SRD{\r
+            one{"Doolarka Surinamees"}\r
+            other{"Doolarada Surinamees"}\r
+        }\r
+        SSP{\r
+            one{"Boownka Koonfurta Suudaan"}\r
+            other{"Boownanka Koonfurta Suudaan"}\r
+        }\r
+        STN{\r
+            one{"Dobra Sao Tome Birinsibal"}\r
+            other{"STN"}\r
+        }\r
+        SYP{\r
+            one{"Bownd Suuriya"}\r
+            other{"Bowndka Suuriya"}\r
+        }\r
+        SZL{\r
+            one{"Lilengeeni Iswasi"}\r
+            other{"Lilangeenida iswasi"}\r
+        }\r
+        THB{\r
+            one{"Baat Tayland"}\r
+            other{"Baatka Tayland"}\r
+        }\r
+        TJS{\r
+            one{"Soomon Tajikistan"}\r
+            other{"Somoon Tajikistan"}\r
+        }\r
+        TMT{\r
+            one{"Manat Turkmenistan"}\r
+            other{"Manaat Turkmenistan"}\r
+        }\r
+        TND{\r
+            one{"Dinaarka Tunisiya"}\r
+            other{"Dinaarka Tunisiya"}\r
+        }\r
+        TOP{\r
+            one{"Ba’anga Tonga"}\r
+            other{"Ba’anga Tonga"}\r
+        }\r
+        TRY{\r
+            one{"Liira Turki"}\r
+            other{"Liirada Turkiga"}\r
+        }\r
+        TTD{\r
+            one{"Doolarka Tirinad iyo Tobago"}\r
+            other{"Doolarada Tirinad iyo Tobago"}\r
+        }\r
+        TWD{\r
+            one{"Doollar Taywaanta Cusub"}\r
+            other{"Doollarka Taywaanta Cusubta"}\r
+        }\r
+        TZS{\r
+            one{"Shilin Tansaaniya"}\r
+            other{"Shilingka Tansaaniya"}\r
+        }\r
+        UAH{\r
+            one{"Hirfiniya Yukreeyn"}\r
+            other{"Hirfiniyada Yukreeyn"}\r
+        }\r
+        UGX{\r
+            one{"Shiling Uganda"}\r
+            other{"Shilingka Uganda"}\r
+        }\r
+        USD{\r
+            one{"Doolarka Mareeykanka"}\r
+            other{"Doolarada Mareeykanka"}\r
+        }\r
+        UYU{\r
+            one{"Beeso Uruguay"}\r
+            other{"Beeso Uruguay"}\r
+        }\r
+        UZS{\r
+            one{"Soom Usbekistan"}\r
+            other{"Soom Usbekistan"}\r
+        }\r
+        VEF{\r
+            one{"Bolifar Fenesuala (2008–2018)"}\r
+            other{"Bolifar Fenesuala (2008–2018)"}\r
+        }\r
+        VES{\r
+            one{"Bolifar Fenesuala"}\r
+            other{"Bolifar Fenezuela"}\r
+        }\r
+        VND{\r
+            one{"Dong Fitnaam"}\r
+            other{"Dong Fitnaam"}\r
+        }\r
+        VUV{\r
+            one{"Fatu Fanuatu"}\r
+            other{"Fatu Fanuatu"}\r
+        }\r
+        WST{\r
+            one{"Tala Samao"}\r
+            other{"Tala Samao"}\r
+        }\r
+        XAF{\r
+            one{"Faranka CFA ee Bartamaha Afrika"}\r
+            other{"Farank CFA ee Bartamaha Afrika"}\r
+        }\r
+        XCD{\r
+            one{"Doolarka Bariga Kaaribyan"}\r
+            other{"Doolarada Bariga Kaaribyan"}\r
+        }\r
+        XOF{\r
+            one{"Farank CFA Galbeedka Afrika"}\r
+            other{"XOF"}\r
+        }\r
+        XPF{\r
+            one{"Farank CFP"}\r
+            other{"Farank CFP"}\r
+        }\r
+        XXX{\r
+            one{"Lacag aan la aqoon"}\r
+            other{"Lacag aan la aqoon"}\r
+        }\r
+        YER{\r
+            one{"Riyaal Yemen"}\r
+            other{"Riyaalka Yemen"}\r
+        }\r
+        ZAR{\r
+            one{"Rand Koonfur Afrika"}\r
+            other{"Randka Koonfur Afrika"}\r
+        }\r
+        ZMW{\r
+            one{"Kawaja Sambiya"}\r
+            other{"Kawajada Sambiya"}\r
+        }\r
+    }\r
+    CurrencyUnitPatterns{\r
+        one{"{0} {1}"}\r
+        other{"{0} {1}"}\r
     }\r
-    Version{"2.1.38.69"}\r
+    Version{"2.1.43.94"}\r
 }\r
index 0fa6a39..b49b710 100644 (file)
@@ -4,7 +4,7 @@ so_KE{
     Currencies{\r
         KES{\r
             "Ksh",\r
-            "KES",\r
+            "Shilingka Kenya",\r
         }\r
     }\r
     Version{"2.1.38.69"}\r
index ce9975b..4c6ba74 100644 (file)
@@ -600,7 +600,11 @@ sq{
         }\r
         VEF{\r
             "VEF",\r
-            "Bolivari venezuelian",\r
+            "Bolivari venezuelian (2008–2018)",\r
+        }\r
+        VES{\r
+            "VES",\r
+            "Bolivari venezuelas",\r
         }\r
         VND{\r
             "₫",\r
@@ -631,7 +635,7 @@ sq{
             "Franga franceze e Polinezisë",\r
         }\r
         XXX{\r
-            "XXX",\r
+            "¤",\r
             "Valutë e panjohur",\r
         }\r
         YER{\r
@@ -1249,8 +1253,12 @@ sq{
             other{"soma uzbeke"}\r
         }\r
         VEF{\r
-            one{"bolivar venezuelian"}\r
-            other{"bolivarë venezuelian"}\r
+            one{"bolivar venezuelian (2008–2018)"}\r
+            other{"bolivarë venezuelian (2008–2018)"}\r
+        }\r
+        VES{\r
+            one{"bolivar venezuelas"}\r
+            other{"bolivarë venezuelas"}\r
         }\r
         VND{\r
             one{"dongë vietnameze"}\r
@@ -1301,5 +1309,5 @@ sq{
         one{"{0} {1}"}\r
         other{"{0} {1}"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.50"}\r
 }\r
index 2c2b9a6..fd8aa18 100644 (file)
@@ -980,6 +980,10 @@ sr{
         }\r
         VEF{\r
             "VEF",\r
+            "Венецуелански боливар (2008–2018)",\r
+        }\r
+        VES{\r
+            "VES",\r
             "Венецуелански боливар",\r
         }\r
         VND{\r
@@ -1071,7 +1075,7 @@ sr{
             "Код тестиране валуте",\r
         }\r
         XXX{\r
-            "XXX",\r
+            "¤",\r
             "Непозната валута",\r
         }\r
         YDD{\r
@@ -2453,6 +2457,11 @@ sr{
             other{"венецуеланских боливара (1871–2008)"}\r
         }\r
         VEF{\r
+            few{"венецуеланска боливара (2008–2018)"}\r
+            one{"венецуелански боливар (2008–2018)"}\r
+            other{"венецуеланских боливара (2008–2018)"}\r
+        }\r
+        VES{\r
             few{"венецуеланска боливара"}\r
             one{"венецуелански боливар"}\r
             other{"венецуеланских боливара"}\r
@@ -2648,5 +2657,5 @@ sr{
         one{"{0} {1}"}\r
         other{"{0} {1}"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.94"}\r
 }\r
index 40bcb0e..53bf464 100644 (file)
@@ -981,6 +981,10 @@ sr_Latn{
         }\r
         VEF{\r
             "VEF",\r
+            "Venecuelanski bolivar (2008–2018)",\r
+        }\r
+        VES{\r
+            "VES",\r
             "Venecuelanski bolivar",\r
         }\r
         VND{\r
@@ -1072,7 +1076,7 @@ sr_Latn{
             "Kod testirane valute",\r
         }\r
         XXX{\r
-            "XXX",\r
+            "¤",\r
             "Nepoznata valuta",\r
         }\r
         YDD{\r
@@ -2454,6 +2458,11 @@ sr_Latn{
             other{"venecuelanskih bolivara (1871–2008)"}\r
         }\r
         VEF{\r
+            few{"venecuelanska bolivara (2008–2018)"}\r
+            one{"venecuelanski bolivar (2008–2018)"}\r
+            other{"venecuelanskih bolivara (2008–2018)"}\r
+        }\r
+        VES{\r
             few{"venecuelanska bolivara"}\r
             one{"venecuelanski bolivar"}\r
             other{"venecuelanskih bolivara"}\r
@@ -2649,5 +2658,5 @@ sr_Latn{
         one{"{0} {1}"}\r
         other{"{0} {1}"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.50"}\r
 }\r
index ddbf0d2..a0d4729 100644 (file)
@@ -2939,6 +2939,17 @@ supplementalData:table(nofallback){
                 }\r
                 id{"MVR"}\r
             }\r
+            {\r
+                from:intvector{\r
+                    -169,\r
+                    3073024,\r
+                }\r
+                id{"MVP"}\r
+                to:intvector{\r
+                    84,\r
+                    2102747135,\r
+                }\r
+            }\r
         }\r
         MW{\r
             {\r
@@ -4306,6 +4317,9 @@ supplementalData:table(nofallback){
             {\r
                 id{"UYI"}\r
             }\r
+            {\r
+                id{"UYW"}\r
+            }\r
         }\r
         UZ{\r
             {\r
@@ -4348,10 +4362,21 @@ supplementalData:table(nofallback){
         VE{\r
             {\r
                 from:intvector{\r
+                    357,\r
+                    1419875328,\r
+                }\r
+                id{"VES"}\r
+            }\r
+            {\r
+                from:intvector{\r
                     279,\r
                     849724416,\r
                 }\r
                 id{"VEF"}\r
+                to:intvector{\r
+                    357,\r
+                    1506275327,\r
+                }\r
             }\r
             {\r
                 from:intvector{\r
@@ -4766,7 +4791,7 @@ supplementalData:table(nofallback){
             0,\r
         }\r
         AMD:intvector{\r
-            0,\r
+            2,\r
             0,\r
             0,\r
             0,\r
@@ -4820,7 +4845,7 @@ supplementalData:table(nofallback){
             0,\r
         }\r
         COP:intvector{\r
-            0,\r
+            2,\r
             0,\r
             0,\r
             0,\r
@@ -4868,7 +4893,7 @@ supplementalData:table(nofallback){
             0,\r
         }\r
         GYD:intvector{\r
-            0,\r
+            2,\r
             0,\r
             0,\r
             0,\r
@@ -4880,7 +4905,7 @@ supplementalData:table(nofallback){
             0,\r
         }\r
         IDR:intvector{\r
-            0,\r
+            2,\r
             0,\r
             0,\r
             0,\r
@@ -4988,7 +5013,7 @@ supplementalData:table(nofallback){
             0,\r
         }\r
         MNT:intvector{\r
-            0,\r
+            2,\r
             0,\r
             0,\r
             0,\r
@@ -5000,7 +5025,7 @@ supplementalData:table(nofallback){
             0,\r
         }\r
         MUR:intvector{\r
-            0,\r
+            2,\r
             0,\r
             0,\r
             0,\r
@@ -5018,7 +5043,7 @@ supplementalData:table(nofallback){
             0,\r
         }\r
         PKR:intvector{\r
-            0,\r
+            2,\r
             0,\r
             0,\r
             0,\r
@@ -5096,7 +5121,7 @@ supplementalData:table(nofallback){
             0,\r
         }\r
         TZS:intvector{\r
-            0,\r
+            2,\r
             0,\r
             0,\r
             0,\r
@@ -5113,8 +5138,14 @@ supplementalData:table(nofallback){
             0,\r
             0,\r
         }\r
-        UZS:intvector{\r
+        UYW:intvector{\r
+            4,\r
             0,\r
+            4,\r
+            0,\r
+        }\r
+        UZS:intvector{\r
+            2,\r
             0,\r
             0,\r
             0,\r
index 1131de1..531e43f 100644 (file)
@@ -1044,6 +1044,10 @@ sv{
         }\r
         VEF{\r
             "VEF",\r
+            "venezuelansk bolívar (2008–2018)",\r
+        }\r
+        VES{\r
+            "VES",\r
             "venezuelansk bolívar",\r
         }\r
         VND{\r
@@ -1143,7 +1147,7 @@ sv{
             "afrikansk kontoenhet",\r
         }\r
         XXX{\r
-            "XXX",\r
+            "¤",\r
             "okänd valuta",\r
         }\r
         YDD{\r
@@ -2350,6 +2354,10 @@ sv{
             other{"venezuelanska bolivar (1871–2008)"}\r
         }\r
         VEF{\r
+            one{"venezuelansk bolívar (2008–2018)"}\r
+            other{"venezuelanska bolívar (2008–2018)"}\r
+        }\r
+        VES{\r
             one{"venezuelansk bolívar"}\r
             other{"venezuelanska bolívar"}\r
         }\r
@@ -2518,5 +2526,5 @@ sv{
         one{"{0} {1}"}\r
         other{"{0} {1}"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.94"}\r
 }\r
index 1bbcfe0..be45807 100644 (file)
@@ -168,7 +168,7 @@ sw{
         }\r
         DZD{\r
             "DZD",\r
-            "Dinar ya Algeria",\r
+            "Dinar ya Aljeria",\r
         }\r
         EGP{\r
             "EGP",\r
@@ -620,6 +620,10 @@ sw{
         }\r
         VEF{\r
             "VEF",\r
+            "Bolivar ya Venezuela (2008–2018)",\r
+        }\r
+        VES{\r
+            "VES",\r
             "Bolivar ya Venezuela",\r
         }\r
         VND{\r
@@ -651,7 +655,7 @@ sw{
             "Faranga ya CFP",\r
         }\r
         XXX{\r
-            "XXX",\r
+            "¤",\r
             "Sarafu isiyojulikana",\r
         }\r
         YER{\r
@@ -941,8 +945,8 @@ sw{
             other{"peso za Dominica"}\r
         }\r
         DZD{\r
-            one{"dinar ya Algeria"}\r
-            other{"dinar za Algeria"}\r
+            one{"dinar ya Aljeria"}\r
+            other{"dinar za Aljeria"}\r
         }\r
         EGP{\r
             one{"pauni ya Misri"}\r
@@ -1381,6 +1385,10 @@ sw{
             other{"som za Uzbekistan"}\r
         }\r
         VEF{\r
+            one{"Bolivar ya Venezuela (2008–2018)"}\r
+            other{"Bolivar za Venezuela (2008–2018)"}\r
+        }\r
+        VES{\r
             one{"Bolivar ya Venezuela"}\r
             other{"Bolivar za Venezuela"}\r
         }\r
@@ -1433,5 +1441,5 @@ sw{
         one{"{1} {0}"}\r
         other{"{1} {0}"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.65"}\r
 }\r
index 86ba63b..92f2e15 100644 (file)
@@ -43,5 +43,5 @@ sw_CD{
             "Faranga CFA BCEAO",\r
         }\r
     }\r
-    Version{"2.1.39.11"}\r
+    Version{"2.1.43.65"}\r
 }\r
index ab9fdc8..33f73de 100644 (file)
@@ -604,6 +604,10 @@ ta{
         }\r
         VEF{\r
             "VEF",\r
+            "வெனிசுலன் போலிவர் (2008–2018)",\r
+        }\r
+        VES{\r
+            "VES",\r
             "வெனிசுலன் போலிவர்",\r
         }\r
         VND{\r
@@ -635,7 +639,7 @@ ta{
             "ஃப்ராங்க் (CFP)",\r
         }\r
         XXX{\r
-            "XXX",\r
+            "¤",\r
             "தெரியாத நாணயம்",\r
         }\r
         YER{\r
@@ -1353,6 +1357,10 @@ ta{
             other{"உஸ்பெக்கிஸ்தானி சோம்"}\r
         }\r
         VEF{\r
+            one{"வெனிசுலன் போலிவர் (2008–2018)"}\r
+            other{"வெனிசுலன் போலிவர்கள் (2008–2018)"}\r
+        }\r
+        VES{\r
             one{"வெனிசுலன் போலிவர்"}\r
             other{"வெனிசுலன் போலிவர்கள்"}\r
         }\r
@@ -1405,5 +1413,5 @@ ta{
         one{"{0} {1}"}\r
         other{"{0} {1}"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.50"}\r
 }\r
index 3eab5bd..a1433d3 100644 (file)
@@ -280,7 +280,7 @@ te{
         }\r
         JPY{\r
             "JP¥",\r
-            "à°\9cపానà±\81 à°¦à±\87à°¶ à°¯à±\86à°¸్",\r
+            "à°\9cపానà±\81 à°¦à±\87à°¶ à°¯à±\86à°¨్",\r
         }\r
         KES{\r
             "KES",\r
@@ -604,6 +604,10 @@ te{
         }\r
         VEF{\r
             "VEF",\r
+            "వెనుజులా బోలివర్ (2008–2018)",\r
+        }\r
+        VES{\r
+            "VES",\r
             "వెనుజులా బోలివర్",\r
         }\r
         VND{\r
@@ -635,7 +639,7 @@ te{
             "సిఎఫ్‌పి ఫ్రాంక్",\r
         }\r
         XXX{\r
-            "XXX",\r
+            "¤",\r
             "తెలియని కరెన్సీ",\r
         }\r
         YER{\r
@@ -1033,8 +1037,8 @@ te{
             other{"జోర్‌డానియన్ దీనార్‌లు"}\r
         }\r
         JPY{\r
-            one{"à°\9cపానà±\81 à°¦à±\87à°¶ à°¯à±\86à°¸్"}\r
-            other{"à°\9cపానà±\81 à°¦à±\87à°¶ à°¯à±\86à°¸్"}\r
+            one{"à°\9cపానà±\81 à°¦à±\87à°¶ à°¯à±\86à°¨్"}\r
+            other{"à°\9cపానà±\81 à°¦à±\87à°¶ à°¯à±\86à°¨్"}\r
         }\r
         KES{\r
             one{"కెన్యాన్ షిల్లింగ్"}\r
@@ -1353,6 +1357,10 @@ te{
             other{"ఉజ్‌బెకిస్తాన్ సౌమ్"}\r
         }\r
         VEF{\r
+            one{"వెనుజులా బోలివర్ (2008–2018)"}\r
+            other{"వెనుజులా బోలివర్‌లు (2008–2018)"}\r
+        }\r
+        VES{\r
             one{"వెనుజులా బోలివర్"}\r
             other{"వెనుజులా బోలివర్‌లు"}\r
         }\r
@@ -1405,5 +1413,5 @@ te{
         one{"{0} {1}"}\r
         other{"{0} {1}"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.50"}\r
 }\r
index f8d6a9b..2a51ff6 100644 (file)
@@ -39,7 +39,7 @@ tg{
             "Доллари ИМА",\r
         }\r
         XXX{\r
-            "XXX",\r
+            "¤",\r
             "Асъори номаълум",\r
         }\r
     }\r
@@ -88,5 +88,5 @@ tg{
     CurrencyUnitPatterns{\r
         other{"{0} {1}"}\r
     }\r
-    Version{"2.1.38.71"}\r
+    Version{"2.1.44.88"}\r
 }\r
index 22e5d99..56e1084 100644 (file)
@@ -923,7 +923,7 @@ th{
             "ลิลันเจนีสวาซิ",\r
         }\r
         THB{\r
-            "THB",\r
+            "฿",\r
             "บาท",\r
         }\r
         TJR{\r
@@ -1026,6 +1026,10 @@ th{
             "VEF",\r
             "โบลิวาร์เวเนซุเอลา",\r
         }\r
+        VES{\r
+            "VES",\r
+            "โบลีวาร์เวเนซุเอลา",\r
+        }\r
         VND{\r
             "₫",\r
             "ดองเวียดนาม",\r
@@ -1124,7 +1128,7 @@ th{
         }\r
         XXX{\r
             "XXX",\r
-            "สà¸\81ุลà¹\80à¸\87ิà¸\99à¸\97ีà¹\88à¹\84มà¹\88รูà¹\89à¸\88ัà¸\81",\r
+            "à¹\84มà¹\88à¸\97ราà¸\9aà¸\8aืà¹\88อสà¸\81ุลà¹\80à¸\87ิà¸\99",\r
         }\r
         YDD{\r
             "YDD",\r
@@ -1269,7 +1273,6 @@ th{
         SSP{"£"}\r
         STN{"Db"}\r
         SYP{"£"}\r
-        THB{"฿"}\r
         TOP{"T$"}\r
         TRY{"₺"}\r
         TTD{"$"}\r
@@ -1748,6 +1751,9 @@ th{
         VEF{\r
             other{"โบลิวาร์เวเนซุเอลา"}\r
         }\r
+        VES{\r
+            other{"โบลีวาร์แห่งเวเนซุเอลา"}\r
+        }\r
         VND{\r
             other{"ดองเวียดนาม"}\r
         }\r
@@ -1770,7 +1776,7 @@ th{
             other{"ฟรังก์ซีเอฟพี"}\r
         }\r
         XXX{\r
-            other{"(สà¸\81ุลà¹\80à¸\87ิà¸\99à¸\97ีà¹\88à¹\84มà¹\88รูà¹\89à¸\88ัà¸\81)"}\r
+            other{"(à¹\84มà¹\88à¸\97ราà¸\9aà¸\8aืà¹\88อสà¸\81ุลà¹\80à¸\87ิà¸\99)"}\r
         }\r
         YER{\r
             other{"เรียลเยเมน"}\r
@@ -1785,5 +1791,5 @@ th{
     CurrencyUnitPatterns{\r
         other{"{0} {1}"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.89"}\r
 }\r
index 26a1435..5133a52 100644 (file)
@@ -43,5 +43,5 @@ ti{
         one{"{0} {1}"}\r
         other{"{0} {1}"}\r
     }\r
-    Version{"2.1.38.72"}\r
+    Version{"2.1.44.88"}\r
 }\r
index 48d8378..45520dd 100644 (file)
@@ -7,5 +7,5 @@ ti_ER{
             "ERN",\r
         }\r
     }\r
-    Version{"2.1.38.73"}\r
+    Version{"2.1.43.65"}\r
 }\r
diff --git a/source/data/curr/tk.txt b/source/data/curr/tk.txt
new file mode 100644 (file)
index 0000000..1e64efe
--- /dev/null
@@ -0,0 +1,1393 @@
+// © 2016 and later: Unicode, Inc. and others.\r
+// License & terms of use: http://www.unicode.org/copyright.html#License\r
+tk{\r
+    Currencies{\r
+        AED{\r
+            "AED",\r
+            "BAE dirhemi",\r
+        }\r
+        AFN{\r
+            "AFN",\r
+            "Owgan afganisi",\r
+        }\r
+        ALL{\r
+            "ALL",\r
+            "Alban leki",\r
+        }\r
+        AMD{\r
+            "AMD",\r
+            "Ermeni dramy",\r
+        }\r
+        ANG{\r
+            "ANG",\r
+            "Niderland antil guldeni",\r
+        }\r
+        AOA{\r
+            "AOA",\r
+            "Angola kwanzasy",\r
+        }\r
+        ARS{\r
+            "ARS",\r
+            "Argentin pesosy",\r
+        }\r
+        AUD{\r
+            "A$",\r
+            "Awstraliýa dollary",\r
+        }\r
+        AWG{\r
+            "AWG",\r
+            "Aruba florini",\r
+        }\r
+        AZN{\r
+            "AZN",\r
+            "Azerbaýjan manady",\r
+        }\r
+        BAM{\r
+            "BAM",\r
+            "Konwertirlenýän Bosniýa we Gersegowina markasy",\r
+        }\r
+        BBD{\r
+            "BBD",\r
+            "Barbados dollary",\r
+        }\r
+        BDT{\r
+            "BDT",\r
+            "Bangladeş takasy",\r
+        }\r
+        BGN{\r
+            "BGN",\r
+            "Bolgar lewi",\r
+        }\r
+        BHD{\r
+            "BHD",\r
+            "Bahreýn dinary",\r
+        }\r
+        BIF{\r
+            "BIF",\r
+            "Burundi franky",\r
+        }\r
+        BMD{\r
+            "BMD",\r
+            "Bermuda dollary",\r
+        }\r
+        BND{\r
+            "BND",\r
+            "Bruneý dollary",\r
+        }\r
+        BOB{\r
+            "BOB",\r
+            "Boliwiýa boliwianosy",\r
+        }\r
+        BRL{\r
+            "R$",\r
+            "Brazil realy",\r
+        }\r
+        BSD{\r
+            "BSD",\r
+            "Bagama dollary",\r
+        }\r
+        BTN{\r
+            "BTN",\r
+            "Butan ngultrumy",\r
+        }\r
+        BWP{\r
+            "BWP",\r
+            "Botswana pulasy",\r
+        }\r
+        BYN{\r
+            "BYN",\r
+            "Belarus rubly",\r
+        }\r
+        BYR{\r
+            "BYR",\r
+            "Belorus rubly (2000–2016)",\r
+        }\r
+        BZD{\r
+            "BZD",\r
+            "Beliz dollary",\r
+        }\r
+        CAD{\r
+            "CA$",\r
+            "Kanada dollary",\r
+        }\r
+        CDF{\r
+            "CDF",\r
+            "Kongo franky",\r
+        }\r
+        CHF{\r
+            "CHF",\r
+            "Şweýsar franky",\r
+        }\r
+        CLP{\r
+            "CLP",\r
+            "Çili pesosy",\r
+        }\r
+        CNH{\r
+            "CNH",\r
+            "Hytaý ýuany (ofşor)",\r
+        }\r
+        CNY{\r
+            "CN¥",\r
+            "Hytaý ýuany",\r
+        }\r
+        COP{\r
+            "COP",\r
+            "Kolumbiýa pesosy",\r
+        }\r
+        CRC{\r
+            "CRC",\r
+            "Kosta-Rika kolony",\r
+        }\r
+        CUC{\r
+            "CUC",\r
+            "Konwertirlenýän kuba pesosy",\r
+        }\r
+        CUP{\r
+            "CUP",\r
+            "Kuba pesosy",\r
+        }\r
+        CVE{\r
+            "CVE",\r
+            "Kabo-Werde eskudosy",\r
+        }\r
+        CZK{\r
+            "CZK",\r
+            "Çeh kronasy",\r
+        }\r
+        DJF{\r
+            "DJF",\r
+            "Jibuti franky",\r
+        }\r
+        DKK{\r
+            "DKK",\r
+            "Daniýa kronasy",\r
+        }\r
+        DOP{\r
+            "DOP",\r
+            "Dominikan pesosy",\r
+        }\r
+        DZD{\r
+            "DZD",\r
+            "Alžir dinary",\r
+        }\r
+        EGP{\r
+            "EGP",\r
+            "Müsür funty",\r
+        }\r
+        ERN{\r
+            "ERN",\r
+            "Eritreýa nakfasy",\r
+        }\r
+        ETB{\r
+            "ETB",\r
+            "Efiopiýa byry",\r
+        }\r
+        EUR{\r
+            "EUR",\r
+            "Ýewro",\r
+        }\r
+        FJD{\r
+            "FJD",\r
+            "Fiji dollary",\r
+        }\r
+        FKP{\r
+            "FKP",\r
+            "Folklend adalarynyň funty",\r
+        }\r
+        GBP{\r
+            "GBP",\r
+            "Britan funt sterlingi",\r
+        }\r
+        GEL{\r
+            "GEL",\r
+            "Gruzin larisi",\r
+        }\r
+        GHS{\r
+            "GHS",\r
+            "Gano sedisi",\r
+        }\r
+        GIP{\r
+            "GIP",\r
+            "Gibraltar funty",\r
+        }\r
+        GMD{\r
+            "GMD",\r
+            "Gambiýa dalasisi",\r
+        }\r
+        GNF{\r
+            "GNF",\r
+            "Gwineý franky",\r
+        }\r
+        GTQ{\r
+            "GTQ",\r
+            "Gwatemala ketsaly",\r
+        }\r
+        GYD{\r
+            "GYD",\r
+            "Gaýana dollary",\r
+        }\r
+        HKD{\r
+            "HK$",\r
+            "Gonkong dollary",\r
+        }\r
+        HNL{\r
+            "HNL",\r
+            "Gonduras lempirasy",\r
+        }\r
+        HRK{\r
+            "HRK",\r
+            "Horwat kunasy",\r
+        }\r
+        HTG{\r
+            "HTG",\r
+            "Gaiti gurdy",\r
+        }\r
+        HUF{\r
+            "HUF",\r
+            "Wenger forinti",\r
+        }\r
+        IDR{\r
+            "IDR",\r
+            "Indoneziýa rupiýasy",\r
+        }\r
+        ILS{\r
+            "₪",\r
+            "Täze Ysraýyl şekeli",\r
+        }\r
+        INR{\r
+            "₹",\r
+            "Hindi rupiýasy",\r
+        }\r
+        IQD{\r
+            "IQD",\r
+            "Yrak dinary",\r
+        }\r
+        IRR{\r
+            "IRR",\r
+            "Eýran rialy",\r
+        }\r
+        ISK{\r
+            "ISK",\r
+            "Islandiýa kronasy",\r
+        }\r
+        JMD{\r
+            "JMD",\r
+            "Ýamaýka dollary",\r
+        }\r
+        JOD{\r
+            "JOD",\r
+            "Iordan dinary",\r
+        }\r
+        JPY{\r
+            "JP¥",\r
+            "Ýapon ýeni",\r
+        }\r
+        KES{\r
+            "KES",\r
+            "Keniýa şillingi",\r
+        }\r
+        KGS{\r
+            "KGS",\r
+            "Gyrgyz somy",\r
+        }\r
+        KHR{\r
+            "KHR",\r
+            "Kamboja riýeli",\r
+        }\r
+        KMF{\r
+            "KMF",\r
+            "Komor adalarynyň franky",\r
+        }\r
+        KPW{\r
+            "KPW",\r
+            "Demirgazyk Koreý wony",\r
+        }\r
+        KRW{\r
+            "₩",\r
+            "Günorta Koreý wony",\r
+        }\r
+        KWD{\r
+            "KWD",\r
+            "Kuweýt dinary",\r
+        }\r
+        KYD{\r
+            "KYD",\r
+            "Kaýman adalarynyň dollary",\r
+        }\r
+        KZT{\r
+            "KZT",\r
+            "Gazak teňňesi",\r
+        }\r
+        LAK{\r
+            "LAK",\r
+            "Laos kipi",\r
+        }\r
+        LBP{\r
+            "LBP",\r
+            "Liwan funty",\r
+        }\r
+        LKR{\r
+            "LKR",\r
+            "Şri-Lanka rupiýasy",\r
+        }\r
+        LRD{\r
+            "LRD",\r
+            "Liberiýa dollary",\r
+        }\r
+        LYD{\r
+            "LYD",\r
+            "Liwiýa dinary",\r
+        }\r
+        MAD{\r
+            "MAD",\r
+            "Marokko dirhamy",\r
+        }\r
+        MDL{\r
+            "MDL",\r
+            "Moldaw leýi",\r
+        }\r
+        MGA{\r
+            "MGA",\r
+            "Malagasiý ariarisi",\r
+        }\r
+        MKD{\r
+            "MKD",\r
+            "Makedon dinary",\r
+        }\r
+        MMK{\r
+            "MMK",\r
+            "Mýanma kýaty",\r
+        }\r
+        MNT{\r
+            "MNT",\r
+            "Mongol tugrigi",\r
+        }\r
+        MOP{\r
+            "MOP",\r
+            "Makao patakasy",\r
+        }\r
+        MRO{\r
+            "MRO",\r
+            "Mawritan ugiýasy (1973–2017)",\r
+        }\r
+        MRU{\r
+            "MRU",\r
+            "Mawritan ugiýasy",\r
+        }\r
+        MUR{\r
+            "MUR",\r
+            "Mawrikiý rupiýasy",\r
+        }\r
+        MVR{\r
+            "MVR",\r
+            "Maldiw rufiýasy",\r
+        }\r
+        MWK{\r
+            "MWK",\r
+            "Malawi kwaçasy",\r
+        }\r
+        MXN{\r
+            "MX$",\r
+            "Meksikan pesosy",\r
+        }\r
+        MYR{\r
+            "MYR",\r
+            "Malaýziýa ringgiti",\r
+        }\r
+        MZN{\r
+            "MZN",\r
+            "Mozambik metikaly",\r
+        }\r
+        NAD{\r
+            "NAD",\r
+            "Namibiýa dollary",\r
+        }\r
+        NGN{\r
+            "NGN",\r
+            "Nigeriýa naýrasy",\r
+        }\r
+        NIO{\r
+            "NIO",\r
+            "Nikaragua kordobasy",\r
+        }\r
+        NOK{\r
+            "NOK",\r
+            "Norwegiýa kronasy",\r
+        }\r
+        NPR{\r
+            "NPR",\r
+            "Nepal rupiýasy",\r
+        }\r
+        NZD{\r
+            "NZ$",\r
+            "Täze Zelandiýa dollary",\r
+        }\r
+        OMR{\r
+            "OMR",\r
+            "Oman rialy",\r
+        }\r
+        PAB{\r
+            "PAB",\r
+            "Panama balboasy",\r
+        }\r
+        PEN{\r
+            "PEN",\r
+            "Peru soly",\r
+        }\r
+        PGK{\r
+            "PGK",\r
+            "Papua - Täze Gwineýa kinasy",\r
+        }\r
+        PHP{\r
+            "PHP",\r
+            "Filippin pesosy",\r
+        }\r
+        PKR{\r
+            "PKR",\r
+            "Päkistan rupiýasy",\r
+        }\r
+        PLN{\r
+            "PLN",\r
+            "Polýak zlotysy",\r
+        }\r
+        PYG{\r
+            "PYG",\r
+            "Paragwaý guaranisi",\r
+        }\r
+        QAR{\r
+            "QAR",\r
+            "Katar rialy",\r
+        }\r
+        RON{\r
+            "RON",\r
+            "Rumyn leýi",\r
+        }\r
+        RSD{\r
+            "RSD",\r
+            "Serb dinary",\r
+        }\r
+        RUB{\r
+            "RUB",\r
+            "Rus rubly",\r
+        }\r
+        RWF{\r
+            "RWF",\r
+            "Ruanda franky",\r
+        }\r
+        SAR{\r
+            "SAR",\r
+            "Saud rialy",\r
+        }\r
+        SBD{\r
+            "SBD",\r
+            "Solomon adalarynyň dollary",\r
+        }\r
+        SCR{\r
+            "SCR",\r
+            "Seýşel rupiýasy",\r
+        }\r
+        SDG{\r
+            "SDG",\r
+            "Sudan funty",\r
+        }\r
+        SEK{\r
+            "SEK",\r
+            "Şwed kronasy",\r
+        }\r
+        SGD{\r
+            "SGD",\r
+            "Singapur dollary",\r
+        }\r
+        SHP{\r
+            "SHP",\r
+            "Keramatly Ýelena adasynyň funty",\r
+        }\r
+        SLL{\r
+            "SLL",\r
+            "Sýerra-Leone leony",\r
+        }\r
+        SOS{\r
+            "SOS",\r
+            "Somali şillingi",\r
+        }\r
+        SRD{\r
+            "SRD",\r
+            "Surinam dollary",\r
+        }\r
+        SSP{\r
+            "SSP",\r
+            "Günorta Sudan funty",\r
+        }\r
+        STD{\r
+            "STD",\r
+            "San-Tome we Prinsipi dobrasy (1977–2017)",\r
+        }\r
+        STN{\r
+            "STN",\r
+            "San-Tome we Prinsipi dobrasy",\r
+        }\r
+        SYP{\r
+            "SYP",\r
+            "Siriýa funty",\r
+        }\r
+        SZL{\r
+            "SZL",\r
+            "Swazi lilangeni",\r
+        }\r
+        THB{\r
+            "THB",\r
+            "Taýland baty",\r
+        }\r
+        TJS{\r
+            "TJS",\r
+            "Täjik somonisi",\r
+        }\r
+        TMT{\r
+            "TMT",\r
+            "Türkmen manady",\r
+        }\r
+        TND{\r
+            "TND",\r
+            "Tunis dinary",\r
+        }\r
+        TOP{\r
+            "TOP",\r
+            "Tonga paangasy",\r
+        }\r
+        TRY{\r
+            "TRY",\r
+            "Türk lirasy",\r
+        }\r
+        TTD{\r
+            "TTD",\r
+            "Trininad we Tobago dollary",\r
+        }\r
+        TWD{\r
+            "NT$",\r
+            "Täze Taýwan dollary",\r
+        }\r
+        TZS{\r
+            "TZS",\r
+            "Tanzaniýa şillingi",\r
+        }\r
+        UAH{\r
+            "UAH",\r
+            "Ukrain griwnasy",\r
+        }\r
+        UGX{\r
+            "UGX",\r
+            "Uganda şillingi",\r
+        }\r
+        USD{\r
+            "US$",\r
+            "ABŞ dollary",\r
+        }\r
+        UYU{\r
+            "UYU",\r
+            "Urugwaý pesosy",\r
+        }\r
+        UZS{\r
+            "UZS",\r
+            "Özbek somy",\r
+        }\r
+        VEF{\r
+            "VEF",\r
+            "Wenesuela boliwary (2008–2018)",\r
+        }\r
+        VES{\r
+            "VES",\r
+            "Wenesuela boliwary",\r
+        }\r
+        VND{\r
+            "₫",\r
+            "Wýetnam dongy",\r
+        }\r
+        VUV{\r
+            "VUV",\r
+            "Wanuatu watusy",\r
+        }\r
+        WST{\r
+            "WST",\r
+            "Samoa talasy",\r
+        }\r
+        XAF{\r
+            "FCFA",\r
+            "KFA BEAC franky",\r
+        }\r
+        XCD{\r
+            "EC$",\r
+            "Gündogar karib dollary",\r
+        }\r
+        XOF{\r
+            "CFA",\r
+            "KFA BCEAO franky",\r
+        }\r
+        XPF{\r
+            "CFPF",\r
+            "Fransuz ýuwaş umman franky",\r
+        }\r
+        XXX{\r
+            "¤",\r
+            "Näbelli pul birligi",\r
+        }\r
+        YER{\r
+            "YER",\r
+            "Ýemen rialy",\r
+        }\r
+        ZAR{\r
+            "ZAR",\r
+            "Günorta Afrika rendi",\r
+        }\r
+        ZMW{\r
+            "ZMW",\r
+            "Zambiýa kwaçasy",\r
+        }\r
+    }\r
+    Currencies%narrow{\r
+        AOA{"Kz"}\r
+        ARS{"$"}\r
+        AUD{"$"}\r
+        BAM{"KM"}\r
+        BBD{"$"}\r
+        BDT{"৳"}\r
+        BMD{"$"}\r
+        BND{"$"}\r
+        BOB{"Bs"}\r
+        BRL{"R$"}\r
+        BSD{"$"}\r
+        BWP{"P"}\r
+        BYN{"р."}\r
+        BZD{"$"}\r
+        CAD{"$"}\r
+        CLP{"$"}\r
+        CNY{"¥"}\r
+        COP{"$"}\r
+        CRC{"₡"}\r
+        CUC{"$"}\r
+        CUP{"$"}\r
+        CZK{"Kč"}\r
+        DKK{"kr"}\r
+        DOP{"$"}\r
+        EGP{"E£"}\r
+        EUR{"€"}\r
+        FJD{"$"}\r
+        FKP{"£"}\r
+        GBP{"£"}\r
+        GEL{"₾"}\r
+        GIP{"£"}\r
+        GNF{"FG"}\r
+        GTQ{"Q"}\r
+        GYD{"$"}\r
+        HKD{"$"}\r
+        HNL{"L"}\r
+        HRK{"kn"}\r
+        HUF{"Ft"}\r
+        IDR{"Rp"}\r
+        ILS{"₪"}\r
+        INR{"₹"}\r
+        ISK{"kr"}\r
+        JMD{"$"}\r
+        JPY{"¥"}\r
+        KHR{"៛"}\r
+        KMF{"CF"}\r
+        KPW{"₩"}\r
+        KRW{"₩"}\r
+        KYD{"$"}\r
+        KZT{"₸"}\r
+        LAK{"₭"}\r
+        LBP{"L£"}\r
+        LKR{"Rs"}\r
+        LRD{"$"}\r
+        MGA{"Ar"}\r
+        MMK{"K"}\r
+        MNT{"₮"}\r
+        MUR{"Rs"}\r
+        MXN{"$"}\r
+        MYR{"RM"}\r
+        NAD{"$"}\r
+        NGN{"₦"}\r
+        NIO{"C$"}\r
+        NOK{"kr"}\r
+        NPR{"Rs"}\r
+        NZD{"$"}\r
+        PHP{"₱"}\r
+        PKR{"Rs"}\r
+        PLN{"zł"}\r
+        PYG{"₲"}\r
+        RON{"lei"}\r
+        RUB{"₽"}\r
+        RWF{"RF"}\r
+        SBD{"$"}\r
+        SEK{"kr"}\r
+        SGD{"$"}\r
+        SHP{"£"}\r
+        SRD{"$"}\r
+        SSP{"£"}\r
+        STN{"Db"}\r
+        SYP{"£"}\r
+        THB{"฿"}\r
+        TOP{"T$"}\r
+        TRY{"₺"}\r
+        TTD{"$"}\r
+        TWD{"$"}\r
+        UAH{"₴"}\r
+        USD{"$"}\r
+        UYU{"$"}\r
+        VEF{"Bs"}\r
+        VND{"₫"}\r
+        XCD{"$"}\r
+        ZAR{"R"}\r
+        ZMW{"ZK"}\r
+    }\r
+    Currencies%variant{\r
+        GEL{"₾"}\r
+        TRY{"TL"}\r
+    }\r
+    CurrencyPlurals{\r
+        AED{\r
+            one{"BAE dirhemi"}\r
+            other{"BAE dirhemi"}\r
+        }\r
+        AFN{\r
+            one{"owgan afganisi"}\r
+            other{"owgan afganisi"}\r
+        }\r
+        ALL{\r
+            one{"alban leki"}\r
+            other{"alban leki"}\r
+        }\r
+        AMD{\r
+            one{"ermeni dramy"}\r
+            other{"ermeni dramy"}\r
+        }\r
+        ANG{\r
+            one{"niderland antil guldeni"}\r
+            other{"niderland antil guldeni"}\r
+        }\r
+        AOA{\r
+            one{"angola kwanzasy"}\r
+            other{"angola kwanzasy"}\r
+        }\r
+        ARS{\r
+            one{"argentin pesosy"}\r
+            other{"argentin pesosy"}\r
+        }\r
+        AUD{\r
+            one{"awstraliýa dollary"}\r
+            other{"awstraliýa dollary"}\r
+        }\r
+        AWG{\r
+            one{"aruba florini"}\r
+            other{"aruba florini"}\r
+        }\r
+        AZN{\r
+            one{"azerbaýjan manady"}\r
+            other{"azerbaýjan manady"}\r
+        }\r
+        BAM{\r
+            one{"konwertirlenýän bosniýa we gersegowina markasy"}\r
+            other{"konwertirlenýän bosniýa we gersegowina markasy"}\r
+        }\r
+        BBD{\r
+            one{"barbados dollary"}\r
+            other{"barbados dollary"}\r
+        }\r
+        BDT{\r
+            one{"bangladeş takasy"}\r
+            other{"bangladeş takasy"}\r
+        }\r
+        BGN{\r
+            one{"bolgar lewi"}\r
+            other{"bolgar lewi"}\r
+        }\r
+        BHD{\r
+            one{"bahreýn dinary"}\r
+            other{"bahreýn dinary"}\r
+        }\r
+        BIF{\r
+            one{"burundi franky"}\r
+            other{"burundi franky"}\r
+        }\r
+        BMD{\r
+            one{"bermuda dollary"}\r
+            other{"bermuda dollary"}\r
+        }\r
+        BND{\r
+            one{"bruneý dollary"}\r
+            other{"bruneý dollary"}\r
+        }\r
+        BOB{\r
+            one{"boliwiýa boliwianosy"}\r
+            other{"boliwiýa boliwianosy"}\r
+        }\r
+        BRL{\r
+            one{"brazil realy"}\r
+            other{"brazil realy"}\r
+        }\r
+        BSD{\r
+            one{"bagama dollary"}\r
+            other{"bagama dollary"}\r
+        }\r
+        BTN{\r
+            one{"butan ngultrumy"}\r
+            other{"butan ngultrumy"}\r
+        }\r
+        BWP{\r
+            one{"botswana pulasy"}\r
+            other{"botswana pulasy"}\r
+        }\r
+        BYN{\r
+            one{"belarus rubly"}\r
+            other{"belarus rubly"}\r
+        }\r
+        BYR{\r
+            one{"belorus rubly (2000–2016)"}\r
+            other{"belorus rubly (2000–2016)"}\r
+        }\r
+        BZD{\r
+            one{"beliz dollary"}\r
+            other{"beliz dollary"}\r
+        }\r
+        CAD{\r
+            one{"kanada dollary"}\r
+            other{"kanada dollary"}\r
+        }\r
+        CDF{\r
+            one{"kongo franky"}\r
+            other{"kongo franky"}\r
+        }\r
+        CHF{\r
+            one{"şweýsar franky"}\r
+            other{"şweýsar franky"}\r
+        }\r
+        CLP{\r
+            one{"çili pesosy"}\r
+            other{"çili pesosy"}\r
+        }\r
+        CNH{\r
+            one{"hytaý ýuany (ofşor)"}\r
+            other{"hytaý ýuany (ofşor)"}\r
+        }\r
+        CNY{\r
+            one{"hytaý ýuany"}\r
+            other{"hytaý ýuany"}\r
+        }\r
+        COP{\r
+            one{"kolumbiýa pesosy"}\r
+            other{"kolumbiýa pesosy"}\r
+        }\r
+        CRC{\r
+            one{"kosta-rika kolony"}\r
+            other{"kosta-rika kolony"}\r
+        }\r
+        CUC{\r
+            one{"konwertirlenýän kuba pesosy"}\r
+            other{"konwertirlenýän kuba pesosy"}\r
+        }\r
+        CUP{\r
+            one{"kuba pesosy"}\r
+            other{"kuba pesosy"}\r
+        }\r
+        CVE{\r
+            one{"kabo-werde eskudosy"}\r
+            other{"kabo-werde eskudosy"}\r
+        }\r
+        CZK{\r
+            one{"çeh kronasy"}\r
+            other{"çeh kronasy"}\r
+        }\r
+        DJF{\r
+            one{"jibuti franky"}\r
+            other{"jibuti franky"}\r
+        }\r
+        DKK{\r
+            one{"daniýa kronasy"}\r
+            other{"daniýa kronasy"}\r
+        }\r
+        DOP{\r
+            one{"dominikan pesosy"}\r
+            other{"dominikan pesosy"}\r
+        }\r
+        DZD{\r
+            one{"alžir dinary"}\r
+            other{"alžir dinary"}\r
+        }\r
+        EGP{\r
+            one{"müsür funty"}\r
+            other{"müsür funty"}\r
+        }\r
+        ERN{\r
+            one{"eritreýa nakfasy"}\r
+            other{"eritreýa nakfasy"}\r
+        }\r
+        ETB{\r
+            one{"efiopiýa byry"}\r
+            other{"efiopiýa byry"}\r
+        }\r
+        EUR{\r
+            one{"ýewro"}\r
+            other{"ýewro"}\r
+        }\r
+        FJD{\r
+            one{"fiji dollary"}\r
+            other{"fiji dollary"}\r
+        }\r
+        FKP{\r
+            one{"folklend adalarynyň funty"}\r
+            other{"folklend adalarynyň funty"}\r
+        }\r
+        GBP{\r
+            one{"britan funt sterlingi"}\r
+            other{"britan funt sterlingi"}\r
+        }\r
+        GEL{\r
+            one{"gruzin larisi"}\r
+            other{"gruzin larisi"}\r
+        }\r
+        GHS{\r
+            one{"gano sedisi"}\r
+            other{"gano sedisi"}\r
+        }\r
+        GIP{\r
+            one{"gibraltar funty"}\r
+            other{"gibraltar funty"}\r
+        }\r
+        GMD{\r
+            one{"gambiýa dalasisi"}\r
+            other{"gambiýa dalasisi"}\r
+        }\r
+        GNF{\r
+            one{"gwineý franky"}\r
+            other{"gwineý franky"}\r
+        }\r
+        GTQ{\r
+            one{"gwatemala ketsaly"}\r
+            other{"gwatemala ketsaly"}\r
+        }\r
+        GYD{\r
+            one{"gaýana dollary"}\r
+            other{"gaýana dollary"}\r
+        }\r
+        HKD{\r
+            one{"gonkong dollary"}\r
+            other{"gonkong dollary"}\r
+        }\r
+        HNL{\r
+            one{"gonduras lempirasy"}\r
+            other{"gonduras lempirasy"}\r
+        }\r
+        HRK{\r
+            one{"horwat kunasy"}\r
+            other{"horwat kunasy"}\r
+        }\r
+        HTG{\r
+            one{"gaiti gurdy"}\r
+            other{"gaiti gurdy"}\r
+        }\r
+        HUF{\r
+            one{"wenger forinti"}\r
+            other{"wenger forinti"}\r
+        }\r
+        IDR{\r
+            one{"indoneziýa rupiýasy"}\r
+            other{"indoneziýa rupiýasy"}\r
+        }\r
+        ILS{\r
+            one{"täze ysraýyl şekeli"}\r
+            other{"täze ysraýyl şekeli"}\r
+        }\r
+        INR{\r
+            one{"hindi rupiýasy"}\r
+            other{"hindi rupiýasy"}\r
+        }\r
+        IQD{\r
+            one{"yrak dinary"}\r
+            other{"yrak dinary"}\r
+        }\r
+        IRR{\r
+            one{"eýran rialy"}\r
+            other{"eýran rialy"}\r
+        }\r
+        ISK{\r
+            one{"islandiýa kronasy"}\r
+            other{"islandiýa kronasy"}\r
+        }\r
+        JMD{\r
+            one{"ýamaýka dollary"}\r
+            other{"ýamaýka dollary"}\r
+        }\r
+        JOD{\r
+            one{"iordan dinary"}\r
+            other{"iordan dinary"}\r
+        }\r
+        JPY{\r
+            one{"ýapon ýeni"}\r
+            other{"ýapon ýeni"}\r
+        }\r
+        KES{\r
+            one{"keniýa şillingi"}\r
+            other{"keniýa şillingi"}\r
+        }\r
+        KGS{\r
+            one{"gyrgyz somy"}\r
+            other{"gyrgyz somy"}\r
+        }\r
+        KHR{\r
+            one{"kamboja riýeli"}\r
+            other{"kamboja riýeli"}\r
+        }\r
+        KMF{\r
+            one{"komor adalarynyň franky"}\r
+            other{"komor adalarynyň franky"}\r
+        }\r
+        KPW{\r
+            one{"demirgazyk koreý wony"}\r
+            other{"demirgazyk koreý wony"}\r
+        }\r
+        KRW{\r
+            one{"günorta koreý wony"}\r
+            other{"günorta koreý wony"}\r
+        }\r
+        KWD{\r
+            one{"kuweýt dinary"}\r
+            other{"kuweýt dinary"}\r
+        }\r
+        KYD{\r
+            one{"kaýman adalarynyň dollary"}\r
+            other{"kaýman adalarynyň dollary"}\r
+        }\r
+        KZT{\r
+            one{"gazak teňňesi"}\r
+            other{"gazak teňňesi"}\r
+        }\r
+        LAK{\r
+            one{"laos kipi"}\r
+            other{"laos kipi"}\r
+        }\r
+        LBP{\r
+            one{"liwan funty"}\r
+            other{"liwan funty"}\r
+        }\r
+        LKR{\r
+            one{"şri-lanka rupiýasy"}\r
+            other{"şri-lanka rupiýasy"}\r
+        }\r
+        LRD{\r
+            one{"liberiýa dollary"}\r
+            other{"liberiýa dollary"}\r
+        }\r
+        LYD{\r
+            one{"liwiýa dinary"}\r
+            other{"liwiýa dinary"}\r
+        }\r
+        MAD{\r
+            one{"marokko dirhamy"}\r
+            other{"marokko dirhamy"}\r
+        }\r
+        MDL{\r
+            one{"moldaw leýi"}\r
+            other{"moldaw leýi"}\r
+        }\r
+        MGA{\r
+            one{"malagasiý ariarisi"}\r
+            other{"malagasiý ariarisi"}\r
+        }\r
+        MKD{\r
+            one{"makedon dinary"}\r
+            other{"makedon dinary"}\r
+        }\r
+        MMK{\r
+            one{"mýanma kýaty"}\r
+            other{"mýanma kýaty"}\r
+        }\r
+        MNT{\r
+            one{"mongol tugrigi"}\r
+            other{"mongol tugrigi"}\r
+        }\r
+        MOP{\r
+            one{"makao patakasy"}\r
+            other{"makao patakasy"}\r
+        }\r
+        MRO{\r
+            one{"mawritan ugiýasy (1973–2017)"}\r
+            other{"mawritan ugiýasy (1973–2017)"}\r
+        }\r
+        MRU{\r
+            one{"mawritan ugiýasy"}\r
+            other{"mawritan ugiýasy"}\r
+        }\r
+        MUR{\r
+            one{"mawrikiý rupiýasy"}\r
+            other{"mawrikiý rupiýasy"}\r
+        }\r
+        MVR{\r
+            one{"maldiw rufiýasy"}\r
+            other{"maldiw rufiýasy"}\r
+        }\r
+        MWK{\r
+            one{"malawi kwaçasy"}\r
+            other{"malawi kwaçasy"}\r
+        }\r
+        MXN{\r
+            one{"meksikan pesosy"}\r
+            other{"meksikan pesosy"}\r
+        }\r
+        MYR{\r
+            one{"malaýziýa ringgiti"}\r
+            other{"malaýziýa ringgiti"}\r
+        }\r
+        MZN{\r
+            one{"mozambik metikaly"}\r
+            other{"mozambik metikaly"}\r
+        }\r
+        NAD{\r
+            one{"namibiýa dollary"}\r
+            other{"namibiýa dollary"}\r
+        }\r
+        NGN{\r
+            one{"nigeriýa naýrasy"}\r
+            other{"nigeriýa naýrasy"}\r
+        }\r
+        NIO{\r
+            one{"nikaragua kordobasy"}\r
+            other{"nikaragua kordobasy"}\r
+        }\r
+        NOK{\r
+            one{"norwegiýa kronasy"}\r
+            other{"norwegiýa kronasy"}\r
+        }\r
+        NPR{\r
+            one{"nepal rupiýasy"}\r
+            other{"nepal rupiýasy"}\r
+        }\r
+        NZD{\r
+            one{"täze zelandiýa dollary"}\r
+            other{"täze zelandiýa dollary"}\r
+        }\r
+        OMR{\r
+            one{"oman rialy"}\r
+            other{"oman rialy"}\r
+        }\r
+        PAB{\r
+            one{"panama balboasy"}\r
+            other{"panama balboasy"}\r
+        }\r
+        PEN{\r
+            one{"peru soly"}\r
+            other{"peru soly"}\r
+        }\r
+        PGK{\r
+            one{"papua - täze gwineýa kinasy"}\r
+            other{"papua - täze gwineýa kinasy"}\r
+        }\r
+        PHP{\r
+            one{"filippin pesosy"}\r
+            other{"filippin pesosy"}\r
+        }\r
+        PKR{\r
+            one{"päkistan rupiýasy"}\r
+            other{"päkistan rupiýasy"}\r
+        }\r
+        PLN{\r
+            one{"polýak zlotysy"}\r
+            other{"polýak zlotysy"}\r
+        }\r
+        PYG{\r
+            one{"paragwaý guaranisi"}\r
+            other{"paragwaý guaranisi"}\r
+        }\r
+        QAR{\r
+            one{"katar rialy"}\r
+            other{"katar rialy"}\r
+        }\r
+        RON{\r
+            one{"rumyn leýi"}\r
+            other{"rumyn leýi"}\r
+        }\r
+        RSD{\r
+            one{"serb dinary"}\r
+            other{"serb dinary"}\r
+        }\r
+        RUB{\r
+            one{"rus rubly"}\r
+            other{"rus rubly"}\r
+        }\r
+        RWF{\r
+            one{"ruanda franky"}\r
+            other{"ruanda franky"}\r
+        }\r
+        SAR{\r
+            one{"saud rialy"}\r
+            other{"saud rialy"}\r
+        }\r
+        SBD{\r
+            one{"solomon adalarynyň dollary"}\r
+            other{"solomon adalarynyň dollary"}\r
+        }\r
+        SCR{\r
+            one{"seýşel rupiýasy"}\r
+            other{"seýşel rupiýasy"}\r
+        }\r
+        SDG{\r
+            one{"sudan funty"}\r
+            other{"sudan funty"}\r
+        }\r
+        SEK{\r
+            one{"şwed kronasy"}\r
+            other{"şwed kronasy"}\r
+        }\r
+        SGD{\r
+            one{"singapur dollary"}\r
+            other{"singapur dollary"}\r
+        }\r
+        SHP{\r
+            one{"keramatly ýelena adasynyň funty"}\r
+            other{"keramatly ýelena adasynyň funty"}\r
+        }\r
+        SLL{\r
+            one{"sýerra-leone leony"}\r
+            other{"sýerra-leone leony"}\r
+        }\r
+        SOS{\r
+            one{"somali şillingi"}\r
+            other{"somali şillingi"}\r
+        }\r
+        SRD{\r
+            one{"surinam dollary"}\r
+            other{"surinam dollary"}\r
+        }\r
+        SSP{\r
+            one{"günorta sudan funty"}\r
+            other{"günorta sudan funty"}\r
+        }\r
+        STD{\r
+            one{"san-tome we prinsipi dobrasy (1977–2017)"}\r
+            other{"san-tome we prinsipi dobrasy (1977–2017)"}\r
+        }\r
+        STN{\r
+            one{"san-tome we prinsipi dobrasy"}\r
+            other{"san-tome we prinsipi dobrasy"}\r
+        }\r
+        SYP{\r
+            one{"siriýa funty"}\r
+            other{"siriýa funty"}\r
+        }\r
+        SZL{\r
+            one{"swazi lilangeni"}\r
+            other{"swazi lilangeni"}\r
+        }\r
+        THB{\r
+            one{"taýland baty"}\r
+            other{"taýland baty"}\r
+        }\r
+        TJS{\r
+            one{"täjik somonisi"}\r
+            other{"täjik somonisi"}\r
+        }\r
+        TMT{\r
+            one{"türkmen manady"}\r
+            other{"türkmen manady"}\r
+        }\r
+        TND{\r
+            one{"tunis dinary"}\r
+            other{"tunis dinary"}\r
+        }\r
+        TOP{\r
+            one{"tonga paangasy"}\r
+            other{"tonga paangasy"}\r
+        }\r
+        TRY{\r
+            one{"türk lirasy"}\r
+            other{"türk lirasy"}\r
+        }\r
+        TTD{\r
+            one{"trininad we tobago dollary"}\r
+            other{"trininad we tobago dollary"}\r
+        }\r
+        TWD{\r
+            one{"täze taýwan dollary"}\r
+            other{"täze taýwan dollary"}\r
+        }\r
+        TZS{\r
+            one{"tanzaniýa şillingi"}\r
+            other{"tanzaniýa şillingi"}\r
+        }\r
+        UAH{\r
+            one{"ukrain griwnasy"}\r
+            other{"ukrain griwnasy"}\r
+        }\r
+        UGX{\r
+            one{"uganda şillingi"}\r
+            other{"uganda şillingi"}\r
+        }\r
+        USD{\r
+            one{"ABŞ dollary"}\r
+            other{"ABŞ dollary"}\r
+        }\r
+        UYU{\r
+            one{"urugwaý pesosy"}\r
+            other{"urugwaý pesosy"}\r
+        }\r
+        UZS{\r
+            one{"özbek somy"}\r
+            other{"özbek somy"}\r
+        }\r
+        VEF{\r
+            one{"wenesuela boliwary (2008–2018)"}\r
+            other{"wenesuela boliwary (2008–2018)"}\r
+        }\r
+        VES{\r
+            one{"wenesuela boliwary"}\r
+            other{"wenesuela boliwary"}\r
+        }\r
+        VND{\r
+            one{"wýetnam dongy"}\r
+            other{"wýetnam dongy"}\r
+        }\r
+        VUV{\r
+            one{"wanuatu watusy"}\r
+            other{"wanuatu watusy"}\r
+        }\r
+        WST{\r
+            one{"samoa talasy"}\r
+            other{"samoa talasy"}\r
+        }\r
+        XAF{\r
+            one{"KFA BEAC franky"}\r
+            other{"KFA BEAC franky"}\r
+        }\r
+        XCD{\r
+            one{"gündogar karib dollary"}\r
+            other{"gündogar karib dollary"}\r
+        }\r
+        XOF{\r
+            one{"KFA BCEAO franky"}\r
+            other{"KFA BCEAO franky"}\r
+        }\r
+        XPF{\r
+            one{"fransuz ýuwaş umman franky"}\r
+            other{"fransuz ýuwaş umman franky"}\r
+        }\r
+        XXX{\r
+            one{"näbelli pul birligi"}\r
+            other{"näbelli pul birligi"}\r
+        }\r
+        YER{\r
+            one{"ýemen rialy"}\r
+            other{"ýemen rialy"}\r
+        }\r
+        ZAR{\r
+            one{"günorta afrika rendi"}\r
+            other{"günorta afrika rendi"}\r
+        }\r
+        ZMW{\r
+            one{"zambiýa kwaçasy"}\r
+            other{"zambiýa kwaçasy"}\r
+        }\r
+    }\r
+    CurrencyUnitPatterns{\r
+        one{"{0} {1}"}\r
+        other{"{0} {1}"}\r
+    }\r
+    Version{"2.1.43.65"}\r
+}\r
index 49b059b..f1fc835 100644 (file)
@@ -43,7 +43,7 @@ to{
             "XPF",\r
         }\r
         XXX{\r
-            "XXX",\r
+            "¤",\r
             "Pa’anga Ta’e’ilo",\r
         }\r
     }\r
@@ -74,5 +74,5 @@ to{
     CurrencyUnitPatterns{\r
         other{"{1} {0}"}\r
     }\r
-    Version{"2.1.38.39"}\r
+    Version{"2.1.44.88"}\r
 }\r
index 775cd00..729b89f 100644 (file)
@@ -684,11 +684,11 @@ tr{
         }\r
         MRO{\r
             "MRO",\r
-            "Moritanya Ouguiyası (1973–2017)",\r
+            "Moritanya Ugiyası (1973–2017)",\r
         }\r
         MRU{\r
             "MRU",\r
-            "Moritanya Ouguiyası",\r
+            "Moritanya Ugiyası",\r
         }\r
         MTL{\r
             "MTL",\r
@@ -1049,6 +1049,10 @@ tr{
         }\r
         VEF{\r
             "VEF",\r
+            "Venezuela Bolivarı (2008–2018)",\r
+        }\r
+        VES{\r
+            "VES",\r
             "Venezuela Bolivarı",\r
         }\r
         VND{\r
@@ -1148,7 +1152,7 @@ tr{
             "ADB Hesap Birimi",\r
         }\r
         XXX{\r
-            "XXX",\r
+            "¤",\r
             "Bilinmeyen Para Birimi",\r
         }\r
         YDD{\r
@@ -1948,12 +1952,12 @@ tr{
             other{"Makao patakası"}\r
         }\r
         MRO{\r
-            one{"Moritanya ouguiyası (1973–2017)"}\r
-            other{"Moritanya ouguiyası (1973–2017)"}\r
+            one{"Moritanya ugiyası (1973–2017)"}\r
+            other{"Moritanya ugiyası (1973–2017)"}\r
         }\r
         MRU{\r
-            one{"Moritanya ouguiyası"}\r
-            other{"Moritanya ouguiyası"}\r
+            one{"Moritanya ugiyası"}\r
+            other{"Moritanya ugiyası"}\r
         }\r
         MTL{\r
             one{"Malta Lirası"}\r
@@ -2284,6 +2288,10 @@ tr{
             other{"Venezuela Bolivarı (1871–2008)"}\r
         }\r
         VEF{\r
+            one{"Venezuela bolivarı (2008–2018)"}\r
+            other{"Venezuela bolivarı (2008–2018)"}\r
+        }\r
+        VES{\r
             one{"Venezuela bolivarı"}\r
             other{"Venezuela bolivarı"}\r
         }\r
@@ -2392,5 +2400,5 @@ tr{
         one{"{0} {1}"}\r
         other{"{0} {1}"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.91"}\r
 }\r
index e216e94..bd4c32e 100644 (file)
@@ -8,7 +8,7 @@ tt{
         }\r
         CNY{\r
             "CN¥",\r
-            "кытай юане",\r
+            "Ð\9aытай юане",\r
         }\r
         EUR{\r
             "€",\r
@@ -24,7 +24,7 @@ tt{
         }\r
         JPY{\r
             "JP¥",\r
-            "япон иенасы",\r
+            "Япония иенасы",\r
         }\r
         RUB{\r
             "₽",\r
@@ -35,7 +35,7 @@ tt{
             "АКШ доллары",\r
         }\r
         XXX{\r
-            "XXX",\r
+            "¤",\r
             "билгесез валюта",\r
         }\r
     }\r
@@ -81,5 +81,5 @@ tt{
     CurrencyUnitPatterns{\r
         other{"{0} {1}"}\r
     }\r
-    Version{"2.1.38.72"}\r
+    Version{"2.1.44.88"}\r
 }\r
index d0b5667..e0ced27 100644 (file)
@@ -1040,6 +1040,10 @@ ug{
         }\r
         VEF{\r
             "VEF",\r
+            "ۋېنېزۇئېلا بولىۋارى (2008–2018)",\r
+        }\r
+        VES{\r
+            "VES",\r
             "ۋېنېزۇئېلا بولىۋارى",\r
         }\r
         VND{\r
@@ -1139,7 +1143,7 @@ ug{
             "ئاسىيا تەرەققىيات بانكىسى ھېسابات بىرلىكى",\r
         }\r
         XXX{\r
-            "XXX",\r
+            "¤",\r
             "يوچۇن پۇل",\r
         }\r
         YDD{\r
@@ -2241,6 +2245,10 @@ ug{
             other{"ۋېنېزۇئېلا بولىۋارى (1871–2008)"}\r
         }\r
         VEF{\r
+            one{"ۋېنېزۇئېلا بولىۋارى (2008–2018)"}\r
+            other{"ۋېنېزۇئېلا بولىۋارى (2008–2018)"}\r
+        }\r
+        VES{\r
             one{"ۋېنېزۇئېلا بولىۋارى"}\r
             other{"ۋېنېزۇئېلا بولىۋارى"}\r
         }\r
@@ -2409,5 +2417,5 @@ ug{
         one{"{0} {1}"}\r
         other{"{0} {1}"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.88"}\r
 }\r
index 21c1eec..01d82fb 100644 (file)
@@ -972,6 +972,10 @@ uk{
         }\r
         VEF{\r
             "VEF",\r
+            "венесуельський болівар (2008–2018)",\r
+        }\r
+        VES{\r
+            "VES",\r
             "венесуельський болівар",\r
         }\r
         VND{\r
@@ -1059,7 +1063,7 @@ uk{
             "код тестування валюти",\r
         }\r
         XXX{\r
-            "XXX",\r
+            "¤",\r
             "невідома грошова одиниця",\r
         }\r
         YDD{\r
@@ -2208,6 +2212,12 @@ uk{
             other{"узбецького сума"}\r
         }\r
         VEF{\r
+            few{"венесуельські болівари (2008–2018)"}\r
+            many{"венесуельських боліварів (2008–2018)"}\r
+            one{"венесуельський болівар (2008–2018)"}\r
+            other{"венесуельського болівара (2008–2018)"}\r
+        }\r
+        VES{\r
             few{"венесуельські болівари"}\r
             many{"венесуельських боліварів"}\r
             one{"венесуельський болівар"}\r
@@ -2304,5 +2314,5 @@ uk{
         one{"{0} {1}"}\r
         other{"{0} {1}"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.65"}\r
 }\r
index 5a7d0ee..d8ffe0c 100644 (file)
@@ -104,7 +104,7 @@ ur{
         }\r
         BZD{\r
             "BZD",\r
-            "بیلائز ڈالر",\r
+            "بیلیز ڈالر",\r
         }\r
         CAD{\r
             "CA$",\r
@@ -376,7 +376,7 @@ ur{
         }\r
         MMK{\r
             "MMK",\r
-            "میانما کیاٹ",\r
+            "میانمار کیاٹ",\r
         }\r
         MNT{\r
             "MNT",\r
@@ -624,6 +624,10 @@ ur{
         }\r
         VEF{\r
             "VEF",\r
+            "وینزویلا بولیور (2008–2018)",\r
+        }\r
+        VES{\r
+            "VES",\r
             "وینزویلا بولیور",\r
         }\r
         VND{\r
@@ -655,7 +659,7 @@ ur{
             "CFP فرانک",\r
         }\r
         XXX{\r
-            "XXX",\r
+            "¤",\r
             "نامعلوم کرنسی",\r
         }\r
         YER{\r
@@ -877,8 +881,8 @@ ur{
             other{"بیلاروسی روبل (۲۰۰۰–۲۰۱۶)"}\r
         }\r
         BZD{\r
-            one{"بیلائز ڈالر"}\r
-            other{"بیلائز ڈالر"}\r
+            one{"بیلیز ڈالر"}\r
+            other{"بیلیز ڈالرز"}\r
         }\r
         CAD{\r
             one{"کنیڈین ڈالر"}\r
@@ -1137,8 +1141,8 @@ ur{
             other{"مقدونیائی دینار"}\r
         }\r
         MMK{\r
-            one{"میانما کیاٹ"}\r
-            other{"میانما کیاٹ"}\r
+            one{"میانمار کیاٹ"}\r
+            other{"میانمار کیاٹ"}\r
         }\r
         MNT{\r
             one{"منگولیائی ٹگرِ"}\r
@@ -1373,6 +1377,10 @@ ur{
             other{"ازبکستان سوم"}\r
         }\r
         VEF{\r
+            one{"وینزویلا بولیور (2008–2018)"}\r
+            other{"وینزویلا بولیور (2008–2018)"}\r
+        }\r
+        VES{\r
             one{"وینزویلا بولیور"}\r
             other{"وینزویلا بولیور"}\r
         }\r
@@ -1425,5 +1433,5 @@ ur{
         one{"{0} {1}"}\r
         other{"{0} {1}"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.3"}\r
 }\r
index 56e1a67..095352a 100644 (file)
@@ -77,5 +77,5 @@ ur_IN{
             other{"ساموآئی ٹالا"}\r
         }\r
     }\r
-    Version{"2.1.38.39"}\r
+    Version{"2.1.43.65"}\r
 }\r
index 47efa6b..1c470e1 100644 (file)
@@ -600,6 +600,10 @@ uz{
         }\r
         VEF{\r
             "VEF",\r
+            "Venesuela bolivari (2008–2018)",\r
+        }\r
+        VES{\r
+            "VES",\r
             "Venesuela bolivari",\r
         }\r
         VND{\r
@@ -631,7 +635,7 @@ uz{
             "Fransuz Polineziyasi franki",\r
         }\r
         XXX{\r
-            "XXX",\r
+            "¤",\r
             "Noma’lum valyuta",\r
         }\r
         YER{\r
@@ -1345,6 +1349,10 @@ uz{
             other{"O‘zbekiston so‘mi"}\r
         }\r
         VEF{\r
+            one{"Venesuela bolivari (2008–2018)"}\r
+            other{"Venesuela bolivari (2008–2018)"}\r
+        }\r
+        VES{\r
             one{"Venesuela bolivari"}\r
             other{"Venesuela bolivari"}\r
         }\r
@@ -1397,5 +1405,5 @@ uz{
         one{"{0} {1}"}\r
         other{"{0} {1}"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.88"}\r
 }\r
index e45f662..db5a2c0 100644 (file)
@@ -209,6 +209,10 @@ uz_Cyrl{
         }\r
         VEF{\r
             "VEF",\r
+            "Венесуэла боливари (2008–2018)",\r
+        }\r
+        VES{\r
+            "VES",\r
             "Венесуэла боливари",\r
         }\r
         VND{\r
@@ -402,6 +406,10 @@ uz_Cyrl{
             other{"Ўзбекистон сўм"}\r
         }\r
         VEF{\r
+            one{"Венесуэла боливари (2008–2018)"}\r
+            other{"Венесуэла боливари (2008–2018)"}\r
+        }\r
+        VES{\r
             one{"Венесуэла боливари"}\r
             other{"Венесуэла боливари"}\r
         }\r
@@ -414,5 +422,5 @@ uz_Cyrl{
         one{"{0} {1}"}\r
         other{"{0} {1}"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.2"}\r
 }\r
index c6c0c9e..20c5bef 100644 (file)
@@ -1024,6 +1024,10 @@ vi{
         }\r
         VEF{\r
             "VEF",\r
+            "Bolívar Venezuela (2008–2018)",\r
+        }\r
+        VES{\r
+            "VES",\r
             "Bolívar Venezuela",\r
         }\r
         VND{\r
@@ -1731,6 +1735,9 @@ vi{
             other{"Som Uzbekistan"}\r
         }\r
         VEF{\r
+            other{"Bolívar Venezuela (2008–2018)"}\r
+        }\r
+        VES{\r
             other{"Bolívar Venezuela"}\r
         }\r
         VND{\r
@@ -1770,5 +1777,5 @@ vi{
     CurrencyUnitPatterns{\r
         other{"{0} {1}"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.65"}\r
 }\r
index 1e61fe2..3b48caa 100644 (file)
@@ -35,7 +35,7 @@ wae{
             "Dollar",\r
         }\r
         XXX{\r
-            "XXX",\r
+            "¤",\r
             "Unbekannti Wãrig",\r
         }\r
     }\r
index 080abc6..10b9855 100644 (file)
@@ -39,7 +39,7 @@ wo{
             "Franc CFA bu Afrik Sowwu-jant",\r
         }\r
         XXX{\r
-            "XXX",\r
+            "¤",\r
             "Xaalis buñ Xamul",\r
         }\r
     }\r
@@ -88,5 +88,5 @@ wo{
     CurrencyUnitPatterns{\r
         other{"{0} {1}"}\r
     }\r
-    Version{"2.1.38.71"}\r
+    Version{"2.1.43.94"}\r
 }\r
diff --git a/source/data/curr/xh.txt b/source/data/curr/xh.txt
new file mode 100644 (file)
index 0000000..8bfe359
--- /dev/null
@@ -0,0 +1,24 @@
+// © 2016 and later: Unicode, Inc. and others.\r
+// License & terms of use: http://www.unicode.org/copyright.html#License\r
+xh{\r
+    Currencies{\r
+        ZAR{\r
+            "R",\r
+            "iRandi yaseMzanzi Afrika",\r
+        }\r
+    }\r
+    Currencies%narrow{\r
+        ZAR{"R"}\r
+    }\r
+    CurrencyPlurals{\r
+        ZAR{\r
+            one{"iRandi YaseMzanzi Afrika"}\r
+            other{"iRandi yaseMzanzi Afrika"}\r
+        }\r
+    }\r
+    CurrencyUnitPatterns{\r
+        one{"{0} {1}"}\r
+        other{"{0} {1}"}\r
+    }\r
+    Version{"2.1.44.88"}\r
+}\r
index d47882b..f778430 100644 (file)
@@ -55,7 +55,7 @@ yi{
             "גאלד",\r
         }\r
         XXX{\r
-            "XXX",\r
+            "¤",\r
             "אומבאַוואוסטע וואַלוטע",\r
         }\r
     }\r
index 7842b82..ec2cc96 100644 (file)
@@ -238,5 +238,5 @@ yo{
     CurrencyUnitPatterns{\r
         other{"{0} {1}"}\r
     }\r
-    Version{"2.1.39.11"}\r
+    Version{"2.1.44.88"}\r
 }\r
index 27416f5..284a50e 100644 (file)
@@ -223,5 +223,5 @@ yo_BJ{
             "Dɔla ti Orílɛ́ède Siibabuwe",\r
         }\r
     }\r
-    Version{"2.1.39.11"}\r
+    Version{"2.1.44.53"}\r
 }\r
index 35b7f3e..05e4218 100644 (file)
@@ -1044,6 +1044,10 @@ yue{
         }\r
         VEF{\r
             "VEF",\r
+            "委內瑞拉玻利瓦 (VEF)",\r
+        }\r
+        VES{\r
+            "VES",\r
             "委內瑞拉玻利瓦",\r
         }\r
         VND{\r
@@ -2088,6 +2092,9 @@ yue{
             other{"委內瑞拉玻利瓦 (1871–2008)"}\r
         }\r
         VEF{\r
+            other{"委內瑞拉玻利瓦 (VEF)"}\r
+        }\r
+        VES{\r
             other{"委內瑞拉玻利瓦"}\r
         }\r
         VND{\r
@@ -2214,5 +2221,5 @@ yue{
     CurrencyUnitPatterns{\r
         other{"{0} {1}"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.91"}\r
 }\r
index f19bd20..cf3e80e 100644 (file)
@@ -1045,6 +1045,10 @@ yue_Hans{
         }\r
         VEF{\r
             "VEF",\r
+            "委内瑞拉玻利瓦 (2008–2018)",\r
+        }\r
+        VES{\r
+            "VES",\r
             "委内瑞拉玻利瓦",\r
         }\r
         VND{\r
@@ -2089,6 +2093,9 @@ yue_Hans{
             other{"委内瑞拉玻利瓦 (1871–2008)"}\r
         }\r
         VEF{\r
+            other{"委内瑞拉玻利瓦 (2008–2018)"}\r
+        }\r
+        VES{\r
             other{"委内瑞拉玻利瓦"}\r
         }\r
         VND{\r
@@ -2215,5 +2222,5 @@ yue_Hans{
     CurrencyUnitPatterns{\r
         other{"{0} {1}"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.91"}\r
 }\r
index c99e2b9..a6ea353 100644 (file)
@@ -242,5 +242,5 @@ zgh{
     CurrencyUnitPatterns{\r
         other{"{0} {1}"}\r
     }\r
-    Version{"2.1.39.11"}\r
+    Version{"2.1.43.94"}\r
 }\r
index 6c832a0..23d26ba 100644 (file)
@@ -1040,6 +1040,10 @@ zh{
         }\r
         VEF{\r
             "VEF",\r
+            "委内瑞拉玻利瓦尔 (2008–2018)",\r
+        }\r
+        VES{\r
+            "VES",\r
             "委内瑞拉玻利瓦尔",\r
         }\r
         VND{\r
@@ -2061,6 +2065,9 @@ zh{
             other{"委内瑞拉玻利瓦尔 (1871–2008)"}\r
         }\r
         VEF{\r
+            other{"委内瑞拉玻利瓦尔 (2008–2018)"}\r
+        }\r
+        VES{\r
             other{"委内瑞拉玻利瓦尔"}\r
         }\r
         VND{\r
@@ -2139,5 +2146,5 @@ zh{
     CurrencyUnitPatterns{\r
         other{"{0}{1}"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.76"}\r
 }\r
index cb6501a..3ac74ed 100644 (file)
@@ -1045,6 +1045,10 @@ zh_Hant{
         }\r
         VEF{\r
             "VEF",\r
+            "委內瑞拉玻利瓦 (2008–2018)",\r
+        }\r
+        VES{\r
+            "VES",\r
             "委內瑞拉玻利瓦",\r
         }\r
         VND{\r
@@ -1506,6 +1510,9 @@ zh_Hant{
         CLP{\r
             other{"智利披索"}\r
         }\r
+        CNH{\r
+            other{"人民幣(離岸)"}\r
+        }\r
         CNY{\r
             other{"人民幣"}\r
         }\r
@@ -2086,6 +2093,9 @@ zh_Hant{
             other{"委內瑞拉玻利瓦 (1871–2008)"}\r
         }\r
         VEF{\r
+            other{"委內瑞拉玻利瓦 (2008–2018)"}\r
+        }\r
+        VES{\r
             other{"委內瑞拉玻利瓦"}\r
         }\r
         VND{\r
@@ -2212,5 +2222,5 @@ zh_Hant{
     CurrencyUnitPatterns{\r
         other{"{0} {1}"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.91"}\r
 }\r
index 3bcdc59..9add587 100644 (file)
@@ -238,6 +238,10 @@ zh_Hant_HK{
             "TZS",\r
             "坦桑尼亞先令",\r
         }\r
+        VES{\r
+            "VES",\r
+            "VES",\r
+        }\r
         VUV{\r
             "VUV",\r
             "瓦努阿圖瓦圖",\r
@@ -461,5 +465,5 @@ zh_Hant_HK{
             other{"贊比亞克瓦查"}\r
         }\r
     }\r
-    Version{"2.1.39.11"}\r
+    Version{"2.1.43.65"}\r
 }\r
index 3012a7e..82013a7 100644 (file)
@@ -8,5 +8,5 @@ zh_Hant_MO{
             "澳門元",\r
         }\r
     }\r
-    Version{"2.1.38.39"}\r
+    Version{"2.1.43.65"}\r
 }\r
index 1d7044c..bb8a4e6 100644 (file)
@@ -604,6 +604,10 @@ zu{
         }\r
         VEF{\r
             "VEF",\r
+            "i-Venezuelan Bolívar (2008–2018)",\r
+        }\r
+        VES{\r
+            "VES",\r
             "i-Venezuelan Bolívar",\r
         }\r
         VND{\r
@@ -635,7 +639,7 @@ zu{
             "i-CFP Franc",\r
         }\r
         XXX{\r
-            "XXX",\r
+            "¤",\r
             "imali engaziwa",\r
         }\r
         YER{\r
@@ -1344,6 +1348,10 @@ zu{
             other{"i-Uzbekistan Som"}\r
         }\r
         VEF{\r
+            one{"i-Venezuelan Bolívar (2008–2018)"}\r
+            other{"i-Venezuelan Bolívar (2008–2018)"}\r
+        }\r
+        VES{\r
             one{"i-Venezuelan Bolívar"}\r
             other{"i-Venezuelan Bolívar"}\r
         }\r
@@ -1396,5 +1404,5 @@ zu{
         one{"{0} {1}"}\r
         other{"{0} {1}"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.65"}\r
 }\r
index 3195734..f801384 100644 (file)
                <include locales="hu_HU"/>\r
                <include locales="hy"/>\r
                <include locales="hy_AM"/>\r
+               <include locales="ia"/>\r
+               <include locales="ia_001"/>\r
                <include locales="id"/>\r
                <include locales="id_ID"/>\r
                <include locales="ig"/>\r
                <include locales="jgo_CM"/>\r
                <include locales="jmc"/>\r
                <include locales="jmc_TZ"/>\r
+               <include locales="jv"/>\r
+               <include locales="jv_ID"/>\r
                <include locales="ka"/>\r
                <include locales="ka_GE"/>\r
                <include locales="kab"/>\r
                <include locales="ksf_CM"/>\r
                <include locales="ksh"/>\r
                <include locales="ksh_DE"/>\r
+               <include locales="ku"/>\r
+               <include locales="ku_TR"/>\r
                <include locales="kw"/>\r
                <include locales="kw_GB"/>\r
                <include locales="ky"/>\r
                <include locales="mgh_MZ"/>\r
                <include locales="mgo"/>\r
                <include locales="mgo_CM"/>\r
+               <include locales="mi"/>\r
+               <include locales="mi_NZ"/>\r
                <include locales="mk"/>\r
                <include locales="mk_MK"/>\r
                <include locales="ml"/>\r
                <include locales="saq_KE"/>\r
                <include locales="sbp"/>\r
                <include locales="sbp_TZ"/>\r
+               <include locales="sd"/>\r
+               <include locales="sd_PK"/>\r
                <include locales="se"/>\r
                <include locales="se_FI"/>\r
                <include locales="se_NO"/>\r
                <include locales="ti"/>\r
                <include locales="ti_ER"/>\r
                <include locales="ti_ET"/>\r
+               <include locales="tk"/>\r
+               <include locales="tk_TM"/>\r
                <include locales="tl"/>\r
                <include locales="tl_PH"/>\r
                <include locales="to"/>\r
                <include locales="wae_CH"/>\r
                <include locales="wo"/>\r
                <include locales="wo_SN"/>\r
+               <include locales="xh"/>\r
+               <include locales="xh_ZA"/>\r
                <include locales="xog"/>\r
                <include locales="xog_UG"/>\r
                <include locales="yav"/>\r
index 1af4c21..7eef744 100644 (file)
@@ -24,7 +24,7 @@ In the following,
 \r
     *NOTE* You should do a full rebuild after any data changes.\r
     \r
-1a.  If you didn't download from Subversion, you will also need the "icu4c-*-data.zip" file.  Unpack this file and replace the icu/source/data directory's contents with the contents of the data directory from the zip file.  \r
+1a.  If you didn't download from GitHub, you will also need the "icu4c-*-data.zip" file.  Unpack this file and replace the icu/source/data directory's contents with the contents of the data directory from the zip file.  \r
 \r
 \r
 2. Step 2 depends on whether you are on a Windows or a Unix-type\r
similarity index 80%
rename from source/data/in/icudt62l.dat
rename to source/data/in/icudt63l.dat
index 7e82c91..142f0b4 100644 (file)
Binary files a/source/data/in/icudt62l.dat and b/source/data/in/icudt63l.dat differ
index c421baf..6566a2c 100644 (file)
Binary files a/source/data/in/nfc.nrm and b/source/data/in/nfc.nrm differ
index 6fa226e..4d1fe7d 100644 (file)
Binary files a/source/data/in/nfkc.nrm and b/source/data/in/nfkc.nrm differ
index afc6971..e2180cf 100644 (file)
Binary files a/source/data/in/nfkc_cf.nrm and b/source/data/in/nfkc_cf.nrm differ
index dec3a4b..ca3998c 100644 (file)
Binary files a/source/data/in/pnames.icu and b/source/data/in/pnames.icu differ
index 52a8913..4bae516 100644 (file)
Binary files a/source/data/in/uts46.nrm and b/source/data/in/uts46.nrm differ
index e20bf7c..2e41396 100644 (file)
@@ -11,11 +11,11 @@ af{
         colNormalization{"Genormaliseerde sortering"}\r
         colNumeric{"Numeriese sortering"}\r
         colStrength{"Sorteringssterkte"}\r
-        collation{"Sorteervolgorde"}\r
+        collation{"Rangskikvolgorde"}\r
         currency{"Geldeenheid"}\r
         hc{"Uursiklus (12 vs 24)"}\r
-        lb{"Reëlbreek-styl"}\r
-        ms{"Meetstelsel"}\r
+        lb{"Reëlafbreek-styl"}\r
+        ms{"Maatstelsel"}\r
         numbers{"Syfers"}\r
         timezone{"Tydsone"}\r
         va{"Lokaalvariant"}\r
@@ -95,7 +95,7 @@ af{
         de_CH{"Switserse hoog-Duits"}\r
         dgr{"Dogrib"}\r
         dje{"Zarma"}\r
-        dsb{"Lae Sorbies"}\r
+        dsb{"Benedesorbies"}\r
         dua{"Duala"}\r
         dv{"Divehi"}\r
         dyo{"Jola-Fonyi"}\r
@@ -144,7 +144,7 @@ af{
         gwi{"Gwichʼin"}\r
         ha{"Hausa"}\r
         hak{"Hakka-Sjinees"}\r
-        haw{"Hawaiies"}\r
+        haw{"Hawais"}\r
         he{"Hebreeus"}\r
         hi{"Hindi"}\r
         hil{"Hiligaynon"}\r
@@ -261,7 +261,7 @@ af{
         ms{"Maleis"}\r
         mt{"Maltees"}\r
         mua{"Mundang"}\r
-        mul{"Veelvuldige tale"}\r
+        mul{"Verskeie tale"}\r
         mus{"Kreek"}\r
         mwl{"Mirandees"}\r
         my{"Birmaans"}\r
@@ -271,7 +271,7 @@ af{
         nan{"Min Nan-Sjinees"}\r
         nap{"Neapolitaans"}\r
         naq{"Nama"}\r
-        nb{"Noorse Bokmål"}\r
+        nb{"Boeknoors"}\r
         nd{"Noord-Ndebele"}\r
         nds{"Lae Duits"}\r
         nds_NL{"Nedersaksies"}\r
@@ -283,7 +283,7 @@ af{
         nl{"Nederlands"}\r
         nl_BE{"Vlaams"}\r
         nmg{"Kwasio"}\r
-        nn{"Noorweegse Nynorsk"}\r
+        nn{"Nuwe Noors"}\r
         nnh{"Ngiemboon"}\r
         no{"Noors"}\r
         nog{"Nogai"}\r
@@ -316,7 +316,6 @@ af{
         rm{"Reto-Romaans"}\r
         rn{"Rundi"}\r
         ro{"Roemeens"}\r
-        ro_MD{"Moldawies"}\r
         rof{"Rombo"}\r
         root{"Root"}\r
         ru{"Russies"}\r
@@ -363,7 +362,6 @@ af{
         suk{"Sukuma"}\r
         sv{"Sweeds"}\r
         sw{"Swahili"}\r
-        sw_CD{"Swahili (Kongo)"}\r
         swb{"Comoraans"}\r
         syr{"Siries"}\r
         ta{"Tamil"}\r
@@ -371,7 +369,7 @@ af{
         tem{"Timne"}\r
         teo{"Teso"}\r
         tet{"Tetoem"}\r
-        tg{"Tadzjieks"}\r
+        tg{"Tadjiks"}\r
         th{"Thai"}\r
         ti{"Tigrinya"}\r
         tig{"Tigre"}\r
@@ -494,9 +492,9 @@ af{
             chinese{"Sjinese kalender"}\r
             coptic{"Koptiese kalender"}\r
             dangi{"Dangi-kalender"}\r
-            ethiopic{"Ethiopiese kalender"}\r
+            ethiopic{"Etiopiese kalender"}\r
             ethiopic-amete-alem{"Etiopiese Amete Alem-kalender"}\r
-            gregorian{"Gregoriese kalender"}\r
+            gregorian{"Gregoriaanse kalender"}\r
             hebrew{"Hebreeuse kalender"}\r
             indian{"Indiese nasionale kalender"}\r
             islamic{"Islamitiese kalender"}\r
@@ -508,7 +506,7 @@ af{
         }\r
         cf{\r
             account{"Rekeningkundige geldeenheidformaat"}\r
-            standard{"Standaard Geldeenheidformaat"}\r
+            standard{"Standaard geldeenheidformaat"}\r
         }\r
         colAlternate{\r
             non-ignorable{"Sorteer simbole"}\r
@@ -545,7 +543,7 @@ af{
         collation{\r
             big5han{"Tradisionele Chinese sorteervolgorde - Groot5"}\r
             dictionary{"Woordeboek-sorteervolgorde"}\r
-            ducet{"Verstek Unicode-sorteervolgorde"}\r
+            ducet{"Verstek Unicode-rangskikvolgorde"}\r
             gb2312han{"Vereenvoudigde Chinese sorteervolgorde - GB2312"}\r
             phonebook{"Foonboek-sorteervolgorde"}\r
             phonetic{"Fonetiese sorteerorde"}\r
@@ -553,14 +551,14 @@ af{
             reformed{"Gereformeerde sorteervolgorde"}\r
             search{"Algemenedoel-soektog"}\r
             searchjl{"Soek volgens Hangul-beginkonsonant"}\r
-            standard{"Standaard sorteervolgorde"}\r
+            standard{"Standaard rangskikvolgorde"}\r
             stroke{"Slag-sorteervolgorde"}\r
             traditional{"Tradisionele sorteervolgorde"}\r
             unihan{"Radikale-slag-sorteervolgorde"}\r
         }\r
         d0{\r
             fwidth{"Vollewydte"}\r
-            hwidth{"halfwydte"}\r
+            hwidth{"Halfwydte"}\r
             npinyin{"Numeries"}\r
         }\r
         hc{\r
@@ -570,18 +568,18 @@ af{
             h24{"24-uur-stelsel (1-24)"}\r
         }\r
         lb{\r
-            loose{"Los reëlbreek-styl"}\r
-            normal{"Normale reëlbreek-styl"}\r
-            strict{"Streng reëlbreek-styl"}\r
+            loose{"Losse reëlafbreek-styl"}\r
+            normal{"Normale reëlafbreek-styl"}\r
+            strict{"Streng reëlafbreek-styl"}\r
         }\r
         m0{\r
-            bgn{"BGN"}\r
-            ungegn{"UNGEGN"}\r
+            bgn{"BGN-transliterasie"}\r
+            ungegn{"UNGEGN-transliterasie"}\r
         }\r
         ms{\r
             metric{"Metrieke stelsel"}\r
-            uksystem{"Imperiale meetstelsel"}\r
-            ussystem{"VS-meetstelsel"}\r
+            uksystem{"Imperiale maatstelsel"}\r
+            ussystem{"VSA-maatstelsel"}\r
         }\r
         numbers{\r
             arab{"Arabies-Indiese syfers"}\r
@@ -590,7 +588,7 @@ af{
             armnlow{"Armeense kleinletter-syfers"}\r
             beng{"Bengaalse syfers"}\r
             deva{"Devanagari-syfers"}\r
-            ethi{"Ethiopiese syfers"}\r
+            ethi{"Etiopiese syfers"}\r
             finance{"Finansiële syfers"}\r
             fullwide{"Vollewydte-syfers"}\r
             geor{"Georgiese syfers"}\r
@@ -626,7 +624,7 @@ af{
             vaii{"Vai-syfers"}\r
         }\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.65"}\r
     characterLabelPattern{\r
         all{"{0} – Alle"}\r
         category-list{"{0}: {1}"}\r
index 7124e12..4434b2b 100644 (file)
@@ -52,7 +52,7 @@ am{
         as{"አሳሜዛዊ"}\r
         asa{"አሱ"}\r
         ase{"የአሜሪካ የምልክት ቋንቋ"}\r
-        ast{"á\8a á\8b\8dá\88µá\89µሪያን"}\r
+        ast{"á\8a á\88µá\89±ሪያን"}\r
         av{"አቫሪክ"}\r
         awa{"አዋድሂ"}\r
         ay{"አያማርኛ"}\r
@@ -138,7 +138,7 @@ am{
         dsb{"የታችኛው ሰርቢያንኛ"}\r
         dtp{"ሴንተራል ዱሰን"}\r
         dua{"ዱዋላኛ"}\r
-        dv{"á\8b²á\89¬á\88\85"}\r
+        dv{"á\8b²á\89¬á\88\82"}\r
         dyo{"ጆላ ፎንያኛ"}\r
         dyu{"ድዩላ"}\r
         dz{"ድዞንግኻኛ"}\r
@@ -260,7 +260,7 @@ am{
         ks{"ካሽሚርኛ"}\r
         ksb{"ሻምባላ"}\r
         ksf{"ባፊያ"}\r
-        ksh{"á\8a®á\88\8eá\8a\9dá\8b«á\8a\95"}\r
+        ksh{"á\8a®á\88\8eá\8a\9dá\8a\9b"}\r
         ku{"ኩርድሽኛ"}\r
         kum{"ኩማይክ"}\r
         kv{"ኮሚ"}\r
@@ -304,7 +304,7 @@ am{
         min{"ሚናንግካባኡ"}\r
         mk{"ማሴዶንኛ"}\r
         ml{"ማላያላምኛ"}\r
-        mn{"á\88\9eá\8a\95á\8c\8eá\88\8bá\8b\8aኛ"}\r
+        mn{"á\88\9eá\8a\95á\8c\8eá\88\8aá\8b«ኛ"}\r
         mni{"ማኒፑሪ"}\r
         moh{"ሞሃውክ"}\r
         mos{"ሞሲ"}\r
@@ -327,7 +327,7 @@ am{
         nds{"የታችኛው ጀርመን"}\r
         nds_NL{"የታችኛው ሳክሰን"}\r
         ne{"ኔፓሊኛ"}\r
-        new{"á\8a\90á\8b\8bá\88ª"}\r
+        new{"á\8a\92á\8b\8bá\88ª(á\8a\94á\8d\93á\88\8d)"}\r
         ng{"ንዶንጋ"}\r
         nia{"ኒአስ"}\r
         niu{"ኒዩአንኛ"}\r
@@ -411,7 +411,7 @@ am{
         snk{"ሶኒንኬ"}\r
         so{"ሱማልኛ"}\r
         sq{"አልባንያንኛ"}\r
-        sr{"á\88°á\88­á\89¢ኛ"}\r
+        sr{"á\88°á\88­á\89¥á\8b«ኛ"}\r
         srn{"ስራናን ቶንጎ"}\r
         ss{"ስዋቲኛ"}\r
         ssy{"ሳሆኛ"}\r
@@ -449,7 +449,7 @@ am{
         twq{"ታሳዋቅ"}\r
         ty{"ታሂታንኛ"}\r
         tyv{"ቱቪንያንኛ"}\r
-        tzm{"መካከለኛ አትላስ ታማዚግት"}\r
+        tzm{"መካከለኛው አትላስ ታማዚኛ"}\r
         udm{"ኡድሙርት"}\r
         ug{"ኡዊግሁርኛ"}\r
         uk{"ዩክሬንኛ"}\r
@@ -561,7 +561,7 @@ am{
             gregorian{"የግሪጎሪያን የቀን አቆጣጠር"}\r
             hebrew{"የእብራዊያን የቀን አቆጣጠር"}\r
             indian{"የህንድ ብሔራዊ የቀን አቆጣጠር"}\r
-            islamic{"á\8b¨á\8a¥á\88µá\88\8bá\88\9bá\8b\8a á\8b¨á\88°á\8b\93á\89µ አቆጣጠር"}\r
+            islamic{"á\8a¥á\88µá\88\8bá\88\9bá\8b\8a á\8b¨á\89\80á\8a\95 አቆጣጠር"}\r
             islamic-civil{"የእስላም ህዝባዊ የቀን አቆጣጠር"}\r
             iso8601{"ISO-8601 የቀን አቆጣጠር"}\r
             japanese{"የጃፓን የቀን አቆጣጠር"}\r
@@ -622,7 +622,7 @@ am{
         }\r
         d0{\r
             fwidth{"ሙሉ ወርድ"}\r
-            hwidth{"á\88\83á\88\8dá\8d\8dá\8b\8aá\8bµá\8b\9d"}\r
+            hwidth{"á\8c\8dá\88\9bá\88½ á\8b\88á\88­á\8bµ"}\r
             npinyin{"አሃዛዊ"}\r
         }\r
         hc{\r
@@ -652,7 +652,7 @@ am{
             armnlow{"የአሜሪካን ንዑስ ሆሄ አሃዞች"}\r
             beng{"የቤንጋሊ አሃዞች"}\r
             deva{"የዴቫንጋሪ አሃዞች"}\r
-            ethi{"á\8b¨á\8a¢á\89µá\8b®á\8d\92á\8a­ ቁጥሮች"}\r
+            ethi{"á\8b¨á\8a¢á\89µá\8b®á\8cµá\8b« ቁጥሮች"}\r
             finance{"የፋይናንስ ቁጥሮች"}\r
             fullwide{"የሙሉ ወርድ አሃዞች"}\r
             geor{"የጆርጂያን ቁጥሮች"}\r
@@ -688,7 +688,7 @@ am{
             vaii{"የቫይ አሃዞች"}\r
         }\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.65"}\r
     characterLabelPattern{\r
         all{"{0} — ሁሉም"}\r
         category-list{"{0}: {1}"}\r
index 2bdb2c6..8a4d3bc 100644 (file)
@@ -93,7 +93,7 @@ ar{
         cay{"الكايوجية"}\r
         cch{"الأتسام"}\r
         ce{"الشيشانية"}\r
-        ceb{"اÙ\84سÙ\8aبÙ\88نية"}\r
+        ceb{"اÙ\84سÙ\8aبÙ\8aÙ\88انية"}\r
         cgg{"تشيغا"}\r
         ch{"التشامورو"}\r
         chb{"التشيبشا"}\r
@@ -203,7 +203,7 @@ ar{
         ha{"الهوسا"}\r
         hai{"الهيدا"}\r
         hak{"الهاكا الصينية"}\r
-        haw{"لغة أهل الهاواي"}\r
+        haw{"لغة هاواي"}\r
         he{"العبرية"}\r
         hi{"الهندية"}\r
         hil{"الهيليجينون"}\r
@@ -321,7 +321,7 @@ ar{
         men{"الميند"}\r
         mer{"الميرو"}\r
         mfe{"المورسيانية"}\r
-        mg{"المالاغاشية"}\r
+        mg{"الملغاشي"}\r
         mga{"الأيرلندية الوسطى"}\r
         mgh{"ماخاوا-ميتو"}\r
         mgo{"ميتا"}\r
@@ -351,7 +351,7 @@ ar{
         nan{"مين-نان الصينية"}\r
         nap{"النابولية"}\r
         naq{"لغة الناما"}\r
-        nb{"بÙ\88Ù\83Ù\85Ù\88Ù\84 Ø§Ù\84Ù\86رÙ\88Ù\8aجÙ\8aØ©"}\r
+        nb{"اÙ\84Ù\86رÙ\88Ù\8aجÙ\8aØ© Ø¨Ù\88Ù\83Ù\85اÙ\84"}\r
         nd{"النديبيل الشمالية"}\r
         nds{"الألمانية السفلى"}\r
         nds_NL{"السكسونية السفلى"}\r
@@ -379,7 +379,7 @@ ar{
         nyn{"النيانكول"}\r
         nyo{"النيورو"}\r
         nzi{"النزيما"}\r
-        oc{"الأوكيتانية"}\r
+        oc{"الأوكسيتانية"}\r
         oj{"الأوجيبوا"}\r
         om{"الأورومية"}\r
         or{"الأورية"}\r
@@ -405,7 +405,7 @@ ar{
         pt_BR{"البرتغالية البرازيلية"}\r
         pt_PT{"البرتغالية الأوروبية"}\r
         qu{"الكويتشوا"}\r
-        quc{"كيشي"}\r
+        quc{"الكيشية"}\r
         raj{"الراجاسثانية"}\r
         rap{"الراباني"}\r
         rar{"الراروتونجاني"}\r
@@ -422,11 +422,11 @@ ar{
         rwk{"الروا"}\r
         sa{"السنسكريتية"}\r
         sad{"السانداوي"}\r
-        sah{"الساخية"}\r
+        sah{"الساخيّة"}\r
         sam{"الآرامية السامرية"}\r
         saq{"سامبورو"}\r
         sas{"الساساك"}\r
-        sat{"السانتالي"}\r
+        sat{"السانتالية"}\r
         sba{"نامبي"}\r
         sbp{"سانغو"}\r
         sc{"السردينية"}\r
@@ -852,7 +852,7 @@ ar{
         VALENCIA{"بلنسية"}\r
         WADEGILE{"المندرين باللاتينية - ويد–جيلز"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.50"}\r
     characterLabelPattern{\r
         all{"{0} - الكل"}\r
         category-list{"{0}: {1}"}\r
@@ -864,11 +864,11 @@ ar{
         other{"{0} - غير ذلك"}\r
         scripts{"أنظمة الكتابة - {0}"}\r
         strokes{\r
-            few{"{0} Ø¶ØºØ·Ø©"}\r
+            few{"{0} Ø¶ØºØ·Ø§Øª"}\r
             many{"{0} ضغطة"}\r
-            one{"{0} ضغطة"}\r
+            one{"ضغطة واحدة ({0})"}\r
             other{"{0} ضغطة"}\r
-            two{"{0} ضغطة"}\r
+            two{"ضغطتان ({0})"}\r
             zero{"{0} ضغطة"}\r
         }\r
     }\r
index d5475e4..7d59bd7 100644 (file)
@@ -13,5 +13,5 @@ ar_SA{
         te{"التيلوجو"}\r
         ti{"التيغرينية"}\r
     }\r
-    Version{"2.1.38.80"}\r
+    Version{"2.1.43.65"}\r
 }\r
index 578859b..9d9b952 100644 (file)
@@ -542,7 +542,7 @@ as{
             tibt{"তিব্বতী অংক"}\r
         }\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.94"}\r
     characterLabelPattern{\r
         all{"{0} — সকলো"}\r
         category-list{"{0}: {1}"}\r
index 69a1f7e..35685a2 100644 (file)
@@ -758,54 +758,6 @@ ast{
         Phnx{"feniciu"}\r
         Plrd{"fonéticu de Pollard"}\r
         Prti{"partu d’inscripciones"}\r
-        Qaaa{"qaaa"}\r
-        Qaab{"qaab"}\r
-        Qaac{"qaac"}\r
-        Qaad{"qaad"}\r
-        Qaae{"qaae"}\r
-        Qaaf{"qaaf"}\r
-        Qaag{"qaag"}\r
-        Qaah{"qaah"}\r
-        Qaak{"qaak"}\r
-        Qaal{"qaal"}\r
-        Qaam{"qaam"}\r
-        Qaan{"qaan"}\r
-        Qaao{"qaao"}\r
-        Qaap{"qaap"}\r
-        Qaaq{"qaaq"}\r
-        Qaar{"qaar"}\r
-        Qaas{"qaas"}\r
-        Qaat{"qaat"}\r
-        Qaau{"qaau"}\r
-        Qaav{"qaav"}\r
-        Qaaw{"qaaw"}\r
-        Qaax{"qaax"}\r
-        Qaay{"qaay"}\r
-        Qaaz{"qaaz"}\r
-        Qaba{"qaba"}\r
-        Qabb{"qabb"}\r
-        Qabc{"qabc"}\r
-        Qabd{"qabd"}\r
-        Qabe{"qabe"}\r
-        Qabf{"qabf"}\r
-        Qabg{"qabg"}\r
-        Qabh{"qabh"}\r
-        Qabi{"qabi"}\r
-        Qabj{"qabj"}\r
-        Qabk{"qabk"}\r
-        Qabl{"qabl"}\r
-        Qabm{"qabm"}\r
-        Qabn{"qabn"}\r
-        Qabo{"qabo"}\r
-        Qabp{"qabp"}\r
-        Qabq{"qabq"}\r
-        Qabr{"qabr"}\r
-        Qabs{"qabs"}\r
-        Qabt{"qabt"}\r
-        Qabu{"qabu"}\r
-        Qabv{"qabv"}\r
-        Qabw{"qabw"}\r
-        Qabx{"qabx"}\r
         Rjng{"rejang"}\r
         Roro{"rongorongo"}\r
         Runr{"runes"}\r
@@ -1077,7 +1029,7 @@ ast{
         VALLADER{"VALLADER"}\r
         WADEGILE{"romanización de Wade-Giles"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.91"}\r
     characterLabelPattern{\r
         all{"{0} — too"}\r
         category-list{"{0}: {1}"}\r
index 36cf8eb..6ba499b 100644 (file)
@@ -745,7 +745,7 @@ az{
             tibt{"Tibet Rəqəmləri"}\r
         }\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.53"}\r
     characterLabelPattern{\r
         all{"{0} — Bütün"}\r
         category-list{"{0}: {1}"}\r
index b15a7db..8f6eae9 100644 (file)
@@ -399,7 +399,7 @@ az_Cyrl{
     Scripts{\r
         Cyrl{"Кирил"}\r
     }\r
-    Version{"2.1.38.69"}\r
+    Version{"2.1.44.53"}\r
     codePatterns{\r
         language{"Дил: {0}"}\r
         script{"Скрипт: {0}"}\r
index 8c11917..9ae9092 100644 (file)
@@ -307,6 +307,7 @@ be{
         rm{"рэтараманская"}\r
         rn{"рундзі"}\r
         ro{"румынская"}\r
+        ro_MD{"малдаўская"}\r
         rof{"ромба"}\r
         root{"корань"}\r
         ru{"руская"}\r
@@ -550,7 +551,7 @@ be{
             tibt{"тыбецкія лічбы"}\r
         }\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.65"}\r
     characterLabelPattern{\r
         all{"{0} — Усё"}\r
         category-list{"{0}: {1}"}\r
index 5e62952..1bf4847 100644 (file)
@@ -64,7 +64,7 @@ bg{
         bez{"бена"}\r
         bg{"български"}\r
         bgn{"западен балочи"}\r
-        bho{"божпури"}\r
+        bho{"боджпÑ\83Ñ\80и"}\r
         bi{"бислама"}\r
         bik{"биколски"}\r
         bin{"бини"}\r
@@ -95,7 +95,7 @@ bg{
         cho{"чокто"}\r
         chp{"чиипувски"}\r
         chr{"черокски"}\r
-        chy{"Ñ\87ейенски"}\r
+        chy{"Ñ\88айенски"}\r
         ckb{"кюрдски (централен)"}\r
         co{"корсикански"}\r
         cop{"коптски"}\r
@@ -109,7 +109,7 @@ bg{
         cy{"уелски"}\r
         da{"датски"}\r
         dak{"дакотски"}\r
-        dar{"даÑ\80гва"}\r
+        dar{"даÑ\80гинÑ\81ки"}\r
         dav{"таита"}\r
         de{"немски"}\r
         del{"делауер"}\r
@@ -315,7 +315,7 @@ bg{
         mt{"малтийски"}\r
         mua{"мунданг"}\r
         mul{"многоезични"}\r
-        mus{"кÑ\80ик"}\r
+        mus{"мÑ\83Ñ\81когÑ\81ки"}\r
         mwl{"мирандийски"}\r
         mwr{"марвари"}\r
         my{"бирмански"}\r
@@ -828,7 +828,7 @@ bg{
         VALENCIA{"Валенсиански"}\r
         WADEGILE{"Уейд-Джайлс романизация"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.94"}\r
     characterLabelPattern{\r
         all{"{0} – всички"}\r
         category-list{"{0}: {1}"}\r
index 81e64cc..15184a1 100644 (file)
@@ -47,7 +47,7 @@ bn{
         arn{"মাপুচি"}\r
         arp{"আরাপাহো"}\r
         arw{"আরাওয়াক"}\r
-        as{"à¦\86সামি"}\r
+        as{"à¦\85সমà§\80য়া"}\r
         asa{"আসু"}\r
         ast{"আস্তুরিয়"}\r
         av{"আভেরিক"}\r
@@ -127,7 +127,7 @@ bn{
         dyo{"জোলা-ফনী"}\r
         dyu{"ডিউলা"}\r
         dz{"জোঙ্গা"}\r
-        dzg{"দাà¦\97াà¦\9cা"}\r
+        dzg{"দাà¦\9cাà¦\97া"}\r
         ebu{"এম্বু"}\r
         ee{"ইউয়ি"}\r
         efi{"এফিক"}\r
@@ -267,14 +267,14 @@ bn{
         ks{"কাশ্মীরি"}\r
         ksb{"শাম্বালা"}\r
         ksf{"বাফিয়া"}\r
-        ksh{"à¦\95লà§\8dশ"}\r
+        ksh{"à¦\95লà§\8bনিয়ান"}\r
         ku{"কুর্দিশ"}\r
         kum{"কুমিক"}\r
         kut{"কুটেনাই"}\r
         kv{"কোমি"}\r
         kw{"কর্ণিশ"}\r
         ky{"কির্গিজ"}\r
-        la{"লাà¦\9fিন"}\r
+        la{"লাতিন"}\r
         lad{"লাডিনো"}\r
         lag{"লাঙ্গি"}\r
         lah{"লান্ডা"}\r
@@ -317,7 +317,7 @@ bn{
         mh{"মার্শালিজ"}\r
         mi{"মাওরি"}\r
         mic{"মিকম্যাক"}\r
-        min{"মিনাà¦\99à§\8dà¦\97à§\8dâ\80\8cকাবাউ"}\r
+        min{"মিনাà¦\82কাবাউ"}\r
         mk{"ম্যাসিডোনীয়"}\r
         ml{"মালায়ালাম"}\r
         mn{"মঙ্গোলিয়"}\r
@@ -349,7 +349,7 @@ bn{
         ng{"এন্দোঙ্গা"}\r
         nia{"নিয়াস"}\r
         niu{"নিউয়ান"}\r
-        nl{"ডাà¦\9a"}\r
+        nl{"à¦\93লনà§\8dদাà¦\9c"}\r
         nl_BE{"ফ্লেমিশ"}\r
         nmg{"কোয়াসিও"}\r
         nn{"নরওয়েজীয়ান নিনর্স্ক"}\r
@@ -463,7 +463,7 @@ bn{
         syc{"প্রাচীন সিরিও"}\r
         syr{"সিরিয়াক"}\r
         ta{"তামিল"}\r
-        te{"তà§\87লà§\87গু"}\r
+        te{"তà§\87লà§\81গু"}\r
         tem{"টাইম্নে"}\r
         teo{"তেসো"}\r
         ter{"তেরেনো"}\r
@@ -678,7 +678,7 @@ bn{
         Zinh{"কাই"}\r
         Zmth{"গাণিতিক চিহ্ন"}\r
         Zsye{"ইমোজি"}\r
-        Zsym{"পà§\8dরতিকগুলি"}\r
+        Zsym{"পà§\8dরতà§\80কগুলি"}\r
         Zxxx{"অলিখিত"}\r
         Zyyy{"সাধারন"}\r
         Zzzz{"অজানা লিপি"}\r
@@ -872,7 +872,7 @@ bn{
             wara{"ওয়ারেং সিটি সংখ্যা"}\r
         }\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.91"}\r
     characterLabelPattern{\r
         all{"{0} — সমস্ত"}\r
         category-list{"{0}: {1}"}\r
index 3fca182..f7ed6fa 100644 (file)
@@ -4,5 +4,5 @@ bn_IN{
     Languages{\r
         ksh{"কোলোনিয়ান"}\r
     }\r
-    Version{"2.1.38.69"}\r
+    Version{"2.1.43.65"}\r
 }\r
index 4797c47..8b1f4a8 100644 (file)
@@ -591,6 +591,7 @@ br{
         Hira{"hiragana"}\r
         Hluw{"hieroglifoù Anatolia"}\r
         Hrkt{"silabennaouegoù japanek"}\r
+        Hung{"henhungarek"}\r
         Ital{"henitalek"}\r
         Jamo{"jamo"}\r
         Java{"javanek"}\r
@@ -602,13 +603,19 @@ br{
         Laoo{"laosek"}\r
         Latg{"latin gouezelek"}\r
         Latn{"latin"}\r
+        Lyci{"likiek"}\r
+        Lydi{"lidiek"}\r
+        Mani{"manikeek"}\r
         Maya{"hieroglifoù mayaek"}\r
         Mlym{"malayalam"}\r
         Mong{"mongolek"}\r
         Mymr{"myanmar"}\r
+        Narb{"henarabek an Norzh"}\r
         Ogam{"ogam"}\r
         Orya{"oriya"}\r
         Runr{"runek"}\r
+        Samr{"samaritek"}\r
+        Sarb{"henarabek ar Su"}\r
         Sinh{"singhalek"}\r
         Sund{"sundanek"}\r
         Syrc{"siriek"}\r
@@ -624,6 +631,7 @@ br{
         Ugar{"ougaritek"}\r
         Vaii{"vai"}\r
         Xpeo{"persek kozh"}\r
+        Xsux{"gennheñvel"}\r
         Zmth{"notadur jedoniel"}\r
         Zsye{"fromlunioù"}\r
         Zsym{"arouezioù"}\r
@@ -784,6 +792,7 @@ br{
         HSISTEMO{"esperanteg sistem H"}\r
         IJEKAVSK{"serbeg gant distagadur ijekavian"}\r
         ITIHASA{"sanskriteg itihâsa"}\r
+        IVANCHOV{"reizhskrivadur Ivanchov"}\r
         JAUER{"rannyezh romañchek Jauer"}\r
         JYUTPING{"romanekadur kantonek Jyutping"}\r
         KKCOR{"kerneveureg kumun"}\r
@@ -835,7 +844,7 @@ br{
         WADEGILE{"romanekadur Wade-Giles"}\r
         XSISTEMO{"esperanteg sistem X"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.91"}\r
     codePatterns{\r
         language{"{0}"}\r
         script{"{0}"}\r
index c8460ff..5d5c883 100644 (file)
@@ -609,7 +609,7 @@ brx{
         SOLBA{"श्टोलविज़्ज़ा या सोलबीका डायलेक्ट"}\r
         TARASK{"तारास्कीएवीचा वर्तनी"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.41.34"}\r
     codePatterns{\r
         script{"देवनागरी: {0}"}\r
         territory{"क्षेत्र:भारत {0}"}\r
index dae17f7..2166d73 100644 (file)
@@ -205,7 +205,7 @@ bs{
         inh{"ingušetski"}\r
         io{"ido"}\r
         is{"islandski"}\r
-        it{"talijanski"}\r
+        it{"italijanski"}\r
         iu{"inuktitut"}\r
         ja{"japanski"}\r
         jbo{"lojban"}\r
@@ -796,7 +796,7 @@ bs{
         TARASK{"Taraskijevica ortografija"}\r
         VALENCIA{"Valencijski"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.88"}\r
     characterLabelPattern{\r
         all{"{0} — sve"}\r
         category-list{"{0}: {1}"}\r
index d82b3e3..45e5160 100644 (file)
@@ -696,7 +696,7 @@ bs_Cyrl{
         TARASK{"Тараскијевичка ортографија"}\r
         VALENCIA{"Валенцијска"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.41.34"}\r
     characterLabelPattern{\r
         all{"{0} — све"}\r
         strokes{\r
index fa87785..06ad57b 100644 (file)
@@ -13,9 +13,9 @@ ca{
         colStrength{"Força de l’ordenació"}\r
         collation{"ordenació"}\r
         currency{"moneda"}\r
-        hc{"sistema horari (12h o 24h)"}\r
+        hc{"sistema horari (12 h o 24 h)"}\r
         lb{"estil de salt de línia"}\r
-        ms{"Sistema de mesures"}\r
+        ms{"sistema de mesures"}\r
         numbers{"xifres"}\r
         timezone{"Zona horària"}\r
         va{"Variant local"}\r
@@ -59,7 +59,7 @@ ca{
         av{"àvar"}\r
         awa{"awadhi"}\r
         ay{"aimara"}\r
-        az{"àzeri"}\r
+        az{"azerbaidjanès"}\r
         ba{"baixkir"}\r
         bal{"balutxi"}\r
         ban{"balinès"}\r
@@ -67,7 +67,7 @@ ca{
         bas{"basa"}\r
         bax{"bamum"}\r
         bbj{"ghomala"}\r
-        be{"bielorús"}\r
+        be{"belarús"}\r
         bej{"beja"}\r
         bem{"bemba"}\r
         bez{"bena"}\r
@@ -78,7 +78,7 @@ ca{
         bho{"bhojpuri"}\r
         bi{"bislama"}\r
         bik{"bicol"}\r
-        bin{"bini"}\r
+        bin{"edo"}\r
         bkm{"kom"}\r
         bla{"blackfoot"}\r
         bm{"bambara"}\r
@@ -92,7 +92,7 @@ ca{
         bss{"akoose"}\r
         bua{"buriat"}\r
         bug{"bugui"}\r
-        bum{"seki"}\r
+        bum{"bulu"}\r
         byn{"bilin"}\r
         byv{"medumba"}\r
         ca{"català"}\r
@@ -101,7 +101,7 @@ ca{
         cay{"cayuga"}\r
         cch{"atsam"}\r
         ce{"txetxè"}\r
-        ceb{"cebuano"}\r
+        ceb{"cebuà"}\r
         cgg{"chiga"}\r
         ch{"chamorro"}\r
         chb{"txibtxa"}\r
@@ -130,7 +130,7 @@ ca{
         dav{"taita"}\r
         de{"alemany"}\r
         de_AT{"alemany austríac"}\r
-        de_CH{"alt alemany suís"}\r
+        de_CH{"alemany estàndard suís"}\r
         del{"delaware"}\r
         den{"slavi"}\r
         dgr{"dogrib"}\r
@@ -353,12 +353,12 @@ ca{
         mic{"micmac"}\r
         min{"minangkabau"}\r
         mk{"macedoni"}\r
-        ml{"malaialam"}\r
+        ml{"malaiàlam"}\r
         mn{"mongol"}\r
         mnc{"manxú"}\r
         mni{"manipurí"}\r
         moh{"mohawk"}\r
-        mos{"mo"}\r
+        mos{"moore"}\r
         mr{"marathi"}\r
         mrj{"mari occidental"}\r
         ms{"malai"}\r
@@ -413,10 +413,10 @@ ca{
         osa{"osage"}\r
         ota{"turc otomà"}\r
         pa{"panjabi"}\r
-        pag{"pangasi"}\r
+        pag{"pangasinan"}\r
         pal{"pahlavi"}\r
         pam{"pampanga"}\r
-        pap{"papiamentu"}\r
+        pap{"papiament"}\r
         pau{"palauà"}\r
         pcd{"picard"}\r
         pcm{"pidgin de Nigèria"}\r
@@ -564,7 +564,7 @@ ca{
         vun{"vunjo"}\r
         wa{"való"}\r
         wae{"walser"}\r
-        wal{"ameto"}\r
+        wal{"wolaita"}\r
         war{"waray"}\r
         was{"washo"}\r
         wbp{"warlpiri"}\r
@@ -578,7 +578,7 @@ ca{
         yap{"yapeà"}\r
         yav{"yangben"}\r
         ybb{"yemba"}\r
-        yi{"jiddisch"}\r
+        yi{"ídix"}\r
         yo{"ioruba"}\r
         yue{"cantonès"}\r
         za{"zhuang"}\r
@@ -650,7 +650,7 @@ ca{
         Grek{"grec"}\r
         Gujr{"gujarati"}\r
         Guru{"gurmukhi"}\r
-        Hanb{"hanb"}\r
+        Hanb{"han amb bopomofo"}\r
         Hang{"hangul"}\r
         Hani{"han"}\r
         Hano{"hanunoo"}\r
@@ -875,8 +875,8 @@ ca{
             strict{"salt de línia estricte"}\r
         }\r
         m0{\r
-            bgn{"BGN"}\r
-            ungegn{"UNGEGN"}\r
+            bgn{"sistema de transliteració BGN"}\r
+            ungegn{"sistema de transliteració UNGEGN"}\r
         }\r
         ms{\r
             metric{"sistema mètric"}\r
@@ -902,13 +902,13 @@ ca{
             guru{"dígits gurmukhi"}\r
             hanidec{"nombres decimals xinesos"}\r
             hans{"nombres xinesos simplificats"}\r
-            hansfin{"numerals financers xinesos simplificats"}\r
-            hant{"numerals xinesos tradicionals"}\r
-            hantfin{"numerals financers xinesos tradicionals"}\r
-            hebr{"numerals hebreus"}\r
+            hansfin{"nombres financers xinesos simplificats"}\r
+            hant{"nombres xinesos tradicionals"}\r
+            hantfin{"nombres financers xinesos tradicionals"}\r
+            hebr{"nombres hebreus"}\r
             java{"dígits javanesos"}\r
-            jpan{"numerals japonesos"}\r
-            jpanfin{"numerals financers japonesos"}\r
+            jpan{"nombres japonesos"}\r
+            jpanfin{"nombres financers japonesos"}\r
             kali{"dígits kayah"}\r
             khmr{"dígits khmer"}\r
             knda{"dígits kannada"}\r
@@ -935,7 +935,7 @@ ca{
             taml{"nombres tamils tradicionals"}\r
             tamldec{"dígits tamils"}\r
             telu{"dígits telugu"}\r
-            thai{"dígits thai"}\r
+            thai{"dígits tai"}\r
             tibt{"dígits tibetans"}\r
             traditional{"Numerals tradicionals"}\r
             vaii{"dígits vai"}\r
@@ -999,7 +999,7 @@ ca{
         VALLADER{"baix engiadinès"}\r
         WADEGILE{"romanització Wade-Giles"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.65"}\r
     characterLabelPattern{\r
         all{"{0} — tot"}\r
         category-list{"{0}: {1}"}\r
index 8276e49..4f434b4 100644 (file)
@@ -833,7 +833,7 @@ ccp{
             vaii{"𑄞𑄭 𑄚𑄘"}\r
         }\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.50"}\r
     characterLabelPattern{\r
         all{"{0} — 𑄗𑄪𑄟𑄴"}\r
         category-list{"{0}: {1}"}\r
index 82b3dd4..7794263 100644 (file)
@@ -465,7 +465,7 @@ ce{
             persian{"гӀажарийн"}\r
         }\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.41.34"}\r
     codePatterns{\r
         language{"Мотт: {0}"}\r
         script{"Скрипт: {0}"}\r
index 1afa605..4130b36 100644 (file)
@@ -424,7 +424,7 @@ chr{
         Grek{"ᎪᎢ"}\r
         Gujr{"ᎫᏣᎳᏘ"}\r
         Guru{"ᎬᎹᎩ"}\r
-        Hanb{"ᎭᏂ-ᏆᏉᎼᏬ"}\r
+        Hanb{"ᎭᏂ ᎾᎿ ᏆᏉᎼᏬ"}\r
         Hang{"ᎭᏂᎫᎵ"}\r
         Hani{"ᎭᏂ"}\r
         Hans{"ᎠᎯᏗᎨ"}\r
@@ -538,7 +538,7 @@ chr{
             tibt{"ᏘᏇᏔᏂ ᏗᏎᏍᏗ"}\r
         }\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.2"}\r
     characterLabelPattern{\r
         all{"{0} — ᏂᎦᏓ"}\r
         category-list{"{0}: {1}"}\r
@@ -560,7 +560,7 @@ chr{
         territory{"ᎢᎬᎾᏕᎾ: {0}"}\r
     }\r
     localeDisplayPattern{\r
-        keyTypePattern{"{0}, {1}"}\r
+        keyTypePattern{"{0}: {1}"}\r
         pattern{"{0} ({1})"}\r
         separator{"{0}, {1}"}\r
     }\r
index 7ea1cbc..13d2b0c 100644 (file)
@@ -2,22 +2,85 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 ckb{\r
     Languages{\r
-        am{"ئەمهەرینجی"}\r
+        aa{"ئەفار"}\r
+        ab{"ئەبخازی"}\r
+        ace{"ئاچەیی"}\r
+        ada{"دانگمێ"}\r
+        ady{"ئادیگی"}\r
+        af{"ئەفریکانس"}\r
+        agq{"ئاگێم"}\r
+        ain{"ئاینوو"}\r
+        ak{"ئاکان"}\r
+        ale{"ئالیوت"}\r
+        alt{"ئاڵتایی باشوور"}\r
+        am{"ئەمھەری"}\r
+        an{"ئاراگۆنی"}\r
+        anp{"ئەنگیکا"}\r
         ar{"عەرەبی"}\r
+        ar_001{"عەرەبیی ستاندارد"}\r
+        arn{"ماپووچە"}\r
+        arp{"ئاراپاهۆ"}\r
         as{"ئاسامی"}\r
+        asa{"ئاسوو"}\r
+        ast{"ئاستۆری"}\r
+        av{"ئەڤاری"}\r
+        awa{"ئاوادهی"}\r
+        ay{"ئایمارا"}\r
         az{"ئازەربایجانی"}\r
         az_Arab{"ئازەربایجانی باشووری"}\r
+        ba{"باشکیەر"}\r
+        ban{"بالی"}\r
+        bas{"باسا"}\r
         be{"بیلاڕووسی"}\r
+        bem{"بێمبا"}\r
+        bez{"بێنا"}\r
         bg{"بۆلگاری"}\r
+        bho{"بوجپووری"}\r
+        bi{"بیسلاما"}\r
+        bin{"بینی"}\r
+        bla{"سیکسیکا"}\r
+        bm{"بامبارا"}\r
         bn{"بەنگلادێشی"}\r
+        bo{"تەبەتی"}\r
         br{"برێتونی"}\r
+        brx{"بۆدۆ"}\r
         bs{"بۆسنی"}\r
+        bug{"بووگی"}\r
+        byn{"بلین"}\r
         ca{"كاتالۆنی"}\r
+        ce{"چیچانی"}\r
+        ceb{"سێبوانۆ"}\r
+        cgg{"کیگا"}\r
+        ch{"چامۆرۆ"}\r
+        chk{"چووکی"}\r
+        chm{"ماری"}\r
+        cho{"چۆکتاو"}\r
+        chr{"چێرۆکی"}\r
+        chy{"شایان"}\r
         ckb{"کوردیی ناوەندی"}\r
-        cs{"چەكی"}\r
+        co{"کۆرسیکی"}\r
+        crs{"فەرەنسیی سیشێلی"}\r
+        cs{"چێکی"}\r
+        cu{"سلاویی کلیسەیی"}\r
+        cv{"چووڤاشی"}\r
         cy{"وێلزی"}\r
         da{"دانماركی"}\r
-        de{"ئاڵمانی"}\r
+        dak{"داکۆتایی"}\r
+        dar{"دارگینی"}\r
+        dav{"تایتا"}\r
+        de{"ئەڵمانی"}\r
+        dgr{"دۆگریب"}\r
+        dje{"زارما"}\r
+        dsb{"سربیی خوارین"}\r
+        dua{"دووالا"}\r
+        dv{"دیڤێهی"}\r
+        dyo{"جۆلافۆنی"}\r
+        dz{"دزوونگخا"}\r
+        dzg{"دازا"}\r
+        ebu{"ئێمبوو"}\r
+        ee{"ئێوێیی"}\r
+        efi{"ئێفیک"}\r
+        eka{"ئێکاجووک"}\r
         el{"یۆنانی"}\r
         en{"ئینگلیزی"}\r
         en_AU{"ئینگلیزیی ئۆسترالیایی"}\r
@@ -28,78 +91,304 @@ ckb{
         es{"ئیسپانی"}\r
         et{"ئیستۆنی"}\r
         eu{"باسکی"}\r
+        ewo{"ئێوۆندۆ"}\r
         fa{"فارسی"}\r
+        ff{"فوولایی"}\r
         fi{"فینلەندی"}\r
-        fr{"فەرانسی"}\r
+        fil{"فیلیپینی"}\r
+        fj{"فیجی"}\r
+        fo{"فەرۆیی"}\r
+        fon{"فۆنی"}\r
+        fr{"فەرەنسی"}\r
+        fur{"فریئوولی"}\r
         fy{"فریسیی ڕۆژاوا"}\r
         ga{"ئیرلەندی"}\r
+        gaa{"گایی"}\r
+        gd{"گه‌لیكی سكۆتله‌ندی"}\r
+        gez{"گیزی"}\r
+        gil{"گیلبێرتی"}\r
         gl{"گالیسی"}\r
         gn{"گووارانی"}\r
+        gor{"گۆرۆنتالی"}\r
+        gsw{"ئەڵمانیی سویسڕا"}\r
         gu{"گوجاراتی"}\r
-        he{"هیبرێ"}\r
+        guz{"گووسی"}\r
+        gv{"مانکی"}\r
+        gwi{"گویچین"}\r
+        ha{"هائووسا"}\r
+        haw{"هاوایی"}\r
+        he{"عیبری"}\r
         hi{"هیندی"}\r
+        hil{"هیلیگاینۆن"}\r
+        hmn{"همۆنگ"}\r
         hr{"كرواتی"}\r
+        hsb{"سربیی سەروو"}\r
+        ht{"کریولی هائیتی"}\r
         hu{"هەنگاری (مەجاری)"}\r
+        hup{"هووپا"}\r
         hy{"ئەرمەنی"}\r
-        id{"ئێەندونیزی"}\r
+        hz{"هێرێرۆ"}\r
+        ia{"ئینترلینگووا"}\r
+        iba{"ئیبان"}\r
+        ibb{"ئیبیبۆ"}\r
+        id{"ئیندۆنیزی"}\r
+        ig{"ئیگبۆ"}\r
+        ii{"سیچوان یی"}\r
+        ilo{"ئیلۆکۆ"}\r
+        inh{"ئینگووش"}\r
+        io{"ئیدۆ"}\r
         is{"ئیسلەندی"}\r
         it{"ئیتالی"}\r
+        iu{"ئینوکتیتوت"}\r
         ja{"ژاپۆنی"}\r
-        jv{"جاڤانی"}\r
+        jbo{"لۆژبان"}\r
+        jgo{"نگۆمبا"}\r
+        jmc{"ماچامێ"}\r
+        jv{"جاڤایی"}\r
         ka{"گۆرجستانی"}\r
+        kab{"کبائیلی"}\r
+        kac{"کاچین"}\r
+        kaj{"کیجوو"}\r
+        kam{"کامبا"}\r
+        kbd{"کاباردی"}\r
+        kcg{"تیاپ"}\r
+        kde{"ماکۆندە"}\r
+        kea{"کابووڤێردیانۆ"}\r
+        kfo{"کۆرۆ"}\r
+        kha{"کهاسی"}\r
+        khq{"کۆیرا چینی"}\r
+        ki{"کیکوویوو"}\r
+        kj{"کوانیاما"}\r
         kk{"کازاخی"}\r
+        kkj{"کاکۆ"}\r
+        kl{"کالالیسووت"}\r
+        kln{"کالێنجین"}\r
+        km{"خمێر"}\r
+        kmb{"کیمبووندوو"}\r
+        kn{"کاننادا"}\r
+        ko{"كۆری"}\r
+        kok{"کۆنکانی"}\r
+        kpe{"کپێلێ"}\r
+        kr{"کانووری"}\r
+        krc{"کاراچای بالکار"}\r
+        krl{"کارێلی"}\r
+        kru{"کوورووخ"}\r
+        ks{"کەشمیری"}\r
+        ksb{"شامابالا"}\r
+        ksf{"بافیا"}\r
+        ksh{"کۆلۆنی"}\r
         ku{"کوردی"}\r
+        kum{"کوومیک"}\r
+        kv{"کۆمی"}\r
+        kw{"کۆڕنی"}\r
         ky{"كرگیزی"}\r
         la{"لاتینی"}\r
+        lad{"لادینۆ"}\r
+        lag{"لانگی"}\r
+        lb{"لوکسەمبورگی"}\r
+        lez{"لەزگی"}\r
+        lg{"گاندا"}\r
+        li{"لیمبورگی"}\r
+        lkt{"لاکۆتا"}\r
         ln{"لينگالا"}\r
-        lo{"لاوی"}\r
+        lo{"لائۆیی"}\r
+        loz{"لۆزی"}\r
+        lrc{"لوڕیی باکوور"}\r
         lt{"لیتوانی"}\r
+        lu{"لووبا کاتانگا"}\r
+        lua{"لووبا لوولووا"}\r
+        lun{"لووندا"}\r
+        luo{"لووئۆ"}\r
+        lus{"میزۆ"}\r
+        luy{"لوویا"}\r
         lv{"لێتۆنی"}\r
+        mad{"مادووری"}\r
+        mag{"ماگاهی"}\r
+        mai{"مائیتیلی"}\r
+        mak{"ماکاسار"}\r
+        mas{"ماسایی"}\r
+        mdf{"مۆکشا"}\r
+        men{"مێندێ"}\r
+        mer{"مێروو"}\r
+        mfe{"مۆریسی"}\r
+        mg{"مالاگاسی"}\r
+        mgh{"ماخوامیتۆ"}\r
+        mgo{"مێتە"}\r
+        mh{"مارشاڵی"}\r
+        mi{"مائۆری"}\r
+        mic{"میکماک"}\r
+        min{"مینانکاباو"}\r
         mk{"ماكێدۆنی"}\r
+        ml{"مالایالام"}\r
         mn{"مەنگۆلی"}\r
+        mni{"مانیپووری"}\r
+        moh{"مۆهاوک"}\r
+        mos{"مۆسی"}\r
         mr{"ماراتی"}\r
+        ms{"مالیزی"}\r
+        mt{"ماڵتی"}\r
+        mua{"موندانگ"}\r
+        mul{"چەند زمان"}\r
+        mus{"کریک"}\r
+        mwl{"میراندی"}\r
+        my{"میانماری"}\r
+        myv{"ئێرزیا"}\r
         mzn{"مازەندەرانی"}\r
+        na{"نائوروو"}\r
+        nap{"ناپۆلی"}\r
+        naq{"ناما"}\r
+        nb{"نەرویژیی بۆکمال"}\r
+        nd{"ئندێبێلێی باکوور"}\r
         ne{"نیپالی"}\r
+        new{"نێواری"}\r
+        ng{"ندۆنگا"}\r
+        nia{"نیاس"}\r
+        niu{"نیئوویی"}\r
         nl{"هۆڵەندی"}\r
+        nl_BE{"فلێمی"}\r
+        nmg{"کواسیۆ"}\r
+        nn{"نەرویژیی نینۆرسک"}\r
+        nnh{"نگیمبوون"}\r
         no{"نۆروێژی"}\r
-        or{"ئۆرییا"}\r
+        nog{"نۆگای"}\r
+        nqo{"نکۆ"}\r
+        nr{"ئندێبێلێی باشوور"}\r
+        nso{"سۆتۆی باکوور"}\r
+        nus{"نوێر"}\r
+        nv{"ناڤاجۆ"}\r
+        ny{"نیانجا"}\r
+        nyn{"نیانکۆلێ"}\r
+        oc{"ئۆکسیتانی"}\r
+        om{"ئۆرۆمۆ"}\r
+        or{"ئۆدیا"}\r
+        os{"ئۆسێتی"}\r
         pa{"پەنجابی"}\r
-        pl{"پۆڵۆنیایی (لەهستانی)"}\r
+        pag{"پانگاسینان"}\r
+        pam{"پامپانگا"}\r
+        pap{"پاپیامێنتۆ"}\r
+        pau{"پالائوویی"}\r
+        pcm{"پیجینی نیجریا"}\r
+        pl{"پۆڵەندی"}\r
+        prg{"پڕووسی"}\r
         ps{"پەشتوو"}\r
         pt{"پورتوگالی"}\r
+        qu{"کێچوا"}\r
+        quc{"کیچەیی"}\r
+        rap{"ڕاپانوویی"}\r
+        rar{"ڕاڕۆتۆنگان"}\r
+        rm{"ڕۆمانش"}\r
+        rn{"ڕووندی"}\r
         ro{"ڕۆمانی"}\r
+        ro_MD{"مۆڵداڤی"}\r
+        rof{"ڕۆمبۆ"}\r
+        root{"ڕووت"}\r
         ru{"ڕووسی"}\r
+        rup{"ئارمۆمانی"}\r
+        rw{"کینیارواندا"}\r
+        rwk{"ڕوا"}\r
         sa{"سانسکريت"}\r
+        sad{"سانداوێ"}\r
+        sah{"ساخا"}\r
+        saq{"سامبووروو"}\r
+        sat{"سانتالی"}\r
+        sba{"نگامبای"}\r
+        sbp{"سانگوو"}\r
+        sc{"ساردینی"}\r
+        scn{"سیسیلی"}\r
+        sco{"سکۆتس"}\r
         sd{"سيندی"}\r
         sdh{"کوردیی باشووری"}\r
-        si{"سینهەلی"}\r
+        se{"سامیی باکوور"}\r
+        seh{"سێنا"}\r
+        ses{"کۆیرابۆرۆ سێنی"}\r
+        sg{"سانگۆ"}\r
+        shi{"شیلها"}\r
+        shn{"شان"}\r
+        si{"سینهالی"}\r
         sk{"سلۆڤاكی"}\r
         sl{"سلۆڤێنی"}\r
-        sma{"سامی باشووری"}\r
+        sm{"سامۆیی"}\r
+        sma{"سامیی باشوور"}\r
+        smj{"لوولێ سامی"}\r
+        smn{"ئیناری سامی"}\r
+        sms{"سامیی سکۆڵت"}\r
+        sn{"شۆنا"}\r
+        snk{"سۆنینکێ"}\r
         so{"سۆمالی"}\r
         sq{"ئەڵبانی"}\r
-        sr{"سەربی"}\r
-        st{"سێسۆتۆ"}\r
-        su{"سودانی"}\r
+        sr{"سربی"}\r
+        srn{"سرانان تۆنگۆ"}\r
+        ss{"سواتی"}\r
+        ssy{"ساهۆ"}\r
+        st{"سۆتۆی باشوور"}\r
+        su{"سوندانی"}\r
+        suk{"سووکووما"}\r
         sv{"سویدی"}\r
+        sw{"سواهیلی"}\r
+        sw_CD{"سواهیلیی کۆنگۆ"}\r
+        swb{"کۆمۆری"}\r
+        syr{"سریانی"}\r
         ta{"تامیلی"}\r
-        te{"تەلۆگوی"}\r
+        te{"تێلووگوو"}\r
+        tem{"تیمنێ"}\r
+        teo{"تێسوو"}\r
+        tet{"تێتووم"}\r
         tg{"تاجیکی"}\r
         th{"تایلەندی"}\r
-        ti{"تیگرینیای"}\r
+        ti{"تیگرینیا"}\r
+        tig{"تیگرێ"}\r
         tk{"تورکمانی"}\r
+        tlh{"كلینگۆن"}\r
+        tn{"تسوانا"}\r
+        to{"تۆنگان"}\r
+        tpi{"تۆکپیسین"}\r
         tr{"تورکی"}\r
-        ug{"ئويخووری"}\r
+        trv{"تارۆکۆ"}\r
+        ts{"تسۆنگا"}\r
+        tt{"تاتاری"}\r
+        tum{"تومبووکا"}\r
+        tvl{"تووڤالوو"}\r
+        twq{"تاساواک"}\r
+        ty{"تاهیتی"}\r
+        tyv{"تووڤینی"}\r
+        tzm{"ئەمازیغی ناوەڕاست"}\r
+        udm{"ئوودموورت"}\r
+        ug{"ئۆیخۆری"}\r
         uk{"ئۆكراینی"}\r
+        umb{"ئومبووندوو"}\r
         und{"زمانی نەناسراو"}\r
         ur{"ئۆردوو"}\r
         uz{"ئوزبەکی"}\r
+        vai{"ڤایی"}\r
+        ve{"ڤێندا"}\r
         vi{"ڤیەتنامی"}\r
+        vo{"ڤۆلاپووک"}\r
+        vun{"ڤوونجوو"}\r
+        wa{"والوون"}\r
+        wae{"والسێر"}\r
+        wal{"وۆلایتا"}\r
+        war{"وارای"}\r
+        wo{"وۆلۆف"}\r
+        xal{"کالمیک"}\r
+        xh{"سسوسا"}\r
+        xog{"سۆگا"}\r
+        yav{"یانگبێن"}\r
+        ybb{"یێمبا"}\r
+        yi{"ییدیش"}\r
+        yo{"یۆرووبا"}\r
+        yue{"کانتۆنی"}\r
+        zgh{"ئەمازیغیی مەغریب"}\r
         zh{"چینی"}\r
-        zu{"زولو"}\r
+        zh_Hans{"چینی (چینیی ئاسانکراو)"}\r
+        zh_Hant{"چینی (چینیی دێرین)"}\r
+        zu{"زوولوو"}\r
+        zun{"زوونی"}\r
+        zxx{"هیچ ناوەرۆکی زمانی نیە"}\r
+        zza{"زازا"}\r
     }\r
     Languages%short{\r
         az{"ئازەربایجانی"}\r
+        en_GB{"ئینگلیزی (GB)"}\r
         en_US{"ئینگلیزیی ئەمەریکایی"}\r
     }\r
     Scripts{\r
@@ -115,25 +404,42 @@ ckb{
         Grek{"یۆنانی"}\r
         Gujr{"گوجەراتی"}\r
         Guru{"گورموکھی"}\r
+        Hanb{"هان لەگەڵ بۆپۆمۆفۆ"}\r
         Hang{"ھانگول"}\r
-        Hebr{"هیبرێ"}\r
+        Hani{"ھان"}\r
+        Hans{"ئاسانکراو"}\r
+        Hant{"دێرین"}\r
+        Hebr{"عیبری"}\r
         Hira{"ھیراگانا"}\r
+        Hrkt{"ژاپۆنیی بڕگەیی"}\r
+        Jamo{"جامۆ"}\r
         Jpan{"ژاپۆنی"}\r
         Kana{"کاتاکانا"}\r
-        Khmr{"خمێری"}\r
-        Knda{"کەنەدا"}\r
-        Kore{"کۆریایی"}\r
-        Laoo{"لاو"}\r
+        Khmr{"خمێر"}\r
+        Knda{"کاننادا"}\r
+        Kore{"کۆری"}\r
+        Laoo{"لائۆ"}\r
         Latn{"لاتینی"}\r
         Mlym{"مالایالام"}\r
         Mong{"مەنگۆلی"}\r
         Mymr{"میانمار"}\r
-        Orya{"ئÛ\86ریا"}\r
+        Orya{"ئÛ\86دیا"}\r
         Sinh{"سینھالا"}\r
         Taml{"تامیلی"}\r
-        Telu{"تÛ\8cÙ\84Ù\88Ú¯و"}\r
-        Thaa{"تانە"}\r
+        Telu{"تÛ\8eÙ\84Ù\88Ù\88Ú¯Ù\88و"}\r
+        Thaa{"تانا"}\r
         Thai{"تایلەندی"}\r
+        Tibt{"تەبەتی"}\r
+        Zmth{"نیشانەی بیرکاری"}\r
+        Zsye{"ئیمۆجی"}\r
+        Zsym{"هێماکان"}\r
+        Zxxx{"نەنووسراو"}\r
+        Zyyy{"باو"}\r
+        Zzzz{"خەتی نەناسراو"}\r
     }\r
-    Version{"2.1.38.71"}\r
+    Scripts%stand-alone{\r
+        Hans{"هانی ئاسانکراو"}\r
+        Hant{"هانی دێرین"}\r
+    }\r
+    Version{"2.1.44.88"}\r
 }\r
index 5adc192..1d9e439 100644 (file)
@@ -47,11 +47,11 @@ cs{
         ar{"arabština"}\r
         ar_001{"arabština (moderní standardní)"}\r
         arc{"aramejština"}\r
-        arn{"mapudungunština"}\r
+        arn{"mapudungun"}\r
         aro{"araonština"}\r
         arp{"arapažština"}\r
         arq{"arabština (alžírská)"}\r
-        ars{"arabština (nadžd)"}\r
+        ars{"arabština (Nadžd)"}\r
         arw{"arawacké jazyky"}\r
         ary{"arabština (marocká)"}\r
         arz{"arabština (egyptská)"}\r
@@ -961,7 +961,7 @@ cs{
         SCOTLAND{"angličtina (Skotsko)"}\r
         WADEGILE{"Wade-Giles"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.91"}\r
     characterLabelPattern{\r
         all{"{0} – vše"}\r
         category-list{"{0}: {1}"}\r
index 5924919..f9719d1 100644 (file)
@@ -732,7 +732,7 @@ cy{
         VAIDIKA{"VAIDIKA"}\r
         VALLADER{"VALLADER"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.91"}\r
     characterLabelPattern{\r
         all{"{0} — y cwbl"}\r
         category-list{"{0}: {1}"}\r
index 4b37309..d29d57e 100644 (file)
@@ -46,7 +46,7 @@ da{
         arc{"aramæisk"}\r
         arn{"mapudungun"}\r
         arp{"arapaho"}\r
-        ars{"najd-arabisk"}\r
+        ars{"Najd-arabisk"}\r
         arw{"arawak"}\r
         as{"assamesisk"}\r
         asa{"asu"}\r
@@ -176,7 +176,7 @@ da{
         frr{"nordfrisisk"}\r
         frs{"østfrisisk"}\r
         fur{"friulian"}\r
-        fy{"frisisk"}\r
+        fy{"vestfrisisk"}\r
         ga{"irsk"}\r
         gaa{"ga"}\r
         gag{"gagauzisk"}\r
@@ -557,7 +557,6 @@ da{
     Languages%short{\r
         az{"azeri"}\r
         en_GB{"engelsk (UK)"}\r
-        en_US{"en-US"}\r
     }\r
     Languages%variant{\r
         ps{"pushto"}\r
@@ -794,7 +793,7 @@ da{
             big5han{"sorteringsrækkefølge uforkortet kinesisk - Big5"}\r
             compat{"tidligere sorteringsrækkefølge, kompatibilitet"}\r
             dictionary{"sorteringsrækkefølge for ordbog"}\r
-            ducet{"Unicode-standardsortering"}\r
+            ducet{"Unicode-standardsorteringsrækkefølge"}\r
             eor{"europæisk sorteringsrækkefølge"}\r
             gb2312han{"sorteringsrækkefølge forkortet kinesisk - GB2312"}\r
             phonebook{"sorteringsrækkefølge i telefonbøger"}\r
@@ -838,7 +837,7 @@ da{
             arab{"hindu-arabiske tal"}\r
             arabext{"udvidede hindu-arabiske tal"}\r
             armn{"armenske tal"}\r
-            armnlow{"armenske tal i små bogstaver"}\r
+            armnlow{"armenske tal med små bogstaver"}\r
             bali{"Balinesiske tal"}\r
             beng{"bengali tal"}\r
             brah{"Brahmi-tal"}\r
@@ -850,7 +849,7 @@ da{
             fullwide{"tal i fuld bredde"}\r
             geor{"georgiske tal"}\r
             grek{"græske tal"}\r
-            greklow{"græske tal i små bogstaver"}\r
+            greklow{"græske tal med små bogstaver"}\r
             gujr{"gujarati tal"}\r
             guru{"gurmukhi tal"}\r
             hanidec{"kinesiske decimaltal"}\r
@@ -858,7 +857,7 @@ da{
             hansfin{"forenklede kinesiske finansielle tal"}\r
             hant{"traditionelle kinesiske tal"}\r
             hantfin{"traditionelle kinesiske finansielle tal"}\r
-            hebr{"hebræiske tal"}\r
+            hebr{"hebraiske tal"}\r
             java{"Javanesiske tal"}\r
             jpan{"japanske tal"}\r
             jpanfin{"japanske finansielle tal"}\r
@@ -874,12 +873,12 @@ da{
             mlym{"malayalamske tal"}\r
             mong{"Mongolske tal"}\r
             mtei{"Meetei Mayek-tal"}\r
-            mymr{"Myanmar tal"}\r
+            mymr{"Myanmar-tal"}\r
             mymrshan{"Myanmar Shan-tal"}\r
             native{"Nationale cifre"}\r
             nkoo{"N’Ko-tal"}\r
             olck{"Ol Chiki-tal"}\r
-            orya{"Oriya tal"}\r
+            orya{"oriya-tal"}\r
             osma{"Osmanya-tal"}\r
             roman{"romertal"}\r
             romanlow{"romertal med små bogstaver"}\r
@@ -929,6 +928,7 @@ da{
         KSCOR{"standardortografi"}\r
         LAUKIKA{"laukika"}\r
         LIPAW{"lipovaz"}\r
+        LUNA1918{"LUNA1918"}\r
         METELKO{"Metelko-alfabet"}\r
         MONOTON{"monotonisk"}\r
         NDYUKA{"Ndyuka-dialekt"}\r
@@ -937,15 +937,19 @@ da{
         NULIK{"moderne volapük"}\r
         OSOJS{"Oseacco-/Osojane-dialekt"}\r
         PAMAKA{"Pamaka-dialekt"}\r
+        PETR1708{"PETR1708"}\r
         PINYIN{"pinyin"}\r
         POLYTON{"polytonisk"}\r
         POSIX{"computer"}\r
+        PUTER{"PUTER"}\r
         REVISED{"revideret retskrivning"}\r
         RIGIK{"klassisk volapük"}\r
         ROZAJ{"Resi"}\r
+        RUMGR{"RUMGR"}\r
         SAAHO{"saho"}\r
         SCOTLAND{"skotsk standardengelsk"}\r
         SCOUSE{"scouse"}\r
+        SOLBA{"SOLBA"}\r
         SURMIRAN{"surmiran"}\r
         SURSILV{"sursilv"}\r
         SUTSILV{"sutsilv"}\r
@@ -958,7 +962,7 @@ da{
         VALLADER{"vallader"}\r
         WADEGILE{"Wade-Giles"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.65"}\r
     characterLabelPattern{\r
         all{"{0} – alle"}\r
         category-list{"{0}: {1}"}\r
index 5593714..d3655d9 100644 (file)
@@ -51,7 +51,7 @@ de{
         aro{"Araona"}\r
         arp{"Arapaho"}\r
         arq{"Algerisches Arabisch"}\r
-        ars{"Nadschd-Arabisch"}\r
+        ars{"Arabisch (Nadschd)"}\r
         arw{"Arawak"}\r
         ary{"Marokkanisches Arabisch"}\r
         arz{"Ägyptisches Arabisch"}\r
@@ -165,16 +165,9 @@ de{
         el{"Griechisch"}\r
         elx{"Elamisch"}\r
         en{"Englisch"}\r
-        en_AU{"Australisches Englisch"}\r
-        en_CA{"Kanadisches Englisch"}\r
-        en_GB{"Britisches Englisch"}\r
-        en_US{"Amerikanisches Englisch"}\r
         enm{"Mittelenglisch"}\r
         eo{"Esperanto"}\r
         es{"Spanisch"}\r
-        es_419{"Lateinamerikanisches Spanisch"}\r
-        es_ES{"Europäisches Spanisch"}\r
-        es_MX{"Mexikanisches Spanisch"}\r
         esu{"Zentral-Alaska-Yupik"}\r
         et{"Estnisch"}\r
         eu{"Baskisch"}\r
@@ -191,8 +184,6 @@ de{
         fo{"Färöisch"}\r
         fon{"Fon"}\r
         fr{"Französisch"}\r
-        fr_CA{"Kanadisches Französisch"}\r
-        fr_CH{"Schweizer Französisch"}\r
         frc{"Cajun"}\r
         frm{"Mittelfranzösisch"}\r
         fro{"Altfranzösisch"}\r
@@ -214,7 +205,7 @@ de{
         gl{"Galicisch"}\r
         glk{"Gilaki"}\r
         gmh{"Mittelhochdeutsch"}\r
-        gn{"Guarani"}\r
+        gn{"Guaraní"}\r
         goh{"Althochdeutsch"}\r
         gom{"Goa-Konkani"}\r
         gon{"Gondi"}\r
@@ -460,8 +451,6 @@ de{
         pro{"Altprovenzalisch"}\r
         ps{"Paschtu"}\r
         pt{"Portugiesisch"}\r
-        pt_BR{"Brasilianisches Portugiesisch"}\r
-        pt_PT{"Europäisches Portugiesisch"}\r
         qu{"Quechua"}\r
         quc{"K’iche’"}\r
         qug{"Chimborazo Hochland-Quechua"}\r
@@ -641,8 +630,8 @@ de{
     }\r
     Languages%short{\r
         az{"Aserbaidschanisch"}\r
-        en_GB{"UK-Englisch"}\r
-        en_US{"US-Englisch"}\r
+        en_GB{"Englisch (GB)"}\r
+        en_US{"Englisch (USA)"}\r
     }\r
     Scripts{\r
         Afak{"Afaka"}\r
@@ -659,7 +648,7 @@ de{
         Blis{"Bliss-Symbole"}\r
         Bopo{"Bopomofo"}\r
         Brah{"Brahmi"}\r
-        Brai{"Blindenschrift"}\r
+        Brai{"Braille"}\r
         Bugi{"Buginesisch"}\r
         Buhd{"Buhid"}\r
         Cakm{"Chakma"}\r
@@ -1019,7 +1008,7 @@ de{
         VALENCIA{"Valencianisch"}\r
         WADEGILE{"Wade-Giles"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.91"}\r
     characterLabelPattern{\r
         all{"{0} — Alle"}\r
         category-list{"{0}: {1}"}\r
index 7c70684..44aa594 100644 (file)
@@ -16,5 +16,5 @@ de_AT{
         sh{"Serbokroatisch"}\r
         szl{"Schlesisch"}\r
     }\r
-    Version{"2.1.38.39"}\r
+    Version{"2.1.43.65"}\r
 }\r
index 44f0620..0438948 100644 (file)
@@ -9,6 +9,7 @@ de_CH{
     Languages{\r
         ace{"Aceh-Sprache"}\r
         ach{"Acholi-Sprache"}\r
+        ars{"Nadschd-Arabisch"}\r
         bas{"Basaa-Sprache"}\r
         be{"Weissrussisch"}\r
         bik{"Bikol-Sprache"}\r
@@ -34,5 +35,5 @@ de_CH{
             ussystem{"US Mass-System"}\r
         }\r
     }\r
-    Version{"2.1.39.37"}\r
+    Version{"2.1.44.50"}\r
 }\r
index 4ffdab7..0850153 100644 (file)
@@ -378,7 +378,7 @@ dsb{
             tibt{"tibetske cyfry"}\r
         }\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.41.34"}\r
     codePatterns{\r
         language{"Rěc: {0}"}\r
         script{"Pismo: {0}"}\r
index a36b0e1..535dd5d 100644 (file)
@@ -234,7 +234,7 @@ dz{
             tibt{"ང་བཅས་ཀྱི་ཨང་ཡིག"}\r
         }\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.41.34"}\r
     codePatterns{\r
         language{"ཁ་སྐད་: {0}"}\r
         script{"ཡིག་གཟུགས་: {0}"}\r
index 01dd9a5..3efdb55 100644 (file)
@@ -299,7 +299,7 @@ ee{
             tibt{"tibet digitwo"}\r
         }\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.88"}\r
     codePatterns{\r
         language{"gbegbɔgblɔ {0}"}\r
         script{"gbeŋɔŋlɔ {0}"}\r
index 5a1db44..9af500d 100644 (file)
@@ -24,7 +24,7 @@ el{
     Languages{\r
         aa{"Αφάρ"}\r
         ab{"Αμπχαζικά"}\r
-        ace{"Î\91Ï\87ινίζ"}\r
+        ace{"Î\91Ï\84Ï\83ινιζικά"}\r
         ach{"Ακολί"}\r
         ada{"Αντάνγκμε"}\r
         ady{"Αντιγκέα"}\r
@@ -68,7 +68,7 @@ el{
         bfd{"Μπαφούτ"}\r
         bg{"Βουλγαρικά"}\r
         bgn{"Δυτικά Μπαλοχικά"}\r
-        bho{"Μποζπούρι"}\r
+        bho{"Μπότζπουρι"}\r
         bi{"Μπισλάμα"}\r
         bik{"Μπικόλ"}\r
         bin{"Μπίνι"}\r
@@ -101,10 +101,10 @@ el{
         chk{"Τσουκίζι"}\r
         chm{"Μάρι"}\r
         chn{"Ιδιωματικά Σινούκ"}\r
-        cho{"Τσοκτάου"}\r
+        cho{"Τσόκτο"}\r
         chp{"Τσίπιουαν"}\r
         chr{"Τσερόκι"}\r
-        chy{"Σεγιέν"}\r
+        chy{"ΤÏ\83εγιέν"}\r
         ckb{"Κουρδικά Σοράνι"}\r
         co{"Κορσικανικά"}\r
         cop{"Κοπτικά"}\r
@@ -304,7 +304,7 @@ el{
         lun{"Λούντα"}\r
         luo{"Λούο"}\r
         lus{"Μίζο"}\r
-        luy{"Î\9bοÏ\85Ï\87ία"}\r
+        luy{"Î\9bοÏ\8dÏ\87ια"}\r
         lv{"Λετονικά"}\r
         mad{"Μαντουρίζ"}\r
         maf{"Μάφα"}\r
@@ -344,7 +344,7 @@ el{
         mwr{"Μαργουάρι"}\r
         my{"Βιρμανικά"}\r
         mye{"Μιένε"}\r
-        myv{"Έρζυα"}\r
+        myv{"Έρζια"}\r
         mzn{"Μαζαντεράνι"}\r
         na{"Ναούρου"}\r
         nap{"Ναπολιτανικά"}\r
@@ -620,7 +620,7 @@ el{
         Kore{"Κορεατικό"}\r
         Kthi{"Καϊθί"}\r
         Lana{"Λάννα"}\r
-        Laoo{"Î\9bάοÏ\82"}\r
+        Laoo{"Î\9bαοÏ\84ινÏ\8c"}\r
         Latf{"Φράκτουρ Λατινικό"}\r
         Latg{"Γαελικό Λατινικό"}\r
         Latn{"Λατινικό"}\r
@@ -882,7 +882,7 @@ el{
         VALENCIA{"Βαλενθιανά"}\r
         WADEGILE{"Εκλατινισμένα Γουάντ-Γκιλς"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.65"}\r
     characterLabelPattern{\r
         all{"{0} — όλα"}\r
         category-list{"{0}: {1}"}\r
index 95f7dfe..e2bde6c 100644 (file)
@@ -952,6 +952,7 @@ en{
             ascii{"To ASCII"}\r
             casefold{"To Casefolded"}\r
             charname{"To Unicode Character Names"}\r
+            digit{"To Digit Form Of Accent"}\r
             fcc{"To Unicode FCC"}\r
             fcd{"To Unicode FCD"}\r
             fwidth{"To Fullwidth"}\r
@@ -968,6 +969,7 @@ en{
             remove{"To Empty String"}\r
             title{"To Titlecase"}\r
             upper{"To Uppercase"}\r
+            zawgyi{"To Zawgyi Myanmar Encoding"}\r
         }\r
         em{\r
             default{"Use Default Presentation For Emoji Characters"}\r
@@ -1056,14 +1058,23 @@ en{
             alaloc{"US ALA-LOC Transliteration"}\r
             bgn{"US BGN Transliteration"}\r
             buckwalt{"Buckwalter Arabic Transliteration"}\r
+            c11{"Hex Transforms Using C11 Syntax"}\r
+            css{"Hex Transforms Using CSS Syntax"}\r
             din{"German DIN Transliteration"}\r
             gost{"CIS GOST Transliteration"}\r
             iso{"ISO Transliteration"}\r
+            java{"Hex Transforms Using Java Syntax"}\r
             mcst{"Korean MCST Transliteration"}\r
             mns{"Mongolian National Standard Transliteration"}\r
+            percent{"Hex Transforms Using Percent Syntax"}\r
+            perl{"Hex Transforms Using Perl Syntax"}\r
+            plain{"Hex Transforms With No Surrounding Syntax"}\r
             prprname{"Personal Name Transliteration Variant"}\r
             satts{"Standard Arabic Technical Transliteration"}\r
             ungegn{"UN GEGN Transliteration"}\r
+            unicode{"Hex Transforms Using Unicode Syntax"}\r
+            xml{"Hex Transforms Using XML Syntax"}\r
+            xml10{"Hex Transforms Using XML Decimal Syntax"}\r
         }\r
         ms{\r
             metric{"Metric System"}\r
@@ -1236,7 +1247,7 @@ en{
         VALENCIA{"Valencian"}\r
         WADEGILE{"Wade-Giles Romanization"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.91"}\r
     characterLabelPattern{\r
         all{"{0} — all"}\r
         category-list{"{0}: {1}"}\r
index f0bb120..c03c097 100644 (file)
@@ -2,6 +2,7 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 en_001{\r
     Keys{\r
+        colCaseLevel{"Case-Sensitive Sorting"}\r
         colNormalization{"Normalised Sorting"}\r
     }\r
     Types{\r
@@ -9,6 +10,22 @@ en_001{
             no{"Sort Without Normalisation"}\r
             yes{"Sort Unicode Normalised"}\r
         }\r
+        hc{\r
+            h11{"12-Hour System (0–11)"}\r
+            h12{"12-Hour System (1–12)"}\r
+            h23{"24-Hour System (0–23)"}\r
+            h24{"24-Hour System (1–24)"}\r
+        }\r
+    }\r
+    Version{"2.1.44.18"}\r
+    characterLabelPattern{\r
+        all{"{0} – all"}\r
+        compatibility{"{0} – compatibility"}\r
+        enclosed{"{0} – enclosed"}\r
+        extended{"{0} – extended"}\r
+        historic{"{0} – historic"}\r
+        miscellaneous{"{0} – miscellaneous"}\r
+        other{"{0} – other"}\r
+        scripts{"scripts – {0}"}\r
     }\r
-    Version{"2.1.38.69"}\r
 }\r
index 71b6b1d..aaa7a36 100644 (file)
@@ -11,6 +11,9 @@ en_AU{
     }\r
     Scripts{\r
         Beng{"Bengali"}\r
+        Cham{"Cham"}\r
+        Modi{"Modi"}\r
+        Thai{"Thai"}\r
     }\r
     Types{\r
         calendar{\r
@@ -18,5 +21,5 @@ en_AU{
             ethiopic{"Ethiopian Calendar"}\r
         }\r
     }\r
-    Version{"2.1.38.73"}\r
+    Version{"2.1.44.18"}\r
 }\r
index 79bbbec..c9f5e1b 100644 (file)
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 en_BE{\r
     %%Parent{"en_001"}\r
-    Version{"2.1.38.69"}\r
+    Version{"2.1.44.18"}\r
 }\r
index 404bc99..5312e88 100644 (file)
@@ -21,5 +21,5 @@ en_CA{
             upper{"To Upper Case"}\r
         }\r
     }\r
-    Version{"2.1.38.73"}\r
+    Version{"2.1.44.88"}\r
 }\r
index 763d7d8..d4a5cca 100644 (file)
@@ -2,32 +2,8 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 en_GB{\r
     %%Parent{"en_001"}\r
-    Keys{\r
-        colCaseLevel{"Case-Sensitive Sorting"}\r
-    }\r
     Languages{\r
         nds_NL{"West Low German"}\r
     }\r
-    Scripts{\r
-        Thai{"Thai"}\r
-    }\r
-    Types{\r
-        hc{\r
-            h11{"12-Hour System (0–11)"}\r
-            h12{"12-Hour System (1–12)"}\r
-            h23{"24-Hour System (0–23)"}\r
-            h24{"24-Hour System (1–24)"}\r
-        }\r
-    }\r
-    Version{"2.1.38.73"}\r
-    characterLabelPattern{\r
-        all{"{0} – all"}\r
-        compatibility{"{0} – compatibility"}\r
-        enclosed{"{0} – enclosed"}\r
-        extended{"{0} – extended"}\r
-        historic{"{0} – historic"}\r
-        miscellaneous{"{0} – miscellaneous"}\r
-        other{"{0} – other"}\r
-        scripts{"scripts – {0}"}\r
-    }\r
+    Version{"2.1.44.18"}\r
 }\r
index e057509..422f3b6 100644 (file)
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 en_HK{\r
     %%Parent{"en_001"}\r
-    Version{"2.1.38.69"}\r
+    Version{"2.1.43.65"}\r
 }\r
index 56507ab..1b0d83f 100644 (file)
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 en_IE{\r
     %%Parent{"en_001"}\r
-    Version{"2.1.38.69"}\r
+    Version{"2.1.44.18"}\r
 }\r
index a09576c..9406912 100644 (file)
@@ -15,5 +15,5 @@ en_IN{
             orya{"Oriya Digits"}\r
         }\r
     }\r
-    Version{"2.1.38.73"}\r
+    Version{"2.1.44.18"}\r
 }\r
index 47beda6..2752731 100644 (file)
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 en_JM{\r
     %%Parent{"en_001"}\r
-    Version{"2.1.38.69"}\r
+    Version{"2.1.44.18"}\r
 }\r
index 0f1eb73..9f3250e 100644 (file)
@@ -5,5 +5,5 @@ en_NZ{
     Languages{\r
         mi{"Māori"}\r
     }\r
-    Version{"2.1.38.73"}\r
+    Version{"2.1.44.88"}\r
 }\r
index 3c7e040..14f8030 100644 (file)
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 en_ZW{\r
     %%Parent{"en_001"}\r
-    Version{"2.1.38.69"}\r
+    Version{"2.1.44.18"}\r
 }\r
index 33aa528..40a9950 100644 (file)
@@ -372,7 +372,7 @@ es{
         non{"nórdico antiguo"}\r
         nqo{"n’ko"}\r
         nr{"ndebele meridional"}\r
-        nso{"sesotho septentrional"}\r
+        nso{"sotho septentrional"}\r
         nus{"nuer"}\r
         nv{"navajo"}\r
         nwc{"newari clásico"}\r
@@ -466,7 +466,7 @@ es{
         srr{"serer"}\r
         ss{"suazi"}\r
         ssy{"saho"}\r
-        st{"sesotho meridional"}\r
+        st{"sotho meridional"}\r
         su{"sundanés"}\r
         suk{"sukuma"}\r
         sus{"susu"}\r
@@ -851,7 +851,7 @@ es{
         VALENCIA{"Valenciano"}\r
         WADEGILE{"Romanización Wade-Giles"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.88"}\r
     characterLabelPattern{\r
         all{"{0} — Todo"}\r
         category-list{"{0}: {1}"}\r
index 9e35f65..663a71d 100644 (file)
@@ -23,9 +23,11 @@ es_419{
         gu{"gujarati"}\r
         ht{"haitiano"}\r
         kbd{"cabardiano"}\r
+        krc{"karachái-bálkaro"}\r
         lo{"laosiano"}\r
         luo{"luo"}\r
         nr{"ndebele del sur"}\r
+        nso{"sesotho del norte"}\r
         prg{"prusiano antiguo"}\r
         rm{"retorrománico"}\r
         shu{"árabe (Chad)"}\r
@@ -35,10 +37,12 @@ es_419{
         sw_CD{"swahili (Congo)"}\r
         syr{"siríaco"}\r
         tet{"tetun"}\r
+        tyv{"tuvano"}\r
         tzm{"tamazight del Marruecos Central"}\r
         vai{"vai"}\r
         wal{"walamo"}\r
         wuu{"wu"}\r
+        xal{"calmuco"}\r
         zun{"zuni"}\r
     }\r
     Languages%short{\r
@@ -96,7 +100,7 @@ es_419{
             wara{"dígitos en Warang Citi"}\r
         }\r
     }\r
-    Version{"2.1.38.39"}\r
+    Version{"2.1.43.65"}\r
     characterLabelPattern{\r
         enclosed{"{0} — Adjunto"}\r
         extended{"{0} — Extendido"}\r
index 6970461..a9920dc 100644 (file)
@@ -18,5 +18,5 @@ es_AR{
         wo{"wolof"}\r
         zgh{"tamazight marroquí estándar"}\r
     }\r
-    Version{"2.1.38.39"}\r
+    Version{"2.1.43.65"}\r
 }\r
index 565c600..08dc805 100644 (file)
@@ -18,5 +18,5 @@ es_CO{
         wo{"wolof"}\r
         zgh{"tamazight marroquí estándar"}\r
     }\r
-    Version{"2.1.38.39"}\r
+    Version{"2.1.43.65"}\r
 }\r
index 8071b6f..8e77a17 100644 (file)
@@ -12,8 +12,10 @@ es_MX{
         arp{"arapaho"}\r
         bas{"basa"}\r
         bax{"bamun"}\r
-        bho{"bhojpuri"}\r
+        bho{"bhoshpuri"}\r
         bla{"siksika"}\r
+        bua{"buriat"}\r
+        de_AT{"alemán austriaco"}\r
         dum{"neerlandés medieval"}\r
         enm{"inglés medieval"}\r
         eu{"euskera"}\r
@@ -22,9 +24,12 @@ es_MX{
         gmh{"alemán de la alta edad media"}\r
         grc{"griego antiguo"}\r
         hak{"kejia (China)"}\r
+        hil{"hiligainón"}\r
         hsn{"xiang (China)"}\r
+        inh{"ingusetio"}\r
         kbd{"kabardiano"}\r
-        krc{"karachay-balkar"}\r
+        krc{"karachái bálkaro"}\r
+        kum{"cumuco"}\r
         lo{"lao"}\r
         lus{"lushai"}\r
         mga{"irlandés medieval"}\r
@@ -57,7 +62,7 @@ es_MX{
     Scripts{\r
         Hanb{"hanb"}\r
         Mlym{"malayálam"}\r
-        Telu{"telugú"}\r
+        Telu{"telegu"}\r
     }\r
     Types{\r
         calendar{\r
@@ -112,7 +117,7 @@ es_MX{
             tibt{"Dígitos en tibetano"}\r
         }\r
     }\r
-    Version{"2.1.38.73"}\r
+    Version{"2.1.44.5"}\r
     characterLabelPattern{\r
         historic{"{0} — Históricos"}\r
         miscellaneous{"{0} — Varios"}\r
index d210966..bc88377 100644 (file)
@@ -18,5 +18,5 @@ es_PY{
         wo{"wolof"}\r
         zgh{"tamazight marroquí estándar"}\r
     }\r
-    Version{"2.1.38.39"}\r
+    Version{"2.1.43.65"}\r
 }\r
index 1f207eb..e6b927e 100644 (file)
@@ -13,13 +13,18 @@ es_US{
         bua{"buriat"}\r
         dum{"neerlandés medieval"}\r
         enm{"inglés medieval"}\r
+        eu{"euskera"}\r
         frm{"francés medieval"}\r
+        gan{"gan (China)"}\r
         gmh{"alemán de la alta edad media"}\r
         grc{"griego antiguo"}\r
         gu{"gurayatí"}\r
         hak{"hak"}\r
+        hsn{"xiang (China)"}\r
+        ht{"criollo haitiano"}\r
         kbd{"kabardiano"}\r
         krc{"karachay-balkar"}\r
+        lo{"lao"}\r
         lus{"lushai"}\r
         mga{"irlandés medieval"}\r
         nan{"nan"}\r
@@ -37,6 +42,7 @@ es_US{
         tet{"tetún"}\r
         tn{"setchwana"}\r
         tyv{"tuviniano"}\r
+        tzm{"tamazight del Atlas Central"}\r
         wo{"wolof"}\r
         wuu{"wuu"}\r
         xal{"kalmyk"}\r
@@ -64,7 +70,7 @@ es_US{
             laoo{"números en lao"}\r
         }\r
     }\r
-    Version{"2.1.38.73"}\r
+    Version{"2.1.43.65"}\r
     characterLabelPattern{\r
         historic{"{0} — Históricos"}\r
         miscellaneous{"{0} — Varios"}\r
index 93c3e61..c68a77d 100644 (file)
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 es_UY{\r
     %%Parent{"es_419"}\r
-    Version{"2.1.38.39"}\r
+    Version{"2.1.44.79"}\r
 }\r
index 6d5a29c..252dc33 100644 (file)
@@ -18,5 +18,5 @@ es_VE{
         wo{"wolof"}\r
         zgh{"tamazight marroquí estándar"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.41.45"}\r
 }\r
index 2f64f84..f3a9148 100644 (file)
@@ -1036,7 +1036,7 @@ et{
         VALENCIA{"valentsia"}\r
         WADEGILE{"Wade’i-Gilesi latinisatsioon"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.91"}\r
     characterLabelPattern{\r
         all{"{0} – kõik"}\r
         category-list{"{0}: {1}"}\r
index ab8acae..282790c 100644 (file)
@@ -28,7 +28,7 @@ eu{
         ach{"acholiera"}\r
         ada{"adangmera"}\r
         ady{"adigera"}\r
-        af{"afrikaansa"}\r
+        af{"afrikaans"}\r
         agq{"aghemera"}\r
         ain{"ainuera"}\r
         ak{"akanera"}\r
@@ -39,8 +39,8 @@ eu{
         anp{"angikera"}\r
         ar{"arabiera"}\r
         ar_001{"arabiera moderno estandarra"}\r
-        arn{"maputxea"}\r
-        arp{"arapahoa"}\r
+        arn{"maputxe"}\r
+        arp{"arapaho"}\r
         as{"assamera"}\r
         asa{"asua"}\r
         ast{"asturiera"}\r
@@ -48,7 +48,7 @@ eu{
         awa{"awadhiera"}\r
         ay{"aimara"}\r
         az{"azerbaijanera"}\r
-        ba{"bashkirrera"}\r
+        ba{"baxkirera"}\r
         ban{"baliera"}\r
         bas{"basaa"}\r
         be{"bielorrusiera"}\r
@@ -67,8 +67,8 @@ eu{
         bs{"bosniera"}\r
         bug{"buginera"}\r
         byn{"bilena"}\r
-        ca{"katalana"}\r
-        ce{"txetxeniera"}\r
+        ca{"katalan"}\r
+        ce{"txetxenera"}\r
         ceb{"cebuera"}\r
         cgg{"chigera"}\r
         ch{"chamorrera"}\r
@@ -79,18 +79,18 @@ eu{
         chy{"cheyennera"}\r
         ckb{"sorania"}\r
         co{"korsikera"}\r
-        crs{"seselwa frantses-kreolera"}\r
+        crs{"Seychelleetako kreolera"}\r
         cs{"txekiera"}\r
-        cu{"Elizako eslaviera"}\r
-        cv{"chuvashera"}\r
-        cy{"galesa"}\r
+        cu{"elizako eslaviera"}\r
+        cv{"txuvaxera"}\r
+        cy{"gales"}\r
         da{"daniera"}\r
         dak{"dakotera"}\r
         dar{"dargvera"}\r
         dav{"taitera"}\r
-        de{"alemana"}\r
-        de_AT{"Austriako alemana"}\r
-        de_CH{"aleman garaia (Suitza)"}\r
+        de{"aleman"}\r
+        de_AT{"Austriako aleman"}\r
+        de_CH{"Suitzako aleman garai"}\r
         dgr{"dogribera"}\r
         dje{"zarma"}\r
         dsb{"behe-sorabiera"}\r
@@ -104,12 +104,12 @@ eu{
         efi{"efikera"}\r
         eka{"akajuka"}\r
         el{"greziera"}\r
-        en{"ingelesa"}\r
-        en_AU{"Australiako ingelesa"}\r
-        en_CA{"Kanadako ingelesa"}\r
-        en_GB{"Britainia Handiko ingelesa"}\r
-        en_US{"AEBko ingelesa"}\r
-        eo{"esperantoa"}\r
+        en{"ingeles"}\r
+        en_AU{"Australiako ingeles"}\r
+        en_CA{"Kanadako ingeles"}\r
+        en_GB{"Britania Handiko ingeles"}\r
+        en_US{"AEBko ingeles"}\r
+        eo{"esperanto"}\r
         es{"espainiera"}\r
         es_419{"Latinoamerikako espainiera"}\r
         es_ES{"espainiera (Europa)"}\r
@@ -124,21 +124,21 @@ eu{
         fj{"fijiera"}\r
         fo{"faroera"}\r
         fon{"fona"}\r
-        fr{"frantsesa"}\r
-        fr_CA{"Kanadako frantsesa"}\r
-        fr_CH{"Suitzako frantsesa"}\r
+        fr{"frantses"}\r
+        fr_CA{"Kanadako frantses"}\r
+        fr_CH{"Suitzako frantses"}\r
         fur{"friuliera"}\r
         fy{"frisiera"}\r
-        ga{"gaelikoa"}\r
+        ga{"gaeliko"}\r
         gaa{"ga"}\r
         gag{"gagauzera"}\r
-        gd{"Eskoziako gaelikoa"}\r
+        gd{"Eskoziako gaeliko"}\r
         gez{"ge’ez"}\r
         gil{"gilbertera"}\r
         gl{"galiziera"}\r
         gn{"guaraniera"}\r
         gor{"gorontaloa"}\r
-        gsw{"alemana (Suitza)"}\r
+        gsw{"Suitzako aleman"}\r
         gu{"gujaratera"}\r
         guz{"gusiiera"}\r
         gv{"manxera"}\r
@@ -146,8 +146,8 @@ eu{
         ha{"hausa"}\r
         haw{"hawaiiera"}\r
         he{"hebreera"}\r
-        hi{"hindia"}\r
-        hil{"hiligainona"}\r
+        hi{"hindi"}\r
+        hil{"hiligainon"}\r
         hmn{"hmong"}\r
         hr{"kroaziera"}\r
         hsb{"goi-sorabiera"}\r
@@ -155,7 +155,7 @@ eu{
         hu{"hungariera"}\r
         hup{"hupera"}\r
         hy{"armeniera"}\r
-        hz{"herera"}\r
+        hz{"hereroera"}\r
         ia{"interlingua"}\r
         iba{"ibanera"}\r
         ibb{"ibibioera"}\r
@@ -168,7 +168,7 @@ eu{
         io{"ido"}\r
         is{"islandiera"}\r
         it{"italiera"}\r
-        iu{"inuitera"}\r
+        iu{"inuktitut"}\r
         ja{"japoniera"}\r
         jbo{"lojbanera"}\r
         jgo{"ngomba"}\r
@@ -182,7 +182,7 @@ eu{
         kbd{"kabardiera"}\r
         kcg{"kataba"}\r
         kde{"makondera"}\r
-        kea{"Cabo Verdeko kreola"}\r
+        kea{"Cabo Verdeko kreolera"}\r
         kfo{"koroa"}\r
         kg{"kikongoa"}\r
         kha{"kashia"}\r
@@ -213,8 +213,8 @@ eu{
         kv{"komiera"}\r
         kw{"kornubiera"}\r
         ky{"kirgizera"}\r
-        la{"latina"}\r
-        lad{"ladinera"}\r
+        la{"latin"}\r
+        lad{"ladino"}\r
         lag{"langiera"}\r
         lb{"luxenburgera"}\r
         lez{"lezgiera"}\r
@@ -242,7 +242,7 @@ eu{
         men{"mendeera"}\r
         mer{"meruera"}\r
         mfe{"Mauritaniako kreolera"}\r
-        mg{"malgaxea"}\r
+        mg{"malgaxe"}\r
         mgh{"makhuwa-meettoera"}\r
         mgo{"metera"}\r
         mh{"marshallera"}\r
@@ -268,18 +268,18 @@ eu{
         na{"nauruera"}\r
         nap{"napoliera"}\r
         naq{"namera"}\r
-        nb{"bokmala (Norvegia)"}\r
+        nb{"bokmål (norvegiera)"}\r
         nd{"iparraldeko ndebeleera"}\r
         nds_NL{"behe-saxoiera"}\r
         ne{"nepalera"}\r
         new{"newarera"}\r
         ng{"ndongera"}\r
-        nia{"niasa"}\r
-        niu{"niuera"}\r
+        nia{"niasera"}\r
+        niu{"niueera"}\r
         nl{"nederlandera"}\r
         nl_BE{"flandriera"}\r
         nmg{"kwasiera"}\r
-        nn{"nynorsk norvegiera"}\r
+        nn{"nynorsk (norvegiera)"}\r
         nnh{"ngiemboonera"}\r
         no{"norvegiera"}\r
         nog{"nogaiera"}\r
@@ -287,7 +287,7 @@ eu{
         nr{"hegoaldeko ndebelera"}\r
         nso{"pediera"}\r
         nus{"nuerera"}\r
-        nv{"navahoera"}\r
+        nv{"navajoera"}\r
         ny{"chewera"}\r
         nyn{"ankolera"}\r
         oc{"okzitaniera"}\r
@@ -297,15 +297,15 @@ eu{
         pa{"punjabera"}\r
         pag{"pangasinanera"}\r
         pam{"pampangera"}\r
-        pap{"papiamentoa"}\r
+        pap{"papiamento"}\r
         pau{"palauera"}\r
         pcm{"Nigeriako pidgina"}\r
         pl{"poloniera"}\r
         prg{"prusiera"}\r
         ps{"paxtuera"}\r
-        pt{"portugesa"}\r
-        pt_BR{"Brasilgo portugesa"}\r
-        pt_PT{"portugesa (Europa)"}\r
+        pt{"portuges"}\r
+        pt_BR{"Brasilgo portuges"}\r
+        pt_PT{"Europako portuges"}\r
         qu{"kitxua"}\r
         quc{"quicheera"}\r
         rap{"rapa nui"}\r
@@ -317,11 +317,11 @@ eu{
         rof{"romboera"}\r
         root{"erroa"}\r
         ru{"errusiera"}\r
-        rup{"aromania"}\r
+        rup{"aromaniera"}\r
         rw{"kinyaruanda"}\r
         rwk{"rwaera"}\r
-        sa{"sanskritoa"}\r
-        sad{"sandawea"}\r
+        sa{"sanskrito"}\r
+        sad{"sandaweera"}\r
         sah{"sakhera"}\r
         saq{"samburuera"}\r
         sat{"santalera"}\r
@@ -330,11 +330,11 @@ eu{
         sc{"sardiniera"}\r
         scn{"siziliera"}\r
         sco{"eskoziera"}\r
-        sd{"sindhia"}\r
+        sd{"sindhi"}\r
         se{"iparraldeko samiera"}\r
         seh{"senera"}\r
         ses{"koyraboro sennia"}\r
-        sg{"sangoa"}\r
+        sg{"sango"}\r
         sh{"serbokroaziera"}\r
         shi{"tachelhita"}\r
         shn{"shanera"}\r
@@ -343,8 +343,8 @@ eu{
         sl{"esloveniera"}\r
         sm{"samoera"}\r
         sma{"hegoaldeko samiera"}\r
-        smj{"lule samiera"}\r
-        smn{"inari-samiera"}\r
+        smj{"Luleko samiera"}\r
+        smn{"Inariko samiera"}\r
         sms{"skolten samiera"}\r
         sn{"shonera"}\r
         snk{"soninkera"}\r
@@ -361,22 +361,22 @@ eu{
         sw{"swahilia"}\r
         sw_CD{"Kongoko swahilia"}\r
         swb{"komoreera"}\r
-        syr{"asiriera"}\r
+        syr{"siriera"}\r
         ta{"tamilera"}\r
-        te{"telugua"}\r
+        te{"telugu"}\r
         tem{"temnea"}\r
         teo{"tesoera"}\r
-        tet{"tetuma"}\r
+        tet{"tetum"}\r
         tg{"tajikera"}\r
         th{"thailandiera"}\r
-        ti{"tigriñera"}\r
+        ti{"tigrinyera"}\r
         tig{"tigrea"}\r
         tk{"turkmenera"}\r
         tl{"tagalog"}\r
         tlh{"klingonera"}\r
         tn{"tswanera"}\r
         to{"tongera"}\r
-        tpi{"tok pisina"}\r
+        tpi{"tok pisin"}\r
         tr{"turkiera"}\r
         trv{"tarokoa"}\r
         ts{"tsongera"}\r
@@ -384,22 +384,22 @@ eu{
         tum{"tumbukera"}\r
         tvl{"tuvaluera"}\r
         tw{"twia"}\r
-        twq{"tasawaqa"}\r
+        twq{"tasawaq"}\r
         ty{"tahitiera"}\r
         tyv{"tuvera"}\r
         tzm{"Erdialdeko Atlaseko amazigera"}\r
         udm{"udmurtera"}\r
         ug{"uigurrera"}\r
         uk{"ukrainera"}\r
-        umb{"umbunduera"}\r
+        umb{"umbundu"}\r
         und{"hizkuntza ezezaguna"}\r
-        ur{"urdua"}\r
+        ur{"urdu"}\r
         uz{"uzbekera"}\r
         vai{"vaiera"}\r
         ve{"vendera"}\r
         vi{"vietnamera"}\r
-        vo{"volapüka"}\r
-        vun{"vunjoa"}\r
+        vo{"volapük"}\r
+        vun{"vunjo"}\r
         wa{"waloiera"}\r
         wae{"walserera"}\r
         wal{"welayta"}\r
@@ -410,7 +410,7 @@ eu{
         xog{"sogera"}\r
         yav{"jangbenera"}\r
         ybb{"yemba"}\r
-        yi{"yiddisha"}\r
+        yi{"yiddish"}\r
         yo{"jorubera"}\r
         yue{"kantonera"}\r
         zgh{"amazigera estandarra"}\r
@@ -420,34 +420,34 @@ eu{
         zu{"zuluera"}\r
         zun{"zuñia"}\r
         zxx{"ez dago eduki linguistikorik"}\r
-        zza{"zazakia"}\r
+        zza{"zazera"}\r
     }\r
     Languages%short{\r
         az{"azerbaijanera"}\r
-        en_GB{"Erresuma Batuko ingelesa"}\r
+        en_GB{"Erresuma Batuko ingeles"}\r
         en_US{"AEBko ingelesa"}\r
     }\r
     Scripts{\r
         Arab{"arabiarra"}\r
         Armn{"armeniarra"}\r
-        Beng{"bengaliarra"}\r
+        Beng{"bengalarra"}\r
         Bopo{"bopomofoa"}\r
         Brai{"braillea"}\r
         Cyrl{"zirilikoa"}\r
         Deva{"devanagaria"}\r
         Ethi{"etiopiarra"}\r
         Geor{"georgiarra"}\r
-        Grek{"greziarra"}\r
-        Gujr{"gujaratera"}\r
+        Grek{"grekoa"}\r
+        Gujr{"gujaratarra"}\r
         Guru{"gurmukhia"}\r
         Hanb{"hänera"}\r
         Hang{"hangula"}\r
         Hani{"idazkera txinatarra"}\r
         Hans{"sinplifikatua"}\r
         Hant{"tradizionala"}\r
-        Hebr{"hebreera"}\r
+        Hebr{"hebrearra"}\r
         Hira{"hiragana"}\r
-        Hrkt{"silaba japoniarrak"}\r
+        Hrkt{"silabario japoniarrak"}\r
         Jamo{"jamo-bihurketa"}\r
         Jpan{"japoniarra"}\r
         Kana{"katakana"}\r
@@ -455,8 +455,8 @@ eu{
         Knda{"kanadarra"}\r
         Kore{"korearra"}\r
         Laoo{"laosarra"}\r
-        Latn{"latina"}\r
-        Mlym{"malayalamera"}\r
+        Latn{"latinoa"}\r
+        Mlym{"malayalamarra"}\r
         Mong{"mongoliarra"}\r
         Mymr{"birmaniarra"}\r
         Orya{"oriyarra"}\r
@@ -567,8 +567,8 @@ eu{
             strict{"Lerro-jauziaren estilo zorrotza"}\r
         }\r
         m0{\r
-            bgn{"BGN bihurketa"}\r
-            ungegn{"UNGEGN bihurketa"}\r
+            bgn{"US BGN transliterazioa"}\r
+            ungegn{"UN GEGN transliterazioa"}\r
         }\r
         ms{\r
             metric{"Sistema metrikoa"}\r
@@ -580,7 +580,7 @@ eu{
             arabext{"Digitu arabiar-hindiko hedatuak"}\r
             armn{"Zenbaki armeniarrak"}\r
             armnlow{"Zenbaki armeniarrak minuskulaz"}\r
-            beng{"digitu bengalarrak"}\r
+            beng{"Digitu bengalarrak"}\r
             deva{"Digitu devanagariak"}\r
             ethi{"Zenbaki etiopiarrak"}\r
             finance{"Finantza-zenbakiak"}\r
@@ -625,7 +625,7 @@ eu{
         SCOTLAND{"ESKOZIAR INGELESA"}\r
         VALENCIA{"VALENTZIERA"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.65"}\r
     characterLabelPattern{\r
         all{"{0} — Guztiak"}\r
         category-list{"{0}: {1}"}\r
index 5b48af2..3ce3f34 100644 (file)
@@ -60,7 +60,7 @@ fa{
         ay{"آیمارایی"}\r
         az{"ترکی آذربایجانی"}\r
         az_Arab{"ترکی آذری جنوبی"}\r
-        ba{"باشغیری"}\r
+        ba{"باشقیری"}\r
         bal{"بلوچی"}\r
         ban{"بالیایی"}\r
         bar{"باواریایی"}\r
@@ -133,7 +133,7 @@ fa{
         dv{"دیوهی"}\r
         dyo{"دیولا فونی"}\r
         dyu{"دایولایی"}\r
-        dz{"جÙ\88Ù\86خاÛ\8cÛ\8c"}\r
+        dz{"دزÙ\88Ù\86گخا"}\r
         dzg{"دازاگایی"}\r
         ebu{"امبو"}\r
         ee{"اوه‌ای"}\r
@@ -160,7 +160,7 @@ fa{
         fa_AF{"دری"}\r
         fan{"فانگی"}\r
         fat{"فانتیایی"}\r
-        ff{"فولایی"}\r
+        ff{"فولانی"}\r
         fi{"فنلاندی"}\r
         fil{"فیلیپینی"}\r
         fj{"فیجیایی"}\r
@@ -377,7 +377,7 @@ fa{
         nyn{"نیانکوله‌ای"}\r
         nyo{"نیورویی"}\r
         nzi{"نزیمایی"}\r
-        oc{"اوکیتایی"}\r
+        oc{"اکسیتان"}\r
         oj{"اوجیبوایی"}\r
         om{"اورومویی"}\r
         or{"اوریه‌ای"}\r
@@ -855,7 +855,7 @@ fa{
         SAAHO{"ساهویی"}\r
         SCOTLAND{"انگلیسی معیار اسکاتلند"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.65"}\r
     characterLabelPattern{\r
         all{"{0} — همه"}\r
         category-list{"{0}: {1}"}\r
index bba10ad..0dad387 100644 (file)
@@ -3,9 +3,10 @@
 fa_AF{\r
     Languages{\r
         ab{"افریکانس"}\r
+        ar_001{"عربی فصیح"}\r
         as{"اسامی"}\r
+        ast{"اتریشی"}\r
         az{"آذربایجانی"}\r
-        ba{"باشقیری"}\r
         ckb{"کردی سورانی"}\r
         dv{"مالدیوی"}\r
         es{"هسپانوی"}\r
@@ -17,20 +18,33 @@ fa_AF{
         it{"ایتالوی"}\r
         ja{"جاپانی"}\r
         ko{"کوریایی"}\r
+        ksh{"کلنی"}\r
+        kw{"کورنی"}\r
         ky{"قرغزی"}\r
+        lus{"میزویی"}\r
+        mai{"مایتیلی"}\r
         mn{"مغلی"}\r
+        nb{"نروژی کتابی"}\r
         ne{"نیپالی"}\r
         nl{"هالندی"}\r
+        nl_BE{"فلمیش"}\r
+        nn{"نروژی نو"}\r
         no{"نارویژی"}\r
         pl{"پولندی"}\r
         pt{"پرتگالی"}\r
         sq{"البانیایی"}\r
+        srn{"زبان سرانان"}\r
         sv{"سویدنی"}\r
         sw{"سواحلی"}\r
         tg{"تاجکی"}\r
+        zh_Hans{"چینی ساده شده"}\r
+        zza{"زازاکی"}\r
+    }\r
+    Languages%variant{\r
+        ps{"پشتو"}\r
     }\r
     Scripts{\r
         Mong{"مغلی"}\r
     }\r
-    Version{"2.1.38.39"}\r
+    Version{"2.1.43.65"}\r
 }\r
index c079213..004029b 100644 (file)
@@ -1118,7 +1118,7 @@ fi{
     Variants%secondary{\r
         FONUPA{"suomalais-ugrilainen tarkekirjoitus"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.91"}\r
     characterLabelPattern{\r
         all{"{0} – kaikki"}\r
         category-list{"{0}: {1}"}\r
index 445a320..57dbbb5 100644 (file)
@@ -664,13 +664,13 @@ fil{
         PINYIN{"Pinyin Romanization"}\r
         WADEGILE{"Wade-Giles Romanization"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.91"}\r
     characterLabelPattern{\r
         all{"{0} — lahat"}\r
         category-list{"{0}: {1}"}\r
         compatibility{"{0} — pagiging nababagay"}\r
-        enclosed{"{0} — enclosed"}\r
-        extended{"{0} — extended"}\r
+        enclosed{"{0} — naka-enclose"}\r
+        extended{"{0} — pinahaba"}\r
         historic{"{0} — makasaysayan"}\r
         miscellaneous{"{0} — miscellaneous"}\r
         other{"{0} — iba pa"}\r
index 88c4840..b4e5924 100644 (file)
@@ -550,7 +550,7 @@ fo{
         POLYTON{"polytonísk"}\r
         WADEGILE{"Wade-Giles"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.41.34"}\r
     characterLabelPattern{\r
         all{"{0} — Alt"}\r
         category-list{"{0}: {1}"}\r
index 61e1b7f..c06a82f 100644 (file)
@@ -27,7 +27,7 @@ fr{
         ace{"aceh"}\r
         ach{"acoli"}\r
         ada{"adangme"}\r
-        ady{"adyghéen"}\r
+        ady{"adyguéen"}\r
         ae{"avestique"}\r
         aeb{"arabe tunisien"}\r
         af{"afrikaans"}\r
@@ -56,7 +56,7 @@ fr{
         ary{"arabe marocain"}\r
         arz{"arabe égyptien"}\r
         as{"assamais"}\r
-        asa{"assou"}\r
+        asa{"asu"}\r
         ase{"langue des signes américaine"}\r
         ast{"asturien"}\r
         av{"avar"}\r
@@ -71,7 +71,7 @@ fr{
         bas{"bassa"}\r
         bax{"bamoun"}\r
         bbc{"batak toba"}\r
-        bbj{"ghomala"}\r
+        bbj{"ghomalaʼ"}\r
         be{"biélorusse"}\r
         bej{"bedja"}\r
         bem{"bemba"}\r
@@ -81,7 +81,7 @@ fr{
         bfq{"badaga"}\r
         bg{"bulgare"}\r
         bgn{"baloutchi occidental"}\r
-        bho{"bhojpuri"}\r
+        bho{"bhodjpouri"}\r
         bi{"bichelamar"}\r
         bik{"bikol"}\r
         bin{"bini"}\r
@@ -172,6 +172,9 @@ fr{
         enm{"moyen anglais"}\r
         eo{"espéranto"}\r
         es{"espagnol"}\r
+        es_419{"espagnol d’Amérique latine"}\r
+        es_ES{"espagnol d’Espagne"}\r
+        es_MX{"espagnol du Mexique"}\r
         esu{"youpik central"}\r
         et{"estonien"}\r
         eu{"basque"}\r
@@ -216,7 +219,7 @@ fr{
         gom{"konkani de Goa"}\r
         gon{"gondi"}\r
         gor{"gorontalo"}\r
-        got{"gothique"}\r
+        got{"gotique"}\r
         grb{"grebo"}\r
         grc{"grec ancien"}\r
         gsw{"suisse allemand"}\r
@@ -253,7 +256,7 @@ fr{
         ig{"igbo"}\r
         ii{"yi du Sichuan"}\r
         ik{"inupiaq"}\r
-        ilo{"ilokano"}\r
+        ilo{"ilocano"}\r
         inh{"ingouche"}\r
         io{"ido"}\r
         is{"islandais"}\r
@@ -276,14 +279,14 @@ fr{
         kaj{"jju"}\r
         kam{"kamba"}\r
         kaw{"kawi"}\r
-        kbd{"kabardin"}\r
+        kbd{"kabarde"}\r
         kbl{"kanembou"}\r
         kcg{"tyap"}\r
         kde{"makondé"}\r
         kea{"capverdien"}\r
         ken{"kényang"}\r
         kfo{"koro"}\r
-        kg{"kongo"}\r
+        kg{"kikongo"}\r
         kgp{"caingangue"}\r
         kha{"khasi"}\r
         kho{"khotanais"}\r
@@ -291,7 +294,7 @@ fr{
         khw{"khowar"}\r
         ki{"kikuyu"}\r
         kiu{"kirmanjki"}\r
-        kj{"kouanyama"}\r
+        kj{"kuanyama"}\r
         kk{"kazakh"}\r
         kkj{"kako"}\r
         kl{"groenlandais"}\r
@@ -310,8 +313,8 @@ fr{
         krj{"kinaray-a"}\r
         krl{"carélien"}\r
         kru{"kouroukh"}\r
-        ks{"kashmiri"}\r
-        ksb{"chambala"}\r
+        ks{"cachemiri"}\r
+        ksb{"shambala"}\r
         ksf{"bafia"}\r
         ksh{"francique ripuaire"}\r
         ku{"kurde"}\r
@@ -342,33 +345,33 @@ fr{
         lrc{"lori du Nord"}\r
         lt{"lituanien"}\r
         ltg{"latgalien"}\r
-        lu{"luba-katanga"}\r
-        lua{"luba-lulua"}\r
+        lu{"luba-katanga (kiluba)"}\r
+        lua{"luba-kasaï (ciluba)"}\r
         lui{"luiseño"}\r
         lun{"lunda"}\r
         luo{"luo"}\r
         lus{"lushaï"}\r
-        luy{"luhya"}\r
+        luy{"luyia"}\r
         lv{"letton"}\r
         lzh{"chinois littéraire"}\r
         lzz{"laze"}\r
-        mad{"madourais"}\r
+        mad{"madurais"}\r
         maf{"mafa"}\r
         mag{"magahi"}\r
-        mai{"maithili"}\r
+        mai{"maïthili"}\r
         mak{"makassar"}\r
         man{"mandingue"}\r
-        mas{"massaï"}\r
+        mas{"maasaï"}\r
         mde{"maba"}\r
-        mdf{"moksa"}\r
+        mdf{"mokcha"}\r
         mdr{"mandar"}\r
         men{"mendé"}\r
-        mer{"mérou"}\r
+        mer{"meru"}\r
         mfe{"créole mauricien"}\r
         mg{"malgache"}\r
         mga{"moyen irlandais"}\r
-        mgh{"makhuwa-meetto"}\r
-        mgo{"méta’"}\r
+        mgh{"makua"}\r
+        mgo{"metaʼ"}\r
         mh{"marshallais"}\r
         mi{"maori"}\r
         mic{"micmac"}\r
@@ -380,7 +383,7 @@ fr{
         mni{"manipuri"}\r
         moh{"mohawk"}\r
         mos{"moré"}\r
-        mr{"marathe"}\r
+        mr{"marathi"}\r
         mrj{"mari occidental"}\r
         ms{"malais"}\r
         mt{"maltais"}\r
@@ -405,12 +408,12 @@ fr{
         ne{"népalais"}\r
         new{"newari"}\r
         ng{"ndonga"}\r
-        nia{"nias"}\r
+        nia{"niha"}\r
         niu{"niuéen"}\r
         njo{"Ao"}\r
         nl{"néerlandais"}\r
         nl_BE{"flamand"}\r
-        nmg{"kwasio"}\r
+        nmg{"ngoumba"}\r
         nn{"norvégien nynorsk"}\r
         nnh{"ngiemboon"}\r
         no{"norvégien"}\r
@@ -421,9 +424,9 @@ fr{
         nr{"ndébélé du Sud"}\r
         nso{"sotho du Nord"}\r
         nus{"nuer"}\r
-        nv{"navaho"}\r
+        nv{"navajo"}\r
         nwc{"newarî classique"}\r
-        ny{"nyanja"}\r
+        ny{"chewa"}\r
         nym{"nyamwezi"}\r
         nyn{"nyankolé"}\r
         nyo{"nyoro"}\r
@@ -431,7 +434,7 @@ fr{
         oc{"occitan"}\r
         oj{"ojibwa"}\r
         om{"oromo"}\r
-        or{"oriya"}\r
+        or{"odia"}\r
         os{"ossète"}\r
         osa{"osage"}\r
         ota{"turc ottoman"}\r
@@ -460,7 +463,7 @@ fr{
         pt_BR{"portugais brésilien"}\r
         pt_PT{"portugais européen"}\r
         qu{"quechua"}\r
-        quc{"k’iche’"}\r
+        quc{"quiché"}\r
         qug{"quichua du Haut-Chimborazo"}\r
         raj{"rajasthani"}\r
         rap{"rapanui"}\r
@@ -478,49 +481,49 @@ fr{
         ru{"russe"}\r
         rue{"ruthène"}\r
         rug{"roviana"}\r
-        rup{"valaque"}\r
-        rw{"rwanda"}\r
+        rup{"aroumain"}\r
+        rw{"kinyarwanda"}\r
         rwk{"rwa"}\r
         sa{"sanskrit"}\r
         sad{"sandawe"}\r
         sah{"iakoute"}\r
         sam{"araméen samaritain"}\r
-        saq{"sambourou"}\r
+        saq{"samburu"}\r
         sas{"sasak"}\r
-        sat{"santal"}\r
+        sat{"santali"}\r
         saz{"saurashtra"}\r
         sba{"ngambay"}\r
-        sbp{"sangu"}\r
+        sbp{"isangu"}\r
         sc{"sarde"}\r
         scn{"sicilien"}\r
         sco{"écossais"}\r
         sd{"sindhi"}\r
         sdc{"sarde sassarais"}\r
         sdh{"kurde du Sud"}\r
-        se{"sami du Nord"}\r
+        se{"same du Nord"}\r
         see{"seneca"}\r
         seh{"cisena"}\r
         sei{"séri"}\r
         sel{"selkoupe"}\r
         ses{"koyraboro senni"}\r
-        sg{"sangho"}\r
+        sg{"sango"}\r
         sga{"ancien irlandais"}\r
         sgs{"samogitien"}\r
         sh{"serbo-croate"}\r
         shi{"chleuh"}\r
         shn{"shan"}\r
         shu{"arabe tchadien"}\r
-        si{"cinghalais"}\r
+        si{"cingalais"}\r
         sid{"sidamo"}\r
         sk{"slovaque"}\r
         sl{"slovène"}\r
         sli{"bas-silésien"}\r
         sly{"sélayar"}\r
         sm{"samoan"}\r
-        sma{"sami du Sud"}\r
-        smj{"sami de Lule"}\r
-        smn{"sami d’Inari"}\r
-        sms{"sami skolt"}\r
+        sma{"same du Sud"}\r
+        smj{"same de Lule"}\r
+        smn{"same d’Inari"}\r
+        sms{"same skolt"}\r
         sn{"shona"}\r
         snk{"soninké"}\r
         so{"somali"}\r
@@ -547,10 +550,10 @@ fr{
         ta{"tamoul"}\r
         tcy{"toulou"}\r
         te{"télougou"}\r
-        tem{"temne"}\r
+        tem{"timné"}\r
         teo{"teso"}\r
         ter{"tereno"}\r
-        tet{"tetum"}\r
+        tet{"tétoum"}\r
         tg{"tadjik"}\r
         th{"thaï"}\r
         ti{"tigrigna"}\r
@@ -565,7 +568,7 @@ fr{
         tly{"talysh"}\r
         tmh{"tamacheq"}\r
         tn{"tswana"}\r
-        to{"tonguien"}\r
+        to{"tongien"}\r
         tog{"tonga nyasa"}\r
         tpi{"tok pisin"}\r
         tr{"turc"}\r
@@ -576,7 +579,7 @@ fr{
         tsi{"tsimshian"}\r
         tt{"tatar"}\r
         ttt{"tati caucasien"}\r
-        tum{"toumbouka"}\r
+        tum{"tumbuka"}\r
         tvl{"tuvalu"}\r
         tw{"twi"}\r
         twq{"tasawaq"}\r
@@ -587,7 +590,7 @@ fr{
         ug{"ouïghour"}\r
         uga{"ougaritique"}\r
         uk{"ukrainien"}\r
-        umb{"oumboundou"}\r
+        umb{"umbundu"}\r
         und{"langue indéterminée"}\r
         ur{"ourdou"}\r
         uz{"ouzbek"}\r
@@ -598,7 +601,7 @@ fr{
         vi{"vietnamien"}\r
         vls{"flamand occidental"}\r
         vmf{"franconien du Main"}\r
-        vo{"volapuk"}\r
+        vo{"volapük"}\r
         vot{"vote"}\r
         vro{"võro"}\r
         vun{"vunjo"}\r
@@ -669,7 +672,7 @@ fr{
         Cprt{"syllabaire chypriote"}\r
         Cyrl{"cyrillique"}\r
         Cyrs{"cyrillique (variante slavonne)"}\r
-        Deva{"dévanâgarî"}\r
+        Deva{"dévanagari"}\r
         Dsrt{"déséret"}\r
         Egyd{"démotique égyptien"}\r
         Egyh{"hiératique égyptien"}\r
@@ -729,7 +732,7 @@ fr{
         Ogam{"ogam"}\r
         Olck{"ol tchiki"}\r
         Orkh{"orkhon"}\r
-        Orya{"oriya"}\r
+        Orya{"odia"}\r
         Osma{"osmanais"}\r
         Perm{"ancien permien"}\r
         Phag{"phags pa"}\r
@@ -747,7 +750,7 @@ fr{
         Saur{"saurashtra"}\r
         Sgnw{"écriture des signes"}\r
         Shaw{"shavien"}\r
-        Sinh{"cinghalais"}\r
+        Sinh{"cingalais"}\r
         Sund{"sundanais"}\r
         Sylo{"sylotî nâgrî"}\r
         Syrc{"syriaque"}\r
@@ -869,8 +872,8 @@ fr{
             zhuyin{"ordre zhuyin"}\r
         }\r
         d0{\r
-            fwidth{"pleine chasse"}\r
-            hwidth{"demi-chasse"}\r
+            fwidth{"en pleine chasse"}\r
+            hwidth{"en demi-chasse"}\r
             npinyin{"Numérique"}\r
         }\r
         hc{\r
@@ -899,7 +902,7 @@ fr{
             armn{"chiffres arméniens"}\r
             armnlow{"chiffres arméniens minuscules"}\r
             beng{"chiffres bengalis"}\r
-            deva{"chiffres devanagaris"}\r
+            deva{"chiffres dévanagaris"}\r
             ethi{"chiffres éthiopiens"}\r
             finance{"Chiffres financiers"}\r
             fullwide{"chiffres pleine chasse"}\r
@@ -927,7 +930,7 @@ fr{
             orya{"chiffres oriyas"}\r
             roman{"chiffres romains"}\r
             romanlow{"chiffres romains minuscules"}\r
-            taml{"chiffres tamouls"}\r
+            taml{"chiffres tamouls traditionnels"}\r
             tamldec{"chiffres tamouls"}\r
             telu{"chiffres télougous"}\r
             thai{"chiffres thaïs"}\r
@@ -967,10 +970,10 @@ fr{
         VALENCIA{"valencien"}\r
         WADEGILE{"Wade-Giles"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.91"}\r
     characterLabelPattern{\r
         all{"{0} — tout"}\r
-        category-list{"{0} : {1}"}\r
+        category-list{"{0}: {1}"}\r
         compatibility{"{0} — compatibilité"}\r
         enclosed{"{0} — entouré"}\r
         extended{"{0} — étendu"}\r
@@ -984,12 +987,12 @@ fr{
         }\r
     }\r
     codePatterns{\r
-        language{"langue : {0}"}\r
-        script{"écriture : {0}"}\r
-        territory{"région : {0}"}\r
+        language{"langue: {0}"}\r
+        script{"écriture: {0}"}\r
+        territory{"région: {0}"}\r
     }\r
     localeDisplayPattern{\r
-        keyTypePattern{"{0} : {1}"}\r
+        keyTypePattern{"{0}: {1}"}\r
         pattern{"{0} ({1})"}\r
         separator{"{0}, {1}"}\r
     }\r
index 97db582..45dfdfc 100644 (file)
@@ -4,14 +4,8 @@ fr_BE{
     Languages{\r
         frp{"franco-provençal"}\r
         goh{"ancien haut-allemand"}\r
-        got{"gotique"}\r
         gu{"gujarati"}\r
         njo{"ao"}\r
-        se{"same du Nord"}\r
-        sma{"same du Sud"}\r
-        smj{"same de Lule"}\r
-        smn{"same d’Inari"}\r
-        sms{"same skolt"}\r
     }\r
-    Version{"2.1.38.39"}\r
+    Version{"2.1.43.65"}\r
 }\r
index a60ed61..e6ba747 100644 (file)
@@ -4,7 +4,9 @@ fr_CA{
     Languages{\r
         ady{"adygué"}\r
         ang{"vieil anglais"}\r
+        asa{"assou"}\r
         az{"azerbaïdjanais"}\r
+        bbj{"ghomala"}\r
         bez{"bena"}\r
         bik{"bicol"}\r
         byn{"bilen"}\r
@@ -21,53 +23,55 @@ fr_CA{
         goh{"vieux haut-allemand"}\r
         gu{"gujarati"}\r
         ii{"yi de Sichuan"}\r
-        ilo{"ilocano"}\r
-        kbd{"kabarde"}\r
         ken{"kenyang"}\r
-        kj{"kuanyama"}\r
+        kg{"kongo"}\r
         kl{"kalaallisut"}\r
+        ks{"kashmiri"}\r
+        ksb{"chambala"}\r
         ksh{"kölsch"}\r
         liv{"live"}\r
+        lu{"luba-katanga"}\r
         luo{"luo"}\r
         lzh{"chinois classique"}\r
+        mgh{"makhuwa-meetto"}\r
         mgo{"meta’"}\r
+        mr{"marathe"}\r
         mwr{"marwari"}\r
         mwv{"mentawai"}\r
         nds{"bas allemand"}\r
         nds_NL{"bas saxon"}\r
         njo{"ao naga"}\r
+        nmg{"kwasio"}\r
         nwc{"newari classique"}\r
         nyn{"nkole"}\r
-        or{"odia"}\r
         pau{"palauan"}\r
         pdc{"allemand de Pennsylvanie"}\r
         pdt{"bas allemand mennonite"}\r
         peo{"vieux perse"}\r
         pfl{"palatin"}\r
         pro{"ancien occitan"}\r
+        quc{"k’iche’"}\r
         rar{"rarotonga"}\r
-        rup{"aroumain"}\r
-        sat{"santali"}\r
+        sbp{"sangu"}\r
         sdh{"kurde méridional"}\r
-        se{"same du Nord"}\r
         sei{"seri"}\r
-        sg{"sango"}\r
         sga{"vieil irlandais"}\r
         sly{"selayar"}\r
-        sma{"same du Sud"}\r
-        smj{"same de Lule"}\r
-        sms{"same skolt"}\r
+        smn{"sami d’Inari"}\r
         sw_CD{"swahili congolais"}\r
         tru{"turoyo"}\r
         tzm{"tamazight"}\r
-        vo{"volapük"}\r
+    }\r
+    Languages%variant{\r
+        ug{"ouïghour"}\r
     }\r
     Scripts{\r
         Deva{"devanagari"}\r
         Gujr{"gujarati"}\r
         Hanb{"hanb"}\r
+        Hans{"idéogrammes han simplifiés"}\r
+        Hant{"idéogrammes han traditionnels"}\r
         Hrkt{"syllabaires japonais"}\r
-        Orya{"odia"}\r
         Zsye{"zsye"}\r
     }\r
     Scripts%stand-alone{\r
@@ -85,6 +89,10 @@ fr_CA{
             reformed{"Ordre de tri réformé"}\r
             searchjl{"Rechercher par consonne initiale en hangeul"}\r
         }\r
+        d0{\r
+            fwidth{"pleine chasse"}\r
+            hwidth{"demi-chasse"}\r
+        }\r
         m0{\r
             bgn{"BGN (commission de toponymie des États-Unis)"}\r
             ungegn{"GENUNG"}\r
@@ -92,11 +100,18 @@ fr_CA{
         numbers{\r
             gujr{"chiffres gujaratis"}\r
             mong{"Chiffres mongols"}\r
-            taml{"chiffres tamouls traditionnels"}\r
         }\r
     }\r
-    Version{"2.1.38.73"}\r
+    Version{"2.1.43.65"}\r
     characterLabelPattern{\r
         category-list{"{0} : {1}"}\r
     }\r
+    codePatterns{\r
+        language{"langue : {0}"}\r
+        script{"écriture : {0}"}\r
+        territory{"région : {0}"}\r
+    }\r
+    localeDisplayPattern{\r
+        keyTypePattern{"{0} : {1}"}\r
+    }\r
 }\r
index 1d0702a..6155638 100644 (file)
@@ -6,5 +6,5 @@ fr_CH{
         pdc{"allemand de Pennsylvanie"}\r
         sdh{"kurde méridional"}\r
     }\r
-    Version{"2.1.38.85"}\r
+    Version{"2.1.43.65"}\r
 }\r
index 336becf..8bb47f5 100644 (file)
@@ -886,7 +886,7 @@ fy{
         VALLADER{"Vallader"}\r
         WADEGILE{"Wade-Giles-romanisering"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.41.34"}\r
     codePatterns{\r
         language{"Taal: {0}"}\r
         script{"Skrift: {0}"}\r
index 3d697bb..ddde3c5 100644 (file)
@@ -853,7 +853,7 @@ ga{
         WADEGILE{"Rómhánú Wade-Giles"}\r
         XSISTEMO{"XSISTEMO"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.91"}\r
     characterLabelPattern{\r
         all{"{0} — Uile"}\r
         category-list{"{0}: {1}"}\r
index ea8bf79..54bc766 100644 (file)
@@ -323,6 +323,7 @@ gd{
         ln{"Lingala"}\r
         lo{"Làtho"}\r
         lol{"Mongo"}\r
+        lou{"Crìtheol Louisiana"}\r
         loz{"Lozi"}\r
         lrc{"Luri Thuathach"}\r
         lt{"Liotuainis"}\r
@@ -642,6 +643,7 @@ gd{
         Cyrl{"Cirilis"}\r
         Cyrs{"Cirilis Seann-Slàbhais na h-Eaglaise"}\r
         Deva{"Devanagari"}\r
+        Dogr{"Dogra"}\r
         Dsrt{"Deseret"}\r
         Dupl{"Gearr-sgrìobhadh Duployé"}\r
         Egyp{"Sealbh-sgrìobhadh Èipheiteach"}\r
@@ -649,6 +651,7 @@ gd{
         Ethi{"Ge’ez"}\r
         Geor{"Cairtbheilis"}\r
         Glag{"Glagoliticeach"}\r
+        Gong{"Gunjala Gondi"}\r
         Gonm{"Masaram Gondi"}\r
         Goth{"Gotais"}\r
         Gran{"Grantha"}\r
@@ -696,10 +699,12 @@ gd{
         Lyci{"Lycian"}\r
         Lydi{"Lydian"}\r
         Mahj{"Mahajani"}\r
+        Maka{"Makasar"}\r
         Mand{"Mandaean"}\r
         Mani{"Manichaean"}\r
         Marc{"Marchen"}\r
         Maya{"Dealbh-sgrìobhadh Mayach"}\r
+        Medf{"Medefaidrin"}\r
         Mend{"Mende"}\r
         Merc{"Meroiticeach ceangailte"}\r
         Mero{"Meroiticeach"}\r
@@ -731,8 +736,8 @@ gd{
         Phnx{"Pheniceach"}\r
         Plrd{"Miao Phollard"}\r
         Prti{"Partais snaidh-sgrìobhte"}\r
-        Qaac{"Qaac"}\r
         Rjng{"Rejang"}\r
+        Rohg{"Hanifi Rohingya"}\r
         Roro{"Rongorongo"}\r
         Runr{"Rùn-sgrìobhadh"}\r
         Samr{"Samaritanais"}\r
@@ -745,6 +750,8 @@ gd{
         Sidd{"Siddham"}\r
         Sind{"Khudawadi"}\r
         Sinh{"Sinhala"}\r
+        Sogd{"Sogdianais"}\r
+        Sogo{"Seann-Sogdianais"}\r
         Sora{"Sora Sompeng"}\r
         Soyo{"Soyombo"}\r
         Sund{"Sunda"}\r
@@ -857,6 +864,7 @@ gd{
             ussystem{"Tomhas nan Stàitean Aonaichte"}\r
         }\r
         numbers{\r
+            ahom{"Àireamhan Ahom"}\r
             arab{"Àireamhan Arabach-Innseanach"}\r
             arabext{"Àireamhan Arabach-Innseanach leudaichte"}\r
             armn{"Àireamhan na h-Airmeinise"}\r
@@ -866,10 +874,13 @@ gd{
             brah{"Àireamhan Brahmi"}\r
             cakm{"Àireamhan Chakma"}\r
             cham{"Àireamhan Cham"}\r
+            cyrl{"Àireamhan na Cirilise"}\r
             deva{"Àireamhan Devanagari"}\r
             ethi{"Àireamhan Itiopach"}\r
             fullwide{"Àireamhan làn-leud"}\r
             geor{"Àireamhan na Cairtbheilise"}\r
+            gong{"Àireamhan Gunjala Gondi"}\r
+            gonm{"Àireamhan Masaram Gondi"}\r
             grek{"Àireamhan na Greugaise"}\r
             greklow{"Àireamhan beaga na Greugaise"}\r
             gujr{"Àireamhan Gujarati"}\r
@@ -880,6 +891,7 @@ gd{
             hant{"Àireamhan na Sìnise Thradaiseanta"}\r
             hantfin{"Àireamhan ionmhasail na Sìnise Thradaiseanta"}\r
             hebr{"Àireamhan na h-Eabhra"}\r
+            hmng{"Àireamhan Pahawh Hmong"}\r
             java{"Àireamhan na Deàbhanaise"}\r
             jpan{"Àireamhan na Seapanaise"}\r
             jpanfin{"Àireamhan ionmhasail na Seapanaise"}\r
@@ -892,19 +904,30 @@ gd{
             latn{"Àireamhan Siarach"}\r
             lepc{"Àireamhan Lepcha"}\r
             limb{"Àireamhan Limbu"}\r
+            mathbold{"Àireamhan matamataig troma"}\r
+            mathdbl{"Àireamhan matamataig le loidhne dhùbailte"}\r
+            mathmono{"Àireamhan matamataig aon-leud"}\r
+            mathsanb{"Àireamhan matamataig sans-serif troma"}\r
+            mathsans{"Àireamhan matamataig sans-serif"}\r
             mlym{"Àireamhan Malayalam"}\r
+            modi{"Àireamhan Modi"}\r
             mong{"Àireamhan na Mongolaise"}\r
+            mroo{"Àireamhan Mro"}\r
             mtei{"Àireamhan Meetei Mayek"}\r
             mymr{"Àireamhan Miànmar"}\r
             mymrshan{"Àireamhan Shan Miànmar"}\r
+            mymrtlng{"Àireamhan Tai Laing Miànmar"}\r
             nkoo{"Àireamhan N’Ko"}\r
             olck{"Àireamhan Ol Chiki"}\r
             orya{"Àireamhan Odia"}\r
             osma{"Àireamhan Osmanya"}\r
+            rohg{"Àireamhan Hanifi Rohingya"}\r
             roman{"Àireamhan Ròmanach"}\r
             romanlow{"Àireamhan beaga Ròmanach"}\r
             saur{"Àireamhan Saurashtra"}\r
             shrd{"Àireamhan Sharada"}\r
+            sind{"Àireamhan Khudawadi"}\r
+            sinh{"Àireamhan Lith na Sinhala"}\r
             sora{"Àireamhan Sora Sompeng"}\r
             sund{"Àireamhan Sunda"}\r
             takr{"Àireamhan Takri"}\r
@@ -914,7 +937,9 @@ gd{
             telu{"Àireamhan Telugu"}\r
             thai{"Àireamhan Tàidh"}\r
             tibt{"Àireamhan na Tibeitise"}\r
+            tirh{"Àireamhan Tirhuta"}\r
             vaii{"Àireamhan Vai"}\r
+            wara{"Àireamhan Warang Citi"}\r
         }\r
     }\r
     Variants{\r
@@ -925,11 +950,13 @@ gd{
         1994{"Litreachadh stannardach dual-chainnt Resia"}\r
         1996{"Litreachadh na Gearmailtise 1996"}\r
         ABL1943{"Gnàthas-litreachaidh 1943"}\r
+        AKUAPEM{"AKUAPEM"}\r
         ALALC97{"Ròmanachadh ALA-LC 1997"}\r
         ALUKU{"Dual-chainnt Aluku"}\r
         AO1990{"Aonta litreachadh na Portagailise 1990"}\r
         AREVELA{"Airmeinis an Ear"}\r
         AREVMDA{"Airmeinis an Iar"}\r
+        ASANTE{"ASANTE"}\r
         BAKU1926{"Abidil Laideann aonaichte na Turcaise"}\r
         BALANKA{"Dual-chainnt Balanka de Anii"}\r
         BARLA{"Dual-chainntean Barlavento de Kabuverdianu"}\r
@@ -953,6 +980,7 @@ gd{
         HSISTEMO{"HSISTEMO"}\r
         IJEKAVSK{"Sèirbis le fuaimneachadh Ijekavia"}\r
         ITIHASA{"Itihasa"}\r
+        IVANCHOV{"IVANCHOV"}\r
         JAUER{"Jauer"}\r
         JYUTPING{"Jyutping"}\r
         KKCOR{"Litreachadh coitcheann"}\r
@@ -1004,7 +1032,7 @@ gd{
         WADEGILE{"Ròmanachadh Wade-Giles"}\r
         XSISTEMO{"XSISTEMO"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.91"}\r
     characterLabelPattern{\r
         all{"{0} – na h-uile"}\r
         category-list{"{0}: {1}"}\r
index e863bd6..4321e76 100644 (file)
@@ -11,7 +11,7 @@ gl{
         colNormalization{"Clasificación normalizada"}\r
         colNumeric{"Clasificación numérica"}\r
         colStrength{"Forza de clasificación"}\r
-        collation{"orde de clasificación"}\r
+        collation{"criterio de ordenación"}\r
         currency{"moeda"}\r
         hc{"ciclo horario (12 ou 24)"}\r
         lb{"estilo de quebra de liña"}\r
@@ -49,7 +49,7 @@ gl{
         awa{"awadhi"}\r
         ay{"aimará"}\r
         az{"acerbaixano"}\r
-        ba{"baskir"}\r
+        ba{"baxkir"}\r
         ban{"balinés"}\r
         bas{"basaa"}\r
         be{"bielorruso"}\r
@@ -61,7 +61,7 @@ gl{
         bi{"bislama"}\r
         bin{"bini"}\r
         bla{"siksiká"}\r
-        bm{"bambaro"}\r
+        bm{"bambara"}\r
         bn{"bengalí"}\r
         bo{"tibetano"}\r
         br{"bretón"}\r
@@ -74,7 +74,7 @@ gl{
         ceb{"cebuano"}\r
         cgg{"kiga"}\r
         ch{"chamorro"}\r
-        chk{"chuukese"}\r
+        chk{"chuuk"}\r
         chm{"mari"}\r
         cho{"choctaw"}\r
         chr{"cherokee"}\r
@@ -124,7 +124,7 @@ gl{
         ff{"fula"}\r
         fi{"finés"}\r
         fil{"filipino"}\r
-        fj{"fidxiano"}\r
+        fj{"fixiano"}\r
         fo{"feroés"}\r
         fon{"fon"}\r
         fr{"francés"}\r
@@ -143,7 +143,7 @@ gl{
         gor{"gorontalo"}\r
         grc{"grego antigo"}\r
         gsw{"alemán suízo"}\r
-        gu{"guxaratí"}\r
+        gu{"guxarati"}\r
         guz{"gusii"}\r
         gv{"manx"}\r
         gwi{"gwichʼin"}\r
@@ -164,7 +164,7 @@ gl{
         iba{"iban"}\r
         ibb{"ibibio"}\r
         id{"indonesio"}\r
-        ig{"ibo"}\r
+        ig{"igbo"}\r
         ii{"yi sichuanés"}\r
         ilo{"ilocano"}\r
         inh{"inguxo"}\r
@@ -198,16 +198,16 @@ gl{
         kln{"kalenjin"}\r
         km{"khmer"}\r
         kmb{"kimbundu"}\r
-        kn{"canarés"}\r
+        kn{"kannará"}\r
         ko{"coreano"}\r
         koi{"komi permio"}\r
         kok{"konkani"}\r
         kpe{"kpelle"}\r
-        kr{"canuri"}\r
+        kr{"kanuri"}\r
         krc{"carachaio-bálcara"}\r
         krl{"carelio"}\r
         kru{"kurukh"}\r
-        ks{"cachemir"}\r
+        ks{"caxemirés"}\r
         ksb{"shambala"}\r
         ksf{"bafia"}\r
         ksh{"kölsch"}\r
@@ -289,16 +289,16 @@ gl{
         nog{"nogai"}\r
         nqo{"n’ko"}\r
         nr{"ndebele meridional"}\r
-        nso{"sesotho sa leboa"}\r
+        nso{"sesotho do norte"}\r
         nus{"nuer"}\r
         nv{"navajo"}\r
         ny{"nyanja"}\r
         nyn{"nyankole"}\r
         oc{"occitano"}\r
         om{"oromo"}\r
-        or{"oriya"}\r
+        or{"odiá"}\r
         os{"ossetio"}\r
-        pa{"panxabiano"}\r
+        pa{"panxabí"}\r
         pag{"pangasinan"}\r
         pam{"pampanga"}\r
         pap{"papiamento"}\r
@@ -322,11 +322,11 @@ gl{
         root{"raíz"}\r
         ru{"ruso"}\r
         rup{"aromanés"}\r
-        rw{"ruandés"}\r
+        rw{"kiñaruanda"}\r
         rwk{"rwa"}\r
         sa{"sánscrito"}\r
         sad{"sandawe"}\r
-        sah{"sakha"}\r
+        sah{"iacuto"}\r
         saq{"samburu"}\r
         sat{"santali"}\r
         sba{"ngambay"}\r
@@ -357,7 +357,7 @@ gl{
         sq{"albanés"}\r
         sr{"serbio"}\r
         srn{"sranan tongo"}\r
-        ss{"swazi"}\r
+        ss{"suazi"}\r
         ssy{"saho"}\r
         st{"sesotho"}\r
         su{"sundanés"}\r
@@ -387,7 +387,7 @@ gl{
         ts{"tsonga"}\r
         tt{"tártaro"}\r
         tum{"tumbuka"}\r
-        tvl{"tuvaluano"}\r
+        tvl{"tuvalés"}\r
         tw{"twi"}\r
         twq{"tasawaq"}\r
         ty{"tahitiano"}\r
@@ -412,12 +412,12 @@ gl{
         wbp{"walrpiri"}\r
         wo{"wólof"}\r
         xal{"calmuco"}\r
-        xh{"xosa"}\r
+        xh{"xhosa"}\r
         xog{"soga"}\r
         yav{"yangben"}\r
         ybb{"yemba"}\r
         yi{"yiddish"}\r
-        yo{"yoruba"}\r
+        yo{"ioruba"}\r
         yue{"cantonés"}\r
         zgh{"tamazight marroquí estándar"}\r
         zh{"chinés"}\r
@@ -626,7 +626,7 @@ gl{
             vaii{"Díxitos Vai"}\r
         }\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.94"}\r
     characterLabelPattern{\r
         all{"{0} (todo)"}\r
         category-list{"{0}: {1}"}\r
index 3a720b8..5b1cd9c 100644 (file)
@@ -619,7 +619,7 @@ gsw{
         SOLBA{"Solbica-Mundart"}\r
         TARASK{"Taraskievica-Rächtschriibig"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.41.34"}\r
     codePatterns{\r
         language{"Schpraach: {0}"}\r
         script{"Schrift: {0}"}\r
index 016cee1..bd1fbe4 100644 (file)
@@ -448,7 +448,7 @@ gu{
         sk{"સ્લોવૅક"}\r
         sl{"સ્લોવેનિયન"}\r
         sm{"સામોન"}\r
-        sma{"દક્ષિણ સામી"}\r
+        sma{"દક્ષિણ સામી"}\r
         smj{"લુલે સામી"}\r
         smn{"ઇનારી સામી"}\r
         sms{"સ્કોલ્ટ સામી"}\r
@@ -654,7 +654,6 @@ gu{
         Phnx{"ફોનિશિયન"}\r
         Plrd{"પોલાર્ડ ફોનેટિક"}\r
         Prti{"ઇન્સ્ક્રિપ્શનલ પાર્થિયન"}\r
-        Qaae{"Qaae"}\r
         Rjng{"રીજાંગ"}\r
         Roro{"રોંગોરોંગો"}\r
         Runr{"રૂનિક"}\r
@@ -706,7 +705,7 @@ gu{
     Types{\r
         calendar{\r
             buddhist{"બુદ્ધિસ્ટ કેલેન્ડર"}\r
-            chinese{"àª\9aાàª\87નિઝ કેલેન્ડર"}\r
+            chinese{"àª\9aાàª\87નà«\80ઝ કેલેન્ડર"}\r
             coptic{"કોપ્ટિક કેલેન્ડર"}\r
             dangi{"ડાંગી કેલેન્ડર"}\r
             ethiopic{"ઇથિઓપિક કેલેન્ડર"}\r
@@ -720,7 +719,7 @@ gu{
             islamic-tbla{"ઇસ્લામિક કેલેન્ડર (ટેબ્યુલર, ખગોળશાસ્ત્રીય યુગ)"}\r
             islamic-umalqura{"ઇસ્લામિક કેલેન્ડર (ઉમમ અલ-કુરા)"}\r
             iso8601{"ISO-8601 કેલેન્ડર"}\r
-            japanese{"àª\9cાપાનિઝ કેલેન્ડર"}\r
+            japanese{"àª\9cાપાનà«\80ઝ કેલેન્ડર"}\r
             persian{"પર્શિયન કેલેન્ડર"}\r
             roc{"મિંગુઓ કેલેન્ડર"}\r
         }\r
@@ -850,7 +849,7 @@ gu{
         PINYIN{"પિનયિન રોમનાઇઝેશન"}\r
         WADEGILE{"વેડ-ગિલ્સ રોમનાઇઝેશન"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.2"}\r
     characterLabelPattern{\r
         all{"{0} — તમામ"}\r
         category-list{"{0}: {1}"}\r
index 084acce..d15f4e7 100644 (file)
@@ -47,5 +47,5 @@ ha{
         zh{"Harshen Sin"}\r
         zu{"Harshen Zulu"}\r
     }\r
-    Version{"2.1.39.11"}\r
+    Version{"2.1.43.2"}\r
 }\r
index 9006724..635ee62 100644 (file)
@@ -40,5 +40,5 @@ haw{
         zh_Hans{"Pākē Hoʻomaʻalahi ʻia"}\r
         zh_Hant{"Pākē Kuʻuna"}\r
     }\r
-    Version{"2.1.38.69"}\r
+    Version{"2.1.43.94"}\r
 }\r
index 165b55d..491c055 100644 (file)
@@ -57,7 +57,7 @@ he{
         az{"אזרית"}\r
         ba{"בשקירית"}\r
         bal{"באלוצ׳י"}\r
-        ban{"בלינזית"}\r
+        ban{"×\91×\90×\9c×\99× ×\96×\99ת"}\r
         bar{"בווארית"}\r
         bas{"בסאא"}\r
         bax{"במום"}\r
@@ -145,7 +145,6 @@ he{
         el{"יוונית"}\r
         elx{"עילמית"}\r
         en{"אנגלית"}\r
-        en_GB{"אנגלית (בריטניה)"}\r
         enm{"אנגלית תיכונה"}\r
         eo{"אספרנטו"}\r
         es{"ספרדית"}\r
@@ -548,7 +547,6 @@ he{
     }\r
     Languages%short{\r
         az{"אזרית"}\r
-        en_GB{"אנגלית (בריטניה)"}\r
         en_US{"אנגלית (ארה״ב)"}\r
     }\r
     Languages%variant{\r
@@ -783,7 +781,7 @@ he{
         SCOTLAND{"אנגלית סקוטית סטנדרטית"}\r
         WADEGILE{"ווייד-גיילס, שיטה לתעתוק סינית לאותיות לטיניות"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.94"}\r
     characterLabelPattern{\r
         all{"{0} - הכל"}\r
         category-list{"{0}: {1}"}\r
@@ -793,7 +791,7 @@ he{
         historic{"{0} - היסטורי"}\r
         miscellaneous{"{0} - שונות"}\r
         other{"{0} - אחר"}\r
-        scripts{"{0} - סקריפט"}\r
+        scripts{"כתב - {0}"}\r
         strokes{\r
             many{"{0} משיכות מכחול"}\r
             one{"משיכת מכחול {0}"}\r
index 5722fe5..8b2a592 100644 (file)
@@ -169,7 +169,7 @@ hi{
         frs{"पूर्वी फ़्रीसियाई"}\r
         fur{"फ्रीयुलीयान"}\r
         fy{"पश्चिमी फ़्रिसियाई"}\r
-        ga{"à¤\86à¤\87रिश"}\r
+        ga{"à¤\86यरिश"}\r
         gaa{"गा"}\r
         gag{"गागौज़"}\r
         gay{"गायो"}\r
@@ -494,7 +494,7 @@ hi{
         tyv{"तुवीनियन"}\r
         tzm{"मध्य एटलस तमाज़ित"}\r
         udm{"उदमुर्त"}\r
-        ug{"विà¤\98à¥\81र"}\r
+        ug{"à¤\89à¤\87à¤\97र"}\r
         uga{"युगैरिटिक"}\r
         uk{"यूक्रेनियाई"}\r
         umb{"उम्बुन्डु"}\r
@@ -840,9 +840,9 @@ hi{
         POSIX{"कम्प्यूटर"}\r
         REVISED{"संशोधित वर्तनी"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.50"}\r
     characterLabelPattern{\r
-        all{"{0} - सभी"}\r
+        all{"{0}  सभी"}\r
         category-list{"{0}: {1}"}\r
         compatibility{"{0} — संगतता"}\r
         enclosed{"{0} — संलग्न"}\r
@@ -850,7 +850,7 @@ hi{
         historic{"{0} — ऐतिहासिक"}\r
         miscellaneous{"{0} — विविध"}\r
         other{"{0} — अन्य"}\r
-        scripts{"सà¥\8dà¤\95à¥\8dरिपà¥\8dà¤\9f — {0}"}\r
+        scripts{"लिपियाà¤\81 — {0}"}\r
         strokes{\r
             one{"{0} स्ट्रोक"}\r
             other{"{0} स्ट्रोक"}\r
index 829bff7..f0bd2d5 100644 (file)
@@ -916,17 +916,17 @@ hr{
         VALENCIA{"valencijski"}\r
         WADEGILE{"Wade-Giles romanizacija"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.50"}\r
     characterLabelPattern{\r
-        all{"{0} â\80\94 Sve"}\r
+        all{"{0} â\80\93 sve"}\r
         category-list{"{0}: {1}"}\r
-        compatibility{"{0} â\80\94 Kompatibilnost"}\r
-        enclosed{"{0} â\80\94 Priloženo"}\r
-        extended{"{0} â\80\94 Prošireno"}\r
-        historic{"{0} â\80\94 Povijesno"}\r
-        miscellaneous{"{0} â\80\94 Razno"}\r
-        other{"{0} â\80\94 Ostalo"}\r
-        scripts{"Pisma — {0}"}\r
+        compatibility{"{0} â\80\93 kompatibilnost"}\r
+        enclosed{"{0} â\80\93 priloženo"}\r
+        extended{"{0} â\80\93 prošireno"}\r
+        historic{"{0} â\80\93 povijesno"}\r
+        miscellaneous{"{0} â\80\93 razno"}\r
+        other{"{0} â\80\93 ostalo"}\r
+        scripts{"pisma – {0}"}\r
         strokes{\r
             few{"{0} poteza"}\r
             one{"{0} potez"}\r
index a82e1bf..fb8f71d 100644 (file)
@@ -378,7 +378,7 @@ hsb{
             tibt{"tibetske cyfry"}\r
         }\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.41.34"}\r
     codePatterns{\r
         language{"rěč: {0}"}\r
         script{"pismo: {0}"}\r
index 7d46315..8fd741d 100644 (file)
@@ -833,7 +833,7 @@ hu{
             orya{"Orija számjegyek"}\r
             roman{"Római számok"}\r
             romanlow{"Római kisbetűs számok"}\r
-            taml{"Tamil hagyományos számok"}\r
+            taml{"Hagyományos tamil számjegyek"}\r
             tamldec{"Tamil számjegyek"}\r
             telu{"Telugu számjegyek"}\r
             thai{"Thai számjegyek"}\r
@@ -900,7 +900,7 @@ hu{
         VALLADER{"Vallader"}\r
         WADEGILE{"Wade-Giles átírás"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.65"}\r
     characterLabelPattern{\r
         all{"{0} – összes"}\r
         category-list{"{0}: {1}"}\r
index 72d4e59..741ed9f 100644 (file)
@@ -620,7 +620,7 @@ hy{
         AREVELA{"արևելահայերեն"}\r
         AREVMDA{"արեւմտահայերէն"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.50"}\r
     characterLabelPattern{\r
         all{"{0} — բոլորը"}\r
         category-list{"{0}՝ {1}"}\r
diff --git a/source/data/lang/ia.txt b/source/data/lang/ia.txt
new file mode 100644 (file)
index 0000000..6645d5f
--- /dev/null
@@ -0,0 +1,559 @@
+// © 2016 and later: Unicode, Inc. and others.\r
+// License & terms of use: http://www.unicode.org/copyright.html#License\r
+ia{\r
+    Keys{\r
+        calendar{"calendario"}\r
+        cf{"formato de moneta"}\r
+        collation{"ordinamento"}\r
+        currency{"moneta"}\r
+        hc{"cyclo horari (12 o 24)"}\r
+        lb{"stilo de salto de linea"}\r
+        ms{"systema de mesura"}\r
+        numbers{"numeros"}\r
+    }\r
+    Languages{\r
+        aa{"afar"}\r
+        ab{"abkhazo"}\r
+        ace{"acehnese"}\r
+        ada{"adangme"}\r
+        ady{"adygeano"}\r
+        af{"afrikaans"}\r
+        agq{"aghem"}\r
+        ain{"ainu"}\r
+        ak{"akan"}\r
+        ale{"aleuto"}\r
+        alt{"altai del sud"}\r
+        am{"amharico"}\r
+        an{"aragonese"}\r
+        anp{"angika"}\r
+        ar{"arabe"}\r
+        ar_001{"arabe standard moderne"}\r
+        arn{"mapuche"}\r
+        arp{"arapaho"}\r
+        as{"assamese"}\r
+        asa{"asu"}\r
+        ast{"asturiano"}\r
+        av{"avaro"}\r
+        awa{"awadhi"}\r
+        ay{"aymara"}\r
+        az{"azerbaidzhano"}\r
+        ba{"bashkir"}\r
+        ban{"balinese"}\r
+        bas{"basaa"}\r
+        be{"bielorusso"}\r
+        bem{"bemba"}\r
+        bez{"bena"}\r
+        bg{"bulgaro"}\r
+        bho{"bhojpuri"}\r
+        bi{"bislama"}\r
+        bin{"bini"}\r
+        bla{"siksika"}\r
+        bm{"bambara"}\r
+        bn{"bengalese"}\r
+        bo{"tibetano"}\r
+        br{"breton"}\r
+        brx{"bodo"}\r
+        bs{"bosniaco"}\r
+        bug{"buginese"}\r
+        byn{"blin"}\r
+        ca{"catalano"}\r
+        ce{"checheno"}\r
+        ceb{"cebuano"}\r
+        cgg{"chiga"}\r
+        ch{"chamorro"}\r
+        chk{"chuukese"}\r
+        chm{"mari"}\r
+        cho{"choctaw"}\r
+        chr{"cherokee"}\r
+        chy{"cheyenne"}\r
+        ckb{"kurdo central"}\r
+        co{"corso"}\r
+        crs{"creolo seychellese"}\r
+        cs{"checo"}\r
+        cu{"slavo ecclesiastic"}\r
+        cv{"chuvash"}\r
+        cy{"gallese"}\r
+        da{"danese"}\r
+        dak{"dakota"}\r
+        dar{"dargwa"}\r
+        dav{"taita"}\r
+        de{"germano"}\r
+        de_AT{"germano austriac"}\r
+        de_CH{"alte germano suisse"}\r
+        dgr{"dogrib"}\r
+        dje{"zarma"}\r
+        dsb{"basse sorabo"}\r
+        dua{"duala"}\r
+        dv{"divehi"}\r
+        dyo{"jola-fonyi"}\r
+        dz{"dzongkha"}\r
+        dzg{"dazaga"}\r
+        ebu{"embu"}\r
+        ee{"ewe"}\r
+        efi{"efik"}\r
+        eka{"ekajuk"}\r
+        el{"greco"}\r
+        en{"anglese"}\r
+        en_AU{"anglese australian"}\r
+        en_CA{"anglese canadian"}\r
+        en_GB{"anglese britannic"}\r
+        en_US{"anglese american"}\r
+        eo{"esperanto"}\r
+        es{"espaniol"}\r
+        es_419{"espaniol latinoamerican"}\r
+        es_ES{"espaniol europee"}\r
+        es_MX{"espaniol mexican"}\r
+        et{"estoniano"}\r
+        eu{"basco"}\r
+        ewo{"ewondo"}\r
+        fa{"persa"}\r
+        ff{"fula"}\r
+        fi{"finnese"}\r
+        fil{"filipino"}\r
+        fj{"fijiano"}\r
+        fo{"feroese"}\r
+        fon{"fon"}\r
+        fr{"francese"}\r
+        fr_CA{"francese canadian"}\r
+        fr_CH{"francese suisse"}\r
+        fur{"friulano"}\r
+        fy{"frison occidental"}\r
+        ga{"irlandese"}\r
+        gaa{"ga"}\r
+        gd{"gaelico scotese"}\r
+        gez{"ge’ez"}\r
+        gil{"gilbertese"}\r
+        gl{"galleco"}\r
+        gn{"guarani"}\r
+        gor{"gorontalo"}\r
+        gsw{"germano suisse"}\r
+        gu{"gujarati"}\r
+        guz{"gusii"}\r
+        gv{"mannese"}\r
+        gwi{"gwich’in"}\r
+        ha{"hausa"}\r
+        haw{"hawaiano"}\r
+        he{"hebreo"}\r
+        hi{"hindi"}\r
+        hil{"hiligaynon"}\r
+        hmn{"hmong"}\r
+        hr{"croato"}\r
+        hsb{"alte sorabo"}\r
+        ht{"creolo haitian"}\r
+        hu{"hungaro"}\r
+        hup{"hupa"}\r
+        hy{"armeniano"}\r
+        hz{"herero"}\r
+        ia{"interlingua"}\r
+        iba{"iban"}\r
+        ibb{"ibibio"}\r
+        id{"indonesiano"}\r
+        ig{"igbo"}\r
+        ii{"yi de Sichuan"}\r
+        ilo{"ilocano"}\r
+        inh{"ingush"}\r
+        io{"ido"}\r
+        is{"islandese"}\r
+        it{"italiano"}\r
+        iu{"inuktitut"}\r
+        ja{"japonese"}\r
+        jbo{"lojban"}\r
+        jgo{"ngomba"}\r
+        jmc{"machame"}\r
+        jv{"javanese"}\r
+        ka{"georgiano"}\r
+        kab{"kabylo"}\r
+        kac{"kachin"}\r
+        kaj{"jju"}\r
+        kam{"kamba"}\r
+        kbd{"cabardiano"}\r
+        kcg{"tyap"}\r
+        kde{"makonde"}\r
+        kea{"capoverdiano"}\r
+        kfo{"koro"}\r
+        kha{"khasi"}\r
+        khq{"koyra chiini"}\r
+        ki{"kikuyu"}\r
+        kj{"kuanyama"}\r
+        kk{"kazakh"}\r
+        kkj{"kako"}\r
+        kl{"groenlandese"}\r
+        kln{"kalenjin"}\r
+        km{"khmer"}\r
+        kmb{"kimbundu"}\r
+        kn{"kannada"}\r
+        ko{"coreano"}\r
+        kok{"konkani"}\r
+        kpe{"kpelle"}\r
+        kr{"kanuri"}\r
+        krc{"karachay-balkaro"}\r
+        krl{"careliano"}\r
+        kru{"kurukh"}\r
+        ks{"kashmiri"}\r
+        ksb{"shambala"}\r
+        ksf{"bafia"}\r
+        ksh{"coloniese"}\r
+        ku{"kurdo"}\r
+        kum{"kumyko"}\r
+        kv{"komi"}\r
+        kw{"cornico"}\r
+        ky{"kirghizo"}\r
+        la{"latino"}\r
+        lad{"ladino"}\r
+        lag{"langi"}\r
+        lb{"luxemburgese"}\r
+        lez{"lezghiano"}\r
+        lg{"luganda"}\r
+        li{"limburgese"}\r
+        lkt{"lakota"}\r
+        ln{"lingala"}\r
+        lo{"laotiano"}\r
+        loz{"lozi"}\r
+        lrc{"luri del nord"}\r
+        lt{"lithuano"}\r
+        lu{"luba-katanga"}\r
+        lua{"luba-lulua"}\r
+        lun{"lunda"}\r
+        luo{"luo"}\r
+        lus{"mizo"}\r
+        luy{"luyia"}\r
+        lv{"letton"}\r
+        mad{"madurese"}\r
+        mag{"magahi"}\r
+        mai{"maithili"}\r
+        mak{"macassarese"}\r
+        mas{"masai"}\r
+        mdf{"moksha"}\r
+        men{"mende"}\r
+        mer{"meri"}\r
+        mfe{"creolo mauritian"}\r
+        mg{"malgache"}\r
+        mgh{"makhuwa-meetto"}\r
+        mgo{"metaʼ"}\r
+        mh{"marshallese"}\r
+        mi{"maori"}\r
+        mic{"micmac"}\r
+        min{"minangkabau"}\r
+        mk{"macedone"}\r
+        ml{"malayalam"}\r
+        mn{"mongol"}\r
+        mni{"manipuri"}\r
+        moh{"mohawk"}\r
+        mos{"mossi"}\r
+        mr{"marathi"}\r
+        ms{"malay"}\r
+        mt{"maltese"}\r
+        mua{"mundang"}\r
+        mul{"plure linguas"}\r
+        mus{"creek"}\r
+        mwl{"mirandese"}\r
+        my{"birmano"}\r
+        myv{"erzya"}\r
+        mzn{"mazanderani"}\r
+        na{"nauru"}\r
+        nap{"napolitano"}\r
+        naq{"nama"}\r
+        nb{"norvegiano bokmål"}\r
+        nd{"ndebele del nord"}\r
+        ne{"nepalese"}\r
+        new{"newari"}\r
+        ng{"ndonga"}\r
+        nia{"nias"}\r
+        niu{"nieuano"}\r
+        nl{"nederlandese"}\r
+        nl_BE{"flamingo"}\r
+        nmg{"kwasio"}\r
+        nn{"norvegiano nynorsk"}\r
+        nnh{"ngiemboon"}\r
+        nog{"nogai"}\r
+        nqo{"n’ko"}\r
+        nr{"ndebele del sud"}\r
+        nso{"sotho del nord"}\r
+        nus{"nuer"}\r
+        nv{"navajo"}\r
+        ny{"nyanja"}\r
+        nyn{"nyankole"}\r
+        oc{"occitano"}\r
+        om{"oromo"}\r
+        or{"oriya"}\r
+        os{"osseto"}\r
+        pa{"punjabi"}\r
+        pag{"pangasinan"}\r
+        pam{"pampanga"}\r
+        pap{"papiamento"}\r
+        pau{"palauano"}\r
+        pcm{"pidgin nigerian"}\r
+        pl{"polonese"}\r
+        prg{"prussiano"}\r
+        ps{"pashto"}\r
+        pt{"portugese"}\r
+        pt_BR{"portugese de Brasil"}\r
+        pt_PT{"portugese de Portugal"}\r
+        qu{"quechua"}\r
+        quc{"kʼicheʼ"}\r
+        rap{"rapanui"}\r
+        rar{"rarotongano"}\r
+        rm{"romanche"}\r
+        rn{"rundi"}\r
+        ro{"romaniano"}\r
+        ro_MD{"moldavo"}\r
+        rof{"rombo"}\r
+        root{"radice"}\r
+        ru{"russo"}\r
+        rup{"aromaniano"}\r
+        rw{"kinyarwanda"}\r
+        rwk{"rwa"}\r
+        sa{"sanscrito"}\r
+        sad{"sandawe"}\r
+        sah{"yakuto"}\r
+        saq{"samburu"}\r
+        sat{"santali"}\r
+        sba{"ngambay"}\r
+        sbp{"sangu"}\r
+        sc{"sardo"}\r
+        scn{"siciliano"}\r
+        sco{"scotese"}\r
+        sd{"sindhi"}\r
+        se{"sami del nord"}\r
+        seh{"sena"}\r
+        ses{"koyraboro senni"}\r
+        sg{"sango"}\r
+        shi{"tachelhit"}\r
+        shn{"shan"}\r
+        si{"cingalese"}\r
+        sk{"slovaco"}\r
+        sl{"sloveno"}\r
+        sm{"samoano"}\r
+        sma{"sami del sud"}\r
+        smj{"sami de Lule"}\r
+        smn{"sami de Inari"}\r
+        sms{"sami skolt"}\r
+        sn{"shona"}\r
+        snk{"soninke"}\r
+        so{"somali"}\r
+        sq{"albanese"}\r
+        sr{"serbo"}\r
+        srn{"sranan tongo"}\r
+        ss{"swati"}\r
+        ssy{"saho"}\r
+        st{"sotho del sud"}\r
+        su{"sundanese"}\r
+        suk{"sukuma"}\r
+        sv{"svedese"}\r
+        sw{"swahili"}\r
+        sw_CD{"swahili del Congo"}\r
+        swb{"comoriano"}\r
+        syr{"syriaco"}\r
+        ta{"tamil"}\r
+        te{"telugu"}\r
+        tem{"temne"}\r
+        teo{"teso"}\r
+        tet{"tetum"}\r
+        tg{"tajiko"}\r
+        th{"thai"}\r
+        ti{"tigrinya"}\r
+        tig{"tigre"}\r
+        tk{"turkmeno"}\r
+        tlh{"klingon"}\r
+        tn{"tswana"}\r
+        to{"tongano"}\r
+        tpi{"tok pisin"}\r
+        tr{"turco"}\r
+        trv{"taroko"}\r
+        ts{"tsonga"}\r
+        tt{"tataro"}\r
+        tum{"tumbuka"}\r
+        tvl{"tuvaluano"}\r
+        twq{"tasawaq"}\r
+        ty{"tahitiano"}\r
+        tyv{"tuvano"}\r
+        tzm{"tamazight del Atlas Central"}\r
+        udm{"udmurto"}\r
+        ug{"uighur"}\r
+        uk{"ukrainiano"}\r
+        umb{"umbundu"}\r
+        und{"lingua incognite"}\r
+        ur{"urdu"}\r
+        uz{"uzbeko"}\r
+        vai{"vai"}\r
+        ve{"venda"}\r
+        vi{"vietnamese"}\r
+        vo{"volapük"}\r
+        vun{"vunjo"}\r
+        wa{"wallon"}\r
+        wae{"walser"}\r
+        wal{"wolaytta"}\r
+        war{"waray"}\r
+        wo{"wolof"}\r
+        xal{"calmuco"}\r
+        xh{"xhosa"}\r
+        xog{"soga"}\r
+        yav{"yangben"}\r
+        ybb{"yemba"}\r
+        yi{"yiddish"}\r
+        yo{"yoruba"}\r
+        yue{"cantonese"}\r
+        zgh{"tamazight marocchin standard"}\r
+        zh{"chinese"}\r
+        zh_Hans{"chinese simplificate"}\r
+        zh_Hant{"chinese traditional"}\r
+        zu{"zulu"}\r
+        zun{"zuni"}\r
+        zxx{"sin contento linguistic"}\r
+        zza{"zaza"}\r
+    }\r
+    Languages%short{\r
+        az{"azeri"}\r
+        en_GB{"anglese (GB)"}\r
+        en_US{"anglese (SUA)"}\r
+    }\r
+    Scripts{\r
+        Arab{"arabe"}\r
+        Armn{"armenian"}\r
+        Beng{"bengalese"}\r
+        Bopo{"bopomofo"}\r
+        Brai{"braille"}\r
+        Cyrl{"cyrillic"}\r
+        Deva{"devanagari"}\r
+        Ethi{"ethiope"}\r
+        Geor{"georgian"}\r
+        Grek{"grec"}\r
+        Gujr{"gujarati"}\r
+        Guru{"gurmukhi"}\r
+        Hanb{"han con bopomofo"}\r
+        Hang{"hangul"}\r
+        Hani{"han"}\r
+        Hans{"simplificate"}\r
+        Hant{"traditional"}\r
+        Hebr{"hebraic"}\r
+        Hira{"hiragana"}\r
+        Hrkt{"syllabarios japonese"}\r
+        Jamo{"jamo"}\r
+        Jpan{"japonese"}\r
+        Kana{"katakana"}\r
+        Khmr{"khmer"}\r
+        Knda{"kannada"}\r
+        Kore{"corean"}\r
+        Laoo{"lao"}\r
+        Latn{"latin"}\r
+        Mlym{"malayalam"}\r
+        Mong{"mongol"}\r
+        Mymr{"birman"}\r
+        Orya{"orya"}\r
+        Sinh{"cingalese"}\r
+        Taml{"tamil"}\r
+        Telu{"telugu"}\r
+        Thaa{"thaana"}\r
+        Thai{"thailandese"}\r
+        Tibt{"tibetano"}\r
+        Zmth{"notation mathematic"}\r
+        Zsye{"emoji"}\r
+        Zsym{"symbolos"}\r
+        Zxxx{"non scripte"}\r
+        Zyyy{"commun"}\r
+        Zzzz{"scriptura incognite"}\r
+    }\r
+    Scripts%stand-alone{\r
+        Hans{"han simplificate"}\r
+        Hant{"han traditional"}\r
+    }\r
+    Types{\r
+        calendar{\r
+            buddhist{"calendario buddhista"}\r
+            chinese{"calendario chinese"}\r
+            dangi{"calendario dangi"}\r
+            ethiopic{"calendario ethiope"}\r
+            gregorian{"calendario gregorian"}\r
+            hebrew{"calendario hebraic"}\r
+            islamic{"calendario islamic"}\r
+            iso8601{"calendario ISO-8601"}\r
+            japanese{"calendario japonese"}\r
+            persian{"calendario persa"}\r
+            roc{"calendario del Republica de China"}\r
+        }\r
+        cf{\r
+            account{"formato de moneta pro contabilitate"}\r
+            standard{"formato de moneta standard"}\r
+        }\r
+        collation{\r
+            ducet{"ordinamento Unicode predefinite"}\r
+            search{"recerca generic"}\r
+            standard{"ordinamento standard"}\r
+        }\r
+        hc{\r
+            h11{"systema de 12 horas (0–11)"}\r
+            h12{"systema de 12 horas (1–12)"}\r
+            h23{"systema de 24 horas (0–23)"}\r
+            h24{"systema de 24 horas (1–24)"}\r
+        }\r
+        lb{\r
+            loose{"stilo de salto de linea flexibile"}\r
+            normal{"stilo de salto de linea normal"}\r
+            strict{"stilo de salto de linea stricte"}\r
+        }\r
+        ms{\r
+            metric{"systema metric"}\r
+            uksystem{"systema de mesura imperial"}\r
+            ussystem{"systema de mesura statounitese"}\r
+        }\r
+        numbers{\r
+            arab{"cifras indo-arabe"}\r
+            arabext{"cifras indo-arabe extendite"}\r
+            armn{"cifras armenie"}\r
+            armnlow{"cifras armenie minuscule"}\r
+            beng{"cifras bengalese"}\r
+            deva{"cifras devanagari"}\r
+            ethi{"cifras ethiope"}\r
+            fullwide{"cifras a latitude integre"}\r
+            geor{"cifras georgian"}\r
+            grek{"cifras grec"}\r
+            greklow{"cifras grec minuscule"}\r
+            gujr{"cifras gujarati"}\r
+            guru{"cifras gurmukhi"}\r
+            hanidec{"cifras decimal chinese"}\r
+            hans{"cifras chinese simplificate"}\r
+            hansfin{"cifras financiari chinese simplificate"}\r
+            hant{"cifras chinese traditional"}\r
+            hantfin{"cifras financiari chinese traditional"}\r
+            hebr{"cifras hebraic"}\r
+            jpan{"cifras japonese"}\r
+            jpanfin{"cifras financiari japonese"}\r
+            khmr{"cifras khmer"}\r
+            knda{"cifras kannada"}\r
+            laoo{"cifras lao"}\r
+            latn{"cifras occidental"}\r
+            mlym{"cifras malayalam"}\r
+            mymr{"cifras birman"}\r
+            orya{"cifras oriya"}\r
+            roman{"cifras roman"}\r
+            romanlow{"cifras roman minuscule"}\r
+            taml{"cifras tamil traditional"}\r
+            tamldec{"cifras tamil"}\r
+            telu{"cifras telugu"}\r
+            thai{"cifras thailandese"}\r
+            tibt{"cifras tibetan"}\r
+        }\r
+    }\r
+    Version{"2.1.44.15"}\r
+    characterLabelPattern{\r
+        all{"{0} — toto"}\r
+        category-list{"{0}: {1}"}\r
+        compatibility{"{0} — compatibilitate"}\r
+        enclosed{"{0} — inquadrate"}\r
+        extended{"{0} — extendite"}\r
+        historic{"{0} — historic"}\r
+        miscellaneous{"{0} — miscellanee"}\r
+        other{"{0} — altere"}\r
+        scripts{"scripturas — {0}"}\r
+    }\r
+    codePatterns{\r
+        language{"Lingua: {0}"}\r
+        script{"Scriptura: {0}"}\r
+        territory{"Region: {0}"}\r
+    }\r
+    localeDisplayPattern{\r
+        keyTypePattern{"{0}: {1}"}\r
+        pattern{"{0} ({1})"}\r
+        separator{"{0}, {1}"}\r
+    }\r
+}\r
index fc133f4..29441af 100644 (file)
@@ -619,7 +619,7 @@ id{
         Grek{"Yunani"}\r
         Gujr{"Gujarat"}\r
         Guru{"Gurmukhi"}\r
-        Hanb{"Hanb"}\r
+        Hanb{"Han dengan Bopomofo"}\r
         Hang{"Hangul"}\r
         Hani{"Han"}\r
         Hano{"Hanunoo"}\r
@@ -964,7 +964,7 @@ id{
         VALLADER{"VALLADER"}\r
         WADEGILE{"Wade-Giles Latin"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.20"}\r
     characterLabelPattern{\r
         all{"{0} — Semua"}\r
         category-list{"{0}: {1}"}\r
index 6ce40e1..8a7d84a 100644 (file)
@@ -47,5 +47,5 @@ ig{
         zh{"Mandarịịnị"}\r
         zu{"Zulu"}\r
     }\r
-    Version{"2.1.38.69"}\r
+    Version{"2.1.44.88"}\r
 }\r
index e4d6bac..256aea3 100644 (file)
@@ -104,7 +104,7 @@ is{
         cop{"koptíska"}\r
         cr{"krí"}\r
         crh{"krímtyrkneska"}\r
-        crs{"Seselwa kreólsk franska"}\r
+        crs{"seychelles-kreólska"}\r
         cs{"tékkneska"}\r
         csb{"kasúbíska"}\r
         cu{"kirkjuslavneska"}\r
@@ -174,6 +174,7 @@ is{
         ga{"írska"}\r
         gaa{"ga"}\r
         gag{"gagás"}\r
+        gan{"gan"}\r
         gay{"gajó"}\r
         gba{"gbaja"}\r
         gd{"skosk gelíska"}\r
@@ -195,6 +196,7 @@ is{
         gwi{"gvísín"}\r
         ha{"hása"}\r
         hai{"haída"}\r
+        hak{"hak"}\r
         haw{"havaíska"}\r
         he{"hebreska"}\r
         hi{"hindí"}\r
@@ -204,6 +206,7 @@ is{
         ho{"hírímótú"}\r
         hr{"króatíska"}\r
         hsb{"hásorbneska"}\r
+        hsn{"hsn"}\r
         ht{"haítíska"}\r
         hu{"ungverska"}\r
         hup{"húpa"}\r
@@ -337,6 +340,7 @@ is{
         myv{"ersja"}\r
         mzn{"masanderaní"}\r
         na{"nárúska"}\r
+        nan{"nan"}\r
         nap{"napólíska"}\r
         naq{"nama"}\r
         nb{"norskt bókmál"}\r
@@ -457,7 +461,7 @@ is{
         sux{"súmerska"}\r
         sv{"sænska"}\r
         sw{"svahílí"}\r
-        sw_CD{"Kongó-svahílí"}\r
+        sw_CD{"kongósvahílí"}\r
         swb{"shimaoríska"}\r
         syc{"klassísk sýrlenska"}\r
         syr{"sýrlenska"}\r
@@ -515,6 +519,7 @@ is{
         was{"vasjó"}\r
         wbp{"varlpiri"}\r
         wo{"volof"}\r
+        wuu{"wuu"}\r
         xal{"kalmúkska"}\r
         xh{"sósa"}\r
         xog{"sóga"}\r
@@ -524,7 +529,7 @@ is{
         ybb{"yemba"}\r
         yi{"jiddíska"}\r
         yo{"jórúba"}\r
-        yue{"kantoneska"}\r
+        yue{"kantónska"}\r
         za{"súang"}\r
         zap{"sapótek"}\r
         zbl{"blisstákn"}\r
@@ -546,9 +551,13 @@ is{
     Scripts{\r
         Arab{"arabískt"}\r
         Armn{"armenskt"}\r
+        Bali{"balinesíska"}\r
+        Batk{"batakíska"}\r
         Beng{"bengalskt"}\r
         Bopo{"bopomofo"}\r
+        Brah{"brahmíska"}\r
         Brai{"blindraletur"}\r
+        Copt{"koptíska"}\r
         Cyrl{"kyrillískt"}\r
         Deva{"devanagari"}\r
         Ethi{"eþíópískt"}\r
@@ -565,6 +574,7 @@ is{
         Hira{"hiragana"}\r
         Hrkt{"japönsk samstöfuletur"}\r
         Jamo{"jamo"}\r
+        Java{"javanesíska"}\r
         Jpan{"japanskt"}\r
         Kana{"katakana"}\r
         Khmr{"kmer"}\r
@@ -572,11 +582,14 @@ is{
         Kore{"kóreskt"}\r
         Laoo{"lao"}\r
         Latn{"latneskt"}\r
+        Mand{"mandaíska"}\r
         Mlym{"malalajam"}\r
         Mong{"mongólskt"}\r
         Mymr{"mjanmarskt"}\r
+        Nkoo{"n-kó"}\r
         Orya{"oriya"}\r
         Sinh{"sinhala"}\r
+        Sund{"sundanesíska"}\r
         Taml{"tamílskt"}\r
         Telu{"telúgú"}\r
         Thaa{"thaana"}\r
@@ -738,7 +751,7 @@ is{
             vaii{"Vai-tölustafir"}\r
         }\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.91"}\r
     characterLabelPattern{\r
         all{"{0} — allt"}\r
         category-list{"{0}: {1}"}\r
index 0b30332..17f5f73 100644 (file)
@@ -51,7 +51,7 @@ it{
         aro{"araona"}\r
         arp{"arapaho"}\r
         arq{"arabo algerino"}\r
-        ars{"arabo, najd"}\r
+        ars{"arabo najd"}\r
         arw{"aruaco"}\r
         ary{"arabo marocchino"}\r
         arz{"arabo egiziano"}\r
@@ -318,7 +318,7 @@ it{
         kut{"kutenai"}\r
         kv{"komi"}\r
         kw{"cornico"}\r
-        ky{"chirghiso"}\r
+        ky{"kirghiso"}\r
         la{"latino"}\r
         lad{"giudeo-spagnolo"}\r
         lag{"langi"}\r
@@ -430,7 +430,7 @@ it{
         oc{"occitano"}\r
         oj{"ojibwa"}\r
         om{"oromo"}\r
-        or{"oriya"}\r
+        or{"odia"}\r
         os{"ossetico"}\r
         osa{"osage"}\r
         ota{"turco ottomano"}\r
@@ -985,6 +985,8 @@ it{
         AREVELA{"armeno orientale"}\r
         AREVMDA{"armeno occidentale"}\r
         BAKU1926{"alfabeto latino altaico unificato"}\r
+        BAUDDHA{"BAUDDHA"}\r
+        BISCAYAN{"BISCAYAN"}\r
         BISKE{"dialetto San Giorgio/Bila"}\r
         BOHORIC{"alfabeto bohorič"}\r
         BOONT{"boontling"}\r
@@ -992,10 +994,17 @@ it{
         EMODENG{"primo inglese moderno"}\r
         FONIPA{"alfabeto fonetico internazionale IPA"}\r
         FONUPA{"alfabeto fonetico uralico UPA"}\r
+        FONXSAMP{"FONXSAMP"}\r
         HEPBURN{"romanizzazione Hepburn"}\r
+        HOGNORSK{"HOGNORSK"}\r
+        ITIHASA{"ITIHASA"}\r
+        JAUER{"JAUER"}\r
+        JYUTPING{"JYUTPING"}\r
         KKCOR{"ortografia comune"}\r
         KSCOR{"ortografia standard"}\r
+        LAUKIKA{"LAUKIKA"}\r
         LIPAW{"dialetto resiano di Lipovaz"}\r
+        LUNA1918{"LUNA1918"}\r
         METELKO{"alfabeto Metelko"}\r
         MONOTON{"monotonico"}\r
         NDYUKA{"dialetto Ndyuka"}\r
@@ -1004,23 +1013,32 @@ it{
         NULIK{"volapük moderno"}\r
         OSOJS{"dialetto Oseacco/Osojane"}\r
         PAMAKA{"dialetto Pamaka"}\r
+        PETR1708{"PETR1708"}\r
         PINYIN{"romanizzazione Pinyin"}\r
         POLYTON{"politonico"}\r
         POSIX{"computer"}\r
+        PUTER{"PUTER"}\r
         REVISED{"ortografia revisionata"}\r
         RIGIK{"Volapük classico"}\r
         ROZAJ{"resiano"}\r
+        RUMGR{"RUMGR"}\r
         SAAHO{"saho"}\r
         SCOTLAND{"inglese scozzese standard"}\r
         SCOUSE{"scouse"}\r
         SOLBA{"dialetto Stolvizza/Solbica"}\r
+        SURMIRAN{"SURMIRAN"}\r
+        SURSILV{"SURSILV"}\r
+        SUTSILV{"SUTSILV"}\r
         TARASK{"ortografia taraskievica"}\r
         UCCOR{"ortografia unificata"}\r
         UCRCOR{"ortografia rivista unificata"}\r
+        ULSTER{"ULSTER"}\r
+        VAIDIKA{"VAIDIKA"}\r
         VALENCIA{"valenziano"}\r
+        VALLADER{"VALLADER"}\r
         WADEGILE{"romanizzazione Wade-Giles"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.86"}\r
     characterLabelPattern{\r
         all{"{0} — Tutto"}\r
         category-list{"{0}: {1}"}\r
index 667068d..298ab75 100644 (file)
@@ -136,7 +136,7 @@ ja{
         cy{"ウェールズ語"}\r
         da{"デンマーク語"}\r
         dak{"ダコタ語"}\r
-        dar{"ã\83\80ã\83«ã\82¬ã\83³語"}\r
+        dar{"ã\83\80ã\83«ã\82°ã\83¯語"}\r
         dav{"タイタ語"}\r
         de{"ドイツ語"}\r
         de_CH{"標準ドイツ語 (スイス)"}\r
@@ -256,7 +256,7 @@ ja{
         io{"イド語"}\r
         is{"アイスランド語"}\r
         it{"イタリア語"}\r
-        iu{"ã\82¤ã\83\8cã\82¯ã\82¦ã\83\86ã\82£ã\83\88ã\83\83ã\83\88èª\9e"}\r
+        iu{"イヌクティトット語"}\r
         izh{"イングリア語"}\r
         ja{"日本語"}\r
         jam{"ジャマイカ・クレオール語"}\r
@@ -428,7 +428,7 @@ ja{
         oc{"オック語"}\r
         oj{"オジブウェー語"}\r
         om{"オロモ語"}\r
-        or{"ã\82ªã\83ªã\83¤ã\83¼語"}\r
+        or{"ã\82ªã\83\87ã\82£ã\82¢語"}\r
         os{"オセット語"}\r
         osa{"オセージ語"}\r
         ota{"オスマントルコ語"}\r
@@ -1047,7 +1047,7 @@ ja{
         VALLADER{"ヴァラダー"}\r
         WADEGILE{"ウェード式ローマ字表記法"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.91"}\r
     characterLabelPattern{\r
         all{"{0} — すべて"}\r
         category-list{"{0}: {1}"}\r
diff --git a/source/data/lang/jv.txt b/source/data/lang/jv.txt
new file mode 100644 (file)
index 0000000..c6e0061
--- /dev/null
@@ -0,0 +1,78 @@
+// © 2016 and later: Unicode, Inc. and others.\r
+// License & terms of use: http://www.unicode.org/copyright.html#License\r
+jv{\r
+    Languages{\r
+        af{"af"}\r
+        ar{"Arab"}\r
+        ar_001{"Arab Standar Anyar"}\r
+        ban{"ban"}\r
+        be{"be"}\r
+        bn{"Bengali"}\r
+        bs{"bs"}\r
+        co{"Korsika"}\r
+        de{"Jérman"}\r
+        en{"Inggris"}\r
+        es{"Spanyol"}\r
+        es_419{"Spanyol (Amerika Latin)"}\r
+        es_ES{"Spanyol (Eropah)"}\r
+        es_MX{"Spanyol (Meksiko)"}\r
+        fr{"Prancis"}\r
+        hi{"India"}\r
+        id{"Indonesia"}\r
+        it{"Italia"}\r
+        ja{"Jepang"}\r
+        jv{"Jawa"}\r
+        ko{"Korea"}\r
+        nl{"Walanda"}\r
+        nl_BE{"Flemis"}\r
+        pl{"Polandia"}\r
+        pt{"Portugis"}\r
+        ru{"Rusia"}\r
+        th{"Thailand"}\r
+        tr{"Turki"}\r
+        und{"Basa Ora Dikenali"}\r
+        zh{"Tyonghwa"}\r
+        zh_Hant{"Tyonghwa (Tradisional)"}\r
+    }\r
+    Languages%short{\r
+        en_GB{"Inggris (Britania)"}\r
+        en_US{"Inggris (AS)"}\r
+    }\r
+    Scripts{\r
+        Arab{"Arab"}\r
+        Cyrl{"Sirilik"}\r
+        Hani{"Han"}\r
+        Hant{"Tradhisional"}\r
+        Jpan{"Jepang"}\r
+        Kore{"Korea"}\r
+        Latn{"Latin"}\r
+        Zxxx{"Ora Ketulis"}\r
+        Zzzz{"Skrip Ora Dikenali"}\r
+    }\r
+    Scripts%stand-alone{\r
+        Hant{"Han Tradhisional"}\r
+    }\r
+    Types{\r
+        calendar{\r
+            gregorian{"Tanggalan Gregorian"}\r
+            iso8601{"Tanggalan ISO-8601"}\r
+        }\r
+        collation{\r
+            standard{"Standar Ngurutke Urutan"}\r
+        }\r
+        numbers{\r
+            latn{"Digit Latin"}\r
+        }\r
+    }\r
+    Version{"2.1.44.15"}\r
+    codePatterns{\r
+        language{"Basa: {0}"}\r
+        script{"Skrip: {0}"}\r
+        territory{"Daerah: {0}"}\r
+    }\r
+    localeDisplayPattern{\r
+        keyTypePattern{"{0}: {1}"}\r
+        pattern{"{0} ({1})"}\r
+        separator{"{0}, {1}"}\r
+    }\r
+}\r
index 7a7fbb1..0a41dab 100644 (file)
@@ -261,7 +261,7 @@ ka{
         lol{"მონგო"}\r
         loz{"ლოზი"}\r
         lrc{"ჩრდილოეთ ლური"}\r
-        lt{"á\83\9aá\83\98á\83¢ვური"}\r
+        lt{"á\83\9aá\83\98á\83\94á\83¢á\83£ვური"}\r
         lu{"ლუბა-კატანგა"}\r
         lua{"ლუბა-ლულუა"}\r
         lui{"ლუისენიო"}\r
@@ -734,7 +734,7 @@ ka{
             tibt{"ტიბეტური ციფრები"}\r
         }\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.50"}\r
     characterLabelPattern{\r
         all{"{0} — ყველა"}\r
         category-list{"{0}: {1}"}\r
index e78bc04..b8fbfe2 100644 (file)
@@ -48,5 +48,5 @@ kab{
         zh{"Tacinwat, Tamundarint"}\r
         zu{"Tazulut"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.94"}\r
 }\r
index 12c1984..8bca81f 100644 (file)
@@ -249,7 +249,7 @@ kea{
             latn{"Númerus Arábikus"}\r
         }\r
     }\r
-    Version{"2.1.39.11"}\r
+    Version{"2.1.43.65"}\r
     codePatterns{\r
         language{"Lingua: {0}"}\r
         script{"Skrita: {0}"}\r
index 2176239..f10d66c 100644 (file)
@@ -3,10 +3,10 @@
 kk{\r
     Keys{\r
         calendar{"Күнтізбе"}\r
-        cf{"Валюта пішімі"}\r
+        cf{"Валюта форматы"}\r
         collation{"Сұрыптау реті"}\r
         currency{"Валюта"}\r
-        hc{"Уақыт пішімі (12 не 24)"}\r
+        hc{"Уақыт форматы (12 не 24)"}\r
         lb{"Жолды тасымалдау стилі"}\r
         ms{"Өлшемдер жүйесі"}\r
         numbers{"Сандар"}\r
@@ -422,11 +422,11 @@ kk{
         Arab{"араб жазуы"}\r
         Armn{"армян жазуы"}\r
         Beng{"бенгал жазуы"}\r
-        Bopo{"бопомофо жазу"}\r
+        Bopo{"бопомофо жазуы"}\r
         Brai{"Брайль жазуы"}\r
         Cyrl{"кирилл жазуы"}\r
         Deva{"деванагари жазуы"}\r
-        Ethi{"эфиоп жазу"}\r
+        Ethi{"эфиопиялық жазу"}\r
         Geor{"грузин жазуы"}\r
         Grek{"грек жазуы"}\r
         Gujr{"гуджарати жазуы"}\r
@@ -438,8 +438,8 @@ kk{
         Hant{"дәстүрлі қытай иероглифы"}\r
         Hebr{"иврит жазуы"}\r
         Hira{"хирагана жазуы"}\r
-        Hrkt{"жапон силлабарийі"}\r
-        Jamo{"чамо жазуы"}\r
+        Hrkt{"хирагана немесе катакана"}\r
+        Jamo{"джамо жазуы"}\r
         Jpan{"жапон жазуы"}\r
         Kana{"катакана жазуы"}\r
         Khmr{"кхмер жазуы"}\r
@@ -454,7 +454,7 @@ kk{
         Sinh{"сингаль жазуы"}\r
         Taml{"тамиль жазуы"}\r
         Telu{"телугу жазуы"}\r
-        Thaa{"Ñ\82аана Ð¶Ð°Ð·Ñ\83Ñ\8b"}\r
+        Thaa{"тана жазуы"}\r
         Thai{"тай жазуы"}\r
         Tibt{"тибет жазуы"}\r
         Zmth{"математикалық жазу"}\r
@@ -483,8 +483,8 @@ kk{
             roc{"Мингуо күнтізбесі"}\r
         }\r
         cf{\r
-            account{"Есептік валюта пішімі"}\r
-            standard{"Стандартты валюта пішімі"}\r
+            account{"Есептік валюта форматы"}\r
+            standard{"Стандартты валюта форматы"}\r
         }\r
         collation{\r
             ducet{"Әдепкі уникод сұрыптау реті"}\r
@@ -504,7 +504,7 @@ kk{
         }\r
         ms{\r
             metric{"Метрлік жүйе"}\r
-            uksystem{"Ð\98мпеÑ\80иялық өлшемдер жүйесі"}\r
+            uksystem{"Ð\91Ñ\80иÑ\82аниялық өлшемдер жүйесі"}\r
             ussystem{"Америкалық өлшемдер жүйесі"}\r
         }\r
         numbers{\r
@@ -515,7 +515,7 @@ kk{
             beng{"Бенгал сандары"}\r
             deva{"Деванагари сандары"}\r
             ethi{"Эфиопия сандары"}\r
-            fullwide{"СандаÑ\80дÑ\8bÒ£ Ñ\82олÑ\8bÒ\9b Ð¿Ñ\96Ñ\88Ñ\96мÑ\96"}\r
+            fullwide{"ТолÑ\8bÒ\9b ÐµÐ½Ð´Ñ\96 Ñ\86иÑ\84Ñ\80лаÑ\80"}\r
             geor{"Грузин сандары"}\r
             grek{"Грек сандары"}\r
             greklow{"Кіші әріппен берілген грек сандары"}\r
@@ -545,7 +545,7 @@ kk{
             tibt{"Тибет сандары"}\r
         }\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.88"}\r
     characterLabelPattern{\r
         all{"{0} — барлығы"}\r
         category-list{"{0}: {1}"}\r
@@ -555,7 +555,7 @@ kk{
         historic{"{0} — тарихи"}\r
         miscellaneous{"{0} — әр түрлі"}\r
         other{"{0} — басқа"}\r
-        scripts{"Ð\96азулар — {0}"}\r
+        scripts{"Ðазулар — {0}"}\r
         strokes{\r
             one{"{0} сызық"}\r
             other{"{0} сызық"}\r
index f8df3f1..e370e8f 100644 (file)
@@ -4,7 +4,7 @@ kl{
     Languages{\r
         kl{"kalaallisut"}\r
     }\r
-    Version{"2.1.38.69"}\r
+    Version{"2.1.45.12"}\r
     localeDisplayPattern{\r
         keyTypePattern{"{0}: {1}"}\r
         pattern{"{0} ({1})"}\r
index a8f5733..bbb9e02 100644 (file)
@@ -535,7 +535,7 @@ km{
             tibt{"លេខទីបេ"}\r
         }\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.88"}\r
     characterLabelPattern{\r
         all{"{0} — ទាំងអស់"}\r
         category-list{"{0}: {1}"}\r
index 184aede..6cc0f78 100644 (file)
@@ -832,7 +832,7 @@ kn{
             vaii{"ವಾಯ್ ಅಂಕೆಗಳು"}\r
         }\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.88"}\r
     characterLabelPattern{\r
         all{"{0} — ಎಲ್ಲ"}\r
         category-list{"{0}: {1}"}\r
index 9687658..bd58a36 100644 (file)
@@ -45,10 +45,10 @@ ko{
         ar{"아랍어"}\r
         ar_001{"현대 표준 아랍어"}\r
         arc{"아람어"}\r
-        arn{"ë§\88í\91¸ë\91\94군어"}\r
+        arn{"ë§\88í\91¸ë\91¥군어"}\r
         arp{"아라파호어"}\r
         arq{"알제리 아랍어"}\r
-        ars{"나즈디 아랍어"}\r
+        ars{"아랍어(나즈디)"}\r
         arw{"아라와크어"}\r
         ary{"모로코 아랍어"}\r
         arz{"이집트 아랍어"}\r
@@ -919,7 +919,7 @@ ko{
         VAIDIKA{"바이디카"}\r
         VALLADER{"발라더"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.91"}\r
     characterLabelPattern{\r
         all{"{0} — 전체"}\r
         category-list{"{0}: {1}"}\r
index 5add580..29b85df 100644 (file)
@@ -1,6 +1,16 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 kok{\r
+    Keys{\r
+        calendar{"दिनदर्शिका"}\r
+        cf{"चलनाचें स्वरूप"}\r
+        collation{"वर्गवारी क्रम"}\r
+        currency{"चलन"}\r
+        hc{"वराचें चक्र (12 वि 24)"}\r
+        lb{"रेग खंड करपाची शैली"}\r
+        ms{"मापन प्रणाली"}\r
+        numbers{"क्रमांक"}\r
+    }\r
     Languages{\r
         aa{"अफार"}\r
         ab{"अबखेज़ियन"}\r
@@ -199,7 +209,7 @@ kok{
         li{"लिंबुर्ग"}\r
         lkt{"लाकोटा"}\r
         ln{"लिंगाला"}\r
-        lo{"लाà¤\85à¥\8b"}\r
+        lo{"लाà¤\93"}\r
         loz{"लोझीं"}\r
         lrc{"उत्तरीय लुरी"}\r
         lt{"लिथुआनियन्"}\r
@@ -278,7 +288,7 @@ kok{
         pcm{"नायझेरियन पिडगीन"}\r
         pl{"पोलिष"}\r
         prg{"प्रुसियन"}\r
-        ps{"पाष्टो (पुष्टो)"}\r
+        ps{"पाष्टो"}\r
         pt{"पोर्तुगिज"}\r
         pt_BR{"ब्राझिलियन पोर्तुगिज"}\r
         pt_PT{"युरोपियन पोर्तुगिज"}\r
@@ -286,7 +296,7 @@ kok{
         quc{"किचे"}\r
         rap{"रापान्यु"}\r
         rar{"रारोटोंगान"}\r
-        rm{"रहà¤\9fà¥\8b-रà¥\8bमानà¥\8dसà¥\8d"}\r
+        rm{"रà¥\8bमाà¤\82नà¥\8dश"}\r
         rn{"रुंदी"}\r
         ro{"रोमानियन्"}\r
         ro_MD{"मोल्डावियन्"}\r
@@ -406,12 +416,48 @@ kok{
     }\r
     Scripts{\r
         Arab{"अरेबिक"}\r
+        Armn{"आर्मेनियन"}\r
+        Beng{"बांग्ला"}\r
+        Bopo{"बोपोमोफो"}\r
+        Brai{"ब्रैल"}\r
         Cyrl{"सिरिलिक"}\r
         Deva{"देवनागरी"}\r
+        Ethi{"इथियोपीक"}\r
+        Geor{"जॉर्जियन"}\r
+        Grek{"ग्रीक"}\r
+        Gujr{"गुजराती"}\r
+        Guru{"गुरमुखी"}\r
+        Hanb{"बोपोमोफो वांगडा हॅन"}\r
+        Hang{"हंगूल"}\r
+        Hani{"हॅन"}\r
         Hans{"सोंपी"}\r
         Hant{"पारंपारीक"}\r
+        Hebr{"हिब्रू"}\r
+        Hira{"हिरागना"}\r
+        Hrkt{"जपानी अक्षरमाळ"}\r
+        Jamo{"जामो"}\r
+        Jpan{"जपानी"}\r
+        Kana{"काटकाना"}\r
+        Khmr{"खमेर"}\r
+        Knda{"कन्नड"}\r
+        Kore{"कोरियन"}\r
+        Laoo{"लाओ"}\r
         Latn{"लॅटीन"}\r
+        Mlym{"मलयाळम"}\r
+        Mong{"मोंगोलियन"}\r
+        Mymr{"म्यानमार"}\r
+        Orya{"ओरिया"}\r
+        Sinh{"सिन्हाला"}\r
+        Taml{"तमीळ"}\r
+        Telu{"तेलुगू"}\r
+        Thaa{"थाणा"}\r
+        Thai{"थाई"}\r
+        Tibt{"तिबेटन"}\r
+        Zmth{"गणिताची चिन्नां"}\r
+        Zsye{"Emoji"}\r
+        Zsym{"चिन्नां"}\r
         Zxxx{"अलिखीत"}\r
+        Zyyy{"सामान्य"}\r
         Zzzz{"अज्ञात लिपी"}\r
     }\r
     Scripts%stand-alone{\r
@@ -420,17 +466,85 @@ kok{
     }\r
     Types{\r
         calendar{\r
+            buddhist{"बुध्दीश्ट दिनदर्शिका"}\r
+            chinese{"चीनी दिनदर्शिका"}\r
+            dangi{"डांगी दिनदर्शिका"}\r
+            ethiopic{"इथियोपिक दिनदर्शिका"}\r
             gregorian{"ग्रेगोरियन दिनदर्शिका"}\r
+            hebrew{"हिब्रू दिनदर्शिका"}\r
+            islamic{"ईस्लामीक दिनदर्शिका"}\r
+            iso8601{"आयएसओ-8601 दिनदर्शिका"}\r
+            japanese{"जपानी"}\r
+            persian{"पर्शियन दिनदर्शिका"}\r
+            roc{\r
+                "मिंगुआ दिनदर्शिका (अणकाराची कुरू: जाका चिनी दिनदर्शिकेचें प्रजासत्ता"\r
+                "क\u0022, \u0022रिपब्लिकन दिनदर्शिका\u0022)"\r
+            }\r
+        }\r
+        cf{\r
+            account{"लेखा चलन स्वरूप"}\r
+            standard{"प्रमाणित"}\r
         }\r
         collation{\r
-            standard{"प्रमाणित वर्गिकरण क्रमांक"}\r
+            ducet{"डिफॉल्ट युनिकोड वर्गवारी क्रम"}\r
+            search{"सोद घेवचो"}\r
+            standard{"प्रमाणित वर्गवारी क्रम"}\r
+        }\r
+        hc{\r
+            h11{"12 वरांची यंत्रणा (0–11)"}\r
+            h12{"12 वरांची यंत्रणा (1–12)"}\r
+            h23{"24 वरांची यंत्रणा (0–23)"}\r
+            h24{"24 वरांची यंत्रणा (1–24)"}\r
+        }\r
+        lb{\r
+            loose{"लूज रेग खंड शैली"}\r
+            normal{"सामान्य रेग खंड शैली"}\r
+            strict{"सक्तीची रेग खंड शैली"}\r
+        }\r
+        ms{\r
+            metric{"मॅट्रीक प्रणाली"}\r
+            uksystem{"व्हडली मापन प्रणाली"}\r
+            ussystem{"युएस मापन प्रणाली"}\r
         }\r
         numbers{\r
+            arab{"अरेबिक-भारतीय अंक"}\r
+            arabext{"विस्तारीत अरेबीक-भारतीय अंक"}\r
+            armn{"आर्मेनियन संख्या"}\r
+            armnlow{"आर्मेनियन लोवरकेस संख्या"}\r
+            beng{"बांग्ला अंक"}\r
             deva{"देवनागरी अंक"}\r
+            ethi{"इथियोपिक संख्या"}\r
+            fullwide{"पूर्ण-रुंदी अंक"}\r
+            geor{"जॉर्जियन संख्या"}\r
+            grek{"ग्रीक संख्या"}\r
+            greklow{"ग्रीक लोवरकेस संख्या"}\r
+            gujr{"गुजराती अंक"}\r
+            guru{"गुरुमुखी अंक"}\r
+            hanidec{"चिनी दशांश संख्या"}\r
+            hans{"सोंपी केल्ली चिनी संख्या"}\r
+            hansfin{"सोंपी केल्ली चिनी महसूल संख्या"}\r
+            hant{"पारंपारीक चिनी संख्या"}\r
+            hantfin{"पारंपारीक चिनी महसूल संख्या"}\r
+            hebr{"हिब्रू संख्या"}\r
+            jpan{"जपानी संख्या"}\r
+            jpanfin{"जपानी महसूल संख्या"}\r
+            khmr{"कंबोडियन अंक"}\r
+            knda{"कन्नड अंक"}\r
+            laoo{"लाओ अंक"}\r
             latn{"अस्तंत अंक"}\r
+            mlym{"मल्याळम अंक"}\r
+            mymr{"म्यानमार अंक"}\r
+            orya{"ओडिया"}\r
+            roman{"रोमन संख्या"}\r
+            romanlow{"रोमन लोवरकेस संख्या"}\r
+            taml{"पारंपारीक तमिळ संख्या"}\r
+            tamldec{"तमिळ अंक"}\r
+            telu{"तेलुगू अंक"}\r
+            thai{"थाय अंक"}\r
+            tibt{"तिबेतियन"}\r
         }\r
     }\r
-    Version{"2.1.38.69"}\r
+    Version{"2.1.44.88"}\r
     codePatterns{\r
         language{"भाशा: {0}"}\r
         script{"लिपी: {0}"}\r
index 6241b81..5dc5165 100644 (file)
@@ -609,7 +609,7 @@ ks{
         SOLBA{"ثٹولوِزا/سولبِکا بوٗلۍ"}\r
         TARASK{"تاراسکیٖوِکا علمہ ہِجاِ"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.41.34"}\r
     codePatterns{\r
         language{"زَبان: {0}"}\r
         script{"رَسم الخط: {0}"}\r
index 60abcfb..35bf8e0 100644 (file)
@@ -512,7 +512,7 @@ ksh{
         VALENCIA{"valenzijaanesche Dijaläk"}\r
         WADEGILE{"lateijnesche Ömschreff noh Wade-Giles"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.41.34"}\r
     codePatterns{\r
         language{"de Schprohch afjekööz met „{0}“"}\r
         script{"de Schreff afjekööz met „{0}“"}\r
diff --git a/source/data/lang/ku.txt b/source/data/lang/ku.txt
new file mode 100644 (file)
index 0000000..ff64384
--- /dev/null
@@ -0,0 +1,287 @@
+// © 2016 and later: Unicode, Inc. and others.\r
+// License & terms of use: http://www.unicode.org/copyright.html#License\r
+ku{\r
+    Keys{\r
+        calendar{"salname"}\r
+        currency{"diwîz"}\r
+    }\r
+    Languages{\r
+        aa{"afarî"}\r
+        ab{"abxazî"}\r
+        ace{"açehî"}\r
+        ady{"adîgeyî"}\r
+        af{"afrîkansî"}\r
+        ain{"aynuyî"}\r
+        ale{"alêwîtî"}\r
+        am{"amharî"}\r
+        an{"aragonî"}\r
+        ar{"erebî"}\r
+        ar_001{"erebiya standard"}\r
+        as{"asamî"}\r
+        ast{"astûrî"}\r
+        av{"avarî"}\r
+        ay{"aymarayî"}\r
+        az{"azerî"}\r
+        ba{"başkîrî"}\r
+        ban{"balînî"}\r
+        be{"belarusî"}\r
+        bem{"bembayî"}\r
+        bg{"bulgarî"}\r
+        bho{"bojpûrî"}\r
+        bi{"bîslamayî"}\r
+        bla{"blakfotî"}\r
+        bm{"bambarayî"}\r
+        bn{"bengalî"}\r
+        bo{"tîbetî"}\r
+        br{"bretonî"}\r
+        bs{"bosnî"}\r
+        bug{"bugî"}\r
+        byn{"byn"}\r
+        ca{"katalanî"}\r
+        ce{"çeçenî"}\r
+        ceb{"sebwanoyî"}\r
+        ch{"çamoroyî"}\r
+        chk{"çûkî"}\r
+        chm{"marî"}\r
+        chr{"çerokî"}\r
+        chy{"çeyenî"}\r
+        ckb{"soranî"}\r
+        co{"korsîkayî"}\r
+        cs{"çekî"}\r
+        cv{"çuvaşî"}\r
+        cy{"weylsî"}\r
+        da{"danmarkî"}\r
+        de{"elmanî"}\r
+        dsb{"sorbiya jêrîn"}\r
+        dua{"diwalayî"}\r
+        dv{"divehî"}\r
+        dz{"conxayî"}\r
+        ee{"eweyî"}\r
+        el{"yewnanî"}\r
+        en{"îngilîzî"}\r
+        eo{"esperantoyî"}\r
+        es{"spanî"}\r
+        et{"estonî"}\r
+        eu{"baskî"}\r
+        fa{"farisî"}\r
+        ff{"fulahî"}\r
+        fi{"fînî"}\r
+        fil{"fîlîpînoyî"}\r
+        fj{"fîjî"}\r
+        fo{"ferî"}\r
+        fr{"frensî"}\r
+        fur{"friyolî"}\r
+        fy{"frîsî"}\r
+        ga{"îrî"}\r
+        gd{"gaelîka skotî"}\r
+        gez{"gez"}\r
+        gil{"kîrîbatî"}\r
+        gl{"galîsî"}\r
+        gn{"guwaranî"}\r
+        gor{"gorontaloyî"}\r
+        gsw{"elmanîşî"}\r
+        gu{"gujaratî"}\r
+        gv{"manksî"}\r
+        ha{"hawsayî"}\r
+        haw{"hawayî"}\r
+        he{"îbranî"}\r
+        hi{"hindî"}\r
+        hil{"hîlîgaynonî"}\r
+        hr{"xirwatî"}\r
+        hsb{"sorbiya jorîn"}\r
+        ht{"haîtî"}\r
+        hu{"mecarî"}\r
+        hy{"ermenî"}\r
+        hz{"hereroyî"}\r
+        ia{"interlingua"}\r
+        id{"indonezî"}\r
+        ig{"îgboyî"}\r
+        ilo{"îlokanoyî"}\r
+        inh{"îngûşî"}\r
+        io{"îdoyî"}\r
+        is{"îzlendî"}\r
+        it{"îtalî"}\r
+        iu{"înuîtî"}\r
+        ja{"japonî"}\r
+        jbo{"lojbanî"}\r
+        jv{"javayî"}\r
+        ka{"gurcî"}\r
+        kab{"kabîlî"}\r
+        kea{"kapverdî"}\r
+        kk{"qazaxî"}\r
+        kl{"kalalîsûtî"}\r
+        km{"ximêrî"}\r
+        kn{"kannadayî"}\r
+        ko{"koreyî"}\r
+        kok{"konkanî"}\r
+        ks{"keşmîrî"}\r
+        ksh{"rîpwarî"}\r
+        ku{"kurdî"}\r
+        kv{"komî"}\r
+        kw{"kornî"}\r
+        ky{"kirgizî"}\r
+        lad{"ladînoyî"}\r
+        lb{"luksembûrgî"}\r
+        lez{"lezgînî"}\r
+        lg{"lugandayî"}\r
+        li{"lîmbûrgî"}\r
+        lkt{"lakotayî"}\r
+        ln{"lingalayî"}\r
+        lo{"lawsî"}\r
+        lrc{"luriya bakur"}\r
+        lt{"lîtwanî"}\r
+        lv{"latviyayî"}\r
+        mad{"madurayî"}\r
+        mas{"masayî"}\r
+        mdf{"mokşayî"}\r
+        mg{"malagasî"}\r
+        mh{"marşalî"}\r
+        mi{"maorî"}\r
+        mic{"mîkmakî"}\r
+        min{"mînangkabawî"}\r
+        mk{"makedonî"}\r
+        ml{"malayalamî"}\r
+        mn{"mongolî"}\r
+        moh{"mohawkî"}\r
+        mr{"maratî"}\r
+        ms{"malezî"}\r
+        mt{"maltayî"}\r
+        my{"burmayî"}\r
+        myv{"erzayî"}\r
+        mzn{"mazenderanî"}\r
+        na{"nawrûyî"}\r
+        nap{"napolîtanî"}\r
+        nb{"norwecî (bokmål)"}\r
+        ne{"nepalî"}\r
+        niu{"nîwî"}\r
+        nl{"holendî"}\r
+        nl_BE{"flamî"}\r
+        nn{"norwecî (nynorsk)"}\r
+        nso{"sotoyiya bakur"}\r
+        nv{"navajoyî"}\r
+        oc{"oksîtanî"}\r
+        om{"oromoyî"}\r
+        or{"oriyayî"}\r
+        os{"osetî"}\r
+        pa{"puncabî"}\r
+        pam{"kapampanganî"}\r
+        pap{"papyamentoyî"}\r
+        pau{"palawî"}\r
+        pl{"polonî"}\r
+        prg{"prûsyayî"}\r
+        ps{"peştûyî"}\r
+        pt{"portugalî"}\r
+        qu{"keçwayî"}\r
+        rap{"rapanuyî"}\r
+        rar{"rarotongî"}\r
+        rm{"romancî"}\r
+        ro{"romanî"}\r
+        ru{"rusî"}\r
+        rup{"aromanî"}\r
+        rw{"kînyariwandayî"}\r
+        sa{"sanskrîtî"}\r
+        sc{"sardînî"}\r
+        scn{"sicîlî"}\r
+        sco{"skotî"}\r
+        sd{"sindhî"}\r
+        se{"samiya bakur"}\r
+        si{"kîngalî"}\r
+        sk{"slovakî"}\r
+        sl{"slovenî"}\r
+        sm{"samoayî"}\r
+        smn{"samiya înarî"}\r
+        sn{"şonayî"}\r
+        so{"somalî"}\r
+        sq{"elbanî"}\r
+        sr{"sirbî"}\r
+        srn{"sirananî"}\r
+        ss{"swazî"}\r
+        st{"sotoyiya başûr"}\r
+        su{"sundanî"}\r
+        sv{"swêdî"}\r
+        sw{"swahîlî"}\r
+        swb{"komorî"}\r
+        syr{"siryanî"}\r
+        ta{"tamîlî"}\r
+        te{"telûgûyî"}\r
+        tet{"tetûmî"}\r
+        tg{"tacikî"}\r
+        th{"tayî"}\r
+        ti{"tigrînî"}\r
+        tk{"tirkmenî"}\r
+        tlh{"klîngonî"}\r
+        tn{"tswanayî"}\r
+        to{"tongî"}\r
+        tpi{"tokpisinî"}\r
+        tr{"tirkî"}\r
+        trv{"tarokoyî"}\r
+        ts{"tsongayî"}\r
+        tt{"teterî"}\r
+        tum{"tumbukayî"}\r
+        tvl{"tuvalûyî"}\r
+        ty{"tahîtî"}\r
+        tzm{"temazîxtî"}\r
+        udm{"udmurtî"}\r
+        ug{"oygurî"}\r
+        uk{"ukraynî"}\r
+        ur{"urdûyî"}\r
+        uz{"ozbekî"}\r
+        vi{"viyetnamî"}\r
+        vo{"volapûkî"}\r
+        wa{"walonî"}\r
+        war{"warayî"}\r
+        wo{"wolofî"}\r
+        xh{"xosayî"}\r
+        yi{"yidîşî"}\r
+        yo{"yorubayî"}\r
+        yue{"kantonî"}\r
+        zu{"zuluyî"}\r
+        zza{"zazakî"}\r
+    }\r
+    Languages%short{\r
+        az{"azerî"}\r
+    }\r
+    Scripts{\r
+        Arab{"erebî"}\r
+        Armn{"ermenî"}\r
+        Beng{"bengalî"}\r
+        Cyrl{"kirîlî"}\r
+        Deva{"devanagarî"}\r
+        Geor{"gurcî"}\r
+        Grek{"yewnanî"}\r
+        Khmr{"ximêrî"}\r
+        Latn{"latînî"}\r
+        Mong{"mongolî"}\r
+        Tibt{"tîbetî"}\r
+        Zsym{"sembol"}\r
+        Zxxx{"ne nivîsandî"}\r
+        Zyyy{"hevpar"}\r
+        Zzzz{"nivîsa nenas"}\r
+    }\r
+    Types{\r
+        calendar{\r
+            chinese{"salnameya çînî"}\r
+            gregorian{"salnameya gregorî"}\r
+            hebrew{"salnameya îbranî"}\r
+            islamic{"salnameya koçî"}\r
+            iso8601{"salnameya ISO-8601"}\r
+            japanese{"salnameya japonî"}\r
+            persian{"salnameya îranî"}\r
+            roc{"salnameya Komara Çînê"}\r
+        }\r
+        numbers{\r
+            roman{"hejmarên romî"}\r
+        }\r
+    }\r
+    Version{"2.1.44.82"}\r
+    codePatterns{\r
+        language{"ziman: {0}"}\r
+        script{"nivîs: {0}"}\r
+        territory{"herêm: {0}"}\r
+    }\r
+    localeDisplayPattern{\r
+        keyTypePattern{"{0}: {1}"}\r
+        pattern{"{0} ({1})"}\r
+        separator{"{0}, {1}"}\r
+    }\r
+}\r
index 876dc02..0f2ee8d 100644 (file)
@@ -4,5 +4,5 @@ kw{
     Languages{\r
         kw{"kernewek"}\r
     }\r
-    Version{"2.1.38.69"}\r
+    Version{"2.1.43.65"}\r
 }\r
index bc5b7a1..11e05c8 100644 (file)
@@ -94,6 +94,7 @@ ky{
         eka{"экажукча"}\r
         el{"грекче"}\r
         en{"англисче"}\r
+        en_US{"англисче (Америка Кошмо Штаттары)"}\r
         eo{"эсперанто"}\r
         es{"испанча"}\r
         es_ES{"испанча (Европа)"}\r
@@ -251,7 +252,7 @@ ky{
         nan{"nan"}\r
         nap{"неополитанча"}\r
         naq{"намача"}\r
-        nb{"ноÑ\80вежÑ\87е (Ð\91укмал)"}\r
+        nb{"ноÑ\80вежÑ\87е (букмал)"}\r
         nd{"түндүк ндыбелче"}\r
         nds{"төмөнкү немисче"}\r
         nds_NL{"төмөнкү саксончо"}\r
@@ -539,7 +540,7 @@ ky{
             tibt{"Тибет сандары"}\r
         }\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.65"}\r
     characterLabelPattern{\r
         all{"{0} — баары"}\r
         category-list{"{0}: {1}"}\r
index 69b47a1..6e693be 100644 (file)
@@ -875,7 +875,7 @@ lb{
         VALENCIA{"Valencianesch"}\r
         WADEGILE{"Wade-Giles"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.91"}\r
     codePatterns{\r
         language{"Sprooch: {0}"}\r
         script{"Schrëft: {0}"}\r
index 7f4f9dd..0b8eaf0 100644 (file)
@@ -158,6 +158,7 @@ lo{
         fon{"ຟອນ"}\r
         fr{"ຝຣັ່ງ"}\r
         fr_CA{"ຟລັງ(ການາດາ)"}\r
+        fr_CH{"ຝຣັ່ງ (ສວິສ)"}\r
         frm{"ຟຮັ່ງເສດກາງ"}\r
         fro{"ຟຮັ່ງເສດໂບຮານ"}\r
         frr{"ຟຣີຊຽນເໜືອ"}\r
@@ -382,6 +383,7 @@ lo{
         pi{"ປາລີ"}\r
         pl{"ໂປລິຊ"}\r
         pon{"ພອນເພ"}\r
+        prg{"ປຣັສຊຽນ"}\r
         pro{"ໂປວອງຊານໂບຮານ"}\r
         ps{"ປາສໂຕ"}\r
         pt{"ປອກຕຸຍກິສ"}\r
@@ -875,7 +877,7 @@ lo{
         VALLADER{"ວັລລາເດີ"}\r
         WADEGILE{"ການຖອດອັກສອນແບບເວດ-ໄຈລ໌"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.50"}\r
     characterLabelPattern{\r
         all{"{0} — ທັງໝົດ"}\r
         category-list{"{0}: {1}"}\r
index b9dbd9c..09dc834 100644 (file)
@@ -296,7 +296,7 @@ lrc{
             latn{"عأدأدیا لاتین"}\r
         }\r
     }\r
-    Version{"2.1.38.69"}\r
+    Version{"2.1.43.65"}\r
     codePatterns{\r
         language{"{0}"}\r
         script{"{0}"}\r
index 74da8b4..93d3a16 100644 (file)
@@ -1023,7 +1023,7 @@ lt{
         VALENCIA{"Valenciečiai"}\r
         WADEGILE{"Wade-Giles Romanization"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.91"}\r
     characterLabelPattern{\r
         all{"{0} – visi"}\r
         category-list{"{0}: {1}"}\r
index 6f91af3..c52e748 100644 (file)
@@ -110,7 +110,7 @@ lv{
         cop{"koptu"}\r
         cr{"krī"}\r
         crh{"Krimas tatāru"}\r
-        crs{"kreolu franču"}\r
+        crs{"franciskā kreoliskā valoda (Seišelu salas)"}\r
         cs{"čehu"}\r
         csb{"kašubu"}\r
         cu{"baznīcslāvu"}\r
@@ -121,7 +121,7 @@ lv{
         dar{"dargu"}\r
         dav{"taitu"}\r
         de{"vācu"}\r
-        de_CH{"Šveices augšvācu"}\r
+        de_CH{"augšvācu (Šveice)"}\r
         del{"delavēru"}\r
         den{"sleivu"}\r
         dgr{"dogribu"}\r
@@ -144,6 +144,7 @@ lv{
         el{"grieķu"}\r
         elx{"elamiešu"}\r
         en{"angļu"}\r
+        en_GB{"angļu (Lielbritānija)"}\r
         enm{"vidusangļu"}\r
         eo{"esperanto"}\r
         es{"spāņu"}\r
@@ -172,7 +173,7 @@ lv{
         gag{"gagauzu"}\r
         gay{"gajo"}\r
         gba{"gbaju"}\r
-        gd{"gēlu"}\r
+        gd{"skotu gēlu"}\r
         gez{"gēzu"}\r
         gil{"kiribatiešu"}\r
         gl{"galisiešu"}\r
@@ -380,7 +381,7 @@ lv{
         pam{"pampanganu"}\r
         pap{"papjamento"}\r
         pau{"palaviešu"}\r
-        pcm{"pidžins"}\r
+        pcm{"Nigērijas pidžinvaloda"}\r
         peo{"senpersu"}\r
         phn{"feniķiešu"}\r
         pi{"pāli"}\r
@@ -457,7 +458,7 @@ lv{
         sux{"šumeru"}\r
         sv{"zviedru"}\r
         sw{"svahili"}\r
-        sw_CD{"Kongo svahili"}\r
+        sw_CD{"svahili (Kongo)"}\r
         swb{"komoru"}\r
         syc{"klasiskā sīriešu"}\r
         syr{"sīriešu"}\r
@@ -529,7 +530,7 @@ lv{
         zap{"sapoteku"}\r
         zbl{"blissimbolika"}\r
         zen{"zenagu"}\r
-        zgh{"standarta marokāņu berberu"}\r
+        zgh{"standarta tamazigtu (Maroka)"}\r
         zh{"ķīniešu"}\r
         zh_Hans{"ķīniešu vienkāršotā"}\r
         zh_Hant{"ķīniešu tradicionālā"}\r
@@ -540,6 +541,7 @@ lv{
     }\r
     Languages%short{\r
         az{"azerbaidžāņu"}\r
+        en_GB{"angļu (Lielbritānija)"}\r
         en_US{"angļu (ASV)"}\r
     }\r
     Scripts{\r
@@ -567,15 +569,15 @@ lv{
         Guru{"pandžabu"}\r
         Hanb{"haņu ar bopomofo"}\r
         Hang{"hangils"}\r
-        Hani{"ķīniešu"}\r
+        Hani{"haņu"}\r
         Hans{"vienkāršotā"}\r
         Hant{"tradicionālā"}\r
         Hebr{"ivrits"}\r
         Hira{"hiragana"}\r
-        Hrkt{"katakana vai hiragana"}\r
+        Hrkt{"japāņu zilbju alfabēts"}\r
         Hung{"senungāru"}\r
         Ital{"vecitāļu"}\r
-        Jamo{"amo"}\r
+        Jamo{"jamo"}\r
         Java{"javiešu"}\r
         Jpan{"japāņu"}\r
         Kana{"katakana"}\r
@@ -796,7 +798,7 @@ lv{
         VALENCIA{"valensiešu"}\r
         WADEGILE{"Veida-Džailza romanizācija"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.91"}\r
     characterLabelPattern{\r
         all{"{0} — visas"}\r
         category-list{"{0}: {1}"}\r
index 5240cf3..e57c84f 100644 (file)
@@ -48,5 +48,5 @@ mg{
         zh{"Sinoa, Mandarin"}\r
         zu{"Zolò"}\r
     }\r
-    Version{"2.1.39.11"}\r
+    Version{"2.1.43.94"}\r
 }\r
diff --git a/source/data/lang/mi.txt b/source/data/lang/mi.txt
new file mode 100644 (file)
index 0000000..5194978
--- /dev/null
@@ -0,0 +1,71 @@
+// © 2016 and later: Unicode, Inc. and others.\r
+// License & terms of use: http://www.unicode.org/copyright.html#License\r
+mi{\r
+    Languages{\r
+        de{"Tiamana"}\r
+        de_AT{"Tiamana Atiria"}\r
+        de_CH{"Tiamana Ōkawa Huiterangi"}\r
+        en{"Ingarihi"}\r
+        en_AU{"Ingarihi Ahitereiriana"}\r
+        en_CA{"Ingarihi Kānata"}\r
+        en_GB{"Ingarihi Piritene"}\r
+        en_US{"Ingarihi Amerikana"}\r
+        es{"Paniora"}\r
+        es_419{"Paniora Amerika ki te Tonga"}\r
+        es_ES{"Paniora Uropi"}\r
+        es_MX{"Paniora Mēhikana"}\r
+        fr{"Wīwī"}\r
+        fr_CA{"Wīwī Kānata"}\r
+        fr_CH{"Wīwī Huiterangi"}\r
+        it{"Ītariana"}\r
+        ja{"Hapanihi"}\r
+        mi{"Māori"}\r
+        pt{"Pōtikī"}\r
+        pt_BR{"Pōtikī Parahi"}\r
+        pt_PT{"Pōtikī Uropi"}\r
+        ru{"Ruhiana"}\r
+        und{"Reo Tē Mōhiotia"}\r
+        zh{"Hainamana"}\r
+        zh_Hans{"Hainamana Māmā"}\r
+        zh_Hant{"Hainamana Tukuiho"}\r
+    }\r
+    Languages%short{\r
+        en_GB{"Ingarihi UK"}\r
+        en_US{"Ingarihi US"}\r
+    }\r
+    Scripts{\r
+        Arab{"Arapika"}\r
+        Cyrl{"Hīririki"}\r
+        Hans{"Māmā"}\r
+        Hant{"Tukuiho"}\r
+        Latn{"Rātina"}\r
+        Zxxx{"Tuhikore"}\r
+        Zzzz{"Momotuhi Tē Mōhiotia"}\r
+    }\r
+    Scripts%stand-alone{\r
+        Hans{"Hana Māmā"}\r
+        Hant{"Hana Tukuiho"}\r
+    }\r
+    Types{\r
+        calendar{\r
+            gregorian{"Maramataka Pākehā"}\r
+        }\r
+        collation{\r
+            standard{"Raupapa Kōmaka Arowhānui"}\r
+        }\r
+        numbers{\r
+            latn{"Ngā Mati Pākehā"}\r
+        }\r
+    }\r
+    Version{"2.1.44.15"}\r
+    codePatterns{\r
+        language{"{0}"}\r
+        script{"{0}"}\r
+        territory{"{0}"}\r
+    }\r
+    localeDisplayPattern{\r
+        keyTypePattern{"{0}: {1}"}\r
+        pattern{"{0} ({1})"}\r
+        separator{"{0}, {1}"}\r
+    }\r
+}\r
index 7757512..331ff17 100644 (file)
@@ -834,7 +834,7 @@ mk{
             big5han{"Традиционално кинеско сортирање"}\r
             compat{"Претходно подредување"}\r
             dictionary{"Подредување по азбучен редослед"}\r
-            ducet{"Стандардно сортирање во уникод"}\r
+            ducet{"Стандардно подредување во уникод"}\r
             emoji{"Подредување емотикони"}\r
             eor{"Европски правила за подредување"}\r
             gb2312han{"Поедноставено кинеско сортирање"}\r
@@ -843,7 +843,7 @@ mk{
             reformed{"Реформирано подредување"}\r
             search{"Општо пребарување"}\r
             searchjl{"Пребарување според почетна согласка хангул"}\r
-            standard{"Стандардно сортирање"}\r
+            standard{"Стандардно подредување"}\r
             stroke{"Ритмички редослед"}\r
             traditional{"Традиционално сортирање"}\r
             unihan{"Подредување унихан"}\r
@@ -908,7 +908,7 @@ mk{
         PINYIN{"Пинјин романизација"}\r
         WADEGILE{"Вејд-Џајлс романизација"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.65"}\r
     characterLabelPattern{\r
         all{"{0} - сите"}\r
         category-list{"{0}: {1}"}\r
index 36d56b0..31ec7ac 100644 (file)
@@ -899,7 +899,7 @@ ml{
         POSIX{"കമ്പ്യൂട്ടർ"}\r
         REVISED{"പരിഷ്ക്കരിച്ച ലിപി"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.50"}\r
     characterLabelPattern{\r
         all{"{0} — എല്ലാം"}\r
         category-list{"{0}: {1}"}\r
index 3674ff0..27b34fa 100644 (file)
@@ -2,14 +2,14 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 mn{\r
     Keys{\r
-        calendar{"Ñ\85Ñ\83анли"}\r
-        cf{"валÑ\8eÑ\82Ñ\8bн Ñ\84оÑ\80маÑ\82"}\r
-        collation{"Захиалга ялгах"}\r
+        calendar{"Ñ\86аглаваÑ\80"}\r
+        cf{"мөнгөн Ñ\82Ñ\8dмдÑ\8dгÑ\82ийн Ñ\85Ñ\8dлбÑ\8dÑ\80"}\r
+        collation{"эрэмбэлэх дараалал"}\r
         currency{"мөнгөн тэмдэгт"}\r
-        hc{"Цагийн горим (12 эсвэл 24)"}\r
-        lb{"Ð\9cөрийн зайн загвар"}\r
-        ms{"Ð¥Ñ\8dмжүүÑ\80ийн систем"}\r
-        numbers{"Тоо"}\r
+        hc{"цагийн мөчлөг (12 эсвэл 24)"}\r
+        lb{"мөрийн зайн загвар"}\r
+        ms{"нÑ\8dгжийн систем"}\r
+        numbers{"тоо"}\r
     }\r
     Languages{\r
         aa{"афар"}\r
@@ -17,7 +17,7 @@ mn{
         ace{"ачин"}\r
         ada{"адангмэ"}\r
         ady{"адигэ"}\r
-        af{"африк"}\r
+        af{"африкаанс"}\r
         agq{"агем"}\r
         ain{"айну"}\r
         ak{"акан"}\r
@@ -64,11 +64,11 @@ mn{
         chk{"чуук"}\r
         chm{"мари хэл"}\r
         cho{"чоктау"}\r
-        chr{"Ñ\87ироки"}\r
+        chr{"Ñ\87ероки"}\r
         chy{"чэенн"}\r
         ckb{"төв курд"}\r
         co{"корсик"}\r
-        crs{"сеселва креолын франц"}\r
+        crs{"сеселва креол франц"}\r
         cs{"чех"}\r
         cu{"сүмийн славян"}\r
         cv{"чуваш"}\r
@@ -79,7 +79,7 @@ mn{
         dav{"тайта"}\r
         de{"герман"}\r
         de_AT{"австри-герман"}\r
-        de_CH{"швейцари дээр герман"}\r
+        de_CH{"швейцарь-герман"}\r
         dgr{"догриб"}\r
         dje{"зарма"}\r
         dsb{"доод сорби"}\r
@@ -108,8 +108,8 @@ mn{
         ewo{"эвондо"}\r
         fa{"перс"}\r
         ff{"фула"}\r
-        fi{"финлянд"}\r
-        fil{"Ñ\84илиппин"}\r
+        fi{"фин"}\r
+        fil{"Ñ\84илипино"}\r
         fj{"фижи"}\r
         fo{"фарер"}\r
         fon{"фон"}\r
@@ -140,8 +140,8 @@ mn{
         hmn{"хмонг"}\r
         hr{"хорват"}\r
         hsb{"дээд сорби"}\r
-        ht{"гаитийн креол"}\r
-        hu{"унгар"}\r
+        ht{"Ð\93аитийн креол"}\r
+        hu{"мажар"}\r
         hup{"хупа"}\r
         hy{"армен"}\r
         hz{"хереро"}\r
@@ -177,7 +177,7 @@ mn{
         khq{"койра чини"}\r
         ki{"кикуюү"}\r
         kj{"куаньяма"}\r
-        kk{"хасаг"}\r
+        kk{"казах"}\r
         kkj{"како"}\r
         kl{"калалисут"}\r
         kln{"каленжин"}\r
@@ -193,7 +193,7 @@ mn{
         krl{"карель"}\r
         kru{"курук"}\r
         ks{"кашмир"}\r
-        ksb{"шамбала"}\r
+        ksb{"шамбал"}\r
         ksf{"бафиа"}\r
         ksh{"кёльш"}\r
         ku{"курд"}\r
@@ -290,7 +290,7 @@ mn{
         pcm{"нигерийн пиджин"}\r
         pl{"польш"}\r
         prg{"прусс"}\r
-        ps{"пашто"}\r
+        ps{"пушту"}\r
         pt{"португал"}\r
         pt_BR{"португал хэл (Бразил)"}\r
         pt_PT{"португал хэл (Европ)"}\r
@@ -374,7 +374,7 @@ mn{
         twq{"тасавак"}\r
         ty{"таити"}\r
         tyv{"тува"}\r
-        tzm{"төв атласын тамазайт"}\r
+        tzm{"Төв Атласын тамазайт"}\r
         udm{"удмурт"}\r
         ug{"уйгур"}\r
         uk{"украин"}\r
@@ -400,7 +400,7 @@ mn{
         yi{"иддиш"}\r
         yo{"ёруба"}\r
         yue{"кантон"}\r
-        zgh{"тамазит"}\r
+        zgh{"Мороккогийн стандарт тамазайт"}\r
         zh{"хятад"}\r
         zh_Hans{"хялбаршуулсан хятад"}\r
         zh_Hant{"уламжлалт хятад"}\r
@@ -417,7 +417,7 @@ mn{
     Scripts{\r
         Arab{"араб"}\r
         Armn{"армени"}\r
-        Beng{"бенгал хэл"}\r
+        Beng{"бенгал"}\r
         Bopo{"вопомофо"}\r
         Brai{"брайл"}\r
         Cyrl{"кирилл"}\r
@@ -466,25 +466,25 @@ mn{
     }\r
     Types{\r
         calendar{\r
-            buddhist{"бÑ\83ддÑ\8bн Ñ\85Ñ\83анли"}\r
-            chinese{"Ñ\85Ñ\8fÑ\82ад Ñ\85Ñ\83анли"}\r
-            dangi{"данги Ñ\85Ñ\83анли"}\r
-            ethiopic{"Ñ\8dÑ\82иоп Ñ\85Ñ\83анли"}\r
-            gregorian{"гÑ\80егоÑ\80ийн Ñ\85Ñ\83анли"}\r
-            hebrew{"евÑ\80ей Ñ\85Ñ\83анли"}\r
-            islamic{"иÑ\81ламÑ\8bн Ñ\85Ñ\83анли"}\r
-            iso8601{"ISO-8601 Ñ\85Ñ\83анли"}\r
-            japanese{"Ñ\8fпон Ñ\85Ñ\83анли"}\r
-            persian{"пеÑ\80Ñ\81 Ñ\85Ñ\83анли"}\r
-            roc{"минго Ñ\85Ñ\83анли"}\r
+            buddhist{"бÑ\83ддÑ\8bн Ñ\86аглаваÑ\80"}\r
+            chinese{"Ñ\85Ñ\8fÑ\82ад Ñ\86аглаваÑ\80"}\r
+            dangi{"данги Ñ\86аглаваÑ\80"}\r
+            ethiopic{"Ñ\8dÑ\82иоп Ñ\86аглаваÑ\80"}\r
+            gregorian{"гÑ\80егоÑ\80ийн Ñ\86аглаваÑ\80"}\r
+            hebrew{"евÑ\80ей Ñ\86аглаваÑ\80"}\r
+            islamic{"иÑ\81ламÑ\8bн Ñ\86аглаваÑ\80"}\r
+            iso8601{"ISO-8601 Ñ\86аглаваÑ\80"}\r
+            japanese{"Ñ\8fпон Ñ\86аглаваÑ\80"}\r
+            persian{"пеÑ\80Ñ\81 Ñ\86аглаваÑ\80"}\r
+            roc{"минго Ñ\86аглаваÑ\80"}\r
         }\r
         cf{\r
-            account{"Ð\9dÑ\8fгÑ\82лангийн Ð²Ð°Ð»Ñ\8eÑ\82Ñ\8bн Ñ\84оÑ\80маÑ\82"}\r
-            standard{"стандарт валютын формат"}\r
+            account{"мөнгөн Ñ\82Ñ\8dмдÑ\8dгÑ\82ийн Ð½Ñ\8fгÑ\82лан Ð±Ð¾Ð´Ð¾Ñ\85 Ð±Ò¯Ñ\80Ñ\82гÑ\8dлийн Ñ\85Ñ\8dлбÑ\8dÑ\80"}\r
+            standard{"мөнгөн тэмдэгтийн стандарт хэлбэр"}\r
         }\r
         collation{\r
             ducet{"юникодын үндсэн эрэмбэлэх дараалал"}\r
-            search{"ерөнхий зорилготой хайлт"}\r
+            search{"ерөнхий хайлт"}\r
             standard{"стандарт эрэмбэлэх дараалал"}\r
         }\r
         hc{\r
@@ -500,14 +500,14 @@ mn{
         }\r
         ms{\r
             metric{"метрийн систем"}\r
-            uksystem{"английн Ñ\85Ñ\8dмжүүÑ\80ийн систем"}\r
-            ussystem{"амеÑ\80ик Ñ\85Ñ\8dмжүүÑ\80ийн систем"}\r
+            uksystem{"Ð\90нгли Ð½Ñ\8dгжийн систем"}\r
+            ussystem{"Ð\90меÑ\80ик Ð½Ñ\8dгжийн систем"}\r
         }\r
         numbers{\r
             arab{"араб-энэтхэг тоо"}\r
             arabext{"өргөтгөсөн араб-энэтхэг тоо"}\r
-            armn{"армени тоо"}\r
-            armnlow{"жижиг армени тоо"}\r
+            armn{"армен тоо"}\r
+            armnlow{"жижиг армен тоо"}\r
             beng{"бенгал тоо"}\r
             deva{"деванагари тоо"}\r
             ethi{"этиоп тоо"}\r
@@ -516,7 +516,7 @@ mn{
             grek{"грек тоо"}\r
             greklow{"жижиг грек тоо"}\r
             gujr{"гүжарати тоо"}\r
-            guru{"гүрмүкхи тоо"}\r
+            guru{"гүрмүхи тоо"}\r
             hanidec{"хятад аравтын тоо"}\r
             hans{"хялбаршуулсан хятад тоо"}\r
             hansfin{"хялбаршуулсан хятад санхүүгийн тоо"}\r
@@ -537,12 +537,12 @@ mn{
             romanlow{"жижиг ром тоо"}\r
             taml{"уламжлалт тамил тоо"}\r
             tamldec{"тамил тоо"}\r
-            telu{"телүгү тоо"}\r
+            telu{"тэлүгү тоо"}\r
             thai{"тай тоо"}\r
             tibt{"төвд тоо"}\r
         }\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.94"}\r
     characterLabelPattern{\r
         all{"{0} - Бүгд"}\r
         category-list{"{0}: {1}"}\r
index 8298360..97f91e8 100644 (file)
@@ -835,7 +835,7 @@ mr{
         PINYIN{"पिनयिन रोमनायझेशन"}\r
         WADEGILE{"वादे-गिलेस रोमनायझेशन"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.65"}\r
     characterLabelPattern{\r
         all{"{0} — सर्व"}\r
         category-list{"{0}: {1}"}\r
index d1665ee..20e247d 100644 (file)
@@ -717,7 +717,7 @@ ms{
     Variants{\r
         POSIX{"Komputer"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.91"}\r
     characterLabelPattern{\r
         all{"{0} — Semua"}\r
         category-list{"{0}: {1}"}\r
index 00efdf2..900169b 100644 (file)
@@ -559,7 +559,7 @@ mt{
     Variants{\r
         REVISED{"Ortografija Irriveda"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.94"}\r
     codePatterns{\r
         language{"Lingwa: {0}"}\r
         script{"Skript: {0}"}\r
index ad2c6fd..4dd3d7c 100644 (file)
@@ -145,7 +145,7 @@ my{
         ha{"ဟာဥစာ"}\r
         haw{"ဟာဝိုင်ယီ"}\r
         he{"ဟီးဘရူး"}\r
-        hi{"á\80\9fá\80­á\80\94á\80¹ဒူ"}\r
+        hi{"á\80\9fá\80­á\80\94á\80ºဒူ"}\r
         hil{"ဟီလီဂေနွန်"}\r
         hmn{"မုံ"}\r
         hr{"ခရိုအေးရှား"}\r
@@ -189,13 +189,13 @@ my{
         khq{"ကိုရာ ချီအီနီ"}\r
         ki{"ကီကူယူ"}\r
         kj{"ကွန်းယာမာ"}\r
-        kk{"á\80\80á\80¬á\80\87á\80¬á\80\81á\80º"}\r
+        kk{"á\80\80á\80¬á\80\87á\80¬á\80\81á\80»"}\r
         kkj{"ကကို"}\r
         kl{"ကလာအ်လီဆပ်"}\r
         kln{"ကလန်ဂျင်"}\r
         km{"ခမာ"}\r
         kmb{"ကင်ဘွန်ဒူ"}\r
-        kn{"á\80\80á\80\94á\80¹နာဒါ"}\r
+        kn{"á\80\80á\80\94á\80ºနာဒါ"}\r
         ko{"ကိုရီးယား"}\r
         koi{"ကိုမီ-ပါမြက်"}\r
         kok{"ကွန်ကနီ"}\r
@@ -262,7 +262,7 @@ my{
         mt{"မော်လ်တာ"}\r
         mua{"မွန်ဒန်း"}\r
         mul{"ဘာသာစကား အမျိုးမျိုး"}\r
-        mus{"á\80\81á\80\9bá\80­á\80\81á\80º"}\r
+        mus{"á\80\81á\80\9bá\80­á\80\81á\80»"}\r
         mwl{"မီရန်ဒီးဇ်"}\r
         my{"မြန်မာ"}\r
         myv{"အီဇယာ"}\r
@@ -350,7 +350,7 @@ my{
         sma{"တောင် ဆာမိ"}\r
         smj{"လူလီ ဆာမိ"}\r
         smn{"အီနာရီ ဆာမိ"}\r
-        sms{"á\80\85á\80\81á\80­á\80¯á\80¸á\80\9cá\80º á\80\86á\80\99á\80ºá\80\99á\80®"}\r
+        sms{"á\80\85á\80\81á\80­á\80¯á\80¸á\80\9cá\80º á\80\86á\80¬á\80\99á\80­"}\r
         sn{"ရှိုနာ"}\r
         snk{"ဆိုနင်ကေး"}\r
         so{"ဆိုမာလီ"}\r
@@ -387,7 +387,7 @@ my{
         tt{"တာတာ"}\r
         tum{"တမ်ဘူကာ"}\r
         tvl{"တူဗာလူ"}\r
-        twq{"á\80\90á\80¬á\80\86á\80¬á\80\9dá\80«á\80\81á\80º"}\r
+        twq{"á\80\90á\80¬á\80\86á\80¬á\80\9dá\80«á\80\81á\80»"}\r
         ty{"တဟီတီ"}\r
         tyv{"တူဗန်"}\r
         tzm{"အလယ်အာ့တလာစ် တာမာဇိုက်"}\r
@@ -434,7 +434,7 @@ my{
         Armn{"အာမေးနီးယား"}\r
         Beng{"ဘင်္ဂါလီ"}\r
         Bopo{"ဘိုပို"}\r
-        Brah{"á\80\97á\80¼á\80\9fá\80¹မမီ"}\r
+        Brah{"á\80\97á\80½á\80\9fá\80ºမမီ"}\r
         Brai{"ဘရေ"}\r
         Cyrl{"စစ်ရိလစ်"}\r
         Deva{"ဒီဗနာဂရီ"}\r
@@ -457,7 +457,7 @@ my{
         Kali{"ကယားလီ"}\r
         Kana{"ခတခန"}\r
         Khmr{"ခမာ"}\r
-        Knda{"á\80\81á\80\94á\80¹နာဒါ"}\r
+        Knda{"á\80\81á\80\94á\80ºနာဒါ"}\r
         Kore{"ကိုရီးယား"}\r
         Laoo{"လာအို"}\r
         Latn{"လက်တင်"}\r
@@ -580,7 +580,7 @@ my{
         REVISED{"ပြန်လည်စီစစ်ထားသော ရေးထုံး"}\r
         SCOTLAND{"စကော့ စံ အင်္ဂလိပ်"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.88"}\r
     characterLabelPattern{\r
         all{"{0} — အားလုံး"}\r
         category-list{"{0} − {1}"}\r
index dd378c4..447e2e6 100644 (file)
@@ -265,7 +265,7 @@ mzn{
         Hans{"ساده‌بَیی هان"}\r
         Hant{"استاندارد ِسنتی هانت"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.41.34"}\r
     codePatterns{\r
         language{"زوون: {0}"}\r
         script{"اسکریپت: {0}"}\r
index 44f3b30..f3d162b 100644 (file)
@@ -741,7 +741,7 @@ nb{
         Ogam{"ogham"}\r
         Olck{"ol-chiki"}\r
         Orkh{"orkhon"}\r
-        Orya{"oriya"}\r
+        Orya{"odia"}\r
         Osma{"osmanya"}\r
         Palm{"palmyrensk"}\r
         Pauc{"pau cin hau"}\r
@@ -753,54 +753,6 @@ nb{
         Phnx{"fønikisk"}\r
         Plrd{"pollard-fonetisk"}\r
         Prti{"inskripsjonsparthisk"}\r
-        Qaaa{"qaaa"}\r
-        Qaab{"qaab"}\r
-        Qaac{"qaac"}\r
-        Qaad{"qaad"}\r
-        Qaae{"qaae"}\r
-        Qaaf{"qaaf"}\r
-        Qaag{"qaag"}\r
-        Qaah{"qaah"}\r
-        Qaak{"qaak"}\r
-        Qaal{"qaal"}\r
-        Qaam{"qaam"}\r
-        Qaan{"qaan"}\r
-        Qaao{"qaao"}\r
-        Qaap{"qaap"}\r
-        Qaaq{"qaaq"}\r
-        Qaar{"qaar"}\r
-        Qaas{"qaas"}\r
-        Qaat{"qaat"}\r
-        Qaau{"qaau"}\r
-        Qaav{"qaav"}\r
-        Qaaw{"qaaw"}\r
-        Qaax{"qaax"}\r
-        Qaay{"qaay"}\r
-        Qaaz{"qaaz"}\r
-        Qaba{"qaba"}\r
-        Qabb{"qabb"}\r
-        Qabc{"qabc"}\r
-        Qabd{"qabd"}\r
-        Qabe{"qabe"}\r
-        Qabf{"qafb"}\r
-        Qabg{"qabg"}\r
-        Qabh{"qabh"}\r
-        Qabi{"qabi"}\r
-        Qabj{"qabj"}\r
-        Qabk{"qabk"}\r
-        Qabl{"qabl"}\r
-        Qabm{"qabm"}\r
-        Qabn{"qabn"}\r
-        Qabo{"qabo"}\r
-        Qabp{"qabp"}\r
-        Qabq{"qabq"}\r
-        Qabr{"qabr"}\r
-        Qabs{"qabs"}\r
-        Qabt{"qabt"}\r
-        Qabu{"qabu"}\r
-        Qabv{"qabv"}\r
-        Qabw{"qabw"}\r
-        Qabx{"qabx"}\r
         Rjng{"rejang"}\r
         Roro{"rongorongo"}\r
         Runr{"runer"}\r
@@ -813,7 +765,7 @@ nb{
         Shrd{"sharada"}\r
         Sidd{"siddham"}\r
         Sind{"khudawadi"}\r
-        Sinh{"sinhala"}\r
+        Sinh{"singalesisk"}\r
         Sora{"sora sompeng"}\r
         Sund{"sundanesisk"}\r
         Sylo{"syloti nagri"}\r
@@ -1097,7 +1049,7 @@ nb{
         VALLADER{"vallader"}\r
         WADEGILE{"Wade-Giles-romanisering"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.2"}\r
     characterLabelPattern{\r
         all{"{0} – alt"}\r
         category-list{"{0}: {1}"}\r
index 5486d7d..46b3893 100644 (file)
@@ -110,7 +110,7 @@ ne{
         chp{"चिपेव्यान"}\r
         chr{"चेरोकी"}\r
         chy{"चेयेन्ने"}\r
-        ckb{"à¤\95à¥\87नà¥\8dदà¥\8dरà¥\80य à¤\95à¥\81रà¥\8dदà¥\80"}\r
+        ckb{"मधà¥\8dयवरà¥\8dतà¥\80 à¤\95à¥\81रà¥\8dदिस"}\r
         co{"कोर्सिकन"}\r
         cop{"कोप्टिक"}\r
         cps{"कापिज्नोन"}\r
@@ -226,6 +226,7 @@ ne{
         ho{"हिरी मोटु"}\r
         hr{"क्रोयसियाली"}\r
         hsb{"माथिल्लो सोर्बियन"}\r
+        hsn{"जियाङ चिनियाँ"}\r
         ht{"हैटियाली क्रियोल"}\r
         hu{"हङ्गेरियाली"}\r
         hup{"हुपा"}\r
@@ -797,7 +798,7 @@ ne{
         AREVELA{"पूर्वी आर्मेनियाली"}\r
         POSIX{"कम्प्युटर"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.50"}\r
     characterLabelPattern{\r
         all{"{0}-सबै"}\r
         category-list{"{0}: {1}"}\r
index 474383f..a7e103b 100644 (file)
@@ -660,6 +660,7 @@ nl{
         Cyrl{"Cyrillisch"}\r
         Cyrs{"Oudkerkslavisch Cyrillisch"}\r
         Deva{"Devanagari"}\r
+        Dogr{"Dogra"}\r
         Dsrt{"Deseret"}\r
         Dupl{"Duployan snelschrift"}\r
         Egyd{"Egyptisch demotisch"}\r
@@ -670,6 +671,7 @@ nl{
         Geok{"Georgisch Khutsuri"}\r
         Geor{"Georgisch"}\r
         Glag{"Glagolitisch"}\r
+        Gong{"Gunjala Gondi"}\r
         Gonm{"Masaram Gondi"}\r
         Goth{"Gothisch"}\r
         Gran{"Grantha"}\r
@@ -718,10 +720,12 @@ nl{
         Lyci{"Lycisch"}\r
         Lydi{"Lydisch"}\r
         Mahj{"Mahajani"}\r
+        Maka{"Makasar"}\r
         Mand{"Mandaeans"}\r
         Mani{"Manicheaans"}\r
         Marc{"Marchen"}\r
         Maya{"Mayahiërogliefen"}\r
+        Medf{"Medefaidrin"}\r
         Mend{"Mende"}\r
         Merc{"Meroitisch cursief"}\r
         Mero{"Meroïtisch"}\r
@@ -755,55 +759,8 @@ nl{
         Phnx{"Foenicisch"}\r
         Plrd{"Pollard-fonetisch"}\r
         Prti{"Inscriptioneel Parthisch"}\r
-        Qaaa{"Qaaa"}\r
-        Qaab{"Qaab"}\r
-        Qaac{"Qaac"}\r
-        Qaad{"Qaad"}\r
-        Qaae{"Qaae"}\r
-        Qaaf{"Qaaf"}\r
-        Qaag{"Qaag"}\r
-        Qaah{"Qaah"}\r
-        Qaak{"Qaak"}\r
-        Qaal{"Qaal"}\r
-        Qaam{"Qaam"}\r
-        Qaan{"Qaan"}\r
-        Qaao{"Qaao"}\r
-        Qaap{"Qaap"}\r
-        Qaaq{"Qaaq"}\r
-        Qaar{"Qaar"}\r
-        Qaas{"Qaas"}\r
-        Qaat{"Qaat"}\r
-        Qaau{"Qaau"}\r
-        Qaav{"Qaav"}\r
-        Qaaw{"Qaaw"}\r
-        Qaax{"Qaax"}\r
-        Qaay{"Qaay"}\r
-        Qaaz{"Qaaz"}\r
-        Qaba{"Qaba"}\r
-        Qabb{"Qabb"}\r
-        Qabc{"Qabc"}\r
-        Qabd{"Qabd"}\r
-        Qabe{"Qabe"}\r
-        Qabf{"Qabf"}\r
-        Qabg{"Qabg"}\r
-        Qabh{"Qabh"}\r
-        Qabi{"Qabi"}\r
-        Qabj{"Qabj"}\r
-        Qabk{"Qabk"}\r
-        Qabl{"Qabl"}\r
-        Qabm{"Qabm"}\r
-        Qabn{"Qabn"}\r
-        Qabo{"Qabo"}\r
-        Qabp{"Qabp"}\r
-        Qabq{"Qabq"}\r
-        Qabr{"Qabr"}\r
-        Qabs{"Qabs"}\r
-        Qabt{"Qabt"}\r
-        Qabu{"Qabu"}\r
-        Qabv{"Qabv"}\r
-        Qabw{"Qabw"}\r
-        Qabx{"Qabx"}\r
         Rjng{"Rejang"}\r
+        Rohg{"Hanifi Rohingya"}\r
         Roro{"Rongorongo"}\r
         Runr{"Runic"}\r
         Samr{"Samaritaans"}\r
@@ -816,6 +773,8 @@ nl{
         Sidd{"Siddham"}\r
         Sind{"Sindhi"}\r
         Sinh{"Singalees"}\r
+        Sogd{"Sogdisch"}\r
+        Sogo{"Oud Sogdisch"}\r
         Sora{"Sora Sompeng"}\r
         Soyo{"Soyombo"}\r
         Sund{"Soendanees"}\r
@@ -982,6 +941,7 @@ nl{
             finance{"Financiële cijfers"}\r
             fullwide{"cijfers met volledige breedte"}\r
             geor{"Georgische cijfers"}\r
+            gong{"Gunjala Gondi cijfers"}\r
             gonm{"Masaram Gondi cijfers"}\r
             grek{"Griekse cijfers"}\r
             greklow{"kleine Griekse cijfers"}\r
@@ -1024,6 +984,7 @@ nl{
             olck{"Ol Chiki cijfers"}\r
             orya{"Odia cijfers"}\r
             osma{"Osmanya cijfers"}\r
+            rohg{"Hanifi Rohingya cijfers"}\r
             roman{"Romeinse cijfers"}\r
             romanlow{"kleine Romeinse cijfers"}\r
             saur{"Saurashtra cijfers"}\r
@@ -1053,11 +1014,13 @@ nl{
         1994{"Gestandaardiseerde Resiaanse spelling"}\r
         1996{"Duitse spelling van 1996"}\r
         ABL1943{"Spellingsformulering van 1943"}\r
+        AKUAPEM{"Akuapem"}\r
         ALALC97{"Romanisering ALA-LC, editie 1997"}\r
         ALUKU{"Aloekoe-dialect"}\r
         AO1990{"Portugese spellingsovereenkomst van 1990"}\r
         AREVELA{"Oost-Armeens"}\r
         AREVMDA{"West-Armeens"}\r
+        ASANTE{"Asante"}\r
         BAKU1926{"Eenvormig Turkse Latijnse alfabet"}\r
         BALANKA{"Balanka-dialect van Anii"}\r
         BARLA{"Barlavento-dialectgroep van Kabuverdianu"}\r
@@ -1081,6 +1044,7 @@ nl{
         HSISTEMO{"H-sistemo"}\r
         IJEKAVSK{"Servisch met Ijekaviaanse uitspraak"}\r
         ITIHASA{"Episch Sanskriet"}\r
+        IVANCHOV{"Ivanchov"}\r
         JAUER{"Jauer"}\r
         JYUTPING{"Jyutping"}\r
         KKCOR{"Algemene spelling"}\r
@@ -1132,7 +1096,7 @@ nl{
         WADEGILE{"Wade-Giles-romanisering"}\r
         XSISTEMO{"X-sistemo"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.45.14"}\r
     characterLabelPattern{\r
         all{"{0} — alle"}\r
         category-list{"{0}: {1}"}\r
index 8e91a47..91f3e65 100644 (file)
@@ -761,7 +761,7 @@ nn{
         TARASK{"taraskievica-ortografi"}\r
         VALENCIA{"valensisk dialekt"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.94"}\r
     characterLabelPattern{\r
         all{"{0} – alt"}\r
         category-list{"{0}: {1}"}\r
index bddfc28..6ee335b 100644 (file)
@@ -92,5 +92,5 @@ om{
     Scripts{\r
         Latn{"Latin"}\r
     }\r
-    Version{"2.1.38.69"}\r
+    Version{"2.1.43.94"}\r
 }\r
index ff24b91..c5bb883 100644 (file)
@@ -44,7 +44,7 @@ or{
         awa{"ଆୱାଧି"}\r
         ay{"ଆୟମାରା"}\r
         az{"ଆଜେରବାଇଜାନି"}\r
-        ba{"ବାଶକିର୍"}\r
+        ba{"ବାଶକିର୍"}\r
         bal{"ବାଲୁଚି"}\r
         ban{"ବାଲିନୀଜ୍"}\r
         bas{"ବାସା"}\r
@@ -59,12 +59,12 @@ or{
         bin{"ବିନି"}\r
         bla{"ସିକସିକା"}\r
         bm{"ବାମ୍ବାରା"}\r
-        bn{"ବà¬\99à­\8dà¬\97ାଳà­\80"}\r
+        bn{"ବà¬\99à­\8dà¬\97ଳା"}\r
         bo{"ତିବ୍ବତୀୟ"}\r
         br{"ବ୍ରେଟନ୍"}\r
         bra{"ବ୍ରାଜ୍"}\r
         brx{"ବୋଡୋ"}\r
-        bs{"à¬\95ାà¬\9fଲାନ୍"}\r
+        bs{"ବà­\8bସନିà¬\86ନ୍"}\r
         bua{"ବୁରିଆଟ୍"}\r
         bug{"ବୁଗୀନୀଜ୍"}\r
         byn{"ବ୍ଲିନ୍"}\r
@@ -206,7 +206,7 @@ or{
         io{"ଇଡୋ"}\r
         is{"ଆଇସଲାଣ୍ଡିକ୍"}\r
         it{"ଇଟାଲୀୟ"}\r
-        iu{"ଇନୁକଟୁତ୍‌"}\r
+        iu{"à¬\87ନà­\81à¬\95à¬\9fିà¬\9fà­\81ତà­\8dâ\80\8c"}\r
         ja{"ଜାପାନୀ"}\r
         jbo{"ଲୋଜବାନ୍"}\r
         jgo{"ନାଗୋମ୍ଵା"}\r
@@ -419,7 +419,7 @@ or{
         sma{"ଦକ୍ଷିଣ ସାମି"}\r
         smj{"ଲୁଲେ ସାମି"}\r
         smn{"ଇନାରୀ ସାମି"}\r
-        sms{"ସà­\8dà¬\95à­\8bଲà­\8dà¬\9f à¬¸à¬¾à¬®à­\80"}\r
+        sms{"ସà­\8dà¬\95à­\8bଲà­\8dà¬\9f à¬¸à¬¾à¬®à¬¿"}\r
         sn{"ଶୋନା"}\r
         snk{"ସୋନିଙ୍କେ"}\r
         so{"ସୋମାଲିଆ"}\r
@@ -551,7 +551,7 @@ or{
         Egyd{"ଇଜିପ୍ଟିଆନ୍ ଡେମୋଟିକ୍"}\r
         Egyh{"ଇଜିପ୍ଟିଆନ୍ ହାଇଅରଟିକ୍"}\r
         Egyp{"ଇଜିପ୍ଟିଆନ୍ ହାଅରଗ୍ଲିପସ୍"}\r
-        Ethi{"à¬\87ଥà­\8bପିà¬\95à­\8d"}\r
+        Ethi{"à¬\87ଥିà¬\93ପିà¬\95à­\8dâ\80\8c"}\r
         Geok{"ଜର୍ଜିଆନ୍ ଖୁଟସୁରୀ"}\r
         Geor{"ଜର୍ଜିୟ"}\r
         Glag{"ଗ୍ଲାଗ୍ଲୋଟିକ୍"}\r
@@ -597,7 +597,7 @@ or{
         Mani{"ମନଶୀନ୍"}\r
         Maya{"ମୟାନ୍ ହାୟରଲଜିକସ୍"}\r
         Mero{"ମେରୋଇଟିକ୍"}\r
-        Mlym{"ମଲà­\9fାଲମ୍"}\r
+        Mlym{"ମାଲାà­\9fଲମ୍"}\r
         Mong{"ମଙ୍ଗୋଲିଆନ୍"}\r
         Moon{"ଚନ୍ଦ୍ର"}\r
         Mtei{"ମାଏତି ମାୟେକ୍"}\r
@@ -624,7 +624,7 @@ or{
         Saur{"ସୌରାଷ୍ଟ୍ର"}\r
         Sgnw{"ସାଙ୍କେତିକ ଲିଖ"}\r
         Shaw{"ସାବିୟାନ୍"}\r
-        Sinh{"ସିà¬\82ହାଲା"}\r
+        Sinh{"ସିà¬\82ହଳ"}\r
         Sund{"ସୁଦାନୀଜ୍"}\r
         Sylo{"ସୀଲିତୋ ନଗରୀ"}\r
         Syrc{"ସିରିୟାକ୍"}\r
@@ -738,7 +738,7 @@ or{
             tibt{"ତିବତୀ ଅଙ୍କଗୁଡ଼ିକ"}\r
         }\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.65"}\r
     characterLabelPattern{\r
         all{"{0} — ସମସ୍ତ"}\r
         category-list{"{0}: {1}"}\r
index a2b17b3..fb6f220 100644 (file)
@@ -102,7 +102,9 @@ pa{
         en_US{"ਅੰਗਰੇਜ਼ੀ (ਅਮਰੀਕੀ)"}\r
         eo{"ਇਸਪੇਰਾਂਟੋ"}\r
         es{"ਸਪੇਨੀ"}\r
+        es_419{"ਸਪੇਨੀ (ਲਾਤੀਨੀ ਅਮਰੀਕੀ)"}\r
         es_ES{"ਸਪੇਨੀ (ਯੂਰਪੀ)"}\r
+        es_MX{"ਸਪੇਨੀ (ਮੈਕਸੀਕੀ)"}\r
         et{"ਇਸਟੋਨੀਆਈ"}\r
         eu{"ਬਾਸਕ"}\r
         ewo{"ਇਵੋਂਡੋ"}\r
@@ -200,7 +202,7 @@ pa{
         ksb{"ਸ਼ੰਬਾਲਾ"}\r
         ksf{"ਬਫ਼ੀਆ"}\r
         ksh{"ਕਲੋਗਨੀਅਨ"}\r
-        ku{"ਕੁਰਦ"}\r
+        ku{"ਕੁਰਦਿਸ਼"}\r
         kum{"ਕੁਮੀਕ"}\r
         kv{"ਕੋਮੀ"}\r
         kw{"ਕੋਰਨਿਸ਼"}\r
@@ -389,7 +391,7 @@ pa{
         uk{"ਯੂਕਰੇਨੀਆਈ"}\r
         umb{"ਉਮਬੁੰਡੂ"}\r
         und{"ਅਣਪਛਾਤੀ ਬੋਲੀ"}\r
-        ur{"à¨\89à©\9cਦੂ"}\r
+        ur{"à¨\89ਰਦੂ"}\r
         uz{"ਉਜ਼ਬੇਕ"}\r
         vai{"ਵਾਈ"}\r
         ve{"ਵੇਂਡਾ"}\r
@@ -423,7 +425,7 @@ pa{
     Languages%short{\r
         az{"ਅਜ਼ੇਰੀ"}\r
         en_GB{"ਅੰਗਰੇਜ਼ੀ (ਯੂ.ਕੇ.)"}\r
-        en_US{"ਅੰਗਰੇਜ਼ੀ (ਯੂ.ਐਸ.)"}\r
+        en_US{"à¨\85à©°à¨\97ਰà©\87à¨\9c਼à©\80 (ਯà©\82.à¨\90ੱਸ.)"}\r
     }\r
     Scripts{\r
         Arab{"ਅਰਬੀ"}\r
@@ -545,8 +547,8 @@ pa{
             hant{"ਰਵਾਇਤੀ ਚੀਨੀ ਸੰਖਿਆਵਾਂ"}\r
             hantfin{"ਰਵਾਇਤੀ ਚੀਨੀ ਵਿੱਤੀ ਸੰਖਿਆਵਾਂ"}\r
             hebr{"ਹਿਬਰੂ ਸੰਖਿਆਵਾਂ"}\r
-            jpan{"à¨\9cਾਪਾਨà©\80 à¨¸à©°à¨\96ਿà¨\86ਵਾà¨\82"}\r
-            jpanfin{"à¨\9cਾਪਾਨà©\80 à¨µà¨¿à©±à¨¤à©\80 à¨¸à©°à¨\96ਿà¨\86ਵਾà¨\82"}\r
+            jpan{"ਜਪਾਨੀ ਸੰਖਿਆਵਾਂ"}\r
+            jpanfin{"ਜਪਾਨੀ ਵਿੱਤੀ ਸੰਖਿਆਵਾਂ"}\r
             khmr{"ਖਮੇਰ ਅੰਕ"}\r
             knda{"ਕੰਨੜ ਅੰਕ"}\r
             laoo{"ਲਾਓ ਅੰਕ"}\r
@@ -564,7 +566,7 @@ pa{
             tibt{"ਤਿੱਬਤੀ ਅੰਕ"}\r
         }\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.65"}\r
     characterLabelPattern{\r
         all{"{0} — ਸਭ"}\r
         category-list{"{0}: {1}"}\r
@@ -574,7 +576,7 @@ pa{
         historic{"{0} — ਇਤਿਹਾਸਕ"}\r
         miscellaneous{"{0} — ਫੁਟਕਲ"}\r
         other{"{0} — ਹੋਰ"}\r
-        scripts{"ਲਿੱਪà©\80à¨\86à¨\82 â\80\94 {0}"}\r
+        scripts{"ਲਿਪੀਆਂ — {0}"}\r
         strokes{\r
             one{"{0} ਸਟਰੋਕ"}\r
             other{"{0} ਸਟਰੋਕ"}\r
index e1155f2..7faf7bd 100644 (file)
@@ -81,7 +81,7 @@ pl{
         bfq{"badaga"}\r
         bg{"bułgarski"}\r
         bgn{"beludżi północny"}\r
-        bho{"bhodźpuri"}\r
+        bho{"bhodżpuri"}\r
         bi{"bislama"}\r
         bik{"bikol"}\r
         bin{"bini"}\r
@@ -355,7 +355,7 @@ pl{
         lv{"łotewski"}\r
         lzh{"chiński klasyczny"}\r
         lzz{"lazyjski"}\r
-        mad{"madurajski"}\r
+        mad{"madurski"}\r
         maf{"mafa"}\r
         mag{"magahi"}\r
         mai{"maithili"}\r
@@ -397,7 +397,7 @@ pl{
         mye{"myene"}\r
         myv{"erzja"}\r
         mzn{"mazanderański"}\r
-        na{"nauru"}\r
+        na{"nauruański"}\r
         nan{"minnański"}\r
         nap{"neapolitański"}\r
         naq{"nama"}\r
@@ -439,7 +439,7 @@ pl{
         osa{"osage"}\r
         ota{"osmańsko-turecki"}\r
         pa{"pendżabski"}\r
-        pag{"pangasino"}\r
+        pag{"pangasinan"}\r
         pal{"pahlavi"}\r
         pam{"pampango"}\r
         pap{"papiamento"}\r
@@ -966,7 +966,7 @@ pl{
         VALENCIA{"walencki"}\r
         WADEGILE{"latynizacja Wade’a i Gilesa"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.50"}\r
     characterLabelPattern{\r
         all{"{0} — wszystko"}\r
         category-list{"{0}: {1}"}\r
index 08c3d35..00b42ad 100644 (file)
Binary files a/source/data/lang/pool.res and b/source/data/lang/pool.res differ
index 4255a45..2ad0d1a 100644 (file)
@@ -79,7 +79,6 @@ ps{
         dar{"درگوا"}\r
         dav{"ټایټا"}\r
         de{"الماني"}\r
-        de_AT{"آسترالیا آلمان"}\r
         de_CH{"سوئس لوی جرمن"}\r
         dgr{"داگرب"}\r
         dje{"زرما"}\r
@@ -95,15 +94,15 @@ ps{
         eka{"اکجک"}\r
         el{"یوناني"}\r
         en{"انګریزي"}\r
-        en_AU{"انګریزي (AU)"}\r
+        en_AU{"انګليسي (AU)"}\r
         en_CA{"کاناډايي انګلیسي"}\r
-        en_GB{"برتانوی انګلیسي"}\r
-        en_US{"انګریزي (US)"}\r
+        en_GB{"بريتانوی انګلیسي"}\r
+        en_US{"انګليسي (US)"}\r
         eo{"اسپرانتو"}\r
         es{"هسپانوي"}\r
-        es_419{"لاتیني امریکایي اسپانوی"}\r
-        es_ES{"اروپایی اسپانوی"}\r
-        es_MX{"مکسیکو اسپانوی"}\r
+        es_419{"لاتيني امريکايي هسپانوي"}\r
+        es_ES{"اروپايي هسپانوي"}\r
+        es_MX{"ميکسيکو هسپانوي"}\r
         et{"حبشي"}\r
         eu{"باسکي"}\r
         ewo{"اوونڊو"}\r
@@ -115,8 +114,6 @@ ps{
         fo{"فاروئې"}\r
         fon{"فان"}\r
         fr{"فرانسوي"}\r
-        fr_CA{"کاناډا فرانسي"}\r
-        fr_CH{"سویس فرانسي"}\r
         fur{"فرائیلیین"}\r
         fy{"فريزي"}\r
         ga{"ائيرلېنډي"}\r
@@ -145,6 +142,7 @@ ps{
         hup{"ھوپا"}\r
         hy{"ارمني"}\r
         hz{"هیرورو"}\r
+        ia{"انټرلنګوا"}\r
         iba{"ابن"}\r
         ibb{"ابیبیو"}\r
         id{"انډونېزي"}\r
@@ -373,6 +371,7 @@ ps{
         uk{"اوکرانايي"}\r
         umb{"امبوندو"}\r
         und{"نامعلومه ژبه"}\r
+        ur{"اردو"}\r
         uz{"اوزبکي"}\r
         vai{"وای"}\r
         ve{"ویندا"}\r
@@ -403,8 +402,8 @@ ps{
     }\r
     Languages%short{\r
         az{"اذري"}\r
-        en_GB{"انګریزي (GB)"}\r
-        en_US{"انګریزي (US)"}\r
+        en_GB{"انګليسي (GB)"}\r
+        en_US{"انګليسي (US)"}\r
     }\r
     Scripts{\r
         Arab{"عربي"}\r
@@ -434,7 +433,7 @@ ps{
         Knda{"کناډا"}\r
         Kore{"کوریایی"}\r
         Laoo{"لاوو"}\r
-        Latn{"لاتین"}\r
+        Latn{"لاتين/لاتيني"}\r
         Mlym{"مالایالم"}\r
         Mong{"منګولیایي"}\r
         Mymr{"میانمار"}\r
@@ -448,7 +447,7 @@ ps{
         Zmth{"د ریاضیاتو نوټیشن"}\r
         Zsye{"ایموجي"}\r
         Zsym{"سمبولونه"}\r
-        Zxxx{"ناڅاپه"}\r
+        Zxxx{"ناليکلی"}\r
         Zyyy{"عام"}\r
         Zzzz{"نامعلومه سکرېپټ"}\r
     }\r
@@ -462,12 +461,12 @@ ps{
             chinese{"د چين جنتري"}\r
             dangi{"ډانګي جنتري"}\r
             ethiopic{"ایتوپيک جنتري"}\r
-            gregorian{"د ګریګوریا کښته"}\r
+            gregorian{"ګريګورين جنتري"}\r
             hebrew{"جورجویان جنتري"}\r
-            islamic{"د Ø§Ø³Ù\84اÙ\85Ù\8a Ø¬Ù\86ترÙ\8a"}\r
+            islamic{"اسلامي جنتري"}\r
             islamic-civil{"د اسلامي جنتري (جدولي، د مدني عصر)"}\r
-            islamic-tbla{"د Ø§Ø³Ù\84اÙ\85Ù\8a Ø¬Ù\86ترÙ\8a (جدÙ\88Ù\84Ù\8aØ\8c Ø³ØªÙ\88رپÙ\88Ù\87Ù\86Ù\8aزÙ\87 Ø¨Ø±Ø®Ù\87)"}\r
-            iso8601{"ISO-8601 Calendar"}\r
+            islamic-tbla{"اسÙ\84اÙ\85Ù\8a Ø¬Ù\86ترÙ\8a (جدÙ\88Ù\84Ù\8aØ\8c Ø³ØªÙ\88رپÙ\88Ù\87Ù\86Ù\8aز Ø¹ØµØ±)"}\r
+            iso8601{"ISO-8601 جنتري"}\r
             japanese{"د جاپاني جنتري"}\r
             persian{"د فارسي جنتري"}\r
             roc{"منگوو جنتري"}\r
@@ -479,7 +478,7 @@ ps{
         collation{\r
             ducet{"ڊفالٽ یونیکوډ ترتیب"}\r
             search{"عمومي موخو د لټون"}\r
-            standard{"معیاري ترتیب ترتیب"}\r
+            standard{"معياري د لټې ترتيب"}\r
         }\r
         hc{\r
             h11{"h11"}\r
@@ -498,8 +497,8 @@ ps{
             ussystem{"ussystem"}\r
         }\r
         numbers{\r
-            arab{"عربي - انډیک ډایټونه"}\r
-            arabext{"پراخ شوی عربي - هندیک ډایټونه"}\r
+            arab{"عربي - انډیک عددونه"}\r
+            arabext{"غځېدلې عربي ۔ اينډيک عدد"}\r
             armn{"armn"}\r
             armnlow{"armnlow"}\r
             beng{"beng"}\r
@@ -522,7 +521,7 @@ ps{
             khmr{"khmr"}\r
             knda{"knda"}\r
             laoo{"laoo"}\r
-            latn{"لویدیځ ډایټونه"}\r
+            latn{"لويديځ عددونه"}\r
             mlym{"mlym"}\r
             mymr{"mymr"}\r
             orya{"orya"}\r
@@ -535,16 +534,16 @@ ps{
             tibt{"tibt"}\r
         }\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.94"}\r
     characterLabelPattern{\r
         all{"{0} - ټول"}\r
         category-list{"{0}: {1}"}\r
         compatibility{"{0} - مطابقت"}\r
         enclosed{"{0} - منسلک"}\r
-        extended{"{0} - پراخ شوی"}\r
+        extended{"{0} - غځېدلی"}\r
         historic{"{0} - تاريخي"}\r
         miscellaneous{"{0} - متفرقه"}\r
-        other{"{0} - د نورو"}\r
+        other{"{0} - نورو"}\r
         scripts{"سکرېپټونه - {0}"}\r
         strokes{\r
             one{"{0} استروک"}\r
index fba2461..3f668bb 100644 (file)
@@ -36,7 +36,7 @@ pt{
         ak{"akan"}\r
         akk{"acadiano"}\r
         ale{"aleúte"}\r
-        alt{"altai do sul"}\r
+        alt{"altai meridional"}\r
         am{"amárico"}\r
         an{"aragonês"}\r
         ang{"inglês arcaico"}\r
@@ -46,7 +46,7 @@ pt{
         arc{"aramaico"}\r
         arn{"mapudungun"}\r
         arp{"arapaho"}\r
-        ars{"árabe - Négede"}\r
+        ars{"árabe négede"}\r
         arw{"arauaqui"}\r
         as{"assamês"}\r
         asa{"asu"}\r
@@ -104,7 +104,7 @@ pt{
         chn{"jargão Chinook"}\r
         cho{"choctaw"}\r
         chp{"chipewyan"}\r
-        chr{"cherokee"}\r
+        chr{"cheroqui"}\r
         chy{"cheiene"}\r
         ckb{"curdo central"}\r
         co{"corso"}\r
@@ -241,7 +241,7 @@ pt{
         kbl{"kanembu"}\r
         kcg{"tyap"}\r
         kde{"maconde"}\r
-        kea{"kabuverdianu"}\r
+        kea{"crioulo cabo-verdiano"}\r
         kfo{"koro"}\r
         kg{"congolês"}\r
         kha{"khasi"}\r
@@ -441,7 +441,7 @@ pt{
         sk{"eslovaco"}\r
         sl{"esloveno"}\r
         sm{"samoano"}\r
-        sma{"sami do sul"}\r
+        sma{"sami meridional"}\r
         smj{"sami de Lule"}\r
         smn{"sami de Inari"}\r
         sms{"sami de Skolt"}\r
@@ -786,8 +786,8 @@ pt{
             strict{"Quebra de linha com estilo estrito"}\r
         }\r
         m0{\r
-            bgn{"BGN"}\r
-            ungegn{"UNGEGN"}\r
+            bgn{"Transliteração BGN EUA"}\r
+            ungegn{"Transliteração UN GEGN"}\r
         }\r
         ms{\r
             metric{"Sistema métrico"}\r
@@ -880,19 +880,19 @@ pt{
         VALENCIA{"valenciano"}\r
         WADEGILE{"romanização Wade-Giles"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.65"}\r
     characterLabelPattern{\r
-        all{"{0} — Tudo"}\r
+        all{"{0} — todos"}\r
         category-list{"{0}: {1}"}\r
-        compatibility{"{0} — Compatibilidade"}\r
-        enclosed{"{0} — Incluso"}\r
-        extended{"{0} — Estendido"}\r
-        historic{"{0} — Histórico"}\r
-        miscellaneous{"{0} — Diverso"}\r
-        other{"{0} — Outro"}\r
-        scripts{"Escritas — {0}"}\r
+        compatibility{"{0} — compatibilidade"}\r
+        enclosed{"{0} — fechado"}\r
+        extended{"{0} — estendido"}\r
+        historic{"{0} — histórico"}\r
+        miscellaneous{"{0} — diversos"}\r
+        other{"{0} — outro"}\r
+        scripts{"escritas — {0}"}\r
         strokes{\r
-            one{"{0} traços"}\r
+            one{"{0} traço"}\r
             other{"{0} traços"}\r
         }\r
     }\r
index a0dd4d0..d181569 100644 (file)
@@ -14,6 +14,7 @@ pt_PT{
     }\r
     Languages{\r
         af{"africanês"}\r
+        alt{"altai do sul"}\r
         ang{"inglês antigo"}\r
         ar_001{"árabe moderno padrão"}\r
         arn{"mapuche"}\r
@@ -21,9 +22,11 @@ pt_PT{
         av{"avaric"}\r
         bax{"bamun"}\r
         bbj{"ghomala"}\r
+        bn{"bengalês"}\r
         bua{"buriat"}\r
         chk{"chuquês"}\r
         chn{"jargão chinook"}\r
+        chr{"cherokee"}\r
         chy{"cheyenne"}\r
         ckb{"sorani curdo"}\r
         co{"córsico"}\r
@@ -57,7 +60,7 @@ pt_PT{
         hi{"hindi"}\r
         hy{"arménio"}\r
         kbd{"cabardiano"}\r
-        kea{"crioulo cabo-verdiano"}\r
+        kl{"gronelandês"}\r
         krc{"carachaio-bálcaro"}\r
         lez{"lezghiano"}\r
         lg{"ganda"}\r
@@ -72,7 +75,7 @@ pt_PT{
         nb{"norueguês bokmål"}\r
         nds{"baixo-alemão"}\r
         nds_NL{"baixo-saxão"}\r
-        ne{"nepali"}\r
+        nl{"neerlandês"}\r
         nn{"norueguês nynorsk"}\r
         non{"nórdico antigo"}\r
         oc{"occitano"}\r
@@ -92,6 +95,7 @@ pt_PT{
         se{"sami do norte"}\r
         sga{"irlandês antigo"}\r
         shu{"árabe do Chade"}\r
+        sma{"sami do sul"}\r
         smn{"inari sami"}\r
         sn{"shona"}\r
         te{"telugu"}\r
@@ -116,8 +120,10 @@ pt_PT{
     }\r
     Scripts{\r
         Armn{"arménio"}\r
+        Beng{"bengalês"}\r
         Egyd{"egípcio demótico"}\r
         Egyh{"egípcio hierático"}\r
+        Ethi{"etíope"}\r
         Hanb{"han com bopomofo"}\r
         Inds{"indus"}\r
         Orya{"odia"}\r
@@ -232,7 +238,7 @@ pt_PT{
             hebr{"Numeração hebraica"}\r
             jpan{"Numeração japonesa"}\r
             jpanfin{"Numeração financeira japonesa"}\r
-            khmr{"Algarismos de cmer"}\r
+            khmr{"Algarismos de khmer"}\r
             knda{"Algarismos de canarim"}\r
             mlym{"Algarismos de malaiala"}\r
             mymr{"Algarismos birmaneses"}\r
@@ -251,7 +257,7 @@ pt_PT{
         MONOTON{"monotónico"}\r
         POLYTON{"politónico"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.9"}\r
     characterLabelPattern{\r
         all{"{0} – tudo"}\r
         compatibility{"{0} – compatibilidade"}\r
index 2bd1b8d..a06f8a2 100644 (file)
@@ -7,6 +7,7 @@ qu{
         ar{"Arabe Simi"}\r
         arn{"Mapuche Simi"}\r
         as{"Asames Simi"}\r
+        ay{"Aymara Simi"}\r
         az{"Azerbaiyano Simi"}\r
         ba{"Baskir Simi"}\r
         be{"Bielorruso Simi"}\r
@@ -28,6 +29,7 @@ qu{
         el{"Griego Simi"}\r
         en{"Ingles Simi"}\r
         es{"Español Simi"}\r
+        es_419{"Español Simi (Latino América)"}\r
         et{"Estonio Simi"}\r
         eu{"Euskera Simi"}\r
         fa{"Persa Simi"}\r
@@ -110,6 +112,7 @@ qu{
         sr{"Serbio Simi"}\r
         sv{"Sueco Simi"}\r
         sw{"Suajili Simi"}\r
+        sw_CD{"Suajili Simi (Congo (RDC))"}\r
         syr{"Siriaco Simi"}\r
         ta{"Tamil Simi"}\r
         te{"Telugu Simi"}\r
@@ -131,8 +134,12 @@ qu{
         zh{"Chino Simi"}\r
         zu{"Isizulu Simi"}\r
     }\r
+    Languages%short{\r
+        en_GB{"Ingles Simi (GB)"}\r
+        en_US{"Ingles Simi (US)"}\r
+    }\r
     Variants{\r
         VALENCIA{"Valenciano Simi"}\r
     }\r
-    Version{"2.1.38.72"}\r
+    Version{"2.1.43.94"}\r
 }\r
index 43cdcb4..46e28db 100644 (file)
@@ -1,6 +1,6 @@
 # © 2016 and later: Unicode, Inc. and others.\r
 # License & terms of use: http://www.unicode.org/copyright.html#License\r
-LANG_CLDR_VERSION = 33.1\r
+LANG_CLDR_VERSION = 34\r
 # A list of txt's to build\r
 # Note:\r
 #\r
@@ -87,39 +87,40 @@ LANG_SOURCE = af.txt agq.txt ak.txt am.txt\
  fur.txt fy.txt ga.txt gd.txt gl.txt\\r
  gsw.txt gu.txt guz.txt gv.txt ha.txt\\r
  haw.txt he.txt hi.txt hr.txt hsb.txt\\r
- hu.txt hy.txt id.txt ig.txt ii.txt\\r
- is.txt it.txt ja.txt jgo.txt jmc.txt\\r
- ka.txt kab.txt kam.txt kde.txt kea.txt\\r
- khq.txt ki.txt kk.txt kkj.txt kl.txt\\r
- kln.txt km.txt kn.txt ko.txt kok.txt\\r
- ks.txt ksb.txt ksf.txt ksh.txt kw.txt\\r
- ky.txt lag.txt lb.txt lg.txt lkt.txt\\r
- ln.txt lo.txt lrc.txt lt.txt lu.txt\\r
- luo.txt luy.txt lv.txt mas.txt mer.txt\\r
- mfe.txt mg.txt mgh.txt mgo.txt mk.txt\\r
- ml.txt mn.txt mr.txt ms.txt mt.txt\\r
- mua.txt my.txt mzn.txt naq.txt nb.txt\\r
- nd.txt nds.txt ne.txt nl.txt nmg.txt\\r
- nn.txt nnh.txt nus.txt nyn.txt om.txt\\r
- or.txt os.txt pa.txt pa_Arab.txt pa_Guru.txt\\r
- pl.txt ps.txt pt.txt pt_AO.txt pt_CH.txt\\r
- pt_CV.txt pt_GQ.txt pt_GW.txt pt_LU.txt pt_MO.txt\\r
- pt_MZ.txt pt_PT.txt pt_ST.txt pt_TL.txt qu.txt\\r
- rm.txt rn.txt ro.txt ro_MD.txt rof.txt\\r
- ru.txt rw.txt rwk.txt sah.txt saq.txt\\r
- sbp.txt se.txt se_FI.txt seh.txt ses.txt\\r
+ hu.txt hy.txt ia.txt id.txt ig.txt\\r
+ ii.txt is.txt it.txt ja.txt jgo.txt\\r
+ jmc.txt jv.txt ka.txt kab.txt kam.txt\\r
+ kde.txt kea.txt khq.txt ki.txt kk.txt\\r
+ kkj.txt kl.txt kln.txt km.txt kn.txt\\r
+ ko.txt kok.txt ks.txt ksb.txt ksf.txt\\r
+ ksh.txt ku.txt kw.txt ky.txt lag.txt\\r
+ lb.txt lg.txt lkt.txt ln.txt lo.txt\\r
+ lrc.txt lt.txt lu.txt luo.txt luy.txt\\r
+ lv.txt mas.txt mer.txt mfe.txt mg.txt\\r
+ mgh.txt mgo.txt mi.txt mk.txt ml.txt\\r
+ mn.txt mr.txt ms.txt mt.txt mua.txt\\r
+ my.txt mzn.txt naq.txt nb.txt nd.txt\\r
+ nds.txt ne.txt nl.txt nmg.txt nn.txt\\r
+ nnh.txt nus.txt nyn.txt om.txt or.txt\\r
+ os.txt pa.txt pa_Arab.txt pa_Guru.txt pl.txt\\r
+ ps.txt pt.txt pt_AO.txt pt_CH.txt pt_CV.txt\\r
+ pt_GQ.txt pt_GW.txt pt_LU.txt pt_MO.txt pt_MZ.txt\\r
+ pt_PT.txt pt_ST.txt pt_TL.txt qu.txt rm.txt\\r
+ rn.txt ro.txt ro_MD.txt rof.txt ru.txt\\r
+ rw.txt rwk.txt sah.txt saq.txt sbp.txt\\r
+ sd.txt se.txt se_FI.txt seh.txt ses.txt\\r
  sg.txt shi.txt shi_Latn.txt shi_Tfng.txt si.txt\\r
  sk.txt sl.txt smn.txt sn.txt so.txt\\r
  sq.txt sr.txt sr_Cyrl.txt sr_Cyrl_BA.txt sr_Cyrl_ME.txt\\r
  sr_Cyrl_XK.txt sr_Latn.txt sr_Latn_BA.txt sr_Latn_ME.txt sr_Latn_XK.txt\\r
  sv.txt sv_FI.txt sw.txt sw_CD.txt sw_KE.txt\\r
  ta.txt te.txt teo.txt tg.txt th.txt\\r
- ti.txt to.txt tr.txt tt.txt twq.txt\\r
- tzm.txt ug.txt uk.txt ur.txt ur_IN.txt\\r
- uz.txt uz_Arab.txt uz_Cyrl.txt uz_Latn.txt vai.txt\\r
- vai_Latn.txt vai_Vaii.txt vi.txt vun.txt wae.txt\\r
- wo.txt xog.txt yav.txt yi.txt yo.txt\\r
- yo_BJ.txt yue.txt yue_Hans.txt yue_Hant.txt zgh.txt\\r
zh.txt zh_Hans.txt zh_Hant.txt zh_Hant_HK.txt zh_Hant_MO.txt\\r
- zu.txt\r
+ ti.txt tk.txt to.txt tr.txt tt.txt\\r
+ twq.txt tzm.txt ug.txt uk.txt ur.txt\\r
+ ur_IN.txt uz.txt uz_Arab.txt uz_Cyrl.txt uz_Latn.txt\\r
+ vai.txt vai_Latn.txt vai_Vaii.txt vi.txt vun.txt\\r
+ wae.txt wo.txt xh.txt xog.txt yav.txt\\r
+ yi.txt yo.txt yo_BJ.txt yue.txt yue_Hans.txt\\r
yue_Hant.txt zgh.txt zh.txt zh_Hans.txt zh_Hant.txt\\r
+ zh_Hant_HK.txt zh_Hant_MO.txt zu.txt\r
 \r
index 240e894..fe48653 100644 (file)
@@ -627,7 +627,7 @@ rm{
         TARASK{"ortografia taraskievica"}\r
         VALENCIA{"valencian"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.94"}\r
     codePatterns{\r
         language{"Lingua: {0}"}\r
         script{"Scrittira: {0}"}\r
index 738a560..bb06f59 100644 (file)
@@ -61,7 +61,7 @@ ro{
         bas{"basaa"}\r
         bax{"bamun"}\r
         bbj{"ghomala"}\r
-        be{"bielorusă"}\r
+        be{"belarusă"}\r
         bej{"beja"}\r
         bem{"bemba"}\r
         bez{"bena"}\r
@@ -147,6 +147,7 @@ ro{
         enm{"engleză medie"}\r
         eo{"esperanto"}\r
         es{"spaniolă"}\r
+        es_ES{"spaniolă (Europa)"}\r
         et{"estonă"}\r
         eu{"bască"}\r
         ewo{"ewondo"}\r
@@ -214,7 +215,7 @@ ro{
         id{"indoneziană"}\r
         ie{"interlingue"}\r
         ig{"igbo"}\r
-        ii{"sichuan yi"}\r
+        ii{"yi din Sichuan"}\r
         ik{"inupiak"}\r
         ilo{"iloko"}\r
         inh{"ingușă"}\r
@@ -287,7 +288,7 @@ ro{
         ln{"lingala"}\r
         lo{"laoțiană"}\r
         lol{"mongo"}\r
-        lou{"creolă louisianeză"}\r
+        lou{"creolă (Louisiana)"}\r
         loz{"lozi"}\r
         lrc{"luri de nord"}\r
         lt{"lituaniană"}\r
@@ -394,6 +395,7 @@ ro{
         pro{"provensală veche"}\r
         ps{"paștună"}\r
         pt{"portugheză"}\r
+        pt_PT{"portugheză (Europa)"}\r
         qu{"quechua"}\r
         quc{"quiché"}\r
         raj{"rajasthani"}\r
@@ -440,9 +442,9 @@ ro{
         sl{"slovenă"}\r
         sm{"samoană"}\r
         sma{"sami de sud"}\r
-        smj{"lule sami"}\r
-        smn{"inari sami"}\r
-        sms{"skolt sami"}\r
+        smj{"sami lule"}\r
+        smn{"sami inari"}\r
+        sms{"sami skolt"}\r
         sn{"shona"}\r
         snk{"soninke"}\r
         so{"somaleză"}\r
@@ -496,7 +498,7 @@ ro{
         twq{"tasawaq"}\r
         ty{"tahitiană"}\r
         tyv{"tuvană"}\r
-        tzm{"tamazight central marocană"}\r
+        tzm{"tamazight din Altasul Central"}\r
         udm{"udmurt"}\r
         ug{"uigură"}\r
         uga{"ugaritică"}\r
@@ -535,6 +537,7 @@ ro{
         zen{"zenaga"}\r
         zgh{"tamazight standard marocană"}\r
         zh{"chineză"}\r
+        zh_Hans{"chineză simplificată"}\r
         zh_Hant{"chineză tradițională"}\r
         zu{"zulu"}\r
         zun{"zuni"}\r
@@ -778,7 +781,7 @@ ro{
         SCOTLAND{"engleză standard scoțiană"}\r
         WADEGILE{"Wade-Giles"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.94"}\r
     characterLabelPattern{\r
         all{"{0} – toate"}\r
         category-list{"{0}: {1}"}\r
index b9a3cc3..bc604fa 100644 (file)
@@ -4,7 +4,7 @@
  * ICU <specials> source: <path>/common/main/root.xml\r
  */\r
 root{\r
-    Version{"2.1.41.58"}\r
+    Version{"2.1.44.91"}\r
     characterLabelPattern{\r
         all{"{0} — all"}\r
         category-list{"{0}: {1}"}\r
index a69e24f..ca633e2 100644 (file)
@@ -42,11 +42,11 @@ ru{
         ang{"староанглийский"}\r
         anp{"ангика"}\r
         ar{"арабский"}\r
-        ar_001{"аÑ\80абÑ\81кий Ð»Ð¸Ñ\82еÑ\80аÑ\82Ñ\83Ñ\80нÑ\8bй"}\r
+        ar_001{"лиÑ\82еÑ\80аÑ\82Ñ\83Ñ\80нÑ\8bй Ð°Ñ\80абÑ\81кий"}\r
         arc{"арамейский"}\r
         arn{"мапуче"}\r
         arp{"арапахо"}\r
-        ars{"аÑ\80абÑ\81каÑ\8f â\80\94 Ð½ÐµÐ´Ð¶Ð´Ð¸Ð¹Ñ\81каÑ\8f"}\r
+        ars{"недждийÑ\81кий Ð°Ñ\80абÑ\81кий"}\r
         arw{"аравакский"}\r
         as{"ассамский"}\r
         asa{"асу"}\r
@@ -185,7 +185,7 @@ ru{
         gba{"гбая"}\r
         gd{"гэльский"}\r
         gez{"геэз"}\r
-        gil{"гильбертский"}\r
+        gil{"гилбертский"}\r
         gl{"галисийский"}\r
         gmh{"средневерхненемецкий"}\r
         gn{"гуарани"}\r
@@ -306,7 +306,7 @@ ru{
         lui{"луисеньо"}\r
         lun{"лунда"}\r
         luo{"луо"}\r
-        lus{"лÑ\83Ñ\88ей"}\r
+        lus{"мизо"}\r
         luy{"лухья"}\r
         lv{"латышский"}\r
         mad{"мадурский"}\r
@@ -417,7 +417,7 @@ ru{
         ro_MD{"молдавский"}\r
         rof{"ромбо"}\r
         rom{"цыганский"}\r
-        root{"коÑ\80невой язык"}\r
+        root{"пÑ\80аязык"}\r
         ru{"русский"}\r
         rup{"арумынский"}\r
         rw{"киньяруанда"}\r
@@ -575,7 +575,7 @@ ru{
         Blis{"блиссимволика"}\r
         Bopo{"бопомофо"}\r
         Brah{"брахми"}\r
-        Brai{"Брайля"}\r
+        Brai{"шрифт Брайля"}\r
         Bugi{"бугинизийская"}\r
         Buhd{"бухид"}\r
         Cakm{"чакмийская"}\r
@@ -814,10 +814,10 @@ ru{
             npinyin{"Числовая"}\r
         }\r
         hc{\r
-            h11{"12-часовой формат времени (0-11)"}\r
-            h12{"12-часовой формат времени (1-12)"}\r
-            h23{"24-часовой формат времени (0-23)"}\r
-            h24{"24-часовой формат времени (1-24)"}\r
+            h11{"12-часовой формат времени (011)"}\r
+            h12{"12-часовой формат времени (112)"}\r
+            h23{"24-часовой формат времени (023)"}\r
+            h24{"24-часовой формат времени (124)"}\r
         }\r
         lb{\r
             loose{"мягкий перевод строки"}\r
@@ -917,7 +917,7 @@ ru{
         VALENCIA{"Валенсийский"}\r
         WADEGILE{"Система Уэйда – Джайлза"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.45.15"}\r
     characterLabelPattern{\r
         all{"{0} — все"}\r
         category-list{"{0}: {1}"}\r
index b185555..6b62dbc 100644 (file)
@@ -108,5 +108,5 @@ rw{
         yi{"Inyeyidishi"}\r
         zu{"Inyezulu"}\r
     }\r
-    Version{"2.1.38.72"}\r
+    Version{"2.1.44.88"}\r
 }\r
index b37e8c8..bbc9470 100644 (file)
@@ -91,7 +91,7 @@ sah{
             h24{"24 чаастаах тиһик (0–24)"}\r
         }\r
     }\r
-    Version{"2.1.38.69"}\r
+    Version{"2.1.43.94"}\r
     characterLabelPattern{\r
         strokes{\r
             other{"{0} Strokes"}\r
diff --git a/source/data/lang/sd.txt b/source/data/lang/sd.txt
new file mode 100644 (file)
index 0000000..a41983c
--- /dev/null
@@ -0,0 +1,562 @@
+// © 2016 and later: Unicode, Inc. and others.\r
+// License & terms of use: http://www.unicode.org/copyright.html#License\r
+sd{\r
+    Keys{\r
+        calendar{"ڪئلينڊر"}\r
+        cf{"سڪي جو فارميٽ"}\r
+        collation{"ترتيب ڇانٽي"}\r
+        currency{"سڪو"}\r
+        hc{"ڪلاڪ سائيڪل"}\r
+        lb{"لائن ٽوڙڻ انداز"}\r
+        ms{"ماپڻ جو نظام"}\r
+        numbers{"انگ"}\r
+    }\r
+    Languages{\r
+        aa{"افار"}\r
+        ab{"ابقازیان"}\r
+        ace{"اچائينيز"}\r
+        ada{"ادنگمي"}\r
+        ady{"اديگهي"}\r
+        af{"آفريڪي"}\r
+        agq{"اگهيم"}\r
+        ain{"آئينو"}\r
+        ak{"اڪان"}\r
+        ale{"اليوٽ"}\r
+        alt{"ڏکڻ التائي"}\r
+        am{"امهاري"}\r
+        an{"ارگني"}\r
+        anp{"انجيڪا"}\r
+        ar{"عربي"}\r
+        ar_001{"جديد معياري عربي"}\r
+        arn{"ماپوچي"}\r
+        arp{"اراپائو"}\r
+        as{"آسامي"}\r
+        asa{"اسو"}\r
+        ast{"اسٽورين"}\r
+        av{"اويرس"}\r
+        awa{"اواڌي"}\r
+        ay{"ایمارا"}\r
+        az{"آزربائيجاني"}\r
+        ba{"بشڪر"}\r
+        ban{"بالي"}\r
+        bas{"باسا"}\r
+        be{"بيلاروسي"}\r
+        bem{"بيمبا"}\r
+        bez{"بينا"}\r
+        bg{"بلغاريائي"}\r
+        bho{"ڀوجپوري"}\r
+        bi{"بسلاما"}\r
+        bin{"بني"}\r
+        bla{"سڪسڪا"}\r
+        bm{"بمبارا"}\r
+        bn{"بنگلا"}\r
+        bo{"تبيتائي"}\r
+        br{"بريٽن"}\r
+        brx{"بودو"}\r
+        bs{"بوسنيائي"}\r
+        bug{"بگنيز"}\r
+        byn{"بلن"}\r
+        ca{"ڪيٽالان"}\r
+        ce{"چیچن"}\r
+        ceb{"سبوانو"}\r
+        cgg{"چگا"}\r
+        ch{"چمورو"}\r
+        chk{"چڪيز"}\r
+        chm{"ماري"}\r
+        cho{"چوڪ تو"}\r
+        chr{"چروڪي"}\r
+        chy{"چايان"}\r
+        ckb{"مرڪزي ڪردش"}\r
+        co{"ڪارسيڪائي"}\r
+        crs{"سيسلوا ڪريئول فرانسي"}\r
+        cs{"چيڪ"}\r
+        cu{"چرچ سلاوی"}\r
+        cv{"چو واش"}\r
+        cy{"ويلش"}\r
+        da{"ڊينش"}\r
+        dak{"ڊڪوٽا"}\r
+        dar{"ڊارگوا"}\r
+        dav{"تائيتا"}\r
+        de{"جرمن"}\r
+        de_AT{"آسٽريائي جرمن"}\r
+        de_CH{"سوئس هائي جرمن"}\r
+        dgr{"داگرب"}\r
+        dje{"زارما"}\r
+        dsb{"لوئر سوربين"}\r
+        dua{"ڊيولا"}\r
+        dv{"دويهي"}\r
+        dyo{"جولا فوني"}\r
+        dz{"زونخا"}\r
+        dzg{"دزاگا"}\r
+        ebu{"ايمبيو"}\r
+        ee{"ايو"}\r
+        efi{"ايفڪ"}\r
+        eka{"ايڪاجڪ"}\r
+        el{"يوناني"}\r
+        en{"انگريزي"}\r
+        en_AU{"آسٽريليائي انگريزي"}\r
+        en_CA{"ڪينيڊيائي انگريزي"}\r
+        en_GB{"برطانوي انگريزي"}\r
+        en_US{"آمريڪي انگريزي"}\r
+        eo{"ايسپرانٽو"}\r
+        es{"اسپيني"}\r
+        es_419{"لاطيني آمريڪي اسپينش"}\r
+        es_ES{"يورپي اسپيني"}\r
+        et{"ايستونائي"}\r
+        eu{"باسڪي"}\r
+        ewo{"اوانڊو"}\r
+        fa{"فارسي"}\r
+        ff{"فلاهه"}\r
+        fi{"فنش"}\r
+        fil{"فلپائني"}\r
+        fj{"فجي"}\r
+        fo{"فيروايس"}\r
+        fon{"فون"}\r
+        fr{"فرانسي"}\r
+        fr_CA{"ڪينيڊيائي فرانسيسي"}\r
+        fr_CH{"سوئس فرانسيسي"}\r
+        fur{"فرائي لئين"}\r
+        fy{"مغربي فريشن"}\r
+        ga{"آئرش"}\r
+        gaa{"گا"}\r
+        gd{"اسڪاٽش گيلڪ"}\r
+        gez{"جيز"}\r
+        gil{"گلبرٽيز"}\r
+        gl{"گليشئين"}\r
+        gn{"گواراني"}\r
+        gor{"گورنٽلو"}\r
+        gsw{"سوئس جرمن"}\r
+        gu{"گجراتي"}\r
+        guz{"گشي"}\r
+        gv{"مينڪس"}\r
+        gwi{"گوچن"}\r
+        ha{"هوسا"}\r
+        haw{"هوائي"}\r
+        he{"عبراني"}\r
+        hi{"هندي"}\r
+        hil{"هلي گيانان"}\r
+        hmn{"مونگ"}\r
+        hr{"ڪروشيائي"}\r
+        hsb{"اپر سربيائي"}\r
+        ht{"هيٽي ڪرولي"}\r
+        hu{"هنگري"}\r
+        hup{"هوپا"}\r
+        hy{"ارماني"}\r
+        hz{"هريرو"}\r
+        ia{"انٽرلنگئا"}\r
+        iba{"ايبن"}\r
+        ibb{"ابيبيو"}\r
+        id{"انڊونيشي"}\r
+        ig{"اگبو"}\r
+        ii{"سچوان يي"}\r
+        ilo{"الوڪو"}\r
+        inh{"انگش"}\r
+        io{"ادو"}\r
+        is{"آئيس لينڊڪ"}\r
+        it{"اطالوي"}\r
+        iu{"انو ڪتوت"}\r
+        ja{"جاپاني"}\r
+        jbo{"لوجبين"}\r
+        jgo{"نغومبا"}\r
+        jmc{"ميڪم"}\r
+        jv{"جاونيز"}\r
+        ka{"جارجين"}\r
+        kab{"ڪبائل"}\r
+        kac{"ڪچن"}\r
+        kaj{"پوڪيپسي"}\r
+        kam{"ڪئمبا"}\r
+        kbd{"ڪبارڊيئن"}\r
+        kcg{"تياپ"}\r
+        kde{"مڪوندي"}\r
+        kea{"ڪيبيو ويرڊيانو"}\r
+        kfo{"ڪورو"}\r
+        kha{"خاسي"}\r
+        khq{"ڪيورا چني"}\r
+        ki{"اڪويو"}\r
+        kj{"ڪنياما"}\r
+        kk{"قازق"}\r
+        kkj{"ڪڪو"}\r
+        kl{"ڪالا ليسٽ"}\r
+        kln{"ڪيلين جن"}\r
+        km{"خمر"}\r
+        kmb{"ڪمبونڊو"}\r
+        kn{"ڪناڊا"}\r
+        ko{"ڪوريائي"}\r
+        kok{"ڪونڪي"}\r
+        kpe{"ڪپيل"}\r
+        kr{"ڪنوري"}\r
+        krc{"ڪراچي بالڪر"}\r
+        krl{"ڪريلئين"}\r
+        kru{"ڪورخ"}\r
+        ks{"ڪشميري"}\r
+        ksb{"شمبالا"}\r
+        ksf{"بافيا"}\r
+        ksh{"ڪلونئين"}\r
+        ku{"ڪردي"}\r
+        kum{"ڪومڪ"}\r
+        kv{"ڪومي"}\r
+        kw{"ڪورنش"}\r
+        ky{"ڪرغيز"}\r
+        la{"لاطيني"}\r
+        lad{"لڊينو"}\r
+        lag{"لانگي"}\r
+        lb{"لگزمبرگ"}\r
+        lez{"ليزگهين"}\r
+        lg{"گاندا"}\r
+        li{"لمبرگش"}\r
+        lkt{"لڪوٽا"}\r
+        ln{"لنگالا"}\r
+        lo{"لائو"}\r
+        loz{"لوزي"}\r
+        lrc{"اتر لوري"}\r
+        lt{"ليٿونيائي"}\r
+        lu{"لوبا-ڪتانگا"}\r
+        lua{"لوبا-لولوا"}\r
+        lun{"لنڊا"}\r
+        luo{"لو"}\r
+        lus{"ميزو"}\r
+        luy{"لوهيا"}\r
+        lv{"لاتوين"}\r
+        mad{"مدورائي"}\r
+        mag{"مگاهي"}\r
+        mai{"ميٿلي"}\r
+        mak{"مڪاسر"}\r
+        mas{"مسائي"}\r
+        mdf{"موڪشا"}\r
+        men{"مينڊي"}\r
+        mer{"ميرو"}\r
+        mfe{"موریسیین"}\r
+        mg{"ملاگاسي"}\r
+        mgh{"مخووا ميتو"}\r
+        mgo{"ميتا"}\r
+        mh{"مارشليز"}\r
+        mi{"مائوري"}\r
+        mic{"ميڪ مڪ"}\r
+        min{"مناڪابوا"}\r
+        mk{"ميسي ڊونيائي"}\r
+        ml{"مليالم"}\r
+        mn{"منگولي"}\r
+        mni{"ماني پوري"}\r
+        moh{"موهاڪ"}\r
+        mos{"موسي"}\r
+        mr{"مراٺي"}\r
+        ms{"ملي"}\r
+        mt{"مالٽي"}\r
+        mua{"من دانگ"}\r
+        mul{"هڪ کان وڌيڪ ٻوليون"}\r
+        mus{"ڪريڪ"}\r
+        mwl{"مرانڊيز"}\r
+        my{"برمي"}\r
+        myv{"ايريزيا"}\r
+        mzn{"مزيندراني"}\r
+        na{"نائو"}\r
+        nap{"نيپولٽن"}\r
+        naq{"ناما"}\r
+        nb{"نارويائي بوڪمال"}\r
+        nd{"اتر دبيلي"}\r
+        ne{"نيپالي"}\r
+        new{"نيواري"}\r
+        ng{"ڊونگا"}\r
+        nia{"نياس"}\r
+        niu{"نووي"}\r
+        nl{"ڊچ"}\r
+        nl_BE{"فلیمش"}\r
+        nmg{"ڪويسيو"}\r
+        nn{"نارويائي نيوناسڪ"}\r
+        nnh{"نغيمبون"}\r
+        nog{"نوگائي"}\r
+        nqo{"نڪو"}\r
+        nr{"ڏکڻ دبيلي"}\r
+        nso{"اتر سوٿو"}\r
+        nus{"نيور"}\r
+        nv{"نواجو"}\r
+        ny{"نيانجا"}\r
+        nyn{"نايانڪول"}\r
+        oc{"آڪسيٽن"}\r
+        om{"اورومو"}\r
+        or{"اوڊيا"}\r
+        os{"اوسيٽڪ"}\r
+        pa{"پنجابي"}\r
+        pag{"پانگا سينان"}\r
+        pam{"پيم پينگا"}\r
+        pap{"پاپي امينٽو"}\r
+        pau{"پلون"}\r
+        pcm{"نائيجرين پجن"}\r
+        pl{"پولش"}\r
+        prg{"پرشن"}\r
+        ps{"پشتو"}\r
+        pt{"پرتگالي"}\r
+        pt_BR{"برازيلي پرتگالي"}\r
+        pt_PT{"يورپي پرتگالي"}\r
+        qu{"ڪيچوا"}\r
+        quc{"ڪچي"}\r
+        rap{"ريپنوئي"}\r
+        rar{"ريرو ٽينگو"}\r
+        rm{"رومانش"}\r
+        rn{"رونڊي"}\r
+        ro{"روماني"}\r
+        ro_MD{"مالديوي"}\r
+        rof{"رومبو"}\r
+        root{"روٽ"}\r
+        ru{"روسي"}\r
+        rup{"ارومينين"}\r
+        rw{"ڪنيار وانڊا"}\r
+        rwk{"روا"}\r
+        sa{"سنسڪرت"}\r
+        sad{"سنداوي"}\r
+        sah{"ساخا"}\r
+        saq{"سيمبورو"}\r
+        sat{"سنتالي"}\r
+        sba{"نغمبي"}\r
+        sbp{"سانگوو"}\r
+        sc{"سارڊيني"}\r
+        scn{"سسلي"}\r
+        sco{"اسڪاٽس"}\r
+        sd{"سنڌي"}\r
+        se{"اتر سامي"}\r
+        seh{"سينا"}\r
+        ses{"ڪيورابورو سيني"}\r
+        sg{"سانگو"}\r
+        shi{"تيچل هاتي"}\r
+        shn{"شان"}\r
+        si{"سنهالا"}\r
+        sk{"سلواڪي"}\r
+        sl{"سلوويني"}\r
+        sm{"ساموآن"}\r
+        sma{"ڏکڻ سامي"}\r
+        smj{"لولي سامي"}\r
+        smn{"اناري سامي"}\r
+        sms{"اسڪاٽ سامي"}\r
+        sn{"شونا"}\r
+        snk{"سونينڪي"}\r
+        so{"سومالي"}\r
+        sq{"الباني"}\r
+        sr{"سربيائي"}\r
+        srn{"سرانن تانگو"}\r
+        ss{"سواتي"}\r
+        ssy{"سهو"}\r
+        st{"ڏکڻ سوٿي"}\r
+        su{"سوڊاني"}\r
+        suk{"سڪوما"}\r
+        sv{"سويڊني"}\r
+        sw{"سواحيلي"}\r
+        sw_CD{"ڪونگو سواحيلي"}\r
+        swb{"ڪمورين"}\r
+        syr{"شامي"}\r
+        ta{"تامل"}\r
+        te{"تلگو"}\r
+        tem{"تمني"}\r
+        teo{"تيسو"}\r
+        tet{"تيتم"}\r
+        tg{"تاجڪي"}\r
+        th{"ٿائي"}\r
+        ti{"تگرينيائي"}\r
+        tig{"تگري"}\r
+        tk{"ترڪماني"}\r
+        tlh{"ڪلون"}\r
+        tn{"تسوانا"}\r
+        to{"تونگن"}\r
+        tpi{"تاڪ پسن"}\r
+        tr{"ترڪ"}\r
+        trv{"تاروڪو"}\r
+        ts{"سونگا"}\r
+        tt{"تاتري"}\r
+        tum{"تمبوڪا"}\r
+        tvl{"توالو"}\r
+        twq{"تساوڪي"}\r
+        ty{"تاهيتي"}\r
+        tyv{"تووينيائي"}\r
+        tzm{"وچ اٽلس تمازائيٽ"}\r
+        udm{"ادمورتيا"}\r
+        ug{"يوغور"}\r
+        uk{"يوڪراني"}\r
+        umb{"اومبنڊو"}\r
+        und{"اڻڄاتل ٻولي"}\r
+        ur{"اردو"}\r
+        uz{"ازبڪ"}\r
+        vai{"يا"}\r
+        ve{"وينڊا"}\r
+        vi{"ويتنامي"}\r
+        vo{"والپڪ"}\r
+        vun{"ونجو"}\r
+        wa{"ولون"}\r
+        wae{"والسر"}\r
+        wal{"وولايٽا"}\r
+        war{"واري"}\r
+        wo{"وولف"}\r
+        xal{"ڪيلمڪ"}\r
+        xh{"زھوسا"}\r
+        xog{"سوگا"}\r
+        yav{"يانگ بين"}\r
+        ybb{"ييمبا"}\r
+        yi{"يدش"}\r
+        yo{"يوروبا"}\r
+        yue{"ڪينٽونيز"}\r
+        zgh{"معياري مراڪشي تامازائيٽ"}\r
+        zh{"چيني"}\r
+        zh_Hans{"آسان چینی"}\r
+        zh_Hant{"روايتي چيني"}\r
+        zu{"زولو"}\r
+        zun{"زوني"}\r
+        zxx{"ڪوئي ٻولي جو مواد ڪونهي"}\r
+        zza{"زازا"}\r
+    }\r
+    Languages%short{\r
+        az{"ازري"}\r
+        en_GB{"برطانوي انگريزي"}\r
+        en_US{"انگريزي (آمريڪا)"}\r
+    }\r
+    Scripts{\r
+        Arab{"عربي"}\r
+        Armn{"عرماني"}\r
+        Beng{"بنگلا"}\r
+        Bopo{"بوپوموفو"}\r
+        Brai{"بريلي"}\r
+        Cyrl{"سيريلي"}\r
+        Deva{"ديوناگري"}\r
+        Ethi{"ايٿوپيائي"}\r
+        Geor{"جيورجيائي"}\r
+        Grek{"يوناني"}\r
+        Gujr{"گجراتي"}\r
+        Guru{"گرمکي"}\r
+        Hanb{"بوپوموفو سان هين"}\r
+        Hang{"هنگول"}\r
+        Hani{"هين"}\r
+        Hans{"سادي"}\r
+        Hant{"روايتي"}\r
+        Hebr{"عبراني"}\r
+        Hira{"هراگنا"}\r
+        Hrkt{"جاپاني لکت"}\r
+        Jamo{"جامو"}\r
+        Jpan{"جاپاني"}\r
+        Kana{"ڪٽاڪانا"}\r
+        Khmr{"خمر"}\r
+        Knda{"ڪناڊا"}\r
+        Kore{"ڪوريائي"}\r
+        Laoo{"لائو"}\r
+        Latn{"لاطيني"}\r
+        Mlym{"مليالم"}\r
+        Mong{"منگولي"}\r
+        Mymr{"ميانمر"}\r
+        Orya{"اوڊيا"}\r
+        Sinh{"سنهالا"}\r
+        Taml{"تامل"}\r
+        Telu{"تلگو"}\r
+        Thaa{"ٿانا"}\r
+        Thai{"ٿائي"}\r
+        Tibt{"تبيتن"}\r
+        Zmth{"رياضي جون نشانيون"}\r
+        Zsye{"ايموجي"}\r
+        Zsym{"نشانيون"}\r
+        Zxxx{"اڻ لکيل"}\r
+        Zyyy{"ڪامن"}\r
+        Zzzz{"اڻڄاتل لکت"}\r
+    }\r
+    Scripts%stand-alone{\r
+        Hans{"سادي هين"}\r
+        Hant{"روايتي هين"}\r
+    }\r
+    Types{\r
+        calendar{\r
+            buddhist{"ٻڌ ڌرم جو ڪئلينڊر"}\r
+            chinese{"چيني ڪئلينڊر"}\r
+            dangi{"دانگي ڪئلينڊر"}\r
+            ethiopic{"ايٿوپيائي ڪئلينڊر"}\r
+            gregorian{"جارجيائي ڪئلينڊر"}\r
+            hebrew{"عبراني ڪئلينڊر"}\r
+            islamic{"اسلامي ڪئلينڊر"}\r
+            iso8601{"ISO-8601 ڪئلينڊر"}\r
+            japanese{"جاپاني ڪئلينڊر"}\r
+            persian{"فارسي ڪئلينڊر"}\r
+            roc{"منگوو ڪئلينڊر"}\r
+        }\r
+        cf{\r
+            account{"اڪائونٽنگ سڪو فارميٽ"}\r
+            standard{"معياري سڪو فارميٽ"}\r
+        }\r
+        collation{\r
+            ducet{"ڊفالٽ يوني ڪوڊ ترتيب ڇانٽي"}\r
+            search{"عام مقصد جي ڳولا"}\r
+            standard{"معياري ترتيب ڇانٽي"}\r
+        }\r
+        hc{\r
+            h11{"12 ڪلاڪ جو سسٽم (0–11)"}\r
+            h12{"12 ڪلاڪ جو سسٽم (1–12)"}\r
+            h23{"24 ڪلاڪ جو سسٽم (0–23)"}\r
+            h24{"24 ڪلاڪ جو سسٽم (1–24)"}\r
+        }\r
+        lb{\r
+            loose{"لوز لائن ٽوڙ انداز"}\r
+            normal{"عام لائن ٽوڙ انداز"}\r
+            strict{"سخت لائن ٽوڙ انداز"}\r
+        }\r
+        ms{\r
+            metric{"ميٽرڪ نظام"}\r
+            uksystem{"امپيريل ماپڻ جو نظام"}\r
+            ussystem{"آمريڪا جو ماپڻ جو نظام"}\r
+        }\r
+        numbers{\r
+            arab{"عربي-هندي عدد"}\r
+            arabext{"وڌايل عربي-هندي عدد"}\r
+            armn{"ارمينيائي انگ"}\r
+            armnlow{"ارمينيائي ننڍا انگ"}\r
+            beng{"بنگلا عدد"}\r
+            deva{"ديوناگري عدد"}\r
+            ethi{"ايٿوپيائي انگ"}\r
+            fullwide{"پوري-ويڪر انگن"}\r
+            geor{"جيارجيائي انگ"}\r
+            grek{"يوناني انگ"}\r
+            greklow{"يوناني ننڍا انگ"}\r
+            gujr{"گجراتي عدد"}\r
+            guru{"گرمکي عدد"}\r
+            hanidec{"چيني اعشاري انگ"}\r
+            hans{"آسان چيني انگ"}\r
+            hansfin{"آسان چيني مالي انگ"}\r
+            hant{"روايتي چيني انگ"}\r
+            hantfin{"روايتي چيني مالي انگ"}\r
+            hebr{"عبراني انگ"}\r
+            jpan{"جاپاني انگ"}\r
+            jpanfin{"جاپاني مالي انگ"}\r
+            khmr{"خمر عدد"}\r
+            knda{"ڪناڊا عدد"}\r
+            laoo{"لائو عدد"}\r
+            latn{"مغربي عدد"}\r
+            mlym{"مليالم عدد"}\r
+            mymr{"ميانمار عدد"}\r
+            orya{"اوڊيا عدد"}\r
+            roman{"رومي انگ"}\r
+            romanlow{"رومي ننڍا انگ"}\r
+            taml{"روايتي تامل انگ"}\r
+            tamldec{"تامل عدد"}\r
+            telu{"تيلگو عدد"}\r
+            thai{"ٿائي عدد"}\r
+            tibt{"تبتي عدد"}\r
+        }\r
+    }\r
+    Version{"2.1.43.94"}\r
+    characterLabelPattern{\r
+        all{"{0} — سڀئي"}\r
+        category-list{"{0}: {1}"}\r
+        compatibility{"{0} - مطابقت"}\r
+        enclosed{"{0} - ڳنڍيل"}\r
+        extended{"{0} - وڌايل"}\r
+        historic{"{0} - تاريخي"}\r
+        miscellaneous{"{0} - متفرق"}\r
+        other{"{0} - ٻيا"}\r
+        scripts{"رسم الخط - {0}"}\r
+        strokes{\r
+            one{"{0} اسٽروڪ"}\r
+            other{"{0} اسٽروڪَ"}\r
+        }\r
+    }\r
+    codePatterns{\r
+        language{"زبان: {0}"}\r
+        script{"اسڪرپٽ: {0}"}\r
+        territory{"خطو: {0}"}\r
+    }\r
+    localeDisplayPattern{\r
+        keyTypePattern{"{0}: {1}"}\r
+        pattern{"{0} ({1})"}\r
+        separator{"{0}, {1}"}\r
+    }\r
+}\r
index 84b7130..27bb2cf 100644 (file)
@@ -154,7 +154,7 @@ se{
         PINYIN{"pinyin"}\r
         WADEGILE{"Wade-Giles"}\r
     }\r
-    Version{"2.1.38.69"}\r
+    Version{"2.1.43.94"}\r
     codePatterns{\r
         language{"giella: {0}"}\r
         script{"chállin: {0}"}\r
index 37f143a..c89a0af 100644 (file)
@@ -62,7 +62,7 @@ se_FI{
             fullwide{"fullwide"}\r
         }\r
     }\r
-    Version{"2.1.38.73"}\r
+    Version{"2.1.44.88"}\r
     codePatterns{\r
         script{"čállin: {0}"}\r
     }\r
index c57016a..932d27c 100644 (file)
@@ -285,7 +285,7 @@ si{
         nyn{"නයන්කෝලෙ"}\r
         oc{"ඔසිටාන්"}\r
         om{"ඔරොමෝ"}\r
-        or{"à¶\94රියා"}\r
+        or{"à¶\94ඩියා"}\r
         os{"ඔසිටෙක්"}\r
         pa{"පන්ජාබි"}\r
         pag{"පන්ගසීනන්"}\r
@@ -459,11 +459,11 @@ si{
         Thaa{"තාන"}\r
         Thai{"තායි"}\r
         Tibt{"ටි‍බෙට්"}\r
-        Zmth{"à¶\9cනිතමය සංකේත"}\r
+        Zmth{"à¶\9cණිතමය සංකේත"}\r
         Zsye{"ඉමොජි"}\r
         Zsym{"සංකේත"}\r
         Zxxx{"අලිඛිත"}\r
-        Zyyy{"පොදු."}\r
+        Zyyy{"පොදු"}\r
         Zzzz{"නොදත් අක්ෂර මාලාව"}\r
     }\r
     Scripts%stand-alone{\r
@@ -548,7 +548,7 @@ si{
             tibt{"ටිබෙට ඉලක්කම්"}\r
         }\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.50"}\r
     characterLabelPattern{\r
         all{"{0} — සියල්ල"}\r
         category-list{"{0}: {1}"}\r
index 462cef8..3d06441 100644 (file)
@@ -46,7 +46,7 @@ sk{
         arc{"aramejčina"}\r
         arn{"mapudungun"}\r
         arp{"arapažština"}\r
-        ars{"arabčina – nadžd"}\r
+        ars{"arabčina (nadždská)"}\r
         arw{"arawačtina"}\r
         as{"ásamčina"}\r
         asa{"asu"}\r
@@ -350,7 +350,7 @@ sk{
         nap{"neapolčina"}\r
         naq{"nama"}\r
         nb{"nórčina (bokmal)"}\r
-        nd{"severná ndebelčina"}\r
+        nd{"ndebelčina (severná)"}\r
         nds{"dolná nemčina"}\r
         nds_NL{"dolná saština"}\r
         ne{"nepálčina"}\r
@@ -367,8 +367,8 @@ sk{
         nog{"nogajčina"}\r
         non{"stará nórčina"}\r
         nqo{"n’ko"}\r
-        nr{"južná ndebelčina"}\r
-        nso{"severná sothčina"}\r
+        nr{"ndebelčina (južná)"}\r
+        nso{"sothčina (severná)"}\r
         nus{"nuer"}\r
         nv{"navaho"}\r
         nwc{"klasická nevárčina"}\r
@@ -432,7 +432,7 @@ sk{
         sco{"škótčina"}\r
         sd{"sindhčina"}\r
         sdh{"južná kurdčina"}\r
-        se{"severná saamčina"}\r
+        se{"saamčina (severná)"}\r
         see{"senekčina"}\r
         seh{"sena"}\r
         sel{"selkupčina"}\r
@@ -448,10 +448,10 @@ sk{
         sk{"slovenčina"}\r
         sl{"slovinčina"}\r
         sm{"samojčina"}\r
-        sma{"južná saamčina"}\r
-        smj{"lulská saamčina"}\r
-        smn{"inarijská saamčina"}\r
-        sms{"skoltská saamčina"}\r
+        sma{"saamčina (južná)"}\r
+        smj{"saamčina (lulská)"}\r
+        smn{"saamčina (inarijská)"}\r
+        sms{"saamčina (skoltská)"}\r
         sn{"šončina"}\r
         snk{"soninke"}\r
         so{"somálčina"}\r
@@ -462,7 +462,7 @@ sk{
         srr{"sererčina"}\r
         ss{"svazijčina"}\r
         ssy{"saho"}\r
-        st{"južná sothčina"}\r
+        st{"sothčina (južná)"}\r
         su{"sundčina"}\r
         suk{"sukuma"}\r
         sus{"susu"}\r
@@ -505,7 +505,7 @@ sk{
         twq{"tasawaq"}\r
         ty{"tahitčina"}\r
         tyv{"tuviančina"}\r
-        tzm{"stredomarocká tuaregčina"}\r
+        tzm{"tuaregčina (stredomarocká)"}\r
         udm{"udmurtčina"}\r
         ug{"ujgurčina"}\r
         uga{"ugaritčina"}\r
@@ -761,7 +761,7 @@ sk{
     Variants{\r
         SCOTLAND{"škótska štandardná angličtina"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.65"}\r
     characterLabelPattern{\r
         all{"{0} – všetko"}\r
         category-list{"{0}: {1}"}\r
index b551267..470fd8f 100644 (file)
@@ -142,8 +142,8 @@ sl{
         enm{"srednja angleščina"}\r
         eo{"esperanto"}\r
         es{"španščina"}\r
-        es_419{"latinskoameriška španščina"}\r
         es_ES{"evropska španščina"}\r
+        es_MX{"mehiška španščina"}\r
         et{"estonščina"}\r
         eu{"baskovščina"}\r
         ewo{"evondovščina"}\r
@@ -434,7 +434,7 @@ sl{
         sma{"južna samijščina"}\r
         smj{"luleška samijščina"}\r
         smn{"inarska samijščina"}\r
-        sms{"samijščina Skolt"}\r
+        sms{"skoltska samijščina"}\r
         sn{"šonščina"}\r
         snk{"soninke"}\r
         so{"somalščina"}\r
@@ -451,6 +451,7 @@ sl{
         sux{"sumerščina"}\r
         sv{"švedščina"}\r
         sw{"svahili"}\r
+        sw_CD{"kongoški svahili"}\r
         swb{"šikomor"}\r
         syc{"klasična sirščina"}\r
         syr{"sirščina"}\r
@@ -485,7 +486,7 @@ sl{
         twq{"tasawaq"}\r
         ty{"tahitščina"}\r
         tyv{"tuvinščina"}\r
-        tzm{"tamašek (srednji atlas)"}\r
+        tzm{"tamašek (Srednji Atlas)"}\r
         udm{"udmurtščina"}\r
         ug{"ujgurščina"}\r
         uga{"ugaritski jezik"}\r
@@ -878,7 +879,7 @@ sl{
         VALENCIA{"valencijski pravopis"}\r
         WADEGILE{"romanizacija Wade-Giles"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.91"}\r
     characterLabelPattern{\r
         all{"{0} – vse"}\r
         category-list{"{0}: {1}"}\r
index 3667ad6..1ccb90e 100644 (file)
@@ -48,5 +48,5 @@ sn{
         zh{"chiChinese"}\r
         zu{"chiZulu"}\r
     }\r
-    Version{"2.1.39.11"}\r
+    Version{"2.1.43.94"}\r
 }\r
index dd1385e..6e1efbf 100644 (file)
@@ -5,24 +5,33 @@ so{
         ak{"Akan"}\r
         am{"Axmaari"}\r
         ar{"Carabi"}\r
+        ar_001{"Carabiga rasmiga ah"}\r
         be{"Beleruusiyaan"}\r
         bg{"Bulgeeriyaan"}\r
-        bn{"Bangaali"}\r
+        bn{"Bangladesh"}\r
         cs{"Jeeg"}\r
         de{"Jarmal"}\r
+        de_CH{"Jarmal (Iswiiserlaand)"}\r
         el{"Giriik"}\r
         en{"Ingiriisi"}\r
+        en_AU{"Ingiriis Austaraaliyaan"}\r
+        en_CA{"Ingiriis Kanadiyaan"}\r
+        en_GB{"Ingiriis Biritish"}\r
+        en_US{"Ingiriis Maraykan"}\r
         es{"Isbaanish"}\r
+        es_419{"Isbaanishka Laatiin Ameerika"}\r
+        es_ES{"Isbaanish (Isbayn)"}\r
         fa{"Faarisi"}\r
         fr{"Faransiis"}\r
+        fr_CH{"Faransiis (Iswiiserlaand)"}\r
         fy{"Firiisiyan Galbeed"}\r
         ha{"Hawsa"}\r
         hi{"Hindi"}\r
         hu{"Hangariyaan"}\r
-        id{"Indunuusiyaan"}\r
+        id{"Indonesiyaan"}\r
         ig{"Igbo"}\r
         it{"Talyaani"}\r
-        ja{"Jabbaaniis"}\r
+        ja{"Jabaaniis"}\r
         jv{"Jafaaniis"}\r
         km{"Kamboodhian"}\r
         ko{"Kuuriyaan"}\r
@@ -30,9 +39,12 @@ so{
         my{"Burmese"}\r
         ne{"Nebaali"}\r
         nl{"Holandays"}\r
+        nl_BE{"Af faleemi"}\r
         pa{"Bunjaabi"}\r
         pl{"Boolish"}\r
         pt{"Boortaqiis"}\r
+        pt_BR{"Boortaqiiska Baraasiil"}\r
+        pt_PT{"Boortaqiis (Boortuqaal)"}\r
         ro{"Romanka"}\r
         ru{"Ruush"}\r
         rw{"Rwanda"}\r
@@ -42,15 +54,55 @@ so{
         th{"Taaylandays"}\r
         tr{"Turkish"}\r
         uk{"Yukreeniyaan"}\r
+        und{"Af aan la aqoon ama aan sax ahayn"}\r
         ur{"Urduu"}\r
         vi{"Fiitnaamays"}\r
         yo{"Yoruuba"}\r
-        zh{"Jayniis"}\r
+        zh{"Jayniis Mandarin"}\r
+        zh_Hans{"Jayniis rasmiga ah"}\r
+        zh_Hant{"Jayniiskii hore"}\r
         zu{"Zuulu"}\r
     }\r
+    Languages%short{\r
+        en_GB{"Ingiriiska Boqortooyada Midooday"}\r
+        en_US{"Ingiriisi (US)"}\r
+    }\r
     Scripts{\r
+        Arab{"Carabi"}\r
+        Cyrl{"Siriylik"}\r
+        Hans{"La fududeeyay"}\r
+        Hant{"Hore"}\r
+        Jpan{"Jabaaniis"}\r
+        Kore{"Kuuriyaan"}\r
+        Latn{"Laatiin"}\r
         Zxxx{"Aan la qorin"}\r
         Zzzz{"Far aan la aqoon amase aan saxnayn"}\r
     }\r
-    Version{"2.1.38.69"}\r
+    Scripts%stand-alone{\r
+        Hans{"Haan La fududeeyay"}\r
+        Hant{"Haanti hore"}\r
+    }\r
+    Types{\r
+        calendar{\r
+            gregorian{"Geregoriyaan"}\r
+            iso8601{"iso8601"}\r
+        }\r
+        collation{\r
+            standard{"Istaandar"}\r
+        }\r
+        numbers{\r
+            latn{"Laatiin"}\r
+        }\r
+    }\r
+    Version{"2.1.43.94"}\r
+    codePatterns{\r
+        language{"Luuqad : {0}"}\r
+        script{"Qoraal: {0}"}\r
+        territory{"Gobol : {0}"}\r
+    }\r
+    localeDisplayPattern{\r
+        keyTypePattern{"{0}: {1}"}\r
+        pattern{"{0} ({1})"}\r
+        separator{"{0}, {1}"}\r
+    }\r
 }\r
index 1431bdc..df27cd3 100644 (file)
@@ -406,6 +406,8 @@ sq{
         yue{"kantonezisht"}\r
         zgh{"tamaziatishte standarde marokene"}\r
         zh{"kinezisht"}\r
+        zh_Hans{"kinezishte e thjeshtuar"}\r
+        zh_Hant{"kinezishte tradicionale"}\r
         zu{"zuluisht"}\r
         zun{"zunisht"}\r
         zxx{"nuk ka përmbajtje gjuhësore"}\r
@@ -472,7 +474,7 @@ sq{
             chinese{"kalendar kinez"}\r
             coptic{"Kalendari Koptik"}\r
             dangi{"kalendar dangi"}\r
-            ethiopic{"kalendar etiopik"}\r
+            ethiopic{"kalendar etiopian"}\r
             ethiopic-amete-alem{"Kalendari Etiopas Amete Alem"}\r
             gregorian{"kalendar gregorian"}\r
             hebrew{"kalendar hebraik"}\r
@@ -484,7 +486,7 @@ sq{
             iso8601{"kalendar ISO-8601"}\r
             japanese{"kalendar japonez"}\r
             persian{"kalendar persian"}\r
-            roc{"kalendar minguoje (kinez)"}\r
+            roc{"kalendar minguo (i Republikës së Kinës)"}\r
         }\r
         cf{\r
             account{"format valutor llogaritës"}\r
@@ -524,7 +526,7 @@ sq{
             armnlow{"numra armenë të vegjël"}\r
             beng{"shifra bengali"}\r
             deva{"shifra devanagari"}\r
-            ethi{"numra etiopë"}\r
+            ethi{"numra etiopianë"}\r
             fullwide{"shifra me largësi të brendshme"}\r
             geor{"numra gjeorgjianë"}\r
             grek{"numra grekë"}\r
@@ -555,7 +557,7 @@ sq{
             tibt{"shifra tibetiane"}\r
         }\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.50"}\r
     characterLabelPattern{\r
         all{"{0} — Të gjitha"}\r
         category-list{"{0}: {1}"}\r
index d84a131..45393c4 100644 (file)
@@ -140,6 +140,7 @@ sr{
         enm{"средњеенглески"}\r
         eo{"есперанто"}\r
         es{"шпански"}\r
+        es_ES{"шпански (Европа)"}\r
         et{"естонски"}\r
         eu{"баскијски"}\r
         ewo{"евондо"}\r
@@ -546,7 +547,7 @@ sr{
         Blis{"блисимболично писмо"}\r
         Bopo{"бопомофо писмо"}\r
         Brah{"браманско писмо"}\r
-        Brai{"Ð\91рајево писмо"}\r
+        Brai{"брајево писмо"}\r
         Bugi{"бугинско писмо"}\r
         Buhd{"бухидско писмо"}\r
         Cakm{"чакманско писмо"}\r
@@ -847,7 +848,7 @@ sr{
         TARASK{"Тараскијевичка ортографија"}\r
         VALENCIA{"Валенцијска"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.94"}\r
     characterLabelPattern{\r
         all{"{0} — све"}\r
         category-list{"{0}: {1}"}\r
index 7ce272f..25bae0e 100644 (file)
@@ -18,5 +18,5 @@ sr_Cyrl_BA{
         zgh{"стандардни марокански тамашек"}\r
         zu{"исизулу"}\r
     }\r
-    Version{"2.1.38.69"}\r
+    Version{"2.1.44.88"}\r
 }\r
index c11fc8b..3fe65de 100644 (file)
@@ -17,5 +17,5 @@ sr_Cyrl_ME{
         zgh{"стандардни марокански тамашек"}\r
         zu{"исизулу"}\r
     }\r
-    Version{"2.1.38.69"}\r
+    Version{"2.1.44.88"}\r
 }\r
index f1bcebc..aa937eb 100644 (file)
@@ -141,6 +141,7 @@ sr_Latn{
         enm{"srednjeengleski"}\r
         eo{"esperanto"}\r
         es{"španski"}\r
+        es_ES{"španski (Evropa)"}\r
         et{"estonski"}\r
         eu{"baskijski"}\r
         ewo{"evondo"}\r
@@ -547,7 +548,7 @@ sr_Latn{
         Blis{"blisimbolično pismo"}\r
         Bopo{"bopomofo pismo"}\r
         Brah{"bramansko pismo"}\r
-        Brai{"Brajevo pismo"}\r
+        Brai{"brajevo pismo"}\r
         Bugi{"buginsko pismo"}\r
         Buhd{"buhidsko pismo"}\r
         Cakm{"čakmansko pismo"}\r
@@ -848,7 +849,7 @@ sr_Latn{
         TARASK{"Taraskijevička ortografija"}\r
         VALENCIA{"Valencijska"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.50"}\r
     characterLabelPattern{\r
         all{"{0} — sve"}\r
         category-list{"{0}: {1}"}\r
index 288e1fc..e3a7c43 100644 (file)
@@ -18,5 +18,5 @@ sr_Latn_BA{
         zgh{"standardni marokanski tamašek"}\r
         zu{"isizulu"}\r
     }\r
-    Version{"2.1.38.69"}\r
+    Version{"2.1.44.88"}\r
 }\r
index a7dfa84..bbccd15 100644 (file)
@@ -17,5 +17,5 @@ sr_Latn_ME{
         zgh{"standardni marokanski tamašek"}\r
         zu{"isizulu"}\r
     }\r
-    Version{"2.1.38.69"}\r
+    Version{"2.1.44.88"}\r
 }\r
index c163e7d..93b5d94 100644 (file)
@@ -397,7 +397,7 @@ sv{
         mye{"myene"}\r
         myv{"erjya"}\r
         mzn{"mazanderani"}\r
-        na{"nauriska"}\r
+        na{"nauruanska"}\r
         nan{"min nan"}\r
         nap{"napolitanska"}\r
         naq{"nama"}\r
@@ -688,6 +688,7 @@ sv{
         Geok{"kutsuri"}\r
         Geor{"georgiska"}\r
         Glag{"glagolitiska"}\r
+        Gong{"gunjalgondiska"}\r
         Gonm{"masaram-gondi"}\r
         Goth{"gotiska"}\r
         Gran{"gammaltamilska"}\r
@@ -774,6 +775,7 @@ sv{
         Plrd{"pollardtecken"}\r
         Prti{"tidig parthianska"}\r
         Rjng{"rejang"}\r
+        Rohg{"hanifiska"}\r
         Roro{"rongo-rongo"}\r
         Runr{"runor"}\r
         Samr{"samaritiska"}\r
@@ -786,6 +788,8 @@ sv{
         Sidd{"siddhamska"}\r
         Sind{"sindhiska"}\r
         Sinh{"singalesiska"}\r
+        Sogd{"sogdiska"}\r
+        Sogo{"gammalsogdiska"}\r
         Sora{"sora sompeng"}\r
         Soyo{"soyombo"}\r
         Sund{"sundanesiska"}\r
@@ -949,6 +953,8 @@ sv{
             finance{"finansiella siffror"}\r
             fullwide{"fullbreddssiffror"}\r
             geor{"georgiska taltecken"}\r
+            gong{"gunjalagondiska siffror"}\r
+            gonm{"masaramgondiska siffror"}\r
             grek{"grekiska taltecken"}\r
             greklow{"små grekiska taltecken"}\r
             gujr{"gujaratiska siffror"}\r
@@ -990,6 +996,7 @@ sv{
             olck{"ol chiki-siffror"}\r
             orya{"oriyiska siffror"}\r
             osma{"osmanya-siffror"}\r
+            rohg{"hanifisiffror"}\r
             roman{"romerska taltecken"}\r
             romanlow{"små romerska taltecken"}\r
             saur{"saurashtra-siffror"}\r
@@ -1046,6 +1053,7 @@ sv{
         HSISTEMO{"h-system"}\r
         IJEKAVSK{"ijekavisk dialekt"}\r
         ITIHASA{"itihasa-dialekt"}\r
+        IVANCHOV{"bulgariska i 1899 års stavning"}\r
         JAUER{"jauer-dialekt"}\r
         JYUTPING{"jyutping"}\r
         KKCOR{"vanlig stavning"}\r
@@ -1097,17 +1105,17 @@ sv{
         WADEGILE{"Wade-Giles"}\r
         XSISTEMO{"x-system"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.94"}\r
     characterLabelPattern{\r
-        all{"{0} â\80\94 alla"}\r
+        all{"{0} â\80\93 alla"}\r
         category-list{"{0}: {1}"}\r
-        compatibility{"{0} â\80\94 kompatibilitet"}\r
-        enclosed{"{0} â\80\94 omringande"}\r
-        extended{"{0} â\80\94 utvidgat"}\r
+        compatibility{"{0} â\80\93 kompatibilitet"}\r
+        enclosed{"{0} â\80\93 omringande"}\r
+        extended{"{0} â\80\93 utvidgat"}\r
         historic{"{0} — historiska"}\r
-        miscellaneous{"{0} â\80\94 diverse"}\r
-        other{"{0} â\80\94 övriga"}\r
-        scripts{"skrift — {0}"}\r
+        miscellaneous{"{0} â\80\93 diverse"}\r
+        other{"{0} â\80\93 övriga"}\r
+        scripts{"{0} – övriga"}\r
         strokes{\r
             one{"{0} streck"}\r
             other{"{0} streck"}\r
index 39ed821..04e53d9 100644 (file)
@@ -52,7 +52,7 @@ sw{
         awa{"Kiawadhi"}\r
         ay{"Kiaymara"}\r
         az{"Kiazerbaijani"}\r
-        ba{"Kibashkir"}\r
+        ba{"Kibashkiri"}\r
         ban{"Kibali"}\r
         bas{"Kibasaa"}\r
         bax{"Kibamun"}\r
@@ -75,7 +75,7 @@ sw{
         br{"Kibretoni"}\r
         brx{"Kibodo"}\r
         bs{"Kibosnia"}\r
-        bug{"Lugha ya Buginese"}\r
+        bug{"Kibugini"}\r
         bum{"Kibulu"}\r
         byn{"Kiblin"}\r
         byv{"Kimedumba"}\r
@@ -94,7 +94,7 @@ sw{
         cop{"Kikhufti"}\r
         crs{"Krioli ya Shelisheli"}\r
         cs{"Kicheki"}\r
-        cu{"Kislovakia cha Church"}\r
+        cu{"Kislovakia cha Kanisa"}\r
         cv{"Kichuvash"}\r
         cy{"Kiwelisi"}\r
         da{"Kidenmaki"}\r
@@ -104,7 +104,7 @@ sw{
         de{"Kijerumani"}\r
         dgr{"Kidogrib"}\r
         dje{"Kizarma"}\r
-        dsb{"Kidolnoserbski"}\r
+        dsb{"Kisobia cha Chini"}\r
         dua{"Kiduala"}\r
         dv{"Kidivehi"}\r
         dyo{"Kijola-Fonyi"}\r
@@ -119,14 +119,16 @@ sw{
         el{"Kigiriki"}\r
         en{"Kiingereza"}\r
         en_CA{"Kiingereza (Canada)"}\r
+        en_GB{"Kiingereza (Uingereza)"}\r
         eo{"Kiesperanto"}\r
         es{"Kihispania"}\r
-        es_MX{"Kihispania (Mexico)"}\r
+        es_419{"Kihispania (Amerika ya Latini)"}\r
+        es_ES{"Kihispania (Ulaya)"}\r
         et{"Kiestonia"}\r
-        eu{"Kibasque"}\r
+        eu{"Kibaski"}\r
         ewo{"Kiewondo"}\r
         fa{"Kiajemi"}\r
-        ff{"Kifula"}\r
+        ff{"Kifulani"}\r
         fi{"Kifini"}\r
         fil{"Kifilipino"}\r
         fj{"Kifiji"}\r
@@ -165,7 +167,7 @@ sw{
         hr{"Kikroeshia"}\r
         hsb{"Kisobia cha Ukanda wa Juu"}\r
         ht{"Kihaiti"}\r
-        hu{"Kihangari"}\r
+        hu{"Kihungaria"}\r
         hup{"Hupa"}\r
         hy{"Kiarmenia"}\r
         hz{"Kiherero"}\r
@@ -173,14 +175,15 @@ sw{
         iba{"Kiiban"}\r
         ibb{"Kiibibio"}\r
         id{"Kiindonesia"}\r
+        ie{"lugha ya kisayansi"}\r
         ig{"Kiigbo"}\r
-        ii{"Sichuan Yi"}\r
+        ii{"Kiyi cha Sichuan"}\r
         ilo{"Kiilocano"}\r
         inh{"Kiingush"}\r
         io{"Kiido"}\r
-        is{"Kiaisilandi"}\r
+        is{"Kiisilandi"}\r
         it{"Kiitaliano"}\r
-        iu{"Kiinuktitut"}\r
+        iu{"Kiinuktituti"}\r
         ja{"Kijapani"}\r
         jbo{"Lojban"}\r
         jgo{"Kingomba"}\r
@@ -267,7 +270,7 @@ sw{
         mic{"Mi’kmaq"}\r
         min{"Kiminangkabau"}\r
         mk{"Kimacedonia"}\r
-        ml{"Kimalayalam"}\r
+        ml{"Kimalayalamu"}\r
         mn{"Kimongolia"}\r
         mni{"Kimanipuri"}\r
         moh{"Lugha ya Mohawk"}\r
@@ -326,7 +329,8 @@ sw{
         prg{"Kiprussia"}\r
         ps{"Kipashto"}\r
         pt{"Kireno"}\r
-        qu{"Kiquechua"}\r
+        pt_PT{"Kireno (Ulaya)"}\r
+        qu{"Kikechua"}\r
         quc{"Kʼicheʼ"}\r
         rap{"Kirapanui"}\r
         rar{"Kirarotonga"}\r
@@ -334,7 +338,7 @@ sw{
         rn{"Kirundi"}\r
         ro{"Kiromania"}\r
         rof{"Kirombo"}\r
-        root{"Root"}\r
+        root{"Kiroot"}\r
         ru{"Kirusi"}\r
         rup{"Kiaromania"}\r
         rw{"Kinyarwanda"}\r
@@ -359,6 +363,7 @@ sw{
         sh{"Kiserbia-kroeshia"}\r
         shi{"Kitachelhit"}\r
         shn{"Kishan"}\r
+        shu{"Kiarabu cha Chad"}\r
         si{"Kisinhala"}\r
         sk{"Kislovakia"}\r
         sl{"Kislovenia"}\r
@@ -381,16 +386,15 @@ sw{
         sus{"Kisusu"}\r
         sv{"Kiswidi"}\r
         sw{"Kiswahili"}\r
-        sw_CD{"Kingwana"}\r
         swb{"Shikomor"}\r
         syr{"Lugha ya Syriac"}\r
-        ta{"Kitamil"}\r
+        ta{"Kitamili"}\r
         te{"Kitelugu"}\r
         tem{"Kitemne"}\r
         teo{"Kiteso"}\r
         tet{"Kitetum"}\r
         tg{"Kitajiki"}\r
-        th{"Kitailandi"}\r
+        th{"Kithai"}\r
         ti{"Kitigrinya"}\r
         tig{"Kitigre"}\r
         tk{"Kiturukimeni"}\r
@@ -408,10 +412,10 @@ sw{
         twq{"Kitasawaq"}\r
         ty{"Kitahiti"}\r
         tyv{"Kituva"}\r
-        tzm{"Central Atlas Tamazight"}\r
-        udm{"Udmurt"}\r
+        tzm{"Kitamazighati cha Atlasi ya Kati"}\r
+        udm{"Kiudmurt"}\r
         ug{"Kiuyghur"}\r
-        uk{"Kiukraine"}\r
+        uk{"Kiukraini"}\r
         umb{"Umbundu"}\r
         und{"Lugha Isiyojulikana"}\r
         ur{"Kiurdu"}\r
@@ -421,12 +425,12 @@ sw{
         vi{"Kivietinamu"}\r
         vo{"Kivolapuk"}\r
         vun{"Kivunjo"}\r
-        wa{"Walloon"}\r
-        wae{"Walser"}\r
+        wa{"Kiwaloon"}\r
+        wae{"Kiwalser"}\r
         wal{"Kiwolaytta"}\r
         war{"Kiwaray"}\r
         wbp{"Kiwarlpiri"}\r
-        wo{"Lugha ya Wolof"}\r
+        wo{"Kiwolofu"}\r
         xal{"Kikalmyk"}\r
         xh{"Kixhosa"}\r
         xog{"Kisoga"}\r
@@ -644,7 +648,7 @@ sw{
             vaii{"Dijiti za Vai"}\r
         }\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.65"}\r
     characterLabelPattern{\r
         all{"{0} — zote"}\r
         category-list{"{0}: {1}"}\r
@@ -661,9 +665,9 @@ sw{
         }\r
     }\r
     codePatterns{\r
-        language{"{0}"}\r
-        script{"{0}"}\r
-        territory{"{0}"}\r
+        language{"Lugha: {0}"}\r
+        script{"Hati: {0}"}\r
+        territory{"Eneo: {0}"}\r
     }\r
     localeDisplayPattern{\r
         keyTypePattern{"{0}: {1}"}\r
index 594eb3b..bd97691 100644 (file)
@@ -6,7 +6,6 @@ sw_CD{
         ar_001{"Kiarabu cha Dunia Kilichosanifishwa"}\r
         arq{"Kiarabu cha Aljeria"}\r
         az{"Kiazabajani"}\r
-        bug{"Kibugini"}\r
         gv{"Kimanksi"}\r
         gwi{"Kigwichiin"}\r
         hup{"Kihupa"}\r
@@ -30,14 +29,12 @@ sw_CD{
         nqo{"Kiinko"}\r
         pcm{"Pijini ya Nijeria"}\r
         quc{"Kikiiche"}\r
-        root{"Kiroot"}\r
         shu{"Kiarabu cha Chadi"}\r
         srn{"Kitongo cha Sranan"}\r
         swb{"Kikomoro"}\r
         syr{"Kisiria"}\r
         udm{"Kiudumurti"}\r
-        wae{"Kiwalser"}\r
         yi{"Kiyidi"}\r
     }\r
-    Version{"2.1.39.11"}\r
+    Version{"2.1.43.65"}\r
 }\r
index aa78815..a081bc6 100644 (file)
@@ -2,45 +2,47 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 sw_KE{\r
     Languages{\r
-        ain{"Ainu"}\r
-        ar_001{"Kiarabu cha Sasa Kilichosanifishwa"}\r
         arq{"Kiarabu cha Aljeria"}\r
-        az{"Kiazabajani"}\r
-        bug{"Kibugini"}\r
-        ckb{"Kikurdi cha Kati"}\r
-        dsb{"Kisorbian cha Chini"}\r
+        as{"Kiasamisi"}\r
+        chr{"Kicheroki"}\r
+        cu{"Kislovakia cha Kanisa la Jadi"}\r
+        gaa{"Kiga"}\r
         grc{"Kigiriki cha Kale"}\r
+        gwi{"Kigwichʼin"}\r
         hsb{"Kisorbia cha Juu"}\r
-        inh{"Kingushi"}\r
+        hup{"Kihupa"}\r
+        hy{"Kiamenia"}\r
+        inh{"Kiingushi"}\r
         jbo{"Kilojbani"}\r
-        kac{"Kikachin"}\r
-        khq{"Kikoyra Chiini"}\r
+        kac{"Kikachini"}\r
+        khq{"Kikoyrachiini"}\r
         kkj{"Kikako"}\r
+        km{"Kikhmeri"}\r
+        kn{"Kikanada"}\r
         koi{"Kikomipermyak"}\r
         kru{"Kikurukh"}\r
+        lag{"Kilangi"}\r
         lam{"Kilamba"}\r
-        li{"Kilimbugish"}\r
+        li{"Kilimbugishi"}\r
         mdf{"Kimoksha"}\r
-        mic{"Kimicmac"}\r
+        mic{"Kimi'kmak"}\r
         mk{"Kimasedonia"}\r
         moh{"Kimohoki"}\r
         nnh{"Kiingiemboon"}\r
         nqo{"Kiin’ko"}\r
         or{"Kiodia"}\r
-        pcm{"Pijini ya Nijeria"}\r
-        root{"Kiroot"}\r
-        sco{"sco"}\r
-        ses{"Kikoyraboro Senni"}\r
+        pcm{"Kipijini cha Nigeria"}\r
+        ses{"Kikoyraborosenni"}\r
         shu{"Kiarabu cha Chadi"}\r
-        srn{"Kiscran Tongo"}\r
-        swb{"Kicomoro"}\r
-        syr{"Kisyria"}\r
+        srn{"Kisranantongo"}\r
+        sw_CD{"Kiswahili cha Kongo"}\r
+        swb{"Kikomoro"}\r
+        syr{"Kisiria"}\r
         tw{"Kitwi"}\r
-        tzm{"Lugha ya Central Atlas Tamazight"}\r
+        twq{"Kitasawak"}\r
         udm{"Kiudumurti"}\r
-        wa{"Kiwaloon"}\r
-        wae{"Kiwalser"}\r
-        zgh{"Tamazight Sanifu ya Moroko"}\r
+        ug{"Kiuiguri"}\r
+        zgh{"Kitamazighati Sanifu cha Moroko"}\r
     }\r
-    Version{"2.1.38.39"}\r
+    Version{"2.1.43.65"}\r
 }\r
index 193fd88..04e8622 100644 (file)
@@ -416,7 +416,7 @@ ta{
         rwk{"ருவா"}\r
         sa{"சமஸ்கிருதம்"}\r
         sad{"சான்டாவே"}\r
-        sah{"சகா"}\r
+        sah{"à®\9aà®\95à¯\8dà®\95ா"}\r
         sam{"சமாரிடன் அராமைக்"}\r
         saq{"சம்புரு"}\r
         sas{"சாசாக்"}\r
@@ -702,7 +702,7 @@ ta{
             chinese{"சீன நாள்காட்டி"}\r
             coptic{"காப்டிக் நாள்காட்டி"}\r
             dangi{"டேங்கி நாள்காட்டி"}\r
-            ethiopic{"à®\8eதà¯\8dதியà¯\8bபà¯\8dபிà®\95à¯\8d நாள்காட்டி"}\r
+            ethiopic{"à®\8eதà¯\8dதியà¯\8bபà¯\8dபிய நாள்காட்டி"}\r
             ethiopic-amete-alem{"எத்தியோபிக் அமேதே ஆலெம் நாள்காட்டி"}\r
             gregorian{"கிரிகோரியன் நாள்காட்டி"}\r
             hebrew{"ஹீப்ரு நாள்காட்டி"}\r
@@ -712,7 +712,7 @@ ta{
             islamic-umalqura{"இஸ்லாமிய நாள்காட்டி (உம்-அல்-குரா)"}\r
             iso8601{"ISO-8601 நாள்காட்டி"}\r
             japanese{"ஜப்பானிய நாள்காட்டி"}\r
-            persian{"பà¯\86à®°à¯\8dà®\9aியனà¯\8d நாள்காட்டி"}\r
+            persian{"பாரà®\9aà¯\80à®\95 நாள்காட்டி"}\r
             roc{"மின்கோ நாள்காட்டி"}\r
         }\r
         cf{\r
@@ -787,7 +787,7 @@ ta{
         }\r
         m0{\r
             bgn{"யூஎஸ் பிஜிஎன் ஒலிபெயர்ப்பு"}\r
-            ungegn{"UNGEGN"}\r
+            ungegn{"யூஎன் ஜிஇஜிஎன் ஒலிபெயர்ப்பு"}\r
         }\r
         ms{\r
             metric{"மெட்ரிக் முறை"}\r
@@ -841,7 +841,7 @@ ta{
         PINYIN{"பின்யின் ரோமானைசெஷன்"}\r
         WADEGILE{"வேட்-கைல்ஸ் ரோமனைஷேசன்"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.50"}\r
     characterLabelPattern{\r
         all{"{0} — அனைத்தும்"}\r
         category-list{"{0}: {1}"}\r
index 0db726b..77174a9 100644 (file)
@@ -44,7 +44,7 @@ te{
         anp{"ఆంగిక"}\r
         ar{"అరబిక్"}\r
         ar_001{"ఆధునిక ప్రామాణిక అరబిక్"}\r
-        arc{"à°\85రామà±\87క్"}\r
+        arc{"à°\85రామà±\88క్"}\r
         arn{"మపుచే"}\r
         arp{"అరాపాహో"}\r
         arw{"అరావాక్"}\r
@@ -56,11 +56,11 @@ te{
         awa{"అవధి"}\r
         ay{"ఐమారా"}\r
         az{"అజర్బైజాని"}\r
-        ba{"బష్కిర్"}\r
+        ba{"బాషà±\8dà°\95à°¿à°°à±\8d"}\r
         bal{"బాలుచి"}\r
         ban{"బాలినీస్"}\r
         bas{"బసా"}\r
-        be{"బెలరుషియన్"}\r
+        be{"à°¬à±\86లారà±\81షియనà±\8d"}\r
         bej{"బేజా"}\r
         bem{"బెంబా"}\r
         bez{"బెనా"}\r
@@ -72,7 +72,7 @@ te{
         bin{"బిని"}\r
         bla{"సిక్సికా"}\r
         bm{"బంబారా"}\r
-        bn{"బాà°\82à°\97à±\8dలా"}\r
+        bn{"బంగ్లా"}\r
         bo{"టిబెటన్"}\r
         bpy{"బిష్ణుప్రియ"}\r
         br{"బ్రెటన్"}\r
@@ -87,7 +87,7 @@ te{
         car{"కేరిబ్"}\r
         cch{"అట్సామ్"}\r
         ce{"చెచెన్"}\r
-        ceb{"à°¸à±\86à°¬à±\81à°¯ానో"}\r
+        ceb{"à°¸à±\86à°¬à±\81à°µానో"}\r
         cgg{"ఛిగా"}\r
         ch{"చమర్రో"}\r
         chb{"చిబ్చా"}\r
@@ -159,7 +159,7 @@ te{
         fi{"ఫిన్నిష్"}\r
         fil{"ఫిలిపినో"}\r
         fj{"ఫిజియన్"}\r
-        fo{"ఫారà±\8bà°¯à±\80à°\9c్"}\r
+        fo{"ఫారà±\8bà°¸్"}\r
         fon{"ఫాన్"}\r
         fr{"ఫ్రెంచ్"}\r
         fr_CA{"కెనడియెన్ ఫ్రెంచ్"}\r
@@ -198,20 +198,20 @@ te{
         hai{"హైడా"}\r
         hak{"హక్కా చైనీస్"}\r
         haw{"హవాయియన్"}\r
-        he{"à°¹à±\80బ్రూ"}\r
+        he{"హిబ్రూ"}\r
         hi{"హిందీ"}\r
-        hil{"హిలిà°\97à±\87యినà±\8bన్"}\r
+        hil{"హిలిà°\97à±\86నాన్"}\r
         hit{"హిట్టిటే"}\r
         hmn{"మోంగ్"}\r
         ho{"హిరి మోటు"}\r
-        hr{"à°\95à±\8dà°°à±\8bయేషియన్"}\r
+        hr{"à°\95à±\8dà°°à±\8aయేషియన్"}\r
         hsb{"అప్పర్ సోర్బియన్"}\r
         hsn{"జియాంగ్ చైనీస్"}\r
         ht{"హైటియన్ క్రియోల్"}\r
         hu{"హంగేరియన్"}\r
         hup{"హుపా"}\r
         hy{"ఆర్మేనియన్"}\r
-        hz{"హిరà±\87రో"}\r
+        hz{"à°¹à±\86à°°à±\86రో"}\r
         ia{"ఇంటర్లింగ్వా"}\r
         iba{"ఐబాన్"}\r
         ibb{"ఇబిబియో"}\r
@@ -247,7 +247,7 @@ te{
         kfo{"కోరో"}\r
         kg{"కోంగో"}\r
         kha{"ఖాసి"}\r
-        kho{"à°\96à°\9fà±\8bనీస్"}\r
+        kho{"à°\96à±\8bà°\9fనీస్"}\r
         khq{"కొయరా చీన్నీ"}\r
         ki{"కికుయు"}\r
         kj{"క్వాన్యామ"}\r
@@ -313,15 +313,15 @@ te{
         men{"మెండే"}\r
         mer{"మెరు"}\r
         mfe{"మొరిస్యేన్"}\r
-        mg{"మాలాà°\97సి"}\r
+        mg{"మలà°\97à°¾సి"}\r
         mga{"మధ్యమ ఐరిష్"}\r
         mgh{"మక్వా-మిట్టో"}\r
         mgo{"మెటా"}\r
         mh{"మార్షలీస్"}\r
-        mi{"మయà±\8bà°°à°¿"}\r
+        mi{"మావà±\8aà°°à±\80"}\r
         mic{"మికమాక్"}\r
         min{"మినాంగ్‌కాబో"}\r
-        mk{"మసడోనియన్"}\r
+        mk{"మాసిడోనియన్"}\r
         ml{"మలయాళం"}\r
         mn{"మంగోలియన్"}\r
         mnc{"మంచు"}\r
@@ -329,7 +329,7 @@ te{
         moh{"మోహాక్"}\r
         mos{"మోస్సి"}\r
         mr{"మరాఠీ"}\r
-        ms{"మలాయà±\8d"}\r
+        ms{"మలయ్"}\r
         mt{"మాల్టీస్"}\r
         mua{"మండాంగ్"}\r
         mul{"బహుళ భాషలు"}\r
@@ -351,7 +351,7 @@ te{
         new{"నెవారి"}\r
         ng{"డోంగా"}\r
         nia{"నియాస్"}\r
-        niu{"నాయియన్"}\r
+        niu{"నియాన్"}\r
         nl{"డచ్"}\r
         nl_BE{"ఫ్లెమిష్"}\r
         nmg{"క్వాసియె"}\r
@@ -403,7 +403,7 @@ te{
         rar{"రారోటొంగాన్"}\r
         rm{"రోమన్ష్"}\r
         rn{"రుండి"}\r
-        ro{"à°°à±\8bమానియన్"}\r
+        ro{"à°°à±\8bà°®à±\87నియన్"}\r
         ro_MD{"మొల్డావియన్"}\r
         rof{"రోంబో"}\r
         rom{"రోమానీ"}\r
@@ -414,18 +414,18 @@ te{
         rwk{"ర్వా"}\r
         sa{"సంస్కృతం"}\r
         sad{"సండావి"}\r
-        sah{"సఖా"}\r
-        sam{"సమారిà°\9fà°¨à±\8d à°\85à°°à°®à±\87క్"}\r
+        sah{"సాà°\96à°¾"}\r
+        sam{"సమారిà°\9fà°¨à±\8d à°\85రామà±\88క్"}\r
         saq{"సంబురు"}\r
         sas{"ససక్"}\r
-        sat{"à°¸à°\82à°\9fాలి"}\r
+        sat{"à°¸à°\82à°¤ాలి"}\r
         sba{"గాంబే"}\r
         sbp{"సాంగు"}\r
         sc{"సార్డీనియన్"}\r
         scn{"సిసిలియన్"}\r
         sco{"స్కాట్స్"}\r
         sd{"సింధీ"}\r
-        sdh{"à°¦à°\95à±\8dà°·à°¿à°£ à°\95à±\81à°°à±\8dà°¦ిష్"}\r
+        sdh{"à°¦à°\95à±\8dà°·à°¿à°£ à°\95à±\81à°°à±\8dà°¡ిష్"}\r
         se{"ఉత్తర సామి"}\r
         seh{"సెనా"}\r
         sel{"సేల్కప్"}\r
@@ -437,7 +437,7 @@ te{
         shn{"షాన్"}\r
         si{"సింహళం"}\r
         sid{"సిడామో"}\r
-        sk{"à°¸à±\8dà°²à±\8bవాà°\95à±\8d"}\r
+        sk{"స్లోవక్"}\r
         sl{"స్లోవేనియన్"}\r
         sm{"సమోవన్"}\r
         sma{"దక్షిణ సామి"}\r
@@ -474,7 +474,7 @@ te{
         tet{"టేటం"}\r
         tg{"తజిక్"}\r
         th{"థాయ్"}\r
-        ti{"à°¤ిగ్రిన్యా"}\r
+        ti{"à°\9fిగ్రిన్యా"}\r
         tig{"టీగ్రె"}\r
         tiv{"టివ్"}\r
         tk{"తుర్క్‌మెన్"}\r
@@ -502,7 +502,7 @@ te{
         udm{"ఉడ్ముర్ట్"}\r
         ug{"ఉయ్‌ఘర్"}\r
         uga{"ఉగారిటిక్"}\r
-        uk{"à°\89à°\95à±\8dà°°à±\87నియన్"}\r
+        uk{"à°\89à°\95à±\8dà°°à±\86యినియన్"}\r
         umb{"ఉమ్బుండు"}\r
         und{"తెలియని భాష"}\r
         ur{"ఉర్దూ"}\r
@@ -519,7 +519,7 @@ te{
         war{"వారే"}\r
         was{"వాషో"}\r
         wbp{"వార్లపిరి"}\r
-        wo{"à°µà±\8aలాఫ్"}\r
+        wo{"à°\89à°²à±\82ఫ్"}\r
         wuu{"వు చైనీస్"}\r
         xal{"కల్మిక్"}\r
         xh{"షోసా"}\r
@@ -844,7 +844,7 @@ te{
         REVISED{"సవరించబడిన వర్ణక్రమం"}\r
         WADEGILE{"వేడ్-గైల్స్ రోమనైజేషన్"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.50"}\r
     characterLabelPattern{\r
         all{"{0} — అన్ని"}\r
         category-list{"{0}: {1}"}\r
index d88343a..ab51bff 100644 (file)
@@ -183,7 +183,7 @@ tg{
             latn{"Рақамҳои ғарбӣ"}\r
         }\r
     }\r
-    Version{"2.1.38.71"}\r
+    Version{"2.1.44.88"}\r
     codePatterns{\r
         language{"{0}"}\r
         script{"{0}"}\r
index d3957c9..4412cdd 100644 (file)
@@ -7,7 +7,7 @@ th{
         colAlternate{"ละเว้นการจัดเรียงสัญลักษณ์"}\r
         colBackwards{"การจัดเรียงเสียงหนักเบาในลำดับถอยหลัง"}\r
         colCaseFirst{"การเรียงลำดับตัวพิมพ์ใหญ่/ตัวพิมพ์เล็ก"}\r
-        colCaseLevel{"à¸\81ารà¸\88ัà¸\94à¹\80รียà¸\87à¸\95ามà¸\84วามสำà¸\84ัà¸\8dà¸\82อà¸\87à¸\95ัวà¸\9eิมà¸\9eà¹\8cอัà¸\81ษร"}\r
+        colCaseLevel{"à¸\81ารà¸\88ัà¸\94à¹\80รียà¸\87à¹\81à¸\9aà¸\9aà¸\95รà¸\87à¸\95ามà¸\95ัวà¸\9eิมà¸\9eà¹\8cà¹\83หà¸\8dà¹\88-à¹\80ลà¹\87à¸\81"}\r
         colNormalization{"การจัดเรียงแบบที่เป็นปกติ"}\r
         colNumeric{"การจัดเรียงตัวเลข"}\r
         colStrength{"ความแม่นยำในการจัดเรียง"}\r
@@ -89,7 +89,7 @@ th{
         bkm{"กม"}\r
         bla{"สิกสิกา"}\r
         bm{"บัมบารา"}\r
-        bn{"à¹\80à¸\9aà¸\87à¸\81าลี"}\r
+        bn{"à¸\9aัà¸\87à¸\81ลา"}\r
         bo{"ทิเบต"}\r
         bpy{"พิศนุปริยะ"}\r
         bqi{"บักติยารี"}\r
@@ -104,7 +104,7 @@ th{
         bum{"บูลู"}\r
         byn{"บลิน"}\r
         byv{"เมดุมบา"}\r
-        ca{"à¸\81าà¸\95าลัà¸\87"}\r
+        ca{"à¸\84าà¸\95าลัà¸\99"}\r
         cad{"คัดโด"}\r
         car{"คาริบ"}\r
         cay{"คายูกา"}\r
@@ -122,7 +122,7 @@ th{
         chp{"ชิพิวยัน"}\r
         chr{"เชอโรกี"}\r
         chy{"เชเยนเน"}\r
-        ckb{"à¹\80à¸\84ิรà¹\8cà¸\94à¹\82à¸\8bราà¸\99ี"}\r
+        ckb{"à¹\80à¸\84ิรà¹\8cà¸\94à¸\95อà¸\99à¸\81ลาà¸\87"}\r
         co{"คอร์ซิกา"}\r
         cop{"คอปติก"}\r
         cps{"กาปิซนอน"}\r
@@ -147,7 +147,7 @@ th{
         din{"ดิงกา"}\r
         dje{"ซาร์มา"}\r
         doi{"โฑครี"}\r
-        dsb{"à¸\8bอรà¹\8cà¸\9aสà¹\8cตอนล่าง"}\r
+        dsb{"à¸\8bอรà¹\8cà¹\80à¸\9aียตอนล่าง"}\r
         dtp{"ดูซุนกลาง"}\r
         dua{"ดัวลา"}\r
         dum{"ดัตช์กลาง"}\r
@@ -313,7 +313,7 @@ th{
         krj{"กินารายอา"}\r
         krl{"แกรเลียน"}\r
         kru{"กุรุข"}\r
-        ks{"à¸\81ัศมีร์"}\r
+        ks{"à¹\81à¸\84à¸\8aà¹\80มียร์"}\r
         ksb{"ชัมบาลา"}\r
         ksf{"บาเฟีย"}\r
         ksh{"โคโลญ"}\r
@@ -350,7 +350,7 @@ th{
         lui{"ลุยเซโน"}\r
         lun{"ลันดา"}\r
         luo{"ลัว"}\r
-        lus{"ลูà¹\84à¸\8a"}\r
+        lus{"มิà¹\82à¸\8b"}\r
         luy{"ลูเยีย"}\r
         lv{"ลัตเวีย"}\r
         lzh{"จีนคลาสสิก"}\r
@@ -403,13 +403,13 @@ th{
         naq{"นามา"}\r
         nb{"นอร์เวย์บุคมอล"}\r
         nd{"เอ็นเดเบเลเหนือ"}\r
-        nds{"เยอรมันต่ำ - แซกซอนต่ำ"}\r
+        nds{"เยอรมันต่ำ"}\r
         nds_NL{"แซกซอนใต้"}\r
         ne{"เนปาล"}\r
         new{"เนวาร์"}\r
         ng{"ดองกา"}\r
         nia{"นีอัส"}\r
-        niu{"à¸\99ีอู"}\r
+        niu{"à¸\99ีวà¹\80ว"}\r
         njo{"อ๋าวนากา"}\r
         nl{"ดัตช์"}\r
         nl_BE{"เฟลมิช"}\r
@@ -434,7 +434,7 @@ th{
         oc{"อ็อกซิตัน"}\r
         oj{"โอจิบวา"}\r
         om{"โอโรโม"}\r
-        or{"à¹\82อริยา"}\r
+        or{"à¹\82อà¸\94ิยา"}\r
         os{"ออสเซเตีย"}\r
         osa{"โอซากี"}\r
         ota{"ตุรกีออตโตมัน"}\r
@@ -563,7 +563,7 @@ th{
         tkl{"โตเกเลา"}\r
         tkr{"แซคเซอร์"}\r
         tl{"ตากาล็อก"}\r
-        tlh{"à¸\84ลิà¸\87à¸\81อน"}\r
+        tlh{"à¸\84ลิà¸\87à¸\87อน"}\r
         tli{"ทลิงกิต"}\r
         tly{"ทาลิช"}\r
         tmh{"ทามาเชก"}\r
@@ -632,8 +632,8 @@ th{
         zen{"เซนากา"}\r
         zgh{"ทามาไซต์โมร็อกโกมาตรฐาน"}\r
         zh{"จีน"}\r
-        zh_Hans{"à¸\88ีà¸\99à¸\95ัวยà¹\88อ"}\r
-        zh_Hant{"à¸\88ีà¸\99à¸\95ัวà¹\80à¸\95à¹\87ม"}\r
+        zh_Hans{"à¸\88ีà¸\99à¸\9bระยุà¸\81à¸\95à¹\8c"}\r
+        zh_Hant{"à¸\88ีà¸\99à¸\94ัà¹\89à¸\87à¹\80à¸\94ิม"}\r
         zu{"ซูลู"}\r
         zun{"ซูนิ"}\r
         zxx{"ไม่มีข้อมูลภาษา"}\r
@@ -1055,7 +1055,7 @@ th{
         VALLADER{"วัลลาเดอร์"}\r
         WADEGILE{"การถอดอักษรแบบเวด-ไจลส์"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.89"}\r
     characterLabelPattern{\r
         all{"{0} — ทั้งหมด"}\r
         category-list{"{0}: {1}"}\r
index 25f6c44..e07291e 100644 (file)
@@ -104,7 +104,7 @@ ti{
         Ethi{"ፊደል"}\r
         Latn{"ላቲን"}\r
     }\r
-    Version{"2.1.38.72"}\r
+    Version{"2.1.44.88"}\r
     codePatterns{\r
         language{"{0}"}\r
         script{"{0}"}\r
diff --git a/source/data/lang/tk.txt b/source/data/lang/tk.txt
new file mode 100644 (file)
index 0000000..2a1ad01
--- /dev/null
@@ -0,0 +1,554 @@
+// © 2016 and later: Unicode, Inc. and others.\r
+// License & terms of use: http://www.unicode.org/copyright.html#License\r
+tk{\r
+    Keys{\r
+        calendar{"Senenama"}\r
+        cf{"Pul birliginiň formaty"}\r
+        collation{"Tertip rejesi"}\r
+        currency{"Pul birligi"}\r
+        hc{"Sagat aýlawy (12–24 sagat)"}\r
+        lb{"Setirden setire geçiş stili"}\r
+        ms{"Ölçeg ulgamy"}\r
+        numbers{"Sanlar"}\r
+    }\r
+    Languages{\r
+        aa{"afar dili"}\r
+        ab{"abhaz dili"}\r
+        ace{"açeh dili"}\r
+        ada{"adangme dili"}\r
+        ady{"adygeý dili"}\r
+        af{"afrikaans dili"}\r
+        agq{"ahem dili"}\r
+        ain{"aýn dili"}\r
+        ak{"akan dili"}\r
+        ale{"aleut dili"}\r
+        alt{"günorta Altaý dili"}\r
+        am{"amhar dili"}\r
+        an{"aragon dili"}\r
+        anp{"angika dili"}\r
+        ar{"arap dili"}\r
+        ar_001{"häzirki zaman standart arap dili"}\r
+        arn{"mapuçe dili"}\r
+        arp{"arapaho dili"}\r
+        as{"assam dili"}\r
+        asa{"asu dili"}\r
+        ast{"asturiý dili"}\r
+        av{"awar dili"}\r
+        awa{"awadhi dili"}\r
+        ay{"aýmara dili"}\r
+        az{"azerbaýjan dili"}\r
+        ba{"başgyrt dili"}\r
+        ban{"baliý dili"}\r
+        bas{"basaa dili"}\r
+        be{"belarus dili"}\r
+        bem{"bemba dili"}\r
+        bez{"bena dili"}\r
+        bg{"bolgar dili"}\r
+        bho{"bhojpuri dili"}\r
+        bi{"bislama dili"}\r
+        bin{"bini dili"}\r
+        bla{"siksika dili"}\r
+        bm{"bamana"}\r
+        bn{"bengal dili"}\r
+        bo{"tibet dili"}\r
+        br{"breton dili"}\r
+        brx{"bodo dili"}\r
+        bs{"boşnak dili"}\r
+        bug{"bugiý dili"}\r
+        byn{"blin dili"}\r
+        ca{"katalan dili"}\r
+        ce{"çeçen dili"}\r
+        ceb{"sebuan dili"}\r
+        cgg{"kiga"}\r
+        ch{"çamorro"}\r
+        chk{"çuuk dili"}\r
+        chm{"mariý dili"}\r
+        cho{"çokto"}\r
+        chr{"çeroki"}\r
+        chy{"şaýenn dili"}\r
+        ckb{"merkezi kürt dili"}\r
+        co{"korsikan dili"}\r
+        crs{"seselwa kreole-fransuz dili"}\r
+        cs{"çeh dili"}\r
+        cu{"buthana slaw dili"}\r
+        cv{"çuwaş dili"}\r
+        cy{"walliý dili"}\r
+        da{"daniýa dili"}\r
+        dak{"dakota dili"}\r
+        dar{"dargi dili"}\r
+        dav{"taita dili"}\r
+        de{"nemes dili"}\r
+        de_CH{"ýokarky nemes dili (Şweýsariýa)"}\r
+        dgr{"dogrib dili"}\r
+        dje{"zarma dili"}\r
+        dsb{"aşaky lužits dili"}\r
+        dua{"duala dili"}\r
+        dv{"diwehi dili"}\r
+        dyo{"ýola-Fonyi dili"}\r
+        dz{"dzong-ke dili"}\r
+        dzg{"daza dili"}\r
+        ebu{"embu dili"}\r
+        ee{"ewe dili"}\r
+        efi{"efik dili"}\r
+        eka{"ekajuk dili"}\r
+        el{"grek dili"}\r
+        en{"iňlis dili"}\r
+        en_GB{"iňlis dili (Beýik Britaniýa)"}\r
+        en_US{"iňlis dili (Amerika)"}\r
+        eo{"esperanto dili"}\r
+        es{"ispan dili"}\r
+        es_ES{"ispan dili (Ýewropa)"}\r
+        et{"eston dili"}\r
+        eu{"bask dili"}\r
+        ewo{"ewondo dili"}\r
+        fa{"pars dili"}\r
+        ff{"fula dili"}\r
+        fi{"fin dili"}\r
+        fil{"filippin dili"}\r
+        fj{"fiji dili"}\r
+        fo{"farer dili"}\r
+        fon{"fon dili"}\r
+        fr{"fransuz dili"}\r
+        fur{"friul dili"}\r
+        fy{"günbatar friz dili"}\r
+        ga{"irland dili"}\r
+        gaa{"ga dili"}\r
+        gd{"şotland kelt dili"}\r
+        gez{"geez dili"}\r
+        gil{"gilbert dili"}\r
+        gl{"galisiý dili"}\r
+        gn{"guarani dili"}\r
+        gor{"gorontalo dili"}\r
+        gsw{"nemes dili (Şweýsariýa)"}\r
+        gu{"gujarati dili"}\r
+        guz{"gusii dili"}\r
+        gv{"men dili"}\r
+        gwi{"gwiçin dili"}\r
+        ha{"hausa dili"}\r
+        haw{"gawaý dili"}\r
+        he{"ýewreý dili"}\r
+        hi{"hindi dili"}\r
+        hil{"hiligaýnon dili"}\r
+        hmn{"hmong dili"}\r
+        hr{"horwat dili"}\r
+        hsb{"ýokarky lužits dili"}\r
+        ht{"gaiti kreol dili"}\r
+        hu{"wenger dili"}\r
+        hup{"hupa"}\r
+        hy{"ermeni dili"}\r
+        hz{"gerero dili"}\r
+        ia{"interlingwa dili"}\r
+        iba{"iban dili"}\r
+        ibb{"ibibio dili"}\r
+        id{"indonez dili"}\r
+        ig{"igbo dili"}\r
+        ii{"syçuan-i dili"}\r
+        ilo{"iloko dili"}\r
+        inh{"inguş dili"}\r
+        io{"ido dili"}\r
+        is{"island dili"}\r
+        it{"italýan dili"}\r
+        iu{"inuktitut dili"}\r
+        ja{"ýapon dili"}\r
+        jbo{"lojban dili"}\r
+        jgo{"ngomba dili"}\r
+        jmc{"maçame dili"}\r
+        jv{"ýawa dili"}\r
+        ka{"gruzin dili"}\r
+        kab{"kabil dili"}\r
+        kac{"kaçin dili"}\r
+        kaj{"ju dili"}\r
+        kam{"kamba dili"}\r
+        kbd{"kabardin dili"}\r
+        kcg{"tiap dili"}\r
+        kde{"makonde dili"}\r
+        kea{"kabuwerdianu dili"}\r
+        kfo{"koro dili"}\r
+        kha{"khasi dili"}\r
+        khq{"koýra-Çini dili"}\r
+        ki{"kikuýu dili"}\r
+        kj{"kwanýama dili"}\r
+        kk{"gazak dili"}\r
+        kkj{"kako dili"}\r
+        kl{"grenland dili"}\r
+        kln{"kalenjin dili"}\r
+        km{"khmer dili"}\r
+        kmb{"kimbundu dili"}\r
+        kn{"kannada dili"}\r
+        ko{"koreý dili"}\r
+        kok{"konkani dili"}\r
+        kpe{"kpelle dili"}\r
+        kr{"kanuri"}\r
+        krc{"karaçaý-balkar dili"}\r
+        krl{"karel dili"}\r
+        kru{"kuruh dili"}\r
+        ks{"kaşmiri dili"}\r
+        ksb{"şambala dili"}\r
+        ksf{"bafia dili"}\r
+        ksh{"keln dili"}\r
+        ku{"kürt dili"}\r
+        kum{"kumyk dili"}\r
+        kv{"komi dili"}\r
+        kw{"korn dili"}\r
+        ky{"gyrgyz dili"}\r
+        la{"latyn dili"}\r
+        lad{"ladino dili"}\r
+        lag{"langi dili"}\r
+        lb{"lýuksemburg dili"}\r
+        lez{"lezgin dili"}\r
+        lg{"ganda dili"}\r
+        li{"limburg dili"}\r
+        lkt{"lakota dili"}\r
+        ln{"lingala dili"}\r
+        lo{"laos dili"}\r
+        loz{"lozi dili"}\r
+        lrc{"demirgazyk luri dili"}\r
+        lt{"litwa dili"}\r
+        lu{"luba-Katanga dili"}\r
+        lua{"luba-Lulua dili"}\r
+        lun{"lunda dili"}\r
+        luo{"luo dili"}\r
+        lus{"mizo dili"}\r
+        luy{"luýýa dili"}\r
+        lv{"latyş dili"}\r
+        mad{"madur dili"}\r
+        mag{"magahi dili"}\r
+        mai{"maýthili dili"}\r
+        mak{"makasar dili"}\r
+        mas{"masai dili"}\r
+        mdf{"mokşa dili"}\r
+        men{"mende dili"}\r
+        mer{"meru dili"}\r
+        mfe{"morisýen dili"}\r
+        mg{"malagasiý dili"}\r
+        mgh{"makua-Mitto dili"}\r
+        mgo{"meta dili"}\r
+        mh{"marşall dili"}\r
+        mi{"maori dili"}\r
+        mic{"mikmak dili"}\r
+        min{"minangkabau dili"}\r
+        mk{"makedon dili"}\r
+        ml{"malaýalam dili"}\r
+        mn{"mongol dili"}\r
+        mni{"manipuri dili"}\r
+        moh{"mogauk dili"}\r
+        mos{"mossi dili"}\r
+        mr{"marathi dili"}\r
+        ms{"malaý dili"}\r
+        mt{"malta dili"}\r
+        mua{"mundang dili"}\r
+        mul{"birnäçe dil"}\r
+        mus{"krik dili"}\r
+        mwl{"mirand dili"}\r
+        my{"birma dili"}\r
+        myv{"erzýan dili"}\r
+        mzn{"mazanderan dili"}\r
+        na{"nauru dili"}\r
+        nap{"neapolitan dili"}\r
+        naq{"nama dili"}\r
+        nb{"norwegiýa bukmol dili"}\r
+        nd{"demirgazyk ndebele dili"}\r
+        ne{"nepal dili"}\r
+        new{"newari dili"}\r
+        ng{"ndonga dili"}\r
+        nia{"nias dili"}\r
+        niu{"niue dili"}\r
+        nl{"niderland dili"}\r
+        nl_BE{"flamand dili"}\r
+        nmg{"kwasio dili"}\r
+        nn{"norwegiýa nýunorsk dili"}\r
+        nnh{"ngembun dili"}\r
+        nog{"nogaý dili"}\r
+        nqo{"nko dili"}\r
+        nr{"günorta ndebele dili"}\r
+        nso{"demirgazyk soto dili"}\r
+        nus{"nuer dili"}\r
+        nv{"nawaho dili"}\r
+        ny{"nýanja dili"}\r
+        nyn{"nýankole dili"}\r
+        oc{"oksitan dili"}\r
+        om{"oromo dili"}\r
+        or{"oriýa dili"}\r
+        os{"osetin dili"}\r
+        pa{"penjab dili"}\r
+        pag{"pangansinan dili"}\r
+        pam{"kapampangan dili"}\r
+        pap{"papýamento dili"}\r
+        pau{"palau dili"}\r
+        pcm{"nigeriý-pijin dili"}\r
+        pl{"polýak dili"}\r
+        prg{"prussiýa dili"}\r
+        ps{"peştun dili"}\r
+        pt{"portugal dili"}\r
+        pt_PT{"portugal dili (Ýewropa)"}\r
+        qu{"keçua dili"}\r
+        quc{"kiçe dili"}\r
+        rap{"rapanuý dili"}\r
+        rar{"kuk dili"}\r
+        rm{"retoroman dili"}\r
+        rn{"rundi dili"}\r
+        ro{"rumyn dili"}\r
+        ro_MD{"moldaw dili"}\r
+        rof{"rombo dili"}\r
+        root{"kök"}\r
+        ru{"rus dili"}\r
+        rup{"arumyn dili"}\r
+        rw{"kinýaruanda dili"}\r
+        rwk{"rwa dili"}\r
+        sa{"sanskrit dili"}\r
+        sad{"sandawe dili"}\r
+        sah{"ýakut dili"}\r
+        saq{"samburu dili"}\r
+        sat{"santali dili"}\r
+        sba{"ngambaý dili"}\r
+        sbp{"sangu dili"}\r
+        sc{"sardin dili"}\r
+        scn{"sisiliýa dili"}\r
+        sco{"şotland dili"}\r
+        sd{"sindhi dili"}\r
+        se{"demirgazyk saam dili"}\r
+        seh{"sena dili"}\r
+        ses{"koýraboro-Senni dili"}\r
+        sg{"sango dili"}\r
+        shi{"tahelhit dili"}\r
+        shn{"şan dili"}\r
+        si{"singal dili"}\r
+        sk{"slowak dili"}\r
+        sl{"slowen dili"}\r
+        sm{"samoa dili"}\r
+        sma{"günorta saam dili"}\r
+        smj{"lule-saam dili"}\r
+        smn{"inari-saam dili"}\r
+        sms{"skolt-saam dili"}\r
+        sn{"şona dili"}\r
+        snk{"soninke dili"}\r
+        so{"somali dili"}\r
+        sq{"alban dili"}\r
+        sr{"serb dili"}\r
+        srn{"sranan-tongo dili"}\r
+        ss{"swati dili"}\r
+        ssy{"saho dili"}\r
+        st{"günorta Soto dili"}\r
+        su{"sundan dili"}\r
+        suk{"sukuma dili"}\r
+        sv{"şwed dili"}\r
+        sw{"suahili dili"}\r
+        sw_CD{"kongo suahili dili"}\r
+        swb{"komor dili"}\r
+        syr{"siriýa dili"}\r
+        ta{"tamil dili"}\r
+        te{"telugu dili"}\r
+        tem{"temne dili"}\r
+        teo{"teso dili"}\r
+        tet{"tetum dili"}\r
+        tg{"täjik dili"}\r
+        th{"taý dili"}\r
+        ti{"tigrinýa dili"}\r
+        tig{"tigre dili"}\r
+        tk{"türkmen dili"}\r
+        tlh{"klingon dili"}\r
+        tn{"tswana dili"}\r
+        to{"tongan dili"}\r
+        tpi{"tok-pisin dili"}\r
+        tr{"türk dili"}\r
+        trv{"taroko dili"}\r
+        ts{"tsonga dili"}\r
+        tt{"tatar dili"}\r
+        tum{"tumbuka dili"}\r
+        tvl{"tuwalu dili"}\r
+        twq{"tasawak dili"}\r
+        ty{"taiti dili"}\r
+        tyv{"tuwa dili"}\r
+        tzm{"orta-Atlas tamazight dili"}\r
+        udm{"udmurt dili"}\r
+        ug{"uýgur dili"}\r
+        uk{"ukrain dili"}\r
+        umb{"umbundu dili"}\r
+        und{"näbelli dil"}\r
+        ur{"urdu"}\r
+        uz{"özbek dili"}\r
+        vai{"wai dili"}\r
+        ve{"wenda dili"}\r
+        vi{"wýetnam dili"}\r
+        vo{"wolapýuk dili"}\r
+        vun{"wunýo dili"}\r
+        wa{"wallon dili"}\r
+        wae{"walzer dili"}\r
+        wal{"wolaýta dili"}\r
+        war{"waraý dili"}\r
+        wo{"wolof dili"}\r
+        xal{"galmyk dili"}\r
+        xh{"kosa dili"}\r
+        xog{"soga dili"}\r
+        yav{"ýangben dili"}\r
+        ybb{"ýemba dili"}\r
+        yi{"idiş dili"}\r
+        yo{"ýoruba dili"}\r
+        yue{"kanton dili"}\r
+        zgh{"standart Marokko tamazight dili"}\r
+        zh{"hytaý dili"}\r
+        zh_Hans{"ýönekeýleşdirilen hytaý dili"}\r
+        zh_Hant{"adaty hytaý dili"}\r
+        zu{"zulu dili"}\r
+        zun{"zuni dili"}\r
+        zxx{"dilçilige degişli mazmun ýok"}\r
+        zza{"zazaki dili"}\r
+    }\r
+    Languages%short{\r
+        az{"azeri dili"}\r
+        en_US{"iňlis dili (ABŞ)"}\r
+    }\r
+    Scripts{\r
+        Arab{"Arap elipbiýi"}\r
+        Armn{"Ermeni elipbiýi"}\r
+        Beng{"Bengal elipbiýi"}\r
+        Bopo{"Bopomofo elipbiýi"}\r
+        Brai{"Braýl elipbiýi"}\r
+        Cyrl{"Kiril elipbiýi"}\r
+        Deva{"Dewanagari elipbiýi"}\r
+        Ethi{"Efiop elipbiýi"}\r
+        Geor{"Gruzin elipbiýi"}\r
+        Grek{"Grek elipbiýi"}\r
+        Gujr{"Gujarati elipbiýi"}\r
+        Guru{"Gurmuhi elipbiýi"}\r
+        Hanb{"Bopomofo han elipbiýi"}\r
+        Hang{"Hangyl elipbiýi"}\r
+        Hani{"Han elipbiýi"}\r
+        Hans{"Ýönekeýleşdirilen"}\r
+        Hant{"Adaty"}\r
+        Hebr{"Ýewreý elipbiýi"}\r
+        Hira{"Hiragana elipbiýi"}\r
+        Hrkt{"Ýapon bogun elipbiýleri"}\r
+        Jamo{"Jamo elipbiýi"}\r
+        Jpan{"Ýapon elipbiýi"}\r
+        Kana{"Katakana elipbiýi"}\r
+        Khmr{"Khmer elipbiýi"}\r
+        Knda{"Kannada elipbiýi"}\r
+        Kore{"Koreý elipbiýi"}\r
+        Laoo{"Laos elipbiýi"}\r
+        Latn{"Latyn elipbiýi"}\r
+        Mlym{"Malaýalam elipbiýi"}\r
+        Mong{"Mongol elipbiýi"}\r
+        Mymr{"Mýanma elipbiýi"}\r
+        Orya{"Oriýa elipbiýi"}\r
+        Sinh{"Singal elipbiýi"}\r
+        Taml{"Tamil elipbiýi"}\r
+        Telu{"Telugu elipbiýi"}\r
+        Thaa{"Taana elipbiýi"}\r
+        Thai{"Taý elipbiýi"}\r
+        Tibt{"Tibet elipbiýi"}\r
+        Zmth{"Matematiki belgiler"}\r
+        Zsye{"Emoji"}\r
+        Zsym{"Nyşanlar"}\r
+        Zxxx{"Ýazuwsyz"}\r
+        Zyyy{"Umumy"}\r
+        Zzzz{"Näbelli elipbiý"}\r
+    }\r
+    Scripts%stand-alone{\r
+        Hans{"Ýönekeýleşdirilen han elipbiýi"}\r
+        Hant{"Adaty han elipbiýi"}\r
+    }\r
+    Types{\r
+        calendar{\r
+            buddhist{"Buddist senenamasy"}\r
+            chinese{"Hytaý senenamasy"}\r
+            dangi{"Dangi senenamasy"}\r
+            ethiopic{"Efiop senenamasy"}\r
+            gregorian{"Grigorian senenamasy"}\r
+            hebrew{"Ýewreý senenamasy"}\r
+            islamic{"Hijri-kamary senenamasy"}\r
+            iso8601{"ISO-8601 senenamasy"}\r
+            japanese{"Ýapon senenamasy"}\r
+            persian{"Pars senenamasy"}\r
+            roc{"Minguo senenamasy"}\r
+        }\r
+        cf{\r
+            account{"Pul birliginiň buhgalterçilik formaty"}\r
+            standard{"Pul birliginiň standart formaty"}\r
+        }\r
+        collation{\r
+            ducet{"Deslapky Ýunikod tertip rejesi"}\r
+            search{"Umumy maksatly gözleg"}\r
+            standard{"Standart tertip rejesi"}\r
+        }\r
+        hc{\r
+            h11{"12 sagat ulgamy (0–11)"}\r
+            h12{"12 sagat ulgamy (1–12)"}\r
+            h23{"24 sagat ulgamy (0–23)"}\r
+            h24{"24 sagat ulgamy (1–24)"}\r
+        }\r
+        lb{\r
+            loose{"Setirden setire geçişiň gowşak stili"}\r
+            normal{"Setirden setire geçişiň adaty stili"}\r
+            strict{"Setirden setire geçişiň berk stili"}\r
+        }\r
+        ms{\r
+            metric{"Metrik ulgam"}\r
+            uksystem{"Imperial ölçeg ulgamy"}\r
+            ussystem{"ABŞ ölçeg ulgamy"}\r
+        }\r
+        numbers{\r
+            arab{"Arap-hindi sanlary"}\r
+            arabext{"Arap-hindi sanlarynyň giňeldilen görnüşi"}\r
+            armn{"Ermeni sanlary"}\r
+            armnlow{"Ermeni setir sanlary"}\r
+            beng{"Bengal sanlary"}\r
+            deva{"Dewanagari sanlary"}\r
+            ethi{"Efiop sanlary"}\r
+            fullwide{"Doly giňlikdäki sanlar"}\r
+            geor{"Gruzin sanlary"}\r
+            grek{"Grek sanlary"}\r
+            greklow{"Grek setir sanlary"}\r
+            gujr{"Gujarati sanlary"}\r
+            guru{"Gurmuhi sanlary"}\r
+            hanidec{"Hytaý onluk sanlary"}\r
+            hans{"Ýönekeýleşdirilen hytaý sanlary"}\r
+            hansfin{"Ýönekeýleşdirilen hytaý maliýe sanlary"}\r
+            hant{"Adaty hytaý sanlary"}\r
+            hantfin{"Adaty hytaý maliýe sanlary"}\r
+            hebr{"Ýewreý sanlary"}\r
+            jpan{"Ýapon sanlary"}\r
+            jpanfin{"Ýapon maliýe sanlary"}\r
+            khmr{"Khmer sanlary"}\r
+            knda{"Kannada sanlary"}\r
+            laoo{"Laos sanlary"}\r
+            latn{"Latyn sanlary"}\r
+            mlym{"Malaýalam sanlary"}\r
+            mymr{"Mýanma sanlary"}\r
+            orya{"Oriýa sanlary"}\r
+            roman{"Rim sanlary"}\r
+            romanlow{"Rim setir sanlary"}\r
+            taml{"Adaty tamil sanlary"}\r
+            tamldec{"Tamil sanlary"}\r
+            telu{"Telugu sanlary"}\r
+            thai{"Taý sanlary"}\r
+            tibt{"Tibet sanlary"}\r
+        }\r
+    }\r
+    Version{"2.1.43.65"}\r
+    characterLabelPattern{\r
+        all{"{0} — ähli"}\r
+        category-list{"{0}: {1}"}\r
+        compatibility{"{0} — ylalaşyjylyk"}\r
+        enclosed{"{0} — daşy ýapyk"}\r
+        extended{"{0} — giňeldilen"}\r
+        historic{"{0} — taryhy"}\r
+        miscellaneous{"{0} — dürli"}\r
+        other{"{0} — başga"}\r
+        scripts{"elipbiýler — {0}"}\r
+        strokes{\r
+            one{"{0} ştrih"}\r
+            other{"{0} ştrih"}\r
+        }\r
+    }\r
+    codePatterns{\r
+        language{"Dil: {0}"}\r
+        script{"Elipbiý: {0}"}\r
+        territory{"Sebit: {0}"}\r
+    }\r
+    localeDisplayPattern{\r
+        keyTypePattern{"{0}: {1}"}\r
+        pattern{"{0} ({1})"}\r
+        separator{"{0}, {1}"}\r
+    }\r
+}\r
index ee7fc5c..3cb3eea 100644 (file)
@@ -887,7 +887,7 @@ to{
             tibt{"fika fakatipeti"}\r
         }\r
     }\r
-    Version{"2.1.38.39"}\r
+    Version{"2.1.44.88"}\r
     codePatterns{\r
         language{"Lea: {0}"}\r
         script{"Tohinima: {0}"}\r
index 8c90486..b8b50ac 100644 (file)
@@ -58,7 +58,7 @@ tr{
         as{"Assamca"}\r
         asa{"Asu"}\r
         ase{"Amerikan İşaret Dili"}\r
-        ast{"Asturyasca"}\r
+        ast{"Asturyasça"}\r
         av{"Avar Dili"}\r
         avk{"Kotava"}\r
         awa{"Awadhi"}\r
@@ -188,8 +188,8 @@ tr{
         fi{"Fince"}\r
         fil{"Filipince"}\r
         fit{"Tornedalin Fincesi"}\r
-        fj{"Fiji Dili"}\r
-        fo{"Faroe Dili"}\r
+        fj{"Fiji dili"}\r
+        fo{"Faroe dili"}\r
         fon{"Fon"}\r
         fr{"Fransızca"}\r
         fr_CA{"Kanada Fransızcası"}\r
@@ -1038,7 +1038,7 @@ tr{
         VALENCIA{"Valensiyaca"}\r
         WADEGILE{"Wade-Giles (Latin Alfabesinde Yazımı)"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.91"}\r
     characterLabelPattern{\r
         all{"{0} — tümü"}\r
         category-list{"{0}: {1}"}\r
index d0b6dfe..9108f7c 100644 (file)
@@ -27,6 +27,7 @@ tt{
         cy{"уэльс"}\r
         da{"дания"}\r
         de{"алман"}\r
+        de_CH{"югары алман (Швейцария)"}\r
         dsb{"түбән сорб"}\r
         dv{"мальдив"}\r
         dz{"дзонг-кха"}\r
@@ -35,6 +36,7 @@ tt{
         eo{"эсперанто"}\r
         es{"испан"}\r
         es_419{"испан (Латин Америкасы)"}\r
+        es_ES{"испан (Европа)"}\r
         et{"эстон"}\r
         eu{"баск"}\r
         fa{"фарсы"}\r
@@ -106,6 +108,7 @@ tt{
         pl{"поляк"}\r
         ps{"пушту"}\r
         pt{"португал"}\r
+        pt_PT{"португал (Европа)"}\r
         qu{"кечуа"}\r
         quc{"киче"}\r
         rm{"ретороман"}\r
@@ -149,7 +152,7 @@ tt{
         wo{"волоф"}\r
         yi{"идиш"}\r
         yo{"йоруба"}\r
-        zh{"кытай (тәрҗемә киңәше: аерым алганда, мандарин кытайчасы)"}\r
+        zh{"кытай"}\r
         zh_Hans{"гадиләштерелгән кытай"}\r
         zh_Hant{"традицион кытай"}\r
     }\r
@@ -177,7 +180,7 @@ tt{
             latn{"көнбатыш цифрлары"}\r
         }\r
     }\r
-    Version{"2.1.38.72"}\r
+    Version{"2.1.44.88"}\r
     codePatterns{\r
         language{"Тел: {0}"}\r
         script{"Язу: {0}"}\r
index 86c23c6..d49fc54 100644 (file)
@@ -830,7 +830,7 @@ ug{
         VALENCIA{"ۋالېنسىيە"}\r
         WADEGILE{"ۋېي ئائىلىسى پىنيىن لاتىنلاشتۇرۇش"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.88"}\r
     codePatterns{\r
         language{"تىل: {0}"}\r
         script{"يېزىق: {0}"}\r
index 88b0919..430af21 100644 (file)
@@ -51,7 +51,7 @@ uk{
         arq{"алжирська арабська"}\r
         ars{"надждійська арабська"}\r
         arw{"аравакська"}\r
-        as{"ассамська"}\r
+        as{"асамська"}\r
         asa{"асу"}\r
         ase{"американська мова рухів"}\r
         ast{"астурська"}\r
@@ -184,6 +184,7 @@ uk{
         ga{"ірландська"}\r
         gaa{"га"}\r
         gag{"гагаузька"}\r
+        gan{"ґань"}\r
         gay{"гайо"}\r
         gba{"гбайя"}\r
         gd{"гаельська"}\r
@@ -205,6 +206,7 @@ uk{
         gwi{"кучін"}\r
         ha{"хауса"}\r
         hai{"хайда"}\r
+        hak{"хаккаська"}\r
         haw{"гавайська"}\r
         he{"іврит"}\r
         hi{"гінді"}\r
@@ -407,6 +409,7 @@ uk{
         pro{"давньопровансальська"}\r
         ps{"пушту"}\r
         pt{"портуґальська"}\r
+        pt_BR{"португальська (Бразилія)"}\r
         pt_PT{"європейська портуґальська"}\r
         qu{"кечуа"}\r
         quc{"кіче"}\r
@@ -511,7 +514,7 @@ uk{
         twq{"тасавак"}\r
         ty{"таїтянська"}\r
         tyv{"тувинська"}\r
-        tzm{"Ñ\86енÑ\82Ñ\80алÑ\8cномаÑ\80оканÑ\81Ñ\8cка Ñ\82амазÑ\96т"}\r
+        tzm{"Ñ\86енÑ\82Ñ\80алÑ\8cноаÑ\82лаÑ\81Ñ\8cка Ñ\82амазÑ\96гт"}\r
         udm{"удмуртська"}\r
         ug{"уйгурська"}\r
         uga{"угаритська"}\r
@@ -720,7 +723,7 @@ uk{
             buddhist{"буддійський календар"}\r
             chinese{"китайський календар"}\r
             coptic{"коптський календар"}\r
-            dangi{"календаÑ\80 Ð´Ð°Ð½Ð³Ñ\96"}\r
+            dangi{"коÑ\80ейÑ\81Ñ\8cкий ÐºÐ°Ð»ÐµÐ½Ð´Ð°Ñ\80"}\r
             ethiopic{"ефіопський календар"}\r
             ethiopic-amete-alem{"ефіопський амете алем календар"}\r
             gregorian{"григоріанський календар"}\r
@@ -776,7 +779,7 @@ uk{
             big5han{"китайський традиційний порядок сортування Big5"}\r
             compat{"попередній порядок сортування, для сумісності"}\r
             dictionary{"порядок сортування за словником"}\r
-            ducet{"типовий порядок сортування Unicode"}\r
+            ducet{"типовий порядок сортування Юнікод"}\r
             emoji{"порядок сортування за емодзі"}\r
             eor{"європейські правила упорядкування"}\r
             gb2312han{"китайський спрощений"}\r
@@ -809,8 +812,8 @@ uk{
             strict{"точний стиль розриву рядка"}\r
         }\r
         m0{\r
-            bgn{"BGN"}\r
-            ungegn{"UNGEGN"}\r
+            bgn{"транслітерація BGN США"}\r
+            ungegn{"транслітерація ГЕГН ООН"}\r
         }\r
         ms{\r
             metric{"мертична система"}\r
@@ -822,7 +825,7 @@ uk{
             arabext{"арабсько-індійські розширені цифри"}\r
             armn{"вірменські цифри"}\r
             armnlow{"вірменські малі цифри"}\r
-            beng{"бенґальські"}\r
+            beng{"бенґальські цифри"}\r
             deva{"цифри деванагарі"}\r
             ethi{"ефіопські цифри"}\r
             finance{"фінансові символи чисел"}\r
@@ -890,7 +893,7 @@ uk{
         VALENCIA{"Валенсійська"}\r
         WADEGILE{"Романізація Вейда-Джайлза"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.65"}\r
     characterLabelPattern{\r
         all{"{0} — усі"}\r
         category-list{"{0}: {1}"}\r
@@ -900,7 +903,7 @@ uk{
         historic{"{0} — історичні"}\r
         miscellaneous{"{0} — мішані"}\r
         other{"{0} — інші"}\r
-        scripts{"писемність — {0}"}\r
+        scripts{"письмо — {0}"}\r
         strokes{\r
             few{"{0} риски"}\r
             many{"{0} рисок"}\r
index e5f80c6..658b952 100644 (file)
@@ -66,7 +66,7 @@ ur{
         bo{"تبتی"}\r
         br{"بریٹن"}\r
         brx{"بوڈو"}\r
-        bs{"بوسنی"}\r
+        bs{"بوسنیائی"}\r
         bug{"بگینیز"}\r
         byn{"بلین"}\r
         ca{"کیٹالان"}\r
@@ -186,18 +186,18 @@ ur{
         kam{"کامبا"}\r
         kbd{"کبارڈین"}\r
         kcg{"تیاپ"}\r
-        kde{"ماكونده"}\r
-        kea{"كابويرديانو"}\r
+        kde{"ماکونده"}\r
+        kea{"کابويرديانو"}\r
         kfo{"کورو"}\r
         kg{"کانگو"}\r
         kha{"کھاسی"}\r
-        khq{"كويرا شيني"}\r
+        khq{"کويرا شيني"}\r
         ki{"کیکویو"}\r
         kj{"کونیاما"}\r
         kk{"قزاخ"}\r
         kkj{"کاکو"}\r
-        kl{"كالاليست"}\r
-        kln{"كالينجين"}\r
+        kl{"کالاليست"}\r
+        kln{"کالينجين"}\r
         km{"خمیر"}\r
         kmb{"کیمبونڈو"}\r
         kn{"کنّاڈا"}\r
@@ -232,7 +232,7 @@ ur{
         loz{"لوزی"}\r
         lrc{"شمالی لری"}\r
         lt{"لیتھوینین"}\r
-        lu{"لبا-كاتانجا"}\r
+        lu{"لبا-کاتانجا"}\r
         lua{"لیوبا لولوآ"}\r
         lun{"لونڈا"}\r
         luo{"لو"}\r
@@ -286,7 +286,7 @@ ur{
         niu{"نیویائی"}\r
         nl{"ڈچ"}\r
         nl_BE{"فلیمِش"}\r
-        nmg{"كوايسو"}\r
+        nmg{"کوايسو"}\r
         nn{"نارویجین نینورسک"}\r
         nnh{"نگیمبون"}\r
         no{"نارویجین"}\r
@@ -298,7 +298,7 @@ ur{
         nv{"نواجو"}\r
         ny{"نیانجا"}\r
         nyn{"نینکول"}\r
-        oc{"آكسیٹان"}\r
+        oc{"آکسیٹان"}\r
         om{"اورومو"}\r
         or{"اڑیہ"}\r
         os{"اوسیٹک"}\r
@@ -315,7 +315,7 @@ ur{
         pt_BR{"برازیلی پرتگالی"}\r
         pt_PT{"یورپی پرتگالی"}\r
         qu{"کویچوآ"}\r
-        quc{"كيشی"}\r
+        quc{"کيشی"}\r
         rap{"رپانوی"}\r
         rar{"راروتونگان"}\r
         rm{"رومانش"}\r
@@ -342,7 +342,7 @@ ur{
         sdh{"جنوبی کرد"}\r
         se{"شمالی سامی"}\r
         seh{"سینا"}\r
-        ses{"كويرابورو سينی"}\r
+        ses{"کويرابورو سينی"}\r
         sg{"ساںغو"}\r
         sh{"سربو-کروئیشین"}\r
         shi{"تشلحيت"}\r
@@ -632,7 +632,7 @@ ur{
             vaii{"وائی ہندسے"}\r
         }\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.3"}\r
     characterLabelPattern{\r
         all{"{0} — تمام"}\r
         category-list{"{0}: {1}"}\r
index 3803f2c..0fea5bb 100644 (file)
@@ -23,5 +23,5 @@ ur_IN{
             tibt{"تبتی ہندسے"}\r
         }\r
     }\r
-    Version{"2.1.38.39"}\r
+    Version{"2.1.43.65"}\r
 }\r
index 03565bd..009d1c5 100644 (file)
@@ -83,7 +83,7 @@ uz{
         de_CH{"yuqori nemis (Shveytsariya)"}\r
         dgr{"dogrib"}\r
         dje{"zarma"}\r
-        dsb{"quyi sorbcha"}\r
+        dsb{"quyi sorb"}\r
         dua{"duala"}\r
         dv{"divexi"}\r
         dyo{"diola-fogni"}\r
@@ -316,13 +316,13 @@ uz{
         sad{"sandave"}\r
         sah{"saxa"}\r
         saq{"samburu"}\r
-        sat{"santal"}\r
+        sat{"santali"}\r
         sba{"ngambay"}\r
         sbp{"sangu"}\r
         sc{"sardin"}\r
         scn{"sitsiliya"}\r
         sco{"shotland"}\r
-        sd{"sindxi"}\r
+        sd{"sindhi"}\r
         sdh{"janubiy kurd"}\r
         se{"shimoliy saam"}\r
         seh{"sena"}\r
@@ -546,7 +546,7 @@ uz{
             tibt{"tibet raqamlari"}\r
         }\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.88"}\r
     characterLabelPattern{\r
         all{"{0} — hammasi"}\r
         category-list{"{0}: {1}"}\r
index 2467591..c031a23 100644 (file)
@@ -407,7 +407,7 @@ uz_Cyrl{
             tibt{"Тибет рақамлари"}\r
         }\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.2"}\r
     codePatterns{\r
         language{"Тил: {0}"}\r
         script{"{0}"}\r
index 187e3fb..0c36224 100644 (file)
@@ -846,8 +846,8 @@ vi{
             strict{"Kiểu xuống dòng hẹp"}\r
         }\r
         m0{\r
-            bgn{"BGN"}\r
-            ungegn{"UNGEGN"}\r
+            bgn{"Chuyển tự US BGN"}\r
+            ungegn{"Chuyển tự UN GEGN"}\r
         }\r
         ms{\r
             metric{"Hệ mét"}\r
@@ -983,7 +983,7 @@ vi{
         VALLADER{"VALLADER"}\r
         WADEGILE{"La Mã hóa Wade-Giles"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.65"}\r
     characterLabelPattern{\r
         all{"{0} — tất cả"}\r
         category-list{"{0}: {1}"}\r
index ae39e4c..1deaeb5 100644 (file)
@@ -181,7 +181,7 @@ wo{
             latn{"Siifari Tugal"}\r
         }\r
     }\r
-    Version{"2.1.38.71"}\r
+    Version{"2.1.43.94"}\r
     codePatterns{\r
         language{"{0}"}\r
         script{"{0}"}\r
diff --git a/source/data/lang/xh.txt b/source/data/lang/xh.txt
new file mode 100644 (file)
index 0000000..f8658e6
--- /dev/null
@@ -0,0 +1,11 @@
+// © 2016 and later: Unicode, Inc. and others.\r
+// License & terms of use: http://www.unicode.org/copyright.html#License\r
+xh{\r
+    Languages{\r
+        af{"isiBhulu"}\r
+        en{"isiNgesi"}\r
+        xh{"isiXhosa"}\r
+        zu{"isiZulu"}\r
+    }\r
+    Version{"2.1.44.88"}\r
+}\r
index 83e0746..96a9cbc 100644 (file)
@@ -101,5 +101,5 @@ yo{
         zh{"Èdè Mandari"}\r
         zu{"Èdè Ṣulu"}\r
     }\r
-    Version{"2.1.39.11"}\r
+    Version{"2.1.44.88"}\r
 }\r
index c1aef54..5feeaf6 100644 (file)
@@ -11,5 +11,5 @@ yo_BJ{
         tr{"Èdè Tɔɔkisi"}\r
         zu{"Èdè Shulu"}\r
     }\r
-    Version{"2.1.39.11"}\r
+    Version{"2.1.44.53"}\r
 }\r
index 2c4f4de..ee943a8 100644 (file)
@@ -1024,7 +1024,7 @@ yue{
         VALLADER{"瑞士瓦勒德方言"}\r
         WADEGILE{"威妥瑪式拼音"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.91"}\r
     characterLabelPattern{\r
         all{"{0} — 全部"}\r
         category-list{"{0}: {1}"}\r
index 9af3075..ad905e9 100644 (file)
@@ -1025,7 +1025,7 @@ yue_Hans{
         VALLADER{"瑞士瓦勒德方言"}\r
         WADEGILE{"威妥玛式拼音"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.91"}\r
     characterLabelPattern{\r
         all{"{0} — 全部"}\r
         category-list{"{0}: {1}"}\r
index 02ebb8b..3d3e384 100644 (file)
@@ -61,5 +61,5 @@ zgh{
             islamic{"ⴰⵙⵎⵍⵓⵙⵙⴰⵏ ⵏ ⵍⵉⵙⵍⴰⵎ"}\r
         }\r
     }\r
-    Version{"2.1.39.11"}\r
+    Version{"2.1.43.94"}\r
 }\r
index 5c14adf..788c339 100644 (file)
@@ -46,7 +46,7 @@ zh{
         arc{"阿拉米语"}\r
         arn{"马普切语"}\r
         arp{"阿拉帕霍语"}\r
-        ars{"纳吉迪阿拉伯"}\r
+        ars{"纳吉迪阿拉伯"}\r
         arw{"阿拉瓦克语"}\r
         as{"阿萨姆语"}\r
         asa{"帕雷语"}\r
@@ -979,7 +979,7 @@ zh{
         VALLADER{"瑞士瓦勒德方言"}\r
         WADEGILE{"WG 威氏拼音法"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.76"}\r
     characterLabelPattern{\r
         all{"{0} — 全部"}\r
         category-list{"{0}: {1}"}\r
index a578ba9..8fa931c 100644 (file)
@@ -1058,7 +1058,7 @@ zh_Hant{
         ROZAJ{"雷西亞方言"}\r
         RUMGR{"羅曼什文"}\r
         SAAHO{"薩霍文"}\r
-        SCOTLAND{"è\8b±æ\96\87ï¼\88è\98\87æ ¼è\98­ï¼\89"}\r
+        SCOTLAND{"è\98\87æ ¼è\98­æ¨\99æº\96è\8b±æ\96\87"}\r
         SCOUSE{"利物浦方言"}\r
         SOLBA{"雷西亞史托維薩方言"}\r
         SOTAV{"卡布佛得鲁背風群島方言"}\r
@@ -1074,7 +1074,7 @@ zh_Hant{
         VALLADER{"瑞士瓦勒德方言"}\r
         WADEGILE{"威妥瑪式拼音"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.91"}\r
     characterLabelPattern{\r
         all{"{0} — 全部"}\r
         category-list{"{0}: {1}"}\r
index f3a8b07..2afeb5f 100644 (file)
@@ -2,8 +2,8 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 zh_Hant_HK{\r
     Keys{\r
-        hc{"時間週期(12 與 24 小時制"}\r
         ms{"度量衡系統"}\r
+        x{"專用區"}\r
     }\r
     Languages{\r
         aa{"阿法爾文"}\r
@@ -55,7 +55,6 @@ zh_Hant_HK{
         ro_MD{"摩爾多瓦羅馬尼亞文"}\r
         rup{"阿羅馬尼亞語"}\r
         rw{"盧旺達文"}\r
-        sd{"信德語"}\r
         sl{"斯洛文尼亞文"}\r
         sn{"修納文"}\r
         so{"索馬里文"}\r
@@ -130,7 +129,7 @@ zh_Hant_HK{
         SCOTLAND{"蘇格蘭標準英語"}\r
         SOTAV{"SOTAV"}\r
     }\r
-    Version{"2.1.39.11"}\r
+    Version{"2.1.43.65"}\r
     characterLabelPattern{\r
         enclosed{"{0} — 包含"}\r
         historic{"{0} — 舊式"}\r
index 43c2f1f..953afbf 100644 (file)
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 zh_Hant_MO{\r
     %%Parent{"zh_Hant_HK"}\r
-    Version{"2.1.38.39"}\r
+    Version{"2.1.43.65"}\r
 }\r
index 60cee63..c5738b2 100644 (file)
@@ -33,7 +33,7 @@ zu{
         ain{"isi-Ainu"}\r
         ak{"isi-Akan"}\r
         ale{"isi-Aleut"}\r
-        alt{"i-Southern Altai"}\r
+        alt{"isi-Southern Altai"}\r
         am{"isi-Amharic"}\r
         an{"isi-Aragonese"}\r
         anp{"isi-Angika"}\r
@@ -57,9 +57,9 @@ zu{
         bg{"isi-Bulgari"}\r
         bgn{"isi-Western Balochi"}\r
         bho{"isi-Bhojpuri"}\r
-        bi{"i-Bislama"}\r
-        bin{"i-Bini"}\r
-        bla{"i-Siksika"}\r
+        bi{"isi-Bislama"}\r
+        bin{"isi-Bini"}\r
+        bla{"isi-Siksika"}\r
         bm{"isi-Bambara"}\r
         bn{"isi-Bengali"}\r
         bo{"isi-Tibetan"}\r
@@ -67,7 +67,7 @@ zu{
         brx{"isi-Bodo"}\r
         bs{"isi-Bosnian"}\r
         bug{"isi-Buginese"}\r
-        byn{"i-Blin"}\r
+        byn{"isi-Blin"}\r
         ca{"isi-Catalan"}\r
         ce{"isi-Chechen"}\r
         ceb{"isi-Cebuano"}\r
@@ -91,7 +91,7 @@ zu{
         dav{"isi-Taita"}\r
         de{"isi-German"}\r
         de_AT{"isi-Austrian German"}\r
-        de_CH{"i-Swiss High German"}\r
+        de_CH{"Isi-Swiss High German"}\r
         dgr{"isi-Dogrib"}\r
         dje{"isi-Zarma"}\r
         dsb{"isi-Lower Sorbian"}\r
@@ -106,15 +106,15 @@ zu{
         eka{"isi-Ekajuk"}\r
         el{"isi-Greek"}\r
         en{"i-English"}\r
-        en_AU{"isi-Austrillian English"}\r
+        en_AU{"i-Australian English"}\r
         en_CA{"i-Canadian English"}\r
         en_GB{"i-British English"}\r
         en_US{"i-American English"}\r
         eo{"isi-Esperanto"}\r
         es{"isi-Spanish"}\r
         es_419{"isi-Latin American Spanish"}\r
-        es_ES{"i-European Spanish"}\r
-        es_MX{"i-Mexican Spanish"}\r
+        es_ES{"isi-European Spanish"}\r
+        es_MX{"Isi-Mexican Spanish"}\r
         et{"isi-Estonia"}\r
         eu{"isi-Basque"}\r
         ewo{"isi-Ewondo"}\r
@@ -126,15 +126,15 @@ zu{
         fo{"isi-Faroese"}\r
         fon{"isi-Fon"}\r
         fr{"isi-French"}\r
-        fr_CA{"i-Canadian French"}\r
-        fr_CH{"i-Swiss French"}\r
+        fr_CA{"isi-Canadian French"}\r
+        fr_CH{"isi-Swiss French"}\r
         fur{"isi-Friulian"}\r
         fy{"isi-Western Frisian"}\r
         ga{"isi-Irish"}\r
         gaa{"isi-Ga"}\r
         gag{"isi-Gagauz"}\r
         gan{"isi-Gan Chinese"}\r
-        gd{"i-Scottish Gaelic"}\r
+        gd{"isi-Scottish Gaelic"}\r
         gez{"isi-Geez"}\r
         gil{"isi-Gilbertese"}\r
         gl{"isi-Galicia"}\r
@@ -226,7 +226,7 @@ zu{
         li{"isi-Limburgish"}\r
         lkt{"isi-Lakota"}\r
         ln{"isi-Lingala"}\r
-        lo{"i-Lao"}\r
+        lo{"isi-Lao"}\r
         loz{"isi-Lozi"}\r
         lrc{"isi-Northern Luri"}\r
         lt{"isi-Lithuanian"}\r
@@ -285,19 +285,19 @@ zu{
         nl{"isi-Dutch"}\r
         nl_BE{"isi-Flemish"}\r
         nmg{"isi-Kwasio"}\r
-        nn{"i-Norwegian Nynorsk"}\r
+        nn{"isi-Norwegian Nynorsk"}\r
         nnh{"isi-Ngiemboon"}\r
         no{"isi-Norwegian"}\r
         nog{"isi-Nogai"}\r
         nqo{"isi-N’Ko"}\r
-        nr{"i-South Ndebele"}\r
+        nr{"isi-South Ndebele"}\r
         nso{"isi-Northern Sotho"}\r
         nus{"isi-Nuer"}\r
         nv{"isi-Navajo"}\r
         ny{"isi-Nyanja"}\r
         nyn{"isi-Nyankole"}\r
         oc{"isi-Occitan"}\r
-        om{"i-Oromo"}\r
+        om{"isi-Oromo"}\r
         or{"isi-Odia"}\r
         os{"isi-Ossetic"}\r
         pa{"isi-Punjabi"}\r
@@ -314,28 +314,28 @@ zu{
         pt_PT{"isi-European Portuguese"}\r
         qu{"isi-Quechua"}\r
         quc{"isi-Kʼicheʼ"}\r
-        rap{"i-Rapanui"}\r
-        rar{"i-Rarotongan"}\r
+        rap{"isi-Rapanui"}\r
+        rar{"isi-Rarotongan"}\r
         rm{"isi-Romansh"}\r
         rn{"isi-Rundi"}\r
         ro{"isi-Romanian"}\r
         ro_MD{"isi-Moldavian"}\r
         rof{"isi-Rombo"}\r
-        root{"i-Root"}\r
+        root{"isi-Root"}\r
         ru{"isi-Russian"}\r
         rup{"isi-Aromanian"}\r
         rw{"isi-Kinyarwanda"}\r
         rwk{"isi-Rwa"}\r
         sa{"isi-Sanskrit"}\r
-        sad{"i-Sandawe"}\r
+        sad{"isi-Sandawe"}\r
         sah{"i-Sakha"}\r
         saq{"isi-Samburu"}\r
-        sat{"i-Santali"}\r
+        sat{"isi-Santali"}\r
         sba{"isi-Ngambay"}\r
         sbp{"isi-Sangu"}\r
-        sc{"i-Sardinian"}\r
-        scn{"i-Sicilian"}\r
-        sco{"i-Scots"}\r
+        sc{"isi-Sardinian"}\r
+        scn{"isi-Sicilian"}\r
+        sco{"isi-Scots"}\r
         sd{"isi-Sindhi"}\r
         sdh{"i-Southern Kurdish"}\r
         se{"isi-Northern Sami"}\r
@@ -344,31 +344,31 @@ zu{
         sg{"isi-Sango"}\r
         sh{"isi-Serbo-Croatian"}\r
         shi{"isi-Tachelhit"}\r
-        shn{"i-Shan"}\r
-        si{"i-Sinhala"}\r
+        shn{"isi-Shan"}\r
+        si{"isi-Sinhala"}\r
         sk{"isi-Slovak"}\r
         sl{"isi-Slovenian"}\r
         sm{"isi-Samoan"}\r
-        sma{"i-Southern Sami"}\r
+        sma{"isi-Southern Sami"}\r
         smj{"isi-Lule Sami"}\r
         smn{"isi-Inari Sami"}\r
         sms{"isi-Skolt Sami"}\r
         sn{"isiShona"}\r
-        snk{"i-Soninke"}\r
+        snk{"isi-Soninke"}\r
         so{"isi-Somali"}\r
         sq{"isi-Albania"}\r
         sr{"isi-Serbian"}\r
-        srn{"i-Sranan Tongo"}\r
+        srn{"isi-Sranan Tongo"}\r
         ss{"isiSwati"}\r
-        ssy{"i-Saho"}\r
-        st{"isiSuthu"}\r
+        ssy{"isi-Saho"}\r
+        st{"isi-Southern Sotho"}\r
         su{"isi-Sundanese"}\r
-        suk{"i-Sukuma"}\r
+        suk{"isi-Sukuma"}\r
         sv{"isi-Swedish"}\r
         sw{"isiSwahili"}\r
         sw_CD{"isi-Congo Swahili"}\r
         swb{"isi-Comorian"}\r
-        syr{"i-Syriac"}\r
+        syr{"isi-Syriac"}\r
         ta{"isi-Tamil"}\r
         te{"isi-Telugu"}\r
         tem{"isi-Timne"}\r
@@ -629,7 +629,7 @@ zu{
             vaii{"Izinhlazu Zezinombolo ze-Vai"}\r
         }\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.65"}\r
     characterLabelPattern{\r
         all{"{0} — All"}\r
         category-list{"{0}: {1}"}\r
index 558584b..871cb97 100644 (file)
@@ -22,7 +22,9 @@ af{
         default{"latn"}\r
         latn{\r
             miscPatterns{\r
+                approximately{"~{0}"}\r
                 atLeast{"{0}+"}\r
+                atMost{"≤{0}"}\r
                 range{"{0}–{1}"}\r
             }\r
             patterns{\r
@@ -213,7 +215,7 @@ af{
         minimumGroupingDigits{"1"}\r
         native{"latn"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.65"}\r
     calendar{\r
         generic{\r
             DateTimePatterns{\r
@@ -251,10 +253,10 @@ af{
                 Hm{"HH:mm"}\r
                 Hms{"HH:mm:ss"}\r
                 M{"L"}\r
-                MEd{"E, d/M"}\r
+                MEd{"E M/d"}\r
                 MMM{"LLL"}\r
-                MMMEd{"E, d MMM"}\r
-                MMMMEd{"E, d MMMM"}\r
+                MMMEd{"E d MMM"}\r
+                MMMMEd{"E d MMMM"}\r
                 MMMMd{"d MMMM"}\r
                 MMMd{"d MMM"}\r
                 Md{"d/M"}\r
@@ -266,9 +268,9 @@ af{
                 y{"y G"}\r
                 yyyy{"y G"}\r
                 yyyyM{"M/y GGGGG"}\r
-                yyyyMEd{"E, d/M/y G"}\r
+                yyyyMEd{"E d/M/y G"}\r
                 yyyyMMM{"MMM y G"}\r
-                yyyyMMMEd{"E, d MMM y G"}\r
+                yyyyMMMEd{"E d MMM y G"}\r
                 yyyyMMMM{"MMMM y G"}\r
                 yyyyMMMd{"d MMM y G"}\r
                 yyyyMd{"d/M/y GGGGG"}\r
@@ -389,7 +391,7 @@ af{
                 "HH:mm:ss z",\r
                 "HH:mm:ss",\r
                 "HH:mm",\r
-                "EEEE, dd MMMM y",\r
+                "EEEE dd MMMM y",\r
                 "dd MMMM y",\r
                 "dd MMM y",\r
                 "y-MM-dd",\r
@@ -404,7 +406,11 @@ af{
             }\r
             availableFormats{\r
                 Bh{"h B"}\r
+                Bhm{"h:mm B"}\r
+                Bhms{"h:mm:ss B"}\r
                 E{"ccc"}\r
+                EBhm{"E h:mm B"}\r
+                EBhms{"E h:mm:ss B"}\r
                 EHm{"E HH:mm"}\r
                 EHms{"E HH:mm:ss"}\r
                 Ed{"E d"}\r
@@ -412,7 +418,7 @@ af{
                 Ehms{"E hh:mm:ss a"}\r
                 Gy{"y G"}\r
                 GyMMM{"MMM y G"}\r
-                GyMMMEd{"E, dd MMM y G"}\r
+                GyMMMEd{"E dd MMM y G"}\r
                 GyMMMd{"dd MMM y G"}\r
                 H{"HH"}\r
                 Hm{"HH:mm"}\r
@@ -420,7 +426,7 @@ af{
                 Hmsv{"HH:mm:ss v"}\r
                 Hmv{"HH:mm v"}\r
                 M{"L"}\r
-                MEd{"E, d/M"}\r
+                MEd{"E d/M"}\r
                 MMM{"LLL"}\r
                 MMMEd{"E d MMM"}\r
                 MMMMEd{"E d MMMM"}\r
@@ -442,7 +448,7 @@ af{
                 yM{"MM-y"}\r
                 yMEd{"E y-MM-dd"}\r
                 yMMM{"MMM y"}\r
-                yMMMEd{"E, d MMM y"}\r
+                yMMMEd{"E d MMM y"}\r
                 yMMMM{"MMMM y"}\r
                 yMMMd{"d MMM y"}\r
                 yMd{"y-MM-dd"}\r
@@ -626,15 +632,15 @@ af{
                     M{"M–M"}\r
                 }\r
                 MEd{\r
-                    M{"E, d/M – E, d/M"}\r
-                    d{"E, d/M – E, d/M"}\r
+                    M{"E d/M – E d/M"}\r
+                    d{"E d/M – E d/M"}\r
                 }\r
                 MMM{\r
                     M{"MMM–MMM"}\r
                 }\r
                 MMMEd{\r
-                    M{"E, d MMM – E, d MMM"}\r
-                    d{"E, d MMM – E, d MMM"}\r
+                    M{"E d MMM – E d MMM"}\r
+                    d{"E d MMM – E d MMM"}\r
                 }\r
                 MMMd{\r
                     M{"d MMM – d MMM"}\r
@@ -674,18 +680,18 @@ af{
                     y{"M/y – M/y"}\r
                 }\r
                 yMEd{\r
-                    M{"E, d/M/y – E, d/M/y"}\r
-                    d{"E, d/M/y – E, d/M/y"}\r
-                    y{"E, d/M/y – E, d/M/y"}\r
+                    M{"E d/M/y – E d/M/y"}\r
+                    d{"E d/M/y – E d/M/y"}\r
+                    y{"E d/M/y – E d/M/y"}\r
                 }\r
                 yMMM{\r
                     M{"MMM–MMM y"}\r
                     y{"MMM y – MMM y"}\r
                 }\r
                 yMMMEd{\r
-                    M{"E, d MMM – E, d MMM, y"}\r
-                    d{"E, d MMM – E, d MMM y"}\r
-                    y{"E, d MMM y – E, d MMM y"}\r
+                    M{"E d MMM – E d MMM y"}\r
+                    d{"E d MMM – E d MMM y"}\r
+                    y{"E d MMM y – E d MMM y"}\r
                 }\r
                 yMMMM{\r
                     M{"MMMM – MMMM y"}\r
@@ -1001,7 +1007,7 @@ af{
             dn{"dag van j."}\r
         }\r
         dayperiod{\r
-            dn{"VM/NM"}\r
+            dn{"vm./nm."}\r
         }\r
         dayperiod-narrow{\r
             dn{"vm./nm."}\r
@@ -1043,8 +1049,8 @@ af{
             }\r
             relativeTime{\r
                 future{\r
-                    one{"oor {0} Vrydae"}\r
-                    other{"oor {0} Vrydae"}\r
+                    one{"oor {0} Vr."}\r
+                    other{"oor {0} Vr."}\r
                 }\r
                 past{\r
                     one{"{0} Vrydae gelede"}\r
@@ -1060,12 +1066,12 @@ af{
             }\r
             relativeTime{\r
                 future{\r
-                    one{"oor {0} Vrydae"}\r
-                    other{"oor {0} Vrydae"}\r
+                    one{"oor {0} Vr."}\r
+                    other{"oor {0} Vr."}\r
                 }\r
                 past{\r
-                    one{"{0} Vrydae gelede"}\r
-                    other{"{0} Vrydae gelede"}\r
+                    one{"{0} Vr. gelede"}\r
+                    other{"{0} Vr. gelede"}\r
                 }\r
             }\r
         }\r
@@ -1089,12 +1095,12 @@ af{
             dn{"u."}\r
             relativeTime{\r
                 future{\r
-                    one{"oor {0} uur"}\r
-                    other{"oor {0} uur"}\r
+                    one{"oor {0} u."}\r
+                    other{"oor {0} u."}\r
                 }\r
                 past{\r
-                    one{"{0} uur gelede"}\r
-                    other{"{0} uur gelede"}\r
+                    one{"{0} u. gelede"}\r
+                    other{"{0} u. gelede"}\r
                 }\r
             }\r
         }\r
@@ -1102,12 +1108,12 @@ af{
             dn{"u."}\r
             relativeTime{\r
                 future{\r
-                    one{"oor {0} uur"}\r
-                    other{"oor {0} uur"}\r
+                    one{"oor {0} u."}\r
+                    other{"oor {0} u."}\r
                 }\r
                 past{\r
-                    one{"{0} uur gelede"}\r
-                    other{"{0} uur gelede"}\r
+                    one{"{0} u. gelede"}\r
+                    other{"{0} u. gelede"}\r
                 }\r
             }\r
         }\r
@@ -1119,7 +1125,7 @@ af{
             relativeTime{\r
                 future{\r
                     one{"oor {0} minuut"}\r
-                    other{"oor {0} minuut"}\r
+                    other{"oor {0} minute"}\r
                 }\r
                 past{\r
                     one{"{0} minuut gelede"}\r
@@ -1178,8 +1184,8 @@ af{
             }\r
             relativeTime{\r
                 future{\r
-                    one{"oor {0} Maandae"}\r
-                    other{"oor {0} Maandae"}\r
+                    one{"oor {0} Ma."}\r
+                    other{"oor {0} Ma."}\r
                 }\r
                 past{\r
                     one{"{0} Maandae gelede"}\r
@@ -1195,12 +1201,12 @@ af{
             }\r
             relativeTime{\r
                 future{\r
-                    one{"oor {0} Maandae"}\r
-                    other{"oor {0} Maandae"}\r
+                    one{"oor {0} Ma."}\r
+                    other{"oor {0} Ma."}\r
                 }\r
                 past{\r
-                    one{"{0} Maandae gelede"}\r
-                    other{"{0} Maandae gelede"}\r
+                    one{"{0} Ma. gelede"}\r
+                    other{"{0} Ma. gelede"}\r
                 }\r
             }\r
         }\r
@@ -1213,8 +1219,8 @@ af{
             }\r
             relativeTime{\r
                 future{\r
-                    one{"oor {0} minuut"}\r
-                    other{"oor {0} minuut"}\r
+                    one{"oor {0} maand"}\r
+                    other{"oor {0} maande"}\r
                 }\r
                 past{\r
                     one{"{0} maand gelede"}\r
@@ -1251,7 +1257,7 @@ af{
         quarter{\r
             dn{"kwartaal"}\r
             relative{\r
-                "-1"{"vorige kwartaal"}\r
+                "-1"{"verlede kwartaal"}\r
                 "0"{"hierdie kwartaal"}\r
                 "1"{"volgende kwartaal"}\r
             }\r
@@ -1270,12 +1276,12 @@ af{
             dn{"kw."}\r
             relativeTime{\r
                 future{\r
-                    one{"oor {0} kwartale"}\r
-                    other{"oor {0} kwartale"}\r
+                    one{"oor {0} kw."}\r
+                    other{"oor {0} kw."}\r
                 }\r
                 past{\r
-                    one{"{0} kwartale gelede"}\r
-                    other{"{0} kwartale gelede"}\r
+                    one{"{0} kw. gelede"}\r
+                    other{"{0} kw. gelede"}\r
                 }\r
             }\r
         }\r
@@ -1283,12 +1289,12 @@ af{
             dn{"kw."}\r
             relativeTime{\r
                 future{\r
-                    one{"oor {0} kwartaal"}\r
-                    other{"oor {0} kwartale"}\r
+                    one{"oor {0} kw."}\r
+                    other{"oor {0} kw."}\r
                 }\r
                 past{\r
-                    one{"{0} kwartaal gelede"}\r
-                    other{"{0} kwartale gelede"}\r
+                    one{"{0} kw. gelede"}\r
+                    other{"{0} kw. gelede"}\r
                 }\r
             }\r
         }\r
@@ -1317,8 +1323,8 @@ af{
             }\r
             relativeTime{\r
                 future{\r
-                    one{"oor {0} Saterdae"}\r
-                    other{"oor {0} Saterdae"}\r
+                    one{"oor {0} Sa."}\r
+                    other{"oor {0} Sa."}\r
                 }\r
                 past{\r
                     one{"{0} Saterdae gelede"}\r
@@ -1334,12 +1340,12 @@ af{
             }\r
             relativeTime{\r
                 future{\r
-                    one{"oor {0} Saterdae"}\r
-                    other{"oor {0} Saterdae"}\r
+                    one{"oor {0} Sa."}\r
+                    other{"oor {0} Sa."}\r
                 }\r
                 past{\r
-                    one{"{0} Saterdae gelede"}\r
-                    other{"{0} Saterdae gelede"}\r
+                    one{"{0} Sa. gelede"}\r
+                    other{"{0} Sa. gelede"}\r
                 }\r
             }\r
         }\r
@@ -1363,25 +1369,25 @@ af{
             dn{"s."}\r
             relativeTime{\r
                 future{\r
-                    one{"oor {0} sek."}\r
-                    other{"oor {0} sek."}\r
+                    one{"oor {0} s."}\r
+                    other{"oor {0} s."}\r
                 }\r
                 past{\r
-                    one{"{0} sek. gelede"}\r
-                    other{"{0} sek. gelede"}\r
+                    one{"{0} s. gelede"}\r
+                    other{"{0} s. gelede"}\r
                 }\r
             }\r
         }\r
         second-short{\r
-            dn{"sek."}\r
+            dn{"s."}\r
             relativeTime{\r
                 future{\r
-                    one{"oor {0} sek."}\r
-                    other{"oor {0} sek."}\r
+                    one{"oor {0} s."}\r
+                    other{"oor {0} s."}\r
                 }\r
                 past{\r
-                    one{"{0} sek. gelede"}\r
-                    other{"{0} sek. gelede"}\r
+                    one{"{0} s. gelede"}\r
+                    other{"{0} s. gelede"}\r
                 }\r
             }\r
         }\r
@@ -1405,13 +1411,13 @@ af{
         sun-narrow{\r
             relative{\r
                 "-1"{"verlede Son."}\r
-                "0"{"hierdie Son."}\r
-                "1"{"volgende Son."}\r
+                "0"{"dié So."}\r
+                "1"{"vlg. So."}\r
             }\r
             relativeTime{\r
                 future{\r
-                    one{"oor {0} Sondae"}\r
-                    other{"oor {0} Sondae"}\r
+                    one{"oor {0} So."}\r
+                    other{"oor {0} So."}\r
                 }\r
                 past{\r
                     one{"{0} Sondae gelede"}\r
@@ -1421,18 +1427,18 @@ af{
         }\r
         sun-short{\r
             relative{\r
-                "-1"{"verlede Son."}\r
-                "0"{"hierdie Son."}\r
-                "1"{"volgende Son."}\r
+                "-1"{"verlede So."}\r
+                "0"{"hierdie So."}\r
+                "1"{"volgende So."}\r
             }\r
             relativeTime{\r
                 future{\r
-                    one{"oor {0} Sondae"}\r
-                    other{"oor {0} Sondae"}\r
+                    one{"oor {0} So."}\r
+                    other{"oor {0} So."}\r
                 }\r
                 past{\r
-                    one{"{0} Sondae gelede"}\r
-                    other{"{0} Sondae gelede"}\r
+                    one{"{0} So. gelede"}\r
+                    other{"{0} So. gelede"}\r
                 }\r
             }\r
         }\r
@@ -1456,13 +1462,13 @@ af{
         thu-narrow{\r
             relative{\r
                 "-1"{"verlede Do."}\r
-                "0"{"hierdie Do."}\r
-                "1"{"volgende Do."}\r
+                "0"{"dié Do."}\r
+                "1"{"vlg. Do."}\r
             }\r
             relativeTime{\r
                 future{\r
-                    one{"oor {0} Donderdae"}\r
-                    other{"oor {0} Donderdae"}\r
+                    one{"oor {0} Do."}\r
+                    other{"oor {0} Do."}\r
                 }\r
                 past{\r
                     one{"{0} Donderdae gelede"}\r
@@ -1478,12 +1484,12 @@ af{
             }\r
             relativeTime{\r
                 future{\r
-                    one{"oor {0} Donderdae"}\r
-                    other{"oor {0} Donderdae"}\r
+                    one{"oor {0} Do."}\r
+                    other{"oor {0} Do."}\r
                 }\r
                 past{\r
-                    one{"{0} Donderdae gelede"}\r
-                    other{"{0} Donderdae gelede"}\r
+                    one{"{0} Do. gelede"}\r
+                    other{"{0} Do. gelede"}\r
                 }\r
             }\r
         }\r
@@ -1507,13 +1513,13 @@ af{
         tue-narrow{\r
             relative{\r
                 "-1"{"verlede Di."}\r
-                "0"{"hierdie Di."}\r
+                "0"{"dié Di."}\r
                 "1"{"volgende Di."}\r
             }\r
             relativeTime{\r
                 future{\r
-                    one{"oor {0} Dinsdae"}\r
-                    other{"oor {0} Dinsdae"}\r
+                    one{"oor {0} Di."}\r
+                    other{"oor {0} Di."}\r
                 }\r
                 past{\r
                     one{"{0} Dinsdae gelede"}\r
@@ -1529,12 +1535,12 @@ af{
             }\r
             relativeTime{\r
                 future{\r
-                    one{"oor {0} Dinsdae"}\r
-                    other{"oor {0} Dinsdae"}\r
+                    one{"oor {0} Di."}\r
+                    other{"oor {0} Di."}\r
                 }\r
                 past{\r
-                    one{"{0} Dinsdae gelede"}\r
-                    other{"{0} Dinsdae gelede"}\r
+                    one{"{0} Di. gelede"}\r
+                    other{"{0} Di. gelede"}\r
                 }\r
             }\r
         }\r
@@ -1558,13 +1564,13 @@ af{
         wed-narrow{\r
             relative{\r
                 "-1"{"verlede Wo."}\r
-                "0"{"hierdie Wo."}\r
-                "1"{"volgende Wo."}\r
+                "0"{"dié Wo."}\r
+                "1"{"vlg. Wo."}\r
             }\r
             relativeTime{\r
                 future{\r
-                    one{"oor {0} Woensdae"}\r
-                    other{"oor {0} Woensdae"}\r
+                    one{"oor {0} Wo."}\r
+                    other{"oor {0} Wo."}\r
                 }\r
                 past{\r
                     one{"{0} Woensdae gelede"}\r
@@ -1580,12 +1586,12 @@ af{
             }\r
             relativeTime{\r
                 future{\r
-                    one{"oor {0} Woensdae"}\r
-                    other{"oor {0} Woensdae"}\r
+                    one{"oor {0} Wo."}\r
+                    other{"oor {0} Wo."}\r
                 }\r
                 past{\r
-                    one{"{0} Woensdae gelede"}\r
-                    other{"{0} Woensdae gelede"}\r
+                    one{"{0} Wo. gelede"}\r
+                    other{"{0} Wo. gelede"}\r
                 }\r
             }\r
         }\r
@@ -1593,7 +1599,7 @@ af{
             dn{"week"}\r
             relative{\r
                 "-1"{"verlede week"}\r
-                "0"{"vandeesweek"}\r
+                "0"{"hierdie week"}\r
                 "1"{"volgende week"}\r
             }\r
             relativePeriod{"die week van {0}"}\r
@@ -1685,12 +1691,12 @@ af{
             dn{"j."}\r
             relativeTime{\r
                 future{\r
-                    one{"oor {0} jaar"}\r
-                    other{"oor {0} jaar"}\r
+                    one{"oor {0} j."}\r
+                    other{"oor {0} j."}\r
                 }\r
                 past{\r
-                    one{"{0} jaar gelede"}\r
-                    other{"{0} jaar gelede"}\r
+                    one{"{0} j. gelede"}\r
+                    other{"{0} j. gelede"}\r
                 }\r
             }\r
         }\r
@@ -1698,12 +1704,12 @@ af{
             dn{"j."}\r
             relativeTime{\r
                 future{\r
-                    one{"oor {0} jaar"}\r
-                    other{"oor {0} jaar"}\r
+                    one{"oor {0} j."}\r
+                    other{"oor {0} j."}\r
                 }\r
                 past{\r
-                    one{"{0} jaar gelede"}\r
-                    other{"{0} jaar gelede"}\r
+                    one{"{0} j. gelede"}\r
+                    other{"{0} j. gelede"}\r
                 }\r
             }\r
         }\r
@@ -1758,6 +1764,6 @@ af{
     measurementSystemNames{\r
         UK{"VK"}\r
         US{"VSA"}\r
-        metric{"Metriek"}\r
+        metric{"Metrieke stelsel"}\r
     }\r
 }\r
index 7bfc1fc..58e7ebb 100644 (file)
@@ -20,6 +20,10 @@ am{
         " ጡ ጢ ጣ ጤ ጥ ጦ ጧ ጨ ጩ ጪ ጫ ጬ ጭ ጮ ጯ ጰ ጱ ጲ ጳ ጴ ጵ ጶ ጷ ጸ ጹ ጺ ጻ ጼ ጽ ጾ ጿ ፀ ፁ ፂ ፃ ፄ ፅ ፆ"\r
         " ፈ ፉ ፊ ፋ ፌ ፍ ፎ ፏ ፐ ፑ ፒ ፓ ፔ ፕ ፖ ፗ]"\r
     }\r
+    ExemplarCharactersIndex{\r
+        "[ሀ ለ ሐ መ ሠ ረ ሰ ሸ ቀ ቈ በ ቨ ተ ቸ ኀ ኈ ነ ኘ አ ከ ኰ ኸ ወ ዐ ዘ ዠ የ ደ ጀ ገ ጐ ጠ ጨ ጰ ጸ ፀ ፈ ፐ"\r
+        "]"\r
+    }\r
     ExemplarCharactersNumbers{"[\\- , . % ‰ + 0 1 2 3 4 5 6 7 8 9]"}\r
     ExemplarCharactersPunctuation{"[‐ – , ፡ ፣ ፤ ፥ ፦ ! ? . ። ‹ › « » ( ) \\[ \\]]"}\r
     MoreInformation{"?"}\r
@@ -27,7 +31,9 @@ am{
         default{"latn"}\r
         latn{\r
             miscPatterns{\r
+                approximately{"~{0}"}\r
                 atLeast{"{0}+"}\r
+                atMost{"≤{0}"}\r
                 range{"{0}–{1}"}\r
             }\r
             patterns{\r
@@ -219,7 +225,7 @@ am{
         native{"latn"}\r
         traditional{"ethi"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.65"}\r
     calendar{\r
         buddhist{\r
             DateTimePatterns{\r
@@ -638,6 +644,19 @@ am{
                 }\r
             }\r
         }\r
+        ethiopic-amete-alem{\r
+            eras{\r
+                abbreviated{\r
+                    "ERA0",\r
+                }\r
+                narrow{\r
+                    "ERA0",\r
+                }\r
+                wide{\r
+                    "ERA0",\r
+                }\r
+            }\r
+        }\r
         generic{\r
             DateTimePatterns{\r
                 "h:mm:ss a zzzz",\r
@@ -667,7 +686,7 @@ am{
                 Ehm{"E h:mm a"}\r
                 Ehms{"E h:mm:ss a"}\r
                 Gy{"y G"}\r
-                GyMMM{"MMM፣ y G"}\r
+                GyMMM{"G y MMM"}\r
                 GyMMMEd{"E MMM d፣ y G"}\r
                 GyMMMd{"MMM d፣ y G"}\r
                 H{"H"}\r
@@ -821,7 +840,7 @@ am{
                 "h:mm:ss a z",\r
                 "h:mm:ss a",\r
                 "h:mm a",\r
-                "EEEE ፣d MMMM y",\r
+                "y MMMM d, EEEE",\r
                 "d MMMM y",\r
                 "d MMM y",\r
                 "dd/MM/y",\r
@@ -848,8 +867,8 @@ am{
                 Ehms{"E h:mm:ss a"}\r
                 Gy{"y G"}\r
                 GyMMM{"MMM y G"}\r
-                GyMMMEd{"E፣ MMM d፣ y G"}\r
-                GyMMMd{"MMM d፣ y G"}\r
+                GyMMMEd{"G y MMM d, E"}\r
+                GyMMMd{"G y MMM d"}\r
                 H{"H"}\r
                 Hm{"HH:mm"}\r
                 Hms{"HH:mm:ss"}\r
@@ -970,7 +989,7 @@ am{
             dayPeriod{\r
                 format{\r
                     abbreviated{\r
-                        afternoon1{"ከሰዓት1"}\r
+                        afternoon1{"ከሰዓት 7"}\r
                         evening1{"ማታ1"}\r
                         midnight{"እኩለ ሌሊት"}\r
                         morning1{"ጥዋት1"}\r
@@ -986,7 +1005,7 @@ am{
                         noon{"ቀ"}\r
                     }\r
                     wide{\r
-                        afternoon1{"ከሰዓት1"}\r
+                        afternoon1{"ከሰዓት 7 ሰዓት"}\r
                         evening1{"ማታ1"}\r
                         midnight{"እኩለ ሌሊት"}\r
                         morning1{"ጥዋት1"}\r
@@ -1075,7 +1094,7 @@ am{
                     M{"MMM–MMM"}\r
                 }\r
                 MMMEd{\r
-                    M{"E፣ MMM d – E፣ MMM d"}\r
+                    M{"MMM d, E – MMM d, E"}\r
                     d{"E d – E d፣ MMM"}\r
                 }\r
                 MMMd{\r
@@ -1117,7 +1136,7 @@ am{
                 }\r
                 yMEd{\r
                     M{"E d/M/ – E d/M፣ y"}\r
-                    d{"E፣ d/M/y – E፣ d/M/y"}\r
+                    d{"y-MM-dd, E – y-MM-dd, E"}\r
                     y{"E፣ d/M/y – E፣ d/M/y"}\r
                 }\r
                 yMMM{\r
@@ -2258,8 +2277,13 @@ am{
         general{\r
             lenient{\r
                 "[.․。︒﹒.。]",\r
+                "['ʼ՚᾽᾿’']",\r
+                "[%٪﹪%]",\r
+                "[؉‰]",\r
                 "[\$﹩$$]",\r
                 "[£₤]",\r
+                "[¥¥]",\r
+                "[₩₩]",\r
                 "[₨₹{Rp}{Rs}]",\r
             }\r
         }\r
index 9f97eee..9c1aadc 100644 (file)
@@ -45,7 +45,9 @@ ar{
         default_latn{"latn"}\r
         latn{\r
             miscPatterns{\r
+                approximately{"~{0}"}\r
                 atLeast{"+{0}"}\r
+                atMost{"≤{0}"}\r
                 range{"{0}–{1}"}\r
             }\r
             patterns{\r
@@ -384,7 +386,7 @@ ar{
         minimumGroupingDigits{"1"}\r
         native{"arab"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.50"}\r
     calendar{\r
         buddhist{\r
             eras{\r
@@ -1635,6 +1637,7 @@ ar{
                     "تيشو",\r
                     "شووا",\r
                     "هيسي",\r
+                    "Qqqq",\r
                 }\r
             }\r
         }\r
@@ -2965,8 +2968,13 @@ ar{
         general{\r
             lenient{\r
                 "[.․。︒﹒.。]",\r
+                "['ʼ՚᾽᾿’']",\r
+                "[%٪﹪%]",\r
+                "[؉‰]",\r
                 "[\$﹩$$]",\r
                 "[£₤]",\r
+                "[¥¥]",\r
+                "[₩₩]",\r
                 "[₨₹{Rp}{Rs}]",\r
             }\r
         }\r
index d94aae2..28e5183 100644 (file)
@@ -10,7 +10,7 @@ ar_SA{
             }\r
         }\r
     }\r
-    Version{"2.1.38.80"}\r
+    Version{"2.1.43.65"}\r
     calendar{\r
         default{"islamic-umalqura"}\r
         gregorian{\r
index 948bd19..414c4a5 100644 (file)
@@ -16,6 +16,10 @@ as{
         "ী \u09C1 \u09C2 \u09C3 ে ৈ ো ৌ \u09CD]"\r
     }\r
     ExemplarCharactersNumbers{"[\\- , . % ‰ + 0০ 1১ 2২ 3৩ 4৪ 5৫ 6৬ 7৭ 8৮ 9৯]"}\r
+    ExemplarCharactersPunctuation{\r
+        "[\\- ‐ – — , ; \\: ! ? . … । ' ‘ ’ \u0022 “ ” ( ) \\[ \\] § @ * / \\& # † ‡ "\r
+        "′ ″]"\r
+    }\r
     MoreInformation{"?"}\r
     NumberElements{\r
         beng{\r
@@ -41,7 +45,7 @@ as{
         default{"beng"}\r
         latn{\r
             miscPatterns{\r
-                atLeast{"⩾{0}"}\r
+                atLeast{"â\89¥{0}"}\r
                 range{"{0}–{1}"}\r
             }\r
             patterns{\r
@@ -230,7 +234,7 @@ as{
         minimumGroupingDigits{"1"}\r
         native{"beng"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.94"}\r
     calendar{\r
         generic{\r
             DateTimePatterns{\r
@@ -541,12 +545,16 @@ as{
                 }\r
                 abbreviated%variant{\r
                     "খ্ৰীষ্টপূৰ্ব",\r
-                    "CE",\r
+                    "চি. ই.",\r
                 }\r
                 wide{\r
                     "খ্ৰীষ্টপূৰ্ব",\r
                     "খ্ৰীষ্টাব্দ",\r
                 }\r
+                wide%variant{\r
+                    "খ্ৰীষ্টপূৰ্ব",\r
+                    "চি. ই.",\r
+                }\r
             }\r
             intervalFormats{\r
                 H{\r
@@ -1697,8 +1705,13 @@ as{
         general{\r
             lenient{\r
                 "[.․。︒﹒.。]",\r
+                "['ʼ՚᾽᾿’']",\r
+                "[%٪﹪%]",\r
+                "[؉‰]",\r
                 "[\$﹩$$]",\r
                 "[£₤]",\r
+                "[¥¥]",\r
+                "[₩₩]",\r
                 "[₨₹{Rp}{Rs}]",\r
             }\r
         }\r
index 7f92e9c..7126df8 100644 (file)
@@ -45,7 +45,7 @@ ast{
         default{"latn"}\r
         latn{\r
             miscPatterns{\r
-                atLeast{"⩾{0}"}\r
+                atLeast{"â\89¥{0}"}\r
                 range{"{0}–{1}"}\r
             }\r
             patterns{\r
@@ -236,7 +236,7 @@ ast{
         minimumGroupingDigits{"1"}\r
         native{"latn"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.91"}\r
     calendar{\r
         buddhist{\r
             DateTimePatterns{\r
@@ -1154,8 +1154,8 @@ ast{
                 yQQQ{"QQQ y"}\r
                 yQQQQ{"QQQQ 'de' y"}\r
                 yw{\r
-                    one{"'selmana' w 'de' y"}\r
-                    other{"'selmana' w 'de' y"}\r
+                    one{"'selmana' w 'de' Y"}\r
+                    other{"'selmana' w 'de' Y"}\r
                 }\r
             }\r
             dayNames{\r
@@ -2304,6 +2304,7 @@ ast{
                     "Taishō",\r
                     "e. Shōwa",\r
                     "Heisei",\r
+                    "Qqqq",\r
                 }\r
                 narrow{\r
                     "Taika",\r
@@ -2542,6 +2543,7 @@ ast{
                     "T",\r
                     "S",\r
                     "H",\r
+                    "Q",\r
                 }\r
                 wide{\r
                     "Taika (645–650)",\r
@@ -2780,6 +2782,7 @@ ast{
                     "Taishō",\r
                     "era Shōwa",\r
                     "Heisei",\r
+                    "Qqqq",\r
                 }\r
             }\r
             intervalFormats{\r
@@ -3944,8 +3947,13 @@ ast{
         general{\r
             lenient{\r
                 "[.․。︒﹒.。]",\r
+                "['ʼ՚᾽᾿’']",\r
+                "[%٪﹪%]",\r
+                "[؉‰]",\r
                 "[\$﹩$$]",\r
                 "[£₤]",\r
+                "[¥¥]",\r
+                "[₩₩]",\r
                 "[₨₹{Rp}{Rs}]",\r
             }\r
         }\r
index d71d8db..c393781 100644 (file)
@@ -22,12 +22,14 @@ az{
         default{"latn"}\r
         latn{\r
             miscPatterns{\r
+                approximately{"~{0}"}\r
                 atLeast{"{0}+"}\r
+                atMost{"≤{0}"}\r
                 range{"{0}–{1}"}\r
             }\r
             patterns{\r
-                accountingFormat{"¤ #,##0.00"}\r
-                currencyFormat{"¤ #,##0.00"}\r
+                accountingFormat{"#,##0.00 ¤"}\r
+                currencyFormat{"#,##0.00 ¤"}\r
                 decimalFormat{"#,##0.###"}\r
                 percentFormat{"#,##0%"}\r
                 scientificFormat{"#E0"}\r
@@ -87,52 +89,52 @@ az{
             patternsShort{\r
                 currencyFormat{\r
                     1000{\r
-                        one{"¤ 0K"}\r
-                        other{"¤ 0K"}\r
+                        one{"0K ¤"}\r
+                        other{"0K ¤"}\r
                     }\r
                     10000{\r
-                        one{"¤ 00K"}\r
-                        other{"¤ 00K"}\r
+                        one{"00K ¤"}\r
+                        other{"00K ¤"}\r
                     }\r
                     100000{\r
-                        one{"¤ 000K"}\r
-                        other{"¤ 000K"}\r
+                        one{"000K ¤"}\r
+                        other{"000K ¤"}\r
                     }\r
                     1000000{\r
-                        one{"¤ 0M"}\r
-                        other{"¤ 0M"}\r
+                        one{"0M ¤"}\r
+                        other{"0M ¤"}\r
                     }\r
                     10000000{\r
-                        one{"¤ 00M"}\r
-                        other{"¤ 00M"}\r
+                        one{"00M ¤"}\r
+                        other{"00M ¤"}\r
                     }\r
                     100000000{\r
-                        one{"¤ 000M"}\r
-                        other{"¤ 000M"}\r
+                        one{"000M ¤"}\r
+                        other{"000M ¤"}\r
                     }\r
                     1000000000{\r
-                        one{"¤ 0G"}\r
-                        other{"¤ 0G"}\r
+                        one{"0G ¤"}\r
+                        other{"0G ¤"}\r
                     }\r
                     10000000000{\r
-                        one{"¤ 00G"}\r
-                        other{"¤ 00G"}\r
+                        one{"00G ¤"}\r
+                        other{"00G ¤"}\r
                     }\r
                     100000000000{\r
-                        one{"¤ 000G"}\r
-                        other{"¤ 000G"}\r
+                        one{"000G ¤"}\r
+                        other{"000G ¤"}\r
                     }\r
                     1000000000000{\r
-                        one{"¤ 0T"}\r
-                        other{"¤ 0T"}\r
+                        one{"0T ¤"}\r
+                        other{"0T ¤"}\r
                     }\r
                     10000000000000{\r
-                        one{"¤ 00T"}\r
-                        other{"¤ 00T"}\r
+                        one{"00T ¤"}\r
+                        other{"00T ¤"}\r
                     }\r
                     100000000000000{\r
-                        one{"¤ 000T"}\r
-                        other{"¤ 000T"}\r
+                        one{"000T ¤"}\r
+                        other{"000T ¤"}\r
                     }\r
                 }\r
                 decimalFormat{\r
@@ -216,7 +218,7 @@ az{
         minimumGroupingDigits{"1"}\r
         native{"latn"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.53"}\r
     calendar{\r
         generic{\r
             DateTimePatterns{\r
@@ -278,6 +280,20 @@ az{
                 yyyyQQQQ{"G y QQQQ"}\r
             }\r
             intervalFormats{\r
+                H{\r
+                    H{"HH–HH"}\r
+                }\r
+                Hm{\r
+                    H{"HH:mm–HH:mm"}\r
+                    m{"HH:mm–HH:mm"}\r
+                }\r
+                Hmv{\r
+                    H{"HH:mm–HH:mm v"}\r
+                    m{"HH:mm–HH:mm v"}\r
+                }\r
+                Hv{\r
+                    H{"HH–HH v"}\r
+                }\r
                 M{\r
                     M{"MM–MM"}\r
                 }\r
@@ -304,6 +320,24 @@ az{
                     d{"d–d"}\r
                 }\r
                 fallback{"{0} – {1}"}\r
+                h{\r
+                    a{"h a – h a"}\r
+                    h{"h–h a"}\r
+                }\r
+                hm{\r
+                    a{"h:mm a – h:mm a"}\r
+                    h{"h:mm–h:mm a"}\r
+                    m{"h:mm–h:mm a"}\r
+                }\r
+                hmv{\r
+                    a{"h:mm a – h:mm a v"}\r
+                    h{"h:mm–h:mm a v"}\r
+                    m{"h:mm–h:mm a v"}\r
+                }\r
+                hv{\r
+                    a{"h a – h a v"}\r
+                    h{"h–h a v"}\r
+                }\r
                 y{\r
                     y{"G y–y"}\r
                 }\r
@@ -1149,8 +1183,8 @@ az{
             }\r
             relativeTime{\r
                 future{\r
-                    one{"{0} bazar ertəsi əzrində"}\r
-                    other{"{0} bazar ertəsi əzrində"}\r
+                    one{"{0} bazar ertəsi ərzində"}\r
+                    other{"{0} bazar ertəsi ərzində"}\r
                 }\r
                 past{\r
                     one{"{0} bazar ertəsi öncə"}\r
@@ -1166,8 +1200,8 @@ az{
             }\r
             relativeTime{\r
                 future{\r
-                    one{"{0} bazar ertəsi əzrində"}\r
-                    other{"{0} bazar ertəsi əzrində"}\r
+                    one{"{0} bazar ertəsi ərzində"}\r
+                    other{"{0} bazar ertəsi ərzində"}\r
                 }\r
                 past{\r
                     one{"{0} bazar ertəsi öncə"}\r
@@ -1239,6 +1273,11 @@ az{
         }\r
         quarter-narrow{\r
             dn{"rüb"}\r
+            relative{\r
+                "-1"{"keçən rüb"}\r
+                "0"{"bu rüb"}\r
+                "1"{"gələn rüb"}\r
+            }\r
             relativeTime{\r
                 future{\r
                     one{"{0} rüb ərzində"}\r
@@ -1252,6 +1291,11 @@ az{
         }\r
         quarter-short{\r
             dn{"rüb"}\r
+            relative{\r
+                "-1"{"keçən rüb"}\r
+                "0"{"bu rüb"}\r
+                "1"{"gələn rüb"}\r
+            }\r
             relativeTime{\r
                 future{\r
                     one{"{0} rüb ərzində"}\r
@@ -1741,8 +1785,13 @@ az{
         general{\r
             lenient{\r
                 "[.․。︒﹒.。]",\r
+                "['ʼ՚᾽᾿’']",\r
+                "[%٪﹪%]",\r
+                "[؉‰]",\r
                 "[\$﹩$$]",\r
                 "[£₤]",\r
+                "[¥¥]",\r
+                "[₩₩]",\r
                 "[₨₹{Rp}{Rs}]",\r
             }\r
         }\r
index 2ee97a2..37eef51 100644 (file)
@@ -8,8 +8,8 @@ az_Cyrl{
     NumberElements{\r
         latn{\r
             patterns{\r
-                accountingFormat{"¤ #,##0.00"}\r
-                currencyFormat{"¤ #,##0.00"}\r
+                accountingFormat{"#,##0.00 ¤"}\r
+                currencyFormat{"#,##0.00 ¤"}\r
                 decimalFormat{"#,##0.###"}\r
                 percentFormat{"#,##0%"}\r
             }\r
@@ -27,7 +27,7 @@ az_Cyrl{
             }\r
         }\r
     }\r
-    Version{"2.1.38.69"}\r
+    Version{"2.1.44.53"}\r
     calendar{\r
         generic{\r
             DateTimePatterns{\r
index 21ccc36..c91fbaf 100644 (file)
@@ -22,7 +22,9 @@ be{
         default{"latn"}\r
         latn{\r
             miscPatterns{\r
+                approximately{"≈{0}"}\r
                 atLeast{"{0}+"}\r
+                atMost{"≤{0}"}\r
                 range{"{0}–{1}"}\r
             }\r
             patterns{\r
@@ -287,7 +289,7 @@ be{
         minimumGroupingDigits{"2"}\r
         native{"latn"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.65"}\r
     calendar{\r
         buddhist{\r
             DateTimePatterns{\r
@@ -1089,14 +1091,14 @@ be{
                 future{\r
                     few{"праз {0} пятніцы"}\r
                     many{"праз {0} пятніц"}\r
-                    one{"пÑ\80аз {0} Ð¿Ñ\8fÑ\82нÑ\96Ñ\86Ñ\83"}\r
-                    other{"пÑ\80аз {0} Ð¿Ñ\8fÑ\82нÑ\96Ñ\86Ñ\8b"}\r
+                    one{"пÑ\80аз {0} Ð¿Ñ\82"}\r
+                    other{"пÑ\80аз {0} Ð¿Ñ\82"}\r
                 }\r
                 past{\r
                     few{"{0} пятніцы таму"}\r
                     many{"{0} пятніц таму"}\r
-                    one{"{0} Ð¿Ñ\8fÑ\82нÑ\96Ñ\86Ñ\83 таму"}\r
-                    other{"{0} Ð¿Ñ\8fÑ\82нÑ\96Ñ\86Ñ\8b таму"}\r
+                    one{"{0} Ð¿Ñ\82 таму"}\r
+                    other{"{0} Ð¿Ñ\82 таму"}\r
                 }\r
             }\r
         }\r
@@ -1110,14 +1112,14 @@ be{
                 future{\r
                     few{"праз {0} пятніцы"}\r
                     many{"праз {0} пятніц"}\r
-                    one{"пÑ\80аз {0} Ð¿Ñ\8fÑ\82нÑ\96Ñ\86Ñ\83"}\r
-                    other{"пÑ\80аз {0} Ð¿Ñ\8fÑ\82нÑ\96Ñ\86Ñ\8b"}\r
+                    one{"пÑ\80аз {0} Ð¿Ñ\82"}\r
+                    other{"пÑ\80аз {0} Ð¿Ñ\82"}\r
                 }\r
                 past{\r
                     few{"{0} пятніцы таму"}\r
                     many{"{0} пятніц таму"}\r
-                    one{"{0} Ð¿Ñ\8fÑ\82нÑ\96Ñ\86Ñ\83 таму"}\r
-                    other{"{0} Ð¿Ñ\8fÑ\82нÑ\96Ñ\86Ñ\8b таму"}\r
+                    one{"{0} Ð¿Ñ\82 таму"}\r
+                    other{"{0} Ð¿Ñ\82 таму"}\r
                 }\r
             }\r
         }\r
@@ -1260,14 +1262,14 @@ be{
                 future{\r
                     few{"праз {0} панядзелкі"}\r
                     many{"праз {0} панядзелкаў"}\r
-                    one{"пÑ\80аз {0} Ð¿Ð°Ð½Ñ\8fдзелак"}\r
-                    other{"пÑ\80аз {0} Ð¿Ð°Ð½Ñ\8fдзелка"}\r
+                    one{"пÑ\80аз {0} Ð¿Ð½"}\r
+                    other{"пÑ\80аз {0} Ð¿Ð½"}\r
                 }\r
                 past{\r
                     few{"{0} панядзелкі таму"}\r
                     many{"{0} панядзелкаў таму"}\r
-                    one{"{0} Ð¿Ð°Ð½Ñ\8fдзелак таму"}\r
-                    other{"{0} Ð¿Ð°Ð½Ñ\8fдзелка таму"}\r
+                    one{"{0} Ð¿Ð½ таму"}\r
+                    other{"{0} Ð¿Ð½ таму"}\r
                 }\r
             }\r
         }\r
@@ -1281,14 +1283,14 @@ be{
                 future{\r
                     few{"праз {0} панядзелкі"}\r
                     many{"праз {0} панядзелкаў"}\r
-                    one{"пÑ\80аз {0} Ð¿Ð°Ð½Ñ\8fдзелак"}\r
-                    other{"пÑ\80аз {0} Ð¿Ð°Ð½Ñ\8fдзелка"}\r
+                    one{"пÑ\80аз {0} Ð¿Ð½"}\r
+                    other{"пÑ\80аз {0} Ð¿Ð½"}\r
                 }\r
                 past{\r
                     few{"{0} панядзелкі таму"}\r
                     many{"{0} панядзелкаў таму"}\r
-                    one{"{0} Ð¿Ð°Ð½Ñ\8fдзелак таму"}\r
-                    other{"{0} Ð¿Ð°Ð½Ñ\8fдзелка таму"}\r
+                    one{"{0} Ð¿Ð½ таму"}\r
+                    other{"{0} Ð¿Ð½ таму"}\r
                 }\r
             }\r
         }\r
@@ -1435,14 +1437,14 @@ be{
                 future{\r
                     few{"праз {0} суботы"}\r
                     many{"праз {0} субот"}\r
-                    one{"праз {0} суботу"}\r
-                    other{"праз {0} суботы"}\r
+                    one{"праз {0} сб"}\r
+                    other{"праз {0} сб"}\r
                 }\r
                 past{\r
                     few{"{0} суботы таму"}\r
                     many{"{0} субот таму"}\r
-                    one{"{0} суботу таму"}\r
-                    other{"{0} суботы таму"}\r
+                    one{"{0} сб таму"}\r
+                    other{"{0} сб таму"}\r
                 }\r
             }\r
         }\r
@@ -1456,14 +1458,14 @@ be{
                 future{\r
                     few{"праз {0} суботы"}\r
                     many{"праз {0} субот"}\r
-                    one{"праз {0} суботу"}\r
-                    other{"праз {0} суботы"}\r
+                    one{"праз {0} сб"}\r
+                    other{"праз {0} сб"}\r
                 }\r
                 past{\r
                     few{"{0} суботы таму"}\r
                     many{"{0} субот таму"}\r
-                    one{"{0} суботу таму"}\r
-                    other{"{0} суботы таму"}\r
+                    one{"{0} сб таму"}\r
+                    other{"{0} сб таму"}\r
                 }\r
             }\r
         }\r
@@ -1552,14 +1554,14 @@ be{
                 future{\r
                     few{"праз {0} нядзелі"}\r
                     many{"праз {0} нядзель"}\r
-                    one{"праз {0} нядзелю"}\r
-                    other{"праз {0} нядзелі"}\r
+                    one{"праз {0} нд"}\r
+                    other{"праз {0} нд"}\r
                 }\r
                 past{\r
                     few{"{0} нядзелі таму"}\r
                     many{"{0} нядзель таму"}\r
-                    one{"{0} нядзелю таму"}\r
-                    other{"{0} нядзелі таму"}\r
+                    one{"{0} нд таму"}\r
+                    other{"{0} нд таму"}\r
                 }\r
             }\r
         }\r
@@ -1573,14 +1575,14 @@ be{
                 future{\r
                     few{"праз {0} нядзелі"}\r
                     many{"праз {0} нядзель"}\r
-                    one{"праз {0} нядзелю"}\r
-                    other{"праз {0} нядзелі"}\r
+                    one{"праз {0} нд"}\r
+                    other{"праз {0} нд"}\r
                 }\r
                 past{\r
                     few{"{0} нядзелі таму"}\r
                     many{"{0} нядзель таму"}\r
-                    one{"{0} нядзелю таму"}\r
-                    other{"{0} нядзелі таму"}\r
+                    one{"{0} нд таму"}\r
+                    other{"{0} нд таму"}\r
                 }\r
             }\r
         }\r
@@ -1615,14 +1617,14 @@ be{
                 future{\r
                     few{"праз {0} чацвяргі"}\r
                     many{"праз {0} чацвяргоў"}\r
-                    one{"праз {0} чацвер"}\r
-                    other{"праз {0} чацвярга"}\r
+                    one{"праз {0} чц"}\r
+                    other{"праз {0} чц"}\r
                 }\r
                 past{\r
                     few{"{0} чацвяргі таму"}\r
                     many{"{0} чацвяргоў таму"}\r
-                    one{"{0} чацвер таму"}\r
-                    other{"{0} чацвярга таму"}\r
+                    one{"{0} чц таму"}\r
+                    other{"{0} чц таму"}\r
                 }\r
             }\r
         }\r
@@ -1636,14 +1638,14 @@ be{
                 future{\r
                     few{"праз {0} чацвяргі"}\r
                     many{"праз {0} чацвяргоў"}\r
-                    one{"праз {0} чацвер"}\r
-                    other{"праз {0} чацвярга"}\r
+                    one{"праз {0} чц"}\r
+                    other{"праз {0} чц"}\r
                 }\r
                 past{\r
                     few{"{0} чацвяргі таму"}\r
                     many{"{0} чацвяргоў таму"}\r
-                    one{"{0} чацвер таму"}\r
-                    other{"{0} чацвярга таму"}\r
+                    one{"{0} чц таму"}\r
+                    other{"{0} чц таму"}\r
                 }\r
             }\r
         }\r
@@ -1678,14 +1680,14 @@ be{
                 future{\r
                     few{"праз {0} аўторкі"}\r
                     many{"праз {0} аўторкаў"}\r
-                    one{"праз {0} аўторак"}\r
-                    other{"праз {0} аўторка"}\r
+                    one{"праз {0} аў"}\r
+                    other{"праз {0} аў"}\r
                 }\r
                 past{\r
                     few{"{0} аўторкі таму"}\r
                     many{"{0} аўторкаў таму"}\r
-                    one{"{0} аўторак таму"}\r
-                    other{"{0} аўторка таму"}\r
+                    one{"{0} аў таму"}\r
+                    other{"{0} аў таму"}\r
                 }\r
             }\r
         }\r
@@ -1699,14 +1701,14 @@ be{
                 future{\r
                     few{"праз {0} аўторкі"}\r
                     many{"праз {0} аўторкаў"}\r
-                    one{"праз {0} аўторак"}\r
-                    other{"праз {0} аўторка"}\r
+                    one{"праз {0} аў"}\r
+                    other{"праз {0} аў"}\r
                 }\r
                 past{\r
                     few{"{0} аўторкі таму"}\r
                     many{"{0} аўторкаў таму"}\r
-                    one{"{0} аўторак таму"}\r
-                    other{"{0} аўторка таму"}\r
+                    one{"{0} аў таму"}\r
+                    other{"{0} аў таму"}\r
                 }\r
             }\r
         }\r
@@ -1741,14 +1743,14 @@ be{
                 future{\r
                     few{"праз {0} серады"}\r
                     many{"праз {0} серад"}\r
-                    one{"праз {0} сераду"}\r
-                    other{"праз {0} серады"}\r
+                    one{"праз {0} ср"}\r
+                    other{"праз {0} ср"}\r
                 }\r
                 past{\r
                     few{"{0} серады таму"}\r
                     many{"{0} серад таму"}\r
-                    one{"{0} сераду таму"}\r
-                    other{"{0} серады таму"}\r
+                    one{"{0} ср таму"}\r
+                    other{"{0} ср таму"}\r
                 }\r
             }\r
         }\r
@@ -1762,14 +1764,14 @@ be{
                 future{\r
                     few{"праз {0} серады"}\r
                     many{"праз {0} серад"}\r
-                    one{"праз {0} сераду"}\r
-                    other{"праз {0} серады"}\r
+                    one{"праз {0} ср"}\r
+                    other{"праз {0} ср"}\r
                 }\r
                 past{\r
                     few{"{0} серады таму"}\r
                     many{"{0} серад таму"}\r
-                    one{"{0} сераду таму"}\r
-                    other{"{0} серады таму"}\r
+                    one{"{0} ср таму"}\r
+                    other{"{0} ср таму"}\r
                 }\r
             }\r
         }\r
index 13d00e9..dafc7e0 100644 (file)
@@ -19,7 +19,9 @@ bg{
         default{"latn"}\r
         latn{\r
             miscPatterns{\r
-                atLeast{"⩾ {0}"}\r
+                approximately{"~{0}"}\r
+                atLeast{"≥ {0}"}\r
+                atMost{"≤ {0}"}\r
                 range{"{0} – {1}"}\r
             }\r
             patterns{\r
@@ -210,7 +212,7 @@ bg{
         minimumGroupingDigits{"2"}\r
         native{"latn"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.94"}\r
     calendar{\r
         generic{\r
             DateTimePatterns{\r
@@ -573,7 +575,7 @@ bg{
                         evening1{"вечерта"}\r
                         midnight{"полунощ"}\r
                         morning1{"сутринта"}\r
-                        morning2{"на обед"}\r
+                        morning2{"на обяд"}\r
                         night1{"през нощта"}\r
                     }\r
                     narrow{\r
@@ -581,7 +583,7 @@ bg{
                         evening1{"вечерта"}\r
                         midnight{"полунощ"}\r
                         morning1{"сутринта"}\r
-                        morning2{"на обед"}\r
+                        morning2{"на обяд"}\r
                         night1{"през нощта"}\r
                     }\r
                     wide{\r
@@ -600,7 +602,7 @@ bg{
                         evening1{"вечерта"}\r
                         midnight{"полунощ"}\r
                         morning1{"сутринта"}\r
-                        morning2{"на обед"}\r
+                        morning2{"на обяд"}\r
                         night1{"през нощта"}\r
                         pm{"pm"}\r
                     }\r
@@ -610,7 +612,7 @@ bg{
                         evening1{"вечерта"}\r
                         midnight{"полунощ"}\r
                         morning1{"сутринта"}\r
-                        morning2{"наобед"}\r
+                        morning2{"на обяд"}\r
                         night1{"през нощта"}\r
                         pm{"pm"}\r
                     }\r
@@ -620,7 +622,7 @@ bg{
                         evening1{"вечерта"}\r
                         midnight{"полунощ"}\r
                         morning1{"сутринта"}\r
-                        morning2{"на обед"}\r
+                        morning2{"на обяд"}\r
                         night1{"през нощта"}\r
                         pm{"pm"}\r
                     }\r
@@ -990,7 +992,7 @@ bg{
         half_width_form_variant{"Варианти на форми с половин ширина"}\r
         han_characters{"Хан логограми"}\r
         han_radicals{"Хан радикали"}\r
-        hanja{"Ханджа"}\r
+        hanja{"Ханча"}\r
         hanzi_simplified{"Ханзи (опростен)"}\r
         hanzi_traditional{"Ханзи (традиционен)"}\r
         heart{"Сърце"}\r
@@ -1006,7 +1008,7 @@ bg{
         limited_use{"Ограничена употреба"}\r
         male{"Мъж"}\r
         math_symbols{"Математически символи"}\r
-        middle_eastern_scripts{"СÑ\80едноевÑ\80опейÑ\81ки писмени знаци"}\r
+        middle_eastern_scripts{"Ð\91лизкоизÑ\82оÑ\87ни писмени знаци"}\r
         miscellaneous{"Разни"}\r
         modern_scripts{"Модерни писмени знаци"}\r
         modifier{"Модификатори"}\r
@@ -1026,7 +1028,7 @@ bg{
         rightwards_arrows{"Сочещи надясно стрелки"}\r
         sign_standard_symbols{"Знак/стандартен символ"}\r
         small_form_variant{"Варианти на малки форми"}\r
-        smiley{"УÑ\81миÑ\85наÑ\82о Ð»Ð¸Ñ\86е"}\r
+        smiley{"Ð\95моÑ\82икони"}\r
         smileys_people{"Емотикони и хора"}\r
         south_asian_scripts{"Южноазиатски писмености"}\r
         southeast_asian_scripts{"Югоизточноазиатски писмени знаци"}\r
@@ -1042,7 +1044,7 @@ bg{
         vocalic_jamo{"Джамо за гласни"}\r
         weather{"Времето"}\r
         western_asian_scripts{"Западноазиатски писмени знаци"}\r
-        whitespace{"Ð\91ели Ð¿Ð¾Ð»ÐµÑ\82а"}\r
+        whitespace{"Ð\98нÑ\82еÑ\80вали"}\r
     }\r
     delimiters{\r
         alternateQuotationEnd{"“"}\r
@@ -1114,6 +1116,12 @@ bg{
         dayOfYear{\r
             dn{"ден от годината"}\r
         }\r
+        dayOfYear-narrow{\r
+            dn{"ден от г."}\r
+        }\r
+        dayOfYear-short{\r
+            dn{"ден от г."}\r
+        }\r
         dayperiod{\r
             dn{"пр.об./сл.об."}\r
         }\r
@@ -1507,7 +1515,7 @@ bg{
             }\r
         }\r
         second-short{\r
-            dn{"с"}\r
+            dn{"сек"}\r
             relativeTime{\r
                 future{\r
                     one{"след {0} сек"}\r
@@ -1801,6 +1809,12 @@ bg{
         weekdayOfMonth{\r
             dn{"работен ден от месеца"}\r
         }\r
+        weekdayOfMonth-narrow{\r
+            dn{"раб. ден от мес."}\r
+        }\r
+        weekdayOfMonth-short{\r
+            dn{"раб. ден от мес."}\r
+        }\r
         year{\r
             dn{"година"}\r
             relative{\r
index bc76f10..d8e6b4e 100644 (file)
@@ -20,6 +20,10 @@ bn{
         "ফ ব ভ ম য র ল শ ষ স হ]"\r
     }\r
     ExemplarCharactersNumbers{"[\\- , . % ‰ + 0০ 1১ 2২ 3৩ 4৪ 5৫ 6৬ 7৭ 8৮ 9৯]"}\r
+    ExemplarCharactersPunctuation{\r
+        "[\\- ‐ – — , ; \\: ! ? . … ' ‘ ’ \u0022 “ ” ( ) \\[ \\] § @ * / \\& # † ‡ ′ "\r
+        "″]"\r
+    }\r
     MoreInformation{"?"}\r
     NumberElements{\r
         beng{\r
@@ -46,7 +50,9 @@ bn{
         default{"beng"}\r
         latn{\r
             miscPatterns{\r
+                approximately{"~{0}"}\r
                 atLeast{"{0}+"}\r
+                atMost{"≤{0}"}\r
                 range{"{0}–{1}"}\r
             }\r
             patterns{\r
@@ -241,7 +247,7 @@ bn{
         minimumGroupingDigits{"1"}\r
         native{"beng"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.91"}\r
     calendar{\r
         buddhist{\r
             eras{\r
@@ -753,7 +759,7 @@ bn{
                         "বুঃ",\r
                         "বৃঃ",\r
                         "শুঃ",\r
-                        "শà§\8bà¦\83",\r
+                        "শনি",\r
                     }\r
                     wide{\r
                         "রবিবার",\r
@@ -798,7 +804,7 @@ bn{
                         "সোমবার",\r
                         "মঙ্গলবার",\r
                         "বুধবার",\r
-                        "বà§\83হষ্পতিবার",\r
+                        "বà§\83হস্পতিবার",\r
                         "শুক্রবার",\r
                         "শনিবার",\r
                     }\r
@@ -1070,10 +1076,10 @@ bn{
             quarters{\r
                 format{\r
                     abbreviated{\r
-                        "Q1",\r
-                        "Q2",\r
-                        "Q3",\r
-                        "Q4",\r
+                        "ত্রৈমাসিক",\r
+                        "দ্বিতীয় ত্রৈমাসিক",\r
+                        "তৃতীয় ত্রৈমাসিক",\r
+                        "চতুর্থ ত্রৈমাসিক",\r
                     }\r
                     narrow{\r
                         "১",\r
@@ -1482,6 +1488,20 @@ bn{
             }\r
             monthNames{\r
                 format{\r
+                    abbreviated{\r
+                        "মহররম",\r
+                        "সফর",\r
+                        "রবিউল আউয়াল",\r
+                        "রবিউস সানি",\r
+                        "জমাদিউল আউয়াল",\r
+                        "জমাদিউস সানি",\r
+                        "রজব",\r
+                        "শা‘বান",\r
+                        "রমজান",\r
+                        "শাওয়াল",\r
+                        "জ্বিলকদ",\r
+                        "জ্বিলহজ্জ",\r
+                    }\r
                     narrow{\r
                         "১",\r
                         "২",\r
@@ -1512,6 +1532,20 @@ bn{
                     }\r
                 }\r
                 stand-alone{\r
+                    abbreviated{\r
+                        "মহররম",\r
+                        "সফর",\r
+                        "রবিউল আউয়াল",\r
+                        "রবিউস সানি",\r
+                        "জমাদিউল আউয়াল",\r
+                        "জমাদিউস সানি",\r
+                        "রজব",\r
+                        "শা‘বান",\r
+                        "রমজান",\r
+                        "শাওয়াল",\r
+                        "জ্বিলকদ",\r
+                        "জ্বিলহজ্জ",\r
+                    }\r
                     narrow{\r
                         "১",\r
                         "২",\r
@@ -2617,4 +2651,36 @@ bn{
         US{"ইউ এস"}\r
         metric{"মেট্রিক"}\r
     }\r
+    parse{\r
+        date{\r
+            lenient{\r
+                "[\\--/]",\r
+                "[\\:∶]",\r
+            }\r
+        }\r
+        general{\r
+            lenient{\r
+                "[.․。︒﹒.。]",\r
+                "['ʼ՚᾽᾿’']",\r
+                "[%٪﹪%]",\r
+                "[؉‰]",\r
+                "[\$﹩$$]",\r
+                "[£₤]",\r
+                "[¥¥]",\r
+                "[₩₩]",\r
+                "[₨₹{Rp}{Rs}]",\r
+            }\r
+        }\r
+        number{\r
+            lenient{\r
+                "[\\-‒⁻₋−➖﹣-]",\r
+                "[,،٫、︐︑﹐﹑,、]",\r
+                "[+⁺₊➕﬩﹢+]",\r
+            }\r
+            stricter{\r
+                "[,٫︐﹐,]",\r
+                "[.․﹒.。]",\r
+            }\r
+        }\r
+    }\r
 }\r
index a224b70..4650035 100644 (file)
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 bn_IN{\r
-    Version{"2.1.38.69"}\r
+    Version{"2.1.43.65"}\r
 }\r
index 8d8957f..35bc59f 100644 (file)
@@ -13,6 +13,7 @@ br{
     ExemplarCharacters{"[a b {ch} {cʼh} d e ê f g h i j k l m n ñ o p r s t u ù v w x y z]"}\r
     ExemplarCharactersIndex{"[A B C D E F G H I J K L M N O P R S T U V W X Y Z]"}\r
     ExemplarCharactersNumbers{"[  \\- , % ‰ + 0 1 2 3 4 5 6 7 8 9]"}\r
+    ExemplarCharactersPunctuation{"[\\- , ; \\: ! ? . ( ) \\[ \\] \\{ \\}]"}\r
     MoreInformation{"?"}\r
     NumberElements{\r
         arab{\r
@@ -145,7 +146,7 @@ br{
         }\r
         latn{\r
             miscPatterns{\r
-                atLeast{"⩾{0}"}\r
+                atLeast{"â\89¥{0}"}\r
                 range{"{0}–{1}"}\r
             }\r
             patterns{\r
@@ -550,7 +551,7 @@ br{
             }\r
         }\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.91"}\r
     calendar{\r
         buddhist{\r
             DateTimePatterns{\r
@@ -4105,6 +4106,7 @@ br{
                     "Taishō",\r
                     "Shōwa",\r
                     "Heisei",\r
+                    "Qqqq",\r
                 }\r
                 narrow{\r
                     "Taika (645–650)",\r
@@ -4343,6 +4345,7 @@ br{
                     "T",\r
                     "S",\r
                     "H",\r
+                    "Q",\r
                 }\r
                 wide{\r
                     "Taika (645–650)",\r
@@ -4581,6 +4584,7 @@ br{
                     "Taishō",\r
                     "Shōwa",\r
                     "Heisei",\r
+                    "Qqqq",\r
                 }\r
             }\r
             intervalFormats{\r
@@ -5080,6 +5084,12 @@ br{
         dayperiod{\r
             dn{"AM/GM"}\r
         }\r
+        dayperiod-narrow{\r
+            dn{"AM/GM"}\r
+        }\r
+        dayperiod-short{\r
+            dn{"AM/GM"}\r
+        }\r
         era{\r
             dn{"amzervezh"}\r
         }\r
@@ -5950,8 +5960,13 @@ br{
         general{\r
             lenient{\r
                 "[.․。︒﹒.。]",\r
+                "['ʼ՚᾽᾿’']",\r
+                "[%٪﹪%]",\r
+                "[؉‰]",\r
                 "[\$﹩$$]",\r
                 "[£₤]",\r
+                "[¥¥]",\r
+                "[₩₩]",\r
                 "[₨₹{Rp}{Rs}]",\r
             }\r
         }\r
index 67ab36a..185f59a 100644 (file)
@@ -36,7 +36,7 @@ brx{
         }\r
         native{"deva"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.41.34"}\r
     calendar{\r
         generic{\r
             DateTimePatterns{\r
index 686dc34..ce7bd9e 100644 (file)
@@ -17,7 +17,9 @@ bs{
         default{"latn"}\r
         latn{\r
             miscPatterns{\r
+                approximately{"~{0}"}\r
                 atLeast{"{0}+"}\r
+                atMost{"≤{0}"}\r
                 range{"{0} – {1}"}\r
             }\r
             patterns{\r
@@ -231,10 +233,20 @@ bs{
                 timeSeparator{":"}\r
             }\r
         }\r
+        minimalPairs{\r
+            ordinal{\r
+                other{"Skrenite na {0}. križanju desno."}\r
+            }\r
+            plural{\r
+                few{"{0} sata"}\r
+                one{"{0} sat"}\r
+                other{"{0} sati"}\r
+            }\r
+        }\r
         minimumGroupingDigits{"1"}\r
         native{"latn"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.88"}\r
     calendar{\r
         generic{\r
             DateTimePatterns{\r
@@ -366,8 +378,8 @@ bs{
                 "popodne",\r
             }\r
             AmPmMarkersAbbr{\r
-                "prijepodne",\r
-                "popodne",\r
+                "AM",\r
+                "PM",\r
             }\r
             AmPmMarkersNarrow{\r
                 "prijepodne",\r
@@ -381,7 +393,7 @@ bs{
                 "EEEE, d. MMMM y.",\r
                 "d. MMMM y.",\r
                 "d. MMM y.",\r
-                "d.M.yy.",\r
+                "d. M. y.",\r
                 "{1} {0}",\r
                 "{1} 'u' {0}",\r
                 "{1} 'u' {0}",\r
@@ -445,9 +457,9 @@ bs{
                 yQQQ{"QQQ y."}\r
                 yQQQQ{"QQQQ y."}\r
                 yw{\r
-                    few{"w. 'sedmica' 'u' y."}\r
-                    one{"w. 'sedmica' 'u' y."}\r
-                    other{"w. 'sedmica' 'u' y."}\r
+                    few{"w. 'sedmica' 'u' Y."}\r
+                    one{"w. 'sedmica' 'u' Y."}\r
+                    other{"w. 'sedmica' 'u' Y."}\r
                 }\r
             }\r
             dayNames{\r
@@ -558,13 +570,13 @@ bs{
                 stand-alone{\r
                     abbreviated{\r
                         afternoon1{"poslijepodne"}\r
-                        am{"prijepodne"}\r
+                        am{"AM"}\r
                         evening1{"navečer"}\r
                         midnight{"ponoć"}\r
                         morning1{"ujutro"}\r
                         night1{"po noći"}\r
                         noon{"podne"}\r
-                        pm{"popodne"}\r
+                        pm{"PM"}\r
                     }\r
                     narrow{\r
                         afternoon1{"poslijepodne"}\r
@@ -593,6 +605,10 @@ bs{
                     "p. n. e.",\r
                     "n. e.",\r
                 }\r
+                abbreviated%variant{\r
+                    "p.n.e.",\r
+                    "n.e.",\r
+                }\r
                 narrow{\r
                     "p.n.e.",\r
                     "n.e.",\r
@@ -601,6 +617,10 @@ bs{
                     "prije nove ere",\r
                     "nove ere",\r
                 }\r
+                wide%variant{\r
+                    "P.n.e.",\r
+                    "Nove ere",\r
+                }\r
             }\r
             intervalFormats{\r
                 H{\r
@@ -707,7 +727,7 @@ bs{
                         "maj",\r
                         "jun",\r
                         "jul",\r
-                        "avg",\r
+                        "aug",\r
                         "sep",\r
                         "okt",\r
                         "nov",\r
@@ -735,7 +755,7 @@ bs{
                         "maj",\r
                         "juni",\r
                         "juli",\r
-                        "avgust",\r
+                        "august",\r
                         "septembar",\r
                         "oktobar",\r
                         "novembar",\r
@@ -751,7 +771,7 @@ bs{
                         "maj",\r
                         "jun",\r
                         "jul",\r
-                        "avg",\r
+                        "aug",\r
                         "sep",\r
                         "okt",\r
                         "nov",\r
@@ -779,7 +799,7 @@ bs{
                         "maj",\r
                         "juni",\r
                         "juli",\r
-                        "avgust",\r
+                        "august",\r
                         "septembar",\r
                         "oktobar",\r
                         "novembar",\r
index b7093a7..d43fb80 100644 (file)
@@ -166,7 +166,7 @@ bs_Cyrl{
             }\r
         }\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.41.34"}\r
     calendar{\r
         buddhist{\r
             eras{\r
@@ -1035,6 +1035,7 @@ bs_Cyrl{
                     "Таишо",\r
                     "Шова",\r
                     "Хаисеи",\r
+                    "Qqqq",\r
                 }\r
             }\r
         }\r
index ff4f50c..239d705 100644 (file)
@@ -22,7 +22,9 @@ ca{
         default{"latn"}\r
         latn{\r
             miscPatterns{\r
+                approximately{"~{0}"}\r
                 atLeast{"≥ {0}"}\r
+                atMost{"≤{0}"}\r
                 range{"{0}-{1}"}\r
             }\r
             patterns{\r
@@ -99,8 +101,8 @@ ca{
                         other{"000m ¤"}\r
                     }\r
                     1000000{\r
-                        one{"0M ¤"}\r
-                        other{"0M ¤"}\r
+                        one{"0 M ¤"}\r
+                        other{"0 M ¤"}\r
                     }\r
                     10000000{\r
                         one{"00 M ¤"}\r
@@ -123,8 +125,8 @@ ca{
                         other{"000mM ¤"}\r
                     }\r
                     1000000000000{\r
-                        one{"0B ¤"}\r
-                        other{"0B ¤"}\r
+                        one{"0 B ¤"}\r
+                        other{"0 B ¤"}\r
                     }\r
                     10000000000000{\r
                         one{"00 B ¤"}\r
@@ -149,8 +151,8 @@ ca{
                         other{"000m"}\r
                     }\r
                     1000000{\r
-                        one{"0M"}\r
-                        other{"0M"}\r
+                        one{"0 M"}\r
+                        other{"0 M"}\r
                     }\r
                     10000000{\r
                         one{"00 M"}\r
@@ -173,8 +175,8 @@ ca{
                         other{"000mM"}\r
                     }\r
                     1000000000000{\r
-                        one{"0B"}\r
-                        other{"0B"}\r
+                        one{"0 B"}\r
+                        other{"0 B"}\r
                     }\r
                     10000000000000{\r
                         one{"00 B"}\r
@@ -216,7 +218,7 @@ ca{
         minimumGroupingDigits{"1"}\r
         native{"latn"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.65"}\r
     calendar{\r
         buddhist{\r
             DateTimePatterns{\r
@@ -527,13 +529,13 @@ ca{
                 "H:mm:ss z",\r
                 "H:mm:ss",\r
                 "H:mm",\r
-                "EEEE d MMMM 'de' y G",\r
+                "EEEE, d MMMM 'de' y G",\r
                 "d MMMM 'de' y G",\r
                 "d/M/y G",\r
                 "d/M/yy GGGGG",\r
                 "{1}, {0}",\r
-                "{1}, {0}",\r
-                "{1}, {0}",\r
+                "{1} 'a' 'les' {0}",\r
+                "{1} 'a' 'les' {0}",\r
                 "{1}, {0}",\r
                 "{1}, {0}",\r
             }\r
@@ -560,7 +562,7 @@ ca{
                 Hm{"H:mm"}\r
                 Hms{"H:mm:ss"}\r
                 M{"L"}\r
-                MEd{"E d/M"}\r
+                MEd{"E, d/M"}\r
                 MMM{"LLL"}\r
                 MMMEd{"E, d MMM"}\r
                 MMMMEd{"E, d MMMM"}\r
@@ -575,7 +577,7 @@ ca{
                 y{"y G"}\r
                 yyyy{"y G"}\r
                 yyyyM{"M/y G"}\r
-                yyyyMEd{"E, d.M.y G"}\r
+                yyyyMEd{"E, d/M/y GGGGG"}\r
                 yyyyMMM{"LLL y G"}\r
                 yyyyMMMEd{"E, d MMM y G"}\r
                 yyyyMMMM{"LLLL 'de' y G"}\r
@@ -605,8 +607,8 @@ ca{
                     M{"M–M"}\r
                 }\r
                 MEd{\r
-                    M{"E d/M – E d/M"}\r
-                    d{"E d/M – E d/M"}\r
+                    M{"E, d/M – E, d/M"}\r
+                    d{"E, d/M – E, d/M"}\r
                 }\r
                 MMM{\r
                     M{"MMM–MMM"}\r
@@ -649,22 +651,22 @@ ca{
                     y{"y–y G"}\r
                 }\r
                 yM{\r
-                    M{"M/y – M/y GGGG"}\r
-                    y{"M/y – M/y GGGG"}\r
+                    M{"M/y – M/y GGGGG"}\r
+                    y{"M/y – M/y GGGGG"}\r
                 }\r
                 yMEd{\r
-                    M{"E d/M/y – E d/M/y GGGG"}\r
-                    d{"E d/M/y – E d/M/y GGGG"}\r
-                    y{"E d/M/y – E d/M/y GGGG"}\r
+                    M{"E, d/M/y – E, d/M/y GGGGG"}\r
+                    d{"E, d/M/y – E, d/M/y GGGGG"}\r
+                    y{"E, d/M/y – E, d/M/y GGGGG"}\r
                 }\r
                 yMMM{\r
-                    M{"LLL–LLL y G"}\r
+                    M{"MMM–MMM y G"}\r
                     y{"MMM 'de' y – MMM 'de' y G"}\r
                 }\r
                 yMMMEd{\r
-                    M{"E d MMM – E d MMM 'de' y G"}\r
-                    d{"E d MMM – E d MMM 'de' y G"}\r
-                    y{"E d MMM 'de' y – E d MMM 'de' y G"}\r
+                    M{"E, d MMM – E, d MMM 'de' y G"}\r
+                    d{"E, d MMM – E, d MMM 'de' y G"}\r
+                    y{"E, d MMM 'de' y – E, d MMM 'de' y G"}\r
                 }\r
                 yMMMM{\r
                     M{"MMMM–MMMM 'de' y G"}\r
@@ -686,9 +688,9 @@ ca{
                     y{"d MMM 'de' y – d MMM 'de' y G"}\r
                 }\r
                 yMd{\r
-                    M{"d/M/y – d/M/y GGGG"}\r
-                    d{"d/M/y – d/M/y GGGG"}\r
-                    y{"d/M/y – d/M/y GGGG"}\r
+                    M{"d/M/y – d/M/y GGGGG"}\r
+                    d{"d/M/y – d/M/y GGGGG"}\r
+                    y{"d/M/y – d/M/y GGGGG"}\r
                 }\r
             }\r
         }\r
@@ -949,8 +951,8 @@ ca{
                     "després de Crist",\r
                 }\r
                 wide%variant{\r
-                    "abans de l’Era Comuna",\r
-                    "Era Comuna",\r
+                    "abans de l’era cristiana",\r
+                    "era cristiana",\r
                 }\r
             }\r
             intervalFormats{\r
@@ -958,8 +960,8 @@ ca{
                     H{"H–H"}\r
                 }\r
                 Hm{\r
-                    H{"H:mm – H:mm"}\r
-                    m{"H:mm – H:mm"}\r
+                    H{"H:mmH:mm"}\r
+                    m{"H:mmH:mm"}\r
                 }\r
                 Hmv{\r
                     H{"H:mm–H:mm v"}\r
@@ -972,8 +974,8 @@ ca{
                     M{"M–M"}\r
                 }\r
                 MEd{\r
-                    M{"E d/M – E d/M"}\r
-                    d{"E d/M – E d/M"}\r
+                    M{"E, d/M – E, d/M"}\r
+                    d{"E, d/M – E, d/M"}\r
                 }\r
                 MMM{\r
                     M{"LLL – LLL"}\r
@@ -1020,9 +1022,9 @@ ca{
                     y{"M/y – M/y"}\r
                 }\r
                 yMEd{\r
-                    M{"E d/M/y – E d/M/y"}\r
-                    d{"E d/M/y – E d/M/y"}\r
-                    y{"E d/M/y – E d/M/y"}\r
+                    M{"E, d/M/y – E, d/M/y"}\r
+                    d{"E, d/M/y – E, d/M/y"}\r
+                    y{"E, d/M/y – E, d/M/y"}\r
                 }\r
                 yMMM{\r
                     M{"LLL–LLL y"}\r
@@ -1316,8 +1318,8 @@ ca{
                 "dd/MM/y G",\r
                 "dd/MM/y GGGGG",\r
                 "{1}, {0}",\r
-                "{1}, {0}",\r
-                "{1}, {0}",\r
+                "{1} 'a' 'les' {0}",\r
+                "{1} 'a' 'les' {0}",\r
                 "{1}, {0}",\r
                 "{1}, {0}",\r
             }\r
@@ -1334,7 +1336,7 @@ ca{
         african_scripts{"escriptures africanes"}\r
         american_scripts{"escriptures americanes"}\r
         animal{"animal"}\r
-        animals_nature{"animals i natura"}\r
+        animals_nature{"animals/natura"}\r
         arrows{"fletxes"}\r
         body{"cos"}\r
         box_drawing{"escriptura en quadre"}\r
@@ -1349,7 +1351,7 @@ ca{
         divination_symbols{"símbols astrològics"}\r
         downwards_arrows{"fletxes cap avall"}\r
         downwards_upwards_arrows{"fletxes avall i amunt"}\r
-        east_asian_scripts{"escriptures de l’Àsia Oriental"}\r
+        east_asian_scripts{"escriptures de l’Àsia oriental"}\r
         emoji{"emoji"}\r
         european_scripts{"escriptures europees"}\r
         female{"femení"}\r
@@ -1400,21 +1402,21 @@ ca{
         sign_standard_symbols{"signes/símbols estàndard"}\r
         small_form_variant{"formes variants petites"}\r
         smiley{"emoticona"}\r
-        smileys_people{"emoticones i gent"}\r
-        south_asian_scripts{"escriptures de l’Àsia Meridional"}\r
-        southeast_asian_scripts{"escriptures de l’Àsia Sud-oriental"}\r
+        smileys_people{"emoticones/persones"}\r
+        south_asian_scripts{"escriptures de l’Àsia meridional"}\r
+        southeast_asian_scripts{"escriptures de l’Àsia sud-oriental"}\r
         spacing{"espaiat"}\r
         sport{"esport"}\r
         symbols{"símbols"}\r
         technical_symbols{"símbols tècnics"}\r
         tone_marks{"marques tonals"}\r
         travel{"viatge"}\r
-        travel_places{"viatges i llocs"}\r
+        travel_places{"viatges/llocs"}\r
         upwards_arrows{"fletxes amunt"}\r
         variant_forms{"formes variants"}\r
         vocalic_jamo{"jamo vocàlic"}\r
         weather{"temps"}\r
-        western_asian_scripts{"escriptures de l’Àsia Sud-occidental"}\r
+        western_asian_scripts{"escriptures de l’Àsia sud-occidental"}\r
         whitespace{"espai en blanc"}\r
     }\r
     contextTransforms{\r
@@ -2152,7 +2154,7 @@ ca{
                 "0"{"aquesta setm."}\r
                 "1"{"setm. vinent"}\r
             }\r
-            relativePeriod{"la setmana del {0}"}\r
+            relativePeriod{"la setmana de: {0}"}\r
             relativeTime{\r
                 future{\r
                     one{"d’aquí a {0} setm."}\r
@@ -2171,7 +2173,7 @@ ca{
                 "0"{"aquesta setm."}\r
                 "1"{"la setm. que ve"}\r
             }\r
-            relativePeriod{"la setmana del {0}"}\r
+            relativePeriod{"la setmana de: {0}"}\r
             relativeTime{\r
                 future{\r
                     one{"d’aquí a {0} setm."}\r
@@ -2327,8 +2329,13 @@ ca{
         general{\r
             lenient{\r
                 "[.․。︒﹒.。]",\r
+                "['ʼ՚᾽᾿’']",\r
+                "[%٪﹪%]",\r
+                "[؉‰]",\r
                 "[\$﹩$$]",\r
                 "[£₤]",\r
+                "[¥¥]",\r
+                "[₩₩]",\r
                 "[₨₹{Rp}{Rs}]",\r
             }\r
         }\r
index 3a2a7b2..0ccbf01 100644 (file)
@@ -71,7 +71,7 @@ ccp{
         minimumGroupingDigits{"1"}\r
         native{"cakm"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.50"}\r
     calendar{\r
         generic{\r
             DateTimePatterns{\r
index f00c3d0..0cfd4ae 100644 (file)
@@ -193,7 +193,7 @@ ce{
         }\r
         minimumGroupingDigits{"1"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.41.34"}\r
     calendar{\r
         generic{\r
             DateTimePatterns{\r
index c2904dd..21eebaf 100644 (file)
@@ -213,7 +213,7 @@ chr{
         minimumGroupingDigits{"1"}\r
         native{"latn"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.2"}\r
     calendar{\r
         generic{\r
             DateTimePatterns{\r
@@ -801,10 +801,10 @@ chr{
         box_drawing{"ᎧᏁᏌᎢ ᏓᎵᎶᏍᏗᎭ"}\r
         braille{"ᏗᏂᎨᏩ ᏧᏂᎪᎵᏰᏙᏗ"}\r
         building{"ᎠᏓᏁᎸ"}\r
-        bullets_stars{"ᎦᏂ/ᏃᏈᏏ"}\r
+        bullets_stars{"ᎦᏂ ᎠᎴ ᏃᏈᏏ"}\r
         consonantal_jamo{"ᎤᏃᏴᎩ ᏱᎦᏪᏍᏗᎢ ᏣᎼ"}\r
         currency_symbols{"ᎠᏕᎳ ᏗᏟᎶᏍᏙᏗ"}\r
-        dash_connector{"ᏍᏆᎳ ᎦᏅᎩ ᎠᏍᏓᏅᏅ/ᎫᏓᎸᏙᏗ"}\r
+        dash_connector{"ᏍᏆᎳ ᎦᏅᎩ ᎠᏍᏓᏅᏅ ᎠᎴ ᎫᏓᎸᏙᏗ"}\r
         digits{"ᏗᏎᏍᏗ"}\r
         dingbats{"ᏗᎩ ᏗᎪᏍᏛᏂᏍᏗ"}\r
         divination_symbols{"ᎠᏕᎶᎰᎯᏍᏗ ᏗᏟᎶᏍᏙᏗ"}\r
@@ -816,12 +816,12 @@ chr{
         female{"ᎠᎨᏯ"}\r
         flag{"ᎦᏓᏗ"}\r
         flags{"ᏗᎦᏓᏘ"}\r
-        food_drink{"ᎠᎩᏍᏗ ᎠᎴ ᎠᏗᏔᏍᏘ"}\r
+        food_drink{"ᎠᎩᏍᏗ & ᎠᏗᏔᏍᏘ"}\r
         format{"ᏱᎬᏁᎸᎯ"}\r
-        format_whitespace{"ᏱᎬᏁᎸᎯ ᎠᎴ ᎤᏁᎬ ᎤᏜᏅᏛᎯ"}\r
+        format_whitespace{"ᏱᎬᏁᎸᎯ & ᎤᏁᎬ ᎤᏜᏅᏛᎯ"}\r
         full_width_form_variant{"ᎧᎵ-ᎾᏯᏛᎡᏍᏗ ᎤᏙᏢᏒ ᏂᏓᏓᎴᎬᎾ"}\r
         geometric_shapes{"ᏗᏎᏍᏗ ᏄᏍᏛ ᏚᏙᏢᏒᎢ"}\r
-        half_width_form_variant{"ᎾᏯᏛᎡᏍᏗ ᎤᏙᏢᏒ ᏂᏓᏓᎴᎬᎾ"}\r
+        half_width_form_variant{"ᎾᏯᏛᎡᏍᏗ-ᎤᏙᏢᏒ ᏂᏓᏓᎴᎬᎾ"}\r
         han_characters{"ᎭᎾ ᏧᏃᏰᎩ"}\r
         han_radicals{"ᎭᎾ ᏗᎵᏍᏗᏍᎩ"}\r
         hanja{"ᎭᎾᏧ"}\r
@@ -837,7 +837,7 @@ chr{
         leftwards_arrows{"ᎠᎦᏍᎦᏂ ᏗᎦᏟᏓ"}\r
         leftwards_rightwards_arrows{"ᎠᎦᏍᎦᏂ ᎠᎦᏘᏏᏃ ᏗᎦᏟᏓ"}\r
         letterlike_symbols{"ᎠᏪᎵ ᏫᎦᏅᏗ ᎢᏳᏍᏗ ᏗᏟᎶᏍᏙᏗ"}\r
-        limited_use{"ᏩᏎᎸᎯ ᎬᏙᏗ"}\r
+        limited_use{"ᏩᏎᎸᎯ-ᎬᏙᏗ"}\r
         male{"ᎠᏍᎦᏯ"}\r
         math_symbols{"ᏗᏎᏍᏗ ᏗᏟᎶᏍᏙᏗ"}\r
         middle_eastern_scripts{"ᎠᏰᏟ ᏗᎧᎸᎬ ᏗᏜ ᏗᎧᏁᎢᏍᏗ"}\r
@@ -858,7 +858,7 @@ chr{
         plant{"ᏤᎶᎯ"}\r
         punctuation{"ᏧᏓᎴᏅᏓ ᏗᏙᏪᎵᏍᎩ ᏗᎬᏙᏗ"}\r
         rightwards_arrows{"ᎠᎦᏘᏏ ᏗᎦᏟᏓ"}\r
-        sign_standard_symbols{"ᎪᏪᎶᏗ/ᎤᏠᏱᎭᏬ ᏗᏟᎶᏍᏙᏗ"}\r
+        sign_standard_symbols{"ᎪᏪᎶᏗ ᎠᎴ ᎤᏠᏱᎭᏬ ᏗᏟᎶᏍᏙᏗ"}\r
         small_form_variant{"ᏧᏍᏗ ᎤᏙᏢᏒ ᏂᏓᏓᎴᎬᎾ"}\r
         smiley{"ᎤᏤᏣᏍᏗ"}\r
         smileys_people{"ᏓᏰᏍᏗᏍᎬ ᎠᎴ ᎠᏂᏴᏫ"}\r
@@ -907,7 +907,7 @@ chr{
             dn{"ᎢᎦ"}\r
             relativeTime{\r
                 future{\r
-                    one{"á\8e¾á\8e¿ {0} á\8e¯á\8e¸á\8f\8dá\8e© á\8f§á\8f\92á\8e¯á\8f\9b"}\r
+                    one{"á\8e¾á\8e¿ {0} á\8e¢á\8e¦"}\r
                     other{"ᎾᎿ {0} ᎯᎸᏍᎩ ᏧᏒᎯᏛ"}\r
                 }\r
                 past{\r
@@ -964,8 +964,8 @@ chr{
             }\r
             relativeTime{\r
                 future{\r
-                    one{"ᎾᎿ {0} ᏧᎾᎩᎶᏍᏗ ᎢᎦ"}\r
-                    other{"ᎾᎿ {0} ᏧᎾᎩᎶᏍᏗ ᎢᎦ"}\r
+                    one{"ᎾᎿ {0} ᏧᎾᎩᎶᏍᏗ"}\r
+                    other{"ᎾᎿ {0} ᏧᎾᎩᎶᏍᏗ"}\r
                 }\r
                 past{\r
                     one{"{0} ᏧᎾᎩᎶᏍᏗ ᏥᎨᏒ"}\r
@@ -981,12 +981,12 @@ chr{
             }\r
             relativeTime{\r
                 future{\r
-                    one{"ᎾᎿ {0} ᏧᎾᎩᎶᏍᏗ ᎢᎦ"}\r
-                    other{"ᎾᎿ {0} ᏧᎾᎩᎶᏍᏗ ᎢᎦ"}\r
+                    one{"ᎾᎿ {0} Ꮷ"}\r
+                    other{"ᎾᎿ {0} Ꮷ"}\r
                 }\r
                 past{\r
-                    one{"{0} ᏧᎾᎩᎶᏍᏗ ᏥᎨᏒ"}\r
-                    other{"{0} ᏧᎾᎩᎶᏍᏗ ᏥᎨᏒ"}\r
+                    one{"{0} Ꮷ ᏥᎨᏒ"}\r
+                    other{"{0} Ꮷ ᏥᎨᏒ"}\r
                 }\r
             }\r
         }\r
@@ -998,12 +998,12 @@ chr{
             }\r
             relativeTime{\r
                 future{\r
-                    one{"ᎾᎿ {0} ᏧᎾᎩᎶᏍᏗ ᎢᎦ"}\r
-                    other{"ᎾᎿ {0} ᏧᎾᎩᎶᏍᏗ ᎢᎦ"}\r
+                    one{"ᎾᎿ {0} ᏧᎾᎩ."}\r
+                    other{"ᎾᎿ {0} ᏧᎾᎩ."}\r
                 }\r
                 past{\r
-                    one{"{0} ᏧᎾᎩᎶᏍᏗ ᏥᎨᏒ"}\r
-                    other{"{0} ᏧᎾᎩᎶᏍᏗ ᏥᎨᏒ"}\r
+                    one{"{0} ᏧᎾᎩ. ᏥᎨᏒ"}\r
+                    other{"{0} ᏧᎾᎩ. ᏥᎨᏒ"}\r
                 }\r
             }\r
         }\r
@@ -1031,8 +1031,8 @@ chr{
                     other{"ᎾᎿ {0} ᏑᏟ."}\r
                 }\r
                 past{\r
-                    one{"ᎾᎿ {0} ᏑᏟ. ᏥᎨᏒ"}\r
-                    other{"ᎾᎿ {0} ᏑᏟ. ᏥᎨᏒ"}\r
+                    one{"{0} ᏑᏟ. ᏥᎨᏒ"}\r
+                    other{"{0} ᏑᏟ. ᏥᎨᏒ"}\r
                 }\r
             }\r
         }\r
@@ -1044,8 +1044,8 @@ chr{
                     other{"ᎾᎿ {0} ᏑᏟ."}\r
                 }\r
                 past{\r
-                    one{"ᎾᎿ {0} ᏑᏟ. ᏥᎨᏒ"}\r
-                    other{"ᎾᎿ {0} ᏑᏟ. ᏥᎨᏒ"}\r
+                    one{"{0} ᏑᏟ. ᏥᎨᏒ"}\r
+                    other{"{0} ᏑᏟ. ᏥᎨᏒ"}\r
                 }\r
             }\r
         }\r
@@ -1060,8 +1060,8 @@ chr{
                     other{"ᎾᎿ {0} ᎢᏯᏔᏬᏍᏔᏅ"}\r
                 }\r
                 past{\r
-                    one{"ᎾᎿ {0} ᎢᏯᏔᏬᏍᏔᏅ ᏥᎨᏒ"}\r
-                    other{"ᎾᎿ {0} ᎢᏯᏔᏬᏍᏔᏅ ᏥᎨᏒ"}\r
+                    one{"{0} ᎢᏯᏔᏬᏍᏔᏅ ᏥᎨᏒ"}\r
+                    other{"{0} ᎢᏯᏔᏬᏍᏔᏅ ᏥᎨᏒ"}\r
                 }\r
             }\r
         }\r
@@ -1073,8 +1073,8 @@ chr{
                     other{"ᎾᎿ {0} ᎢᏯᏔ."}\r
                 }\r
                 past{\r
-                    one{"ᎾᎿ {0} ᎢᏯᏔ. ᏥᎨᏒ"}\r
-                    other{"ᎾᎿ {0} ᎢᏯᏔ. ᏥᎨᏒ"}\r
+                    one{"{0} ᎢᏯᏔ. ᏥᎨᏒ"}\r
+                    other{"{0} ᎢᏯᏔ. ᏥᎨᏒ"}\r
                 }\r
             }\r
         }\r
@@ -1086,25 +1086,25 @@ chr{
                     other{"ᎾᎿ {0} ᎢᏯᏔ."}\r
                 }\r
                 past{\r
-                    one{"ᎾᎿ {0} ᎢᏯᏔ. ᏥᎨᏒ"}\r
-                    other{"ᎾᎿ {0} ᎢᏯᏔ. ᏥᎨᏒ"}\r
+                    one{"{0} ᎢᏯᏔ. ᏥᎨᏒ"}\r
+                    other{"{0} ᎢᏯᏔ. ᏥᎨᏒ"}\r
                 }\r
             }\r
         }\r
         mon{\r
             relative{\r
-                "-1"{"ᎤᎾᏙᏓᏉᏅ ᏥᎨᏒ"}\r
-                "0"{"ᎯᎠ ᎤᎾᏙᏓᏉᏅ"}\r
-                "1"{"ᏔᎵᏁ ᎤᎾᏙᏓᏉᏅ"}\r
+                "-1"{"ᎤᎾᏙᏓᏉᏅ ᏥᎨᏒ"}\r
+                "0"{"ᎯᎠ ᎤᎾᏙᏓᏉᏅ"}\r
+                "1"{"ᏔᎵᏁ ᎤᎾᏙᏓᏉᏅ"}\r
             }\r
             relativeTime{\r
                 future{\r
-                    one{"ᎾᎿ {0} ᎤᎾᏙᏓᏉᏅ"}\r
-                    other{"ᎾᎿ {0} ᎤᎾᏙᏓᏉᏅ"}\r
+                    one{"ᎾᎿ {0} ᎤᎾᏙᏓᏉᏅ"}\r
+                    other{"ᎾᎿ {0} ᎤᎾᏙᏓᏉᏅ"}\r
                 }\r
                 past{\r
-                    one{"{0} ᎤᎾᏙᏓᏉᏅ ᏥᎨᏒ"}\r
-                    other{"{0} ᎤᎾᏙᏓᏉᏅ ᏥᎨᏒ"}\r
+                    one{"{0} ᎤᎾᏙᏓᏉᏅ ᏥᎨᏒ"}\r
+                    other{"{0} ᎤᎾᏙᏓᏉᏅ ᏥᎨᏒ"}\r
                 }\r
             }\r
         }\r
@@ -1116,12 +1116,12 @@ chr{
             }\r
             relativeTime{\r
                 future{\r
-                    one{"á\8e¾á\8e¿ {0} á\8e¤á\8e¾á\8f\99á\8f\93á\8f\89á\8f\85"}\r
-                    other{"á\8e¾á\8e¿ {0} á\8e¤á\8e¾á\8f\99á\8f\93á\8f\89á\8f\85"}\r
+                    one{"á\8e¾á\8e¿ {0} á\8f\89"}\r
+                    other{"á\8e¾á\8e¿ {0} á\8f\89"}\r
                 }\r
                 past{\r
-                    one{"{0} á\8e¤á\8e¾á\8f\99á\8f\93á\8f\89á\8f\85 ᏥᎨᏒ"}\r
-                    other{"{0} á\8e¤á\8e¾á\8f\99á\8f\93á\8f\89á\8f\85 ᏥᎨᏒ"}\r
+                    one{"{0} á\8f\89 ᏥᎨᏒ"}\r
+                    other{"{0} á\8f\89 ᏥᎨᏒ"}\r
                 }\r
             }\r
         }\r
@@ -1133,12 +1133,12 @@ chr{
             }\r
             relativeTime{\r
                 future{\r
-                    one{"á\8e¾á\8e¿ {0} á\8e¤á\8e¾á\8f\99á\8f\93á\8f\89á\8f\85"}\r
-                    other{"á\8e¾á\8e¿ {0} á\8e¤á\8e¾á\8f\99á\8f\93á\8f\89á\8f\85"}\r
+                    one{"á\8e¾á\8e¿ {0} á\8f\89á\8f\85á\8e¯."}\r
+                    other{"á\8e¾á\8e¿ {0} á\8f\89á\8f\85á\8e¯."}\r
                 }\r
                 past{\r
-                    one{"{0} á\8e¤á\8e¾á\8f\99á\8f\93á\8f\89á\8f\85 ᏥᎨᏒ"}\r
-                    other{"{0} á\8e¤á\8e¾á\8f\99á\8f\93á\8f\89á\8f\85 ᏥᎨᏒ"}\r
+                    one{"{0} á\8f\89á\8f\85á\8e¯. ᏥᎨᏒ"}\r
+                    other{"{0} á\8f\89á\8f\85á\8e¯. ᏥᎨᏒ"}\r
                 }\r
             }\r
         }\r
@@ -1155,21 +1155,21 @@ chr{
                     other{"ᎾᎿ {0} ᏗᎧᎸᎢ"}\r
                 }\r
                 past{\r
-                    one{"ᎾᎿ {0} ᎧᎸᎢ ᏥᎨᏒ"}\r
-                    other{"ᎾᎿ {0} ᏗᎧᎸᎢ ᏥᎨᏒ"}\r
+                    one{"{0} ᎧᎸᎢ ᏥᎨᏒ"}\r
+                    other{"{0} ᏗᎧᎸᎢ ᏥᎨᏒ"}\r
                 }\r
             }\r
         }\r
         month-narrow{\r
-            dn{"ᎧᎸ"}\r
+            dn{"ᎧᎸ."}\r
             relativeTime{\r
                 future{\r
                     one{"ᎾᎿ {0} ᎧᎸ."}\r
                     other{"ᎾᎿ {0} ᎧᎸ."}\r
                 }\r
                 past{\r
-                    one{"ᎾᎿ {0} ᎧᎸ. ᏥᎨᏒ"}\r
-                    other{"ᎾᎿ {0} ᎧᎸ. ᏥᎨᏒ"}\r
+                    one{"{0} ᎧᎸ. ᏥᎨᏒ"}\r
+                    other{"{0} ᎧᎸ. ᏥᎨᏒ"}\r
                 }\r
             }\r
         }\r
@@ -1181,8 +1181,8 @@ chr{
                     other{"ᎾᎿ {0} ᎧᎸ."}\r
                 }\r
                 past{\r
-                    one{"ᎾᎿ {0} ᎧᎸ. ᏥᎨᏒ"}\r
-                    other{"ᎾᎿ {0} ᎧᎸ. ᏥᎨᏒ"}\r
+                    one{"{0} ᎧᎸ. ᏥᎨᏒ"}\r
+                    other{"{0} ᎧᎸ. ᏥᎨᏒ"}\r
                 }\r
             }\r
         }\r
@@ -1200,7 +1200,7 @@ chr{
                 }\r
                 past{\r
                     one{"ᎾᎿ {0} ᎩᏄᏙᏗ ᏥᎨᏒ"}\r
-                    other{"ᎾᎿ {0} ᎩᏄᏙᏗ ᏥᎨᏒ"}\r
+                    other{"{0} ᎩᏄᏙᏗ ᏥᎨᏒ"}\r
                 }\r
             }\r
         }\r
@@ -1212,8 +1212,8 @@ chr{
                     other{"ᎾᎿ {0} ᎩᏄᏘ."}\r
                 }\r
                 past{\r
-                    one{"ᎾᎿ {0} ᎩᏄᏘ. ᏥᎨᏒ"}\r
-                    other{"ᎾᎿ {0} ᎩᏄᏘ. ᏥᎨᏒ"}\r
+                    one{"{0} ᎩᏄᏘ. ᏥᎨᏒ"}\r
+                    other{"{0} ᎩᏄᏘ. ᏥᎨᏒ"}\r
                 }\r
             }\r
         }\r
@@ -1225,8 +1225,8 @@ chr{
                     other{"ᎾᎿ {0} ᎩᏄᏘ."}\r
                 }\r
                 past{\r
-                    one{"ᎾᎿ {0} ᎩᏄᏘ. ᏥᎨᏒ"}\r
-                    other{"ᎾᎿ {0} ᎩᏄᏘ. ᏥᎨᏒ"}\r
+                    one{"{0} ᎩᏄᏘ. ᏥᎨᏒ"}\r
+                    other{"{0} ᎩᏄᏘ. ᏥᎨᏒ"}\r
                 }\r
             }\r
         }\r
@@ -1238,12 +1238,12 @@ chr{
             }\r
             relativeTime{\r
                 future{\r
-                    one{"ᎾᎿ {0} ᎤᎾᏙᏓᏈᏕᎾ ᎢᎦ"}\r
-                    other{"ᎾᎿ {0} ᎤᎾᏙᏓᏈᏕᎾ ᎢᎦ"}\r
+                    one{"ᎾᎿ {0} ᎤᎾᏙᏓᏈᏕᎾ"}\r
+                    other{"ᎾᎿ {0} ᎤᎾᏙᏓᏈᏕᎾ"}\r
                 }\r
                 past{\r
-                    one{"{0} á\8e¤á\8e¾á\8f\99á\8f\93á\8f\88á\8e¨Ꮎ ᏥᎨᏒ"}\r
-                    other{"{0} á\8e¤á\8e¾á\8f\99á\8f\93á\8f\88á\8e¨Ꮎ ᏥᎨᏒ"}\r
+                    one{"{0} á\8e¤á\8e¾á\8f\99á\8f\93á\8f\88á\8f\95Ꮎ ᏥᎨᏒ"}\r
+                    other{"{0} á\8e¤á\8e¾á\8f\99á\8f\93á\8f\88á\8f\95Ꮎ ᏥᎨᏒ"}\r
                 }\r
             }\r
         }\r
@@ -1255,12 +1255,12 @@ chr{
             }\r
             relativeTime{\r
                 future{\r
-                    one{"á\8e¾á\8e¿ {0} á\8e¤á\8e¾á\8f\99á\8f\93á\8f\88á\8f\95á\8e¾ á\8e¢á\8e¦"}\r
-                    other{"á\8e¾á\8e¿ {0} á\8e¤á\8e¾á\8f\99á\8f\93á\8f\88á\8f\95á\8e¾ á\8e¢á\8e¦"}\r
+                    one{"á\8e¾á\8e¿ {0} á\8f\95á\8e¾"}\r
+                    other{"á\8e¾á\8e¿ {0} á\8f\95á\8e¾"}\r
                 }\r
                 past{\r
-                    one{"{0} á\8e¤á\8e¾á\8f\99á\8f\93á\8f\88á\8e¨Ꮎ ᏥᎨᏒ"}\r
-                    other{"{0} á\8e¤á\8e¾á\8f\99á\8f\93á\8f\88á\8e¨Ꮎ ᏥᎨᏒ"}\r
+                    one{"{0} á\8f\95Ꮎ ᏥᎨᏒ"}\r
+                    other{"{0} á\8f\95Ꮎ ᏥᎨᏒ"}\r
                 }\r
             }\r
         }\r
@@ -1272,12 +1272,12 @@ chr{
             }\r
             relativeTime{\r
                 future{\r
-                    one{"á\8e¾á\8e¿ {0} á\8e¤á\8e¾á\8f\99á\8f\93á\8f\88á\8f\95á\8e¾ á\8e¢á\8e¦"}\r
-                    other{"á\8e¾á\8e¿ {0} á\8e¤á\8e¾á\8f\99á\8f\93á\8f\88á\8f\95á\8e¾ á\8e¢á\8e¦"}\r
+                    one{"á\8e¾á\8e¿ {0} á\8f\88á\8f\95á\8e¾."}\r
+                    other{"á\8e¾á\8e¿ {0} á\8f\88á\8f\95á\8e¾."}\r
                 }\r
                 past{\r
-                    one{"{0} á\8e¤á\8e¾á\8f\99á\8f\93á\8f\88á\8e¨á\8e¾ ᏥᎨᏒ"}\r
-                    other{"{0} á\8e¤á\8e¾á\8f\99á\8f\93á\8f\88á\8e¨á\8e¾ ᏥᎨᏒ"}\r
+                    one{"{0} á\8f\88á\8f\95á\8e¾. ᏥᎨᏒ"}\r
+                    other{"{0} á\8f\88á\8f\95á\8e¾. ᏥᎨᏒ"}\r
                 }\r
             }\r
         }\r
@@ -1298,28 +1298,28 @@ chr{
             }\r
         }\r
         second-narrow{\r
-            dn{"ᎠᏎ."}\r
+            dn{"ᎠᏎ."}\r
             relativeTime{\r
                 future{\r
-                    one{"ᎾᎿ {0} ᎠᏎ."}\r
-                    other{"ᎾᎿ {0} ᎠᏎ."}\r
+                    one{"ᎾᎿ {0} ᎠᏎ."}\r
+                    other{"ᎾᎿ {0} ᎠᏎ."}\r
                 }\r
                 past{\r
-                    one{"{0} ᎠᏎ. ᏥᎨᏒ"}\r
-                    other{"{0} ᎠᏎ. ᏥᎨᏒ"}\r
+                    one{"{0} ᎠᏎ. ᏥᎨᏒ"}\r
+                    other{"{0} ᎠᏎ. ᏥᎨᏒ"}\r
                 }\r
             }\r
         }\r
         second-short{\r
-            dn{"ᎠᏎ."}\r
+            dn{"ᎠᏎ."}\r
             relativeTime{\r
                 future{\r
-                    one{"ᎾᎿ {0} ᎠᏎ."}\r
-                    other{"ᎾᎿ {0} ᎠᏎ."}\r
+                    one{"ᎾᎿ {0} ᎠᏎ."}\r
+                    other{"ᎾᎿ {0} ᎠᏎ."}\r
                 }\r
                 past{\r
-                    one{"{0} ᎠᏎ. ᏥᎨᏒ"}\r
-                    other{"{0} ᎠᏎ. ᏥᎨᏒ"}\r
+                    one{"{0} ᎠᏎ. ᏥᎨᏒ"}\r
+                    other{"{0} ᎠᏎ. ᏥᎨᏒ"}\r
                 }\r
             }\r
         }\r
@@ -1348,12 +1348,12 @@ chr{
             }\r
             relativeTime{\r
                 future{\r
-                    one{"á\8e¾á\8e¿ {0} á\8e¤á\8e¾á\8f\99á\8f\93á\8f\86á\8f\8dá\8e¬"}\r
-                    other{"á\8e¾á\8e¿ {0} á\8e¤á\8e¾á\8f\99á\8f\93á\8f\86á\8f\8dá\8e¬"}\r
+                    one{"ᎾᎿ {0} ᏍᎬ"}\r
+                    other{"ᎾᎿ {0} ᏍᎬ"}\r
                 }\r
                 past{\r
-                    one{"{0} á\8e¤á\8e¾á\8f\99á\8f\93á\8f\86á\8f\8dá\8e¬ á\8f¥á\8e¨á\8f\92"}\r
-                    other{"{0} á\8e¤á\8e¾á\8f\99á\8f\93á\8f\86á\8f\8dá\8e¬ á\8f¥á\8e¨á\8f\92"}\r
+                    one{"{0} ᏍᎬ ᏥᎨᏒ"}\r
+                    other{"{0} ᏍᎬ ᏥᎨᏒ"}\r
                 }\r
             }\r
         }\r
@@ -1365,18 +1365,18 @@ chr{
             }\r
             relativeTime{\r
                 future{\r
-                    one{"á\8e¾á\8e¿ {0} á\8e¤á\8e¾á\8f\99á\8f\93á\8f\86á\8f\8dá\8e¬"}\r
-                    other{"á\8e¾á\8e¿ {0} á\8e¤á\8e¾á\8f\99á\8f\93á\8f\86á\8f\8dá\8e¬"}\r
+                    one{"á\8e¾á\8e¿ {0} á\8f\86á\8f\8dá\8e¬."}\r
+                    other{"á\8e¾á\8e¿ {0} á\8f\86á\8f\8dá\8e¬."}\r
                 }\r
                 past{\r
-                    one{"{0} á\8e¤á\8e¾á\8f\99á\8f\93á\8f\86á\8f\8dá\8e¬ ᏥᎨᏒ"}\r
-                    other{"{0} á\8e¤á\8e¾á\8f\99á\8f\93á\8f\86á\8f\8dá\8e¬ ᏥᎨᏒ"}\r
+                    one{"{0} á\8f\86á\8f\8dá\8e¬. ᏥᎨᏒ"}\r
+                    other{"{0} á\8f\86á\8f\8dá\8e¬. ᏥᎨᏒ"}\r
                 }\r
             }\r
         }\r
         thu{\r
             relative{\r
-                "-1"{"ᏅᎩᏁ ᏥᎨᏒ"}\r
+                "-1"{"á\8f\85á\8e©á\8f\81 á\8e¢á\8e¦ á\8f¥á\8e¨á\8f\92"}\r
                 "0"{"ᎯᎠ ᏅᎩᏁ ᎢᎦ"}\r
                 "1"{"ᏔᎵᏁ ᏅᎩᏁ ᎢᎦ"}\r
             }\r
@@ -1399,12 +1399,12 @@ chr{
             }\r
             relativeTime{\r
                 future{\r
-                    one{"ᎾᎿ {0} ᏅᎩᏁ ᎢᎦ"}\r
-                    other{"ᎾᎿ {0} ᏅᎩᏁ ᎢᎦ"}\r
+                    one{"ᎾᎿ {0} ᏅᎩ"}\r
+                    other{"ᎾᎿ {0} ᏅᎩ"}\r
                 }\r
                 past{\r
-                    one{"{0} ᏅᎩᏁ ᎢᎦ ᏥᎨᏒ"}\r
-                    other{"{0} ᏅᎩᏁ ᎢᎦ ᏥᎨᏒ"}\r
+                    one{"{0} ᏅᎩ ᏥᎨᏒ"}\r
+                    other{"{0} ᏅᎩ ᏥᎨᏒ"}\r
                 }\r
             }\r
         }\r
@@ -1416,12 +1416,12 @@ chr{
             }\r
             relativeTime{\r
                 future{\r
-                    one{"ᎾᎿ {0} ᏅᎩᏁ ᎢᎦ"}\r
-                    other{"ᎾᎿ {0} ᏅᎩᏁ ᎢᎦ"}\r
+                    one{"ᎾᎿ {0} ᏅᎩᏁ."}\r
+                    other{"ᎾᎿ {0} ᏅᎩᏁ."}\r
                 }\r
                 past{\r
-                    one{"{0} ᏅᎩᏁ ᎢᎦ ᏥᎨᏒ"}\r
-                    other{"{0} ᏅᎩᏁ ᎢᎦ ᏥᎨᏒ"}\r
+                    one{"{0} ᏅᎩᏁ. ᏥᎨᏒ"}\r
+                    other{"{0} ᏅᎩᏁ. ᏥᎨᏒ"}\r
                 }\r
             }\r
         }\r
@@ -1450,12 +1450,12 @@ chr{
             }\r
             relativeTime{\r
                 future{\r
-                    one{"ᎾᎿ {0} ᏔᎵᏁ ᎢᎦ"}\r
-                    other{"ᎾᎿ {0} ᏔᎵᏁ ᎢᎦ"}\r
+                    one{"ᎾᎿ {0} ᏔᎵ"}\r
+                    other{"ᎾᎿ {0} ᏔᎵ"}\r
                 }\r
                 past{\r
-                    one{"{0} ᏔᎵᏁ ᎢᎦ ᏥᎨᏒ"}\r
-                    other{"{0} ᏔᎵᏁ ᎢᎦ ᏥᎨᏒ"}\r
+                    one{"{0} ᏔᎵ ᏥᎨᏒ"}\r
+                    other{"{0} ᏔᎵ ᏥᎨᏒ"}\r
                 }\r
             }\r
         }\r
@@ -1467,12 +1467,12 @@ chr{
             }\r
             relativeTime{\r
                 future{\r
-                    one{"ᎾᎿ {0} ᏔᎵᏁ ᎢᎦ"}\r
-                    other{"ᎾᎿ {0} ᏔᎵᏁ ᎢᎦ"}\r
+                    one{"ᎾᎿ {0} ᏔᎵᏁ."}\r
+                    other{"ᎾᎿ {0} ᏔᎵᏁ."}\r
                 }\r
                 past{\r
-                    one{"{0} ᏔᎵᏁ ᎢᎦ ᏥᎨᏒ"}\r
-                    other{"{0} ᏔᎵᏁ ᎢᎦ ᏥᎨᏒ"}\r
+                    one{"{0} ᏔᎵᏁ. ᏥᎨᏒ"}\r
+                    other{"{0} ᏔᎵᏁ. ᏥᎨᏒ"}\r
                 }\r
             }\r
         }\r
@@ -1501,12 +1501,12 @@ chr{
             }\r
             relativeTime{\r
                 future{\r
-                    one{"ᎾᎿ {0} ᏦᎢᏁ ᎢᎦ"}\r
-                    other{"ᎾᎿ {0} ᏦᎢᏁ ᎢᎦ"}\r
+                    one{"ᎾᎿ {0} Ꮶ"}\r
+                    other{"ᎾᎿ {0} Ꮶ"}\r
                 }\r
                 past{\r
-                    one{"{0} ᏦᎢᏁ ᎢᎦ ᏥᎨᏒ"}\r
-                    other{"{0} ᏦᎢᏁ ᎢᎦ ᏥᎨᏒ"}\r
+                    one{"{0} Ꮶ ᏥᎨᏒ"}\r
+                    other{"{0} Ꮶ ᏥᎨᏒ"}\r
                 }\r
             }\r
         }\r
@@ -1518,12 +1518,12 @@ chr{
             }\r
             relativeTime{\r
                 future{\r
-                    one{"ᎾᎿ {0} ᏦᎢᏁ ᎢᎦ"}\r
-                    other{"ᎾᎿ {0} ᏦᎢᏁ ᎢᎦ"}\r
+                    one{"ᎾᎿ {0} ᏦᎢᏁ."}\r
+                    other{"ᎾᎿ {0} ᏦᎢᏁ."}\r
                 }\r
                 past{\r
-                    one{"{0} ᏦᎢᏁ ᎢᎦ ᏥᎨᏒ"}\r
-                    other{"{0} ᏦᎢᏁ ᎢᎦ ᏥᎨᏒ"}\r
+                    one{"{0} ᏦᎢᏁ. ᏥᎨᏒ"}\r
+                    other{"{0} ᏦᎢᏁ. ᏥᎨᏒ"}\r
                 }\r
             }\r
         }\r
@@ -1541,8 +1541,8 @@ chr{
                     other{"ᎾᎿ {0} ᎢᏳᎾᏙᏓᏆᏍᏗ"}\r
                 }\r
                 past{\r
-                    one{"ᎾᎿ {0} ᏒᎾᏙᏓᏆᏍᏗ ᏥᎨᏒ"}\r
-                    other{"ᎾᎿ {0} ᎢᏳᎾᏙᏓᏆᏍᏗ ᏥᎨᏒ"}\r
+                    one{"{0} ᏒᎾᏙᏓᏆᏍᏗ ᏥᎨᏒ"}\r
+                    other{"{0} ᎢᏳᎾᏙᏓᏆᏍᏗ ᏥᎨᏒ"}\r
                 }\r
             }\r
         }\r
@@ -1555,8 +1555,8 @@ chr{
                     other{"ᎾᎿ {0} ᏒᎾ."}\r
                 }\r
                 past{\r
-                    one{"ᎾᎿ {0} ᏒᎾ. ᏥᎨᏒ"}\r
-                    other{"ᎾᎿ {0} ᏒᎾ. ᏥᎨᏒ"}\r
+                    one{"{0} ᏒᎾ. ᏥᎨᏒ"}\r
+                    other{"{0} ᏒᎾ. ᏥᎨᏒ"}\r
                 }\r
             }\r
         }\r
@@ -1569,8 +1569,8 @@ chr{
                     other{"ᎾᎿ {0} ᏒᎾ."}\r
                 }\r
                 past{\r
-                    one{"ᎾᎿ {0} ᏒᎾ. ᏥᎨᏒ"}\r
-                    other{"ᎾᎿ {0} ᏒᎾ. ᏥᎨᏒ"}\r
+                    one{"{0} ᏒᎾ. ᏥᎨᏒ"}\r
+                    other{"{0} ᏒᎾ. ᏥᎨᏒ"}\r
                 }\r
             }\r
         }\r
@@ -1627,8 +1627,8 @@ chr{
                     other{"ᎾᎿ {0} ᎤᏕ."}\r
                 }\r
                 past{\r
-                    one{"ᎾᎿ {0} ᎤᏕ. ᏥᎨᏒ"}\r
-                    other{"ᎾᎿ {0} ᎤᏕ. ᏥᎨᏒ"}\r
+                    one{"{0} ᎤᏕ. ᏥᎨᏒ"}\r
+                    other{"{0} ᎤᏕ. ᏥᎨᏒ"}\r
                 }\r
             }\r
         }\r
@@ -1640,8 +1640,8 @@ chr{
                     other{"ᎾᎿ {0} ᎤᏕ."}\r
                 }\r
                 past{\r
-                    one{"ᎾᎿ {0} ᎤᏕ. ᏥᎨᏒ"}\r
-                    other{"ᎾᎿ {0} ᎤᏕ. ᏥᎨᏒ"}\r
+                    one{"{0} ᎤᏕ. ᏥᎨᏒ"}\r
+                    other{"{0} ᎤᏕ. ᏥᎨᏒ"}\r
                 }\r
             }\r
         }\r
@@ -1664,13 +1664,13 @@ chr{
         }\r
         standard{\r
             2{"{0} ᎠᎴ {1}"}\r
-            end{"{0} ᎠᎴ {1}"}\r
+            end{"{0}, ᎠᎴ {1}"}\r
             middle{"{0}, {1}"}\r
             start{"{0}, {1}"}\r
         }\r
         standard-short{\r
             2{"{0} ᎠᎴ {1}"}\r
-            end{"{0} ᎠᎴ {1}"}\r
+            end{"{0}, ᎠᎴ {1}"}\r
             middle{"{0}, {1}"}\r
             start{"{0}, {1}"}\r
         }\r
@@ -1698,4 +1698,36 @@ chr{
         US{"US"}\r
         metric{"ᎠᏂᎩᎸᏥ ᏂᏓᏳᏓᎴᏅᎯ ᏗᏎᏍᏗ"}\r
     }\r
+    parse{\r
+        date{\r
+            lenient{\r
+                "[\\--/]",\r
+                "[\\:∶]",\r
+            }\r
+        }\r
+        general{\r
+            lenient{\r
+                "[.․。︒﹒.。]",\r
+                "['ʼ՚᾽᾿’']",\r
+                "[%٪﹪%]",\r
+                "[؉‰]",\r
+                "[\$﹩$$]",\r
+                "[£₤]",\r
+                "[¥¥]",\r
+                "[₩₩]",\r
+                "[₨₹{Rp}{Rs}]",\r
+            }\r
+        }\r
+        number{\r
+            lenient{\r
+                "[\\-‒⁻₋−➖﹣-]",\r
+                "[,،٫、︐︑﹐﹑,、]",\r
+                "[+⁺₊➕﬩﹢+]",\r
+            }\r
+            stricter{\r
+                "[,٫︐﹐,]",\r
+                "[.․﹒.。]",\r
+            }\r
+        }\r
+    }\r
 }\r
index b80149f..21374f2 100644 (file)
@@ -31,7 +31,7 @@ ckb{
         default{"arab"}\r
         latn{\r
             miscPatterns{\r
-                atLeast{"⩾{0}"}\r
+                atLeast{"â\89¥{0}"}\r
                 range{"{0}–{1}"}\r
             }\r
             patterns{\r
@@ -57,7 +57,7 @@ ckb{
         minimumGroupingDigits{"1"}\r
         native{"arab"}\r
     }\r
-    Version{"2.1.38.71"}\r
+    Version{"2.1.44.88"}\r
     calendar{\r
         generic{\r
             DateTimePatterns{\r
@@ -248,8 +248,8 @@ ckb{
                 yQQQ{"y QQQ"}\r
                 yQQQQ{"y QQQQ"}\r
                 yw{\r
-                    one{"هەفتەی w ی y"}\r
-                    other{"هەفتەی w ی y"}\r
+                    one{"هەفتەی w ی Y"}\r
+                    other{"هەفتەی w ی Y"}\r
                 }\r
             }\r
             dayNames{\r
index 0a92051..3a3605f 100644 (file)
@@ -144,7 +144,9 @@ cs{
         }\r
         latn{\r
             miscPatterns{\r
-                atLeast{"{0}+"}\r
+                approximately{"~{0}"}\r
+                atLeast{"≥{0}"}\r
+                atMost{"≤{0}"}\r
                 range{"{0}–{1}"}\r
             }\r
             patterns{\r
@@ -519,7 +521,7 @@ cs{
             }\r
         }\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.91"}\r
     calendar{\r
         buddhist{\r
             DateTimePatterns{\r
@@ -692,6 +694,670 @@ cs{
                 "{1} {0}",\r
                 "{1} {0}",\r
             }\r
+            cyclicNameSets{\r
+                dayParts{\r
+                    format{\r
+                        abbreviated{\r
+                            "zi",\r
+                            "chou",\r
+                            "yin",\r
+                            "mao",\r
+                            "chen",\r
+                            "si",\r
+                            "wu",\r
+                            "wei",\r
+                            "shen",\r
+                            "you",\r
+                            "xu",\r
+                            "hai",\r
+                        }\r
+                        narrow{\r
+                            "zi",\r
+                            "chou",\r
+                            "yin",\r
+                            "mao",\r
+                            "chen",\r
+                            "si",\r
+                            "wu",\r
+                            "wei",\r
+                            "shen",\r
+                            "you",\r
+                            "xu",\r
+                            "hai",\r
+                        }\r
+                        wide{\r
+                            "zi",\r
+                            "chou",\r
+                            "yin",\r
+                            "mao",\r
+                            "chen",\r
+                            "si",\r
+                            "wu",\r
+                            "wei",\r
+                            "shen",\r
+                            "you",\r
+                            "xu",\r
+                            "hai",\r
+                        }\r
+                    }\r
+                }\r
+                days{\r
+                    format{\r
+                        abbreviated{\r
+                            "jia-zi",\r
+                            "yi-chou",\r
+                            "bing-yin",\r
+                            "ding-mao",\r
+                            "wu-chen",\r
+                            "ji-si",\r
+                            "geng-wu",\r
+                            "xin-wei",\r
+                            "ren-shen",\r
+                            "gui-you",\r
+                            "jia-xu",\r
+                            "yi-hai",\r
+                            "bing-zi",\r
+                            "ding-chou",\r
+                            "wu-yin",\r
+                            "ji-mao",\r
+                            "geng-chen",\r
+                            "xin-si",\r
+                            "ren-wu",\r
+                            "gui-wei",\r
+                            "jia-shen",\r
+                            "yi-you",\r
+                            "bing-xu",\r
+                            "ding-hai",\r
+                            "wu-zi",\r
+                            "ji-chou",\r
+                            "geng-yin",\r
+                            "xin-mao",\r
+                            "ren-chen",\r
+                            "gui-si",\r
+                            "jia-wu",\r
+                            "yi-wei",\r
+                            "bing-shen",\r
+                            "ding-you",\r
+                            "wu-xu",\r
+                            "ji-hai",\r
+                            "geng-zi",\r
+                            "xin-chou",\r
+                            "ren-yin",\r
+                            "gui-mao",\r
+                            "jia-chen",\r
+                            "yi-si",\r
+                            "bing-wu",\r
+                            "ding-wei",\r
+                            "wu-shen",\r
+                            "ji-you",\r
+                            "geng-xu",\r
+                            "xin-hai",\r
+                            "ren-zi",\r
+                            "gui-chou",\r
+                            "jia-yin",\r
+                            "yi-mao",\r
+                            "bing-chen",\r
+                            "ding-si",\r
+                            "wu-wu",\r
+                            "ji-wei",\r
+                            "geng-shen",\r
+                            "xin-you",\r
+                            "ren-xu",\r
+                            "gui-hai",\r
+                        }\r
+                        narrow{\r
+                            "jia-zi",\r
+                            "yi-chou",\r
+                            "bing-yin",\r
+                            "ding-mao",\r
+                            "wu-chen",\r
+                            "ji-si",\r
+                            "geng-wu",\r
+                            "xin-wei",\r
+                            "ren-shen",\r
+                            "gui-you",\r
+                            "jia-xu",\r
+                            "yi-hai",\r
+                            "bing-zi",\r
+                            "ding-chou",\r
+                            "wu-yin",\r
+                            "ji-mao",\r
+                            "geng-chen",\r
+                            "xin-si",\r
+                            "ren-wu",\r
+                            "gui-wei",\r
+                            "jia-shen",\r
+                            "yi-you",\r
+                            "bing-xu",\r
+                            "ding-hai",\r
+                            "wu-zi",\r
+                            "ji-chou",\r
+                            "geng-yin",\r
+                            "xin-mao",\r
+                            "ren-chen",\r
+                            "gui-si",\r
+                            "jia-wu",\r
+                            "yi-wei",\r
+                            "bing-shen",\r
+                            "ding-you",\r
+                            "wu-xu",\r
+                            "ji-hai",\r
+                            "geng-zi",\r
+                            "xin-chou",\r
+                            "ren-yin",\r
+                            "gui-mao",\r
+                            "jia-chen",\r
+                            "yi-si",\r
+                            "bing-wu",\r
+                            "ding-wei",\r
+                            "wu-shen",\r
+                            "ji-you",\r
+                            "geng-xu",\r
+                            "xin-hai",\r
+                            "ren-zi",\r
+                            "gui-chou",\r
+                            "jia-yin",\r
+                            "yi-mao",\r
+                            "bing-chen",\r
+                            "ding-si",\r
+                            "wu-wu",\r
+                            "ji-wei",\r
+                            "geng-shen",\r
+                            "xin-you",\r
+                            "ren-xu",\r
+                            "gui-hai",\r
+                        }\r
+                        wide{\r
+                            "jia-zi",\r
+                            "yi-chou",\r
+                            "bing-yin",\r
+                            "ding-mao",\r
+                            "wu-chen",\r
+                            "ji-si",\r
+                            "geng-wu",\r
+                            "xin-wei",\r
+                            "ren-shen",\r
+                            "gui-you",\r
+                            "jia-xu",\r
+                            "yi-hai",\r
+                            "bing-zi",\r
+                            "ding-chou",\r
+                            "wu-yin",\r
+                            "ji-mao",\r
+                            "geng-chen",\r
+                            "xin-si",\r
+                            "ren-wu",\r
+                            "gui-wei",\r
+                            "jia-shen",\r
+                            "yi-you",\r
+                            "bing-xu",\r
+                            "ding-hai",\r
+                            "wu-zi",\r
+                            "ji-chou",\r
+                            "geng-yin",\r
+                            "xin-mao",\r
+                            "ren-chen",\r
+                            "gui-si",\r
+                            "jia-wu",\r
+                            "yi-wei",\r
+                            "bing-shen",\r
+                            "ding-you",\r
+                            "wu-xu",\r
+                            "ji-hai",\r
+                            "geng-zi",\r
+                            "xin-chou",\r
+                            "ren-yin",\r
+                            "gui-mao",\r
+                            "jia-chen",\r
+                            "yi-si",\r
+                            "bing-wu",\r
+                            "ding-wei",\r
+                            "wu-shen",\r
+                            "ji-you",\r
+                            "geng-xu",\r
+                            "xin-hai",\r
+                            "ren-zi",\r
+                            "gui-chou",\r
+                            "jia-yin",\r
+                            "yi-mao",\r
+                            "bing-chen",\r
+                            "ding-si",\r
+                            "wu-wu",\r
+                            "ji-wei",\r
+                            "geng-shen",\r
+                            "xin-you",\r
+                            "ren-xu",\r
+                            "gui-hai",\r
+                        }\r
+                    }\r
+                }\r
+                months{\r
+                    format{\r
+                        abbreviated{\r
+                            "jia-zi",\r
+                            "yi-chou",\r
+                            "bing-yin",\r
+                            "ding-mao",\r
+                            "wu-chen",\r
+                            "ji-si",\r
+                            "geng-wu",\r
+                            "xin-wei",\r
+                            "ren-shen",\r
+                            "gui-you",\r
+                            "jia-xu",\r
+                            "yi-hai",\r
+                            "bing-zi",\r
+                            "ding-chou",\r
+                            "wu-yin",\r
+                            "ji-mao",\r
+                            "geng-chen",\r
+                            "xin-si",\r
+                            "ren-wu",\r
+                            "gui-wei",\r
+                            "jia-shen",\r
+                            "yi-you",\r
+                            "bing-xu",\r
+                            "ding-hai",\r
+                            "wu-zi",\r
+                            "ji-chou",\r
+                            "geng-yin",\r
+                            "xin-mao",\r
+                            "ren-chen",\r
+                            "gui-si",\r
+                            "jia-wu",\r
+                            "yi-wei",\r
+                            "bing-shen",\r
+                            "ding-you",\r
+                            "wu-xu",\r
+                            "ji-hai",\r
+                            "geng-zi",\r
+                            "xin-chou",\r
+                            "ren-yin",\r
+                            "gui-mao",\r
+                            "jia-chen",\r
+                            "yi-si",\r
+                            "bing-wu",\r
+                            "ding-wei",\r
+                            "wu-shen",\r
+                            "ji-you",\r
+                            "geng-xu",\r
+                            "xin-hai",\r
+                            "ren-zi",\r
+                            "gui-chou",\r
+                            "jia-yin",\r
+                            "yi-mao",\r
+                            "bing-chen",\r
+                            "ding-si",\r
+                            "wu-wu",\r
+                            "ji-wei",\r
+                            "geng-shen",\r
+                            "xin-you",\r
+                            "ren-xu",\r
+                            "gui-hai",\r
+                        }\r
+                        narrow{\r
+                            "jia-zi",\r
+                            "yi-chou",\r
+                            "bing-yin",\r
+                            "ding-mao",\r
+                            "wu-chen",\r
+                            "ji-si",\r
+                            "geng-wu",\r
+                            "xin-wei",\r
+                            "ren-shen",\r
+                            "gui-you",\r
+                            "jia-xu",\r
+                            "yi-hai",\r
+                            "bing-zi",\r
+                            "ding-chou",\r
+                            "wu-yin",\r
+                            "ji-mao",\r
+                            "geng-chen",\r
+                            "xin-si",\r
+                            "ren-wu",\r
+                            "gui-wei",\r
+                            "jia-shen",\r
+                            "yi-you",\r
+                            "bing-xu",\r
+                            "ding-hai",\r
+                            "wu-zi",\r
+                            "ji-chou",\r
+                            "geng-yin",\r
+                            "xin-mao",\r
+                            "ren-chen",\r
+                            "gui-si",\r
+                            "jia-wu",\r
+                            "yi-wei",\r
+                            "bing-shen",\r
+                            "ding-you",\r
+                            "wu-xu",\r
+                            "ji-hai",\r
+                            "geng-zi",\r
+                            "xin-chou",\r
+                            "ren-yin",\r
+                            "gui-mao",\r
+                            "jia-chen",\r
+                            "yi-si",\r
+                            "bing-wu",\r
+                            "ding-wei",\r
+                            "wu-shen",\r
+                            "ji-you",\r
+                            "geng-xu",\r
+                            "xin-hai",\r
+                            "ren-zi",\r
+                            "gui-chou",\r
+                            "jia-yin",\r
+                            "yi-mao",\r
+                            "bing-chen",\r
+                            "ding-si",\r
+                            "wu-wu",\r
+                            "ji-wei",\r
+                            "geng-shen",\r
+                            "xin-you",\r
+                            "ren-xu",\r
+                            "gui-hai",\r
+                        }\r
+                        wide{\r
+                            "jia-zi",\r
+                            "yi-chou",\r
+                            "bing-yin",\r
+                            "ding-mao",\r
+                            "wu-chen",\r
+                            "ji-si",\r
+                            "geng-wu",\r
+                            "xin-wei",\r
+                            "ren-shen",\r
+                            "gui-you",\r
+                            "jia-xu",\r
+                            "yi-hai",\r
+                            "bing-zi",\r
+                            "ding-chou",\r
+                            "wu-yin",\r
+                            "ji-mao",\r
+                            "geng-chen",\r
+                            "xin-si",\r
+                            "ren-wu",\r
+                            "gui-wei",\r
+                            "jia-shen",\r
+                            "yi-you",\r
+                            "bing-xu",\r
+                            "ding-hai",\r
+                            "wu-zi",\r
+                            "ji-chou",\r
+                            "geng-yin",\r
+                            "xin-mao",\r
+                            "ren-chen",\r
+                            "gui-si",\r
+                            "jia-wu",\r
+                            "yi-wei",\r
+                            "bing-shen",\r
+                            "ding-you",\r
+                            "wu-xu",\r
+                            "ji-hai",\r
+                            "geng-zi",\r
+                            "xin-chou",\r
+                            "ren-yin",\r
+                            "gui-mao",\r
+                            "jia-chen",\r
+                            "yi-si",\r
+                            "bing-wu",\r
+                            "ding-wei",\r
+                            "wu-shen",\r
+                            "ji-you",\r
+                            "geng-xu",\r
+                            "xin-hai",\r
+                            "ren-zi",\r
+                            "gui-chou",\r
+                            "jia-yin",\r
+                            "yi-mao",\r
+                            "bing-chen",\r
+                            "ding-si",\r
+                            "wu-wu",\r
+                            "ji-wei",\r
+                            "geng-shen",\r
+                            "xin-you",\r
+                            "ren-xu",\r
+                            "gui-hai",\r
+                        }\r
+                    }\r
+                }\r
+                years{\r
+                    format{\r
+                        abbreviated{\r
+                            "jia-zi",\r
+                            "yi-chou",\r
+                            "bing-yin",\r
+                            "ding-mao",\r
+                            "wu-chen",\r
+                            "ji-si",\r
+                            "geng-wu",\r
+                            "xin-wei",\r
+                            "ren-shen",\r
+                            "gui-you",\r
+                            "jia-xu",\r
+                            "yi-hai",\r
+                            "bing-zi",\r
+                            "ding-chou",\r
+                            "wu-yin",\r
+                            "ji-mao",\r
+                            "geng-chen",\r
+                            "xin-si",\r
+                            "ren-wu",\r
+                            "gui-wei",\r
+                            "jia-shen",\r
+                            "yi-you",\r
+                            "bing-xu",\r
+                            "ding-hai",\r
+                            "wu-zi",\r
+                            "ji-chou",\r
+                            "geng-yin",\r
+                            "xin-mao",\r
+                            "ren-chen",\r
+                            "gui-si",\r
+                            "jia-wu",\r
+                            "yi-wei",\r
+                            "bing-shen",\r
+                            "ding-you",\r
+                            "wu-xu",\r
+                            "ji-hai",\r
+                            "geng-zi",\r
+                            "xin-chou",\r
+                            "ren-yin",\r
+                            "gui-mao",\r
+                            "jia-chen",\r
+                            "yi-si",\r
+                            "bing-wu",\r
+                            "ding-wei",\r
+                            "wu-shen",\r
+                            "ji-you",\r
+                            "geng-xu",\r
+                            "xin-hai",\r
+                            "ren-zi",\r
+                            "gui-chou",\r
+                            "jia-yin",\r
+                            "yi-mao",\r
+                            "bing-chen",\r
+                            "ding-si",\r
+                            "wu-wu",\r
+                            "ji-wei",\r
+                            "geng-shen",\r
+                            "xin-you",\r
+                            "ren-xu",\r
+                            "gui-hai",\r
+                        }\r
+                        narrow{\r
+                            "jia-zi",\r
+                            "yi-chou",\r
+                            "bing-yin",\r
+                            "ding-mao",\r
+                            "wu-chen",\r
+                            "ji-si",\r
+                            "geng-wu",\r
+                            "xin-wei",\r
+                            "ren-shen",\r
+                            "gui-you",\r
+                            "jia-xu",\r
+                            "yi-hai",\r
+                            "bing-zi",\r
+                            "ding-chou",\r
+                            "wu-yin",\r
+                            "ji-mao",\r
+                            "geng-chen",\r
+                            "xin-si",\r
+                            "ren-wu",\r
+                            "gui-wei",\r
+                            "jia-shen",\r
+                            "yi-you",\r
+                            "bing-xu",\r
+                            "ding-hai",\r
+                            "wu-zi",\r
+                            "ji-chou",\r
+                            "geng-yin",\r
+                            "xin-mao",\r
+                            "ren-chen",\r
+                            "gui-si",\r
+                            "jia-wu",\r
+                            "yi-wei",\r
+                            "bing-shen",\r
+                            "ding-you",\r
+                            "wu-xu",\r
+                            "ji-hai",\r
+                            "geng-zi",\r
+                            "xin-chou",\r
+                            "ren-yin",\r
+                            "gui-mao",\r
+                            "jia-chen",\r
+                            "yi-si",\r
+                            "bing-wu",\r
+                            "ding-wei",\r
+                            "wu-shen",\r
+                            "ji-you",\r
+                            "geng-xu",\r
+                            "xin-hai",\r
+                            "ren-zi",\r
+                            "gui-chou",\r
+                            "jia-yin",\r
+                            "yi-mao",\r
+                            "bing-chen",\r
+                            "ding-si",\r
+                            "wu-wu",\r
+                            "ji-wei",\r
+                            "geng-shen",\r
+                            "xin-you",\r
+                            "ren-xu",\r
+                            "gui-hai",\r
+                        }\r
+                        wide{\r
+                            "jia-zi",\r
+                            "yi-chou",\r
+                            "bing-yin",\r
+                            "ding-mao",\r
+                            "wu-chen",\r
+                            "ji-si",\r
+                            "geng-wu",\r
+                            "xin-wei",\r
+                            "ren-shen",\r
+                            "gui-you",\r
+                            "jia-xu",\r
+                            "yi-hai",\r
+                            "bing-zi",\r
+                            "ding-chou",\r
+                            "wu-yin",\r
+                            "ji-mao",\r
+                            "geng-chen",\r
+                            "xin-si",\r
+                            "ren-wu",\r
+                            "gui-wei",\r
+                            "jia-shen",\r
+                            "yi-you",\r
+                            "bing-xu",\r
+                            "ding-hai",\r
+                            "wu-zi",\r
+                            "ji-chou",\r
+                            "geng-yin",\r
+                            "xin-mao",\r
+                            "ren-chen",\r
+                            "gui-si",\r
+                            "jia-wu",\r
+                            "yi-wei",\r
+                            "bing-shen",\r
+                            "ding-you",\r
+                            "wu-xu",\r
+                            "ji-hai",\r
+                            "geng-zi",\r
+                            "xin-chou",\r
+                            "ren-yin",\r
+                            "gui-mao",\r
+                            "jia-chen",\r
+                            "yi-si",\r
+                            "bing-wu",\r
+                            "ding-wei",\r
+                            "wu-shen",\r
+                            "ji-you",\r
+                            "geng-xu",\r
+                            "xin-hai",\r
+                            "ren-zi",\r
+                            "gui-chou",\r
+                            "jia-yin",\r
+                            "yi-mao",\r
+                            "bing-chen",\r
+                            "ding-si",\r
+                            "wu-wu",\r
+                            "ji-wei",\r
+                            "geng-shen",\r
+                            "xin-you",\r
+                            "ren-xu",\r
+                            "gui-hai",\r
+                        }\r
+                    }\r
+                }\r
+                zodiacs{\r
+                    format{\r
+                        abbreviated{\r
+                            "krysa",\r
+                            "buvol",\r
+                            "tygr",\r
+                            "zajíc",\r
+                            "drak",\r
+                            "had",\r
+                            "kůň",\r
+                            "koza",\r
+                            "opice",\r
+                            "kohout",\r
+                            "pes",\r
+                            "vepř",\r
+                        }\r
+                        narrow{\r
+                            "krysa",\r
+                            "buvol",\r
+                            "tygr",\r
+                            "zajíc",\r
+                            "drak",\r
+                            "had",\r
+                            "kůň",\r
+                            "koza",\r
+                            "opice",\r
+                            "kohout",\r
+                            "pes",\r
+                            "vepř",\r
+                        }\r
+                        wide{\r
+                            "krysa",\r
+                            "buvol",\r
+                            "tygr",\r
+                            "zajíc",\r
+                            "drak",\r
+                            "had",\r
+                            "kůň",\r
+                            "koza",\r
+                            "opice",\r
+                            "kohout",\r
+                            "pes",\r
+                            "vepř",\r
+                        }\r
+                    }\r
+                }\r
+            }\r
             monthNames{\r
                 format{\r
                     narrow{\r
@@ -3697,6 +4363,7 @@ cs{
                     "Taishō",\r
                     "Shōwa",\r
                     "Heisei",\r
+                    "Qqqq",\r
                 }\r
                 narrow{\r
                     "Taika (645–650)",\r
@@ -3935,6 +4602,7 @@ cs{
                     "T",\r
                     "S",\r
                     "H",\r
+                    "Q",\r
                 }\r
                 wide{\r
                     "Taika (645–650)",\r
@@ -4173,6 +4841,7 @@ cs{
                     "Taishō",\r
                     "Shōwa",\r
                     "Heisei",\r
+                    "Qqqq",\r
                 }\r
             }\r
             intervalFormats{\r
@@ -4591,7 +5260,7 @@ cs{
         japanese_kana{"japonská kana"}\r
         kanbun{"kanbun"}\r
         kanji{"kandži"}\r
-        keycap{"klávesy"}\r
+        keycap{"klávesa"}\r
         leftwards_arrows{"šipky směřující doleva"}\r
         leftwards_rightwards_arrows{"šipky směřující doleva a doprava"}\r
         letterlike_symbols{"symboly podobné písmenům"}\r
@@ -5043,7 +5712,7 @@ cs{
         month-narrow{\r
             dn{"měs."}\r
             relative{\r
-                "-1"{"minuý měs."}\r
+                "-1"{"minulý měs."}\r
                 "0"{"tento měs."}\r
                 "1"{"příští měs."}\r
             }\r
@@ -5750,8 +6419,13 @@ cs{
         general{\r
             lenient{\r
                 "[.․。︒﹒.。]",\r
+                "['ʼ՚᾽᾿’']",\r
+                "[%٪﹪%]",\r
+                "[؉‰]",\r
                 "[\$﹩$$]",\r
                 "[£₤]",\r
+                "[¥¥]",\r
+                "[₩₩]",\r
                 "[₨₹{Rp}{Rs}]",\r
             }\r
         }\r
index 64b576e..72cf60d 100644 (file)
@@ -49,7 +49,9 @@ cy{
         default{"latn"}\r
         latn{\r
             miscPatterns{\r
+                approximately{"~{0}"}\r
                 atLeast{"{0}+"}\r
+                atMost{"≤{0}"}\r
                 range{"{0}–{1}"}\r
             }\r
             patterns{\r
@@ -393,7 +395,7 @@ cy{
         minimumGroupingDigits{"1"}\r
         native{"latn"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.91"}\r
     calendar{\r
         generic{\r
             DateTimePatterns{\r
index 5d4af47..12341b8 100644 (file)
@@ -19,7 +19,9 @@ da{
         default{"latn"}\r
         latn{\r
             miscPatterns{\r
+                approximately{"~{0}"}\r
                 atLeast{"{0}+"}\r
+                atMost{"≤{0}"}\r
                 range{"{0}-{1}"}\r
             }\r
             patterns{\r
@@ -96,40 +98,40 @@ da{
                         other{"000 t ¤"}\r
                     }\r
                     1000000{\r
-                        one{"0 mio ¤"}\r
-                        other{"0 mio ¤"}\r
+                        one{"0 mio'.' ¤"}\r
+                        other{"0 mio'.' ¤"}\r
                     }\r
                     10000000{\r
-                        one{"00 mio ¤"}\r
-                        other{"00 mio ¤"}\r
+                        one{"00 mio'.' ¤"}\r
+                        other{"00 mio'.' ¤"}\r
                     }\r
                     100000000{\r
-                        one{"000 mio ¤"}\r
-                        other{"000 mio ¤"}\r
+                        one{"000 mio'.' ¤"}\r
+                        other{"000 mio'.' ¤"}\r
                     }\r
                     1000000000{\r
-                        one{"0 mia ¤"}\r
-                        other{"0 mia ¤"}\r
+                        one{"0 mia'.' ¤"}\r
+                        other{"0 mia'.' ¤"}\r
                     }\r
                     10000000000{\r
-                        one{"00 mia ¤"}\r
-                        other{"00 mia ¤"}\r
+                        one{"00 mia'.' ¤"}\r
+                        other{"00 mia'.' ¤"}\r
                     }\r
                     100000000000{\r
-                        one{"000 mia ¤"}\r
-                        other{"000 mia ¤"}\r
+                        one{"000 mia'.' ¤"}\r
+                        other{"000 mia'.' ¤"}\r
                     }\r
                     1000000000000{\r
-                        one{"0 bio ¤"}\r
-                        other{"0 bio ¤"}\r
+                        one{"0 bio'.' ¤"}\r
+                        other{"0 bio'.' ¤"}\r
                     }\r
                     10000000000000{\r
-                        one{"00 bio ¤"}\r
-                        other{"00 bio ¤"}\r
+                        one{"00 bio'.' ¤"}\r
+                        other{"00 bio'.' ¤"}\r
                     }\r
                     100000000000000{\r
-                        one{"000 bio ¤"}\r
-                        other{"000 bio ¤"}\r
+                        one{"000 bio'.' ¤"}\r
+                        other{"000 bio'.' ¤"}\r
                     }\r
                 }\r
                 decimalFormat{\r
@@ -146,40 +148,40 @@ da{
                         other{"000 t"}\r
                     }\r
                     1000000{\r
-                        one{"0 mio"}\r
-                        other{"0 mio"}\r
+                        one{"0 mio'.'"}\r
+                        other{"0 mio'.'"}\r
                     }\r
                     10000000{\r
-                        one{"00 mio"}\r
-                        other{"00 mio"}\r
+                        one{"00 mio'.'"}\r
+                        other{"00 mio'.'"}\r
                     }\r
                     100000000{\r
-                        one{"000 mio"}\r
-                        other{"000 mio"}\r
+                        one{"000 mio'.'"}\r
+                        other{"000 mio'.'"}\r
                     }\r
                     1000000000{\r
-                        one{"0 mia"}\r
-                        other{"0 mia"}\r
+                        one{"0 mia'.'"}\r
+                        other{"0 mia'.'"}\r
                     }\r
                     10000000000{\r
-                        one{"00 mia"}\r
-                        other{"00 mia"}\r
+                        one{"00 mia'.'"}\r
+                        other{"00 mia'.'"}\r
                     }\r
                     100000000000{\r
-                        one{"000 mia"}\r
-                        other{"000 mia"}\r
+                        one{"000 mia'.'"}\r
+                        other{"000 mia'.'"}\r
                     }\r
                     1000000000000{\r
-                        one{"0 bio"}\r
-                        other{"0 bio"}\r
+                        one{"0 bio'.'"}\r
+                        other{"0 bio'.'"}\r
                     }\r
                     10000000000000{\r
-                        one{"00 bio"}\r
-                        other{"00 bio"}\r
+                        one{"00 bio'.'"}\r
+                        other{"00 bio'.'"}\r
                     }\r
                     100000000000000{\r
-                        one{"000 bio"}\r
-                        other{"000 bio"}\r
+                        one{"000 bio'.'"}\r
+                        other{"000 bio'.'"}\r
                     }\r
                 }\r
             }\r
@@ -210,7 +212,7 @@ da{
         minimumGroupingDigits{"1"}\r
         native{"latn"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.65"}\r
     calendar{\r
         buddhist{\r
             eras{\r
@@ -472,7 +474,7 @@ da{
                 "EEEE 'den' d. MMMM y",\r
                 "d. MMMM y",\r
                 "d. MMM y",\r
-                "dd/MM/y",\r
+                "dd.MM.y",\r
                 "{1} {0}",\r
                 "{1} 'kl'. {0}",\r
                 "{1} 'kl'. {0}",\r
@@ -514,7 +516,7 @@ da{
                 Hmsv{"HH.mm.ss v"}\r
                 Hmv{"HH.mm v"}\r
                 M{"M"}\r
-                MEd{"E d/M"}\r
+                MEd{"E d.M"}\r
                 MMM{"MMM"}\r
                 MMMEd{"E d. MMM"}\r
                 MMMMEd{"E d. MMMM"}\r
@@ -524,8 +526,8 @@ da{
                 }\r
                 MMMMd{"d. MMMM"}\r
                 MMMd{"d. MMM"}\r
-                MMdd{"dd/MM"}\r
-                Md{"d/M"}\r
+                MMdd{"dd.MM"}\r
+                Md{"d.M"}\r
                 d{"d."}\r
                 h{"h a"}\r
                 hm{"h.mm a"}\r
@@ -534,14 +536,14 @@ da{
                 hmv{"h.mm a v"}\r
                 ms{"mm.ss"}\r
                 y{"y"}\r
-                yM{"M/y"}\r
-                yMEd{"E d/M/y"}\r
-                yMM{"MM/y"}\r
+                yM{"M.y"}\r
+                yMEd{"E d.M.y"}\r
+                yMM{"MM.y"}\r
                 yMMM{"MMM y"}\r
                 yMMMEd{"E d. MMM y"}\r
                 yMMMM{"MMMM y"}\r
                 yMMMd{"d. MMM y"}\r
-                yMd{"d/M/y"}\r
+                yMd{"d.M.y"}\r
                 yQQQ{"QQQ y"}\r
                 yQQQQ{"QQQQ y"}\r
                 yw{\r
@@ -732,23 +734,23 @@ da{
                     M{"M–M"}\r
                 }\r
                 MEd{\r
-                    M{"E dd/MM–E dd/MM"}\r
-                    d{"E dd/MM–E dd/MM"}\r
+                    M{"E dd.MM–E dd.MM"}\r
+                    d{"E dd.MM–E dd.MM"}\r
                 }\r
                 MMM{\r
                     M{"MMM–MMM"}\r
                 }\r
                 MMMEd{\r
-                    M{"E 'den' d.–E 'den' d. MMM"}\r
-                    d{"E 'den' d.–E 'den' d. MMM"}\r
+                    M{"E d. MMM–E d. MMM"}\r
+                    d{"E d.–E d. MMM"}\r
                 }\r
                 MMMd{\r
                     M{"d. MMM–d. MMM"}\r
                     d{"d.–d. MMM"}\r
                 }\r
                 Md{\r
-                    M{"dd/MM–dd/MM"}\r
-                    d{"dd/MM–dd/MM"}\r
+                    M{"dd.MM–dd.MM"}\r
+                    d{"dd.MM–dd.MM"}\r
                 }\r
                 d{\r
                     d{"d.–d."}\r
@@ -776,22 +778,22 @@ da{
                     y{"y–y"}\r
                 }\r
                 yM{\r
-                    M{"MM/y–MM/y"}\r
-                    y{"MM/y–MM/y"}\r
+                    M{"MM.y–MM.y"}\r
+                    y{"MM.y–MM.y"}\r
                 }\r
                 yMEd{\r
-                    M{"E dd/MM/y–E dd/MM/y"}\r
-                    d{"E dd/MM/y–E dd/MM/y"}\r
-                    y{"E dd/MM/y–E dd/MM/y"}\r
+                    M{"E dd.MM.y–E dd.MM.y"}\r
+                    d{"E dd.MM.y–E dd.MM.y"}\r
+                    y{"E dd.MM.y–E dd.MM.y"}\r
                 }\r
                 yMMM{\r
                     M{"MMM–MMM y"}\r
                     y{"MMM y–MMM y"}\r
                 }\r
                 yMMMEd{\r
-                    M{"E 'den' d.–E 'den' d. MMM y"}\r
-                    d{"E 'den' d.–E 'den' d. MMM y"}\r
-                    y{"E 'den' d. MMM y–E 'den' d. MMM y"}\r
+                    M{"E d. MMM–E d. MMM y"}\r
+                    d{"E d.–E d. MMM y"}\r
+                    y{"E d. MMM y–E d. MMM y"}\r
                 }\r
                 yMMMM{\r
                     M{"MMMM–MMMM y"}\r
@@ -803,9 +805,9 @@ da{
                     y{"d. MMM y–d. MMM y"}\r
                 }\r
                 yMd{\r
-                    M{"dd/MM/y–dd/MM/y"}\r
-                    d{"dd/MM/y–dd/MM/y"}\r
-                    y{"dd/MM/y–dd/MM/y"}\r
+                    M{"dd.MM.y–dd.MM.y"}\r
+                    d{"dd.MM.y–dd.MM.y"}\r
+                    y{"dd.MM.y–dd.MM.y"}\r
                 }\r
             }\r
             monthNames{\r
@@ -2075,4 +2077,36 @@ da{
         US{"de amerikanske målesystemer"}\r
         metric{"det metriske system"}\r
     }\r
+    parse{\r
+        date{\r
+            lenient{\r
+                "[\\--/]",\r
+                "[\\:∶]",\r
+            }\r
+        }\r
+        general{\r
+            lenient{\r
+                "[.․。︒﹒.。]",\r
+                "['ʼ՚᾽᾿’']",\r
+                "[%٪﹪%]",\r
+                "[؉‰]",\r
+                "[\$﹩$$]",\r
+                "[£₤]",\r
+                "[¥¥]",\r
+                "[₩₩]",\r
+                "[₨₹{Rp}{Rs}]",\r
+            }\r
+        }\r
+        number{\r
+            lenient{\r
+                "[\\-‒⁻₋−➖﹣-]",\r
+                "[,،٫、︐︑﹐﹑,、]",\r
+                "[+⁺₊➕﬩﹢+]",\r
+            }\r
+            stricter{\r
+                "[,٫︐﹐,]",\r
+                "[.․﹒.。]",\r
+            }\r
+        }\r
+    }\r
 }\r
index 88e4f44..368f520 100644 (file)
@@ -25,7 +25,9 @@ de{
         default{"latn"}\r
         latn{\r
             miscPatterns{\r
+                approximately{"≈{0}"}\r
                 atLeast{"{0}+"}\r
+                atMost{"≤{0}"}\r
                 range{"{0}–{1}"}\r
             }\r
             patterns{\r
@@ -216,7 +218,7 @@ de{
         minimumGroupingDigits{"1"}\r
         native{"latn"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.91"}\r
     calendar{\r
         buddhist{\r
             eras{\r
@@ -903,7 +905,7 @@ de{
                 }\r
                 MEd{\r
                     M{"E, dd.MM. – E, dd.MM."}\r
-                    d{"E, dd.MM. – E, dd.MM."}\r
+                    d{"E, dd. – E, dd.MM."}\r
                 }\r
                 MMM{\r
                     M{"MMM–MMM"}\r
@@ -921,7 +923,7 @@ de{
                 }\r
                 Md{\r
                     M{"dd.MM. – dd.MM."}\r
-                    d{"dd.MM. – dd.MM."}\r
+                    d{"dd.dd.MM."}\r
                 }\r
                 d{\r
                     d{"d.–d."}\r
@@ -953,8 +955,8 @@ de{
                     y{"MM.y – MM.y"}\r
                 }\r
                 yMEd{\r
-                    M{"E, dd.MM.y – E, dd.MM.y"}\r
-                    d{"E, dd.MM.y – E, dd.MM.y"}\r
+                    M{"E, dd.MM. – E, dd.MM.y"}\r
+                    d{"E, dd. – E, dd.MM.y"}\r
                     y{"E, dd.MM.y – E, dd.MM.y"}\r
                 }\r
                 yMMM{\r
@@ -976,8 +978,8 @@ de{
                     y{"d. MMM y – d. MMM y"}\r
                 }\r
                 yMd{\r
-                    M{"dd.MM.y – dd.MM.y"}\r
-                    d{"dd.MM.y – dd.MM.y"}\r
+                    M{"dd.MM. – dd.MM.y"}\r
+                    d{"dd.dd.MM.y"}\r
                     y{"dd.MM.y – dd.MM.y"}\r
                 }\r
             }\r
@@ -992,7 +994,7 @@ de{
                         "Juni",\r
                         "Juli",\r
                         "Aug.",\r
-                        "Sep.",\r
+                        "Sept.",\r
                         "Okt.",\r
                         "Nov.",\r
                         "Dez.",\r
@@ -1601,6 +1603,7 @@ de{
                     "Taishō",\r
                     "Shōwa",\r
                     "Heisei",\r
+                    "Qqqq",\r
                 }\r
             }\r
         }\r
@@ -2666,8 +2669,13 @@ de{
         general{\r
             lenient{\r
                 "[.․。︒﹒.。]",\r
+                "['ʼ՚᾽᾿’']",\r
+                "[%٪﹪%]",\r
+                "[؉‰]",\r
                 "[\$﹩$$]",\r
                 "[£₤]",\r
+                "[¥¥]",\r
+                "[₩₩]",\r
                 "[₨₹{Rp}{Rs}]",\r
             }\r
         }\r
index 25dfcb6..36a6893 100644 (file)
@@ -14,7 +14,7 @@ de_AT{
             }\r
         }\r
     }\r
-    Version{"2.1.38.39"}\r
+    Version{"2.1.43.65"}\r
     calendar{\r
         gregorian{\r
             dayPeriod{\r
index e2076a4..a7758a0 100644 (file)
@@ -9,13 +9,29 @@ de_CH{
                 currencyFormat{"¤ #,##0.00;¤-#,##0.00"}\r
                 percentFormat{"#,##0%"}\r
             }\r
+            patternsShort{\r
+                currencyFormat{\r
+                    1000{\r
+                        one{"0"}\r
+                        other{"0"}\r
+                    }\r
+                    10000{\r
+                        one{"0"}\r
+                        other{"0"}\r
+                    }\r
+                    100000{\r
+                        one{"0"}\r
+                        other{"0"}\r
+                    }\r
+                }\r
+            }\r
             symbols{\r
                 decimal{"."}\r
                 group{"’"}\r
             }\r
         }\r
     }\r
-    Version{"2.1.39.37"}\r
+    Version{"2.1.44.50"}\r
     calendar{\r
         gregorian{\r
             dayNames{\r
@@ -40,12 +56,6 @@ de_CH{
         era-narrow{\r
             dn{"Epoche"}\r
         }\r
-        quarter{\r
-            relative{\r
-                "-1"{"letztes Quartal"}\r
-                "0"{"dieses Quartal"}\r
-            }\r
-        }\r
         weekOfMonth{\r
             dn{"Woche im Monat"}\r
         }\r
index 6eb02fe..8e659bf 100644 (file)
@@ -196,7 +196,7 @@ dsb{
         }\r
         minimumGroupingDigits{"1"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.41.34"}\r
     calendar{\r
         generic{\r
             DateTimePatterns{\r
index 98c5817..7b5e941 100644 (file)
@@ -106,7 +106,7 @@ dz{
             }\r
         }\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.41.34"}\r
     calendar{\r
         generic{\r
             DateTimePatterns{\r
index 99bb999..71ce8ed 100644 (file)
@@ -200,7 +200,7 @@ ee{
         }\r
         minimumGroupingDigits{"3"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.88"}\r
     calendar{\r
         generic{\r
             DateTimePatterns{\r
@@ -431,8 +431,8 @@ ee{
                 yQQQ{"QQQ y"}\r
                 yQQQQ{"QQQQ y"}\r
                 yw{\r
-                    one{"'kɔsiɖa' w 'lia' 'le' 'ƒe' y 'me'"}\r
-                    other{"'kɔsiɖa' w 'lia' 'le' 'ƒe' y 'me'"}\r
+                    one{"'kɔsiɖa' w 'lia' 'le' 'ƒe' Y 'me'"}\r
+                    other{"'kɔsiɖa' w 'lia' 'le' 'ƒe' Y 'me'"}\r
                 }\r
             }\r
             dayNames{\r
index 5b94501..e0436f8 100644 (file)
@@ -22,7 +22,9 @@ el{
         default{"latn"}\r
         latn{\r
             miscPatterns{\r
+                approximately{"~{0}"}\r
                 atLeast{"{0}+"}\r
+                atMost{"≤{0}"}\r
                 range{"{0}–{1}"}\r
             }\r
             patterns{\r
@@ -203,7 +205,7 @@ el{
         }\r
         minimalPairs{\r
             ordinal{\r
-                other{"Στρίψτε στην {0}η γωνία δεξιά."}\r
+                other{"Στρίψτε στην {0}η δεξιά."}\r
             }\r
             plural{\r
                 one{"{0} ημέρα"}\r
@@ -214,7 +216,7 @@ el{
         native{"latn"}\r
         traditional{"grek"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.65"}\r
     calendar{\r
         buddhist{\r
             DateTimePatterns{\r
@@ -1572,7 +1574,7 @@ el{
         plant{"φυτό"}\r
         punctuation{"στίξη"}\r
         rightwards_arrows{"βέλος δεξιά"}\r
-        sign_standard_symbols{"Σήματα / Τυπικά σύμβολα"}\r
+        sign_standard_symbols{"σήμα ή σύμβολο"}\r
         small_form_variant{"παραλλαγή μικρού μεγέθους"}\r
         smiley{"γελαστούλης"}\r
         smileys_people{"γελαστούλης ή άτομο"}\r
@@ -1627,6 +1629,11 @@ el{
         }\r
         day-narrow{\r
             dn{"ημ."}\r
+            relative{\r
+                "-1"{"χθες"}\r
+                "0"{"σήμερα"}\r
+                "1"{"αύριο"}\r
+            }\r
             relativeTime{\r
                 future{\r
                     one{"σε {0} ημ."}\r
@@ -1640,6 +1647,11 @@ el{
         }\r
         day-short{\r
             dn{"ημ."}\r
+            relative{\r
+                "-1"{"χθες"}\r
+                "0"{"σήμερα"}\r
+                "1"{"αύριο"}\r
+            }\r
             relativeTime{\r
                 future{\r
                     one{"σε {0} ημ."}\r
@@ -2440,4 +2452,36 @@ el{
         US{"Αμερικανικό"}\r
         metric{"Μετρικό"}\r
     }\r
+    parse{\r
+        date{\r
+            lenient{\r
+                "[\\--/]",\r
+                "[\\:∶]",\r
+            }\r
+        }\r
+        general{\r
+            lenient{\r
+                "[.․。︒﹒.。]",\r
+                "['ʼ՚᾽᾿’']",\r
+                "[%٪﹪%]",\r
+                "[؉‰]",\r
+                "[\$﹩$$]",\r
+                "[£₤]",\r
+                "[¥¥]",\r
+                "[₩₩]",\r
+                "[₨₹{Rp}{Rs}]",\r
+            }\r
+        }\r
+        number{\r
+            lenient{\r
+                "[\\-‒⁻₋−➖﹣-]",\r
+                "[,،٫、︐︑﹐﹑,、]",\r
+                "[+⁺₊➕﬩﹢+]",\r
+            }\r
+            stricter{\r
+                "[,٫︐﹐,]",\r
+                "[.․﹒.。]",\r
+            }\r
+        }\r
+    }\r
 }\r
index d98b4c8..67ddadc 100644 (file)
@@ -205,7 +205,7 @@ en{
             }\r
         }\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.91"}\r
     calendar{\r
         buddhist{\r
             eras{\r
@@ -499,6 +499,44 @@ en{
                 yyyyQQQQ{"QQQQ y G"}\r
             }\r
             intervalFormats{\r
+                Gy{\r
+                    G{"y G – y G"}\r
+                    y{"y – y G"}\r
+                }\r
+                GyM{\r
+                    G{"M/y GGGGG – M/y GGGGG"}\r
+                    M{"M/y – M/y GGGGG"}\r
+                    y{"M/y – M/y GGGGG"}\r
+                }\r
+                GyMEd{\r
+                    G{"E, M/d/y GGGGG – E, M/d/y GGGGG"}\r
+                    M{"E, M/d/y – E, M/d/y GGGGG"}\r
+                    d{"E, M/d/y – E, M/d/y GGGGG"}\r
+                    y{"E, M/d/y – E, M/d/y GGGGG"}\r
+                }\r
+                GyMMM{\r
+                    G{"MMM y G – MMM y G"}\r
+                    M{"MMM – MMM y G"}\r
+                    y{"MMM y – MMM y G"}\r
+                }\r
+                GyMMMEd{\r
+                    G{"E, MMM d, y G – E, MMM d, y G"}\r
+                    M{"E, MMM d – E, MMM d, y G"}\r
+                    d{"E, MMM d – E, MMM d, y G"}\r
+                    y{"E, MMM d, y – E, MMM d, y G"}\r
+                }\r
+                GyMMMd{\r
+                    G{"MMM d, y G – MMM d, y G"}\r
+                    M{"MMM d – MMM d, y G"}\r
+                    d{"MMM d – d, y G"}\r
+                    y{"MMM d, y – MMM d, y G"}\r
+                }\r
+                GyMd{\r
+                    G{"M/d/y GGGGG – M/d/y GGGGG"}\r
+                    M{"M/d/y – M/d/y GGGGG"}\r
+                    d{"M/d/y – M/d/y GGGGG"}\r
+                    y{"M/d/y – M/d/y GGGGG"}\r
+                }\r
                 H{\r
                     H{"HH – HH"}\r
                 }\r
@@ -812,6 +850,44 @@ en{
                 }\r
             }\r
             intervalFormats{\r
+                Gy{\r
+                    G{"y G – y G"}\r
+                    y{"y – y G"}\r
+                }\r
+                GyM{\r
+                    G{"M/y GGGGG – M/y GGGGG"}\r
+                    M{"M/y – M/y GGGGG"}\r
+                    y{"M/y – M/y GGGGG"}\r
+                }\r
+                GyMEd{\r
+                    G{"E, M/d/y GGGGG – E, M/d/y GGGGG"}\r
+                    M{"E, M/d/y – E, M/d/y GGGGG"}\r
+                    d{"E, M/d/y – E, M/d/y GGGGG"}\r
+                    y{"E, M/d/y – E, M/d/y GGGGG"}\r
+                }\r
+                GyMMM{\r
+                    G{"MMM y G – MMM y G"}\r
+                    M{"MMM – MMM y G"}\r
+                    y{"MMM y – MMM y G"}\r
+                }\r
+                GyMMMEd{\r
+                    G{"E, MMM d, y G – E, MMM d, y G"}\r
+                    M{"E, MMM d – E, MMM d, y G"}\r
+                    d{"E, MMM d – E, MMM d, y G"}\r
+                    y{"E, MMM d, y – E, MMM d, y G"}\r
+                }\r
+                GyMMMd{\r
+                    G{"MMM d, y G – MMM d, y G"}\r
+                    M{"MMM d – MMM d, y G"}\r
+                    d{"MMM d – d, y G"}\r
+                    y{"MMM d, y – MMM d, y G"}\r
+                }\r
+                GyMd{\r
+                    G{"M/d/y GGGGG – M/d/y GGGGG"}\r
+                    M{"M/d/y – M/d/y GGGGG"}\r
+                    d{"M/d/y – M/d/y GGGGG"}\r
+                    y{"M/d/y – M/d/y GGGGG"}\r
+                }\r
                 H{\r
                     H{"HH – HH"}\r
                 }\r
index 1512333..78def59 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 en_001{\r
-    Version{"2.1.38.69"}\r
+    Version{"2.1.44.18"}\r
     calendar{\r
         chinese{\r
             DateTimePatterns{\r
@@ -98,11 +98,18 @@ en_001{
                 "{1}, {0}",\r
             }\r
             availableFormats{\r
+                Bhms{"h:mm.ss B"}\r
+                EBhm{"E, h:mm B"}\r
+                EBhms{"E, h:mm:ss B"}\r
+                EHm{"E, HH:mm"}\r
+                EHms{"E, HH:mm:ss"}\r
                 Ed{"E d"}\r
+                Ehm{"E, h:mm a"}\r
+                Ehms{"E, h:mm:ss a"}\r
                 GyMMMEd{"E, d MMM y G"}\r
                 GyMMMd{"d MMM y G"}\r
                 M{"LL"}\r
-                MEd{"E, dd/MM"}\r
+                MEd{"E, d/M"}\r
                 MMMEd{"E, d MMM"}\r
                 MMMMd{"d MMMM"}\r
                 MMMd{"d MMM"}\r
@@ -157,6 +164,14 @@ en_001{
             }\r
         }\r
         gregorian{\r
+            AmPmMarkers{\r
+                "am",\r
+                "pm",\r
+            }\r
+            AmPmMarkersAbbr{\r
+                "am",\r
+                "pm",\r
+            }\r
             DateTimePatterns{\r
                 "h:mm:ss a zzzz",\r
                 "h:mm:ss a z",\r
@@ -173,6 +188,8 @@ en_001{
                 "{1}, {0}",\r
             }\r
             availableFormats{\r
+                EBhm{"E, h:mm B"}\r
+                EBhms{"E, h:mm:ss B"}\r
                 Ed{"E d"}\r
                 GyMMMEd{"E, d MMM y G"}\r
                 GyMMMd{"d MMM y G"}\r
@@ -188,6 +205,32 @@ en_001{
                 yMMMd{"d MMM y"}\r
                 yMd{"dd/MM/y"}\r
             }\r
+            dayPeriod{\r
+                format{\r
+                    abbreviated{\r
+                        noon{"noon"}\r
+                    }\r
+                    narrow{\r
+                        noon{"n"}\r
+                    }\r
+                    wide{\r
+                        noon{"noon"}\r
+                    }\r
+                }\r
+                stand-alone{\r
+                    abbreviated{\r
+                        am{"am"}\r
+                        pm{"pm"}\r
+                    }\r
+                    narrow{\r
+                        pm{"pm"}\r
+                    }\r
+                    wide{\r
+                        am{"am"}\r
+                        pm{"pm"}\r
+                    }\r
+                }\r
+            }\r
             intervalFormats{\r
                 MEd{\r
                     M{"E dd/MM – E dd/MM"}\r
@@ -232,34 +275,36 @@ en_001{
             }\r
         }\r
     }\r
-    characterLabel{\r
-        math_symbols{"maths symbols"}\r
-    }\r
     fields{\r
+        dayOfYear-narrow{\r
+            dn{"day of yr"}\r
+        }\r
+        dayOfYear-short{\r
+            dn{"day of yr"}\r
+        }\r
         dayperiod{\r
             dn{"am/pm"}\r
         }\r
-        fri-narrow{\r
-            relativeTime{\r
-                future{\r
-                    one{"in {0} Friday"}\r
-                    other{"in {0} Fridays"}\r
-                }\r
-                past{\r
-                    one{"{0} Friday ago"}\r
-                    other{"{0} Fridays ago"}\r
-                }\r
-            }\r
+        dayperiod-narrow{\r
+            dn{"am/pm"}\r
+        }\r
+        dayperiod-short{\r
+            dn{"am/pm"}\r
         }\r
         fri-short{\r
+            relative{\r
+                "-1"{"last Fri"}\r
+                "0"{"this Fri"}\r
+                "1"{"next Fri"}\r
+            }\r
             relativeTime{\r
                 future{\r
-                    one{"in {0} Friday"}\r
-                    other{"in {0} Fridays"}\r
+                    one{"in {0} Fri"}\r
+                    other{"in {0} Fri"}\r
                 }\r
                 past{\r
-                    one{"{0} Friday ago"}\r
-                    other{"{0} Fridays ago"}\r
+                    one{"{0} Fri ago"}\r
+                    other{"{0} Fri ago"}\r
                 }\r
             }\r
         }\r
@@ -314,27 +359,20 @@ en_001{
                 }\r
             }\r
         }\r
-        mon-narrow{\r
-            relativeTime{\r
-                future{\r
-                    one{"in {0} Monday"}\r
-                    other{"in {0} Mondays"}\r
-                }\r
-                past{\r
-                    one{"{0} Monday ago"}\r
-                    other{"{0} Mondays ago"}\r
-                }\r
-            }\r
-        }\r
         mon-short{\r
+            relative{\r
+                "-1"{"last Mon"}\r
+                "0"{"this Mon"}\r
+                "1"{"next Mon"}\r
+            }\r
             relativeTime{\r
                 future{\r
-                    one{"in {0} Monday"}\r
-                    other{"in {0} Mondays"}\r
+                    one{"in {0} Mon"}\r
+                    other{"in {0} Mon"}\r
                 }\r
                 past{\r
-                    one{"{0} Monday ago"}\r
-                    other{"{0} Mondays ago"}\r
+                    one{"{0} Mon ago"}\r
+                    other{"{0} Mon ago"}\r
                 }\r
             }\r
         }\r
@@ -390,27 +428,20 @@ en_001{
                 }\r
             }\r
         }\r
-        sat-narrow{\r
-            relativeTime{\r
-                future{\r
-                    one{"in {0} Saturday"}\r
-                    other{"in {0} Saturdays"}\r
-                }\r
-                past{\r
-                    one{"{0} Saturday ago"}\r
-                    other{"{0} Saturdays ago"}\r
-                }\r
-            }\r
-        }\r
         sat-short{\r
+            relative{\r
+                "-1"{"last Sat"}\r
+                "0"{"this Sat"}\r
+                "1"{"next Sat"}\r
+            }\r
             relativeTime{\r
                 future{\r
-                    one{"in {0} Saturday"}\r
-                    other{"in {0} Saturdays"}\r
+                    one{"in {0} Sat"}\r
+                    other{"in {0} Sat"}\r
                 }\r
                 past{\r
-                    one{"{0} Saturday ago"}\r
-                    other{"{0} Saturdays ago"}\r
+                    one{"{0} Sat ago"}\r
+                    other{"{0} Sat ago"}\r
                 }\r
             }\r
         }\r
@@ -439,99 +470,71 @@ en_001{
                 }\r
             }\r
         }\r
-        sun-narrow{\r
-            relativeTime{\r
-                future{\r
-                    one{"in {0} Sunday"}\r
-                    other{"in {0} Sundays"}\r
-                }\r
-                past{\r
-                    one{"{0} Sunday ago"}\r
-                    other{"{0} Sundays ago"}\r
-                }\r
-            }\r
-        }\r
         sun-short{\r
-            relativeTime{\r
-                future{\r
-                    one{"in {0} Sunday"}\r
-                    other{"in {0} Sundays"}\r
-                }\r
-                past{\r
-                    one{"{0} Sunday ago"}\r
-                    other{"{0} Sundays ago"}\r
-                }\r
+            relative{\r
+                "-1"{"last Sun"}\r
+                "0"{"this Sun"}\r
+                "1"{"next Sun"}\r
             }\r
-        }\r
-        thu-narrow{\r
             relativeTime{\r
                 future{\r
-                    one{"in {0} Thursday"}\r
-                    other{"in {0} Thursdays"}\r
+                    one{"in {0} Sun"}\r
+                    other{"in {0} Sun"}\r
                 }\r
                 past{\r
-                    one{"{0} Thursday ago"}\r
-                    other{"{0} Thursdays ago"}\r
+                    one{"{0} Sun ago"}\r
+                    other{"{0} Sun ago"}\r
                 }\r
             }\r
         }\r
         thu-short{\r
-            relativeTime{\r
-                future{\r
-                    one{"in {0} Thursday"}\r
-                    other{"in {0} Thursdays"}\r
-                }\r
-                past{\r
-                    one{"{0} Thursday ago"}\r
-                    other{"{0} Thursdays ago"}\r
-                }\r
+            relative{\r
+                "-1"{"last Thu"}\r
+                "0"{"this Thu"}\r
+                "1"{"next Thu"}\r
             }\r
-        }\r
-        tue-narrow{\r
             relativeTime{\r
                 future{\r
-                    one{"in {0} Tuesday"}\r
-                    other{"in {0} Tuesdays"}\r
+                    one{"in {0} Thu"}\r
+                    other{"in {0} Thu"}\r
                 }\r
                 past{\r
-                    one{"{0} Tuesday ago"}\r
-                    other{"{0} Tuesdays ago"}\r
+                    one{"{0} Thu ago"}\r
+                    other{"{0} Thu ago"}\r
                 }\r
             }\r
         }\r
         tue-short{\r
-            relativeTime{\r
-                future{\r
-                    one{"in {0} Tuesday"}\r
-                    other{"in {0} Tuesdays"}\r
-                }\r
-                past{\r
-                    one{"{0} Tuesday ago"}\r
-                    other{"{0} Tuesdays ago"}\r
-                }\r
+            relative{\r
+                "-1"{"last Tue"}\r
+                "0"{"this Tue"}\r
+                "1"{"next Tue"}\r
             }\r
-        }\r
-        wed-narrow{\r
             relativeTime{\r
                 future{\r
-                    one{"in {0} Wednesday"}\r
-                    other{"in {0} Wednesdays"}\r
+                    one{"in {0} Tue"}\r
+                    other{"in {0} Tue"}\r
                 }\r
                 past{\r
-                    one{"{0} Wednesday ago"}\r
-                    other{"{0} Wednesdays ago"}\r
+                    one{"{0} Tue ago"}\r
+                    other{"{0} Tue ago"}\r
                 }\r
             }\r
         }\r
         wed-short{\r
+            relative{\r
+                "-1"{"last Wed"}\r
+                "0"{"this Wed"}\r
+                "1"{"next Wed"}\r
+            }\r
             relativeTime{\r
                 future{\r
-                    one{"in {0} Wednesday"}\r
-                    other{"in {0} Wednesdays"}\r
+                    one{"in {0} Wed"}\r
+                    other{"in {0} Wed"}\r
                 }\r
                 past{\r
-                    one{"{0} Wednesday ago"}\r
-                    other{"{0} Wednesdays ago"}\r
+                    one{"{0} Wed ago"}\r
+                    other{"{0} Wed ago"}\r
                 }\r
             }\r
         }\r
@@ -561,6 +564,24 @@ en_001{
                 }\r
             }\r
         }\r
+        weekOfMonth-narrow{\r
+            dn{"wk of mo"}\r
+        }\r
+        weekOfMonth-short{\r
+            dn{"wk of mo"}\r
+        }\r
+        weekday-narrow{\r
+            dn{"day of wk"}\r
+        }\r
+        weekday-short{\r
+            dn{"day of wk"}\r
+        }\r
+        weekdayOfMonth-narrow{\r
+            dn{"wkday of mo"}\r
+        }\r
+        weekdayOfMonth-short{\r
+            dn{"wkday of mo"}\r
+        }\r
         year-narrow{\r
             relativeTime{\r
                 future{\r
index b86a56a..5c30088 100644 (file)
@@ -2,6 +2,7 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 en_AU{\r
     %%Parent{"en_001"}\r
+    ExemplarCharactersNumbers{"[↑]"}\r
     NumberElements{\r
         latn{\r
             symbols{\r
@@ -10,8 +11,42 @@ en_AU{
             }\r
         }\r
     }\r
-    Version{"2.1.38.73"}\r
+    Version{"2.1.44.18"}\r
     calendar{\r
+        chinese{\r
+            monthNames{\r
+                stand-alone{\r
+                    abbreviated{\r
+                        "Mo1",\r
+                        "Mo2",\r
+                        "Mo3",\r
+                        "Mo4",\r
+                        "Mo5",\r
+                        "Mo6",\r
+                        "Mo7",\r
+                        "Mo8",\r
+                        "Mo9",\r
+                        "Mo10",\r
+                        "Mo11",\r
+                        "Mo12",\r
+                    }\r
+                    wide{\r
+                        "First Month",\r
+                        "Second Month",\r
+                        "Third Month",\r
+                        "Fourth Month",\r
+                        "Fifth Month",\r
+                        "Sixth Month",\r
+                        "Seventh Month",\r
+                        "Eighth Month",\r
+                        "Ninth Month",\r
+                        "Tenth Month",\r
+                        "Eleventh Month",\r
+                        "Twelfth Month",\r
+                    }\r
+                }\r
+            }\r
+        }\r
         generic{\r
             availableFormats{\r
                 yMEd{"E, dd/MM/y"}\r
@@ -32,14 +67,6 @@ en_AU{
             }\r
         }\r
         gregorian{\r
-            AmPmMarkers{\r
-                "am",\r
-                "pm",\r
-            }\r
-            AmPmMarkersAbbr{\r
-                "am",\r
-                "pm",\r
-            }\r
             AmPmMarkersNarrow{\r
                 "am",\r
                 "pm",\r
@@ -65,15 +92,6 @@ en_AU{
             }\r
             dayNames{\r
                 format{\r
-                    abbreviated{\r
-                        "Sun.",\r
-                        "Mon.",\r
-                        "Tue.",\r
-                        "Wed.",\r
-                        "Thu.",\r
-                        "Fri.",\r
-                        "Sat.",\r
-                    }\r
                     narrow{\r
                         "Su.",\r
                         "M.",\r
@@ -84,25 +102,16 @@ en_AU{
                         "Sa.",\r
                     }\r
                     short{\r
-                        "Su.",\r
-                        "Mon.",\r
-                        "Tu.",\r
-                        "Wed.",\r
-                        "Th.",\r
-                        "Fri.",\r
-                        "Sat.",\r
+                        "Su",\r
+                        "Mon",\r
+                        "Tu",\r
+                        "Wed",\r
+                        "Th",\r
+                        "Fri",\r
+                        "Sat",\r
                     }\r
                 }\r
                 stand-alone{\r
-                    abbreviated{\r
-                        "Sun.",\r
-                        "Mon.",\r
-                        "Tue.",\r
-                        "Wed.",\r
-                        "Thu.",\r
-                        "Fri.",\r
-                        "Sat.",\r
-                    }\r
                     narrow{\r
                         "Su.",\r
                         "M.",\r
@@ -113,13 +122,13 @@ en_AU{
                         "Sa.",\r
                     }\r
                     short{\r
-                        "Su.",\r
-                        "Mon.",\r
-                        "Tu.",\r
-                        "Wed.",\r
-                        "Th.",\r
-                        "Fri.",\r
-                        "Sat.",\r
+                        "Su",\r
+                        "Mon",\r
+                        "Tu",\r
+                        "Wed",\r
+                        "Th",\r
+                        "Fri",\r
+                        "Sat",\r
                     }\r
                 }\r
             }\r
@@ -152,53 +161,13 @@ en_AU{
                 }\r
                 stand-alone{\r
                     abbreviated{\r
-                        am{"am"}\r
                         noon{"midday"}\r
-                        pm{"pm"}\r
                     }\r
                     narrow{\r
-                        am{"am"}\r
                         noon{"midday"}\r
-                        pm{"pm"}\r
                     }\r
                     wide{\r
-                        am{"am"}\r
                         noon{"midday"}\r
-                        pm{"pm"}\r
-                    }\r
-                }\r
-            }\r
-            monthNames{\r
-                format{\r
-                    abbreviated{\r
-                        "Jan.",\r
-                        "Feb.",\r
-                        "Mar.",\r
-                        "Apr.",\r
-                        "May",\r
-                        "Jun.",\r
-                        "Jul.",\r
-                        "Aug.",\r
-                        "Sep.",\r
-                        "Oct.",\r
-                        "Nov.",\r
-                        "Dec.",\r
-                    }\r
-                }\r
-                stand-alone{\r
-                    abbreviated{\r
-                        "Jan.",\r
-                        "Feb.",\r
-                        "Mar.",\r
-                        "Apr.",\r
-                        "May",\r
-                        "Jun.",\r
-                        "Jul.",\r
-                        "Aug.",\r
-                        "Sep.",\r
-                        "Oct.",\r
-                        "Nov.",\r
-                        "Dec.",\r
                     }\r
                 }\r
             }\r
@@ -222,48 +191,11 @@ en_AU{
         upwards_arrows{"upward arrows"}\r
     }\r
     fields{\r
-        day-narrow{\r
-            relativeTime{\r
-                future{\r
-                    other{"in {0} days"}\r
-                }\r
-                past{\r
-                    other{"{0} days ago"}\r
-                }\r
-            }\r
-        }\r
-        day-short{\r
-            relativeTime{\r
-                future{\r
-                    other{"in {0} days"}\r
-                }\r
-                past{\r
-                    other{"{0} days ago"}\r
-                }\r
-            }\r
-        }\r
-        dayOfYear-narrow{\r
-            dn{"day of yr"}\r
-        }\r
-        dayOfYear-short{\r
-            dn{"day of yr"}\r
-        }\r
-        dayperiod-narrow{\r
-            dn{"am/pm"}\r
-        }\r
-        dayperiod-short{\r
-            dn{"am/pm"}\r
-        }\r
-        fri-narrow{\r
-            relativeTime{\r
-                future{\r
-                    one{"in {0} F"}\r
-                    other{"in {0} F"}\r
-                }\r
-                past{\r
-                    one{"{0} F ago"}\r
-                    other{"{0} F ago"}\r
-                }\r
+        day{\r
+            relative{\r
+                "-1"{"yesterday"}\r
+                "0"{"today"}\r
+                "1"{"tomorrow"}\r
             }\r
         }\r
         fri-short{\r
@@ -330,18 +262,6 @@ en_AU{
                 }\r
             }\r
         }\r
-        mon-narrow{\r
-            relativeTime{\r
-                future{\r
-                    one{"in {0} M"}\r
-                    other{"in {0} M"}\r
-                }\r
-                past{\r
-                    one{"{0} M ago"}\r
-                    other{"{0} M ago"}\r
-                }\r
-            }\r
-        }\r
         mon-short{\r
             relativeTime{\r
                 future{\r
@@ -404,18 +324,6 @@ en_AU{
                 }\r
             }\r
         }\r
-        sat-narrow{\r
-            relativeTime{\r
-                future{\r
-                    one{"in {0} Sa"}\r
-                    other{"in {0} Sa"}\r
-                }\r
-                past{\r
-                    one{"{0} Sa ago"}\r
-                    other{"{0} Sa ago"}\r
-                }\r
-            }\r
-        }\r
         sat-short{\r
             relativeTime{\r
                 future{\r
@@ -454,18 +362,6 @@ en_AU{
                 }\r
             }\r
         }\r
-        sun-narrow{\r
-            relativeTime{\r
-                future{\r
-                    one{"in {0} Su"}\r
-                    other{"in {0} Su"}\r
-                }\r
-                past{\r
-                    one{"{0} Su ago"}\r
-                    other{"{0} Su ago"}\r
-                }\r
-            }\r
-        }\r
         sun-short{\r
             relativeTime{\r
                 future{\r
@@ -478,18 +374,6 @@ en_AU{
                 }\r
             }\r
         }\r
-        thu-narrow{\r
-            relativeTime{\r
-                future{\r
-                    one{"in {0} Th"}\r
-                    other{"in {0} Th"}\r
-                }\r
-                past{\r
-                    one{"{0} Th ago"}\r
-                    other{"{0} Th ago"}\r
-                }\r
-            }\r
-        }\r
         thu-short{\r
             relativeTime{\r
                 future{\r
@@ -502,21 +386,6 @@ en_AU{
                 }\r
             }\r
         }\r
-        tue-narrow{\r
-            relative{\r
-                "-1"{"last Tu"}\r
-            }\r
-            relativeTime{\r
-                future{\r
-                    one{"in {0} Tu"}\r
-                    other{"in {0} Tu"}\r
-                }\r
-                past{\r
-                    one{"{0} Tu ago"}\r
-                    other{"{0} Tu ago"}\r
-                }\r
-            }\r
-        }\r
         tue-short{\r
             relativeTime{\r
                 future{\r
@@ -529,18 +398,6 @@ en_AU{
                 }\r
             }\r
         }\r
-        wed-narrow{\r
-            relativeTime{\r
-                future{\r
-                    one{"in {0} W"}\r
-                    other{"in {0} W"}\r
-                }\r
-                past{\r
-                    one{"{0} W ago"}\r
-                    other{"{0} W ago"}\r
-                }\r
-            }\r
-        }\r
         wed-short{\r
             relativeTime{\r
                 future{\r
@@ -580,12 +437,6 @@ en_AU{
         weekOfMonth-short{\r
             dn{"wk of mo."}\r
         }\r
-        weekday-narrow{\r
-            dn{"day of wk"}\r
-        }\r
-        weekday-short{\r
-            dn{"day of wk"}\r
-        }\r
         weekdayOfMonth-short{\r
             dn{"wkday of mo."}\r
         }\r
@@ -615,6 +466,9 @@ en_AU{
         }\r
     }\r
     listPattern{\r
+        or{\r
+            end{"{0} or {1}"}\r
+        }\r
         standard{\r
             end{"{0} and {1}"}\r
         }\r
index d76b0bf..0e3eab0 100644 (file)
@@ -13,7 +13,7 @@ en_BE{
             }\r
         }\r
     }\r
-    Version{"2.1.38.69"}\r
+    Version{"2.1.44.18"}\r
     calendar{\r
         generic{\r
             DateTimePatterns{\r
@@ -32,7 +32,6 @@ en_BE{
                 "{1}, {0}",\r
             }\r
             availableFormats{\r
-                MEd{"E, d/M"}\r
                 Md{"d/M"}\r
                 yyyyMEd{"E, d/M/y G"}\r
                 yyyyMd{"d/M/y G"}\r
index 9c013a4..193a12f 100644 (file)
@@ -9,7 +9,7 @@ en_CA{
             }\r
         }\r
     }\r
-    Version{"2.1.38.73"}\r
+    Version{"2.1.44.88"}\r
     calendar{\r
         chinese{\r
             DateTimePatterns{\r
@@ -113,7 +113,7 @@ en_CA{
                 MMMd{"MMM d"}\r
                 Md{"MM-dd"}\r
                 yyyyM{"GGGGG y-MM"}\r
-                yyyyMEd{"E, GGGGG y-MM-dd"}\r
+                yyyyMEd{"E, y-MM-dd GGGGG"}\r
                 yyyyMMMEd{"E, MMM d, y G"}\r
                 yyyyMMMd{"MMM d, y G"}\r
                 yyyyMd{"GGGGG y-MM-dd"}\r
@@ -170,6 +170,10 @@ en_CA{
                 "a.m.",\r
                 "p.m.",\r
             }\r
+            AmPmMarkersNarrow{\r
+                "am",\r
+                "pm",\r
+            }\r
             DateTimePatterns{\r
                 "h:mm:ss a zzzz",\r
                 "h:mm:ss a z",\r
@@ -200,8 +204,8 @@ en_CA{
                 yMMMd{"MMM d, y"}\r
                 yMd{"y-MM-dd"}\r
                 yw{\r
-                    one{"'week' w 'of' y"}\r
-                    other{"'week' w 'of' y"}\r
+                    one{"'week' w 'of' Y"}\r
+                    other{"'week' w 'of' Y"}\r
                 }\r
             }\r
             dayNames{\r
@@ -218,14 +222,25 @@ en_CA{
                 }\r
             }\r
             dayPeriod{\r
+                format{\r
+                    narrow{\r
+                        afternoon1{"aft"}\r
+                        evening1{"eve"}\r
+                        midnight{"mid"}\r
+                        morning1{"mor"}\r
+                        night1{"night"}\r
+                    }\r
+                }\r
                 stand-alone{\r
                     abbreviated{\r
                         am{"a.m."}\r
                         pm{"p.m."}\r
                     }\r
                     narrow{\r
-                        am{"a.m."}\r
-                        pm{"p.m."}\r
+                        afternoon1{"aft"}\r
+                        evening1{"eve"}\r
+                        midnight{"mid"}\r
+                        morning1{"mor"}\r
                     }\r
                     wide{\r
                         am{"a.m."}\r
@@ -292,22 +307,6 @@ en_CA{
                         "Dec.",\r
                     }\r
                 }\r
-                stand-alone{\r
-                    abbreviated{\r
-                        "Jan",\r
-                        "Feb",\r
-                        "Mar",\r
-                        "Apr",\r
-                        "May",\r
-                        "Jun",\r
-                        "Jul",\r
-                        "Aug",\r
-                        "Sep",\r
-                        "Oct",\r
-                        "Nov",\r
-                        "Dec",\r
-                    }\r
-                }\r
             }\r
         }\r
         islamic{\r
@@ -331,8 +330,10 @@ en_CA{
                 GyMMMd{"MMM d, y G"}\r
                 MEd{"E, MM-dd"}\r
                 MMMd{"MMM d"}\r
+                yyyyM{"y-MM GGGG"}\r
                 yyyyMMMEd{"E, MMM d, y G"}\r
                 yyyyMMMd{"MMM d, y G"}\r
+                yyyyMd{"y-MM-dd GGGGG"}\r
             }\r
         }\r
     }\r
@@ -343,7 +344,6 @@ en_CA{
         leftwards_rightwards_arrows{"leftward rightward arrow"}\r
         letterlike_symbols{"letter-like symbol"}\r
         limited_use{"limited use"}\r
-        math_symbols{"math symbol"}\r
         nonspacing{"non-spacing"}\r
         rightwards_arrows{"rightward arrow"}\r
         upwards_arrows{"upward arrows"}\r
@@ -359,14 +359,19 @@ en_CA{
             dn{"a.m./p.m."}\r
         }\r
         fri-narrow{\r
+            relative{\r
+                "-1"{"last Fr"}\r
+                "0"{"this Fr"}\r
+                "1"{"next Fr"}\r
+            }\r
             relativeTime{\r
                 future{\r
-                    one{"in {0} F"}\r
-                    other{"in {0} F’s"}\r
+                    one{"in {0} Fr"}\r
+                    other{"in {0} Fr’s"}\r
                 }\r
                 past{\r
-                    one{"{0} F ago"}\r
-                    other{"{0} F’s ago"}\r
+                    one{"{0} Fr ago"}\r
+                    other{"{0} Fr’s ago"}\r
                 }\r
             }\r
         }\r
@@ -435,14 +440,19 @@ en_CA{
             }\r
         }\r
         mon-narrow{\r
+            relative{\r
+                "-1"{"last Mo"}\r
+                "0"{"this Mo"}\r
+                "1"{"next Mo"}\r
+            }\r
             relativeTime{\r
                 future{\r
-                    one{"in {0} M"}\r
-                    other{"in {0} M’s"}\r
+                    one{"in {0} Mo"}\r
+                    other{"in {0} Mo’s"}\r
                 }\r
                 past{\r
-                    one{"{0} M ago"}\r
-                    other{"{0} M’s ago"}\r
+                    one{"{0} Mo ago"}\r
+                    other{"{0} Mo’s ago"}\r
                 }\r
             }\r
         }\r
@@ -578,6 +588,10 @@ en_CA{
                     one{"in {0} Sun."}\r
                     other{"in {0} Sun’s."}\r
                 }\r
+                past{\r
+                    one{"{0} Sun. ago"}\r
+                    other{"{0} Sun’s. ago"}\r
+                }\r
             }\r
         }\r
         thu-narrow{\r
@@ -629,14 +643,19 @@ en_CA{
             }\r
         }\r
         wed-narrow{\r
+            relative{\r
+                "-1"{"last We"}\r
+                "0"{"this We"}\r
+                "1"{"next We"}\r
+            }\r
             relativeTime{\r
                 future{\r
-                    one{"in {0} W"}\r
-                    other{"in {0} W’s"}\r
+                    one{"in {0} We"}\r
+                    other{"in {0} We’s"}\r
                 }\r
                 past{\r
-                    one{"{0} W ago"}\r
-                    other{"{0} W’s ago"}\r
+                    one{"{0} We ago"}\r
+                    other{"{0} We’s ago"}\r
                 }\r
             }\r
         }\r
index 48a51aa..f089823 100644 (file)
@@ -2,21 +2,12 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 en_GB{\r
     %%Parent{"en_001"}\r
-    Version{"2.1.38.73"}\r
+    Version{"2.1.44.18"}\r
     calendar{\r
         generic{\r
             availableFormats{\r
-                Bhm{"h.mm B"}\r
-                Bhms{"h.mm.ss B"}\r
-                EBhm{"E, h.mm B"}\r
-                EBhms{"E, h.mm.ss B"}\r
-                EHm{"E, HH:mm"}\r
-                EHms{"E, HH:mm:ss"}\r
-                Ehm{"E, h.mm a"}\r
-                Ehms{"E, h.mm.ss a"}\r
-                MEd{"E, d/M"}\r
-                hm{"h.mm a"}\r
-                hms{"h.mm.ss a"}\r
+                MEd{"E dd/MM"}\r
+                MMMEd{"E d MMM"}\r
             }\r
             intervalFormats{\r
                 M{\r
@@ -41,14 +32,6 @@ en_GB{
             }\r
         }\r
         gregorian{\r
-            AmPmMarkers{\r
-                "am",\r
-                "pm",\r
-            }\r
-            AmPmMarkersAbbr{\r
-                "am",\r
-                "pm",\r
-            }\r
             DateTimePatterns{\r
                 "HH:mm:ss zzzz",\r
                 "HH:mm:ss z",\r
@@ -64,40 +47,6 @@ en_GB{
                 "{1}, {0}",\r
                 "{1}, {0}",\r
             }\r
-            availableFormats{\r
-                Bhm{"h.mm B"}\r
-                Bhms{"h.mm.ss B"}\r
-                EBhm{"E, h.mm B"}\r
-                EBhms{"E, h.mm.ss B"}\r
-                MEd{"E dd/MM"}\r
-                MMMEd{"E d MMM"}\r
-            }\r
-            dayPeriod{\r
-                format{\r
-                    abbreviated{\r
-                        noon{"noon"}\r
-                    }\r
-                    narrow{\r
-                        noon{"n"}\r
-                    }\r
-                    wide{\r
-                        noon{"noon"}\r
-                    }\r
-                }\r
-                stand-alone{\r
-                    abbreviated{\r
-                        am{"am"}\r
-                        pm{"pm"}\r
-                    }\r
-                    narrow{\r
-                        pm{"pm"}\r
-                    }\r
-                    wide{\r
-                        am{"am"}\r
-                        pm{"pm"}\r
-                    }\r
-                }\r
-            }\r
             intervalFormats{\r
                 H{\r
                     H{"HH–HH"}\r
@@ -143,261 +92,6 @@ en_GB{
             }\r
         }\r
     }\r
-    characterLabel{\r
-        math_symbols{"maths symbol"}\r
-    }\r
-    fields{\r
-        day{\r
-            relative{\r
-                "-1"{"yesterday"}\r
-                "0"{"today"}\r
-                "1"{"tomorrow"}\r
-            }\r
-        }\r
-        day-short{\r
-            relativeTime{\r
-                future{\r
-                    other{"in {0} days"}\r
-                }\r
-                past{\r
-                    other{"{0} days ago"}\r
-                }\r
-            }\r
-        }\r
-        dayOfYear-narrow{\r
-            dn{"day of yr"}\r
-        }\r
-        dayOfYear-short{\r
-            dn{"day of yr"}\r
-        }\r
-        dayperiod-narrow{\r
-            dn{"am/pm"}\r
-        }\r
-        dayperiod-short{\r
-            dn{"am/pm"}\r
-        }\r
-        fri-narrow{\r
-            relativeTime{\r
-                future{\r
-                    one{"in {0} F"}\r
-                    other{"in {0} F"}\r
-                }\r
-                past{\r
-                    one{"{0} F ago"}\r
-                    other{"{0} F ago"}\r
-                }\r
-            }\r
-        }\r
-        fri-short{\r
-            relative{\r
-                "-1"{"last Fri"}\r
-                "0"{"this Fri"}\r
-                "1"{"next Fri"}\r
-            }\r
-            relativeTime{\r
-                future{\r
-                    one{"in {0} Fri"}\r
-                    other{"in {0} Fri"}\r
-                }\r
-                past{\r
-                    one{"{0} Fri ago"}\r
-                    other{"{0} Fri ago"}\r
-                }\r
-            }\r
-        }\r
-        mon-narrow{\r
-            relativeTime{\r
-                future{\r
-                    one{"in {0} M"}\r
-                    other{"in {0} M"}\r
-                }\r
-                past{\r
-                    one{"{0} M ago"}\r
-                    other{"{0} M ago"}\r
-                }\r
-            }\r
-        }\r
-        mon-short{\r
-            relative{\r
-                "-1"{"last Mon"}\r
-                "0"{"this Mon"}\r
-                "1"{"next Mon"}\r
-            }\r
-            relativeTime{\r
-                future{\r
-                    one{"in {0} Mon"}\r
-                    other{"in {0} Mon"}\r
-                }\r
-                past{\r
-                    one{"{0} Mon ago"}\r
-                    other{"{0} Mon ago"}\r
-                }\r
-            }\r
-        }\r
-        sat-narrow{\r
-            relativeTime{\r
-                future{\r
-                    one{"in {0} Sa"}\r
-                    other{"in {0} Sa"}\r
-                }\r
-                past{\r
-                    one{"{0} Sa ago"}\r
-                    other{"{0} Sa ago"}\r
-                }\r
-            }\r
-        }\r
-        sat-short{\r
-            relative{\r
-                "-1"{"last Sat"}\r
-                "0"{"this Sat"}\r
-                "1"{"next Sat"}\r
-            }\r
-            relativeTime{\r
-                future{\r
-                    one{"in {0} Sat"}\r
-                    other{"in {0} Sat"}\r
-                }\r
-                past{\r
-                    one{"{0} Sat ago"}\r
-                    other{"{0} Sat ago"}\r
-                }\r
-            }\r
-        }\r
-        sun-narrow{\r
-            relativeTime{\r
-                future{\r
-                    one{"in {0} Su"}\r
-                    other{"in {0} Su"}\r
-                }\r
-                past{\r
-                    one{"{0} Su ago"}\r
-                    other{"{0} Su ago"}\r
-                }\r
-            }\r
-        }\r
-        sun-short{\r
-            relative{\r
-                "-1"{"last Sun"}\r
-                "0"{"this Sun"}\r
-                "1"{"next Sun"}\r
-            }\r
-            relativeTime{\r
-                future{\r
-                    one{"in {0} Sun"}\r
-                    other{"in {0} Sun"}\r
-                }\r
-                past{\r
-                    one{"{0} Sun ago"}\r
-                    other{"{0} Sun ago"}\r
-                }\r
-            }\r
-        }\r
-        thu-narrow{\r
-            relativeTime{\r
-                future{\r
-                    one{"in {0} Th"}\r
-                    other{"in {0} Th"}\r
-                }\r
-                past{\r
-                    one{"{0} Th ago"}\r
-                    other{"{0} Th ago"}\r
-                }\r
-            }\r
-        }\r
-        thu-short{\r
-            relative{\r
-                "-1"{"last Thu"}\r
-                "0"{"this Thu"}\r
-                "1"{"next Thu"}\r
-            }\r
-            relativeTime{\r
-                future{\r
-                    one{"in {0} Thu"}\r
-                    other{"in {0} Thu"}\r
-                }\r
-                past{\r
-                    one{"{0} Thu ago"}\r
-                    other{"{0} Thu ago"}\r
-                }\r
-            }\r
-        }\r
-        tue-narrow{\r
-            relativeTime{\r
-                future{\r
-                    one{"in {0} Tu"}\r
-                    other{"in {0} Tu"}\r
-                }\r
-                past{\r
-                    one{"{0} Tu ago"}\r
-                    other{"{0} Tu ago"}\r
-                }\r
-            }\r
-        }\r
-        tue-short{\r
-            relative{\r
-                "-1"{"last Tue"}\r
-                "0"{"this Tue"}\r
-                "1"{"next Tue"}\r
-            }\r
-            relativeTime{\r
-                future{\r
-                    one{"in {0} Tue"}\r
-                    other{"in {0} Tue"}\r
-                }\r
-                past{\r
-                    one{"{0} Tue ago"}\r
-                    other{"{0} Tue ago"}\r
-                }\r
-            }\r
-        }\r
-        wed-narrow{\r
-            relativeTime{\r
-                future{\r
-                    one{"in {0} W"}\r
-                    other{"in {0} W"}\r
-                }\r
-                past{\r
-                    one{"{0} W ago"}\r
-                    other{"{0} W ago"}\r
-                }\r
-            }\r
-        }\r
-        wed-short{\r
-            relative{\r
-                "-1"{"last Wed"}\r
-                "0"{"this Wed"}\r
-                "1"{"next Wed"}\r
-            }\r
-            relativeTime{\r
-                future{\r
-                    one{"in {0} Wed"}\r
-                    other{"in {0} Wed"}\r
-                }\r
-                past{\r
-                    one{"{0} Wed ago"}\r
-                    other{"{0} Wed ago"}\r
-                }\r
-            }\r
-        }\r
-        weekOfMonth-narrow{\r
-            dn{"wk of mo"}\r
-        }\r
-        weekOfMonth-short{\r
-            dn{"wk of mo"}\r
-        }\r
-        weekday-narrow{\r
-            dn{"day of wk"}\r
-        }\r
-        weekday-short{\r
-            dn{"day of wk"}\r
-        }\r
-        weekdayOfMonth-narrow{\r
-            dn{"wkday of mo"}\r
-        }\r
-        weekdayOfMonth-short{\r
-            dn{"wkday of mo"}\r
-        }\r
-    }\r
     listPattern{\r
         or{\r
             end{"{0} or {1}"}\r
index b5f27fe..1e62050 100644 (file)
@@ -2,7 +2,7 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 en_HK{\r
     %%Parent{"en_001"}\r
-    Version{"2.1.38.69"}\r
+    Version{"2.1.43.65"}\r
     calendar{\r
         generic{\r
             DateTimePatterns{\r
index 23321e3..e5de22c 100644 (file)
@@ -2,7 +2,7 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 en_IE{\r
     %%Parent{"en_001"}\r
-    Version{"2.1.38.69"}\r
+    Version{"2.1.44.18"}\r
     calendar{\r
         generic{\r
             DateTimePatterns{\r
@@ -21,7 +21,6 @@ en_IE{
                 "{1}, {0}",\r
             }\r
             availableFormats{\r
-                MEd{"E, d/M"}\r
                 Md{"d/M"}\r
                 yyyyMEd{"E, d/M/y G"}\r
                 yyyyMMMEd{"E d MMM y G"}\r
index 2429731..1f8cf27 100644 (file)
@@ -9,9 +9,41 @@ en_IN{
                 decimalFormat{"#,##,##0.###"}\r
                 percentFormat{"#,##,##0%"}\r
             }\r
+            patternsShort{\r
+                currencyFormat{\r
+                    1000{\r
+                        one{"¤0T"}\r
+                        other{"¤0T"}\r
+                    }\r
+                    10000{\r
+                        one{"¤00T"}\r
+                        other{"¤00T"}\r
+                    }\r
+                    100000{\r
+                        one{"¤0L"}\r
+                        other{"¤0L"}\r
+                    }\r
+                    10000000{\r
+                        one{"¤0Cr"}\r
+                        other{"¤0Cr"}\r
+                    }\r
+                    100000000{\r
+                        one{"¤00Cr"}\r
+                        other{"¤00Cr"}\r
+                    }\r
+                    10000000000{\r
+                        one{"¤0TCr"}\r
+                        other{"¤0TCr"}\r
+                    }\r
+                    100000000000{\r
+                        one{"¤00TCr"}\r
+                        other{"¤00TCr"}\r
+                    }\r
+                }\r
+            }\r
         }\r
     }\r
-    Version{"2.1.38.73"}\r
+    Version{"2.1.44.18"}\r
     calendar{\r
         generic{\r
             DateTimePatterns{\r
@@ -22,7 +54,7 @@ en_IN{
                 "EEEE, d MMMM, y G",\r
                 "d MMMM, y G",\r
                 "d MMM, y G",\r
-                "dd/MM/y GGGGG",\r
+                "d/M/y/ GGGGG",\r
                 "{1}, {0}",\r
                 "{1} 'at' {0}",\r
                 "{1} 'at' {0}",\r
@@ -30,15 +62,11 @@ en_IN{
                 "{1}, {0}",\r
             }\r
             availableFormats{\r
-                EBhm{"E, h:mm B"}\r
-                EBhms{"E, h:mm:ss B"}\r
-                EHm{"E, HH:mm"}\r
-                EHms{"E, HH:mm:ss"}\r
-                Ehm{"E, h:mm a"}\r
-                Ehms{"E, h:mm:ss a"}\r
                 GyMMM{"MMM, y G"}\r
                 GyMMMEd{"E, d MMM, y G"}\r
                 GyMMMd{"d MMM, y G"}\r
+                Md{"d/M"}\r
+                yyyyM{"M/y GGGGG"}\r
                 yyyyMEd{"E, d/M/y GGGGG"}\r
                 yyyyMMM{"MMM, y G"}\r
                 yyyyMMMEd{"E, d MMM, y G"}\r
@@ -55,6 +83,10 @@ en_IN{
                     M{"E, d MMM – E, d MMM"}\r
                     d{"E, d – E, d MMM"}\r
                 }\r
+                Md{\r
+                    M{"d/M – d/M"}\r
+                    d{"d/M – d/M"}\r
+                }\r
                 yM{\r
                     M{"MM/y – MM/y G"}\r
                     y{"MM/y – MM/y G"}\r
@@ -93,8 +125,6 @@ en_IN{
                 "{1}, {0}",\r
             }\r
             availableFormats{\r
-                EBhm{"E, h:mm B"}\r
-                EBhms{"E, h:mm:ss B"}\r
                 EHm{"E, HH:mm"}\r
                 EHms{"E, HH:mm:ss"}\r
                 Ehm{"E, h:mm a"}\r
@@ -123,7 +153,7 @@ en_IN{
                 "EEEE d MMMM y G",\r
                 "d MMMM, y G",\r
                 "dd-MMM-y G",\r
-                "dd/MM/y GGGGG",\r
+                "d/M/y/ GGGGG",\r
                 "{1}, {0}",\r
                 "{1} 'at' {0}",\r
                 "{1} 'at' {0}",\r
@@ -131,7 +161,17 @@ en_IN{
                 "{1}, {0}",\r
             }\r
             availableFormats{\r
+                GyMMM{"MMM, y G"}\r
+                GyMMMEd{"E, d MMM, y G"}\r
+                GyMMMd{"d MMM, y G"}\r
+                Md{"d/M"}\r
+                yyyyM{"M/y GGGGG"}\r
                 yyyyMEd{"E d/M/y G"}\r
+                yyyyMMM{"MMM, y G"}\r
+                yyyyMMMEd{"E, d MMM, y G"}\r
+                yyyyMMMM{"MMMM, y G"}\r
+                yyyyMMMd{"d MMM, y G"}\r
+                yyyyMd{"d/M/y G"}\r
             }\r
         }\r
     }\r
@@ -144,6 +184,10 @@ en_IN{
                 future{\r
                     other{"in {0} Wed."}\r
                 }\r
+                past{\r
+                    one{"{0} Wed. ago"}\r
+                    other{"{0} Wed. ago"}\r
+                }\r
             }\r
         }\r
     }\r
index 47beda6..2752731 100644 (file)
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 en_JM{\r
     %%Parent{"en_001"}\r
-    Version{"2.1.38.69"}\r
+    Version{"2.1.44.18"}\r
 }\r
index 5ea0e54..00c3e99 100644 (file)
@@ -2,7 +2,7 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 en_NZ{\r
     %%Parent{"en_001"}\r
-    Version{"2.1.38.73"}\r
+    Version{"2.1.44.88"}\r
     calendar{\r
         generic{\r
             DateTimePatterns{\r
@@ -73,8 +73,8 @@ en_NZ{
                 Md{"d/M"}\r
                 yMd{"d/MM/y"}\r
                 yw{\r
-                    one{"'week' w 'of' y"}\r
-                    other{"'week' w 'of' y"}\r
+                    one{"'week' w 'of' Y"}\r
+                    other{"'week' w 'of' Y"}\r
                 }\r
             }\r
             intervalFormats{\r
index e264e18..ad9f70d 100644 (file)
@@ -2,7 +2,7 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 en_ZW{\r
     %%Parent{"en_001"}\r
-    Version{"2.1.38.69"}\r
+    Version{"2.1.44.18"}\r
     calendar{\r
         generic{\r
             DateTimePatterns{\r
@@ -21,7 +21,6 @@ en_ZW{
                 "{1}, {0}",\r
             }\r
             availableFormats{\r
-                MEd{"E, d/M"}\r
                 MMMEd{"E, dd MMM"}\r
                 MMMd{"dd MMM"}\r
                 Md{"d/M"}\r
index e7a57b3..65649d7 100644 (file)
@@ -22,7 +22,9 @@ es{
         default{"latn"}\r
         latn{\r
             miscPatterns{\r
+                approximately{"~{0}"}\r
                 atLeast{"Más de {0}"}\r
+                atMost{"≤{0}"}\r
                 range{"{0}-{1}"}\r
             }\r
             patterns{\r
@@ -213,7 +215,7 @@ es{
         minimumGroupingDigits{"2"}\r
         native{"latn"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.88"}\r
     calendar{\r
         buddhist{\r
             eras{\r
@@ -751,8 +753,8 @@ es{
                 yQQQ{"QQQ y"}\r
                 yQQQQ{"QQQQ 'de' y"}\r
                 yw{\r
-                    one{"'semana' w 'de' y"}\r
-                    other{"'semana' w 'de' y"}\r
+                    one{"'semana' w 'de' Y"}\r
+                    other{"'semana' w 'de' Y"}\r
                 }\r
             }\r
             dayNames{\r
@@ -2579,4 +2581,36 @@ es{
         US{"estadounidense"}\r
         metric{"métrico"}\r
     }\r
+    parse{\r
+        date{\r
+            lenient{\r
+                "[\\--/]",\r
+                "[\\:∶]",\r
+            }\r
+        }\r
+        general{\r
+            lenient{\r
+                "[.․。︒﹒.。]",\r
+                "['ʼ՚᾽᾿’']",\r
+                "[%٪﹪%]",\r
+                "[؉‰]",\r
+                "[\$﹩$$]",\r
+                "[£₤]",\r
+                "[¥¥]",\r
+                "[₩₩]",\r
+                "[₨₹{Rp}{Rs}]",\r
+            }\r
+        }\r
+        number{\r
+            lenient{\r
+                "[\\-‒⁻₋−➖﹣-]",\r
+                "[,،٫、︐︑﹐﹑,、]",\r
+                "[+⁺₊➕﬩﹢+]",\r
+            }\r
+            stricter{\r
+                "[,٫︐﹐,]",\r
+                "[.․﹒.。]",\r
+            }\r
+        }\r
+    }\r
 }\r
index 385e3c3..4ff3acd 100644 (file)
@@ -24,6 +24,56 @@ es_419{
                 }\r
             }\r
             patternsShort{\r
+                currencyFormat{\r
+                    1000{\r
+                        one{"¤0 K"}\r
+                        other{"¤0 K"}\r
+                    }\r
+                    10000{\r
+                        one{"¤00 K"}\r
+                        other{"¤00 K"}\r
+                    }\r
+                    100000{\r
+                        one{"¤000 K"}\r
+                        other{"¤000 K"}\r
+                    }\r
+                    1000000{\r
+                        one{"¤0 M"}\r
+                        other{"¤0 M"}\r
+                    }\r
+                    10000000{\r
+                        one{"¤00 M"}\r
+                        other{"¤00 M"}\r
+                    }\r
+                    100000000{\r
+                        one{"¤000 M"}\r
+                        other{"¤000 M"}\r
+                    }\r
+                    1000000000{\r
+                        one{"¤0000 M"}\r
+                        other{"¤0000 M"}\r
+                    }\r
+                    10000000000{\r
+                        one{"¤00 MRD"}\r
+                        other{"¤00 MRD"}\r
+                    }\r
+                    100000000000{\r
+                        one{"¤000 MRD"}\r
+                        other{"¤000 MRD"}\r
+                    }\r
+                    1000000000000{\r
+                        one{"¤0 B"}\r
+                        other{"¤0 B"}\r
+                    }\r
+                    10000000000000{\r
+                        one{"¤00 B"}\r
+                        other{"¤00 B"}\r
+                    }\r
+                    100000000000000{\r
+                        one{"¤000 B"}\r
+                        other{"¤000 B"}\r
+                    }\r
+                }\r
                 decimalFormat{\r
                     1000{\r
                         one{"0 K"}\r
@@ -57,7 +107,7 @@ es_419{
             }\r
         }\r
     }\r
-    Version{"2.1.38.39"}\r
+    Version{"2.1.43.65"}\r
     calendar{\r
         coptic{\r
             monthNames{\r
@@ -594,9 +644,12 @@ es_419{
     characterLabel{\r
         african_scripts{"Símbolos de escritura de África"}\r
         american_scripts{"Símbolos de escritura de América"}\r
-        animals_nature{"Naturaleza y animales"}\r
-        body{"Cuerpo"}\r
+        animal{"animal"}\r
+        animals_nature{"naturaleza y animales"}\r
+        arrows{"flecha"}\r
+        body{"cuerpo"}\r
         box_drawing{"Cuadro de dibujo"}\r
+        building{"edificio"}\r
         consonantal_jamo{"Jamo consonántico"}\r
         currency_symbols{"símbolos de monedas"}\r
         dash_connector{"Guión/conector"}\r
@@ -604,7 +657,7 @@ es_419{
         dingbats{"Símbolos y viñetas"}\r
         downwards_upwards_arrows{"Flechas hacia arriba y hacia abajo"}\r
         european_scripts{"Símbolos de escritura de Europa"}\r
-        flags{"Indicadores"}\r
+        flags{"banderas"}\r
         format{"Formato"}\r
         format_whitespace{"formato y espacio duro"}\r
         full_width_form_variant{"Variantes de formato de ancho completo"}\r
@@ -624,23 +677,33 @@ es_419{
         miscellaneous{"Miscelánea"}\r
         modern_scripts{"sistemas de escritura modernos"}\r
         modifier{"Modificador"}\r
+        nature{"naturaleza"}\r
+        nonspacing{"sin espaciado"}\r
         other{"otros"}\r
         paired{"Asociado"}\r
+        person{"persona"}\r
         phonetic_alphabet{"alfabeto fonético"}\r
+        place{"lugar"}\r
+        plant{"planta"}\r
+        sign_standard_symbols{"señal o símbolo"}\r
         small_form_variant{"Variantes de formato pequeño"}\r
         smiley{"Caras sonrientes"}\r
         south_asian_scripts{"sistemas de escritura de Asia del Sur"}\r
         southeast_asian_scripts{"sistemas de escritura de Asia Sudoriental"}\r
+        sport{"deporte"}\r
         symbols{"símbolo"}\r
         tone_marks{"marcas tonales"}\r
+        travel{"viaje"}\r
         travel_places{"viajes y destinos"}\r
         variant_forms{"variantes"}\r
         vocalic_jamo{"Jamo vocálico"}\r
-        weather{"Clima"}\r
+        weather{"clima"}\r
         western_asian_scripts{"sistemas de escritura de Asia Occidental"}\r
         whitespace{"espacio duro"}\r
     }\r
     delimiters{\r
+        alternateQuotationEnd{"’"}\r
+        alternateQuotationStart{"‘"}\r
         quotationEnd{"”"}\r
         quotationStart{"“"}\r
     }\r
@@ -869,4 +932,7 @@ es_419{
             }\r
         }\r
     }\r
+    measurementSystemNames{\r
+        US{"anglosajón"}\r
+    }\r
 }\r
index be051de..c39bbcc 100644 (file)
@@ -14,7 +14,7 @@ es_AR{
             }\r
         }\r
     }\r
-    Version{"2.1.38.39"}\r
+    Version{"2.1.43.65"}\r
     calendar{\r
         generic{\r
             availableFormats{\r
index 46cb446..e0a80a9 100644 (file)
@@ -13,7 +13,7 @@ es_CO{
             }\r
         }\r
     }\r
-    Version{"2.1.38.39"}\r
+    Version{"2.1.43.65"}\r
     calendar{\r
         generic{\r
             DateTimePatterns{\r
index 9a84e45..2f33452 100644 (file)
@@ -92,7 +92,7 @@ es_MX{
             }\r
         }\r
     }\r
-    Version{"2.1.38.73"}\r
+    Version{"2.1.44.5"}\r
     calendar{\r
         generic{\r
             DateTimePatterns{\r
@@ -173,13 +173,16 @@ es_MX{
                 "{1} {0}",\r
             }\r
             availableFormats{\r
-                EHm{"E H:mm"}\r
-                EHms{"E H:mm:ss"}\r
+                EHm{"E HH:mm"}\r
+                EHms{"E HH:mm:ss"}\r
                 Ehm{"E h:mm a"}\r
                 Ehms{"E h:mm:ss a"}\r
                 GyMMMd{"d MMM y G"}\r
                 Hm{"H:mm"}\r
                 Hms{"H:mm:ss"}\r
+                Hmsv{"HH:mm:ss v"}\r
+                Hmsvvvv{"HH:mm:ss (vvvv)"}\r
+                Hmv{"HH:mm v"}\r
                 MMMEd{"E d 'de' MMM"}\r
                 MMd{"d/MM"}\r
                 MMdd{"dd/MM"}\r
@@ -251,7 +254,7 @@ es_MX{
                     H{"HH–HH v"}\r
                 }\r
                 MEd{\r
-                    M{"E, d/M – E, d/M"}\r
+                    M{"E, M/d–E, M/d"}\r
                     d{"E, d/M – E, d/M"}\r
                 }\r
                 MMMEd{\r
@@ -372,44 +375,27 @@ es_MX{
         }\r
     }\r
     characterLabel{\r
-        animal{"animal"}\r
-        body{"cuerpo"}\r
-        building{"edificio"}\r
         female{"mujer"}\r
-        flag{"bandera"}\r
         format_whitespace{"Formato y espacio duro"}\r
-        heart{"corazón"}\r
         keycap{"tecla"}\r
         letterlike_symbols{"Símbolos con letras"}\r
         limited_use{"Uso limitado"}\r
         male{"hombre"}\r
         modern_scripts{"Sistemas de escritura modernos"}\r
-        nature{"naturaleza"}\r
         other{"Otros"}\r
-        person{"persona"}\r
         phonetic_alphabet{"Alfabeto fonético"}\r
-        place{"lugar"}\r
-        plant{"planta"}\r
         sign_standard_symbols{"Símbolos de señales/estándar"}\r
         smiley{"cara sonriente"}\r
         south_asian_scripts{"Sistemas de escritura de Asia Meridional"}\r
         southeast_asian_scripts{"Sistemas de escritura de Asia Sudoriental"}\r
-        sport{"deporte"}\r
         symbols{"Símbolos"}\r
         tone_marks{"Marcas tonales"}\r
-        travel{"viaje"}\r
         travel_places{"Viajes y destinos"}\r
         variant_forms{"Variantes"}\r
         weather{"tiempo"}\r
         western_asian_scripts{"Sistemas de escritura de Asia Occidental"}\r
         whitespace{"Espacio duro"}\r
     }\r
-    delimiters{\r
-        alternateQuotationEnd{"”"}\r
-        alternateQuotationStart{"“"}\r
-        quotationEnd{"»"}\r
-        quotationStart{"«"}\r
-    }\r
     fields{\r
         day{\r
             relative{\r
@@ -463,6 +449,14 @@ es_MX{
                 }\r
             }\r
         }\r
+        fri-narrow{\r
+            relativeTime{\r
+                past{\r
+                    one{"hace {0} VI"}\r
+                    other{"hace {0} VI"}\r
+                }\r
+            }\r
+        }\r
         fri-short{\r
             relative{\r
                 "-1"{"el vier. pasado"}\r
@@ -473,6 +467,10 @@ es_MX{
                 future{\r
                     other{"dentro de {0} vie."}\r
                 }\r
+                past{\r
+                    one{"hace {0} vie."}\r
+                    other{"hace {0} vie."}\r
+                }\r
             }\r
         }\r
         hour-short{\r
@@ -519,11 +517,27 @@ es_MX{
                 }\r
             }\r
         }\r
+        mon-narrow{\r
+            relativeTime{\r
+                future{\r
+                    one{"dentro de {0} LU"}\r
+                    other{"dentro de {0} LU"}\r
+                }\r
+                past{\r
+                    one{"hace {0} LU"}\r
+                    other{"hace {0} LU"}\r
+                }\r
+            }\r
+        }\r
         mon-short{\r
             relativeTime{\r
                 future{\r
                     one{"dentro de {0} lun."}\r
                 }\r
+                past{\r
+                    one{"hace {0} lun."}\r
+                    other{"hace {0} lun."}\r
+                }\r
             }\r
         }\r
         month{\r
@@ -605,6 +619,10 @@ es_MX{
                 future{\r
                     one{"dentro de {0} SA"}\r
                 }\r
+                past{\r
+                    one{"hace {0} SA"}\r
+                    other{"hace {0} SA"}\r
+                }\r
             }\r
         }\r
         second-narrow{\r
@@ -629,12 +647,22 @@ es_MX{
                 "0"{"este domingo"}\r
                 "1"{"el domingo próximo"}\r
             }\r
+            relativeTime{\r
+                future{\r
+                    one{"dentro de {0} domingo"}\r
+                    other{"dentro de {0} domingos"}\r
+                }\r
+            }\r
         }\r
         sun-narrow{\r
             relativeTime{\r
                 future{\r
                     other{"dentro de {0} DO"}\r
                 }\r
+                past{\r
+                    one{"hace {0} DO"}\r
+                    other{"hace {0} DO"}\r
+                }\r
             }\r
         }\r
         thu{\r
@@ -686,6 +714,10 @@ es_MX{
                     one{"dentro de {0} MI"}\r
                     other{"dentro de {0} MI"}\r
                 }\r
+                past{\r
+                    one{"hace {0} MI"}\r
+                    other{"hace {0} MI"}\r
+                }\r
             }\r
         }\r
         wed-short{\r
@@ -699,6 +731,10 @@ es_MX{
                     one{"dentro de {0} mié."}\r
                     other{"dentro de {0} mié."}\r
                 }\r
+                past{\r
+                    one{"hace {0} mié."}\r
+                    other{"hace {0} mié."}\r
+                }\r
             }\r
         }\r
         week{\r
@@ -716,6 +752,12 @@ es_MX{
                 }\r
             }\r
         }\r
+        weekOfMonth-narrow{\r
+            dn{"sem. de m"}\r
+        }\r
+        weekOfMonth-short{\r
+            dn{"sem. de m"}\r
+        }\r
         year{\r
             relative{\r
                 "-1"{"el año pasado"}\r
@@ -745,6 +787,7 @@ es_MX{
         }\r
     }\r
     measurementSystemNames{\r
+        UK{"imperial"}\r
         US{"estadounidense"}\r
     }\r
 }\r
index eb563f6..322f577 100644 (file)
@@ -13,7 +13,7 @@ es_PY{
             }\r
         }\r
     }\r
-    Version{"2.1.38.39"}\r
+    Version{"2.1.43.65"}\r
     calendar{\r
         gregorian{\r
             AmPmMarkers{\r
index 36eb334..170aa88 100644 (file)
@@ -7,6 +7,18 @@ es_US{
         latn{\r
             patternsLong{\r
                 decimalFormat{\r
+                    1000000000{\r
+                        one{"0 billón"}\r
+                        other{"0 billones"}\r
+                    }\r
+                    10000000000{\r
+                        one{"00 billones"}\r
+                        other{"00 billones"}\r
+                    }\r
+                    100000000000{\r
+                        one{"000 billones"}\r
+                        other{"000 billones"}\r
+                    }\r
                     1000000000000{\r
                         one{"0 trillón"}\r
                         other{"0 trillones"}\r
@@ -51,11 +63,31 @@ es_US{
                         one{"0000 M ¤"}\r
                         other{"0000 M ¤"}\r
                     }\r
+                    10000000000{\r
+                        one{"¤00 B"}\r
+                        other{"¤00 B"}\r
+                    }\r
+                    100000000000{\r
+                        one{"¤000 B"}\r
+                        other{"¤000 B"}\r
+                    }\r
+                    1000000000000{\r
+                        one{"¤0 T"}\r
+                        other{"¤0 T"}\r
+                    }\r
+                    10000000000000{\r
+                        one{"¤00 T"}\r
+                        other{"¤00 T"}\r
+                    }\r
+                    100000000000000{\r
+                        one{"¤000 T"}\r
+                        other{"¤000 T"}\r
+                    }\r
                 }\r
                 decimalFormat{\r
                     1000{\r
-                        one{"0"}\r
-                        other{"0"}\r
+                        one{"0 K"}\r
+                        other{"0 K"}\r
                     }\r
                     10000{\r
                         one{"00 K"}\r
@@ -65,6 +97,18 @@ es_US{
                         one{"000 K"}\r
                         other{"000 K"}\r
                     }\r
+                    1000000000{\r
+                        one{"0 B"}\r
+                        other{"0 B"}\r
+                    }\r
+                    10000000000{\r
+                        one{"00 B"}\r
+                        other{"00 B"}\r
+                    }\r
+                    100000000000{\r
+                        one{"000 B"}\r
+                        other{"000 B"}\r
+                    }\r
                     1000000000000{\r
                         one{"0 T"}\r
                         other{"0 T"}\r
@@ -81,7 +125,7 @@ es_US{
             }\r
         }\r
     }\r
-    Version{"2.1.38.73"}\r
+    Version{"2.1.43.65"}\r
     calendar{\r
         generic{\r
             DateTimePatterns{\r
@@ -105,6 +149,8 @@ es_US{
                 MMMEd{"E d MMM"}\r
                 MMMMd{"d 'de' MMM"}\r
                 MMMd{"d MMM"}\r
+                yyyyMEd{"E, d/M/y GGGGG"}\r
+                yyyyMMM{"MMM y G"}\r
             }\r
             intervalFormats{\r
                 Md{\r
@@ -145,7 +191,7 @@ es_US{
                 "EEEE, d 'de' MMMM 'de' y",\r
                 "d 'de' MMMM 'de' y",\r
                 "d MMM y",\r
-                "d/M/yy",\r
+                "d/M/y",\r
                 "{1} {0}",\r
                 "{1}, {0}",\r
                 "{1}, {0}",\r
@@ -224,6 +270,7 @@ es_US{
                 }\r
                 MEd{\r
                     M{"E, d/M – E, d/M"}\r
+                    d{"E, d/M – E, d/M"}\r
                 }\r
                 MMMEd{\r
                     M{"E d 'de' MMM – E d 'de' MMM"}\r
@@ -261,35 +308,44 @@ es_US{
                     d{"d–d 'de' MMM 'de' y"}\r
                 }\r
             }\r
+            quarters{\r
+                format{\r
+                    wide{\r
+                        "1.er trimestre",\r
+                        "2.º trimestre",\r
+                        "3.er trimestre",\r
+                        "4.º trimestre",\r
+                    }\r
+                }\r
+                stand-alone{\r
+                    wide{\r
+                        "1.er trimestre",\r
+                        "2.º trimestre",\r
+                        "3.er trimestre",\r
+                        "4.º trimestre",\r
+                    }\r
+                }\r
+            }\r
         }\r
     }\r
     characterLabel{\r
-        animal{"animal"}\r
-        body{"cuerpo"}\r
-        building{"edificio"}\r
+        arrows{"Flechas"}\r
         female{"mujer"}\r
-        flag{"bandera"}\r
         format_whitespace{"Formato y espacio duro"}\r
-        heart{"corazón"}\r
         keycap{"tecla"}\r
         letterlike_symbols{"Símbolos con letras"}\r
         limited_use{"Uso limitado"}\r
         male{"hombre"}\r
         modern_scripts{"Sistemas de escritura modernos"}\r
-        nature{"naturaleza"}\r
+        nonspacing{"Sin espaciado"}\r
         other{"Otros"}\r
-        person{"persona"}\r
         phonetic_alphabet{"Alfabeto fonético"}\r
-        place{"lugar"}\r
-        plant{"planta"}\r
         sign_standard_symbols{"Símbolos de señales/estándar"}\r
         smiley{"cara sonriente"}\r
         south_asian_scripts{"Sistemas de escritura de Asia Meridional"}\r
         southeast_asian_scripts{"Sistemas de escritura de Asia Sudoriental"}\r
-        sport{"deporte"}\r
         symbols{"Símbolos"}\r
         tone_marks{"Marcas tonales"}\r
-        travel{"viaje"}\r
         travel_places{"Viajes y destinos"}\r
         variant_forms{"Variantes"}\r
         weather{"tiempo"}\r
@@ -306,6 +362,7 @@ es_US{
         day{\r
             relative{\r
                 "-1"{"ayer"}\r
+                "-2"{"anteayer"}\r
                 "0"{"hoy"}\r
                 "1"{"mañana"}\r
                 "2"{"pasado mañana"}\r
@@ -329,21 +386,59 @@ es_US{
         fri{\r
             relativeTime{\r
                 future{\r
+                    one{"dentro de {0} viernes"}\r
                     other{"dentro de {0} viernes"}\r
                 }\r
             }\r
         }\r
+        fri-narrow{\r
+            relativeTime{\r
+                past{\r
+                    one{"hace {0} VI"}\r
+                    other{"hace {0} VI"}\r
+                }\r
+            }\r
+        }\r
         fri-short{\r
             relativeTime{\r
                 future{\r
+                    one{"dentro de {0} vie."}\r
                     other{"dentro de {0} vie."}\r
                 }\r
             }\r
         }\r
+        mon{\r
+            relativeTime{\r
+                future{\r
+                    one{"dentro de {0} lunes"}\r
+                    other{"dentro de {0} lunes"}\r
+                }\r
+                past{\r
+                    one{"hace {0} lunes"}\r
+                }\r
+            }\r
+        }\r
+        mon-narrow{\r
+            relativeTime{\r
+                future{\r
+                    one{"dentro de {0} LU"}\r
+                    other{"dentro de {0} LU"}\r
+                }\r
+                past{\r
+                    one{"hace {0} LU"}\r
+                    other{"hace {0} LU"}\r
+                }\r
+            }\r
+        }\r
         mon-short{\r
             relativeTime{\r
                 future{\r
                     one{"dentro de {0} lun."}\r
+                    other{"dentro de {0} lun."}\r
+                }\r
+                past{\r
+                    one{"hace {0} lun."}\r
+                    other{"hace {0} lun."}\r
                 }\r
             }\r
         }\r
@@ -354,30 +449,57 @@ es_US{
                 "1"{"el mes próximo"}\r
             }\r
         }\r
+        sat{\r
+            relativeTime{\r
+                future{\r
+                    one{"dentro de {0} sábado"}\r
+                    other{"dentro de {0} sábados"}\r
+                }\r
+            }\r
+        }\r
         sat-narrow{\r
             relativeTime{\r
                 future{\r
                     one{"dentro de {0} SA"}\r
                 }\r
+                past{\r
+                    one{"hace {0} SA"}\r
+                    other{"hace {0} SA"}\r
+                }\r
+            }\r
+        }\r
+        sun{\r
+            relativeTime{\r
+                future{\r
+                    one{"dentro de {0} domingo"}\r
+                    other{"dentro de {0} domingos"}\r
+                }\r
             }\r
         }\r
         sun-narrow{\r
             relativeTime{\r
                 future{\r
+                    one{"dentro de {0} DO"}\r
                     other{"dentro de {0} DO"}\r
                 }\r
+                past{\r
+                    one{"hace {0} DO"}\r
+                    other{"hace {0} DO"}\r
+                }\r
             }\r
         }\r
         thu{\r
             relativeTime{\r
                 future{\r
                     one{"dentro de {0} jueves"}\r
+                    other{"dentro de {0} jueves"}\r
                 }\r
             }\r
         }\r
         thu-narrow{\r
             relativeTime{\r
                 future{\r
+                    one{"dentro de {0} JU"}\r
                     other{"dentro de {0} JU"}\r
                 }\r
             }\r
@@ -393,6 +515,36 @@ es_US{
             relativeTime{\r
                 future{\r
                     one{"dentro de {0} miércoles"}\r
+                    other{"dentro de {0} miércoles"}\r
+                }\r
+            }\r
+        }\r
+        wed-narrow{\r
+            relativeTime{\r
+                future{\r
+                    one{"dentro de {0} MI"}\r
+                    other{"dentro de {0} MI"}\r
+                }\r
+                past{\r
+                    one{"hace {0} MI"}\r
+                    other{"hace {0} MI"}\r
+                }\r
+            }\r
+        }\r
+        wed-short{\r
+            relative{\r
+                "-1"{"el mie. pasado"}\r
+                "0"{"este mié."}\r
+                "1"{"el próximo mié."}\r
+            }\r
+            relativeTime{\r
+                future{\r
+                    one{"dentro de {0} mié."}\r
+                    other{"dentro de {0} mié."}\r
+                }\r
+                past{\r
+                    one{"hace {0} mié."}\r
+                    other{"hace {0} mié."}\r
                 }\r
             }\r
         }\r
@@ -403,6 +555,15 @@ es_US{
                 "1"{"la semana próxima"}\r
             }\r
         }\r
+        weekOfMonth-narrow{\r
+            dn{"sem. de m"}\r
+        }\r
+        weekOfMonth-short{\r
+            dn{"sem. de m"}\r
+        }\r
+        weekdayOfMonth{\r
+            dn{"día de la semana del mes"}\r
+        }\r
         weekdayOfMonth-narrow{\r
             dn{"día de sem. de mes"}\r
         }\r
index 35022c0..6826a59 100644 (file)
@@ -14,7 +14,7 @@ es_UY{
             }\r
         }\r
     }\r
-    Version{"2.1.38.39"}\r
+    Version{"2.1.44.79"}\r
     calendar{\r
         gregorian{\r
             AmPmMarkers{\r
index a5a2afe..7910b58 100644 (file)
@@ -13,7 +13,7 @@ es_VE{
             }\r
         }\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.41.45"}\r
     calendar{\r
         gregorian{\r
             AmPmMarkers{\r
index 83fb171..845a56d 100644 (file)
@@ -19,7 +19,9 @@ et{
         default{"latn"}\r
         latn{\r
             miscPatterns{\r
-                atLeast{"⩾{0}"}\r
+                approximately{"~ {0}"}\r
+                atLeast{"≥{0}"}\r
+                atMost{"≤ {0}"}\r
                 range{"{0}‒{1}"}\r
             }\r
             patterns{\r
@@ -210,7 +212,7 @@ et{
         minimumGroupingDigits{"2"}\r
         native{"latn"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.91"}\r
     calendar{\r
         buddhist{\r
             eras{\r
@@ -1862,4 +1864,36 @@ et{
         US{"USA mõõdustik"}\r
         metric{"meetermõõdustik"}\r
     }\r
+    parse{\r
+        date{\r
+            lenient{\r
+                "[\\--/]",\r
+                "[\\:∶]",\r
+            }\r
+        }\r
+        general{\r
+            lenient{\r
+                "[.․。︒﹒.。]",\r
+                "['ʼ՚᾽᾿’']",\r
+                "[%٪﹪%]",\r
+                "[؉‰]",\r
+                "[\$﹩$$]",\r
+                "[£₤]",\r
+                "[¥¥]",\r
+                "[₩₩]",\r
+                "[₨₹{Rp}{Rs}]",\r
+            }\r
+        }\r
+        number{\r
+            lenient{\r
+                "[\\-‒⁻₋−➖﹣-]",\r
+                "[,،٫、︐︑﹐﹑,、]",\r
+                "[+⁺₊➕﬩﹢+]",\r
+            }\r
+            stricter{\r
+                "[,٫︐﹐,]",\r
+                "[.․﹒.。]",\r
+            }\r
+        }\r
+    }\r
 }\r
index 6a17641..c54d7ce 100644 (file)
@@ -22,7 +22,9 @@ eu{
         default{"latn"}\r
         latn{\r
             miscPatterns{\r
+                approximately{"~{0}"}\r
                 atLeast{"{0}+"}\r
+                atMost{"≤{0}"}\r
                 range{"{0}-{1}"}\r
             }\r
             patterns{\r
@@ -213,7 +215,7 @@ eu{
         minimumGroupingDigits{"1"}\r
         native{"latn"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.65"}\r
     calendar{\r
         buddhist{\r
             eras{\r
@@ -407,7 +409,7 @@ eu{
                 "HH:mm",\r
                 "y('e')'ko' MMMM'ren' d('a'), EEEE",\r
                 "y('e')'ko' MMMM'ren' d('a')",\r
-                "y MMM d",\r
+                "y('e')'ko' MMM d('a')",\r
                 "yy/M/d",\r
                 "{1} {0}",\r
                 "{1} {0}",\r
@@ -542,13 +544,13 @@ eu{
                         "lr.",\r
                     }\r
                     wide{\r
-                        "Igandea",\r
-                        "Astelehena",\r
-                        "Asteartea",\r
-                        "Asteazkena",\r
-                        "Osteguna",\r
-                        "Ostirala",\r
-                        "Larunbata",\r
+                        "igandea",\r
+                        "astelehena",\r
+                        "asteartea",\r
+                        "asteazkena",\r
+                        "osteguna",\r
+                        "ostirala",\r
+                        "larunbata",\r
                     }\r
                 }\r
             }\r
@@ -807,17 +809,17 @@ eu{
                     }\r
                     wide{\r
                         "urtarrila",\r
-                        "Otsaila",\r
-                        "Martxoa",\r
-                        "Apirila",\r
-                        "Maiatza",\r
-                        "Ekaina",\r
-                        "Uztaila",\r
-                        "Abuztua",\r
-                        "Iraila",\r
-                        "Urria",\r
-                        "Azaroa",\r
-                        "Abendua",\r
+                        "otsaila",\r
+                        "martxoa",\r
+                        "apirila",\r
+                        "maiatza",\r
+                        "ekaina",\r
+                        "uztaila",\r
+                        "abuztua",\r
+                        "iraila",\r
+                        "urria",\r
+                        "azaroa",\r
+                        "abendua",\r
                     }\r
                 }\r
             }\r
@@ -1066,12 +1068,12 @@ eu{
             }\r
             relativeTime{\r
                 future{\r
-                    one{"{0} ostiral barru"}\r
-                    other{"{0} ostiral barru"}\r
+                    one{"{0} or. barru"}\r
+                    other{"{0} or. barru"}\r
                 }\r
                 past{\r
-                    one{"Duela {0} ostiral"}\r
-                    other{"Duela {0} ostiral"}\r
+                    one{"Duela {0} or."}\r
+                    other{"Duela {0} or."}\r
                 }\r
             }\r
         }\r
@@ -1083,12 +1085,12 @@ eu{
             }\r
             relativeTime{\r
                 future{\r
-                    one{"{0} ostiral barru"}\r
-                    other{"{0} ostiral barru"}\r
+                    one{"{0} or. barru"}\r
+                    other{"{0} or. barru"}\r
                 }\r
                 past{\r
-                    one{"Duela {0} ostiral"}\r
-                    other{"Duela {0} ostiral"}\r
+                    one{"Duela {0} or."}\r
+                    other{"Duela {0} or."}\r
                 }\r
             }\r
         }\r
@@ -1218,12 +1220,12 @@ eu{
             }\r
             relativeTime{\r
                 future{\r
-                    one{"{0} astelehen barru"}\r
-                    other{"{0} astelehen barru"}\r
+                    one{"{0} al. barru"}\r
+                    other{"{0} al. barru"}\r
                 }\r
                 past{\r
-                    one{"Duela {0} astelehen"}\r
-                    other{"Duela {0} astelehen"}\r
+                    one{"Duela {0} al."}\r
+                    other{"Duela {0} al."}\r
                 }\r
             }\r
         }\r
@@ -1340,12 +1342,12 @@ eu{
             }\r
             relativeTime{\r
                 future{\r
-                    one{"{0} larunbat barru"}\r
-                    other{"{0} larunbat barru"}\r
+                    one{"{0} lr. barru"}\r
+                    other{"{0} lr. barru"}\r
                 }\r
                 past{\r
-                    one{"Duela {0} larunbat"}\r
-                    other{"Duela {0} larunbat"}\r
+                    one{"Duela {0} lr."}\r
+                    other{"Duela {0} lr."}\r
                 }\r
             }\r
         }\r
@@ -1357,12 +1359,12 @@ eu{
             }\r
             relativeTime{\r
                 future{\r
-                    one{"{0} larunbat barru"}\r
-                    other{"{0} larunbat barru"}\r
+                    one{"{0} lr. barru"}\r
+                    other{"{0} lr. barru"}\r
                 }\r
                 past{\r
-                    one{"Duela {0} larunbat"}\r
-                    other{"Duela {0} larunbat"}\r
+                    one{"Duela {0} lr."}\r
+                    other{"Duela {0} lr."}\r
                 }\r
             }\r
         }\r
@@ -1433,12 +1435,12 @@ eu{
             }\r
             relativeTime{\r
                 future{\r
-                    one{"{0} igande barru"}\r
-                    other{"{0} igande barru"}\r
+                    one{"{0} ig. barru"}\r
+                    other{"{0} ig. barru"}\r
                 }\r
                 past{\r
-                    one{"Duela {0} igande"}\r
-                    other{"Duela {0} igande"}\r
+                    one{"Duela {0} ig."}\r
+                    other{"Duela {0} ig."}\r
                 }\r
             }\r
         }\r
@@ -1450,12 +1452,12 @@ eu{
             }\r
             relativeTime{\r
                 future{\r
-                    one{"{0} igande barru"}\r
-                    other{"{0} igande barru"}\r
+                    one{"{0} ig. barru"}\r
+                    other{"{0} ig. barru"}\r
                 }\r
                 past{\r
-                    one{"Duela {0} igande"}\r
-                    other{"Duela {0} igande"}\r
+                    one{"Duela {0} ig."}\r
+                    other{"Duela {0} ig."}\r
                 }\r
             }\r
         }\r
@@ -1467,12 +1469,12 @@ eu{
             }\r
             relativeTime{\r
                 future{\r
-                    one{"{0} ostegun barru"}\r
-                    other{"{0} ostegun barru"}\r
+                    one{"{0} og. barru"}\r
+                    other{"{0} og. barru"}\r
                 }\r
                 past{\r
-                    one{"Duela {0} ostegun"}\r
-                    other{"Duela {0} ostegun"}\r
+                    one{"Duela {0} og."}\r
+                    other{"Duela {0} og."}\r
                 }\r
             }\r
         }\r
@@ -1484,12 +1486,12 @@ eu{
             }\r
             relativeTime{\r
                 future{\r
-                    one{"{0} ostegun barru"}\r
-                    other{"{0} ostegun barru"}\r
+                    one{"{0} og. barru"}\r
+                    other{"{0} og. barru"}\r
                 }\r
                 past{\r
-                    one{"Duela {0} ostegun"}\r
-                    other{"Duela {0} ostegun"}\r
+                    one{"Duela {0} og."}\r
+                    other{"Duela {0} og."}\r
                 }\r
             }\r
         }\r
@@ -1501,12 +1503,12 @@ eu{
             }\r
             relativeTime{\r
                 future{\r
-                    one{"{0} ostegun barru"}\r
-                    other{"{0} ostegun barru"}\r
+                    one{"{0} og. barru"}\r
+                    other{"{0} og. barru"}\r
                 }\r
                 past{\r
-                    one{"Duela {0} ostegun"}\r
-                    other{"Duela {0} ostegun"}\r
+                    one{"Duela {0} og."}\r
+                    other{"Duela {0} og."}\r
                 }\r
             }\r
         }\r
@@ -1552,12 +1554,12 @@ eu{
             }\r
             relativeTime{\r
                 future{\r
-                    one{"{0} astearte barru"}\r
-                    other{"{0} astearte barru"}\r
+                    one{"{0} ar. barru"}\r
+                    other{"{0} ar. barru"}\r
                 }\r
                 past{\r
-                    one{"Duela {0} astearte"}\r
-                    other{"Duela {0} astearte"}\r
+                    one{"Duela {0} ar."}\r
+                    other{"Duela {0} ar."}\r
                 }\r
             }\r
         }\r
@@ -1586,12 +1588,12 @@ eu{
             }\r
             relativeTime{\r
                 future{\r
-                    one{"{0} asteazken barru"}\r
-                    other{"{0} asteazken barru"}\r
+                    one{"{0} az. barru"}\r
+                    other{"{0} az. barru"}\r
                 }\r
                 past{\r
-                    one{"Duela {0} asteazken"}\r
-                    other{"Duela {0} asteazken"}\r
+                    one{"Duela {0} az."}\r
+                    other{"Duela {0} az."}\r
                 }\r
             }\r
         }\r
@@ -1603,12 +1605,12 @@ eu{
             }\r
             relativeTime{\r
                 future{\r
-                    one{"{0} asteazken barru"}\r
-                    other{"{0} asteazken barru"}\r
+                    one{"{0} az. barru"}\r
+                    other{"{0} az. barru"}\r
                 }\r
                 past{\r
-                    one{"Duela {0} asteazken"}\r
-                    other{"Duela {0} asteazken"}\r
+                    one{"Duela {0} az."}\r
+                    other{"Duela {0} az."}\r
                 }\r
             }\r
         }\r
index dba713c..1169f21 100644 (file)
@@ -63,7 +63,9 @@ fa{
         default{"arabext"}\r
         latn{\r
             miscPatterns{\r
+                approximately{"~{0}"}\r
                 atLeast{"‎{0}+‎"}\r
+                atMost{"≤{0}"}\r
                 range{"{0}–{1}"}\r
             }\r
             patterns{\r
@@ -248,13 +250,13 @@ fa{
             }\r
             plural{\r
                 one{"او {0} فیلم در هفته می‌بیند که کمدی است."}\r
-                other{"او {0} فیلم در هفته می‌بیند که کمدی هستند."}\r
+                other{"او {0} فیلم در هفته می‌بیند که کمدی‌اند."}\r
             }\r
         }\r
         minimumGroupingDigits{"1"}\r
         native{"arabext"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.65"}\r
     calendar{\r
         buddhist{\r
             eras{\r
@@ -1674,7 +1676,7 @@ fa{
         hanzi_traditional{"هانزی (سنتی)"}\r
         heart{"قلب"}\r
         historic_scripts{"دبیره‌های تاریخی"}\r
-        ideographic_desc_characters{"نویسه‌های توصیفی اندیش‌نگاری"}\r
+        ideographic_desc_characters{"نویسه‌های توصیفی اندیشه‌نگاری"}\r
         japanese_kana{"کانای ژاپنی"}\r
         kanbun{"کانبوم"}\r
         kanji{"کانجی"}\r
@@ -2630,8 +2632,13 @@ fa{
         general{\r
             lenient{\r
                 "[.․。︒﹒.。]",\r
+                "['ʼ՚᾽᾿’']",\r
+                "[%٪﹪%]",\r
+                "[؉‰]",\r
                 "[\$﹩$$]",\r
                 "[£₤]",\r
+                "[¥¥]",\r
+                "[₩₩]",\r
                 "[₨₹{Rp}{Rs}]",\r
             }\r
         }\r
index 2e598e2..eb2e15e 100644 (file)
@@ -18,7 +18,7 @@ fa_AF{
             }\r
         }\r
     }\r
-    Version{"2.1.38.39"}\r
+    Version{"2.1.43.65"}\r
     calendar{\r
         gregorian{\r
             appendItems{\r
diff --git a/source/data/locales/ff_MR.txt b/source/data/locales/ff_MR.txt
deleted file mode 100644 (file)
index 0f5d4ba..0000000
+++ /dev/null
@@ -1,24 +0,0 @@
-// © 2016 and later: Unicode, Inc. and others.\r
-// License & terms of use: http://www.unicode.org/copyright.html#License\r
-ff_MR{\r
-    Version{"2.1.39.11"}\r
-    calendar{\r
-        gregorian{\r
-            DateTimePatterns{\r
-                "h:mm:ss a zzzz",\r
-                "h:mm:ss a z",\r
-                "h:mm:ss a",\r
-                "h:mm a",\r
-                "EEEE d MMMM y",\r
-                "d MMMM y",\r
-                "d MMM, y",\r
-                "d/M/y",\r
-                "{1} {0}",\r
-                "{1} {0}",\r
-                "{1} {0}",\r
-                "{1} {0}",\r
-                "{1} {0}",\r
-            }\r
-        }\r
-    }\r
-}\r
index a4f653e..31a4029 100644 (file)
@@ -23,7 +23,9 @@ fi{
         default{"latn"}\r
         latn{\r
             miscPatterns{\r
+                approximately{"~{0}"}\r
                 atLeast{"vähintään {0}"}\r
+                atMost{"≤{0}"}\r
                 range{"{0}–{1}"}\r
             }\r
             patterns{\r
@@ -214,7 +216,7 @@ fi{
         minimumGroupingDigits{"1"}\r
         native{"latn"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.91"}\r
     calendar{\r
         buddhist{\r
             DateTimePatterns{\r
@@ -492,7 +494,7 @@ fi{
                 Bhm{"h.mm B"}\r
                 Bhms{"h.mm.ss B"}\r
                 E{"ccc"}\r
-                EBhm{"E h.mm. B"}\r
+                EBhm{"E h.mm B"}\r
                 EBhms{"E h.mm.ss B"}\r
                 EHm{"E HH.mm"}\r
                 EHms{"E HH.mm.ss"}\r
@@ -677,6 +679,8 @@ fi{
                 Gy{"y G"}\r
                 GyMMM{"LLL y G"}\r
                 GyMMMEd{"E d. MMM y G"}\r
+                GyMMMMEd{"E d. MMMM y G"}\r
+                GyMMMMd{"d. MMMM y G"}\r
                 GyMMMd{"d. MMM y G"}\r
                 H{"H"}\r
                 Hm{"H.mm"}\r
@@ -687,6 +691,7 @@ fi{
                 MEd{"E d.M."}\r
                 MMM{"LLL"}\r
                 MMMEd{"ccc d. MMM"}\r
+                MMMMEd{"ccc d. MMMM"}\r
                 MMMMW{\r
                     one{"LLLL'n' W. 'viikko'"}\r
                     other{"LLLL'n' W. 'viikko'"}\r
@@ -708,7 +713,9 @@ fi{
                 yMMM{"LLL y"}\r
                 yMMMEd{"E d. MMM y"}\r
                 yMMMM{"LLLL y"}\r
+                yMMMMEd{"E d. MMMM y"}\r
                 yMMMMccccd{"cccc d. MMMM y"}\r
+                yMMMMd{"d. MMMM y"}\r
                 yMMMd{"d. MMM y"}\r
                 yMd{"d.M.y"}\r
                 yQQQ{"QQQ y"}\r
@@ -920,6 +927,14 @@ fi{
                 MMMM{\r
                     M{"LLL–LLLL"}\r
                 }\r
+                MMMMEd{\r
+                    M{"E d. MMMM – E d. MMMM"}\r
+                    d{"E d. – E d. MMMM"}\r
+                }\r
+                MMMMd{\r
+                    M{"d. MMMM – d. MMMM"}\r
+                    d{"d.–d. MMMM"}\r
+                }\r
                 MMMd{\r
                     M{"d. MMMM – d. MMMM"}\r
                     d{"d.–d. MMMM"}\r
@@ -975,6 +990,16 @@ fi{
                     M{"LLL–LLLL y"}\r
                     y{"LLLL y – LLLL y"}\r
                 }\r
+                yMMMMEd{\r
+                    M{"E d. MMMM – E d. MMMM y"}\r
+                    d{"E d. – E d. MMMM y"}\r
+                    y{"E d. MMMM y – E d. MMMM y"}\r
+                }\r
+                yMMMMd{\r
+                    M{"d. MMMM – d. MMMM y"}\r
+                    d{"d.–d. MMMM y"}\r
+                    y{"d. MMMM y – d. MMMM y"}\r
+                }\r
                 yMMMd{\r
                     M{"d. MMMM – d. MMMM y"}\r
                     d{"d.–d. MMMM y"}\r
@@ -2455,8 +2480,13 @@ fi{
         general{\r
             lenient{\r
                 "[.․。︒﹒.。]",\r
+                "['ʼ՚᾽᾿’']",\r
+                "[%٪﹪%]",\r
+                "[؉‰]",\r
                 "[\$﹩$$]",\r
                 "[£₤]",\r
+                "[¥¥]",\r
+                "[₩₩]",\r
                 "[₨₹{Rp}{Rs}]",\r
             }\r
         }\r
index aed59a8..77ae193 100644 (file)
@@ -19,7 +19,9 @@ fil{
         default{"latn"}\r
         latn{\r
             miscPatterns{\r
+                approximately{"~{0}"}\r
                 atLeast{"{0}+"}\r
+                atMost{"≤{0}"}\r
                 range{"{0}-{1}"}\r
             }\r
             patterns{\r
@@ -211,7 +213,7 @@ fil{
         minimumGroupingDigits{"1"}\r
         native{"latn"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.91"}\r
     calendar{\r
         buddhist{\r
             DateTimePatterns{\r
@@ -2650,23 +2652,23 @@ fil{
         building{"gusali"}\r
         bullets_stars{"bullet o bituin"}\r
         consonantal_jamo{"consonantal jamo"}\r
-        currency_symbols{"simbolo ng currency"}\r
+        currency_symbols{"simbolo ng pera"}\r
         dash_connector{"dash o connector"}\r
         digits{"digit"}\r
         dingbats{"dingbat"}\r
-        divination_symbols{"divination symbol"}\r
+        divination_symbols{"simbolo ng paghula"}\r
         downwards_arrows{"pababang arrow"}\r
         downwards_upwards_arrows{"pababa at pataas na arrow"}\r
-        east_asian_scripts{"Script ng Silangang-Asya"}\r
+        east_asian_scripts{"Script ng Silangang Asya"}\r
         emoji{"Emoji"}\r
-        european_scripts{"Mga Script sa Europa"}\r
+        european_scripts{"Script sa Europa"}\r
         female{"babae"}\r
         flag{"bandila"}\r
         flags{"mga bandila"}\r
         food_drink{"pagkain at inumin"}\r
         format{"format"}\r
-        format_whitespace{"format & whitespace"}\r
-        full_width_form_variant{"Mga Baryanteng Nasa Anyo na Buo ang Lapad"}\r
+        format_whitespace{"format at whitespace"}\r
+        full_width_form_variant{"full-width variant"}\r
         geometric_shapes{"geometrikong hugis"}\r
         half_width_form_variant{"half-width variant"}\r
         han_characters{"Han character"}\r
@@ -2689,7 +2691,7 @@ fil{
         math_symbols{"simbolo na pangmatematika"}\r
         middle_eastern_scripts{"Script sa Gitnang-silangan"}\r
         miscellaneous{"sari-sari"}\r
-        modern_scripts{"modern script"}\r
+        modern_scripts{"modernong script"}\r
         modifier{"modifier"}\r
         musical_symbols{"simbolo ng musika"}\r
         nature{"kalikasan"}\r
@@ -2699,7 +2701,7 @@ fil{
         other{"Iba pa"}\r
         paired{"nakapares"}\r
         person{"tao"}\r
-        phonetic_alphabet{"Ponetikong Alpabeto"}\r
+        phonetic_alphabet{"ponetikong alpabeto"}\r
         pictographs{"pictograph"}\r
         place{"lugar"}\r
         plant{"halaman"}\r
@@ -2715,13 +2717,13 @@ fil{
         sport{"sport"}\r
         symbols{"simbolo"}\r
         technical_symbols{"teknikal na simbolo"}\r
-        tone_marks{"marka ng tone"}\r
+        tone_marks{"marka ng tono"}\r
         travel{"paglalakbay"}\r
         travel_places{"paglalakbay o lugar"}\r
         upwards_arrows{"mga pataas na arrow"}\r
         variant_forms{"baryante"}\r
         vocalic_jamo{"vocalic jamo"}\r
-        weather{"lagay ng panahon"}\r
+        weather{"panahon"}\r
         western_asian_scripts{"Script sa Kanlurang Asya"}\r
         whitespace{"whitespace"}\r
     }\r
@@ -3479,6 +3481,15 @@ fil{
         weekday{\r
             dn{"araw ng linggo"}\r
         }\r
+        weekday-narrow{\r
+            dn{"araw ng linggo"}\r
+        }\r
+        weekday-short{\r
+            dn{"araw ng linggo"}\r
+        }\r
+        weekdayOfMonth{\r
+            dn{"karaniwang araw ng buwan"}\r
+        }\r
         weekdayOfMonth-narrow{\r
             dn{"karaniwang araw ng buwan"}\r
         }\r
@@ -3542,6 +3553,12 @@ fil{
         zone{\r
             dn{"time zone"}\r
         }\r
+        zone-narrow{\r
+            dn{"zone"}\r
+        }\r
+        zone-short{\r
+            dn{"zone"}\r
+        }\r
     }\r
     listPattern{\r
         or{\r
@@ -3586,4 +3603,36 @@ fil{
         US{"US"}\r
         metric{"Metriko"}\r
     }\r
+    parse{\r
+        date{\r
+            lenient{\r
+                "[\\--/]",\r
+                "[\\:∶]",\r
+            }\r
+        }\r
+        general{\r
+            lenient{\r
+                "[.․。︒﹒.。]",\r
+                "['ʼ՚᾽᾿’']",\r
+                "[%٪﹪%]",\r
+                "[؉‰]",\r
+                "[\$﹩$$]",\r
+                "[£₤]",\r
+                "[¥¥]",\r
+                "[₩₩]",\r
+                "[₨₹{Rp}{Rs}]",\r
+            }\r
+        }\r
+        number{\r
+            lenient{\r
+                "[\\-‒⁻₋−➖﹣-]",\r
+                "[,،٫、︐︑﹐﹑,、]",\r
+                "[+⁺₊➕﬩﹢+]",\r
+            }\r
+            stricter{\r
+                "[,٫︐﹐,]",\r
+                "[.․﹒.。]",\r
+            }\r
+        }\r
+    }\r
 }\r
index 4dad0e4..2093eaf 100644 (file)
@@ -210,7 +210,7 @@ fo{
         minimumGroupingDigits{"1"}\r
         native{"latn"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.41.34"}\r
     calendar{\r
         generic{\r
             DateTimePatterns{\r
@@ -1729,8 +1729,13 @@ fo{
         general{\r
             lenient{\r
                 "[.․。︒﹒.。]",\r
+                "['ʼ՚᾽᾿’']",\r
+                "[%٪﹪%]",\r
+                "[؉‰]",\r
                 "[\$﹩$$]",\r
                 "[£₤]",\r
+                "[¥¥]",\r
+                "[₩₩]",\r
                 "[₨₹{Rp}{Rs}]",\r
             }\r
         }\r
index 204734d..379486c 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 fr{\r
-    AuxExemplarCharacters{"[á Ã¥ Ã¤ Ã£ Ä\81 Ä\93 Ã­ Ã¬ Ä« Ã± Ã³ Ã² Ã¶ Ã¸ ú ǔ]"}\r
+    AuxExemplarCharacters{"[á Ã¥ Ã¤ Ã£ Ä\81 Ä\87 Ä\93 Ã­ Ã¬ Ä« Ä³ Ã± Ã³ Ã² Ã¶ Ãµ Ã¸ Å\99 Å¡ Å¿ Ã\9f ú ǔ]"}\r
     Ellipsis{\r
         final{"{0}…"}\r
         initial{"… {0}"}\r
@@ -15,14 +15,21 @@ fr{
         " x y ÿ z]"\r
     }\r
     ExemplarCharactersIndex{"[A B C D E F G H I J K L M N O P Q R S T U V W X Y Z]"}\r
-    ExemplarCharactersNumbers{"[  \\- , % ‰ + 0 1 2 3 4 5 6 7 8 9]"}\r
+    ExemplarCharactersNumbers{"[  \\- , . % ‰ + − 0 1 2 ² 3 ³ 4 5 6 7 8 9 ᵈ ᵉ ʳ ˢ]"}\r
     ExemplarCharactersPunctuation{"[\\- ‐ – — , ; \\: ! ? . … ’ \u0022 “ ” « » ( ) \\[ \\] § @ * / \\& # † ‡]"}\r
     MoreInformation{"?"}\r
     NumberElements{\r
+        arab{\r
+            symbols{\r
+                plusSign{"‏+"}\r
+            }\r
+        }\r
         default{"latn"}\r
         latn{\r
             miscPatterns{\r
-                atLeast{"⩾{0}"}\r
+                approximately{"≈{0}"}\r
+                atLeast{"≥{0}"}\r
+                atMost{"≤{0}"}\r
                 range{"{0}–{1}"}\r
             }\r
             patterns{\r
@@ -189,7 +196,7 @@ fr{
             symbols{\r
                 decimal{","}\r
                 exponential{"E"}\r
-                group{" "}\r
+                group{""}\r
                 infinity{"∞"}\r
                 list{";"}\r
                 minusSign{"-"}\r
@@ -214,7 +221,7 @@ fr{
         minimumGroupingDigits{"1"}\r
         native{"latn"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.91"}\r
     calendar{\r
         buddhist{\r
             DateTimePatterns{\r
@@ -1839,14 +1846,14 @@ fr{
         activities{"activités"}\r
         african_scripts{"écritures africaines"}\r
         american_scripts{"écritures américaines"}\r
-        animal{"animal"}\r
+        animal{"animaux"}\r
         animals_nature{"animaux et nature"}\r
         arrows{"flèches"}\r
         body{"corps"}\r
-        box_drawing{"tracé de boîte"}\r
+        box_drawing{"filets"}\r
         braille{"écriture Braille"}\r
         building{"immeuble"}\r
-        bullets_stars{"puces / astérisques"}\r
+        bullets_stars{"étoiles et puces"}\r
         consonantal_jamo{"jamos consonnes"}\r
         currency_symbols{"symboles monétaires"}\r
         dash_connector{"tirets / connecteurs"}\r
@@ -1855,7 +1862,7 @@ fr{
         divination_symbols{"symboles divinatoires"}\r
         downwards_arrows{"flèches vers le bas"}\r
         downwards_upwards_arrows{"flèches vers le bas et le haut"}\r
-        east_asian_scripts{"écritures asiatiques orientales"}\r
+        east_asian_scripts{"écritures est-asiatiques"}\r
         emoji{"emojis"}\r
         european_scripts{"écritures européennes"}\r
         female{"féminin"}\r
@@ -1866,19 +1873,19 @@ fr{
         format_whitespace{"format et espacement"}\r
         full_width_form_variant{"variante de forme pleine-chasse"}\r
         geometric_shapes{"formes géométriques"}\r
-        half_width_form_variant{"variantes de forme en demi-largeur"}\r
+        half_width_form_variant{"variantes de forme demi-chasse"}\r
         han_characters{"caractères sinographiques"}\r
         han_radicals{"radicaux sinographiques"}\r
-        hanja{"sinogramme coréen hanja"}\r
-        hanzi_simplified{"sinogramme chinois simplifié"}\r
-        hanzi_traditional{"sinogramme chinois traditionnel"}\r
-        heart{"cœur"}\r
+        hanja{"sinogrammes coréens hanja"}\r
+        hanzi_simplified{"sinogrammes chinois simplifiés"}\r
+        hanzi_traditional{"sinogrammes chinois traditionnels"}\r
+        heart{"cœurs"}\r
         historic_scripts{"écritures historiques"}\r
         ideographic_desc_characters{"symboles de descript. sinographique"}\r
         japanese_kana{"syllabaire kana japonais"}\r
         kanbun{"kamboun"}\r
-        kanji{"sinogramme japonais kanji"}\r
-        keycap{"keycap"}\r
+        kanji{"sinogrammes japonais kanji"}\r
+        keycap{"touches"}\r
         leftwards_arrows{"flèches vers la gauche"}\r
         leftwards_rightwards_arrows{"flèches vers la gauche et la droite"}\r
         letterlike_symbols{"symboles de lettres"}\r
@@ -1894,33 +1901,33 @@ fr{
         nonspacing{"sans chasse"}\r
         numbers{"nombres"}\r
         objects{"objets"}\r
-        other{"autre"}\r
+        other{"autres"}\r
         paired{"en paire"}\r
-        person{"personne"}\r
+        person{"personnes"}\r
         phonetic_alphabet{"alphabet phonétique"}\r
         pictographs{"pictogrammes"}\r
-        place{"lieu"}\r
-        plant{"plante"}\r
+        place{"lieux"}\r
+        plant{"plantes"}\r
         punctuation{"ponctuation"}\r
         rightwards_arrows{"flèches vers la droite"}\r
-        sign_standard_symbols{"symboles de signe/norme"}\r
+        sign_standard_symbols{"signalisation"}\r
         small_form_variant{"petites variantes de forme"}\r
-        smiley{"smiley"}\r
+        smiley{"émoticône"}\r
         smileys_people{"émoticônes et personnes"}\r
-        south_asian_scripts{"écritures asiatiques du sud"}\r
-        southeast_asian_scripts{"écrtitures asiatiques du sud-est"}\r
+        south_asian_scripts{"écritures sud-asiatiques"}\r
+        southeast_asian_scripts{"écritures sud-est-asiatiques"}\r
         spacing{"avec chasse"}\r
         sport{"sport"}\r
         symbols{"symboles"}\r
         technical_symbols{"symboles techniques"}\r
-        tone_marks{"marques de ton"}\r
+        tone_marks{"marques tonales"}\r
         travel{"voyage"}\r
         travel_places{"voyage et lieux"}\r
         upwards_arrows{"flèches vers le haut"}\r
         variant_forms{"variantes de forme"}\r
         vocalic_jamo{"jamos voyelles"}\r
         weather{"météo"}\r
-        western_asian_scripts{"écritures asiatiques occidentales"}\r
+        western_asian_scripts{"écritures ouest-asiatiques"}\r
         whitespace{"espacement"}\r
     }\r
     contextTransforms{\r
@@ -1979,7 +1986,10 @@ fr{
         day-narrow{\r
             dn{"j"}\r
             relative{\r
+                "-1"{"hier"}\r
                 "-2"{"avant-hier"}\r
+                "0"{"aujourd’hui"}\r
+                "1"{"demain"}\r
                 "2"{"après-demain"}\r
             }\r
             relativeTime{\r
@@ -1996,7 +2006,10 @@ fr{
         day-short{\r
             dn{"j"}\r
             relative{\r
+                "-1"{"hier"}\r
                 "-2"{"avant-hier"}\r
+                "0"{"aujourd’hui"}\r
+                "1"{"demain"}\r
                 "2"{"après-demain"}\r
             }\r
             relativeTime{\r
@@ -2809,4 +2822,36 @@ fr{
         US{"américain"}\r
         metric{"métrique"}\r
     }\r
+    parse{\r
+        date{\r
+            lenient{\r
+                "[\\--/]",\r
+                "[\\:∶]",\r
+            }\r
+        }\r
+        general{\r
+            lenient{\r
+                "[.․。︒﹒.。]",\r
+                "['ʼ՚᾽᾿’']",\r
+                "[%٪﹪%]",\r
+                "[؉‰]",\r
+                "[\$﹩$$]",\r
+                "[£₤]",\r
+                "[¥¥]",\r
+                "[₩₩]",\r
+                "[₨₹{Rp}{Rs}]",\r
+            }\r
+        }\r
+        number{\r
+            lenient{\r
+                "[\\-‒⁻₋−➖﹣-]",\r
+                "[,،٫、︐︑﹐﹑,、]",\r
+                "[+⁺₊➕﬩﹢+]",\r
+            }\r
+            stricter{\r
+                "[,٫︐﹐,]",\r
+                "[.․﹒.。]",\r
+            }\r
+        }\r
+    }\r
 }\r
index 4bdd893..8da26c7 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 fr_BE{\r
-    Version{"2.1.38.39"}\r
+    Version{"2.1.43.65"}\r
     calendar{\r
         generic{\r
             DateTimePatterns{\r
index a45f0f4..1f349c0 100644 (file)
@@ -9,6 +9,23 @@ fr_CA{
                         one{"0 mille"}\r
                         other{"0 mille"}\r
                     }\r
+                    10000{\r
+                        other{"00 mille"}\r
+                    }\r
+                    100000{\r
+                        other{"000 mille"}\r
+                    }\r
+                    1000000{\r
+                        one{"0 million"}\r
+                        other{"0 millions"}\r
+                    }\r
+                    10000000{\r
+                        one{"00 million"}\r
+                        other{"00 millions"}\r
+                    }\r
+                    100000000{\r
+                        other{"000 millions"}\r
+                    }\r
                 }\r
             }\r
             patternsShort{\r
@@ -63,6 +80,26 @@ fr_CA{
                     }\r
                 }\r
                 decimalFormat{\r
+                    1000{\r
+                        one{"0 k"}\r
+                        other{"0 k"}\r
+                    }\r
+                    10000{\r
+                        other{"00 k"}\r
+                    }\r
+                    100000{\r
+                        other{"000 k"}\r
+                    }\r
+                    1000000{\r
+                        one{"0 M"}\r
+                        other{"0 M"}\r
+                    }\r
+                    10000000{\r
+                        other{"00 M"}\r
+                    }\r
+                    100000000{\r
+                        other{"000 M"}\r
+                    }\r
                     1000000000{\r
                         one{"0 G"}\r
                         other{"0 G"}\r
@@ -89,9 +126,12 @@ fr_CA{
                     }\r
                 }\r
             }\r
+            symbols{\r
+                group{" "}\r
+            }\r
         }\r
     }\r
-    Version{"2.1.38.73"}\r
+    Version{"2.1.43.65"}\r
     calendar{\r
         coptic{\r
             monthNames{\r
@@ -217,6 +257,7 @@ fr_CA{
             }\r
             availableFormats{\r
                 Bh{"h 'h' B"}\r
+                Bhm{"h 'h' mm B"}\r
                 Bhms{"h 'h' mm 'min' ss 's' B"}\r
                 EBhm{"E h 'h' mm B"}\r
                 EBhms{"E h 'h' mm 'min' ss 's' B"}\r
@@ -350,7 +391,6 @@ fr_CA{
                         am{"a.m."}\r
                         evening1{"soir"}\r
                         morning1{"mat."}\r
-                        night1{"nuit"}\r
                         pm{"p.m."}\r
                     }\r
                     narrow{\r
@@ -363,7 +403,6 @@ fr_CA{
                     }\r
                     wide{\r
                         am{"a.m."}\r
-                        night1{"nuit"}\r
                         pm{"p.m."}\r
                     }\r
                 }\r
@@ -483,6 +522,83 @@ fr_CA{
                 }\r
             }\r
         }\r
+        hebrew{\r
+            eras{\r
+                abbreviated{\r
+                    "AM",\r
+                }\r
+            }\r
+            monthNames{\r
+                format{\r
+                    abbreviated{\r
+                        "tis.",\r
+                        "hes.",\r
+                        "kis.",\r
+                        "téb.",\r
+                        "sché.",\r
+                        "ad.I",\r
+                        "adar",\r
+                        "nis.",\r
+                        "iyar",\r
+                        "siv.",\r
+                        "tam.",\r
+                        "av",\r
+                        "ell.",\r
+                        "ad.II",\r
+                    }\r
+                    narrow{\r
+                        "T",\r
+                        "H",\r
+                        "K",\r
+                        "T",\r
+                        "S",\r
+                        "A",\r
+                        "A",\r
+                        "N",\r
+                        "I",\r
+                        "S",\r
+                        "T",\r
+                        "A",\r
+                        "E",\r
+                        "A",\r
+                    }\r
+                }\r
+                stand-alone{\r
+                    abbreviated{\r
+                        "tis.",\r
+                        "hes.",\r
+                        "kis.",\r
+                        "téb.",\r
+                        "sché.",\r
+                        "ad.I",\r
+                        "adar",\r
+                        "nis.",\r
+                        "iyar",\r
+                        "siv.",\r
+                        "tam.",\r
+                        "av",\r
+                        "ell.",\r
+                        "ad.II",\r
+                    }\r
+                    narrow{\r
+                        "T",\r
+                        "H",\r
+                        "K",\r
+                        "T",\r
+                        "S",\r
+                        "A",\r
+                        "A",\r
+                        "N",\r
+                        "I",\r
+                        "S",\r
+                        "T",\r
+                        "A",\r
+                        "E",\r
+                        "A",\r
+                    }\r
+                }\r
+            }\r
+        }\r
         indian{\r
             eras{\r
                 wide{\r
@@ -636,7 +752,6 @@ fr_CA{
         ideographic_desc_characters{"symboles de description sinographique"}\r
         keycap{"dessus de touche"}\r
         sign_standard_symbols{"signe ou symbole"}\r
-        smiley{"émoticône"}\r
         south_asian_scripts{"écritures d’Asie du Sud"}\r
         southeast_asian_scripts{"écritures d’Asie du Sud-Est"}\r
         western_asian_scripts{"écritures d’Asie de l’Ouest"}\r
@@ -646,17 +761,37 @@ fr_CA{
         alternateQuotationStart{"”"}\r
     }\r
     fields{\r
+        day{\r
+            relative{\r
+                "-1"{"hier"}\r
+                "-2"{"avant-hier"}\r
+                "0"{"aujourd’hui"}\r
+                "1"{"demain"}\r
+                "2"{"après-demain"}\r
+            }\r
+        }\r
         day-narrow{\r
             relative{\r
+                "-1"{"hier"}\r
                 "-2"{"avant-hier"}\r
+                "0"{"aujourd’hui"}\r
+                "1"{"demain"}\r
                 "2"{"après-demain"}\r
             }\r
         }\r
         day-short{\r
             relative{\r
+                "-1"{"hier"}\r
                 "-2"{"avant-hier"}\r
+                "0"{"aujourd’hui"}\r
+                "1"{"demain"}\r
                 "2"{"après-demain"}\r
             }\r
+            relativeTime{\r
+                future{\r
+                    other{"dans {0} j"}\r
+                }\r
+            }\r
         }\r
         dayOfYear{\r
             dn{"jour de l’année"}\r
@@ -688,13 +823,6 @@ fr_CA{
                 }\r
             }\r
         }\r
-        month-narrow{\r
-            relativeTime{\r
-                future{\r
-                    other{"+{0} m."}\r
-                }\r
-            }\r
-        }\r
         quarter{\r
             relative{\r
                 "-1"{"le trimestre dernier"}\r
@@ -702,8 +830,23 @@ fr_CA{
                 "1"{"le trimestre prochain"}\r
             }\r
         }\r
+        quarter-narrow{\r
+            relative{\r
+                "-1"{"trim. dernier"}\r
+                "0"{"ce trim."}\r
+                "1"{"trim.prochain"}\r
+            }\r
+        }\r
+        quarter-short{\r
+            relative{\r
+                "-1"{"trim. dernier"}\r
+                "0"{"ce trim."}\r
+                "1"{"trim. prochain"}\r
+            }\r
+        }\r
         sat-narrow{\r
             relative{\r
+                "-1"{"sam. dernier"}\r
                 "0"{"ce sam"}\r
                 "1"{"sam proch"}\r
             }\r
@@ -807,16 +950,8 @@ fr_CA{
                 }\r
             }\r
         }\r
-        year-narrow{\r
-            relative{\r
-                "0"{"cette année"}\r
-            }\r
-        }\r
         year-short{\r
             dn{"a"}\r
-            relative{\r
-                "0"{"cette année"}\r
-            }\r
         }\r
     }\r
 }\r
index 4772c3c..6070773 100644 (file)
@@ -12,7 +12,7 @@ fr_CH{
             }\r
         }\r
     }\r
-    Version{"2.1.38.85"}\r
+    Version{"2.1.43.65"}\r
     calendar{\r
         generic{\r
             DateTimePatterns{\r
index 94ddcaa..f4043d2 100644 (file)
@@ -155,7 +155,7 @@ fy{
         }\r
         minimumGroupingDigits{"1"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.41.34"}\r
     calendar{\r
         buddhist{\r
             DateTimePatterns{\r
index 61a772a..a42a4a8 100644 (file)
@@ -12,12 +12,18 @@ ga{
     }\r
     ExemplarCharacters{"[a á b c d e é f g h i í l m n o ó p r s t u ú]"}\r
     ExemplarCharactersNumbers{"[\\- , . % ‰ + 0 1 2 3 4 5 6 7 8 9]"}\r
+    ExemplarCharactersPunctuation{\r
+        "[\\- ‐ – — , ; \\: ! ? . … ' ‘ ’ \u0022 “ ” ( ) \\[ \\] § @ * / \\& # † ‡ ′ "\r
+        "″]"\r
+    }\r
     MoreInformation{"?"}\r
     NumberElements{\r
         default{"latn"}\r
         latn{\r
             miscPatterns{\r
+                approximately{"~{0}"}\r
                 atLeast{"{0}+"}\r
+                atMost{"≤{0}"}\r
                 range{"{0}–{1}"}\r
             }\r
             patterns{\r
@@ -319,7 +325,7 @@ ga{
         minimumGroupingDigits{"1"}\r
         native{"latn"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.91"}\r
     calendar{\r
         buddhist{\r
             DateTimePatterns{\r
@@ -1084,8 +1090,8 @@ ga{
         digits{"Digití"}\r
         dingbats{"Smísteoga"}\r
         divination_symbols{"Siombailí na Fáistine"}\r
-        downwards_arrows{"Saigheada Síos"}\r
-        downwards_upwards_arrows{"Saigheada Síos Suas"}\r
+        downwards_arrows{"saighead síos"}\r
+        downwards_upwards_arrows{"saighead síos suas"}\r
         east_asian_scripts{"Scripteanna na hÁise Thoir"}\r
         emoji{"Emoji"}\r
         european_scripts{"Scripteanna na hEorpa"}\r
@@ -1095,9 +1101,9 @@ ga{
         food_drink{"Bia agus Deoch"}\r
         format{"Formáid"}\r
         format_whitespace{"Formáid agus Spás Bán"}\r
-        full_width_form_variant{"Foirm Lánleithid"}\r
+        full_width_form_variant{"athraitheach leithid iomláin"}\r
         geometric_shapes{"Cruthanna Geoiméadracha"}\r
-        half_width_form_variant{"Foirm Leathleithid"}\r
+        half_width_form_variant{"athraitheach leathleithid"}\r
         han_characters{"Carachtair Han"}\r
         han_radicals{"Fréamhacha Han"}\r
         hanja{"Hanaí"}\r
@@ -1135,7 +1141,7 @@ ga{
         punctuation{"Poncaíocht"}\r
         rightwards_arrows{"Saighead Dheas"}\r
         sign_standard_symbols{"Comharthaí/Siombailí Coitianta"}\r
-        small_form_variant{"Foirmeacha Beaga"}\r
+        small_form_variant{"athraithigh bheaga"}\r
         smiley{"straoiseog"}\r
         smileys_people{"Straoiseoga nó Daoine"}\r
         south_asian_scripts{"Scripteanna na hÁise Theas"}\r
@@ -2328,8 +2334,13 @@ ga{
         general{\r
             lenient{\r
                 "[.․。︒﹒.。]",\r
+                "['ʼ՚᾽᾿’']",\r
+                "[%٪﹪%]",\r
+                "[؉‰]",\r
                 "[\$﹩$$]",\r
                 "[£₤]",\r
+                "[¥¥]",\r
+                "[₩₩]",\r
                 "[₨₹{Rp}{Rs}]",\r
             }\r
         }\r
index 11c17b6..e67451e 100644 (file)
@@ -16,6 +16,10 @@ gd{
     ExemplarCharacters{"[a à b c d e è f g h i ì l m n o ò p r s t u ù]"}\r
     ExemplarCharactersIndex{"[A B C D E F G H I L M N O P R S T U]"}\r
     ExemplarCharactersNumbers{"[\\- , . % ‰ + 0 1 2 3 4 5 6 7 8 9]"}\r
+    ExemplarCharactersPunctuation{\r
+        "[\\- ‐ – — , ; \\: ! ¡ ? . … · ' ‘ ’ \u0022 “ ” ( ) \\[ \\] \\{ \\} § ¶ @ * "\r
+        "/ \\& ⁊ # % † ‡ ‧ ° © ® ™]"\r
+    }\r
     MoreInformation{"?"}\r
     NumberElements{\r
         arab{\r
@@ -63,6 +67,7 @@ gd{
                 percentSign{"%"}\r
                 plusSign{"+"}\r
                 superscriptingExponent{"×"}\r
+                timeSeparator{":"}\r
             }\r
         }\r
         beng{\r
@@ -78,6 +83,7 @@ gd{
                 percentSign{"%"}\r
                 plusSign{"+"}\r
                 superscriptingExponent{"×"}\r
+                timeSeparator{":"}\r
             }\r
         }\r
         brah{\r
@@ -93,6 +99,7 @@ gd{
                 percentSign{"%"}\r
                 plusSign{"+"}\r
                 superscriptingExponent{"×"}\r
+                timeSeparator{":"}\r
             }\r
         }\r
         cakm{\r
@@ -108,6 +115,7 @@ gd{
                 percentSign{"%"}\r
                 plusSign{"+"}\r
                 superscriptingExponent{"×"}\r
+                timeSeparator{":"}\r
             }\r
         }\r
         cham{\r
@@ -123,6 +131,7 @@ gd{
                 percentSign{"%"}\r
                 plusSign{"+"}\r
                 superscriptingExponent{"×"}\r
+                timeSeparator{":"}\r
             }\r
         }\r
         default{"latn"}\r
@@ -139,6 +148,7 @@ gd{
                 percentSign{"%"}\r
                 plusSign{"+"}\r
                 superscriptingExponent{"×"}\r
+                timeSeparator{":"}\r
             }\r
         }\r
         fullwide{\r
@@ -168,6 +178,38 @@ gd{
                 timeSeparator{":"}\r
             }\r
         }\r
+        gong{\r
+            symbols{\r
+                decimal{"."}\r
+                exponential{"E"}\r
+                group{","}\r
+                infinity{"∞"}\r
+                list{";"}\r
+                minusSign{"-"}\r
+                nan{"NaN"}\r
+                perMille{"‰"}\r
+                percentSign{"%"}\r
+                plusSign{"+"}\r
+                superscriptingExponent{"×"}\r
+                timeSeparator{":"}\r
+            }\r
+        }\r
+        gonm{\r
+            symbols{\r
+                decimal{"."}\r
+                exponential{"E"}\r
+                group{","}\r
+                infinity{"∞"}\r
+                list{";"}\r
+                minusSign{"-"}\r
+                nan{"NaN"}\r
+                perMille{"‰"}\r
+                percentSign{"%"}\r
+                plusSign{"+"}\r
+                superscriptingExponent{"×"}\r
+                timeSeparator{":"}\r
+            }\r
+        }\r
         gujr{\r
             symbols{\r
                 decimal{"."}\r
@@ -181,6 +223,7 @@ gd{
                 percentSign{"%"}\r
                 plusSign{"+"}\r
                 superscriptingExponent{"×"}\r
+                timeSeparator{":"}\r
             }\r
         }\r
         guru{\r
@@ -196,6 +239,7 @@ gd{
                 percentSign{"%"}\r
                 plusSign{"+"}\r
                 superscriptingExponent{"×"}\r
+                timeSeparator{":"}\r
             }\r
         }\r
         hanidec{\r
@@ -211,6 +255,7 @@ gd{
                 percentSign{"%"}\r
                 plusSign{"+"}\r
                 superscriptingExponent{"×"}\r
+                timeSeparator{":"}\r
             }\r
         }\r
         java{\r
@@ -226,6 +271,7 @@ gd{
                 percentSign{"%"}\r
                 plusSign{"+"}\r
                 superscriptingExponent{"×"}\r
+                timeSeparator{":"}\r
             }\r
         }\r
         kali{\r
@@ -241,6 +287,7 @@ gd{
                 percentSign{"%"}\r
                 plusSign{"+"}\r
                 superscriptingExponent{"×"}\r
+                timeSeparator{":"}\r
             }\r
         }\r
         khmr{\r
@@ -256,6 +303,7 @@ gd{
                 percentSign{"%"}\r
                 plusSign{"+"}\r
                 superscriptingExponent{"×"}\r
+                timeSeparator{":"}\r
             }\r
         }\r
         knda{\r
@@ -271,6 +319,7 @@ gd{
                 percentSign{"%"}\r
                 plusSign{"+"}\r
                 superscriptingExponent{"×"}\r
+                timeSeparator{":"}\r
             }\r
         }\r
         lana{\r
@@ -286,6 +335,7 @@ gd{
                 percentSign{"%"}\r
                 plusSign{"+"}\r
                 superscriptingExponent{"×"}\r
+                timeSeparator{":"}\r
             }\r
         }\r
         lanatham{\r
@@ -301,6 +351,7 @@ gd{
                 percentSign{"%"}\r
                 plusSign{"+"}\r
                 superscriptingExponent{"×"}\r
+                timeSeparator{":"}\r
             }\r
         }\r
         laoo{\r
@@ -316,6 +367,7 @@ gd{
                 percentSign{"%"}\r
                 plusSign{"+"}\r
                 superscriptingExponent{"×"}\r
+                timeSeparator{":"}\r
             }\r
         }\r
         latn{\r
@@ -333,73 +385,73 @@ gd{
             patternsLong{\r
                 decimalFormat{\r
                     1000{\r
-                        few{"0 mìle"}\r
+                        few{"0 mìltean"}\r
                         one{"0 mhìle"}\r
                         other{"0 mìle"}\r
                         two{"0 mhìle"}\r
                     }\r
                     10000{\r
-                        few{"00 mìle"}\r
+                        few{"00 mìltean"}\r
                         one{"00 mhìle"}\r
                         other{"00 mìle"}\r
                         two{"00 mhìle"}\r
                     }\r
                     100000{\r
-                        few{"000 mìle"}\r
+                        few{"000 mìltean"}\r
                         one{"000 mhìle"}\r
                         other{"000 mìle"}\r
                         two{"000 mhìle"}\r
                     }\r
                     1000000{\r
-                        few{"0 millean"}\r
+                        few{"0 milleanan"}\r
                         one{"0 mhillean"}\r
                         other{"0 millean"}\r
                         two{"0 mhillean"}\r
                     }\r
                     10000000{\r
-                        few{"00 millean"}\r
+                        few{"00 milleanan"}\r
                         one{"00 mhillean"}\r
                         other{"00 millean"}\r
                         two{"00 mhillean"}\r
                     }\r
                     100000000{\r
-                        few{"000 millean"}\r
+                        few{"000 milleanan"}\r
                         one{"000 mhillean"}\r
                         other{"000 millean"}\r
                         two{"000 mhillean"}\r
                     }\r
                     1000000000{\r
-                        few{"0 billean"}\r
+                        few{"0 billeanan"}\r
                         one{"0 bhillean"}\r
                         other{"0 billean"}\r
                         two{"0 bhillean"}\r
                     }\r
                     10000000000{\r
-                        few{"00 billean"}\r
+                        few{"00 billeanan"}\r
                         one{"00 bhillean"}\r
                         other{"00 billean"}\r
                         two{"00 bhillean"}\r
                     }\r
                     100000000000{\r
-                        few{"000 bhillean"}\r
-                        one{"000 billean"}\r
-                        other{"000 bhillean"}\r
-                        two{"000 billean"}\r
+                        few{"000 billeanan"}\r
+                        one{"000 bhillean"}\r
+                        other{"000 billean"}\r
+                        two{"000 bhillean"}\r
                     }\r
                     1000000000000{\r
-                        few{"0 trillean"}\r
+                        few{"0 trilleanan"}\r
                         one{"0 trillean"}\r
                         other{"0 trillean"}\r
                         two{"0 thrillean"}\r
                     }\r
                     10000000000000{\r
-                        few{"00 trillean"}\r
+                        few{"00 trilleanan"}\r
                         one{"00 trillean"}\r
                         other{"00 trillean"}\r
                         two{"00 thrillean"}\r
                     }\r
                     100000000000000{\r
-                        few{"000 trillean"}\r
+                        few{"000 trilleanan"}\r
                         one{"000 trillean"}\r
                         other{"000 trillean"}\r
                         two{"000 thrillean"}\r
@@ -584,6 +636,7 @@ gd{
                 percentSign{"%"}\r
                 plusSign{"+"}\r
                 superscriptingExponent{"×"}\r
+                timeSeparator{":"}\r
             }\r
         }\r
         limb{\r
@@ -599,17 +652,15 @@ gd{
                 percentSign{"%"}\r
                 plusSign{"+"}\r
                 superscriptingExponent{"×"}\r
+                timeSeparator{":"}\r
             }\r
         }\r
         minimalPairs{\r
-            ordinal{\r
-                other{"Gabh an {0}mh air an taobh dheas."}\r
-            }\r
             plural{\r
-                few{"{0} chaora bhàn"}\r
-                one{"{0} chaora bhàin"}\r
-                other{"{0} caoraich bhàna"}\r
-                two{"{0} caora bàn"}\r
+                few{"{0} dealbhan, {0} mionaidean"}\r
+                one{"{0} dealbh, {0} mhionaid"}\r
+                other{"{0} dealbh, {0} mionaid"}\r
+                two{"{0} dhealbh, {0} mhionaid"}\r
             }\r
         }\r
         minimumGroupingDigits{"1"}\r
@@ -626,6 +677,7 @@ gd{
                 percentSign{"%"}\r
                 plusSign{"+"}\r
                 superscriptingExponent{"×"}\r
+                timeSeparator{":"}\r
             }\r
         }\r
         mong{\r
@@ -641,6 +693,7 @@ gd{
                 percentSign{"%"}\r
                 plusSign{"+"}\r
                 superscriptingExponent{"×"}\r
+                timeSeparator{":"}\r
             }\r
         }\r
         mtei{\r
@@ -656,6 +709,7 @@ gd{
                 percentSign{"%"}\r
                 plusSign{"+"}\r
                 superscriptingExponent{"×"}\r
+                timeSeparator{":"}\r
             }\r
         }\r
         mymr{\r
@@ -671,6 +725,7 @@ gd{
                 percentSign{"%"}\r
                 plusSign{"+"}\r
                 superscriptingExponent{"×"}\r
+                timeSeparator{":"}\r
             }\r
         }\r
         mymrshan{\r
@@ -686,6 +741,7 @@ gd{
                 percentSign{"%"}\r
                 plusSign{"+"}\r
                 superscriptingExponent{"×"}\r
+                timeSeparator{":"}\r
             }\r
         }\r
         native{"latn"}\r
@@ -702,6 +758,7 @@ gd{
                 percentSign{"%"}\r
                 plusSign{"+"}\r
                 superscriptingExponent{"×"}\r
+                timeSeparator{":"}\r
             }\r
         }\r
         olck{\r
@@ -717,6 +774,7 @@ gd{
                 percentSign{"%"}\r
                 plusSign{"+"}\r
                 superscriptingExponent{"×"}\r
+                timeSeparator{":"}\r
             }\r
         }\r
         orya{\r
@@ -732,6 +790,7 @@ gd{
                 percentSign{"%"}\r
                 plusSign{"+"}\r
                 superscriptingExponent{"×"}\r
+                timeSeparator{":"}\r
             }\r
         }\r
         osma{\r
@@ -747,6 +806,23 @@ gd{
                 percentSign{"%"}\r
                 plusSign{"+"}\r
                 superscriptingExponent{"×"}\r
+                timeSeparator{":"}\r
+            }\r
+        }\r
+        rohg{\r
+            symbols{\r
+                decimal{"."}\r
+                exponential{"E"}\r
+                group{","}\r
+                infinity{"∞"}\r
+                list{";"}\r
+                minusSign{"-"}\r
+                nan{"NaN"}\r
+                perMille{"‰"}\r
+                percentSign{"%"}\r
+                plusSign{"+"}\r
+                superscriptingExponent{"×"}\r
+                timeSeparator{":"}\r
             }\r
         }\r
         saur{\r
@@ -762,6 +838,7 @@ gd{
                 percentSign{"%"}\r
                 plusSign{"+"}\r
                 superscriptingExponent{"×"}\r
+                timeSeparator{":"}\r
             }\r
         }\r
         shrd{\r
@@ -777,6 +854,7 @@ gd{
                 percentSign{"%"}\r
                 plusSign{"+"}\r
                 superscriptingExponent{"×"}\r
+                timeSeparator{":"}\r
             }\r
         }\r
         sora{\r
@@ -792,6 +870,7 @@ gd{
                 percentSign{"%"}\r
                 plusSign{"+"}\r
                 superscriptingExponent{"×"}\r
+                timeSeparator{":"}\r
             }\r
         }\r
         sund{\r
@@ -807,6 +886,7 @@ gd{
                 percentSign{"%"}\r
                 plusSign{"+"}\r
                 superscriptingExponent{"×"}\r
+                timeSeparator{":"}\r
             }\r
         }\r
         takr{\r
@@ -822,6 +902,7 @@ gd{
                 percentSign{"%"}\r
                 plusSign{"+"}\r
                 superscriptingExponent{"×"}\r
+                timeSeparator{":"}\r
             }\r
         }\r
         talu{\r
@@ -837,6 +918,7 @@ gd{
                 percentSign{"%"}\r
                 plusSign{"+"}\r
                 superscriptingExponent{"×"}\r
+                timeSeparator{":"}\r
             }\r
         }\r
         tamldec{\r
@@ -852,6 +934,7 @@ gd{
                 percentSign{"%"}\r
                 plusSign{"+"}\r
                 superscriptingExponent{"×"}\r
+                timeSeparator{":"}\r
             }\r
         }\r
         telu{\r
@@ -867,6 +950,7 @@ gd{
                 percentSign{"%"}\r
                 plusSign{"+"}\r
                 superscriptingExponent{"×"}\r
+                timeSeparator{":"}\r
             }\r
         }\r
         thai{\r
@@ -882,6 +966,7 @@ gd{
                 percentSign{"%"}\r
                 plusSign{"+"}\r
                 superscriptingExponent{"×"}\r
+                timeSeparator{":"}\r
             }\r
         }\r
         tibt{\r
@@ -897,6 +982,7 @@ gd{
                 percentSign{"%"}\r
                 plusSign{"+"}\r
                 superscriptingExponent{"×"}\r
+                timeSeparator{":"}\r
             }\r
         }\r
         vaii{\r
@@ -912,12 +998,637 @@ gd{
                 percentSign{"%"}\r
                 plusSign{"+"}\r
                 superscriptingExponent{"×"}\r
+                timeSeparator{":"}\r
+            }\r
+        }\r
+    }\r
+    Version{"2.1.44.91"}\r
+    calendar{\r
+        buddhist{\r
+            DateTimePatterns{\r
+                "HH:mm:ss zzzz",\r
+                "HH:mm:ss z",\r
+                "HH:mm:ss",\r
+                "HH:mm",\r
+                "EEEE, d'mh' MMMM y G",\r
+                "d'mh' MMMM y G",\r
+                "d MMM y G",\r
+                "d/M/y GGGGG",\r
+                "{1} {0}",\r
+                "{1} {0}",\r
+                "{1} {0}",\r
+                "{1} {0}",\r
+                "{1} {0}",\r
+            }\r
+            availableFormats{\r
+                MMMMd{"d'mh' MMMM"}\r
+                yMM{"LL/y"}\r
+                yyyyM{"L/y GGGGG"}\r
+                yyyyMMMM{"LLLL y G"}\r
+            }\r
+            intervalFormats{\r
+                H{\r
+                    H{"HH – HH"}\r
+                }\r
+                Hm{\r
+                    H{"HH:mm – HH:mm"}\r
+                    m{"HH:mm – HH:mm"}\r
+                }\r
+                Hmv{\r
+                    H{"HH:mm – HH:mm v"}\r
+                    m{"HH:mm – HH:mm v"}\r
+                }\r
+                Hv{\r
+                    H{"HH – HH v"}\r
+                }\r
+                M{\r
+                    M{"L – L"}\r
+                }\r
+                fallback{"{0} – {1}"}\r
+            }\r
+        }\r
+        chinese{\r
+            DateTimePatterns{\r
+                "HH:mm:ss zzzz",\r
+                "HH:mm:ss z",\r
+                "HH:mm:ss",\r
+                "HH:mm",\r
+                "EEEE, d'mh' MMMM r(U)",\r
+                "d'mh' MMMM r(U)",\r
+                "d MMM r",\r
+                "d/M/r",\r
+                "{1} {0}",\r
+                "{1} 'aig' {0}",\r
+                "{1} 'aig' {0}",\r
+                "{1} {0}",\r
+                "{1} {0}",\r
+            }\r
+            availableFormats{\r
+                Bh{"hB"}\r
+                Bhm{"h:mmB"}\r
+                Bhms{"h:mm:ssB"}\r
+                E{"ccc"}\r
+                EBhm{"E h:mmB"}\r
+                EBhms{"E h:mm:ssB"}\r
+                Ed{"E d"}\r
+                Gy{"r(U)"}\r
+                GyMMM{"LLL r(U)"}\r
+                GyMMMEd{"E, d'mh' MMM r(U)"}\r
+                GyMMMd{"d'mh' MMM r"}\r
+                H{"HH"}\r
+                Hm{"HH:mm"}\r
+                Hms{"HH:mm:ss"}\r
+                M{"L"}\r
+                MEd{"E, d/M"}\r
+                MMM{"LLL"}\r
+                MMMEd{"E, d'mh' MMM"}\r
+                MMMMd{"d'mh' MMMM"}\r
+                MMMd{"d'mh' MMM"}\r
+                Md{"d/M"}\r
+                UM{"L/U"}\r
+                UMMM{"LLL U"}\r
+                UMMMd{"d'mh' MMM U"}\r
+                UMd{"d/M/U"}\r
+                d{"d"}\r
+                h{"ha"}\r
+                hm{"h:mma"}\r
+                hms{"h:mm:ssa"}\r
+                ms{"mm:ss"}\r
+                y{"r(U)"}\r
+                yMd{"d/M/r"}\r
+                yyyy{"r(U)"}\r
+                yyyyM{"L/r"}\r
+                yyyyMEd{"E, d/M/r"}\r
+                yyyyMMM{"LLL r(U)"}\r
+                yyyyMMMEd{"E, d'mh' MMM r(U)"}\r
+                yyyyMMMM{"LLLL r(U)"}\r
+                yyyyMMMd{"d'mh' MMM r"}\r
+                yyyyMd{"d/M/r"}\r
+                yyyyQQQ{"QQQ r(U)"}\r
+                yyyyQQQQ{"QQQQ r(U)"}\r
+            }\r
+            cyclicNameSets{\r
+                solarTerms{\r
+                    format{\r
+                        abbreviated{\r
+                            "toiseach an earraich",\r
+                            "an t-uisge",\r
+                            "dùsgadh nam biastag",\r
+                            "co-fhad-thràth an earraich",\r
+                            "soilleir",\r
+                            "uisge a’ ghràin",\r
+                            "toiseach an t-samhraidh",\r
+                            "gràn làn",\r
+                            "gràn abaich",\r
+                            "grian-stad an t-samhraidh",\r
+                            "teas beag",\r
+                            "teas mòr",\r
+                            "toiseach an fhoghair",\r
+                            "deireadh an teasa",\r
+                            "driùchd geal",\r
+                            "co-fhad-thràth an fhoghair",\r
+                            "driùchd fuar",\r
+                            "teachd an reòthaidh",\r
+                            "toiseach a’ gheamhraidh",\r
+                            "sneachd beag",\r
+                            "sneachd mòr",\r
+                            "grian-stad a’ gheamhraidh",\r
+                            "fuachd bheag",\r
+                            "fuachd mhòr",\r
+                        }\r
+                        narrow{\r
+                            "toiseach earraich",\r
+                            "an t-uisge",\r
+                            "dùsgadh bhiastagan",\r
+                            "co-fhad-thràth earraich",\r
+                            "soilleir",\r
+                            "uisge gràin",\r
+                            "toiseach samhraidh",\r
+                            "gràn làn",\r
+                            "gràn abaich",\r
+                            "grian-stad samhraidh",\r
+                            "teas beag",\r
+                            "teas mòr",\r
+                            "toiseach foghair",\r
+                            "deireadh teasa",\r
+                            "driùchd geal",\r
+                            "co-fhad-thràth foghair",\r
+                            "driùchd fuar",\r
+                            "teachd reòthaidh",\r
+                            "toiseach geamhraidh",\r
+                            "sneachd beag",\r
+                            "sneachd mòr",\r
+                            "grian-stad geamhraidh",\r
+                            "fuachd bheag",\r
+                            "fuachd mhòr",\r
+                        }\r
+                        wide{\r
+                            "toiseach an earraich",\r
+                            "an t-uisge",\r
+                            "dùsgadh nam biastag",\r
+                            "co-fhad-thràth an earraich",\r
+                            "soilleir",\r
+                            "uisge a’ ghràin",\r
+                            "toiseach an t-samhraidh",\r
+                            "an gràn làn",\r
+                            "an gràn abaich",\r
+                            "grian-stad an t-samhraidh",\r
+                            "an teas beag",\r
+                            "an teas mòr",\r
+                            "toiseach an fhoghair",\r
+                            "deireadh an teasa",\r
+                            "an driùchd geal",\r
+                            "co-fhad-thràth an fhoghair",\r
+                            "an driùchd fuar",\r
+                            "teachd an reòthaidh",\r
+                            "toiseach a’ gheamhraidh",\r
+                            "an sneachd beag",\r
+                            "an sneachd mòr",\r
+                            "grian-stad a’ gheamhraidh",\r
+                            "an fhuachd bheag",\r
+                            "an fhuachd mhòr",\r
+                        }\r
+                    }\r
+                }\r
+                zodiacs{\r
+                    format{\r
+                        abbreviated{\r
+                            "Radan",\r
+                            "Damh",\r
+                            "Tìgear",\r
+                            "Coinean",\r
+                            "Dràgon",\r
+                            "Nathair",\r
+                            "Each",\r
+                            "Gobhar",\r
+                            "Muncaidh",\r
+                            "Coileach",\r
+                            "Cù",\r
+                            "Muc",\r
+                        }\r
+                        narrow{\r
+                            "Radan",\r
+                            "Damh",\r
+                            "Tìgear",\r
+                            "Coinean",\r
+                            "Dràgon",\r
+                            "Nathair",\r
+                            "Each",\r
+                            "Gobhar",\r
+                            "Muncaidh",\r
+                            "Coileach",\r
+                            "Cù",\r
+                            "Muc",\r
+                        }\r
+                        wide{\r
+                            "Radan",\r
+                            "Damh",\r
+                            "Tìgear",\r
+                            "Coinean",\r
+                            "Dràgon",\r
+                            "Nathair",\r
+                            "Each",\r
+                            "Gobhar",\r
+                            "Muncaidh",\r
+                            "Coileach",\r
+                            "Cù",\r
+                            "Muc",\r
+                        }\r
+                    }\r
+                }\r
+            }\r
+            intervalFormats{\r
+                H{\r
+                    H{"HH – HH"}\r
+                }\r
+                Hm{\r
+                    H{"HH:mm – HH:mm"}\r
+                    m{"HH:mm – HH:mm"}\r
+                }\r
+                Hmv{\r
+                    H{"HH:mm – HH:mm v"}\r
+                    m{"HH:mm – HH:mm v"}\r
+                }\r
+                Hv{\r
+                    H{"HH – HH v"}\r
+                }\r
+                M{\r
+                    M{"L – L"}\r
+                }\r
+                MEd{\r
+                    M{"E, d/M – E, d/M"}\r
+                    d{"E, d/M – E, d/M"}\r
+                }\r
+                MMM{\r
+                    M{"LLL – LLL"}\r
+                }\r
+                MMMEd{\r
+                    M{"E, d MMM – E, d MMM"}\r
+                    d{"E, d MMM – E, d MMM"}\r
+                }\r
+                MMMd{\r
+                    M{"d MMM – d MMM"}\r
+                    d{"d MMM – d"}\r
+                }\r
+                Md{\r
+                    M{"d/M – d/M"}\r
+                    d{"d/M – d/M"}\r
+                }\r
+                d{\r
+                    d{"d – d"}\r
+                }\r
+                fallback{"{0} – {1}"}\r
+                h{\r
+                    a{"ha – ha"}\r
+                    h{"h – ha"}\r
+                }\r
+                hm{\r
+                    a{"h:mma – h:mma"}\r
+                    h{"h:mm – h:mma"}\r
+                    m{"h:mm – h:mma"}\r
+                }\r
+                hmv{\r
+                    a{"h:mma – h:mma v"}\r
+                    h{"h:mm – h:mma v"}\r
+                    m{"h:mm – h:mma v"}\r
+                }\r
+                hv{\r
+                    a{"ha – ha v"}\r
+                    h{"h – ha v"}\r
+                }\r
+                y{\r
+                    y{"U – U"}\r
+                }\r
+                yM{\r
+                    M{"L/y – L/y"}\r
+                    y{"L/y – L/y"}\r
+                }\r
+                yMEd{\r
+                    M{"E, d/M/y – E, d/M/y"}\r
+                    d{"E, d/M/y – E, d/M/y"}\r
+                    y{"E, d/M/y – E, d/M/y"}\r
+                }\r
+                yMMM{\r
+                    M{"LLL – LLL U"}\r
+                    y{"LLL U – LLL U"}\r
+                }\r
+                yMMMEd{\r
+                    M{"E, d MMM – E, d MMM, U"}\r
+                    d{"E, d MMM – E, d MMM, U"}\r
+                    y{"E, d MMM, U – E, d MMM, U"}\r
+                }\r
+                yMMMM{\r
+                    M{"LLLL – LLLL U"}\r
+                    y{"LLLL U – LLLL U"}\r
+                }\r
+                yMMMd{\r
+                    M{"d MMM – d MMM, U"}\r
+                    d{"d MMM – d, U"}\r
+                    y{"d MMM, U – d MMM, U"}\r
+                }\r
+                yMd{\r
+                    M{"d/M/y – d/M/y"}\r
+                    d{"d/M/y – d/M/y"}\r
+                    y{"d/M/y – d/M/y"}\r
+                }\r
+            }\r
+            monthNames{\r
+                format{\r
+                    abbreviated{\r
+                        "Chiad",\r
+                        "Dàrna",\r
+                        "Treas",\r
+                        "Ceathr",\r
+                        "Còig",\r
+                        "Sia",\r
+                        "Seachd",\r
+                        "Ochd",\r
+                        "Naoidh",\r
+                        "Deich",\r
+                        "Aon Deug",\r
+                        "Dàrna Deug",\r
+                    }\r
+                    narrow{\r
+                        "1",\r
+                        "2",\r
+                        "3",\r
+                        "4",\r
+                        "5",\r
+                        "6",\r
+                        "7",\r
+                        "8",\r
+                        "9",\r
+                        "10",\r
+                        "11",\r
+                        "12",\r
+                    }\r
+                    wide{\r
+                        "dhen Chiad Mhìos",\r
+                        "dhen Dàrna Mhìos",\r
+                        "dhen Treas Mhìos",\r
+                        "dhen Cheathramh Mhìos",\r
+                        "dhen Chòigeamh Mhìos",\r
+                        "dhen t-Siathamh Mhìos",\r
+                        "dhen t-Seachdamh Mhìos",\r
+                        "dhen Ochdamh Mhìos",\r
+                        "dhen Naoidheamh Mhìos",\r
+                        "dhen Deicheamh Mhìos",\r
+                        "dhen Aonamh Mhìos Deug",\r
+                        "dhen Dàrna Mhìos Deug",\r
+                    }\r
+                }\r
+                stand-alone{\r
+                    abbreviated{\r
+                        "Chiad",\r
+                        "Dàrna",\r
+                        "Treas",\r
+                        "Ceathr",\r
+                        "Còig",\r
+                        "Sia",\r
+                        "Seachd",\r
+                        "Ochd",\r
+                        "Naoidh",\r
+                        "Deich",\r
+                        "Aon Deug",\r
+                        "Dàrna Deug",\r
+                    }\r
+                    narrow{\r
+                        "1",\r
+                        "2",\r
+                        "3",\r
+                        "4",\r
+                        "5",\r
+                        "6",\r
+                        "7",\r
+                        "8",\r
+                        "9",\r
+                        "10",\r
+                        "11",\r
+                        "12",\r
+                    }\r
+                    wide{\r
+                        "A’ Chiad Mhìos",\r
+                        "An Dàrna Mìos",\r
+                        "An Treas Mìos",\r
+                        "An Ceathramh Mìos",\r
+                        "An Còigeamh Mìos",\r
+                        "An Siathamh Mìos",\r
+                        "An Seachdamh Mìos",\r
+                        "An t-Ochdamh Mìos",\r
+                        "An Naoidheamh Mìos",\r
+                        "An Deicheamh Mìos",\r
+                        "An t-Aonamh Mìos Deug",\r
+                        "An Dàrna Mìos Deug",\r
+                    }\r
+                }\r
+            }\r
+        }\r
+        coptic{\r
+            DateTimePatterns{\r
+                "HH:mm:ss zzzz",\r
+                "HH:mm:ss z",\r
+                "HH:mm:ss",\r
+                "HH:mm",\r
+                "EEEE, d'mh' MMMM y G",\r
+                "d'mh' MMMM y G",\r
+                "d MMM y G",\r
+                "d/M/y GGGGG",\r
+                "{1} {0}",\r
+                "{1} {0}",\r
+                "{1} {0}",\r
+                "{1} {0}",\r
+                "{1} {0}",\r
+            }\r
+            availableFormats{\r
+                MMMMd{"d'mh' MMMM"}\r
+                yMM{"LL/y"}\r
+                yyyyM{"L/y GGGGG"}\r
+                yyyyMMMM{"LLLL y G"}\r
+            }\r
+            intervalFormats{\r
+                M{\r
+                    M{"L – L"}\r
+                }\r
             }\r
         }\r
-    }\r
-    Version{"2.1.41.97"}\r
-    calendar{\r
-        buddhist{\r
+        dangi{\r
+            DateTimePatterns{\r
+                "HH:mm:ss zzzz",\r
+                "HH:mm:ss z",\r
+                "HH:mm:ss",\r
+                "HH:mm",\r
+                "EEEE, d'mh' MMMM r(U)",\r
+                "d'mh' MMMM r(U)",\r
+                "d MMM r",\r
+                "d/M/r",\r
+                "{1} {0}",\r
+                "{1} 'aig' {0}",\r
+                "{1} 'aig' {0}",\r
+                "{1} {0}",\r
+                "{1} {0}",\r
+            }\r
+            availableFormats{\r
+                E{"ccc"}\r
+                Ed{"E d"}\r
+                Gy{"r(U)"}\r
+                GyMMM{"LLL r(U)"}\r
+                GyMMMEd{"E, d'mh' MMM r(U)"}\r
+                GyMMMd{"d'mh' MMM r"}\r
+                M{"L"}\r
+                MEd{"E, d/M"}\r
+                MMM{"LLL"}\r
+                MMMEd{"E, d'mh' MMM"}\r
+                MMMMd{"d'mh' MMMM"}\r
+                MMMd{"d'mh' MMM"}\r
+                Md{"d/M"}\r
+                UM{"L/U"}\r
+                UMMM{"LLL U"}\r
+                UMMMd{"d'mh' MMM U"}\r
+                UMd{"d/M/U"}\r
+                d{"d"}\r
+                y{"r(U)"}\r
+                yMd{"d/M/r"}\r
+                yyyy{"r(U)"}\r
+                yyyyM{"L/r"}\r
+                yyyyMEd{"E, d/M/r"}\r
+                yyyyMMM{"LLL r(U)"}\r
+                yyyyMMMEd{"E, d'mh' MMM r(U)"}\r
+                yyyyMMMM{"LLLL r(U)"}\r
+                yyyyMMMd{"d'mh' MMM r"}\r
+                yyyyMd{"d/M/r"}\r
+                yyyyQQQ{"QQQ r(U)"}\r
+                yyyyQQQQ{"QQQQ r(U)"}\r
+            }\r
+            cyclicNameSets{\r
+                solarTerms{\r
+                    format{\r
+                        abbreviated{\r
+                            "toiseach an earraich",\r
+                            "an t-uisge",\r
+                            "dùsgadh nam biastag",\r
+                            "co-fhad-thràth an earraich",\r
+                            "soilleir",\r
+                            "uisge a’ ghràin",\r
+                            "toiseach an t-samhraidh",\r
+                            "gràn làn",\r
+                            "gràn abaich",\r
+                            "grian-stad an t-samhraidh",\r
+                            "teas beag",\r
+                            "teas mòr",\r
+                            "toiseach an fhoghair",\r
+                            "deireadh an teasa",\r
+                            "driùchd geal",\r
+                            "co-fhad-thràth an fhoghair",\r
+                            "driùchd fuar",\r
+                            "teachd an reòthaidh",\r
+                            "toiseach a’ gheamhraidh",\r
+                            "sneachd beag",\r
+                            "sneachd mòr",\r
+                            "grian-stad a’ gheamhraidh",\r
+                            "fuachd bheag",\r
+                            "fuachd mhòr",\r
+                        }\r
+                        narrow{\r
+                            "toiseach earraich",\r
+                            "an t-uisge",\r
+                            "dùsgadh bhiastagan",\r
+                            "co-fhad-thràth earraich",\r
+                            "soilleir",\r
+                            "uisge gràin",\r
+                            "toiseach samhraidh",\r
+                            "gràn làn",\r
+                            "gràn abaich",\r
+                            "grian-stad samhraidh",\r
+                            "teas beag",\r
+                            "teas mòr",\r
+                            "toiseach foghair",\r
+                            "deireadh teasa",\r
+                            "driùchd geal",\r
+                            "co-fhad-thràth foghair",\r
+                            "driùchd fuar",\r
+                            "teachd reòthaidh",\r
+                            "toiseach geamhraidh",\r
+                            "sneachd beag",\r
+                            "sneachd mòr",\r
+                            "grian-stad geamhraidh",\r
+                            "fuachd bheag",\r
+                            "fuachd mhòr",\r
+                        }\r
+                        wide{\r
+                            "toiseach an earraich",\r
+                            "an t-uisge",\r
+                            "dùsgadh nam biastag",\r
+                            "co-fhad-thràth an earraich",\r
+                            "soilleir",\r
+                            "uisge a’ ghràin",\r
+                            "toiseach an t-samhraidh",\r
+                            "an gràn làn",\r
+                            "an gràn abaich",\r
+                            "grian-stad an t-samhraidh",\r
+                            "an teas beag",\r
+                            "an teas mòr",\r
+                            "toiseach an fhoghair",\r
+                            "deireadh an teasa",\r
+                            "an driùchd geal",\r
+                            "co-fhad-thràth an fhoghair",\r
+                            "an driùchd fuar",\r
+                            "teachd an reòthaidh",\r
+                            "toiseach a’ gheamhraidh",\r
+                            "an sneachd beag",\r
+                            "an sneachd mòr",\r
+                            "grian-stad a’ gheamhraidh",\r
+                            "an fhuachd bheag",\r
+                            "an fhuachd mhòr",\r
+                        }\r
+                    }\r
+                }\r
+                zodiacs{\r
+                    format{\r
+                        abbreviated{\r
+                            "Radan",\r
+                            "Damh",\r
+                            "Tìgear",\r
+                            "Coinean",\r
+                            "Dràgon",\r
+                            "Nathair",\r
+                            "Each",\r
+                            "Gobhar",\r
+                            "Muncaidh",\r
+                            "Coileach",\r
+                            "Cù",\r
+                            "Muc",\r
+                        }\r
+                        narrow{\r
+                            "Radan",\r
+                            "Damh",\r
+                            "Tìgear",\r
+                            "Coinean",\r
+                            "Dràgon",\r
+                            "Nathair",\r
+                            "Each",\r
+                            "Gobhar",\r
+                            "Muncaidh",\r
+                            "Coileach",\r
+                            "Cù",\r
+                            "Muc",\r
+                        }\r
+                        wide{\r
+                            "Radan",\r
+                            "Damh",\r
+                            "Tìgear",\r
+                            "Coinean",\r
+                            "Dràgon",\r
+                            "Nathair",\r
+                            "Each",\r
+                            "Gobhar",\r
+                            "Muncaidh",\r
+                            "Coileach",\r
+                            "Cù",\r
+                            "Muc",\r
+                        }\r
+                    }\r
+                }\r
+            }\r
             intervalFormats{\r
                 H{\r
                     H{"HH – HH"}\r
@@ -933,7 +1644,203 @@ gd{
                 Hv{\r
                     H{"HH – HH v"}\r
                 }\r
+                M{\r
+                    M{"L – L"}\r
+                }\r
+                MEd{\r
+                    M{"E, d/M – E, d/M"}\r
+                    d{"E, d/M – E, d/M"}\r
+                }\r
+                MMM{\r
+                    M{"LLL – LLL"}\r
+                }\r
+                MMMEd{\r
+                    M{"E, d MMM – E, d MMM"}\r
+                    d{"E, d MMM – E, d MMM"}\r
+                }\r
+                MMMd{\r
+                    M{"d MMM – d MMM"}\r
+                    d{"d MMM – d"}\r
+                }\r
+                Md{\r
+                    M{"d/M – d/M"}\r
+                    d{"d/M – d/M"}\r
+                }\r
+                d{\r
+                    d{"d – d"}\r
+                }\r
                 fallback{"{0} – {1}"}\r
+                h{\r
+                    a{"ha – ha"}\r
+                    h{"h – ha"}\r
+                }\r
+                hm{\r
+                    a{"h:mma – h:mma"}\r
+                    h{"h:mm – h:mma"}\r
+                    m{"h:mm – h:mma"}\r
+                }\r
+                hmv{\r
+                    a{"h:mma – h:mma v"}\r
+                    h{"h:mm – h:mma v"}\r
+                    m{"h:mm – h:mma v"}\r
+                }\r
+                hv{\r
+                    a{"ha – ha v"}\r
+                    h{"h – ha v"}\r
+                }\r
+                y{\r
+                    y{"U – U"}\r
+                }\r
+                yM{\r
+                    M{"L/y – L/y"}\r
+                    y{"L/y – L/y"}\r
+                }\r
+                yMEd{\r
+                    M{"E, d/M/y – E, d/M/y"}\r
+                    d{"E, d/M/y – E, d/M/y"}\r
+                    y{"E, d/M/y – E, d/M/y"}\r
+                }\r
+                yMMM{\r
+                    M{"LLL – LLL U"}\r
+                    y{"LLL U – LLL U"}\r
+                }\r
+                yMMMEd{\r
+                    M{"E, d MMM – E, d MMM, U"}\r
+                    d{"E, d MMM – E, d MMM, U"}\r
+                    y{"E, d MMM, U – E, d MMM, U"}\r
+                }\r
+                yMMMM{\r
+                    M{"LLLL – LLLL U"}\r
+                    y{"LLLL U – LLLL U"}\r
+                }\r
+                yMMMd{\r
+                    M{"d MMM – d MMM, U"}\r
+                    d{"d MMM – d, U"}\r
+                    y{"d MMM, U – d MMM, U"}\r
+                }\r
+                yMd{\r
+                    M{"d/M/y – d/M/y"}\r
+                    d{"d/M/y – d/M/y"}\r
+                    y{"d/M/y – d/M/y"}\r
+                }\r
+            }\r
+            monthNames{\r
+                format{\r
+                    abbreviated{\r
+                        "Chiad",\r
+                        "Dàrna",\r
+                        "Treas",\r
+                        "Ceathr",\r
+                        "Còig",\r
+                        "Sia",\r
+                        "Seachd",\r
+                        "Ochd",\r
+                        "Naoidh",\r
+                        "Deich",\r
+                        "Aon Deug",\r
+                        "Dàrna Deug",\r
+                    }\r
+                    narrow{\r
+                        "1",\r
+                        "2",\r
+                        "3",\r
+                        "4",\r
+                        "5",\r
+                        "6",\r
+                        "7",\r
+                        "8",\r
+                        "9",\r
+                        "10",\r
+                        "11",\r
+                        "12",\r
+                    }\r
+                    wide{\r
+                        "dhen Chiad Mhìos",\r
+                        "dhen Dàrna Mhìos",\r
+                        "dhen Treas Mhìos",\r
+                        "dhen Cheathramh Mhìos",\r
+                        "dhen Chòigeamh Mhìos",\r
+                        "dhen t-Siathamh Mhìos",\r
+                        "dhen t-Seachdamh Mhìos",\r
+                        "dhen Ochdamh Mhìos",\r
+                        "dhen Naoidheamh Mhìos",\r
+                        "dhen Deicheamh Mhìos",\r
+                        "dhen Aonamh Mhìos Deug",\r
+                        "dhen Dàrna Mhìos Deug",\r
+                    }\r
+                }\r
+                stand-alone{\r
+                    abbreviated{\r
+                        "Chiad",\r
+                        "Dàrna",\r
+                        "Treas",\r
+                        "Ceathr",\r
+                        "Còig",\r
+                        "Sia",\r
+                        "Seachd",\r
+                        "Ochd",\r
+                        "Naoidh",\r
+                        "Deich",\r
+                        "Aon Deug",\r
+                        "Dàrna Deug",\r
+                    }\r
+                    narrow{\r
+                        "1",\r
+                        "2",\r
+                        "3",\r
+                        "4",\r
+                        "5",\r
+                        "6",\r
+                        "7",\r
+                        "8",\r
+                        "9",\r
+                        "10",\r
+                        "11",\r
+                        "12",\r
+                    }\r
+                    wide{\r
+                        "A’ Chiad Mhìos",\r
+                        "An Dàrna Mìos",\r
+                        "An Treas Mìos",\r
+                        "An Ceathramh Mìos",\r
+                        "An Còigeamh Mìos",\r
+                        "An Siathamh Mìos",\r
+                        "An Seachdamh Mìos",\r
+                        "An t-Ochdamh Mìos",\r
+                        "An Naoidheamh Mìos",\r
+                        "An Deicheamh Mìos",\r
+                        "An t-Aonamh Mìos Deug",\r
+                        "An Dàrna Mìos Deug",\r
+                    }\r
+                }\r
+            }\r
+        }\r
+        ethiopic{\r
+            DateTimePatterns{\r
+                "HH:mm:ss zzzz",\r
+                "HH:mm:ss z",\r
+                "HH:mm:ss",\r
+                "HH:mm",\r
+                "EEEE, d'mh' MMMM y G",\r
+                "d'mh' MMMM y G",\r
+                "d MMM y G",\r
+                "d/M/y GGGGG",\r
+                "{1} {0}",\r
+                "{1} 'aig' {0}",\r
+                "{1} 'aig' {0}",\r
+                "{1} {0}",\r
+                "{1} {0}",\r
+            }\r
+            availableFormats{\r
+                MMMMd{"d'mh' MMMM"}\r
+                yMM{"LL/y"}\r
+                yyyyM{"L/y GGGGG"}\r
+                yyyyMMMM{"LLLL y G"}\r
+            }\r
+            intervalFormats{\r
+                M{\r
+                    M{"L – L"}\r
+                }\r
             }\r
         }\r
         generic{\r
@@ -942,8 +1849,8 @@ gd{
                 "HH:mm:ss z",\r
                 "HH:mm:ss",\r
                 "HH:mm",\r
-                "EEEE, d MMMM y G",\r
-                "d MMMM y G",\r
+                "EEEE, d'mh' MMMM y G",\r
+                "d'mh' MMMM y G",\r
                 "d MMM y G",\r
                 "d/M/y GGGGG",\r
                 "{1} {0}",\r
@@ -953,17 +1860,17 @@ gd{
                 "{1} {0}",\r
             }\r
             availableFormats{\r
-                Bh{"h B"}\r
-                Bhm{"h:mm B"}\r
-                Bhms{"h:mm:ss B"}\r
+                Bh{"hB"}\r
+                Bhm{"h:mmB"}\r
+                Bhms{"h:mm:ssB"}\r
                 E{"ccc"}\r
-                EBhm{"E h:mm B"}\r
-                EBhms{"E h:mm:ss B"}\r
+                EBhm{"E h:mmB"}\r
+                EBhms{"E h:mm:ssB"}\r
                 EHm{"E HH:mm"}\r
                 EHms{"E HH:mm:ss"}\r
                 Ed{"E, d"}\r
-                Ehm{"E h:mm a"}\r
-                Ehms{"E h:mm:ss a"}\r
+                Ehm{"E h:mma"}\r
+                Ehms{"E h:mm:ssa"}\r
                 Gy{"y G"}\r
                 GyMMM{"LLL y G"}\r
                 GyMMMEd{"E, d MMM y G"}\r
@@ -975,26 +1882,26 @@ gd{
                 MEd{"E, d/M"}\r
                 MMM{"LLL"}\r
                 MMMEd{"E, d MMM"}\r
-                MMMMd{"d MMMM"}\r
+                MMMMd{"d'mh' MMMM"}\r
                 MMMd{"d MMM"}\r
                 MMdd{"dd/MM"}\r
                 Md{"d/M"}\r
                 d{"d"}\r
-                h{"h a"}\r
-                hm{"h:mm a"}\r
-                hms{"h:mm:ss a"}\r
+                h{"ha"}\r
+                hm{"h:mma"}\r
+                hms{"h:mm:ssa"}\r
                 ms{"mm:ss"}\r
                 y{"y G"}\r
                 yMEd{"E, d/M/y"}\r
-                yMM{"MM/y"}\r
+                yMM{"LL/y"}\r
                 yMMM{"LLL y"}\r
                 yMMMM{"LLLL y"}\r
                 yyyy{"y G"}\r
-                yyyyM{"M/y GGGGG"}\r
+                yyyyM{"L/y GGGGG"}\r
                 yyyyMEd{"E, d/M/y GGGGG"}\r
                 yyyyMMM{"LLL y G"}\r
                 yyyyMMMEd{"E, d MMM y G"}\r
-                yyyyMMMM{"MMMM y G"}\r
+                yyyyMMMM{"LLLL y G"}\r
                 yyyyMMMd{"d MMM y G"}\r
                 yyyyMd{"d/M/y GGGGG"}\r
                 yyyyQQQ{"QQQ y G"}\r
@@ -1016,7 +1923,7 @@ gd{
                     H{"HH – HH v"}\r
                 }\r
                 M{\r
-                    M{"M – M"}\r
+                    M{"L – L"}\r
                 }\r
                 MEd{\r
                     M{"E, d/M – E, d/M"}\r
@@ -1128,14 +2035,19 @@ gd{
                 Timezone{"{0} {1}"}\r
             }\r
             availableFormats{\r
+                Bh{"hB"}\r
+                Bhm{"h:mmB"}\r
+                Bhms{"h:mm:ssB"}\r
                 E{"ccc"}\r
+                EBhm{"E h:mmB"}\r
+                EBhms{"E h:mm:ssB"}\r
                 EHm{"E HH:mm"}\r
                 EHms{"E HH:mm:ss"}\r
                 Ed{"E, d"}\r
                 Ehm{"E h:mma"}\r
                 Ehms{"E h:mm:ss a"}\r
                 Gy{"y G"}\r
-                GyMMM{"MMM y G"}\r
+                GyMMM{"LLL y G"}\r
                 GyMMMEd{"E, d MMM y G"}\r
                 GyMMMd{"d MMM y G"}\r
                 H{"HH"}\r
@@ -1165,21 +2077,21 @@ gd{
                 hmv{"h:mma v"}\r
                 ms{"mm:ss"}\r
                 y{"y"}\r
-                yM{"M/y"}\r
+                yM{"L/y"}\r
                 yMEd{"E, d/M/y"}\r
-                yMM{"MM/y"}\r
-                yMMM{"MMM y"}\r
+                yMM{"LL/y"}\r
+                yMMM{"LLL Y"}\r
                 yMMMEd{"E, d MMM y"}\r
                 yMMMM{"LLLL y"}\r
                 yMMMd{"d MMM y"}\r
-                yMd{"M/d/y"}\r
+                yMd{"d/M/y"}\r
                 yQQQ{"QQQ y"}\r
                 yQQQQ{"QQQQ y"}\r
                 yw{\r
-                    few{"'seachdain' w 'dhe' y"}\r
-                    one{"'seachdain' w 'dhe' y"}\r
-                    other{"'seachdain' w 'dhe' y"}\r
-                    two{"'seachdain' w 'dhe' y"}\r
+                    few{"'seachdain' w 'dhe' Y"}\r
+                    one{"'seachdain' w 'dhe' Y"}\r
+                    other{"'seachdain' w 'dhe' Y"}\r
+                    two{"'seachdain' w 'dhe' Y"}\r
                 }\r
             }\r
             dayNames{\r
@@ -1306,7 +2218,7 @@ gd{
                     H{"HH – HH v"}\r
                 }\r
                 M{\r
-                    M{"M – M"}\r
+                    M{"L – L"}\r
                 }\r
                 MEd{\r
                     M{"E, d/M – E, d/M"}\r
@@ -1353,8 +2265,8 @@ gd{
                     y{"y – y"}\r
                 }\r
                 yM{\r
-                    M{"M/y – M/y"}\r
-                    y{"M/y – M/y"}\r
+                    M{"L/y – L/y"}\r
+                    y{"L/y – L/y"}\r
                 }\r
                 yMEd{\r
                     M{"E, d/M/y – E, d/M/y"}\r
@@ -1518,25 +2430,169 @@ gd{
                 }\r
             }\r
         }\r
-        roc{\r
+        hebrew{\r
+            DateTimePatterns{\r
+                "HH:mm:ss zzzz",\r
+                "HH:mm:ss z",\r
+                "HH:mm:ss",\r
+                "HH:mm",\r
+                "EEEE, d'mh' MMMM y G",\r
+                "d'mh' MMMM y G",\r
+                "d MMM y G",\r
+                "d/M/y GGGGG",\r
+                "{1} {0}",\r
+                "{1} 'aig' {0}",\r
+                "{1} 'aig' {0}",\r
+                "{1} {0}",\r
+                "{1} {0}",\r
+            }\r
+            availableFormats{\r
+                MMMMd{"d'mh' MMMM"}\r
+                yMM{"LL/y"}\r
+                yyyyM{"L/y GGGGG"}\r
+                yyyyMMMM{"LLLL y G"}\r
+            }\r
+            intervalFormats{\r
+                M{\r
+                    M{"L – L"}\r
+                }\r
+            }\r
+        }\r
+        indian{\r
+            DateTimePatterns{\r
+                "HH:mm:ss zzzz",\r
+                "HH:mm:ss z",\r
+                "HH:mm:ss",\r
+                "HH:mm",\r
+                "EEEE, d'mh' MMMM y G",\r
+                "d'mh' MMMM y G",\r
+                "d MMM y G",\r
+                "d/M/y GGGGG",\r
+                "{1} {0}",\r
+                "{1} {0}",\r
+                "{1} {0}",\r
+                "{1} {0}",\r
+                "{1} {0}",\r
+            }\r
+            availableFormats{\r
+                MMMMd{"d'mh' MMMM"}\r
+                yMM{"LL/y"}\r
+                yyyyM{"L/y GGGGG"}\r
+                yyyyMMMM{"LLLL y G"}\r
+            }\r
+            intervalFormats{\r
+                M{\r
+                    M{"L – L"}\r
+                }\r
+            }\r
+        }\r
+        islamic{\r
+            DateTimePatterns{\r
+                "HH:mm:ss zzzz",\r
+                "HH:mm:ss z",\r
+                "HH:mm:ss",\r
+                "HH:mm",\r
+                "EEEE, d'mh' MMMM y G",\r
+                "d'mh' MMMM y G",\r
+                "d MMM y G",\r
+                "d/M/y GGGGG",\r
+                "{1} {0}",\r
+                "{1} 'aig' {0}",\r
+                "{1} 'aig' {0}",\r
+                "{1} {0}",\r
+                "{1} {0}",\r
+            }\r
+            availableFormats{\r
+                MMMMd{"d'mh' MMMM"}\r
+                yMM{"LL/y"}\r
+                yyyyM{"L/y GGGGG"}\r
+                yyyyMMMM{"LLLL y G"}\r
+            }\r
+            intervalFormats{\r
+                M{\r
+                    M{"L – L"}\r
+                }\r
+            }\r
+        }\r
+        japanese{\r
+            DateTimePatterns{\r
+                "HH:mm:ss zzzz",\r
+                "HH:mm:ss z",\r
+                "HH:mm:ss",\r
+                "HH:mm",\r
+                "EEEE, d'mh' MMMM y G",\r
+                "d'mh' MMMM y G",\r
+                "d MMM y G",\r
+                "d/M/y GGGGG",\r
+                "{1} {0}",\r
+                "{1} 'aig' {0}",\r
+                "{1} 'aig' {0}",\r
+                "{1} {0}",\r
+                "{1} {0}",\r
+            }\r
+            availableFormats{\r
+                MMMMd{"d'mh' MMMM"}\r
+                yMM{"LL/y"}\r
+                yyyyM{"L/y GGGGG"}\r
+                yyyyMMMM{"LLLL y G"}\r
+            }\r
+            intervalFormats{\r
+                M{\r
+                    M{"L – L"}\r
+                }\r
+            }\r
+        }\r
+        persian{\r
             DateTimePatterns{\r
                 "HH:mm:ss zzzz",\r
                 "HH:mm:ss z",\r
                 "HH:mm:ss",\r
                 "HH:mm",\r
-                "EEEE, d MMMM y G",\r
-                "d MMMM y G",\r
+                "EEEE, d'mh' MMMM y G",\r
+                "d'mh' MMMM y G",\r
                 "d MMM y G",\r
                 "d/M/y GGGGG",\r
                 "{1} {0}",\r
+                "{1} 'aig' {0}",\r
+                "{1} 'aig' {0}",\r
+                "{1} {0}",\r
                 "{1} {0}",\r
+            }\r
+            availableFormats{\r
+                MMMMd{"d'mh' MMMM"}\r
+                yMM{"LL/y"}\r
+                yyyyM{"L/y GGGGG"}\r
+                yyyyMMMM{"LLLL y G"}\r
+            }\r
+            intervalFormats{\r
+                M{\r
+                    M{"L – L"}\r
+                }\r
+            }\r
+        }\r
+        roc{\r
+            DateTimePatterns{\r
+                "HH:mm:ss zzzz",\r
+                "HH:mm:ss z",\r
+                "HH:mm:ss",\r
+                "HH:mm",\r
+                "EEEE, d'mh' MMMM y G",\r
+                "d'mh' MMMM y G",\r
+                "d MMM y G",\r
+                "d/M/y GGGGG",\r
                 "{1} {0}",\r
+                "{1} 'aig' {0}",\r
+                "{1} 'aig' {0}",\r
                 "{1} {0}",\r
                 "{1} {0}",\r
             }\r
             availableFormats{\r
                 Ed{"E, d"}\r
+                MMMMd{"d'mh' MMMM"}\r
                 d{"d"}\r
+                yMM{"LL/y"}\r
+                yyyyM{"L/y GGGGG"}\r
+                yyyyMMMM{"LLLL y G"}\r
             }\r
             eras{\r
                 abbreviated{\r
@@ -1552,6 +2608,11 @@ gd{
                     "Mínguó",\r
                 }\r
             }\r
+            intervalFormats{\r
+                M{\r
+                    M{"L – L"}\r
+                }\r
+            }\r
         }\r
     }\r
     characterLabel{\r
@@ -2722,4 +3783,36 @@ gd{
         US{"SA"}\r
         metric{"Meatrach"}\r
     }\r
+    parse{\r
+        date{\r
+            lenient{\r
+                "[\\--/]",\r
+                "[\\:∶]",\r
+            }\r
+        }\r
+        general{\r
+            lenient{\r
+                "[.․。︒﹒.。]",\r
+                "['ʼ՚᾽᾿’']",\r
+                "[%٪﹪%]",\r
+                "[؉‰]",\r
+                "[\$﹩$$]",\r
+                "[£₤]",\r
+                "[¥¥]",\r
+                "[₩₩]",\r
+                "[₨₹{Rp}{Rs}]",\r
+            }\r
+        }\r
+        number{\r
+            lenient{\r
+                "[\\-‒⁻₋−➖﹣-]",\r
+                "[,،٫、︐︑﹐﹑,、]",\r
+                "[+⁺₊➕﬩﹢+]",\r
+            }\r
+            stricter{\r
+                "[,٫︐﹐,]",\r
+                "[.․﹒.。]",\r
+            }\r
+        }\r
+    }\r
 }\r
index 5f6b883..fc0f8b8 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 gl{\r
-    AuxExemplarCharacters{"[ª à â ä ã ç è ê ë ì î ï º ò ô ö õ ù û]"}\r
+    AuxExemplarCharacters{"[ª Ã  Ã¢ Ã¥ Ã¤ Ã£ Ã§ Ã¨ Ãª Ã« Ã¬ Ã® Ã¯ Âº Ã² Ã´ Ã¶ Ãµ Ã¹ Ã»]"}\r
     Ellipsis{\r
         final{"{0}…"}\r
         initial{"…{0}"}\r
@@ -22,7 +22,9 @@ gl{
         default{"latn"}\r
         latn{\r
             miscPatterns{\r
-                atLeast{"⩾{0}"}\r
+                approximately{"~{0}"}\r
+                atLeast{"≥{0}"}\r
+                atMost{"≤{0}"}\r
                 range{"{0}–{1}"}\r
             }\r
             patterns{\r
@@ -149,16 +151,16 @@ gl{
                         other{"0"}\r
                     }\r
                     1000000{\r
-                        one{"0 mill'.'"}\r
-                        other{"0 mill'.'"}\r
+                        one{"0 M"}\r
+                        other{"0 M"}\r
                     }\r
                     10000000{\r
-                        one{"00 mill'.'"}\r
-                        other{"00 mill'.'"}\r
+                        one{"00 M"}\r
+                        other{"00 M"}\r
                     }\r
                     100000000{\r
-                        one{"000 mill"}\r
-                        other{"000 mill"}\r
+                        one{"000 M"}\r
+                        other{"000 M"}\r
                     }\r
                     1000000000{\r
                         one{"0"}\r
@@ -173,16 +175,16 @@ gl{
                         other{"0"}\r
                     }\r
                     1000000000000{\r
-                        one{"0 bill'.'"}\r
-                        other{"0 bill'.'"}\r
+                        one{"0 B"}\r
+                        other{"0 B"}\r
                     }\r
                     10000000000000{\r
-                        one{"00 bill'.'"}\r
-                        other{"00 bill'.'"}\r
+                        one{"00 B"}\r
+                        other{"00 B"}\r
                     }\r
                     100000000000000{\r
-                        one{"000 bill'.'"}\r
-                        other{"000 bill'.'"}\r
+                        one{"000 B"}\r
+                        other{"000 B"}\r
                     }\r
                 }\r
             }\r
@@ -213,7 +215,7 @@ gl{
         minimumGroupingDigits{"1"}\r
         native{"latn"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.94"}\r
     calendar{\r
         generic{\r
             DateTimePatterns{\r
@@ -402,7 +404,7 @@ gl{
                 "HH:mm",\r
                 "EEEE, d 'de' MMMM 'de' y",\r
                 "d 'de' MMMM 'de' y",\r
-                "dd/MM/y",\r
+                "d 'de' MMM 'de' y",\r
                 "dd/MM/yy",\r
                 "{0}, {1}",\r
                 "{0} 'do' {1}",\r
@@ -427,7 +429,7 @@ gl{
                 Ehms{"E, h:mm:ss a"}\r
                 Gy{"y G"}\r
                 GyMMM{"MMM 'de' y G"}\r
-                GyMMMEd{"E, d/MM/y G"}\r
+                GyMMMEd{"E, d 'de' MMM 'de' y G"}\r
                 GyMMMd{"d 'de' MMMM 'de' y G"}\r
                 H{"HH"}\r
                 Hm{"HH:mm"}\r
@@ -649,15 +651,15 @@ gl{
                     d{"E, d/M – E, d/M"}\r
                 }\r
                 MMM{\r
-                    M{"MMMM–MMMM"}\r
+                    M{"MMMMMM"}\r
                 }\r
                 MMMEd{\r
                     M{"E, d MMM – E, d MMM"}\r
-                    d{"E, d 'de' MMMM – E, d 'de' MMMM"}\r
+                    d{"E, d 'de' MMM – E, d 'de' MMM"}\r
                 }\r
                 MMMd{\r
                     M{"d MMM – d MMM"}\r
-                    d{"d–d 'de' MMMM"}\r
+                    d{"d–d 'de' MMM"}\r
                 }\r
                 Md{\r
                     M{"d/M – d/M"}\r
@@ -702,9 +704,9 @@ gl{
                     y{"MMM 'de' y – MMM 'de' y"}\r
                 }\r
                 yMMMEd{\r
-                    M{"E, d 'de' MMMM – E, d 'de' MMMM 'de' y"}\r
+                    M{"E, d 'de' MMM – E, d 'de' MMM 'de' y"}\r
                     d{"E, d MMM – E, d MMM y"}\r
-                    y{"E, d 'de' MMMM 'de' y – E, d 'de' MMMM 'de' y"}\r
+                    y{"E, d 'de' MMM 'de' y – E, d 'de' MMM 'de' y"}\r
                 }\r
                 yMMMM{\r
                     M{"MMMM–MMMM 'de' y"}\r
@@ -898,7 +900,7 @@ gl{
         japanese_kana{"kanas xaponeses"}\r
         kanbun{"kanbun"}\r
         kanji{"kanjis"}\r
-        keycap{"teclas"}\r
+        keycap{"tecla"}\r
         leftwards_arrows{"frechas á esquerda"}\r
         leftwards_rightwards_arrows{"frechas á esquerda e dereita"}\r
         letterlike_symbols{"símbolos con letras"}\r
@@ -961,8 +963,8 @@ gl{
             }\r
             relativeTime{\r
                 future{\r
-                    one{"dentro de {0} día"}\r
-                    other{"dentro de {0} días"}\r
+                    one{"en {0} día"}\r
+                    other{"en {0} días"}\r
                 }\r
                 past{\r
                     one{"hai {0} día"}\r
@@ -971,15 +973,15 @@ gl{
             }\r
         }\r
         day-narrow{\r
-            dn{"d."}\r
+            dn{"día"}\r
             relativeTime{\r
                 future{\r
-                    one{"en {0} d."}\r
-                    other{"en {0} d."}\r
+                    one{"en {0} día"}\r
+                    other{"en {0} días"}\r
                 }\r
                 past{\r
-                    one{"hai {0} d."}\r
-                    other{"hai {0} d."}\r
+                    one{"hai {0} día"}\r
+                    other{"hai {0} días"}\r
                 }\r
             }\r
         }\r
@@ -987,8 +989,8 @@ gl{
             dn{"día"}\r
             relativeTime{\r
                 future{\r
-                    one{"dentro de {0} día"}\r
-                    other{"dentro de {0} días"}\r
+                    one{"en {0} día"}\r
+                    other{"en {0} días"}\r
                 }\r
                 past{\r
                     one{"hai {0} día"}\r
@@ -1000,7 +1002,7 @@ gl{
             dn{"día do ano"}\r
         }\r
         dayOfYear-narrow{\r
-            dn{"d. do a."}\r
+            dn{"día do ano"}\r
         }\r
         dayOfYear-short{\r
             dn{"día do ano"}\r
@@ -1018,7 +1020,7 @@ gl{
             dn{"era"}\r
         }\r
         era-narrow{\r
-            dn{"e."}\r
+            dn{"era"}\r
         }\r
         era-short{\r
             dn{"era"}\r
@@ -1031,8 +1033,8 @@ gl{
             }\r
             relativeTime{\r
                 future{\r
-                    one{"dentro de {0} venres"}\r
-                    other{"dentro de {0} venres"}\r
+                    one{"en {0} venres"}\r
+                    other{"en {0} venres"}\r
                 }\r
                 past{\r
                     one{"hai {0} venres"}\r
@@ -1065,8 +1067,8 @@ gl{
             }\r
             relativeTime{\r
                 future{\r
-                    one{"dentro de {0} ven."}\r
-                    other{"dentro de {0} ven."}\r
+                    one{"en {0} ven."}\r
+                    other{"en {0} ven."}\r
                 }\r
                 past{\r
                     one{"hai {0} ven."}\r
@@ -1081,8 +1083,8 @@ gl{
             }\r
             relativeTime{\r
                 future{\r
-                    one{"dentro de {0} hora"}\r
-                    other{"dentro de {0} horas"}\r
+                    one{"en {0} hora"}\r
+                    other{"en {0} horas"}\r
                 }\r
                 past{\r
                     one{"hai {0} hora"}\r
@@ -1107,8 +1109,8 @@ gl{
             dn{"h"}\r
             relativeTime{\r
                 future{\r
-                    one{"dentro de {0} h"}\r
-                    other{"dentro de {0} h"}\r
+                    one{"en {0} h"}\r
+                    other{"en {0} h"}\r
                 }\r
                 past{\r
                     one{"hai {0} h"}\r
@@ -1123,8 +1125,8 @@ gl{
             }\r
             relativeTime{\r
                 future{\r
-                    one{"dentro de {0} minuto"}\r
-                    other{"dentro de {0} minutos"}\r
+                    one{"en {0} minuto"}\r
+                    other{"en {0} minutos"}\r
                 }\r
                 past{\r
                     one{"hai {0} minuto"}\r
@@ -1149,8 +1151,8 @@ gl{
             dn{"min"}\r
             relativeTime{\r
                 future{\r
-                    one{"dentro de {0} min"}\r
-                    other{"dentro de {0} min"}\r
+                    one{"en {0} min"}\r
+                    other{"en {0} min"}\r
                 }\r
                 past{\r
                     one{"hai {0} min"}\r
@@ -1166,8 +1168,8 @@ gl{
             }\r
             relativeTime{\r
                 future{\r
-                    one{"dentro de {0} luns"}\r
-                    other{"dentro de {0} luns"}\r
+                    one{"en {0} luns"}\r
+                    other{"en {0} luns"}\r
                 }\r
                 past{\r
                     one{"hai {0} luns"}\r
@@ -1200,8 +1202,8 @@ gl{
             }\r
             relativeTime{\r
                 future{\r
-                    one{"dentro de {0} luns"}\r
-                    other{"dentro de {0} luns"}\r
+                    one{"en {0} luns"}\r
+                    other{"en {0} luns"}\r
                 }\r
                 past{\r
                     one{"hai {0} luns"}\r
@@ -1218,8 +1220,8 @@ gl{
             }\r
             relativeTime{\r
                 future{\r
-                    one{"dentro de {0} mes"}\r
-                    other{"dentro de {0} meses"}\r
+                    one{"en {0} mes"}\r
+                    other{"en {0} meses"}\r
                 }\r
                 past{\r
                     one{"hai {0} mes"}\r
@@ -1228,15 +1230,15 @@ gl{
             }\r
         }\r
         month-narrow{\r
-            dn{"m."}\r
+            dn{"mes"}\r
             relativeTime{\r
                 future{\r
-                    one{"en {0} m."}\r
-                    other{"en {0} m."}\r
+                    one{"en {0} mes"}\r
+                    other{"en {0} meses"}\r
                 }\r
                 past{\r
-                    one{"hai {0} m."}\r
-                    other{"hai {0} m."}\r
+                    one{"hai {0} mes"}\r
+                    other{"hai {0} meses"}\r
                 }\r
             }\r
         }\r
@@ -1249,12 +1251,12 @@ gl{
             }\r
             relativeTime{\r
                 future{\r
-                    one{"dentro de {0} mes"}\r
-                    other{"dentro de {0} mes."}\r
+                    one{"en {0} mes"}\r
+                    other{"en {0} meses"}\r
                 }\r
                 past{\r
                     one{"hai {0} mes"}\r
-                    other{"hai {0} mes."}\r
+                    other{"hai {0} meses"}\r
                 }\r
             }\r
         }\r
@@ -1267,8 +1269,8 @@ gl{
             }\r
             relativeTime{\r
                 future{\r
-                    one{"dentro de {0} trimestre"}\r
-                    other{"dentro de {0} trimestres"}\r
+                    one{"en {0} trimestre"}\r
+                    other{"en {0} trimestres"}\r
                 }\r
                 past{\r
                     one{"hai {0} trimestre"}\r
@@ -1303,8 +1305,8 @@ gl{
             }\r
             relativeTime{\r
                 future{\r
-                    one{"dentro de {0} trim."}\r
-                    other{"dentro de {0} trim."}\r
+                    one{"en {0} trim."}\r
+                    other{"en {0} trim."}\r
                 }\r
                 past{\r
                     one{"hai {0} trim."}\r
@@ -1320,8 +1322,8 @@ gl{
             }\r
             relativeTime{\r
                 future{\r
-                    one{"dentro de {0} sábado"}\r
-                    other{"dentro de {0} sábados"}\r
+                    one{"en {0} sábado"}\r
+                    other{"en {0} sábados"}\r
                 }\r
                 past{\r
                     one{"hai {0} sábado"}\r
@@ -1354,8 +1356,8 @@ gl{
             }\r
             relativeTime{\r
                 future{\r
-                    one{"dentro de {0} sáb."}\r
-                    other{"dentro de {0} sáb."}\r
+                    one{"en {0} sáb."}\r
+                    other{"en {0} sáb."}\r
                 }\r
                 past{\r
                     one{"hai {0} sáb."}\r
@@ -1370,8 +1372,8 @@ gl{
             }\r
             relativeTime{\r
                 future{\r
-                    one{"dentro de {0} segundo"}\r
-                    other{"dentro de {0} segundos"}\r
+                    one{"en {0} segundo"}\r
+                    other{"en {0} segundos"}\r
                 }\r
                 past{\r
                     one{"hai {0} segundo"}\r
@@ -1396,8 +1398,8 @@ gl{
             dn{"s"}\r
             relativeTime{\r
                 future{\r
-                    one{"dentro de {0} s"}\r
-                    other{"dentro de {0} s"}\r
+                    one{"en {0} s"}\r
+                    other{"en {0} s"}\r
                 }\r
                 past{\r
                     one{"hai {0} s"}\r
@@ -1413,8 +1415,8 @@ gl{
             }\r
             relativeTime{\r
                 future{\r
-                    one{"dentro de {0} domingo"}\r
-                    other{"dentro de {0} domingos"}\r
+                    one{"en {0} domingo"}\r
+                    other{"en {0} domingos"}\r
                 }\r
                 past{\r
                     one{"hai {0} domingo"}\r
@@ -1447,8 +1449,8 @@ gl{
             }\r
             relativeTime{\r
                 future{\r
-                    one{"dentro de {0} dom."}\r
-                    other{"dentro de {0} dom."}\r
+                    one{"en {0} dom."}\r
+                    other{"en {0} dom."}\r
                 }\r
                 past{\r
                     one{"hai {0} dom."}\r
@@ -1464,8 +1466,8 @@ gl{
             }\r
             relativeTime{\r
                 future{\r
-                    one{"dentro de {0} xoves"}\r
-                    other{"dentro de {0} xoves"}\r
+                    one{"en {0} xoves"}\r
+                    other{"en {0} xoves"}\r
                 }\r
                 past{\r
                     one{"hai {0} xoves"}\r
@@ -1498,8 +1500,8 @@ gl{
             }\r
             relativeTime{\r
                 future{\r
-                    one{"dentro de {0} xov."}\r
-                    other{"dentro de {0} xov."}\r
+                    one{"en {0} xov."}\r
+                    other{"en {0} xov."}\r
                 }\r
                 past{\r
                     one{"hai {0} xov."}\r
@@ -1515,8 +1517,8 @@ gl{
             }\r
             relativeTime{\r
                 future{\r
-                    one{"dentro de {0} martes"}\r
-                    other{"dentro de {0} martes"}\r
+                    one{"en {0} martes"}\r
+                    other{"en {0} martes"}\r
                 }\r
                 past{\r
                     one{"hai {0} martes"}\r
@@ -1549,8 +1551,8 @@ gl{
             }\r
             relativeTime{\r
                 future{\r
-                    one{"dentro de {0} mar."}\r
-                    other{"dentro de {0} mar."}\r
+                    one{"en {0} mar."}\r
+                    other{"en {0} mar."}\r
                 }\r
                 past{\r
                     one{"hai {0} mar."}\r
@@ -1566,8 +1568,8 @@ gl{
             }\r
             relativeTime{\r
                 future{\r
-                    one{"dentro de {0} mércores"}\r
-                    other{"dentro de {0} mércores"}\r
+                    one{"en {0} mércores"}\r
+                    other{"en {0} mércores"}\r
                 }\r
                 past{\r
                     one{"hai {0} mércores"}\r
@@ -1600,8 +1602,8 @@ gl{
             }\r
             relativeTime{\r
                 future{\r
-                    one{"dentro de {0} mér."}\r
-                    other{"dentro de {0} mér."}\r
+                    one{"en {0} mér."}\r
+                    other{"en {0} mér."}\r
                 }\r
                 past{\r
                     one{"hai {0} mér."}\r
@@ -1619,8 +1621,8 @@ gl{
             relativePeriod{"a semana do {0}"}\r
             relativeTime{\r
                 future{\r
-                    one{"dentro de {0} semana"}\r
-                    other{"dentro de {0} semanas"}\r
+                    one{"en {0} semana"}\r
+                    other{"en {0} semanas"}\r
                 }\r
                 past{\r
                     one{"hai {0} semana"}\r
@@ -1652,8 +1654,8 @@ gl{
             relativePeriod{"a semana do {0}"}\r
             relativeTime{\r
                 future{\r
-                    one{"dentro de {0} sem."}\r
-                    other{"dentro de {0} sem."}\r
+                    one{"en {0} sem."}\r
+                    other{"en {0} sem."}\r
                 }\r
                 past{\r
                     one{"hai {0} sem."}\r
@@ -1665,7 +1667,7 @@ gl{
             dn{"semana do mes"}\r
         }\r
         weekOfMonth-narrow{\r
-            dn{"sem. do m."}\r
+            dn{"sem. do mes"}\r
         }\r
         weekOfMonth-short{\r
             dn{"sem. do mes"}\r
@@ -1674,7 +1676,7 @@ gl{
             dn{"día da semana"}\r
         }\r
         weekday-narrow{\r
-            dn{"d. da sem."}\r
+            dn{"día da sem."}\r
         }\r
         weekday-short{\r
             dn{"día da sem."}\r
@@ -1683,7 +1685,7 @@ gl{
             dn{"semana do mes"}\r
         }\r
         weekdayOfMonth-narrow{\r
-            dn{"sem. do m."}\r
+            dn{"sem. do mes"}\r
         }\r
         weekdayOfMonth-short{\r
             dn{"sem. do mes"}\r
@@ -1697,8 +1699,8 @@ gl{
             }\r
             relativeTime{\r
                 future{\r
-                    one{"dentro de {0} ano"}\r
-                    other{"dentro de {0} anos"}\r
+                    one{"en {0} ano"}\r
+                    other{"en {0} anos"}\r
                 }\r
                 past{\r
                     one{"hai {0} ano"}\r
@@ -1707,7 +1709,7 @@ gl{
             }\r
         }\r
         year-narrow{\r
-            dn{"a."}\r
+            dn{"ano"}\r
             relative{\r
                 "-1"{"ano pasado"}\r
                 "0"{"este ano"}\r
@@ -1715,12 +1717,12 @@ gl{
             }\r
             relativeTime{\r
                 future{\r
-                    one{"en {0} a."}\r
-                    other{"en {0} a."}\r
+                    one{"en {0} ano"}\r
+                    other{"en {0} anos"}\r
                 }\r
                 past{\r
-                    one{"hai {0} a."}\r
-                    other{"hai {0} a."}\r
+                    one{"hai {0} ano"}\r
+                    other{"hai {0} anos"}\r
                 }\r
             }\r
         }\r
@@ -1733,8 +1735,8 @@ gl{
             }\r
             relativeTime{\r
                 future{\r
-                    one{"dentro de {0} ano"}\r
-                    other{"dentro de {0} anos"}\r
+                    one{"en {0} ano"}\r
+                    other{"en {0} anos"}\r
                 }\r
                 past{\r
                     one{"hai {0} ano"}\r
@@ -1795,4 +1797,36 @@ gl{
         US{"estadounidense"}\r
         metric{"métrico decimal"}\r
     }\r
+    parse{\r
+        date{\r
+            lenient{\r
+                "[\\--/]",\r
+                "[\\:∶]",\r
+            }\r
+        }\r
+        general{\r
+            lenient{\r
+                "[.․。︒﹒.。]",\r
+                "['ʼ՚᾽᾿’']",\r
+                "[%٪﹪%]",\r
+                "[؉‰]",\r
+                "[\$﹩$$]",\r
+                "[£₤]",\r
+                "[¥¥]",\r
+                "[₩₩]",\r
+                "[₨₹{Rp}{Rs}]",\r
+            }\r
+        }\r
+        number{\r
+            lenient{\r
+                "[\\-‒⁻₋−➖﹣-]",\r
+                "[,،٫、︐︑﹐﹑,、]",\r
+                "[+⁺₊➕﬩﹢+]",\r
+            }\r
+            stricter{\r
+                "[,٫︐﹐,]",\r
+                "[.․﹒.。]",\r
+            }\r
+        }\r
+    }\r
 }\r
index 7053cc5..4892a74 100644 (file)
@@ -180,7 +180,7 @@ gsw{
             }\r
         }\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.41.34"}\r
     calendar{\r
         buddhist{\r
             DateTimePatterns{\r
index de3546c..91ff6fb 100644 (file)
@@ -55,7 +55,9 @@ gu{
         }\r
         latn{\r
             miscPatterns{\r
+                approximately{"~{0}"}\r
                 atLeast{"{0}+"}\r
+                atMost{"≤{0}"}\r
                 range{"{0}-{1}"}\r
             }\r
             patterns{\r
@@ -250,7 +252,7 @@ gu{
         minimumGroupingDigits{"1"}\r
         native{"gujr"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.2"}\r
     calendar{\r
         buddhist{\r
             eras{\r
@@ -2148,7 +2150,7 @@ gu{
             }\r
             relativeTime{\r
                 future{\r
-                    one{"+{0} રવિવાર"}\r
+                    one{"{0} રવિવારમાં"}\r
                     other{"{0} રવિવારમાં"}\r
                 }\r
                 past{\r
@@ -2220,8 +2222,8 @@ gu{
                     other{"{0} ગુરુવારમાં"}\r
                 }\r
                 past{\r
-                    one{"-{0} ગુરુવાર"}\r
-                    other{"-{0} ગુરુવાર"}\r
+                    one{"{0} ગુરુ. પહેલાં"}\r
+                    other{"{0} ગુરુ. પહેલાં"}\r
                 }\r
             }\r
         }\r
@@ -2528,8 +2530,13 @@ gu{
         general{\r
             lenient{\r
                 "[.․。︒﹒.。]",\r
+                "['ʼ՚᾽᾿’']",\r
+                "[%٪﹪%]",\r
+                "[؉‰]",\r
                 "[\$﹩$$]",\r
                 "[£₤]",\r
+                "[¥¥]",\r
+                "[₩₩]",\r
                 "[₨₹{Rp}{Rs}]",\r
             }\r
         }\r
index 770a647..e88e829 100644 (file)
@@ -173,7 +173,7 @@ ha{
             }\r
         }\r
     }\r
-    Version{"2.1.39.11"}\r
+    Version{"2.1.43.2"}\r
     calendar{\r
         generic{\r
             DateTimePatterns{\r
index bf3d3e3..fbe5351 100644 (file)
@@ -4,7 +4,7 @@ ha_NE{
     AuxExemplarCharacters{"[á à â é è ê í ì î ó ò ô p q {r\u0303} ú ù û v x {ʼy}]"}\r
     ExemplarCharacters{"[a b ɓ c d ɗ e f g h i j k ƙ l m n o r s {sh} t {ts} u w y ƴ z ʼ]"}\r
     ExemplarCharactersIndex{"[A B Ɓ C D Ɗ E F G H I J K Ƙ L M N O P Q R S T U V W X Y Ƴ Z]"}\r
-    Version{"2.1.39.37"}\r
+    Version{"2.1.44.53"}\r
     fields{\r
         day{\r
             relative{\r
index 1bb07b3..1388092 100644 (file)
@@ -7,7 +7,7 @@ haw{
     NumberElements{\r
         latn{\r
             miscPatterns{\r
-                atLeast{"⩾{0}"}\r
+                atLeast{"â\89¥{0}"}\r
                 range{"{0}–{1}"}\r
             }\r
             patterns{\r
@@ -32,7 +32,7 @@ haw{
         }\r
         minimumGroupingDigits{"1"}\r
     }\r
-    Version{"2.1.38.69"}\r
+    Version{"2.1.43.94"}\r
     calendar{\r
         generic{\r
             DateTimePatterns{\r
index fa756b2..a3a6b67 100644 (file)
@@ -34,7 +34,9 @@ he{
         default{"latn"}\r
         latn{\r
             miscPatterns{\r
-                atLeast{"⩾{0}+"}\r
+                approximately{"~{0}"}\r
+                atLeast{"≥{0}+"}\r
+                atMost{"≤{0}"}\r
                 range{"{0}–{1}"}\r
             }\r
             patterns{\r
@@ -300,7 +302,7 @@ he{
         native{"latn"}\r
         traditional{"hebr"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.94"}\r
     calendar{\r
         buddhist{\r
             eras{\r
@@ -1837,6 +1839,7 @@ he{
                     "Taishō",\r
                     "Shōwa",\r
                     "Heisei",\r
+                    "Qqqq",\r
                 }\r
             }\r
         }\r
@@ -1962,8 +1965,8 @@ he{
     }\r
     characterLabel{\r
         activities{"פעילויות"}\r
-        african_scripts{"סקר×\99פ×\98×\99×\9d של שפות אפריקאיות"}\r
-        american_scripts{"סקר×\99פ×\98×\99×\9d של שפות אמריקאיות"}\r
+        african_scripts{"×\9bת×\91 של שפות אפריקאיות"}\r
+        american_scripts{"×\9bת×\91 של שפות אמריקאיות"}\r
         animal{"חיות"}\r
         animals_nature{"בעלי חיים וטבע"}\r
         arrows{"חצים"}\r
@@ -1980,9 +1983,9 @@ he{
         divination_symbols{"סמלי חיזוי עתידות"}\r
         downwards_arrows{"חצים כלפי מטה"}\r
         downwards_upwards_arrows{"חצים כלפי מעלה ומטה"}\r
-        east_asian_scripts{"סקר×\99פ×\98×\99×\9d של מזרח אסיה"}\r
+        east_asian_scripts{"×\9bת×\91 של מזרח אסיה"}\r
         emoji{"אמוג׳י"}\r
-        european_scripts{"סקר×\99פ×\98×\99×\9d ×\90×\99ר×\95פ×\90×\99×\99×\9d"}\r
+        european_scripts{"×\9bת×\91 ×©×\9c ×©×¤×\95ת ×\90×\99ר×\95פ×\99×\95ת"}\r
         female{"אישה"}\r
         flag{"דגל"}\r
         flags{"דגלים"}\r
@@ -1998,7 +2001,7 @@ he{
         hanzi_simplified{"האנזי (פשוטה)"}\r
         hanzi_traditional{"האנזי (מסורתית)"}\r
         heart{"לב"}\r
-        historic_scripts{"סקר×\99פ×\98×\99×\9d ×\94×\99ס×\98×\95ר×\99×\99×\9d"}\r
+        historic_scripts{"×\9eער×\9b×\95ת ×\9bת×\91 ×\94×\99ס×\98×\95ר×\99×\95ת"}\r
         ideographic_desc_characters{"תווי תיאור אידיאוגרפי"}\r
         japanese_kana{"קאנה יפנית"}\r
         kanbun{"קאנבון"}\r
@@ -2010,9 +2013,9 @@ he{
         limited_use{"לשימוש מוגבל"}\r
         male{"גבר"}\r
         math_symbols{"סמלים מתמטיים"}\r
-        middle_eastern_scripts{"סקר×\99פ×\98×\99×\9d של המזרח התיכון"}\r
+        middle_eastern_scripts{"×\9eער×\9b×\95ת ×\9bת×\91 של המזרח התיכון"}\r
         miscellaneous{"שונות"}\r
-        modern_scripts{"סקר×\99פ×\98×\99×\9d ×\9e×\95×\93רנ×\99×\99×\9d"}\r
+        modern_scripts{"×\9eער×\9b×\95ת ×\9bת×\91 ×\9e×\95×\93רנ×\99×\95ת"}\r
         modifier{"סימן מחליף"}\r
         musical_symbols{"סמלים מוזיקליים"}\r
         nature{"טבע"}\r
@@ -2045,7 +2048,7 @@ he{
         variant_forms{"חלופות"}\r
         vocalic_jamo{"ג׳אמו ווקאלי"}\r
         weather{"מזג אוויר"}\r
-        western_asian_scripts{"סקר×\99פ×\98×\99×\9d ממערב אסיה"}\r
+        western_asian_scripts{"×\9eער×\9b×\95ת ×\9bת×\91 ממערב אסיה"}\r
         whitespace{"רווח לבן"}\r
     }\r
     delimiters{\r
@@ -2139,7 +2142,7 @@ he{
             dn{"לפנה״צ/אחה״צ"}\r
         }\r
         dayperiod-narrow{\r
-            dn{"לפנה״צ/אחה״צ"}\r
+            dn{"AM/PM"}\r
         }\r
         dayperiod-short{\r
             dn{"AM/PM"}\r
@@ -3116,8 +3119,13 @@ he{
         general{\r
             lenient{\r
                 "[.․。︒﹒.。]",\r
+                "['ʼ՚᾽᾿’']",\r
+                "[%٪﹪%]",\r
+                "[؉‰]",\r
                 "[\$﹩$$]",\r
                 "[£₤]",\r
+                "[¥¥]",\r
+                "[₩₩]",\r
                 "[₨₹{Rp}{Rs}]",\r
             }\r
         }\r
index ff9c346..ba19a82 100644 (file)
@@ -41,7 +41,9 @@ hi{
         }\r
         latn{\r
             miscPatterns{\r
+                approximately{"~{0}"}\r
                 atLeast{"{0}+"}\r
+                atMost{"≤{0}"}\r
                 range{"{0}–{1}"}\r
             }\r
             patterns{\r
@@ -222,11 +224,11 @@ hi{
         }\r
         minimalPairs{\r
             ordinal{\r
-                few{"{0}था दाहिना मोड़ लें॰"}\r
-                many{"{0}ठा दाहिना मोड़ लें"}\r
-                one{"{0}ला दाहिना मोड़ लें"}\r
-                other{"{0}वां दाहिना मोड़ लें"}\r
-                two{"{0}रा दाहिना मोड़ लें"}\r
+                few{"{0}था दाहिना मोड़ लें."}\r
+                many{"{0}ठा दाहिना मोड़ लें."}\r
+                one{"{0}ला दाहिना मोड़ लें."}\r
+                other{"{0}वां दाहिना मोड़ लें."}\r
+                two{"{0}रा दाहिना मोड़ लें."}\r
             }\r
             plural{\r
                 one{"{0} घंटा"}\r
@@ -236,7 +238,7 @@ hi{
         minimumGroupingDigits{"1"}\r
         native{"deva"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.50"}\r
     calendar{\r
         ethiopic{\r
             monthNames{\r
@@ -1239,6 +1241,7 @@ hi{
                     "ताईशो",\r
                     "शोवा",\r
                     "हेईसेई",\r
+                    "Qqqq",\r
                 }\r
             }\r
         }\r
@@ -1267,7 +1270,7 @@ hi{
         activities{"गतिविधि"}\r
         african_scripts{"अफ़्रीकी लिपि"}\r
         american_scripts{"अमेरिकी लिपि"}\r
-        animal{"à¤\9cानवर"}\r
+        animal{"पशà¥\81"}\r
         animals_nature{"पशु और प्रकृति"}\r
         arrows{"तीर"}\r
         body{"शरीर"}\r
@@ -1280,7 +1283,7 @@ hi{
         dash_connector{"डैश या कनेक्टर"}\r
         digits{"अंक"}\r
         dingbats{"dingbat"}\r
-        divination_symbols{"à¤\85नुमान चिह्न"}\r
+        divination_symbols{"पà¥\82रà¥\8dवानुमान चिह्न"}\r
         downwards_arrows{"नीचे की ओर वाला तीर"}\r
         downwards_upwards_arrows{"नीचे की ओर ऊपर की ओर तीर"}\r
         east_asian_scripts{"पूर्वी एशियाई लिपि"}\r
@@ -1292,24 +1295,24 @@ hi{
         food_drink{"खान-पान"}\r
         format{"प्रारूप"}\r
         format_whitespace{"प्रारूप और श्वेतरिक्ति"}\r
-        full_width_form_variant{"पà¥\82रà¥\80 à¤\9aà¥\8cड़ाà¤\88 à¤µà¤¾à¤²à¤¾ à¤«à¤¾र्म वेरिएंट"}\r
+        full_width_form_variant{"पà¥\82रà¥\80 à¤\9aà¥\8cड़ाà¤\88 à¤µà¤¾à¤²à¤¾ à¤«à¤¼à¥\89र्म वेरिएंट"}\r
         geometric_shapes{"ज्यामितीय आकार"}\r
-        half_width_form_variant{"half-width variant"}\r
-        han_characters{"Han character"}\r
-        han_radicals{"Han radical"}\r
-        hanja{"hanja"}\r
-        hanzi_simplified{"Hanzi (simplified)"}\r
-        hanzi_traditional{"Hanzi (traditional)"}\r
+        half_width_form_variant{"आधी चौड़ाई वेरिएंट"}\r
+        han_characters{"हान वर्ण"}\r
+        han_radicals{"हान मूलशब्द"}\r
+        hanja{"हांजा"}\r
+        hanzi_simplified{"चीनी हान वर्ण (सरलीकृत)"}\r
+        hanzi_traditional{"चीनी हान वर्ण (पारंपरिक)"}\r
         heart{"दिल"}\r
         historic_scripts{"ऐतिहासिक लिपि"}\r
-        ideographic_desc_characters{"ideographic desc. character"}\r
+        ideographic_desc_characters{"आइडियोग्राफ़िक विवरणात्मक वर्ण"}\r
         japanese_kana{"जापानी काना"}\r
-        kanbun{"kanbun"}\r
+        kanbun{"कानबुन"}\r
         kanji{"कांजी"}\r
         keycap{"कीकैप"}\r
         leftwards_arrows{"बाईं ओर तीर"}\r
         leftwards_rightwards_arrows{"दाईं व बाईं ओर वाला तीर"}\r
-        letterlike_symbols{"पतà¥\8dर-à¤\9cà¥\88सà¥\87 à¤ªà¥\8dरतà¥\80à¤\95"}\r
+        letterlike_symbols{"à¤\85à¤\95à¥\8dषर à¤¸à¤¦à¥\83श à¤\9aिहà¥\8dन"}\r
         limited_use{"सीमित उपयोग"}\r
         male{"पुरुष"}\r
         math_symbols{"गणितीय प्रतीक"}\r
@@ -1321,7 +1324,7 @@ hi{
         nature{"प्रकृति"}\r
         nonspacing{"गैर रिक्ति"}\r
         numbers{"संख्या"}\r
-        objects{"वस्तुएं"}\r
+        objects{"वस्तु"}\r
         other{"अन्य"}\r
         paired{"युग्मित"}\r
         person{"व्यक्ति"}\r
@@ -1332,7 +1335,7 @@ hi{
         punctuation{"विराम चिह्न"}\r
         rightwards_arrows{"बाईं ओर तीर"}\r
         sign_standard_symbols{"चिह्न या प्रतीक"}\r
-        small_form_variant{"à¤\9bà¥\8bà¤\9fà¥\87 à¤«à¤¾र्म वेरिएंट"}\r
+        small_form_variant{"à¤\9bà¥\8bà¤\9fà¥\87 à¤«à¤¼à¥\89र्म वेरिएंट"}\r
         smiley{"स्माइली"}\r
         smileys_people{"स्माइली या लोग"}\r
         south_asian_scripts{"दक्षिण एशियाई लिपि"}\r
@@ -1346,7 +1349,7 @@ hi{
         travel_places{"यात्रा या स्थान"}\r
         upwards_arrows{"ऊपर की ओर तीर"}\r
         variant_forms{"विविध रूप"}\r
-        vocalic_jamo{"vocalic jamo"}\r
+        vocalic_jamo{"वोकेलिक जामो"}\r
         weather{"मौसम"}\r
         western_asian_scripts{"पश्चिमी एशियाई लिपि"}\r
         whitespace{"श्वेतरिक्ति"}\r
@@ -2193,8 +2196,13 @@ hi{
         general{\r
             lenient{\r
                 "[.․。︒﹒.。]",\r
+                "['ʼ՚᾽᾿’']",\r
+                "[%٪﹪%]",\r
+                "[؉‰]",\r
                 "[\$﹩$$]",\r
                 "[£₤]",\r
+                "[¥¥]",\r
+                "[₩₩]",\r
                 "[₨₹{Rp}{Rs}]",\r
             }\r
         }\r
index e33fe87..96f5111 100644 (file)
@@ -22,14 +22,16 @@ hr{
         default{"latn"}\r
         latn{\r
             miscPatterns{\r
+                approximately{"~{0}"}\r
                 atLeast{"{0}+"}\r
+                atMost{"≤{0}"}\r
                 range{"{0} – {1}"}\r
             }\r
             patterns{\r
                 accountingFormat{"#,##0.00 ¤"}\r
                 currencyFormat{"#,##0.00 ¤"}\r
                 decimalFormat{"#,##0.###"}\r
-                percentFormat{"#,##0%"}\r
+                percentFormat{"#,##0 %"}\r
                 scientificFormat{"#E0"}\r
             }\r
             patternsLong{\r
@@ -250,7 +252,7 @@ hr{
         minimumGroupingDigits{"1"}\r
         native{"latn"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.50"}\r
     calendar{\r
         buddhist{\r
             eras{\r
@@ -1577,6 +1579,7 @@ hr{
                     "Taishō",\r
                     "Shōwa",\r
                     "Heisei",\r
+                    "Qqqq",\r
                 }\r
             }\r
         }\r
@@ -2773,4 +2776,36 @@ hr{
         US{"američki sustav"}\r
         metric{"metrički sustav"}\r
     }\r
+    parse{\r
+        date{\r
+            lenient{\r
+                "[\\--/]",\r
+                "[\\:∶]",\r
+            }\r
+        }\r
+        general{\r
+            lenient{\r
+                "[.․。︒﹒.。]",\r
+                "['ʼ՚᾽᾿’']",\r
+                "[%٪﹪%]",\r
+                "[؉‰]",\r
+                "[\$﹩$$]",\r
+                "[£₤]",\r
+                "[¥¥]",\r
+                "[₩₩]",\r
+                "[₨₹{Rp}{Rs}]",\r
+            }\r
+        }\r
+        number{\r
+            lenient{\r
+                "[\\-‒⁻₋−➖﹣-]",\r
+                "[,،٫、︐︑﹐﹑,、]",\r
+                "[+⁺₊➕﬩﹢+]",\r
+            }\r
+            stricter{\r
+                "[,٫︐﹐,]",\r
+                "[.․﹒.。]",\r
+            }\r
+        }\r
+    }\r
 }\r
index d9fddaf..258a679 100644 (file)
@@ -196,7 +196,7 @@ hsb{
         }\r
         minimumGroupingDigits{"1"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.41.34"}\r
     calendar{\r
         generic{\r
             DateTimePatterns{\r
index db74057..1c8c2e7 100644 (file)
@@ -29,7 +29,9 @@ hu{
         default{"latn"}\r
         latn{\r
             miscPatterns{\r
+                approximately{"~{0}"}\r
                 atLeast{"{0}+"}\r
+                atMost{"≤{0}"}\r
                 range{"{0}–{1}"}\r
             }\r
             patterns{\r
@@ -221,7 +223,7 @@ hu{
         minimumGroupingDigits{"4"}\r
         native{"latn"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.65"}\r
     calendar{\r
         buddhist{\r
             eras{\r
@@ -875,6 +877,10 @@ hu{
                     "i. e.",\r
                     "i. sz.",\r
                 }\r
+                abbreviated%variant{\r
+                    "i.e.",\r
+                    "i.sz.",\r
+                }\r
                 narrow{\r
                     "ie.",\r
                     "isz.",\r
@@ -1358,6 +1364,20 @@ hu{
         persian{\r
             monthNames{\r
                 format{\r
+                    abbreviated{\r
+                        "farvardin",\r
+                        "ordibehesht",\r
+                        "khordad",\r
+                        "tir",\r
+                        "mordad",\r
+                        "shahrivar",\r
+                        "mehr",\r
+                        "aban",\r
+                        "azar",\r
+                        "dey",\r
+                        "bahman",\r
+                        "esfand",\r
+                    }\r
                     narrow{\r
                         "1",\r
                         "2",\r
@@ -2406,4 +2426,36 @@ hu{
         US{"amerikai"}\r
         metric{"metrikus"}\r
     }\r
+    parse{\r
+        date{\r
+            lenient{\r
+                "[\\--/]",\r
+                "[\\:∶]",\r
+            }\r
+        }\r
+        general{\r
+            lenient{\r
+                "[.․。︒﹒.。]",\r
+                "['ʼ՚᾽᾿’']",\r
+                "[%٪﹪%]",\r
+                "[؉‰]",\r
+                "[\$﹩$$]",\r
+                "[£₤]",\r
+                "[¥¥]",\r
+                "[₩₩]",\r
+                "[₨₹{Rp}{Rs}]",\r
+            }\r
+        }\r
+        number{\r
+            lenient{\r
+                "[\\-‒⁻₋−➖﹣-]",\r
+                "[,،٫、︐︑﹐﹑,、]",\r
+                "[+⁺₊➕﬩﹢+]",\r
+            }\r
+            stricter{\r
+                "[,٫︐﹐,]",\r
+                "[.․﹒.。]",\r
+            }\r
+        }\r
+    }\r
 }\r
index b43d1c5..e0070c9 100644 (file)
@@ -21,7 +21,9 @@ hy{
         default{"latn"}\r
         latn{\r
             miscPatterns{\r
+                approximately{"~{0}"}\r
                 atLeast{"{0}+"}\r
+                atMost{"≤{0}"}\r
                 range{"{0}–{1}"}\r
             }\r
             patterns{\r
@@ -214,7 +216,7 @@ hy{
         native{"latn"}\r
         traditional{"armn"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.50"}\r
     calendar{\r
         generic{\r
             DateTimePatterns{\r
@@ -373,12 +375,12 @@ hy{
         }\r
         gregorian{\r
             AmPmMarkers{\r
-                "ԿԱ",\r
-                "ԿՀ",\r
+                "AM",\r
+                "PM",\r
             }\r
             AmPmMarkersAbbr{\r
-                "ԿԱ",\r
-                "ԿՀ",\r
+                "AM",\r
+                "PM",\r
             }\r
             AmPmMarkersNarrow{\r
                 "ա",\r
@@ -564,33 +566,33 @@ hy{
                 stand-alone{\r
                     abbreviated{\r
                         afternoon1{"ցերեկ"}\r
-                        am{"ԿԱ"}\r
+                        am{"AM"}\r
                         evening1{"երեկո"}\r
                         midnight{"կեսգիշեր"}\r
                         morning1{"առավոտ"}\r
                         night1{"գիշեր"}\r
                         noon{"կեսօր"}\r
-                        pm{"ԿՀ"}\r
+                        pm{"PM"}\r
                     }\r
                     narrow{\r
                         afternoon1{"ցերեկ"}\r
-                        am{"ԿԱ"}\r
+                        am{"AM"}\r
                         evening1{"երեկո"}\r
                         midnight{"կեսգիշեր"}\r
                         morning1{"առավոտ"}\r
                         night1{"գիշեր"}\r
                         noon{"կեսօր"}\r
-                        pm{"ԿՀ"}\r
+                        pm{"PM"}\r
                     }\r
                     wide{\r
                         afternoon1{"ցերեկ"}\r
-                        am{"ԿԱ"}\r
+                        am{"AM"}\r
                         evening1{"երեկո"}\r
                         midnight{"կեսգիշեր"}\r
                         morning1{"առավոտ"}\r
                         night1{"գիշեր"}\r
                         noon{"կեսօր"}\r
-                        pm{"ԿՀ"}\r
+                        pm{"PM"}\r
                     }\r
                 }\r
             }\r
diff --git a/source/data/locales/ia.txt b/source/data/locales/ia.txt
new file mode 100644 (file)
index 0000000..e427208
--- /dev/null
@@ -0,0 +1,1054 @@
+// © 2016 and later: Unicode, Inc. and others.\r
+// License & terms of use: http://www.unicode.org/copyright.html#License\r
+ia{\r
+    AuxExemplarCharacters{\r
+        "[á à ă â å ä ã ā æ ç é è ĕ ê ë ē í ì ĭ î ï ī ñ ó ò ŏ ô ö ø ō œ ú ù ŭ û ü ū ÿ"\r
+        "]"\r
+    }\r
+    Ellipsis{\r
+        final{"{0}…"}\r
+        initial{"…{0}"}\r
+        medial{"{0}…{1}"}\r
+        word-final{"{0} …"}\r
+        word-initial{"… {0}"}\r
+        word-medial{"{0} … {1}"}\r
+    }\r
+    ExemplarCharacters{"[a b c {ch} d e f g h i j k l m n o p {ph} q r s t u v w x y z]"}\r
+    MoreInformation{"?"}\r
+    NumberElements{\r
+        default{"latn"}\r
+        latn{\r
+            miscPatterns{\r
+                atLeast{"≥{0}"}\r
+                range{"{0}–{1}"}\r
+            }\r
+            patterns{\r
+                accountingFormat{"¤ #,##0.00;(¤ #,##0.00)"}\r
+                currencyFormat{"¤ #,##0.00"}\r
+                decimalFormat{"#,##0.###"}\r
+                percentFormat{"#,##0%"}\r
+                scientificFormat{"#E0"}\r
+            }\r
+            symbols{\r
+                decimal{","}\r
+                exponential{"E"}\r
+                group{"."}\r
+                infinity{"∞"}\r
+                minusSign{"-"}\r
+                nan{"NaN"}\r
+                perMille{"‰"}\r
+                percentSign{"%"}\r
+                plusSign{"+"}\r
+                superscriptingExponent{"×"}\r
+            }\r
+        }\r
+        minimalPairs{\r
+            ordinal{\r
+                other{"Prende le 7e exito a dextra."}\r
+            }\r
+        }\r
+        minimumGroupingDigits{"2"}\r
+        native{"latn"}\r
+    }\r
+    Version{"2.1.44.15"}\r
+    calendar{\r
+        generic{\r
+            DateTimePatterns{\r
+                "HH:mm:ss zzzz",\r
+                "HH:mm:ss z",\r
+                "HH:mm:ss",\r
+                "HH:mm",\r
+                "EEEE 'le' d 'de' MMMM y G",\r
+                "d 'de' MMMM y G",\r
+                "d MMM y G",\r
+                "dd-MM-y GGGGG",\r
+                "{1}, {0}",\r
+                "{1} 'a' {0}",\r
+                "{1} 'a' {0}",\r
+                "{1}, {0}",\r
+                "{1}, {0}",\r
+            }\r
+            availableFormats{\r
+                Bh{"h B"}\r
+                Bhm{"h:mm B"}\r
+                Bhms{"h:mm:ss B"}\r
+                E{"ccc"}\r
+                EBhm{"E h:mm B"}\r
+                EBhms{"E h:mm:ss B"}\r
+                EHm{"E HH:mm"}\r
+                EHms{"E HH:mm:ss"}\r
+                Ed{"E d"}\r
+                Ehm{"E h:mm a"}\r
+                Ehms{"E h:mm:ss a"}\r
+                Gy{"y G"}\r
+                GyMMM{"MMM y G"}\r
+                GyMMMEd{"E d MMM y G"}\r
+                GyMMMd{"d MMM y G"}\r
+                H{"HH"}\r
+                Hm{"HH:mm"}\r
+                Hms{"HH:mm:ss"}\r
+                M{"L"}\r
+                MEd{"E dd-MM"}\r
+                MMM{"LLL"}\r
+                MMMEd{"E d MMM"}\r
+                MMMMd{"d 'de' MMMM"}\r
+                MMMd{"d MMM"}\r
+                Md{"dd-MM"}\r
+                d{"d"}\r
+                h{"h a"}\r
+                hm{"h:mm a"}\r
+                hms{"h:mm:ss a"}\r
+                ms{"mm:ss"}\r
+                y{"y G"}\r
+                yyyy{"y G"}\r
+                yyyyM{"MM-y GGGGG"}\r
+                yyyyMEd{"E dd-MM-y GGGGG"}\r
+                yyyyMMM{"MMM y G"}\r
+                yyyyMMMEd{"E d MMM y G"}\r
+                yyyyMMMM{"MMMM y G"}\r
+                yyyyMMMd{"d MMM y G"}\r
+                yyyyMd{"dd-MM-y GGGGG"}\r
+                yyyyQQQ{"QQQ y G"}\r
+                yyyyQQQQ{"QQQQ 'de' y G"}\r
+            }\r
+            intervalFormats{\r
+                M{\r
+                    M{"MM – MM"}\r
+                }\r
+                MEd{\r
+                    M{"E dd-MM – E dd-MM"}\r
+                    d{"E dd-MM – E dd-MM"}\r
+                }\r
+                MMM{\r
+                    M{"MMM – MMM"}\r
+                }\r
+                MMMEd{\r
+                    M{"E d MMM – E d MMM"}\r
+                    d{"E d MMM – E d MMM"}\r
+                }\r
+                MMMd{\r
+                    M{"d MMM – d MMM"}\r
+                    d{"d – d MMM"}\r
+                }\r
+                Md{\r
+                    M{"dd-MM – dd-MM"}\r
+                    d{"dd-MM – dd-MM"}\r
+                }\r
+                d{\r
+                    d{"d – d"}\r
+                }\r
+                fallback{"{0} – {1}"}\r
+                y{\r
+                    y{"y – y G"}\r
+                }\r
+                yM{\r
+                    M{"MM-y – MM-y GGGGG"}\r
+                    y{"MM-y – MM-y GGGGG"}\r
+                }\r
+                yMEd{\r
+                    M{"E dd-MM-y – E dd-MM-y GGGGG"}\r
+                    d{"E dd-MM-y – E dd-MM-y GGGGG"}\r
+                    y{"E dd-MM-y – E dd-MM-y GGGGG"}\r
+                }\r
+                yMMM{\r
+                    M{"MMM – MMM y G"}\r
+                    y{"MMM y – MMM y G"}\r
+                }\r
+                yMMMEd{\r
+                    M{"E d MMM – E d MMM y G"}\r
+                    d{"E d MMM – E d MMM y G"}\r
+                    y{"E d MMM y – E d MMM y G"}\r
+                }\r
+                yMMMM{\r
+                    M{"MMMM – MMMM y G"}\r
+                    y{"MMMM y – MMMM y G"}\r
+                }\r
+                yMMMd{\r
+                    M{"d MMM – d MMM y G"}\r
+                    d{"d – d MMM y G"}\r
+                    y{"d MMM y – d MMM y G"}\r
+                }\r
+                yMd{\r
+                    M{"dd-MM-y – dd-MM-y GGGGG"}\r
+                    d{"dd-MM-y – dd-MM-y GGGGG"}\r
+                    y{"dd-MM-y – dd-MM-y GGGGG"}\r
+                }\r
+            }\r
+        }\r
+        gregorian{\r
+            AmPmMarkers{\r
+                "AM",\r
+                "PM",\r
+            }\r
+            AmPmMarkersAbbr{\r
+                "AM",\r
+                "PM",\r
+            }\r
+            AmPmMarkersNarrow{\r
+                "AM",\r
+                "PM",\r
+            }\r
+            DateTimePatterns{\r
+                "HH:mm:ss zzzz",\r
+                "HH:mm:ss z",\r
+                "HH:mm:ss",\r
+                "HH:mm",\r
+                "EEEE 'le' d 'de' MMMM y",\r
+                "d 'de' MMMM y",\r
+                "d MMM y",\r
+                "dd-MM-y",\r
+                "{1} {0}",\r
+                "{1} 'a' {0}",\r
+                "{1} 'a' {0}",\r
+                "{1} {0}",\r
+                "{1} {0}",\r
+            }\r
+            appendItems{\r
+                Timezone{"{0} {1}"}\r
+            }\r
+            availableFormats{\r
+                Bh{"h B"}\r
+                Bhm{"h:mm B"}\r
+                Bhms{"h:mm:ss B"}\r
+                E{"ccc"}\r
+                EBhm{"E h:mm B"}\r
+                EBhms{"E h:mm:ss B"}\r
+                EHm{"E HH:mm"}\r
+                EHms{"E HH:mm:ss"}\r
+                Ed{"E d"}\r
+                Ehm{"E h:mm a"}\r
+                Ehms{"E h:mm:ss a"}\r
+                Gy{"y G"}\r
+                GyMMM{"MMM y G"}\r
+                GyMMMEd{"E d MMM y G"}\r
+                GyMMMd{"d MMM y G"}\r
+                H{"HH"}\r
+                Hm{"HH:mm"}\r
+                Hms{"HH:mm:ss"}\r
+                Hmsv{"HH:mm:ss v"}\r
+                Hmv{"HH:mm v"}\r
+                M{"L"}\r
+                MEd{"E dd-MM"}\r
+                MMM{"LLL"}\r
+                MMMEd{"E d MMM"}\r
+                MMMMd{"d 'de' MMMM"}\r
+                MMMd{"d MMM"}\r
+                Md{"dd-MM"}\r
+                d{"d"}\r
+                h{"h a"}\r
+                hm{"h:mm a"}\r
+                hms{"h:mm:ss a"}\r
+                hmsv{"h:mm:ss a v"}\r
+                hmv{"h:mm a v"}\r
+                ms{"mm:ss"}\r
+                y{"y"}\r
+                yM{"MM-y"}\r
+                yMEd{"E dd-MM-y"}\r
+                yMMM{"MMM y"}\r
+                yMMMEd{"E d MMM y"}\r
+                yMMMM{"MMMM y"}\r
+                yMMMd{"d MMM y"}\r
+                yMd{"dd-MM-y"}\r
+                yQQQ{"QQQ y"}\r
+                yQQQQ{"QQQQ 'de' y"}\r
+            }\r
+            dayNames{\r
+                format{\r
+                    abbreviated{\r
+                        "dom",\r
+                        "lun",\r
+                        "mar",\r
+                        "mer",\r
+                        "jov",\r
+                        "ven",\r
+                        "sab",\r
+                    }\r
+                    narrow{\r
+                        "d",\r
+                        "l",\r
+                        "m",\r
+                        "m",\r
+                        "j",\r
+                        "v",\r
+                        "s",\r
+                    }\r
+                    short{\r
+                        "do",\r
+                        "lu",\r
+                        "ma",\r
+                        "me",\r
+                        "jo",\r
+                        "ve",\r
+                        "sa",\r
+                    }\r
+                    wide{\r
+                        "dominica",\r
+                        "lunedi",\r
+                        "martedi",\r
+                        "mercuridi",\r
+                        "jovedi",\r
+                        "venerdi",\r
+                        "sabbato",\r
+                    }\r
+                }\r
+                stand-alone{\r
+                    abbreviated{\r
+                        "dom",\r
+                        "lun",\r
+                        "mar",\r
+                        "mer",\r
+                        "jov",\r
+                        "ven",\r
+                        "sab",\r
+                    }\r
+                    narrow{\r
+                        "d",\r
+                        "l",\r
+                        "m",\r
+                        "m",\r
+                        "j",\r
+                        "v",\r
+                        "s",\r
+                    }\r
+                    short{\r
+                        "do",\r
+                        "lu",\r
+                        "ma",\r
+                        "me",\r
+                        "jo",\r
+                        "ve",\r
+                        "sa",\r
+                    }\r
+                    wide{\r
+                        "dominica",\r
+                        "lunedi",\r
+                        "martedi",\r
+                        "mercuridi",\r
+                        "jovedi",\r
+                        "venerdi",\r
+                        "sabbato",\r
+                    }\r
+                }\r
+            }\r
+            dayPeriod{\r
+                stand-alone{\r
+                    abbreviated{\r
+                        am{"AM"}\r
+                        pm{"PM"}\r
+                    }\r
+                    narrow{\r
+                        am{"AM"}\r
+                        pm{"PM"}\r
+                    }\r
+                    wide{\r
+                        am{"AM"}\r
+                        pm{"PM"}\r
+                    }\r
+                }\r
+            }\r
+            eras{\r
+                abbreviated{\r
+                    "a.Chr.",\r
+                    "p.Chr.",\r
+                }\r
+                abbreviated%variant{\r
+                    "aEC",\r
+                    "EC",\r
+                }\r
+                wide{\r
+                    "ante Christo",\r
+                    "post Christo",\r
+                }\r
+                wide%variant{\r
+                    "ante era commun",\r
+                    "era commun",\r
+                }\r
+            }\r
+            intervalFormats{\r
+                H{\r
+                    H{"HH – HH"}\r
+                }\r
+                Hm{\r
+                    H{"HH:mm – HH:mm"}\r
+                    m{"HH:mm – HH:mm"}\r
+                }\r
+                Hmv{\r
+                    H{"HH:mm – HH:mm v"}\r
+                    m{"HH:mm – HH:mm v"}\r
+                }\r
+                Hv{\r
+                    H{"HH – HH v"}\r
+                }\r
+                M{\r
+                    M{"MM – MM"}\r
+                }\r
+                MEd{\r
+                    M{"E MM-dd – E MM-dd"}\r
+                    d{"E MM-dd – E MM-dd"}\r
+                }\r
+                MMM{\r
+                    M{"MMM – MMM"}\r
+                }\r
+                MMMEd{\r
+                    M{"E d MMM – E d MMM"}\r
+                    d{"E d MMM – E d MMM"}\r
+                }\r
+                MMMd{\r
+                    M{"d MMM – d MMM"}\r
+                    d{"d – d MMM"}\r
+                }\r
+                Md{\r
+                    M{"MM-dd – MM-dd"}\r
+                    d{"MM-dd – MM-dd"}\r
+                }\r
+                d{\r
+                    d{"d – d"}\r
+                }\r
+                fallback{"{0} – {1}"}\r
+                h{\r
+                    a{"h a – h a"}\r
+                    h{"h – h a"}\r
+                }\r
+                hm{\r
+                    a{"h:mm a – h:mm a"}\r
+                    h{"h:mm – h:mm a"}\r
+                    m{"h:mm – h:mm a"}\r
+                }\r
+                hmv{\r
+                    a{"h:mm a – h:mm a v"}\r
+                    h{"h:mm – h:mm a v"}\r
+                    m{"h:mm – h:mm a v"}\r
+                }\r
+                hv{\r
+                    a{"h a – h a v"}\r
+                    h{"h – h a v"}\r
+                }\r
+                y{\r
+                    y{"y – y"}\r
+                }\r
+                yM{\r
+                    M{"MM-y – MM-y"}\r
+                    y{"MM-y – MM-y"}\r
+                }\r
+                yMEd{\r
+                    M{"E dd-MM-y – E dd-MM-y"}\r
+                    d{"E dd-MM-y – E dd-MM-y"}\r
+                    y{"E dd-MM-y – E dd-MM-y"}\r
+                }\r
+                yMMM{\r
+                    M{"MMM – MMM y"}\r
+                    y{"MMM y – MMM y"}\r
+                }\r
+                yMMMEd{\r
+                    M{"E d MMM – E d MMM y"}\r
+                    d{"E d MMM – E d MMM y"}\r
+                    y{"E d MMM y – E d MMM y"}\r
+                }\r
+                yMMMM{\r
+                    M{"MMMM – MMMM y"}\r
+                    y{"MMMM y – MMMM y"}\r
+                }\r
+                yMMMd{\r
+                    M{"d MMM – d MMM y"}\r
+                    d{"d – d MMM y"}\r
+                    y{"d MMM y – d MMM y"}\r
+                }\r
+                yMd{\r
+                    M{"dd-MM-y – dd-MM-y"}\r
+                    d{"dd-MM-y – dd-MM-y"}\r
+                    y{"dd-MM-y – dd-MM-y"}\r
+                }\r
+            }\r
+            monthNames{\r
+                format{\r
+                    abbreviated{\r
+                        "jan",\r
+                        "feb",\r
+                        "mar",\r
+                        "apr",\r
+                        "mai",\r
+                        "jun",\r
+                        "jul",\r
+                        "aug",\r
+                        "sep",\r
+                        "oct",\r
+                        "nov",\r
+                        "dec",\r
+                    }\r
+                    narrow{\r
+                        "j",\r
+                        "f",\r
+                        "m",\r
+                        "a",\r
+                        "m",\r
+                        "j",\r
+                        "j",\r
+                        "a",\r
+                        "s",\r
+                        "o",\r
+                        "n",\r
+                        "d",\r
+                    }\r
+                    wide{\r
+                        "januario",\r
+                        "februario",\r
+                        "martio",\r
+                        "april",\r
+                        "maio",\r
+                        "junio",\r
+                        "julio",\r
+                        "augusto",\r
+                        "septembre",\r
+                        "octobre",\r
+                        "novembre",\r
+                        "decembre",\r
+                    }\r
+                }\r
+                stand-alone{\r
+                    abbreviated{\r
+                        "jan",\r
+                        "feb",\r
+                        "mar",\r
+                        "apr",\r
+                        "mai",\r
+                        "jun",\r
+                        "jul",\r
+                        "aug",\r
+                        "sep",\r
+                        "oct",\r
+                        "nov",\r
+                        "dec",\r
+                    }\r
+                    narrow{\r
+                        "1",\r
+                        "2",\r
+                        "3",\r
+                        "4",\r
+                        "5",\r
+                        "6",\r
+                        "7",\r
+                        "8",\r
+                        "9",\r
+                        "10",\r
+                        "11",\r
+                        "12",\r
+                    }\r
+                    wide{\r
+                        "januario",\r
+                        "februario",\r
+                        "martio",\r
+                        "april",\r
+                        "maio",\r
+                        "junio",\r
+                        "julio",\r
+                        "augusto",\r
+                        "septembre",\r
+                        "octobre",\r
+                        "novembre",\r
+                        "decembre",\r
+                    }\r
+                }\r
+            }\r
+            quarters{\r
+                format{\r
+                    abbreviated{\r
+                        "T1",\r
+                        "T2",\r
+                        "T3",\r
+                        "T4",\r
+                    }\r
+                    narrow{\r
+                        "1",\r
+                        "2",\r
+                        "3",\r
+                        "4",\r
+                    }\r
+                    wide{\r
+                        "1me trimestre",\r
+                        "2nde trimestre",\r
+                        "3tie trimestre",\r
+                        "4te trimestre",\r
+                    }\r
+                }\r
+                stand-alone{\r
+                    abbreviated{\r
+                        "T1",\r
+                        "T2",\r
+                        "T3",\r
+                        "T4",\r
+                    }\r
+                    narrow{\r
+                        "1",\r
+                        "2",\r
+                        "3",\r
+                        "4",\r
+                    }\r
+                    wide{\r
+                        "1me trimestre",\r
+                        "2nde trimestre",\r
+                        "3tie trimestre",\r
+                        "4te trimestre",\r
+                    }\r
+                }\r
+            }\r
+        }\r
+    }\r
+    characterLabel{\r
+        activities{"activitate"}\r
+        african_scripts{"scriptura african"}\r
+        american_scripts{"scriptura american"}\r
+        animal{"animal"}\r
+        animals_nature{"animal o natura"}\r
+        arrows{"sagitta"}\r
+        body{"corpore"}\r
+        box_drawing{"composition de quadros"}\r
+        braille{"braille"}\r
+        building{"edificio"}\r
+        bullets_stars{"puncto o stella"}\r
+        consonantal_jamo{"jamo consonantic"}\r
+        currency_symbols{"symbolo monetari"}\r
+        dash_connector{"lineetta o connector"}\r
+        digits{"cifra"}\r
+        dingbats{"ornamento"}\r
+        divination_symbols{"symbolo de divination"}\r
+        downwards_arrows{"sagitta a basso"}\r
+        downwards_upwards_arrows{"sagitta a basso e in alto"}\r
+        east_asian_scripts{"scriptura del est de Asia"}\r
+        emoji{"emoji"}\r
+        european_scripts{"scriptura europee"}\r
+        female{"feminin"}\r
+        flag{"bandiera"}\r
+        flags{"bandieras"}\r
+        food_drink{"alimento e bibita"}\r
+        format{"formato"}\r
+        format_whitespace{"formato e spatio in blanco"}\r
+        full_width_form_variant{"variante a latitude complete"}\r
+        geometric_shapes{"forma geometric"}\r
+        half_width_form_variant{"variante a latitude medie"}\r
+        han_characters{"character Han"}\r
+        han_radicals{"radical Han"}\r
+        hanja{"hanja"}\r
+        hanzi_simplified{"Hanzi (simplificate)"}\r
+        hanzi_traditional{"Hanzi (traditional)"}\r
+        heart{"corde"}\r
+        historic_scripts{"scriptura historic"}\r
+        ideographic_desc_characters{"character de desc. ideographic"}\r
+        japanese_kana{"kana japonese"}\r
+        kanbun{"kanbun"}\r
+        kanji{"kanji"}\r
+        keycap{"clave"}\r
+        leftwards_arrows{"sagitta a sinistra"}\r
+        leftwards_rightwards_arrows{"sagitta a sinistra e a dextra"}\r
+        letterlike_symbols{"symbolo con littera"}\r
+        limited_use{"uso limitate"}\r
+        male{"masculin"}\r
+        math_symbols{"symbolo mathematic"}\r
+        middle_eastern_scripts{"scriptura medio-oriental"}\r
+        miscellaneous{"miscellanee"}\r
+        modern_scripts{"scriptura moderne"}\r
+        modifier{"modificator"}\r
+        musical_symbols{"symbolo musical"}\r
+        nature{"natura"}\r
+        nonspacing{"sin spatiatura"}\r
+        numbers{"numeros"}\r
+        objects{"objecto"}\r
+        other{"altere"}\r
+        paired{"par"}\r
+        person{"persona"}\r
+        phonetic_alphabet{"alphabeto phonetic"}\r
+        pictographs{"pictogramma"}\r
+        place{"loco"}\r
+        plant{"planta"}\r
+        punctuation{"punctuation"}\r
+        rightwards_arrows{"sagitta a dextra"}\r
+        sign_standard_symbols{"signo o symbolo"}\r
+        small_form_variant{"variantes micre"}\r
+        smiley{"emoticone"}\r
+        smileys_people{"emoticone o persona"}\r
+        south_asian_scripts{"scriptura del sud de Asia"}\r
+        southeast_asian_scripts{"scriptura del sud-est de Asia"}\r
+        spacing{"spatiatura"}\r
+        sport{"sport"}\r
+        symbols{"symbolo"}\r
+        technical_symbols{"symbolo technic"}\r
+        tone_marks{"marca tonal"}\r
+        travel{"viage"}\r
+        travel_places{"viage o destination"}\r
+        upwards_arrows{"sagitta in alto"}\r
+        variant_forms{"variante"}\r
+        vocalic_jamo{"jamo vocalic"}\r
+        weather{"meteo"}\r
+        western_asian_scripts{"scriptura del west de Asia"}\r
+        whitespace{"spatio in blanco"}\r
+    }\r
+    delimiters{\r
+        alternateQuotationEnd{"”"}\r
+        alternateQuotationStart{"“"}\r
+        quotationEnd{"’"}\r
+        quotationStart{"‘"}\r
+    }\r
+    fields{\r
+        day{\r
+            dn{"die"}\r
+            relative{\r
+                "-1"{"heri"}\r
+                "0"{"hodie"}\r
+                "1"{"deman"}\r
+            }\r
+        }\r
+        day-narrow{\r
+            dn{"d."}\r
+        }\r
+        day-short{\r
+            dn{"die"}\r
+        }\r
+        dayOfYear{\r
+            dn{"die del anno"}\r
+        }\r
+        dayOfYear-narrow{\r
+            dn{"d.d.a."}\r
+        }\r
+        dayOfYear-short{\r
+            dn{"die del an."}\r
+        }\r
+        dayperiod{\r
+            dn{"AM/PM"}\r
+        }\r
+        dayperiod-narrow{\r
+            dn{"AM/PM"}\r
+        }\r
+        dayperiod-short{\r
+            dn{"AM/PM"}\r
+        }\r
+        era{\r
+            dn{"era"}\r
+        }\r
+        era-narrow{\r
+            dn{"e."}\r
+        }\r
+        era-short{\r
+            dn{"era"}\r
+        }\r
+        fri{\r
+            relative{\r
+                "-1"{"venerdi passate"}\r
+                "0"{"iste venerdi"}\r
+                "1"{"venerdi proxime"}\r
+            }\r
+        }\r
+        fri-narrow{\r
+            relative{\r
+                "-1"{"ven. passate"}\r
+                "0"{"iste ven."}\r
+                "1"{"ven. proxime"}\r
+            }\r
+        }\r
+        fri-short{\r
+            relative{\r
+                "-1"{"ven. passate"}\r
+                "0"{"iste ven."}\r
+                "1"{"ven. proxime"}\r
+            }\r
+        }\r
+        hour{\r
+            dn{"hora"}\r
+            relative{\r
+                "0"{"iste hora"}\r
+            }\r
+        }\r
+        hour-narrow{\r
+            dn{"h."}\r
+        }\r
+        hour-short{\r
+            dn{"hr."}\r
+        }\r
+        minute{\r
+            dn{"minuta"}\r
+            relative{\r
+                "0"{"iste minuta"}\r
+            }\r
+        }\r
+        minute-narrow{\r
+            dn{"m."}\r
+        }\r
+        minute-short{\r
+            dn{"min."}\r
+        }\r
+        mon{\r
+            relative{\r
+                "-1"{"lunedi passate"}\r
+                "0"{"iste lunedi"}\r
+                "1"{"lunedi proxime"}\r
+            }\r
+        }\r
+        mon-narrow{\r
+            relative{\r
+                "-1"{"lun. passate"}\r
+                "0"{"iste lun."}\r
+                "1"{"lun. proxime"}\r
+            }\r
+        }\r
+        mon-short{\r
+            relative{\r
+                "-1"{"lun. passate"}\r
+                "0"{"iste lun."}\r
+                "1"{"lun. proxime"}\r
+            }\r
+        }\r
+        month{\r
+            dn{"mense"}\r
+            relative{\r
+                "-1"{"le mense passate"}\r
+                "0"{"iste mense"}\r
+                "1"{"le mense proxime"}\r
+            }\r
+        }\r
+        month-narrow{\r
+            dn{"m."}\r
+        }\r
+        month-short{\r
+            dn{"mns."}\r
+        }\r
+        quarter{\r
+            dn{"trimestre"}\r
+            relative{\r
+                "-1"{"le trimestre passate"}\r
+                "0"{"iste trimestre"}\r
+                "1"{"le trimestre proxime"}\r
+            }\r
+        }\r
+        quarter-narrow{\r
+            dn{"t."}\r
+        }\r
+        quarter-short{\r
+            dn{"trim."}\r
+        }\r
+        sat{\r
+            relative{\r
+                "-1"{"sabbato passate"}\r
+                "0"{"iste sabbato"}\r
+                "1"{"sabbato proxime"}\r
+            }\r
+        }\r
+        sat-narrow{\r
+            relative{\r
+                "-1"{"sab. passate"}\r
+                "0"{"iste sab."}\r
+                "1"{"sab. proxime"}\r
+            }\r
+        }\r
+        sat-short{\r
+            relative{\r
+                "-1"{"sab. passate"}\r
+                "0"{"iste sab."}\r
+                "1"{"sab. proxime"}\r
+            }\r
+        }\r
+        second{\r
+            dn{"secunda"}\r
+            relative{\r
+                "0"{"ora"}\r
+            }\r
+        }\r
+        second-narrow{\r
+            dn{"s."}\r
+        }\r
+        second-short{\r
+            dn{"sec."}\r
+        }\r
+        sun{\r
+            relative{\r
+                "-1"{"dominica passate"}\r
+                "0"{"iste dominica"}\r
+                "1"{"dominica proxime"}\r
+            }\r
+        }\r
+        sun-narrow{\r
+            relative{\r
+                "-1"{"dom. passate"}\r
+                "0"{"iste dom."}\r
+                "1"{"dom. proxime"}\r
+            }\r
+        }\r
+        sun-short{\r
+            relative{\r
+                "-1"{"dom. passate"}\r
+                "0"{"iste dom."}\r
+                "1"{"dom. proxime"}\r
+            }\r
+        }\r
+        thu{\r
+            relative{\r
+                "-1"{"jovedi passate"}\r
+                "0"{"iste jovedi"}\r
+                "1"{"jovedi proxime"}\r
+            }\r
+        }\r
+        thu-narrow{\r
+            relative{\r
+                "-1"{"jov. passate"}\r
+                "0"{"iste jov."}\r
+                "1"{"jov. proxime"}\r
+            }\r
+        }\r
+        thu-short{\r
+            relative{\r
+                "-1"{"jov. passate"}\r
+                "0"{"iste jov."}\r
+                "1"{"jov. proxime"}\r
+            }\r
+        }\r
+        tue{\r
+            relative{\r
+                "-1"{"martedi passate"}\r
+                "0"{"iste martedi"}\r
+                "1"{"martedi proxime"}\r
+            }\r
+        }\r
+        tue-narrow{\r
+            relative{\r
+                "-1"{"mar. passate"}\r
+                "0"{"iste mar."}\r
+                "1"{"mar. proxime"}\r
+            }\r
+        }\r
+        tue-short{\r
+            relative{\r
+                "-1"{"mar. passate"}\r
+                "0"{"iste mar."}\r
+                "1"{"mar. proxime"}\r
+            }\r
+        }\r
+        wed{\r
+            relative{\r
+                "-1"{"mercuridi passate"}\r
+                "0"{"iste mercuridi"}\r
+                "1"{"mercuridi proxime"}\r
+            }\r
+        }\r
+        wed-narrow{\r
+            relative{\r
+                "-1"{"mer. passate"}\r
+                "0"{"iste mer."}\r
+                "1"{"mer. proxime"}\r
+            }\r
+        }\r
+        wed-short{\r
+            relative{\r
+                "-1"{"mer. passate"}\r
+                "0"{"iste mer."}\r
+                "1"{"mer. proxime"}\r
+            }\r
+        }\r
+        week{\r
+            dn{"septimana"}\r
+            relative{\r
+                "-1"{"le septimana passate"}\r
+                "0"{"iste septimana"}\r
+                "1"{"le septimana proxime"}\r
+            }\r
+            relativePeriod{"le septimana de {0}"}\r
+        }\r
+        week-narrow{\r
+            dn{"s."}\r
+            relativePeriod{"le sept. de {0}"}\r
+        }\r
+        week-short{\r
+            dn{"sept."}\r
+            relativePeriod{"le sept. de {0}"}\r
+        }\r
+        weekOfMonth{\r
+            dn{"septimana del mense"}\r
+        }\r
+        weekOfMonth-narrow{\r
+            dn{"s.d.m."}\r
+        }\r
+        weekOfMonth-short{\r
+            dn{"sept. del mns."}\r
+        }\r
+        weekday{\r
+            dn{"die del septimana"}\r
+        }\r
+        weekday-narrow{\r
+            dn{"d.d.s."}\r
+        }\r
+        weekday-short{\r
+            dn{"die del sept."}\r
+        }\r
+        weekdayOfMonth{\r
+            dn{"die de septimana del mense"}\r
+        }\r
+        weekdayOfMonth-narrow{\r
+            dn{"d.d.s.d.m."}\r
+        }\r
+        weekdayOfMonth-short{\r
+            dn{"die de sept. del mns."}\r
+        }\r
+        year{\r
+            dn{"anno"}\r
+            relative{\r
+                "-1"{"le anno passate"}\r
+                "0"{"iste anno"}\r
+                "1"{"le anno proxime"}\r
+            }\r
+        }\r
+        year-narrow{\r
+            dn{"a."}\r
+        }\r
+        year-short{\r
+            dn{"an."}\r
+        }\r
+        zone{\r
+            dn{"fuso horari"}\r
+        }\r
+        zone-narrow{\r
+            dn{"fuso"}\r
+        }\r
+        zone-short{\r
+            dn{"fuso"}\r
+        }\r
+    }\r
+    listPattern{\r
+        or{\r
+            2{"{0} o {1}"}\r
+            end{"{0} o {1}"}\r
+            middle{"{0}, {1}"}\r
+            start{"{0}, {1}"}\r
+        }\r
+        standard{\r
+            2{"{0} e {1}"}\r
+            end{"{0} e {1}"}\r
+            middle{"{0}, {1}"}\r
+            start{"{0}, {1}"}\r
+        }\r
+        standard-short{\r
+            2{"{0} e {1}"}\r
+            end{"{0} e {1}"}\r
+            middle{"{0}, {1}"}\r
+            start{"{0}, {1}"}\r
+        }\r
+        unit{\r
+            2{"{0}, {1}"}\r
+            end{"{0}, {1}"}\r
+            middle{"{0}, {1}"}\r
+            start{"{0}, {1}"}\r
+        }\r
+        unit-narrow{\r
+            2{"{0} {1}"}\r
+            end{"{0} {1}"}\r
+            middle{"{0} {1}"}\r
+            start{"{0} {1}"}\r
+        }\r
+        unit-short{\r
+            2{"{0}, {1}"}\r
+            end{"{0}, {1}"}\r
+            middle{"{0}, {1}"}\r
+            start{"{0}, {1}"}\r
+        }\r
+    }\r
+    measurementSystemNames{\r
+        UK{"britannic"}\r
+        US{"statounitese"}\r
+        metric{"metric"}\r
+    }\r
+}\r
diff --git a/source/data/locales/ia_001.txt b/source/data/locales/ia_001.txt
new file mode 100644 (file)
index 0000000..12f290e
--- /dev/null
@@ -0,0 +1,5 @@
+// © 2016 and later: Unicode, Inc. and others.\r
+// License & terms of use: http://www.unicode.org/copyright.html#License\r
+ia_001{\r
+    Version{"2.1.44.15"}\r
+}\r
index b37318b..c7fd749 100644 (file)
@@ -19,7 +19,9 @@ id{
         default{"latn"}\r
         latn{\r
             miscPatterns{\r
-                atLeast{"⩾{0}"}\r
+                approximately{"~{0}"}\r
+                atLeast{"≥{0}"}\r
+                atMost{"≤{0}"}\r
                 range{"{0}–{1}"}\r
             }\r
             patterns{\r
@@ -173,7 +175,7 @@ id{
         minimumGroupingDigits{"1"}\r
         native{"latn"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.20"}\r
     calendar{\r
         buddhist{\r
             DateTimePatterns{\r
@@ -1369,7 +1371,7 @@ id{
                         "Mei",\r
                         "Jun",\r
                         "Jul",\r
-                        "Agt",\r
+                        "Agu",\r
                         "Sep",\r
                         "Okt",\r
                         "Nov",\r
@@ -1413,7 +1415,7 @@ id{
                         "Mei",\r
                         "Jun",\r
                         "Jul",\r
-                        "Agt",\r
+                        "Agu",\r
                         "Sep",\r
                         "Okt",\r
                         "Nov",\r
@@ -2217,6 +2219,7 @@ id{
                     "Taishō",\r
                     "Shōwa",\r
                     "Heisei",\r
+                    "Qqqq",\r
                 }\r
             }\r
         }\r
@@ -2392,7 +2395,7 @@ id{
         european_scripts{"Skrip Eropa"}\r
         female{"perempuan"}\r
         flag{"bendera"}\r
-        flags{"Bendera"}\r
+        flags{"bendera"}\r
         food_drink{"makanan & minuman"}\r
         format{"format"}\r
         format_whitespace{"format & spasi kosong"}\r
@@ -2492,6 +2495,9 @@ id{
         }\r
         day-narrow{\r
             dn{"h"}\r
+            relative{\r
+                "2"{"lusa"}\r
+            }\r
             relativeTime{\r
                 future{\r
                     other{"dalam {0} h"}\r
@@ -2503,6 +2509,9 @@ id{
         }\r
         day-short{\r
             dn{"h"}\r
+            relative{\r
+                "2"{"lusa"}\r
+            }\r
             relativeTime{\r
                 future{\r
                     other{"dalam {0} h"}\r
@@ -3197,4 +3206,36 @@ id{
         US{"AS"}\r
         metric{"Metrik"}\r
     }\r
+    parse{\r
+        date{\r
+            lenient{\r
+                "[\\--/]",\r
+                "[\\:∶]",\r
+            }\r
+        }\r
+        general{\r
+            lenient{\r
+                "[.․。︒﹒.。]",\r
+                "['ʼ՚᾽᾿’']",\r
+                "[%٪﹪%]",\r
+                "[؉‰]",\r
+                "[\$﹩$$]",\r
+                "[£₤]",\r
+                "[¥¥]",\r
+                "[₩₩]",\r
+                "[₨₹{Rp}{Rs}]",\r
+            }\r
+        }\r
+        number{\r
+            lenient{\r
+                "[\\-‒⁻₋−➖﹣-]",\r
+                "[,،٫、︐︑﹐﹑,、]",\r
+                "[+⁺₊➕﬩﹢+]",\r
+            }\r
+            stricter{\r
+                "[,٫︐﹐,]",\r
+                "[.․﹒.。]",\r
+            }\r
+        }\r
+    }\r
 }\r
index 99e9a07..655753c 100644 (file)
@@ -90,7 +90,7 @@ ig{
         }\r
         minimumGroupingDigits{"1"}\r
     }\r
-    Version{"2.1.38.69"}\r
+    Version{"2.1.44.88"}\r
     calendar{\r
         generic{\r
             DateTimePatterns{\r
@@ -208,7 +208,7 @@ ig{
                 yQQQ{"QQQ y"}\r
                 yQQQQ{"QQQQ y"}\r
                 yw{\r
-                    other{"'week' w 'of' y"}\r
+                    other{"'week' w 'of' Y"}\r
                 }\r
             }\r
             dayNames{\r
index 90d7ac1..d305351 100644 (file)
@@ -28,7 +28,9 @@ is{
         default{"latn"}\r
         latn{\r
             miscPatterns{\r
+                approximately{"~{0}"}\r
                 atLeast{"{0}+"}\r
+                atMost{"≤{0}"}\r
                 range{"{0}–{1}"}\r
             }\r
             patterns{\r
@@ -219,7 +221,7 @@ is{
         minimumGroupingDigits{"1"}\r
         native{"latn"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.91"}\r
     calendar{\r
         buddhist{\r
             DateTimePatterns{\r
@@ -881,6 +883,19 @@ is{
                 }\r
             }\r
         }\r
+        ethiopic-amete-alem{\r
+            eras{\r
+                abbreviated{\r
+                    "ERA0",\r
+                }\r
+                narrow{\r
+                    "ERA0",\r
+                }\r
+                wide{\r
+                    "ERA0",\r
+                }\r
+            }\r
+        }\r
         generic{\r
             DateTimePatterns{\r
                 "HH:mm:ss zzzz",\r
@@ -1277,6 +1292,10 @@ is{
                     "f.k.",\r
                     "e.k.",\r
                 }\r
+                narrow%variant{\r
+                    "f.v.t.",\r
+                    "v.t.",\r
+                }\r
                 wide{\r
                     "fyrir Krist",\r
                     "eftir Krist",\r
@@ -2261,6 +2280,149 @@ is{
                 }\r
             }\r
         }\r
+        japanese{\r
+            DateTimePatterns{\r
+                "HH:mm:ss zzzz",\r
+                "HH:mm:ss z",\r
+                "HH:mm:ss",\r
+                "HH:mm",\r
+                "EEEE, d. MMMM y G",\r
+                "d. MMMM y G",\r
+                "d.M.y G",\r
+                "d.M.y GGGGG",\r
+                "{1}, {0}",\r
+                "{1} 'kl'. {0}",\r
+                "{1} 'kl'. {0}",\r
+                "{1}, {0}",\r
+                "{1}, {0}",\r
+            }\r
+            availableFormats{\r
+                E{"ccc"}\r
+                Ed{"E d."}\r
+                Gy{"y G"}\r
+                GyMMM{"MMM y G"}\r
+                GyMMMEd{"E, d. MMM y G"}\r
+                GyMMMd{"d. MMM y G"}\r
+                M{"L"}\r
+                MEd{"E, d.M."}\r
+                MMM{"LLL"}\r
+                MMMEd{"E, d. MMM"}\r
+                MMMMEd{"E, d. MMMM"}\r
+                MMMMd{"d. MMMM"}\r
+                MMMd{"d. MMM"}\r
+                Md{"d.M."}\r
+                d{"d"}\r
+                y{"y G"}\r
+                yyyy{"y G"}\r
+                yyyyM{"M.y G"}\r
+                yyyyMEd{"E, d.M.y G"}\r
+                yyyyMMM{"MMM y G"}\r
+                yyyyMMMEd{"E, d. MMM y G"}\r
+                yyyyMMMM{"MMMM y G"}\r
+                yyyyMMMd{"d. MMM y G"}\r
+                yyyyMd{"d.M.y G"}\r
+                yyyyQQQ{"QQQ y G"}\r
+                yyyyQQQQ{"QQQQ y G"}\r
+            }\r
+            intervalFormats{\r
+                H{\r
+                    H{"HH–HH"}\r
+                }\r
+                Hm{\r
+                    H{"HH:mm–HH:mm"}\r
+                    m{"HH:mm–HH:mm"}\r
+                }\r
+                Hmv{\r
+                    H{"HH:mm–HH:mm v"}\r
+                    m{"HH:mm–HH:mm v"}\r
+                }\r
+                Hv{\r
+                    H{"HH–HH v"}\r
+                }\r
+                M{\r
+                    M{"M.–M."}\r
+                }\r
+                MEd{\r
+                    M{"E, d.M. – E, d.M."}\r
+                    d{"E, d. – E, d.M."}\r
+                }\r
+                MMM{\r
+                    M{"MMM–MMM"}\r
+                }\r
+                MMMEd{\r
+                    M{"E, d. MMM – E, d. MMM"}\r
+                    d{"E, d. – E, d. MMM"}\r
+                }\r
+                MMMM{\r
+                    M{"MMMM–MMMM"}\r
+                }\r
+                MMMd{\r
+                    M{"d. MMM – d. MMM"}\r
+                    d{"d.–d. MMM"}\r
+                }\r
+                Md{\r
+                    M{"d.M.–d.M."}\r
+                    d{"d.–d.M."}\r
+                }\r
+                d{\r
+                    d{"d.–d."}\r
+                }\r
+                fallback{"{0} – {1}"}\r
+                h{\r
+                    a{"h a – h a"}\r
+                    h{"h–h a"}\r
+                }\r
+                hm{\r
+                    a{"h:mm a – h:mm a"}\r
+                    h{"h:mm–h:mm a"}\r
+                    m{"h:mm–h:mm a"}\r
+                }\r
+                hmv{\r
+                    a{"h:mm a – h:mm a v"}\r
+                    h{"h:mm–h:mm a v"}\r
+                    m{"h:mm–h:mm a v"}\r
+                }\r
+                hv{\r
+                    a{"h a – h a v"}\r
+                    h{"h–h a v"}\r
+                }\r
+                y{\r
+                    y{"y–y G"}\r
+                }\r
+                yM{\r
+                    M{"M.–M.y G"}\r
+                    y{"M.y–M.y G"}\r
+                }\r
+                yMEd{\r
+                    M{"E, d.M. – E, d.M.y G"}\r
+                    d{"E, d. – E, d.M.y G"}\r
+                    y{"E, d.M.y – E, d.M.y G"}\r
+                }\r
+                yMMM{\r
+                    M{"MMM–MMM y G"}\r
+                    y{"MMM y – MMM y G"}\r
+                }\r
+                yMMMEd{\r
+                    M{"E, d. MMM – E, d. MMM y G"}\r
+                    d{"E, d. – E, d. MMM y G"}\r
+                    y{"E, d. MMM y – E, d. MMM y G"}\r
+                }\r
+                yMMMM{\r
+                    M{"MMMM–MMMM y G"}\r
+                    y{"MMMM y – MMMM y G"}\r
+                }\r
+                yMMMd{\r
+                    M{"d. MMM – d. MMM y G"}\r
+                    d{"d.–d. MMM y G"}\r
+                    y{"d. MMM y – d. MMM y G"}\r
+                }\r
+                yMd{\r
+                    M{"d.M.–d.M.y G"}\r
+                    d{"d.–d.M.y G"}\r
+                    y{"d.M.y–d.M.y G"}\r
+                }\r
+            }\r
+        }\r
         persian{\r
             DateTimePatterns{\r
                 "HH:mm:ss zzzz",\r
@@ -2914,6 +3076,9 @@ is{
         }\r
         hour-narrow{\r
             dn{"klst."}\r
+            relative{\r
+                "0"{"þessa stundina"}\r
+            }\r
             relativeTime{\r
                 future{\r
                     one{"+{0} klst."}\r
@@ -2927,6 +3092,9 @@ is{
         }\r
         hour-short{\r
             dn{"klst."}\r
+            relative{\r
+                "0"{"þessa stundina"}\r
+            }\r
             relativeTime{\r
                 future{\r
                     one{"eftir {0} klst."}\r
@@ -2956,6 +3124,9 @@ is{
         }\r
         minute-narrow{\r
             dn{"mín."}\r
+            relative{\r
+                "0"{"á þessari mínútu"}\r
+            }\r
             relativeTime{\r
                 future{\r
                     one{"+{0} mín."}\r
@@ -2969,6 +3140,9 @@ is{
         }\r
         minute-short{\r
             dn{"mín."}\r
+            relative{\r
+                "0"{"á þessari mínútu"}\r
+            }\r
             relativeTime{\r
                 future{\r
                     one{"eftir {0} mín."}\r
@@ -3208,6 +3382,9 @@ is{
         }\r
         second-narrow{\r
             dn{"sek."}\r
+            relative{\r
+                "0"{"núna"}\r
+            }\r
             relativeTime{\r
                 future{\r
                     one{"+{0} sek."}\r
@@ -3221,6 +3398,9 @@ is{
         }\r
         second-short{\r
             dn{"sek."}\r
+            relative{\r
+                "0"{"núna"}\r
+            }\r
             relativeTime{\r
                 future{\r
                     one{"eftir {0} sek."}\r
@@ -3484,7 +3664,7 @@ is{
             relativePeriod{"vika {0}"}\r
             relativeTime{\r
                 future{\r
-                    one{"eftir {0} vikur"}\r
+                    one{"eftir {0} viku"}\r
                     other{"eftir {0} vikur"}\r
                 }\r
                 past{\r
@@ -3637,8 +3817,13 @@ is{
         general{\r
             lenient{\r
                 "[.․。︒﹒.。]",\r
+                "['ʼ՚᾽᾿’']",\r
+                "[%٪﹪%]",\r
+                "[؉‰]",\r
                 "[\$﹩$$]",\r
                 "[£₤]",\r
+                "[¥¥]",\r
+                "[₩₩]",\r
                 "[₨₹{Rp}{Rs}]",\r
             }\r
         }\r
index a11dfbe..5d02b8a 100644 (file)
@@ -19,7 +19,9 @@ it{
         default{"latn"}\r
         latn{\r
             miscPatterns{\r
-                atLeast{"⩾{0}"}\r
+                approximately{"~{0}"}\r
+                atLeast{"≥{0}"}\r
+                atMost{"≤{0}"}\r
                 range{"{0}-{1}"}\r
             }\r
             patterns{\r
@@ -158,16 +160,16 @@ it{
                         other{"000 Mln"}\r
                     }\r
                     1000000000{\r
-                        one{"0 Mld"}\r
-                        other{"0 Mld"}\r
+                        one{"0 Mrd"}\r
+                        other{"0 Mrd"}\r
                     }\r
                     10000000000{\r
-                        one{"00 Mld"}\r
-                        other{"00 Mld"}\r
+                        one{"00 Mrd"}\r
+                        other{"00 Mrd"}\r
                     }\r
                     100000000000{\r
-                        one{"000 Mld"}\r
-                        other{"000 Mld"}\r
+                        one{"000 Mrd"}\r
+                        other{"000 Mrd"}\r
                     }\r
                     1000000000000{\r
                         one{"0 Bln"}\r
@@ -211,7 +213,7 @@ it{
         minimumGroupingDigits{"1"}\r
         native{"latn"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.86"}\r
     calendar{\r
         buddhist{\r
             eras{\r
@@ -1049,6 +1051,10 @@ it{
         day-narrow{\r
             dn{"g"}\r
             relative{\r
+                "-1"{"ieri"}\r
+                "-2"{"l’altro ieri"}\r
+                "0"{"oggi"}\r
+                "1"{"domani"}\r
                 "2"{"dopodomani"}\r
             }\r
             relativeTime{\r
@@ -1065,6 +1071,10 @@ it{
         day-short{\r
             dn{"g"}\r
             relative{\r
+                "-1"{"ieri"}\r
+                "-2"{"l’altro ieri"}\r
+                "0"{"oggi"}\r
+                "1"{"domani"}\r
                 "2"{"dopodomani"}\r
             }\r
             relativeTime{\r
@@ -1365,6 +1375,11 @@ it{
         }\r
         quarter-narrow{\r
             dn{"trim."}\r
+            relative{\r
+                "-1"{"trim. scorso"}\r
+                "0"{"questo trim."}\r
+                "1"{"trim. prossimo"}\r
+            }\r
             relativeTime{\r
                 future{\r
                     one{"tra {0} trim."}\r
@@ -1378,6 +1393,11 @@ it{
         }\r
         quarter-short{\r
             dn{"trim."}\r
+            relative{\r
+                "-1"{"trim. scorso"}\r
+                "0"{"questo trim."}\r
+                "1"{"trim. prossimo"}\r
+            }\r
             relativeTime{\r
                 future{\r
                     one{"tra {0} trim."}\r
@@ -1887,8 +1907,13 @@ it{
         general{\r
             lenient{\r
                 "[.․。︒﹒.。]",\r
+                "['ʼ՚᾽᾿’']",\r
+                "[%٪﹪%]",\r
+                "[؉‰]",\r
                 "[\$﹩$$]",\r
                 "[£₤]",\r
+                "[¥¥]",\r
+                "[₩₩]",\r
                 "[₨₹{Rp}{Rs}]",\r
             }\r
         }\r
index 36a0655..e5fff01 100644 (file)
@@ -78,7 +78,9 @@ ja{
         finance{"jpanfin"}\r
         latn{\r
             miscPatterns{\r
+                approximately{"約 {0}"}\r
                 atLeast{"{0} 以上"}\r
+                atMost{"{0} 以下"}\r
                 range{"{0}~{1}"}\r
             }\r
             patterns{\r
@@ -233,7 +235,7 @@ ja{
         native{"latn"}\r
         traditional{"jpan"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.91"}\r
     calendar{\r
         buddhist{\r
             DateTimePatterns{\r
@@ -1218,6 +1220,44 @@ ja{
                 yyyyQQQQ{"Gy年QQQQ"}\r
             }\r
             intervalFormats{\r
+                Gy{\r
+                    G{"Gy年~Gy年"}\r
+                    y{"Gy年~y年"}\r
+                }\r
+                GyM{\r
+                    G{"Gy/MM~Gy/MM"}\r
+                    M{"Gy/MM~y/MM"}\r
+                    y{"Gy/MM~y/MM"}\r
+                }\r
+                GyMEd{\r
+                    G{"Gy/MM/dd(E)~Gy/MM/dd(E)"}\r
+                    M{"Gy/MM/dd(E)~y/MM/dd(E)"}\r
+                    d{"Gy/MM/dd(E)~y/MM/dd(E)"}\r
+                    y{"Gy/MM/dd(E)~y/MM/dd(E)"}\r
+                }\r
+                GyMMM{\r
+                    G{"Gy年M月~Gy年M月"}\r
+                    M{"Gy年M月~M月"}\r
+                    y{"Gy年M月~y年M月"}\r
+                }\r
+                GyMMMEd{\r
+                    G{"Gy年M月d日(E)~Gy年M月d日(E)"}\r
+                    M{"Gy年M月d日(E)~M月d日(E)"}\r
+                    d{"Gy年M月d日(E)~d日(E)"}\r
+                    y{"Gy年M月d日(E)~y年M月d日(E)"}\r
+                }\r
+                GyMMMd{\r
+                    G{"Gy年M月d日~Gy年M月d日"}\r
+                    M{"Gy年M月d日~M月d日"}\r
+                    d{"Gy年M月d日~d日"}\r
+                    y{"Gy年M月d日~y年M月d日"}\r
+                }\r
+                GyMd{\r
+                    G{"Gy/MM/dd~Gy/MM/dd"}\r
+                    M{"Gy/MM/dd~y/MM/dd"}\r
+                    d{"Gy/MM/dd~y/MM/dd"}\r
+                    y{"Gy/MM/dd~y/MM/dd"}\r
+                }\r
                 H{\r
                     H{"H時~H時"}\r
                 }\r
@@ -1577,6 +1617,44 @@ ja{
                 }\r
             }\r
             intervalFormats{\r
+                Gy{\r
+                    G{"Gy年~Gy年"}\r
+                    y{"Gy年~y年"}\r
+                }\r
+                GyM{\r
+                    G{"Gy/MM~Gy/MM"}\r
+                    M{"Gy/MM~y/MM"}\r
+                    y{"Gy/MM~y/MM"}\r
+                }\r
+                GyMEd{\r
+                    G{"Gy/MM/dd(E)~Gy/MM/dd(E)"}\r
+                    M{"Gy/MM/dd(E)~y/MM/dd(E)"}\r
+                    d{"Gy/MM/dd(E)~y/MM/dd(E)"}\r
+                    y{"Gy/MM/dd(E)~y/MM/dd(E)"}\r
+                }\r
+                GyMMM{\r
+                    G{"Gy年M月~Gy年M月"}\r
+                    M{"Gy年M月~M月"}\r
+                    y{"Gy年M月~y年M月"}\r
+                }\r
+                GyMMMEd{\r
+                    G{"Gy年M月d日(E)~Gy年M月d日(E)"}\r
+                    M{"Gy年M月d日(E)~M月d日(E)"}\r
+                    d{"Gy年M月d日(E)~d日(E)"}\r
+                    y{"Gy年M月d日(E)~y年M月d日(E)"}\r
+                }\r
+                GyMMMd{\r
+                    G{"Gy年M月d日~Gy年M月d日"}\r
+                    M{"Gy年M月d日~M月d日"}\r
+                    d{"Gy年M月d日~d日"}\r
+                    y{"Gy年M月d日~y年M月d日"}\r
+                }\r
+                GyMd{\r
+                    G{"Gy/MM/dd~Gy/MM/dd"}\r
+                    M{"Gy/MM/dd~y/MM/dd"}\r
+                    d{"Gy/MM/dd~y/MM/dd"}\r
+                    y{"Gy/MM/dd~y/MM/dd"}\r
+                }\r
                 H{\r
                     H{"H時~H時"}\r
                 }\r
@@ -2464,6 +2542,7 @@ ja{
                     "大正",\r
                     "昭和",\r
                     "平成",\r
+                    "QQ",\r
                 }\r
                 narrow{\r
                     "大化",\r
@@ -2702,6 +2781,7 @@ ja{
                     "T",\r
                     "S",\r
                     "H",\r
+                    "Q",\r
                 }\r
             }\r
         }\r
@@ -3255,6 +3335,11 @@ ja{
         }\r
         quarter-narrow{\r
             dn{"四半期"}\r
+            relative{\r
+                "-1"{"前四半期"}\r
+                "0"{"今四半期"}\r
+                "1"{"翌四半期"}\r
+            }\r
             relativeTime{\r
                 future{\r
                     other{"{0}四半期後"}\r
@@ -3266,6 +3351,11 @@ ja{
         }\r
         quarter-short{\r
             dn{"四半期"}\r
+            relative{\r
+                "-1"{"前四半期"}\r
+                "0"{"今四半期"}\r
+                "1"{"翌四半期"}\r
+            }\r
             relativeTime{\r
                 future{\r
                     other{"{0} 四半期後"}\r
@@ -3715,4 +3805,36 @@ ja{
         US{"米ヤード・ポンド法"}\r
         metric{"メートル法"}\r
     }\r
+    parse{\r
+        date{\r
+            lenient{\r
+                "[\\--/]",\r
+                "[\\:∶]",\r
+            }\r
+        }\r
+        general{\r
+            lenient{\r
+                "[.․。︒﹒.。]",\r
+                "['ʼ՚᾽᾿’']",\r
+                "[%٪﹪%]",\r
+                "[؉‰]",\r
+                "[\$﹩$$]",\r
+                "[£₤]",\r
+                "[¥¥]",\r
+                "[₩₩]",\r
+                "[₨₹{Rp}{Rs}]",\r
+            }\r
+        }\r
+        number{\r
+            lenient{\r
+                "[\\-‒⁻₋−➖﹣-]",\r
+                "[,،٫、︐︑﹐﹑,、]",\r
+                "[+⁺₊➕﬩﹢+]",\r
+            }\r
+            stricter{\r
+                "[,٫︐﹐,]",\r
+                "[.․﹒.。]",\r
+            }\r
+        }\r
+    }\r
 }\r
diff --git a/source/data/locales/jv.txt b/source/data/locales/jv.txt
new file mode 100644 (file)
index 0000000..564864a
--- /dev/null
@@ -0,0 +1,788 @@
+// © 2016 and later: Unicode, Inc. and others.\r
+// License & terms of use: http://www.unicode.org/copyright.html#License\r
+jv{\r
+    AuxExemplarCharacters{"[f q v x z]"}\r
+    Ellipsis{\r
+        final{"{0}…"}\r
+        initial{"…{0}"}\r
+        medial{"{0}…{1}"}\r
+        word-final{"{0} …"}\r
+        word-initial{"… {0}"}\r
+        word-medial{"{0} … {1}"}\r
+    }\r
+    ExemplarCharacters{"[a â å b c d e é è ê g h i ì j k l m n o ò p r s t u ù w y]"}\r
+    ExemplarCharactersIndex{"[A Â Å B C D E É È Ê G H I Ì J K L M N O Ò P R S T U Ù W Y]"}\r
+    ExemplarCharactersNumbers{"[\\- , . % ‰ + 0 1 2 3 4 5 6 7 8 9]"}\r
+    ExemplarCharactersPunctuation{"[\\- , ; \\: ! ? . ( ) \\[ \\] \\{ \\}]"}\r
+    MoreInformation{"?"}\r
+    NumberElements{\r
+        default{"latn"}\r
+        latn{\r
+            miscPatterns{\r
+                atLeast{"≥{0}"}\r
+                range{"{0} – {1}"}\r
+            }\r
+            patterns{\r
+                accountingFormat{"¤ #,##0.00"}\r
+                currencyFormat{"¤ #,##0.00"}\r
+                decimalFormat{"#,##0.###"}\r
+                percentFormat{"#,##0%"}\r
+                scientificFormat{"#E0"}\r
+            }\r
+            symbols{\r
+                decimal{","}\r
+                exponential{"E"}\r
+                group{"."}\r
+                infinity{"∞"}\r
+                minusSign{"-"}\r
+                nan{"NaN"}\r
+                perMille{"‰"}\r
+                percentSign{"%"}\r
+                plusSign{"+"}\r
+                superscriptingExponent{"×"}\r
+            }\r
+        }\r
+        minimalPairs{\r
+            ordinal{\r
+                other{"Njupuk penggoan tengen sing ke {0}."}\r
+            }\r
+            plural{\r
+                other{"{0} dino"}\r
+            }\r
+        }\r
+        minimumGroupingDigits{"1"}\r
+    }\r
+    Version{"2.1.44.15"}\r
+    calendar{\r
+        generic{\r
+            DateTimePatterns{\r
+                "HH:mm:ss zzzz",\r
+                "HH:mm:ss z",\r
+                "HH:mm:ss",\r
+                "HH:mm",\r
+                "EEEE, d MMMM y G",\r
+                "d MMMM y G",\r
+                "d MMM y G",\r
+                "dd-MM-y GGGGG",\r
+                "{1} {0}",\r
+                "{1} {0}",\r
+                "{1} {0}",\r
+                "{1} {0}",\r
+                "{1} {0}",\r
+            }\r
+            availableFormats{\r
+                E{"ccc"}\r
+                EHm{"E HH:mm"}\r
+                EHms{"E HH:mm:ss"}\r
+                Ed{"E, d"}\r
+                Ehm{"E h:mm a"}\r
+                Ehms{"E h:mm:ss a"}\r
+                Gy{"y G"}\r
+                GyMMM{"MMM y G"}\r
+                GyMMMEd{"E, d MMM y G"}\r
+                GyMMMd{"d MMM y G"}\r
+                H{"HH"}\r
+                Hm{"HH:mm"}\r
+                Hms{"HH:mm:ss"}\r
+                M{"L"}\r
+                MEd{"E, dd/MM"}\r
+                MMM{"LLL"}\r
+                MMMEd{"E, d MMM"}\r
+                MMMMd{"d MMMM"}\r
+                MMMd{"d MMM"}\r
+                Md{"dd/MM"}\r
+                d{"d"}\r
+                h{"h a"}\r
+                hm{"h:mm a"}\r
+                hms{"h:mm:ss a"}\r
+                ms{"mm:ss"}\r
+                y{"y G"}\r
+                yyyy{"y G"}\r
+                yyyyM{"MM - y GGGGG"}\r
+                yyyyMEd{"E, dd - MM - y GGGGG"}\r
+                yyyyMMM{"MMM y G"}\r
+                yyyyMMMEd{"E, d MMM y G"}\r
+                yyyyMMMM{"MMMM y G"}\r
+                yyyyMMMd{"d MMM y G"}\r
+                yyyyMd{"dd - MM - y GGGGG"}\r
+                yyyyQQQ{"QQQ y G"}\r
+                yyyyQQQQ{"QQQQ y G"}\r
+            }\r
+            intervalFormats{\r
+                M{\r
+                    M{"MM – MM"}\r
+                }\r
+                MEd{\r
+                    M{"E, dd/MM – E, dd/MM"}\r
+                    d{"E, dd/MM – E, dd/MM"}\r
+                }\r
+                MMM{\r
+                    M{"LLL – LLL"}\r
+                }\r
+                MMMEd{\r
+                    M{"E, d MMM – E, d MMM"}\r
+                    d{"E, d MMM – E, d MMM"}\r
+                }\r
+                MMMd{\r
+                    M{"d MMM – d MMM"}\r
+                    d{"d – d MMM"}\r
+                }\r
+                Md{\r
+                    M{"dd/MM – dd/MM"}\r
+                    d{"dd/MM – dd/MM"}\r
+                }\r
+                d{\r
+                    d{"d – d"}\r
+                }\r
+                fallback{"{0} – {1}"}\r
+                y{\r
+                    y{"y – y G"}\r
+                }\r
+                yM{\r
+                    M{"MM-y – MM-y GGGGG"}\r
+                    y{"MM-y – MM-y GGGGG"}\r
+                }\r
+                yMEd{\r
+                    M{"E, dd-MM-y – E, dd-MM-y GGGGG"}\r
+                    d{"E, dd-MM-y – E, dd-MM-y GGGGG"}\r
+                    y{"E, dd-MM-y – E, dd-MM-y GGGGG"}\r
+                }\r
+                yMMM{\r
+                    M{"MMM – MMM y G"}\r
+                    y{"MMM y – MMM y G"}\r
+                }\r
+                yMMMEd{\r
+                    M{"E, d MMM – E, d MMM y G"}\r
+                    d{"E, d MMM – E, d MMM y G"}\r
+                    y{"E, d MMM y – E, d MMM y G"}\r
+                }\r
+                yMMMM{\r
+                    M{"MMMM – MMMM y G"}\r
+                    y{"MMMM y – MMMM y G"}\r
+                }\r
+                yMMMd{\r
+                    M{"d MMM – d MMM y G"}\r
+                    d{"d – d MMM y G"}\r
+                    y{"d MMM y – d MMM y G"}\r
+                }\r
+                yMd{\r
+                    M{"dd-MM-y – dd-MM-y GGGGG"}\r
+                    d{"dd-MM-y – dd-MM-y GGGGG"}\r
+                    y{"dd-MM-y – dd-MM-y GGGGG"}\r
+                }\r
+            }\r
+        }\r
+        gregorian{\r
+            AmPmMarkers{\r
+                "Isuk",\r
+                "Wengi",\r
+            }\r
+            AmPmMarkersAbbr{\r
+                "Isuk",\r
+                "Wengi",\r
+            }\r
+            AmPmMarkersNarrow{\r
+                "Isuk",\r
+                "Wengi",\r
+            }\r
+            DateTimePatterns{\r
+                "HH:mm:ss zzzz",\r
+                "HH:mm:ss z",\r
+                "HH:mm:ss",\r
+                "HH:mm",\r
+                "EEEE, d MMMM y",\r
+                "d MMMM y",\r
+                "d MMM y",\r
+                "dd-MM-y",\r
+                "{1}, {0}",\r
+                "{1} {0}",\r
+                "{1} {0}",\r
+                "{1}, {0}",\r
+                "{1}, {0}",\r
+            }\r
+            appendItems{\r
+                Timezone{"{0} {1}"}\r
+            }\r
+            availableFormats{\r
+                E{"ccc"}\r
+                EHm{"E HH:mm"}\r
+                EHms{"E HH:mm:ss"}\r
+                Ed{"E, d"}\r
+                Ehm{"E h:mm a"}\r
+                Ehms{"E h:mm:ss a"}\r
+                Gy{"y G"}\r
+                GyMMM{"MMM y G"}\r
+                GyMMMEd{"E, d MMM y G"}\r
+                GyMMMd{"d MMM y G"}\r
+                H{"HH"}\r
+                Hm{"HH:mm"}\r
+                Hms{"HH:mm:ss"}\r
+                Hmsv{"HH:mm:ss v"}\r
+                Hmv{"HH:mm v"}\r
+                M{"L"}\r
+                MEd{"E dd/MM"}\r
+                MMM{"LLL"}\r
+                MMMEd{"E, d MMM"}\r
+                MMMMW{\r
+                    other{"'pekan' W 'saka' MMMM"}\r
+                }\r
+                MMMMd{"d MMMM"}\r
+                MMMd{"d MMM"}\r
+                Md{"dd/MM"}\r
+                d{"d"}\r
+                h{"h a"}\r
+                hm{"h:mm a"}\r
+                hms{"h:mm:ss a"}\r
+                hmsv{"h:mm:ss a v"}\r
+                hmv{"h:mm a v"}\r
+                ms{"mm:ss"}\r
+                y{"y"}\r
+                yM{"MM-y"}\r
+                yMEd{"E, dd-MM-y"}\r
+                yMMM{"MMM y"}\r
+                yMMMEd{"E, d MMM y"}\r
+                yMMMM{"MMMM y"}\r
+                yMMMd{"d MMM y"}\r
+                yMd{"dd-MM-y"}\r
+                yQQQ{"QQQ y"}\r
+                yQQQQ{"QQQQ y"}\r
+                yw{\r
+                    other{"'pekan' w 'saka' Y"}\r
+                }\r
+            }\r
+            dayNames{\r
+                format{\r
+                    abbreviated{\r
+                        "Ahd",\r
+                        "Sen",\r
+                        "Sel",\r
+                        "Rab",\r
+                        "Kam",\r
+                        "Jum",\r
+                        "Sab",\r
+                    }\r
+                    narrow{\r
+                        "A",\r
+                        "S",\r
+                        "S",\r
+                        "R",\r
+                        "K",\r
+                        "J",\r
+                        "S",\r
+                    }\r
+                    short{\r
+                        "Ahd",\r
+                        "Sen",\r
+                        "Sel",\r
+                        "Rab",\r
+                        "Kam",\r
+                        "Jum",\r
+                        "Sab",\r
+                    }\r
+                    wide{\r
+                        "Ahad",\r
+                        "Senin",\r
+                        "Selasa",\r
+                        "Rabu",\r
+                        "Kamis",\r
+                        "Jumat",\r
+                        "Sabtu",\r
+                    }\r
+                }\r
+                stand-alone{\r
+                    abbreviated{\r
+                        "Ahd",\r
+                        "Sen",\r
+                        "Sel",\r
+                        "Rab",\r
+                        "Kam",\r
+                        "Jum",\r
+                        "Sab",\r
+                    }\r
+                    narrow{\r
+                        "A",\r
+                        "S",\r
+                        "S",\r
+                        "R",\r
+                        "K",\r
+                        "J",\r
+                        "S",\r
+                    }\r
+                    short{\r
+                        "Ahd",\r
+                        "Sen",\r
+                        "Sel",\r
+                        "Rab",\r
+                        "Kam",\r
+                        "Jum",\r
+                        "Sab",\r
+                    }\r
+                    wide{\r
+                        "Ahad",\r
+                        "Senin",\r
+                        "Selasa",\r
+                        "Rabu",\r
+                        "Kamis",\r
+                        "Jumat",\r
+                        "Sabtu",\r
+                    }\r
+                }\r
+            }\r
+            dayPeriod{\r
+                stand-alone{\r
+                    abbreviated{\r
+                        am{"Isuk"}\r
+                        pm{"Wengi"}\r
+                    }\r
+                    narrow{\r
+                        am{"Isuk"}\r
+                        pm{"Wengi"}\r
+                    }\r
+                    wide{\r
+                        am{"Isuk"}\r
+                        pm{"Wengi"}\r
+                    }\r
+                }\r
+            }\r
+            eras{\r
+                abbreviated{\r
+                    "SM",\r
+                    "M",\r
+                }\r
+                abbreviated%variant{\r
+                    "SEU",\r
+                    "EU",\r
+                }\r
+                wide{\r
+                    "Sakdurunge Masehi",\r
+                    "Masehi",\r
+                }\r
+                wide%variant{\r
+                    "Sakdurunge Era Umum",\r
+                    "Era Umum",\r
+                }\r
+            }\r
+            intervalFormats{\r
+                H{\r
+                    H{"HH – HH"}\r
+                }\r
+                Hm{\r
+                    H{"HH:mm – HH:mm"}\r
+                    m{"HH:mm – HH:mm"}\r
+                }\r
+                Hmv{\r
+                    H{"HH:mm – HH:mm v"}\r
+                    m{"HH:mm – HH:mm v"}\r
+                }\r
+                Hv{\r
+                    H{"HH – HH v"}\r
+                }\r
+                M{\r
+                    M{"MM – MM"}\r
+                }\r
+                MEd{\r
+                    M{"E, dd/MM – E, dd/MM"}\r
+                    d{"E, dd/MM – E, dd/MM"}\r
+                }\r
+                MMM{\r
+                    M{"LLL–LLL"}\r
+                }\r
+                MMMEd{\r
+                    M{"E, d MMM – E, d MMM"}\r
+                    d{"E, d MMM – E, d MMM"}\r
+                }\r
+                MMMd{\r
+                    M{"d MMM – d MMM"}\r
+                    d{"MMM d–d"}\r
+                }\r
+                Md{\r
+                    M{"dd/MM – dd/MM"}\r
+                    d{"dd/MM – dd/MM"}\r
+                }\r
+                d{\r
+                    d{"d – d"}\r
+                }\r
+                fallback{"{0} – {1}"}\r
+                h{\r
+                    a{"h a – h a"}\r
+                    h{"h – h a"}\r
+                }\r
+                hm{\r
+                    a{"h:mm a – h:mm a"}\r
+                    h{"h:mm – h:mm a"}\r
+                    m{"h:mm – h:mm a"}\r
+                }\r
+                hmv{\r
+                    a{"h:mm a – h:mm a v"}\r
+                    h{"h:mm – h:mm a v"}\r
+                    m{"h:mm – h:mm a v"}\r
+                }\r
+                hv{\r
+                    a{"h a – h a v"}\r
+                    h{"h – h a v"}\r
+                }\r
+                y{\r
+                    y{"y – y"}\r
+                }\r
+                yM{\r
+                    M{"MM-y – MM-y"}\r
+                    y{"MM-y – MM-y"}\r
+                }\r
+                yMEd{\r
+                    M{"E, dd-MM-y – E, dd-MM-y"}\r
+                    d{"E, dd-MM-y – E, dd-MM-y"}\r
+                    y{"E, dd-MM-y – E, dd-MM-y"}\r
+                }\r
+                yMMM{\r
+                    M{"MMM – MMM y"}\r
+                    y{"MMM y – MMM y"}\r
+                }\r
+                yMMMEd{\r
+                    M{"E, d MMM – E, d MMM y"}\r
+                    d{"E, d MMM – E, d MMM y"}\r
+                    y{"E, d MMM y – E, d MMM y"}\r
+                }\r
+                yMMMM{\r
+                    M{"MMMM – MMMM y"}\r
+                    y{"MMMM y – MMMM y"}\r
+                }\r
+                yMMMd{\r
+                    M{"d MMM – d MMM y"}\r
+                    d{"d – d MMM y"}\r
+                    y{"d MMM y – d MMM y"}\r
+                }\r
+                yMd{\r
+                    M{"dd-MM-y – dd-MM-y"}\r
+                    d{"dd-MM-y – dd-MM-y"}\r
+                    y{"dd-MM-y – dd-MM-y"}\r
+                }\r
+            }\r
+            monthNames{\r
+                format{\r
+                    abbreviated{\r
+                        "Jan",\r
+                        "Feb",\r
+                        "Mar",\r
+                        "Apr",\r
+                        "Mei",\r
+                        "Jun",\r
+                        "Jul",\r
+                        "Agt",\r
+                        "Sep",\r
+                        "Okt",\r
+                        "Nov",\r
+                        "Des",\r
+                    }\r
+                    narrow{\r
+                        "J",\r
+                        "F",\r
+                        "M",\r
+                        "A",\r
+                        "M",\r
+                        "J",\r
+                        "J",\r
+                        "A",\r
+                        "S",\r
+                        "O",\r
+                        "N",\r
+                        "D",\r
+                    }\r
+                    wide{\r
+                        "Januari",\r
+                        "Februari",\r
+                        "Maret",\r
+                        "April",\r
+                        "Mei",\r
+                        "Juni",\r
+                        "Juli",\r
+                        "Agustus",\r
+                        "September",\r
+                        "Oktober",\r
+                        "November",\r
+                        "Desember",\r
+                    }\r
+                }\r
+                stand-alone{\r
+                    abbreviated{\r
+                        "Jan",\r
+                        "Feb",\r
+                        "Mar",\r
+                        "Apr",\r
+                        "Mei",\r
+                        "Jun",\r
+                        "Jul",\r
+                        "Agt",\r
+                        "Sep",\r
+                        "Okt",\r
+                        "Nov",\r
+                        "Des",\r
+                    }\r
+                    narrow{\r
+                        "J",\r
+                        "F",\r
+                        "M",\r
+                        "A",\r
+                        "M",\r
+                        "J",\r
+                        "J",\r
+                        "A",\r
+                        "S",\r
+                        "O",\r
+                        "N",\r
+                        "D",\r
+                    }\r
+                    wide{\r
+                        "Januari",\r
+                        "Februari",\r
+                        "Maret",\r
+                        "April",\r
+                        "Mei",\r
+                        "Juni",\r
+                        "Juli",\r
+                        "Agustus",\r
+                        "September",\r
+                        "Oktober",\r
+                        "November",\r
+                        "Desember",\r
+                    }\r
+                }\r
+            }\r
+            quarters{\r
+                format{\r
+                    abbreviated{\r
+                        "TW1",\r
+                        "TW2",\r
+                        "TW3",\r
+                        "TW4",\r
+                    }\r
+                    narrow{\r
+                        "1",\r
+                        "2",\r
+                        "3",\r
+                        "4",\r
+                    }\r
+                    wide{\r
+                        "triwulan kaping pisan",\r
+                        "triwulan kaping loro",\r
+                        "triwulan kaping telu",\r
+                        "triwulan kaping papat",\r
+                    }\r
+                }\r
+                stand-alone{\r
+                    abbreviated{\r
+                        "TW1",\r
+                        "TW2",\r
+                        "TW3",\r
+                        "TW4",\r
+                    }\r
+                    narrow{\r
+                        "1",\r
+                        "2",\r
+                        "3",\r
+                        "4",\r
+                    }\r
+                    wide{\r
+                        "triwulan kaping pisan",\r
+                        "triwulan kaping loro",\r
+                        "triwulan kaping telu",\r
+                        "triwulan kaping papat",\r
+                    }\r
+                }\r
+            }\r
+        }\r
+    }\r
+    delimiters{\r
+        alternateQuotationEnd{"’"}\r
+        alternateQuotationStart{"‘"}\r
+        quotationEnd{"”"}\r
+        quotationStart{"“"}\r
+    }\r
+    fields{\r
+        day{\r
+            dn{"dino"}\r
+            relative{\r
+                "-1"{"wingi"}\r
+                "0"{"saiki"}\r
+                "1"{"sesuk"}\r
+            }\r
+        }\r
+        day-narrow{\r
+            dn{"dino"}\r
+        }\r
+        day-short{\r
+            dn{"dino"}\r
+        }\r
+        dayperiod{\r
+            dn{"isuk/wengi"}\r
+        }\r
+        era{\r
+            dn{"era"}\r
+        }\r
+        hour{\r
+            dn{"jam"}\r
+        }\r
+        hour-narrow{\r
+            dn{"jam"}\r
+        }\r
+        hour-short{\r
+            dn{"jam"}\r
+        }\r
+        minute{\r
+            dn{"menit"}\r
+        }\r
+        minute-narrow{\r
+            dn{"menit"}\r
+        }\r
+        minute-short{\r
+            dn{"menit"}\r
+        }\r
+        month{\r
+            dn{"sasi"}\r
+            relative{\r
+                "-1"{"sasi wingi"}\r
+                "0"{"sasi iki"}\r
+                "1"{"sasi ngarep"}\r
+            }\r
+        }\r
+        month-narrow{\r
+            dn{"sasi"}\r
+        }\r
+        month-short{\r
+            dn{"sasi"}\r
+        }\r
+        quarter{\r
+            dn{"triwulan"}\r
+        }\r
+        quarter-narrow{\r
+            dn{"triwulan"}\r
+        }\r
+        quarter-short{\r
+            dn{"triwulan"}\r
+        }\r
+        second{\r
+            dn{"detik"}\r
+        }\r
+        second-narrow{\r
+            dn{"detik"}\r
+        }\r
+        second-short{\r
+            dn{"detik"}\r
+        }\r
+        week{\r
+            dn{"pekan"}\r
+            relative{\r
+                "-1"{"pekan wingi"}\r
+                "0"{"pekan iki"}\r
+                "1"{"pekan ngarep"}\r
+            }\r
+            relativePeriod{"pekan kaping {0}"}\r
+        }\r
+        week-narrow{\r
+            dn{"pekan"}\r
+            relativePeriod{"pekan kaping {0}"}\r
+        }\r
+        week-short{\r
+            dn{"pekan"}\r
+            relativePeriod{"pekan kaping {0}"}\r
+        }\r
+        weekday{\r
+            dn{"dino sepekan"}\r
+        }\r
+        year{\r
+            dn{"taun"}\r
+            relative{\r
+                "-1"{"taun wingi"}\r
+                "0"{"taun iki"}\r
+                "1"{"taun ngarep"}\r
+            }\r
+        }\r
+        year-narrow{\r
+            dn{"taun"}\r
+        }\r
+        year-short{\r
+            dn{"taun"}\r
+        }\r
+        zone{\r
+            dn{"zona wektu"}\r
+        }\r
+    }\r
+    layout{\r
+        characters{"left-to-right"}\r
+        lines{"top-to-bottom"}\r
+    }\r
+    listPattern{\r
+        or{\r
+            2{"{0} utowo {1}"}\r
+            end{"{0}, utowo {1}"}\r
+            middle{"{0}, {1}"}\r
+            start{"{0}, {1}"}\r
+        }\r
+        standard{\r
+            2{"{0} lan {1}"}\r
+            end{"{0}, lan {1}"}\r
+            middle{"{0}, {1}"}\r
+            start{"{0}, {1}"}\r
+        }\r
+        standard-short{\r
+            2{"{0} lan {1}"}\r
+            end{"{0}, lan {1}"}\r
+            middle{"{0}, {1}"}\r
+            start{"{0}, {1}"}\r
+        }\r
+        unit{\r
+            2{"{0}, {1}"}\r
+            end{"{0}, {1}"}\r
+            middle{"{0}, {1}"}\r
+            start{"{0}, {1}"}\r
+        }\r
+        unit-narrow{\r
+            2{"{0} {1}"}\r
+            end{"{0} {1}"}\r
+            middle{"{0} {1}"}\r
+            start{"{0} {1}"}\r
+        }\r
+        unit-short{\r
+            2{"{0}, {1}"}\r
+            end{"{0}, {1}"}\r
+            middle{"{0}, {1}"}\r
+            start{"{0}, {1}"}\r
+        }\r
+    }\r
+    measurementSystemNames{\r
+        UK{"BR"}\r
+        US{"AS"}\r
+        metric{"Metrik"}\r
+    }\r
+    parse{\r
+        date{\r
+            lenient{\r
+                "[\\--/]",\r
+                "[\\:∶]",\r
+            }\r
+        }\r
+        general{\r
+            lenient{\r
+                "[.․。︒﹒.。]",\r
+                "['ʼ՚᾽᾿’']",\r
+                "[%٪﹪%]",\r
+                "[؉‰]",\r
+                "[\$﹩$$]",\r
+                "[£₤]",\r
+                "[¥¥]",\r
+                "[₩₩]",\r
+                "[₨₹{Rp}{Rs}]",\r
+            }\r
+        }\r
+        number{\r
+            lenient{\r
+                "[\\-‒⁻₋−➖﹣-]",\r
+                "[,،٫、︐︑﹐﹑,、]",\r
+                "[+⁺₊➕﬩﹢+]",\r
+            }\r
+            stricter{\r
+                "[,٫︐﹐,]",\r
+                "[.․﹒.。]",\r
+            }\r
+        }\r
+    }\r
+}\r
similarity index 77%
rename from source/data/locales/ff_GN.txt
rename to source/data/locales/jv_ID.txt
index c03bd8c..74d9218 100644 (file)
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
-ff_GN{\r
-    Version{"2.1.38.69"}\r
+jv_ID{\r
+    Version{"2.1.44.15"}\r
 }\r
index 7b4ce84..7f0a4be 100644 (file)
@@ -25,7 +25,9 @@ ka{
         default{"latn"}\r
         latn{\r
             miscPatterns{\r
+                approximately{"≈{0}"}\r
                 atLeast{"{0}+"}\r
+                atMost{"≤{0}"}\r
                 range{"{0}-{1}"}\r
             }\r
             patterns{\r
@@ -219,7 +221,7 @@ ka{
         native{"latn"}\r
         traditional{"geor"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.50"}\r
     calendar{\r
         generic{\r
             DateTimePatterns{\r
@@ -1007,6 +1009,12 @@ ka{
         dayperiod{\r
             dn{"დღის ნახევარი"}\r
         }\r
+        dayperiod-narrow{\r
+            dn{"დღ. ნახევარი"}\r
+        }\r
+        dayperiod-short{\r
+            dn{"დღ. ნახევარი"}\r
+        }\r
         era{\r
             dn{"ეპოქა"}\r
         }\r
@@ -1657,12 +1665,24 @@ ka{
         weekOfMonth{\r
             dn{"თვის კვირა"}\r
         }\r
+        weekOfMonth-narrow{\r
+            dn{"თვ. კვირა"}\r
+        }\r
+        weekOfMonth-short{\r
+            dn{"თვ. კვირა"}\r
+        }\r
         weekday{\r
             dn{"კვირის დღე"}\r
         }\r
         weekdayOfMonth{\r
             dn{"კვირის დღე თვეში"}\r
         }\r
+        weekdayOfMonth-narrow{\r
+            dn{"კვ. დღე თვეში"}\r
+        }\r
+        weekdayOfMonth-short{\r
+            dn{"კვ. დღე თვეში"}\r
+        }\r
         year{\r
             dn{"წელი"}\r
             relative{\r
@@ -1720,6 +1740,12 @@ ka{
         zone{\r
             dn{"დროის სარტყელი"}\r
         }\r
+        zone-narrow{\r
+            dn{"დროის სარტყ."}\r
+        }\r
+        zone-short{\r
+            dn{"დროის სარტყ."}\r
+        }\r
     }\r
     listPattern{\r
         or{\r
index 87f847f..c42eca8 100644 (file)
@@ -16,7 +16,7 @@ kab{
             }\r
         }\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.94"}\r
     calendar{\r
         generic{\r
             DateTimePatterns{\r
index 5e3a506..41ee9ef 100644 (file)
@@ -2,8 +2,8 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 kea{\r
     AuxExemplarCharacters{\r
-        "[á à ă â å ä ã ā æ c ç é è ĕ ê ë ẽ ē í ì ĭ î ï ĩ ī {n\u0308} ó ò ŏ ô ö õ ø ō"\r
-        " œ q {rr} ú ù ŭ û ü ũ ū w ÿ]"\r
+        "[ª á à ă â å ä ã ā æ c ç é è ĕ ê ë ẽ ē í ì ĭ î ï ĩ ī {n\u0308} º ó ò ŏ ô ö õ"\r
+        " ø ō œ q {rr} ú ù ŭ û ü ũ ū w ÿ]"\r
     }\r
     Ellipsis{\r
         final{"{0}…"}\r
@@ -16,6 +16,10 @@ kea{
     ExemplarCharacters{"[a b d {dj} e f g h i j k l {lh} m n ñ {nh} o p r s t {tx} u v x y z]"}\r
     ExemplarCharactersIndex{"[A B D E F G H I J K L M N O P R S T U V X Z]"}\r
     ExemplarCharactersNumbers{"[  \\- , % ‰ + 0 1 2 3 4 5 6 7 8 9]"}\r
+    ExemplarCharactersPunctuation{\r
+        "[\\- ‐ – — , ; \\: ! ? . … ' ‘ ’ \u0022 “ ” « » ( ) \\[ \\] § @ * / \\& # † "\r
+        "‡]"\r
+    }\r
     MoreInformation{"?"}\r
     NumberElements{\r
         default{"latn"}\r
@@ -129,7 +133,7 @@ kea{
         minimumGroupingDigits{"1"}\r
         native{"latn"}\r
     }\r
-    Version{"2.1.39.11"}\r
+    Version{"2.1.43.65"}\r
     calendar{\r
         generic{\r
             DateTimePatterns{\r
index d404811..49a7919 100644 (file)
@@ -28,7 +28,9 @@ kk{
         default{"latn"}\r
         latn{\r
             miscPatterns{\r
+                approximately{"~{0}"}\r
                 atLeast{"{0}+"}\r
+                atMost{"≤{0}"}\r
                 range{"{0}–{1}"}\r
             }\r
             patterns{\r
@@ -219,7 +221,7 @@ kk{
         minimumGroupingDigits{"1"}\r
         native{"latn"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.88"}\r
     calendar{\r
         generic{\r
             DateTimePatterns{\r
@@ -238,12 +240,12 @@ kk{
                 "{1} {0}",\r
             }\r
             availableFormats{\r
-                Bh{"h B"}\r
-                Bhm{"h:mm B"}\r
-                Bhms{"h:mm:ss B"}\r
+                Bh{"B h"}\r
+                Bhm{"B h:mm"}\r
+                Bhms{"B h:mm:ss"}\r
                 E{"ccc"}\r
-                EBhm{"E h:mm B"}\r
-                EBhms{"E h:mm:ss B"}\r
+                EBhm{"E B h:mm"}\r
+                EBhms{"E B h:mm:ss"}\r
                 EHm{"E HH:mm"}\r
                 EHms{"E HH:mm:ss"}\r
                 Ed{"d, E"}\r
@@ -460,13 +462,13 @@ kk{
             dayNames{\r
                 format{\r
                     abbreviated{\r
-                        "Ð\96с",\r
-                        "Ð\94с",\r
-                        "Сс",\r
-                        "Ср",\r
-                        "Ð\91с",\r
-                        "Ð\96м",\r
-                        "Сб",\r
+                        "Ðс",\r
+                        "дс",\r
+                        "сс",\r
+                        "ср",\r
+                        "бс",\r
+                        "Ðм",\r
+                        "сб",\r
                     }\r
                     narrow{\r
                         "Ж",\r
@@ -478,13 +480,13 @@ kk{
                         "С",\r
                     }\r
                     short{\r
-                        "Ð\96с",\r
-                        "Ð\94с",\r
-                        "Сс",\r
-                        "Ср",\r
-                        "Ð\91с",\r
-                        "Ð\96м",\r
-                        "Сб",\r
+                        "Ðс",\r
+                        "дс",\r
+                        "сс",\r
+                        "ср",\r
+                        "бс",\r
+                        "Ðм",\r
+                        "сб",\r
                     }\r
                     wide{\r
                         "жексенбі",\r
@@ -498,13 +500,13 @@ kk{
                 }\r
                 stand-alone{\r
                     abbreviated{\r
-                        "Ð\96с",\r
-                        "Ð\94с",\r
-                        "Сс",\r
-                        "Ср",\r
-                        "Ð\91с",\r
-                        "Ð\96м",\r
-                        "Сб",\r
+                        "Ðс",\r
+                        "дс",\r
+                        "сс",\r
+                        "ср",\r
+                        "бс",\r
+                        "Ðм",\r
+                        "сб",\r
                     }\r
                     narrow{\r
                         "Ж",\r
@@ -516,22 +518,22 @@ kk{
                         "С",\r
                     }\r
                     short{\r
-                        "Ð\96с",\r
-                        "Ð\94с",\r
-                        "Сс",\r
-                        "Ср",\r
-                        "Ð\91с",\r
-                        "Ð\96м",\r
-                        "Сб",\r
+                        "Ðс",\r
+                        "дс",\r
+                        "сс",\r
+                        "ср",\r
+                        "бс",\r
+                        "Ðм",\r
+                        "сб",\r
                     }\r
                     wide{\r
-                        "Ð\96ексенбі",\r
-                        "Ð\94үйсенбі",\r
-                        "Сейсенбі",\r
-                        "Сәрсенбі",\r
-                        "Ð\91ейсенбі",\r
-                        "Ð\96ұма",\r
-                        "Сенбі",\r
+                        "Ðексенбі",\r
+                        "дүйсенбі",\r
+                        "сейсенбі",\r
+                        "сәрсенбі",\r
+                        "бейсенбі",\r
+                        "Ðұма",\r
+                        "сенбі",\r
                     }\r
                 }\r
             }\r
@@ -600,17 +602,13 @@ kk{
                     "б.з.д.",\r
                     "б.з.",\r
                 }\r
-                abbreviated%variant{\r
-                    "BCE",\r
-                    "CE",\r
-                }\r
                 wide{\r
                     "Біздің заманымызға дейін",\r
                     "біздің заманымыз",\r
                 }\r
                 wide%variant{\r
                     "біздің заманымызға дейін",\r
-                    "CE",\r
+                    "Біздің заманымыз",\r
                 }\r
             }\r
             intervalFormats{\r
@@ -755,18 +753,18 @@ kk{
                 }\r
                 stand-alone{\r
                     abbreviated{\r
-                        "Ò\9aаң.",\r
-                        "Ð\90қп.",\r
-                        "Ð\9dау.",\r
-                        "Сәу.",\r
-                        "Ð\9cам.",\r
-                        "Ð\9cау.",\r
-                        "Шіл.",\r
-                        "Там.",\r
-                        "Ò\9aыр.",\r
-                        "Ò\9aаз.",\r
-                        "Ò\9aар.",\r
-                        "Ð\96ел.",\r
+                        "Ò\9bаң.",\r
+                        "ақп.",\r
+                        "нау.",\r
+                        "сәу.",\r
+                        "мам.",\r
+                        "мау.",\r
+                        "шіл.",\r
+                        "там.",\r
+                        "Ò\9bыр.",\r
+                        "Ò\9bаз.",\r
+                        "Ò\9bар.",\r
+                        "Ðел.",\r
                     }\r
                     narrow{\r
                         "Қ",\r
@@ -843,92 +841,92 @@ kk{
         }\r
     }\r
     characterLabel{\r
-        activities{"Спорт"}\r
+        activities{"әрекет"}\r
         african_scripts{"Африка жазулары"}\r
         american_scripts{"Америка жазулары"}\r
         animal{"жануар"}\r
-        animals_nature{"Ð\96анÑ\83аÑ\80лаÑ\80 Ð¶Ó\99не табиғат"}\r
-        arrows{"Ð\9aÓ©Ñ\80Ñ\81еÑ\82кÑ\96леÑ\80"}\r
+        animals_nature{"жанÑ\83аÑ\80 Ð½ÐµÐ¼ÐµÑ\81е табиғат"}\r
+        arrows{"көÑ\80Ñ\81еÑ\82кÑ\96"}\r
         body{"дене"}\r
-        box_drawing{"Ð\9fсевдографика"}\r
+        box_drawing{"псевдографика"}\r
         braille{"Брайль жазуы"}\r
         building{"ғимарат"}\r
-        bullets_stars{"Маркерлер/жұлдызшалар"}\r
-        consonantal_jamo{"Ð\94ауыссыз чамо"}\r
-        currency_symbols{"Ð\92алюта таңбалары"}\r
-        dash_connector{"Тире/байланыс"}\r
-        digits{"Цифрлар"}\r
-        dingbats{"Ð\94ингбаттар"}\r
-        divination_symbols{"Ð\9eккульттық таңбалар"}\r
-        downwards_arrows{"Төмен қарайғы көрсеткілер"}\r
-        downwards_upwards_arrows{"Төмен және жоғарғы қарайғы көрсеткілер"}\r
+        bullets_stars{"тізім маркерлері/жұлдыздар"}\r
+        consonantal_jamo{"дауыссыз чамо"}\r
+        currency_symbols{"валюта таңбалары"}\r
+        dash_connector{"сызықша/байланыс"}\r
+        digits{"цифрлар"}\r
+        dingbats{"дингбаттар"}\r
+        divination_symbols{"оккульттық таңбалар"}\r
+        downwards_arrows{"төмен бағытталған көрсеткілер"}\r
+        downwards_upwards_arrows{"төмен және жоғары бағытталған көрсеткілер"}\r
         east_asian_scripts{"Шығыс Азия жазулары"}\r
-        emoji{"Эмодзи"}\r
+        emoji{"эмодзи"}\r
         european_scripts{"Еуропа жазулары"}\r
         female{"әйел"}\r
         flag{"ту"}\r
-        flags{"Тулар"}\r
-        food_drink{"Тамақ пен сусын"}\r
-        format{"Пішім"}\r
-        format_whitespace{"Пішім және бос орын"}\r
-        full_width_form_variant{"Толық енді форма нұсқалары"}\r
-        geometric_shapes{"Ð\93еомеÑ\82Ñ\80иÑ\8fлÑ\8bÒ\9b Ð¿Ñ\96Ñ\88Ñ\96ндер"}\r
-        half_width_form_variant{"Ð\96аÑ\80Ñ\82Ñ\8bлай енді форма нұсқалары"}\r
-        han_characters{"Ò\9aытай иероглифтері"}\r
-        han_radicals{"Ð\98ероглиф кілттері"}\r
-        hanja{"Ханча"}\r
-        hanzi_simplified{"Ò\9aытай иероглифтері (жеңілдетілген)"}\r
-        hanzi_traditional{"Ò\9aытай иероглифтері (дәстүрлі)"}\r
+        flags{"тулар"}\r
+        food_drink{"тамақ пен сусын"}\r
+        format{"форматтау"}\r
+        format_whitespace{"форматтау және бос орын"}\r
+        full_width_form_variant{"толық енді форма нұсқалары"}\r
+        geometric_shapes{"геомеÑ\82Ñ\80иÑ\8fлÑ\8bÒ\9b Ñ\84игÑ\83Ñ\80алар"}\r
+        half_width_form_variant{"жаÑ\80Ñ\82Ñ\8b енді форма нұсқалары"}\r
+        han_characters{"Ò\9bытай иероглифтері"}\r
+        han_radicals{"иероглиф кілттері"}\r
+        hanja{"ханча"}\r
+        hanzi_simplified{"Ò\9bытай иероглифтері (жеңілдетілген)"}\r
+        hanzi_traditional{"Ò\9bытай иероглифтері (дәстүрлі)"}\r
         heart{"жүрек"}\r
-        historic_scripts{"Ð\9aөне жазулар"}\r
-        ideographic_desc_characters{"Ð\98ероглифтерді сипаттау таңбалары"}\r
-        japanese_kana{"Ð\96апондÑ\8bÒ\9b Ðºана жазуы"}\r
-        kanbun{"Ð\9aамбун"}\r
-        kanji{"Ð\9aанджи"}\r
+        historic_scripts{"көне жазулар"}\r
+        ideographic_desc_characters{"иероглифтерді сипаттау таңбалары"}\r
+        japanese_kana{"жапондÑ\8bÒ\9b Ò\9bана жазуы"}\r
+        kanbun{"камбун"}\r
+        kanji{"кандзи"}\r
         keycap{"перне"}\r
-        leftwards_arrows{"Солға қарайғы көрсеткілер"}\r
-        leftwards_rightwards_arrows{"Солға және оңға қарайғы көрсеткілер"}\r
-        letterlike_symbols{"Ó\98ріптік таңбалар"}\r
-        limited_use{"Шектеулі қолданыс таңбалары"}\r
-        male{"ер"}\r
-        math_symbols{"Ð\9cатематикалық таңбалар"}\r
+        leftwards_arrows{"солға бағытталған көрсеткілер"}\r
+        leftwards_rightwards_arrows{"солға және оңға бағытталған көрсеткілер"}\r
+        letterlike_symbols{"Ó\99ріптік таңбалар"}\r
+        limited_use{"қолданысы шектеулі"}\r
+        male{"еркек"}\r
+        math_symbols{"математикалық таңбалар"}\r
         middle_eastern_scripts{"Таяу Шығыс жазулары"}\r
-        miscellaneous{"Ó\98р түрлі"}\r
-        modern_scripts{"Ò\9aазіргі заман жазулары"}\r
-        modifier{"Ð\9cодификатор"}\r
-        musical_symbols{"Ð\9cузыкалық таңбалар"}\r
+        miscellaneous{"Ó\99р түрлі"}\r
+        modern_scripts{"Ò\9bазіргі заман жазулары"}\r
+        modifier{"модификатор"}\r
+        musical_symbols{"музыкалық таңбалар"}\r
         nature{"табиғат"}\r
-        nonspacing{"Ð\91оÑ\81 Ð¾Ñ\80Ñ\8bнÑ\81Ñ\8bз Ñ\82аңбалаÑ\80"}\r
-        numbers{"Сандар"}\r
-        objects{"Ð\9dысандар"}\r
-        other{"Ð\91асқа"}\r
-        paired{"Ð\96ұпÑ\82аÑ\81Ò\9bан Ñ\82аңбалаÑ\80"}\r
+        nonspacing{"боÑ\81 Ð¾Ñ\80Ñ\8bнÑ\81Ñ\8bз"}\r
+        numbers{"сандар"}\r
+        objects{"нысандар"}\r
+        other{"басқа"}\r
+        paired{"жұпÑ\82аÑ\81Ò\9bан"}\r
         person{"адам"}\r
-        phonetic_alphabet{"Фонетикалық әліпби"}\r
-        pictographs{"Ð\9fикÑ\82огÑ\80амма"}\r
+        phonetic_alphabet{"фонетикалық әліпби"}\r
+        pictographs{"пикÑ\82огÑ\80аммалаÑ\80"}\r
         place{"орын"}\r
         plant{"өсімдік"}\r
-        punctuation{"Тыныс белгілері"}\r
-        rightwards_arrows{"Ð\9eÒ£Ò\93а Ò\9bаÑ\80айÒ\93Ñ\8b көрсеткілер"}\r
-        sign_standard_symbols{"Ð\91елгілер/стандартты таңбалар"}\r
-        small_form_variant{"Ð\9aіші форма нұсқалары"}\r
+        punctuation{"тыныс белгілері"}\r
+        rightwards_arrows{"оңÒ\93а Ð±Ð°Ò\93Ñ\8bÑ\82Ñ\82алÒ\93ан көрсеткілер"}\r
+        sign_standard_symbols{"белгілер/стандартты таңбалар"}\r
+        small_form_variant{"кіші форма нұсқалары"}\r
         smiley{"смайл"}\r
-        smileys_people{"Смайлдар мен адамдар"}\r
+        smileys_people{"смайлдар мен адамдар"}\r
         south_asian_scripts{"Оңтүстік Азия жазулары"}\r
         southeast_asian_scripts{"Оңтүстік-Шығыс Азия жазулары"}\r
-        spacing{"Ð\91оÑ\81 Ð¾Ñ\80Ñ\8bндаÑ\80"}\r
+        spacing{"боÑ\81 Ð¾Ñ\80Ñ\8bн"}\r
         sport{"спорт"}\r
-        symbols{"Таңбалар"}\r
-        technical_symbols{"Техникалық таңбалар"}\r
-        tone_marks{"Ð\95кпін белгілері"}\r
+        symbols{"таңбалар"}\r
+        technical_symbols{"техникалық таңбалар"}\r
+        tone_marks{"екпін белгілері"}\r
         travel{"саяхат"}\r
-        travel_places{"Саяхат"}\r
-        upwards_arrows{"Ð\96оÒ\93аÑ\80Ñ\8b Ò\9bаÑ\80айÒ\93Ñ\8b көрсеткілер"}\r
-        variant_forms{"Құбылмалы формалар"}\r
-        vocalic_jamo{"Ð\94ауысты чамо"}\r
+        travel_places{"саяхат және орындар"}\r
+        upwards_arrows{"жоÒ\93аÑ\80Ñ\8b Ð±Ð°Ò\93Ñ\8bÑ\82Ñ\82алÒ\93ан көрсеткілер"}\r
+        variant_forms{"өзгермелі формалар"}\r
+        vocalic_jamo{"дауысты чамо"}\r
         weather{"ауа райы"}\r
         western_asian_scripts{"Батыс Азия жазулары"}\r
-        whitespace{"Ð\91ос орын"}\r
+        whitespace{"бос орын"}\r
     }\r
     delimiters{\r
         alternateQuotationEnd{"”"}\r
index 4c36cb1..127976f 100644 (file)
@@ -25,7 +25,7 @@ kl{
             }\r
         }\r
     }\r
-    Version{"2.1.38.69"}\r
+    Version{"2.1.45.12"}\r
     calendar{\r
         gregorian{\r
             DateTimePatterns{\r
@@ -46,7 +46,7 @@ kl{
             dayNames{\r
                 format{\r
                     abbreviated{\r
-                        "sab",\r
+                        "sap",\r
                         "ata",\r
                         "mar",\r
                         "pin",\r
@@ -55,7 +55,7 @@ kl{
                         "arf",\r
                     }\r
                     short{\r
-                        "sab",\r
+                        "sap",\r
                         "ata",\r
                         "mar",\r
                         "pin",\r
@@ -64,7 +64,7 @@ kl{
                         "arf",\r
                     }\r
                     wide{\r
-                        "sabaat",\r
+                        "sapaat",\r
                         "ataasinngorneq",\r
                         "marlunngorneq",\r
                         "pingasunngorneq",\r
@@ -75,7 +75,7 @@ kl{
                 }\r
                 stand-alone{\r
                     short{\r
-                        "sab",\r
+                        "sap",\r
                         "ata",\r
                         "mar",\r
                         "pin",\r
@@ -84,7 +84,7 @@ kl{
                         "arf",\r
                     }\r
                     wide{\r
-                        "sabaat",\r
+                        "sapaat",\r
                         "ataasinngorneq",\r
                         "marlunngorneq",\r
                         "pingasunngorneq",\r
index c6d2df6..9e81b59 100644 (file)
@@ -22,7 +22,9 @@ km{
         default{"latn"}\r
         latn{\r
             miscPatterns{\r
+                approximately{"~{0}"}\r
                 atLeast{"{0}+"}\r
+                atMost{"≤{0}"}\r
                 range{"{0}–{1}"}\r
             }\r
             patterns{\r
@@ -35,80 +37,80 @@ km{
             patternsLong{\r
                 decimalFormat{\r
                     1000{\r
-                        other{"0ពាន់"}\r
+                        other{"0 ពាន់"}\r
                     }\r
                     10000{\r
-                        other{"0​មឺុន"}\r
+                        other{"00 ពាន់"}\r
                     }\r
                     100000{\r
-                        other{"0សែន"}\r
+                        other{"000ពាន់"}\r
                     }\r
                     1000000{\r
-                        other{"0លាន"}\r
+                        other{"0 លាន"}\r
                     }\r
                     10000000{\r
-                        other{"0​ដប់​លាន"}\r
+                        other{"0លាន"}\r
                     }\r
                     100000000{\r
-                        other{"0​រយលាន"}\r
+                        other{"000 លាន"}\r
                     }\r
                     1000000000{\r
-                        other{"0​កោដិ"}\r
+                        other{"0 ប៊ីលាន"}\r
                     }\r
                     10000000000{\r
-                        other{"0​ដប់​កោដិ"}\r
+                        other{"00 ប៊ីលាន"}\r
                     }\r
                     100000000000{\r
-                        other{"0​រយ​កោដិ"}\r
+                        other{"000 ប៊ីលាន"}\r
                     }\r
                     1000000000000{\r
-                        other{"0​ពាន់​កោដិ"}\r
+                        other{"0 ទ្រីលាន"}\r
                     }\r
                     10000000000000{\r
-                        other{"0​មឺុន​កោដិ"}\r
+                        other{"00 ទ្រីលាន"}\r
                     }\r
                     100000000000000{\r
-                        other{"0​សែន​កោដិ"}\r
+                        other{"000 ទ្រីលាន"}\r
                     }\r
                 }\r
             }\r
             patternsShort{\r
                 currencyFormat{\r
                     1000{\r
-                        other{"¤0ពាន់"}\r
+                        other{"¤0 ពាន់"}\r
                     }\r
                     10000{\r
-                        other{"¤00ពាន់"}\r
+                        other{"¤00 ពាន់"}\r
                     }\r
                     100000{\r
-                        other{"¤000ពាន់"}\r
+                        other{"¤000 ពាន់"}\r
                     }\r
                     1000000{\r
-                        other{"¤0លាន"}\r
+                        other{"¤0 លាន"}\r
                     }\r
                     10000000{\r
-                        other{"¤0​ដប់​លាន"}\r
+                        other{"¤0លាន"}\r
                     }\r
                     100000000{\r
-                        other{"¤0​រយលាន"}\r
+                        other{"¤000 លាន"}\r
                     }\r
                     1000000000{\r
-                        other{"¤0​កោដិ"}\r
+                        other{"¤0 ប៊ីលាន"}\r
                     }\r
                     10000000000{\r
-                        other{"¤0​ដប់​កោដិ"}\r
+                        other{"¤00 ប៊ីលាន"}\r
                     }\r
                     100000000000{\r
-                        other{"¤0​រយ​កោដិ"}\r
+                        other{"¤000 ប៊ីលាន"}\r
                     }\r
                     1000000000000{\r
-                        other{"¤0​ពាន់​កោដិ"}\r
+                        other{"¤0 ទ្រីលាន"}\r
                     }\r
                     10000000000000{\r
-                        other{"¤0​មឺុន​កោដិ"}\r
+                        other{"¤00 ទ្រីលាន"}\r
                     }\r
                     100000000000000{\r
-                        other{"¤0​សែន​កោដិ"}\r
+                        other{"¤000 ទ្រីលាន"}\r
                     }\r
                 }\r
                 decimalFormat{\r
@@ -116,37 +118,37 @@ km{
                         other{"0ពាន់"}\r
                     }\r
                     10000{\r
-                        other{"0​មឺុន"}\r
+                        other{"00 ពាន់"}\r
                     }\r
                     100000{\r
-                        other{"0សែន"}\r
+                        other{"000 ពាន់"}\r
                     }\r
                     1000000{\r
-                        other{"0លាន"}\r
+                        other{"0 លាន"}\r
                     }\r
                     10000000{\r
-                        other{"0​ដប់​លាន"}\r
+                        other{"0លាន"}\r
                     }\r
                     100000000{\r
-                        other{"0​រយលាន"}\r
+                        other{"000 លាន"}\r
                     }\r
                     1000000000{\r
-                        other{"0​កោដិ"}\r
+                        other{"0 ប៊ីលាន"}\r
                     }\r
                     10000000000{\r
-                        other{"0​ដប់​កោដិ"}\r
+                        other{"00 ប៊ីលាន"}\r
                     }\r
                     100000000000{\r
-                        other{"0​រយ​កោដិ"}\r
+                        other{"000 ប៊ីលាន"}\r
                     }\r
                     1000000000000{\r
-                        other{"0​ពាន់​កោដិ"}\r
+                        other{"0 ទ្រីលាន"}\r
                     }\r
                     10000000000000{\r
-                        other{"0​មឺុន​កោដិ"}\r
+                        other{"00 ទ្រីលាន"}\r
                     }\r
                     100000000000000{\r
-                        other{"0​សែន​កោដិ"}\r
+                        other{"000 ទ្រីលាន"}\r
                     }\r
                 }\r
             }\r
@@ -176,7 +178,7 @@ km{
         minimumGroupingDigits{"1"}\r
         native{"khmr"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.88"}\r
     calendar{\r
         generic{\r
             DateTimePatterns{\r
@@ -376,10 +378,10 @@ km{
                 Ed{"d E"}\r
                 Ehm{"E h:mm a"}\r
                 Ehms{"E h:mm:ss a"}\r
-                Gy{"y នៃ G"}\r
-                GyMMM{"MMM y នៃ G"}\r
-                GyMMMEd{"E d MMM y នៃ G"}\r
-                GyMMMd{"d MMM y នៃ G"}\r
+                Gy{"y G"}\r
+                GyMMM{"MMM y G"}\r
+                GyMMMEd{"E d MMM y G"}\r
+                GyMMMd{"d MMM y G"}\r
                 H{"HH"}\r
                 Hm{"HH:mm"}\r
                 Hms{"HH:mm:ss"}\r
@@ -420,10 +422,10 @@ km{
                 format{\r
                     abbreviated{\r
                         "អាទិត្យ",\r
-                        "á\9e\85á\9f\90á\9e\93á\9f\92á\9e\91",\r
+                        "ចន្ទ",\r
                         "អង្គារ",\r
                         "ពុធ",\r
-                        "ព្រហស្បតិ៍",\r
+                        "ព្រហ",\r
                         "សុក្រ",\r
                         "សៅរ៍",\r
                     }\r
@@ -458,10 +460,10 @@ km{
                 stand-alone{\r
                     abbreviated{\r
                         "អាទិត្យ",\r
-                        "á\9e\85á\9f\90á\9e\93á\9f\92á\9e\91",\r
+                        "ចន្ទ",\r
                         "អង្គារ",\r
                         "ពុធ",\r
-                        "ព្រហស្បតិ៍",\r
+                        "ព្រហ",\r
                         "សុក្រ",\r
                         "សៅរ៍",\r
                     }\r
@@ -485,7 +487,7 @@ km{
                     }\r
                     wide{\r
                         "អាទិត្យ",\r
-                        "á\9e\85á\9f\90á\9e\93á\9f\92á\9e\91",\r
+                        "ចន្ទ",\r
                         "អង្គារ",\r
                         "ពុធ",\r
                         "ព្រហស្បតិ៍",\r
@@ -497,27 +499,27 @@ km{
             dayPeriod{\r
                 format{\r
                     abbreviated{\r
-                        afternoon1{"រសៀល"}\r
-                        evening1{"ល្ងាច"}\r
+                        afternoon1{"á\9e\93á\9f\85á\9e\96á\9f\81á\9e\9bá\9e\9aá\9e\9fá\9f\80á\9e\9b"}\r
+                        evening1{"á\9e\93á\9f\85á\9e\96á\9f\81á\9e\9bâ\80\8bá\9e\9bá\9f\92á\9e\84á\9e¶á\9e\85"}\r
                         midnight{"អធ្រាត្រ"}\r
-                        morning1{"ព្រឹក"}\r
-                        night1{"យប់"}\r
+                        morning1{"á\9e\93á\9f\85á\9e\96á\9f\81á\9e\9bâ\80\8bá\9e\96á\9f\92á\9e\9aá\9e¹á\9e\80"}\r
+                        night1{"á\9e\93á\9f\85á\9e\96á\9f\81á\9e\9bâ\80\8bá\9e\99á\9e\94á\9f\8b"}\r
                         noon{"ថ្ងៃត្រង់"}\r
                     }\r
                     narrow{\r
-                        afternoon1{"រសៀល"}\r
-                        evening1{"ល្ងាច"}\r
+                        afternoon1{"á\9e\93á\9f\85á\9e\96á\9f\81á\9e\9bá\9e\9aá\9e\9fá\9f\80á\9e\9b"}\r
+                        evening1{"á\9e\93á\9f\85á\9e\96á\9f\81á\9e\9bâ\80\8bá\9e\9bá\9f\92á\9e\84á\9e¶á\9e\85"}\r
                         midnight{"អធ្រាត្រ"}\r
-                        morning1{"ព្រឹក"}\r
-                        night1{"យប់"}\r
+                        morning1{"á\9e\93á\9f\85á\9e\96á\9f\81á\9e\9bâ\80\8bá\9e\96á\9f\92á\9e\9aá\9e¹á\9e\80"}\r
+                        night1{"á\9e\93á\9f\85á\9e\96á\9f\81á\9e\9bâ\80\8bá\9e\99á\9e\94á\9f\8b"}\r
                         noon{"ថ្ងៃត្រង់"}\r
                     }\r
                     wide{\r
-                        afternoon1{"រសៀល"}\r
-                        evening1{"ល្ងាច"}\r
+                        afternoon1{"á\9e\93á\9f\85á\9e\96á\9f\81á\9e\9bá\9e\9aá\9e\9fá\9f\80á\9e\9b"}\r
+                        evening1{"á\9e\93á\9f\85á\9e\96á\9f\81á\9e\9bâ\80\8bá\9e\9bá\9f\92á\9e\84á\9e¶á\9e\85"}\r
                         midnight{"អធ្រាត្រ"}\r
-                        morning1{"ព្រឹក"}\r
-                        night1{"យប់"}\r
+                        morning1{"á\9e\93á\9f\85á\9e\96á\9f\81á\9e\9bâ\80\8bá\9e\96á\9f\92á\9e\9aá\9e¹á\9e\80"}\r
+                        night1{"á\9e\93á\9f\85á\9e\96á\9f\81á\9e\9bâ\80\8bá\9e\99á\9e\94á\9f\8b"}\r
                         noon{"ថ្ងៃត្រង់"}\r
                     }\r
                 }\r
index 28fe6e6..8b5eba9 100644 (file)
@@ -47,7 +47,9 @@ kn{
         }\r
         latn{\r
             miscPatterns{\r
+                approximately{"~{0}"}\r
                 atLeast{"{0}+"}\r
+                atMost{"≤{0}"}\r
                 range{"{0}–{1}"}\r
             }\r
             patterns{\r
@@ -238,7 +240,7 @@ kn{
         minimumGroupingDigits{"1"}\r
         native{"knda"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.88"}\r
     calendar{\r
         buddhist{\r
             eras{\r
@@ -717,8 +719,8 @@ kn{
                 yQQQ{"QQQ y"}\r
                 yQQQQ{"QQQQ y"}\r
                 yw{\r
-                    one{"'week' w 'of' y"}\r
-                    other{"'week' w 'of' y"}\r
+                    one{"'week' w 'of' Y"}\r
+                    other{"'week' w 'of' Y"}\r
                 }\r
             }\r
             dayNames{\r
@@ -1543,9 +1545,9 @@ kn{
     characterLabel{\r
         activities{"ಚಟುವಟಿಕೆ"}\r
         african_scripts{"ಆಫ್ರಿಕಾದ ಲಿಪಿ"}\r
-        american_scripts{"à²\85ಮà³\87ರಿà²\95ಾದ à²²à²¿à²ªà²¿à²\97ಳà³\81"}\r
+        american_scripts{"à²\85ಮà³\87ರಿà²\95ನà³\8d à²²à²¿à²ªà²¿"}\r
         animal{"ಪ್ರಾಣಿ"}\r
-        animals_nature{"ಪà³\8dರಾಣಿà²\97ಳà³\81 à²®à²¤à³\8dತà³\81 ಪ್ರಕೃತಿ"}\r
+        animals_nature{"ಪà³\8dರಾಣಿà²\97ಳà³\81 à²\85ಥವಾ ಪ್ರಕೃತಿ"}\r
         arrows{"ಬಾಣ"}\r
         body{"ದೇಹ"}\r
         box_drawing{"ಬಾಕ್ಸ್ ಡ್ರಾಯಿಂಗ್"}\r
@@ -1554,7 +1556,7 @@ kn{
         bullets_stars{"ಬುಲೆಟ್ ಅಥವಾ ಸ್ಟಾರ್"}\r
         consonantal_jamo{"ವ್ಯಂಜನಗಳ ಜಮೊ"}\r
         currency_symbols{"ಕರೆನ್ಸಿ ಚಿಹ್ನೆ"}\r
-        dash_connector{"ಡ್ಯಾಶ್ / ಕನೆಕ್ಟರ್"}\r
+        dash_connector{"ಡ್ಯಾಶ್ ಅಥವಾ ಕನೆಕ್ಟರ್"}\r
         digits{"ಅಂಕಿ"}\r
         dingbats{"ಡಿಂಗ್‌ಬ್ಯಾಟ್"}\r
         divination_symbols{"ದೈವತ್ವದ ಚಿಹ್ನೆ"}\r
@@ -1607,9 +1609,9 @@ kn{
         place{"ಸ್ಥಳ"}\r
         plant{"ಗಿಡ"}\r
         punctuation{"ವಿರಾಮಚಿಹ್ನೆ"}\r
-        rightwards_arrows{"ಬಲಭಾಗದ ಬಾಣಗಳು"}\r
-        sign_standard_symbols{"ಸೈನ್ / ಸ್ಟ್ಯಾಂಡರ್ಡ್ ಚಿಹ್ನೆಗಳು"}\r
-        small_form_variant{"ಸà³\8dಮಾಲà³\8d à²«à²¾à²°à³\8dಮà³\8d à²µà³\87ರಿಯà²\82à²\9fà³\8dಸà³\8d"}\r
+        rightwards_arrows{"ಬಲಭಾಗದ ಬಾಣ"}\r
+        sign_standard_symbols{"ಸೈನ್ ಅಥವಾ ಚಿಹ್ನೆ"}\r
+        small_form_variant{"à²\9aಿà²\95à³\8dà²\95 à²°à³\82ಪಾà²\82ತರà²\97ಳà³\81"}\r
         smiley{"ಸ್ಮೈಲೀ"}\r
         smileys_people{"ಸ್ಮೈಲಿ ಅಥವಾ ವ್ಯಕ್ತಿ"}\r
         south_asian_scripts{"ದಕ್ಷಿಣ ಏಷಿಯಾದ ಲಿಪಿ"}\r
@@ -2514,8 +2516,13 @@ kn{
         general{\r
             lenient{\r
                 "[.․。︒﹒.。]",\r
+                "['ʼ՚᾽᾿’']",\r
+                "[%٪﹪%]",\r
+                "[؉‰]",\r
                 "[\$﹩$$]",\r
                 "[£₤]",\r
+                "[¥¥]",\r
+                "[₩₩]",\r
                 "[₨₹{Rp}{Rs}]",\r
             }\r
         }\r
index 6d38c94..392f7fb 100644 (file)
@@ -51,7 +51,9 @@ ko{
         default{"latn"}\r
         latn{\r
             miscPatterns{\r
+                approximately{"~{0}"}\r
                 atLeast{"{0}+"}\r
+                atMost{"≤{0}"}\r
                 range{"{0}~{1}"}\r
             }\r
             patterns{\r
@@ -205,9 +207,24 @@ ko{
         minimumGroupingDigits{"1"}\r
         native{"latn"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.91"}\r
     calendar{\r
         buddhist{\r
+            availableFormats{\r
+                GyMMM{"G y년 MMM"}\r
+                GyMMMEEEEd{"G y년 MMM d일 EEEE"}\r
+                GyMMMEd{"G y년 MMM d일 (E)"}\r
+                GyMMMd{"G y년 MMM d일"}\r
+                MMMEEEEd{"MMM d일 EEEE"}\r
+                MMMEd{"MMM d일 (E)"}\r
+                MMMMd{"MMMM d일"}\r
+                MMMd{"MMM d일"}\r
+                yyyyMMM{"G y년 MMM"}\r
+                yyyyMMMEEEEd{"G y년 MMM d일 EEEE"}\r
+                yyyyMMMEd{"G y년 MMM d일 (E)"}\r
+                yyyyMMMM{"G y년 MMMM"}\r
+                yyyyMMMd{"G y년 MMM d일"}\r
+            }\r
             eras{\r
                 abbreviated{\r
                     "불기",\r
@@ -245,14 +262,14 @@ ko{
                 EBhms{"E B h:mm:ss"}\r
                 EEEEd{"d일 EEEE"}\r
                 Ed{"d일 (E)"}\r
-                Gy{"U년"}\r
-                GyMMM{"U년 MMM"}\r
-                GyMMMEEEEd{"U년 MMM d일 EEEE"}\r
-                GyMMMEd{"U년 MMM d일 (E)"}\r
-                GyMMMd{"U년 MMM d일"}\r
+                Gy{"r년(U년)"}\r
+                GyMMM{"r년(U년) MMM"}\r
+                GyMMMEEEEd{"r년(U년) MMM d일 EEEE"}\r
+                GyMMMEd{"r년(U년) MMM d일 (E)"}\r
+                GyMMMd{"r년 MMM d일"}\r
                 H{"H시"}\r
                 Hm{"HH:mm"}\r
-                Hms{"H시 m분 s초"}\r
+                Hms{"HH:mm:ss"}\r
                 M{"MMM"}\r
                 MEEEEd{"M. d. EEEE"}\r
                 MEd{"M. d. (E)"}\r
@@ -262,29 +279,29 @@ ko{
                 MMMMd{"MMMM d일"}\r
                 MMMd{"MMM d일"}\r
                 Md{"M. d."}\r
-                UM{"U MM"}\r
-                UMMM{"U MMM"}\r
-                UMMMd{"U MMM d"}\r
-                UMd{"U MM-d"}\r
+                UM{"U년 MMM"}\r
+                UMMM{"U MMM"}\r
+                UMMMd{"U년 MMM d일"}\r
+                UMd{"U년 M. d."}\r
                 d{"d일"}\r
                 h{"a h시"}\r
                 hm{"a h:mm"}\r
                 hms{"a h:mm:ss"}\r
                 ms{"mm:ss"}\r
-                y{"U년"}\r
-                yMd{"U. M. d."}\r
-                yyyy{"U년"}\r
-                yyyyM{"U. M."}\r
-                yyyyMEEEEd{"U. M. d. EEEE"}\r
-                yyyyMEd{"U. M. d. (E)"}\r
-                yyyyMMM{"U년 MMM"}\r
-                yyyyMMMEEEEd{"U년 MMM d일 EEEE"}\r
-                yyyyMMMEd{"U년 MMM d일 (E)"}\r
-                yyyyMMMM{"U년 MMMM"}\r
-                yyyyMMMd{"U년 MMM d일"}\r
-                yyyyMd{"U. M. d."}\r
-                yyyyQQQ{"U년 QQQ"}\r
-                yyyyQQQQ{"U년 QQQQ"}\r
+                y{"r년(U년)"}\r
+                yMd{"r. M. d."}\r
+                yyyy{"r년(U년)"}\r
+                yyyyM{"r. M."}\r
+                yyyyMEEEEd{"r. M. d. EEEE"}\r
+                yyyyMEd{"r. M. d. (E)"}\r
+                yyyyMMM{"r년(U년) MMM"}\r
+                yyyyMMMEEEEd{"r년(U년) MMM d일 EEEE"}\r
+                yyyyMMMEd{"r년(U년) MMM d일 (E)"}\r
+                yyyyMMMM{"r년(U년) MMMM"}\r
+                yyyyMMMd{"r년 MMM d일"}\r
+                yyyyMd{"r. M. d."}\r
+                yyyyQQQ{"r년(U년) QQQ"}\r
+                yyyyQQQQ{"r년(U년) QQQQ"}\r
             }\r
             cyclicNameSets{\r
                 solarTerms{\r
@@ -1671,6 +1688,21 @@ ko{
             }\r
         }\r
         japanese{\r
+            availableFormats{\r
+                GyMMM{"G y년 MMM"}\r
+                GyMMMEEEEd{"G y년 MMM d일 EEEE"}\r
+                GyMMMEd{"G y년 MMM d일 (E)"}\r
+                GyMMMd{"G y년 MMM d일"}\r
+                MMMEEEEd{"MMM d일 EEEE"}\r
+                MMMEd{"MMM d일 (E)"}\r
+                MMMMd{"MMMM d일"}\r
+                MMMd{"MMM d일"}\r
+                yyyyMMM{"G y년 MMM"}\r
+                yyyyMMMEEEEd{"G y년 MMM d일 EEEE"}\r
+                yyyyMMMEd{"G y년 MMM d일 (E)"}\r
+                yyyyMMMM{"G y년 MMMM"}\r
+                yyyyMMMd{"G y년 MMM d일"}\r
+            }\r
             eras{\r
                 abbreviated{\r
                     "다이카 (645 ~ 650)",\r
@@ -1909,6 +1941,7 @@ ko{
                     "다이쇼",\r
                     "쇼와",\r
                     "헤이세이",\r
+                    "Qqqq",\r
                 }\r
             }\r
         }\r
@@ -1977,6 +2010,21 @@ ko{
             }\r
         }\r
         roc{\r
+            availableFormats{\r
+                GyMMM{"G y년 MMM"}\r
+                GyMMMEEEEd{"G y년 MMM d일 EEEE"}\r
+                GyMMMEd{"G y년 MMM d일 (E)"}\r
+                GyMMMd{"G y년 MMM d일"}\r
+                MMMEEEEd{"MMM d일 EEEE"}\r
+                MMMEd{"MMM d일 (E)"}\r
+                MMMMd{"MMMM d일"}\r
+                MMMd{"MMM d일"}\r
+                yyyyMMM{"G y년 MMM"}\r
+                yyyyMMMEEEEd{"G y년 MMM d일 EEEE"}\r
+                yyyyMMMEd{"G y년 MMM d일 (E)"}\r
+                yyyyMMMM{"G y년 MMMM"}\r
+                yyyyMMMd{"G y년 MMM d일"}\r
+            }\r
             eras{\r
                 abbreviated{\r
                     "중화민국전",\r
@@ -2027,7 +2075,7 @@ ko{
         ideographic_desc_characters{"상형 설명 문자"}\r
         japanese_kana{"일본어 가나"}\r
         kanbun{"간분"}\r
-        kanji{"지"}\r
+        kanji{"지"}\r
         keycap{"키 캡"}\r
         leftwards_arrows{"왼쪽 방향 화살표"}\r
         leftwards_rightwards_arrows{"양방향 화살표"}\r
@@ -2815,8 +2863,13 @@ ko{
         general{\r
             lenient{\r
                 "[.․。︒﹒.。]",\r
+                "['ʼ՚᾽᾿’']",\r
+                "[%٪﹪%]",\r
+                "[؉‰]",\r
                 "[\$﹩$$]",\r
                 "[£₤]",\r
+                "[¥¥]",\r
+                "[₩₩]",\r
                 "[₨₹{Rp}{Rs}]",\r
             }\r
         }\r
index a4f6e0c..4e7a5f7 100644 (file)
@@ -8,7 +8,15 @@ kok{
         "{ढ\u093C} ण त थ द ध न प फ {फ\u093C} ब भ म य {य\u093C} र ल व श ष स ह ळ ऽ ा ि "\r
         "ी \u0941 \u0942 \u0943 \u0944 \u0945 \u0947 \u0948 ॉ ो ौ \u094D]"\r
     }\r
+    ExemplarCharactersIndex{\r
+        "[अ आ इ ई उ ऊ ऋ ऌ ऍ ए ऐ ऑ ओ औ क ख ग घ ङ च छ ज झ ञ ट ठ ड ढ ण त थ द ध न प फ ब भ"\r
+        " म य र ल व श ष स ह ळ]"\r
+    }\r
     ExemplarCharactersNumbers{"[\\- , . % ‰ + 0० 1१ 2२ 3३ 4४ 5५ 6६ 7७ 8८ 9९]"}\r
+    ExemplarCharactersPunctuation{\r
+        "[\\- ‐ – — , ; \\: ! ? . … ' ‘ ’ \u0022 “ ” ( ) \\[ \\] § @ * / \\& # † ‡ ′ "\r
+        "″]"\r
+    }\r
     NumberElements{\r
         default{"latn"}\r
         deva{\r
@@ -28,7 +36,7 @@ kok{
         }\r
         latn{\r
             miscPatterns{\r
-                atLeast{"⩾{0}"}\r
+                atLeast{"â\89¥{0}"}\r
                 range{"{0}–{1}"}\r
             }\r
             patterns{\r
@@ -180,7 +188,7 @@ kok{
         minimumGroupingDigits{"1"}\r
         native{"deva"}\r
     }\r
-    Version{"2.1.38.69"}\r
+    Version{"2.1.44.88"}\r
     calendar{\r
         generic{\r
             DateTimePatterns{\r
@@ -198,8 +206,111 @@ kok{
                 "{1} {0}",\r
                 "{1} {0}",\r
             }\r
+            availableFormats{\r
+                Bh{"h B"}\r
+                Bhm{"h:mm B"}\r
+                Bhms{"h:mm:ss B"}\r
+                E{"ccc"}\r
+                EBhm{"E h:mm B"}\r
+                EBhms{"E h:mm:ss B"}\r
+                EHm{"E HH:mm"}\r
+                EHms{"E HH:mm:ss"}\r
+                Ed{"E, d"}\r
+                Ehm{"E h:mm a"}\r
+                Ehms{"E h:mm:ss a"}\r
+                Gy{"y G"}\r
+                GyMMM{"MMM y G"}\r
+                GyMMMEd{"E d, MMM y G"}\r
+                GyMMMd{"d MMM y G"}\r
+                H{"HH"}\r
+                Hm{"HH:mm"}\r
+                Hms{"HH:mm:ss"}\r
+                M{"L"}\r
+                MEd{"E, dd-MM"}\r
+                MMM{"LLL"}\r
+                MMMEd{"E d, MMM"}\r
+                MMMMd{"d MMMM"}\r
+                MMMd{"d MMM"}\r
+                Md{"dd-MM"}\r
+                d{"d"}\r
+                h{"h a"}\r
+                hm{"h:mm a"}\r
+                hms{"h:mm:ss a"}\r
+                ms{"mm:ss"}\r
+                y{"y G"}\r
+                yyyy{"y G"}\r
+                yyyyM{"MM-y GGGG"}\r
+                yyyyMEd{"E, d/M/y GGGGG"}\r
+                yyyyMMM{"MMM y G"}\r
+                yyyyMMMEd{"E, d MMM y G"}\r
+                yyyyMMMM{"MMMM y G"}\r
+                yyyyMMMd{"d MMM y G"}\r
+                yyyyMd{"d/M/y GGGGG"}\r
+                yyyyQQQ{"QQQ y G"}\r
+                yyyyQQQQ{"QQQQ y G"}\r
+            }\r
             intervalFormats{\r
+                M{\r
+                    M{"MM–MM"}\r
+                }\r
+                MEd{\r
+                    M{"E, dd-MM, E dd-MM"}\r
+                    d{"E, d/M – E, d/M"}\r
+                }\r
+                MMM{\r
+                    M{"MMM–MMM"}\r
+                }\r
+                MMMEd{\r
+                    M{"E, d MMM – E, d MMM"}\r
+                    d{"E, d MMM – E, d MMM"}\r
+                }\r
+                MMMd{\r
+                    M{"d MMM – d MMM"}\r
+                    d{"d–d MMM"}\r
+                }\r
+                Md{\r
+                    M{"d/M – d/M"}\r
+                    d{"d/M–d/M"}\r
+                }\r
+                d{\r
+                    d{"d–d"}\r
+                }\r
                 fallback{"{0} – {1}"}\r
+                y{\r
+                    y{"y–y G"}\r
+                }\r
+                yM{\r
+                    M{"M/y – M/y GGGGG"}\r
+                    y{"M/y – M/y GGGGG"}\r
+                }\r
+                yMEd{\r
+                    M{"E, d/M/y – E, d/M/y GGGGG"}\r
+                    d{"E, d/M/y – E, d/M/y GGGGG"}\r
+                    y{"E, d/M/y – E, d/M/y GGGGG"}\r
+                }\r
+                yMMM{\r
+                    M{"MMM–MMM y G"}\r
+                    y{"MMM y G – MMM y"}\r
+                }\r
+                yMMMEd{\r
+                    M{"E, d, MMM y – E, d, MMM y G"}\r
+                    d{"E, d MMM – E, d MMM, yG"}\r
+                    y{"E, d, MMM y – E, d, MMM y G"}\r
+                }\r
+                yMMMM{\r
+                    M{"MMMM – MMMM y G"}\r
+                    y{"MMMM y – MMMM y G"}\r
+                }\r
+                yMMMd{\r
+                    M{"d MMM – d MMM, y G"}\r
+                    d{"d–d MMM, y G"}\r
+                    y{"d, MMM y – d, MMM y G"}\r
+                }\r
+                yMd{\r
+                    M{"d/M/y – d/M/y GGGGG"}\r
+                    d{"d/M/y – d/M/y GGGGG"}\r
+                    y{"d/M/y – d/M/y GGGGG"}\r
+                }\r
             }\r
         }\r
         gregorian{\r
@@ -282,7 +393,7 @@ kok{
                 yQQQ{"y QQQ"}\r
                 yQQQQ{"y QQQQ"}\r
                 yw{\r
-                    other{"'week' w 'of' y"}\r
+                    other{"'week' w 'of' Y"}\r
                 }\r
             }\r
             dayNames{\r
index 8faca4e..c81b77b 100644 (file)
@@ -32,7 +32,7 @@ ks{
         }\r
         native{"arabext"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.41.34"}\r
     calendar{\r
         generic{\r
             DateTimePatterns{\r
index bcc7fd6..293bf14 100644 (file)
@@ -161,7 +161,7 @@ ksh{
         }\r
         native{"latn"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.41.34"}\r
     calendar{\r
         buddhist{\r
             DateTimePatterns{\r
diff --git a/source/data/locales/ku.txt b/source/data/locales/ku.txt
new file mode 100644 (file)
index 0000000..d3c9458
--- /dev/null
@@ -0,0 +1,474 @@
+// © 2016 and later: Unicode, Inc. and others.\r
+// License & terms of use: http://www.unicode.org/copyright.html#License\r
+ku{\r
+    AuxExemplarCharacters{"[á à ă â å ä ã ā æ é è ĕ ë ē í ì ĭ ï ī ñ ó ò ŏ ô ø ō œ ß ú ù ŭ ū ÿ]"}\r
+    Ellipsis{\r
+        final{"{0}…"}\r
+        initial{"…{0}"}\r
+        medial{"{0}…{1}"}\r
+        word-final{"{0} …"}\r
+        word-initial{"… {0}"}\r
+        word-medial{"{0} … {1}"}\r
+    }\r
+    ExemplarCharacters{"[a b c ç d e ê f g h i î j k l m n o p q r s ş t u û v w x y z]"}\r
+    ExemplarCharactersIndex{"[A B C Ç D E Ê F G H I Î J K L M N O P Q R S Ş T U Û V W X Y Z]"}\r
+    ExemplarCharactersPunctuation{\r
+        "[\\- ‐ – — , ; \\: ! ? . … ' ‘ ’ \u0022 “ ” ( ) \\[ \\] § @ * / \\& # † ‡ ′ "\r
+        "″]"\r
+    }\r
+    MoreInformation{"?"}\r
+    NumberElements{\r
+        default{"latn"}\r
+        latn{\r
+            miscPatterns{\r
+                atLeast{"≥{0}"}\r
+                range{"{0}–{1}"}\r
+            }\r
+            patterns{\r
+                accountingFormat{"#,##0.00 ¤;(#,##0.00 ¤)"}\r
+                currencyFormat{"#,##0.00 ¤"}\r
+                decimalFormat{"#,##0.###"}\r
+                percentFormat{"%#,##0"}\r
+                scientificFormat{"#E0"}\r
+            }\r
+            symbols{\r
+                decimal{","}\r
+                exponential{"E"}\r
+                group{"."}\r
+                infinity{"∞"}\r
+                minusSign{"-"}\r
+                nan{"NaN"}\r
+                perMille{"‰"}\r
+                percentSign{"%"}\r
+                plusSign{"+"}\r
+                superscriptingExponent{"×"}\r
+            }\r
+        }\r
+        minimalPairs{\r
+            plural{\r
+                one{"rojek"}\r
+                other{"{0} roj"}\r
+            }\r
+        }\r
+        minimumGroupingDigits{"1"}\r
+        native{"latn"}\r
+    }\r
+    Version{"2.1.44.82"}\r
+    calendar{\r
+        generic{\r
+            DateTimePatterns{\r
+                "HH:mm:ss zzzz",\r
+                "HH:mm:ss z",\r
+                "HH:mm:ss",\r
+                "HH:mm",\r
+                "G y MMMM d, EEEE",\r
+                "G y MMMM d",\r
+                "G y MMM d",\r
+                "GGGGG y-MM-dd",\r
+                "{1} {0}",\r
+                "{1} {0}",\r
+                "{1} {0}",\r
+                "{1} {0}",\r
+                "{1} {0}",\r
+            }\r
+            availableFormats{\r
+                E{"ccc"}\r
+                d{"d"}\r
+            }\r
+        }\r
+        gregorian{\r
+            dayNames{\r
+                format{\r
+                    abbreviated{\r
+                        "yş",\r
+                        "dş",\r
+                        "sş",\r
+                        "çş",\r
+                        "pş",\r
+                        "în",\r
+                        "ş",\r
+                    }\r
+                    narrow{\r
+                        "Y",\r
+                        "D",\r
+                        "S",\r
+                        "Ç",\r
+                        "P",\r
+                        "Î",\r
+                        "Ş",\r
+                    }\r
+                    short{\r
+                        "yş",\r
+                        "dş",\r
+                        "sş",\r
+                        "çş",\r
+                        "pş",\r
+                        "în",\r
+                        "ş",\r
+                    }\r
+                    wide{\r
+                        "yekşem",\r
+                        "duşem",\r
+                        "sêşem",\r
+                        "çarşem",\r
+                        "pêncşem",\r
+                        "în",\r
+                        "şemî",\r
+                    }\r
+                }\r
+                stand-alone{\r
+                    abbreviated{\r
+                        "yş",\r
+                        "dş",\r
+                        "sş",\r
+                        "çş",\r
+                        "pş",\r
+                        "în",\r
+                        "ş",\r
+                    }\r
+                    narrow{\r
+                        "Y",\r
+                        "D",\r
+                        "S",\r
+                        "Ç",\r
+                        "P",\r
+                        "Î",\r
+                        "Ş",\r
+                    }\r
+                    short{\r
+                        "yş",\r
+                        "dş",\r
+                        "sş",\r
+                        "çş",\r
+                        "pş",\r
+                        "în",\r
+                        "ş",\r
+                    }\r
+                    wide{\r
+                        "yekşem",\r
+                        "duşem",\r
+                        "sêşem",\r
+                        "çarşem",\r
+                        "pêncşem",\r
+                        "în",\r
+                        "şemî",\r
+                    }\r
+                }\r
+            }\r
+            eras{\r
+                abbreviated{\r
+                    "BZ",\r
+                    "PZ",\r
+                }\r
+                wide{\r
+                    "berî zayînê",\r
+                    "piştî zayînê",\r
+                }\r
+            }\r
+            intervalFormats{\r
+                H{\r
+                    H{"HH–HH"}\r
+                }\r
+                Hm{\r
+                    H{"HH:mm–HH:mm"}\r
+                    m{"HH:mm–HH:mm"}\r
+                }\r
+                Hmv{\r
+                    H{"HH:mm–HH:mm v"}\r
+                    m{"HH:mm–HH:mm v"}\r
+                }\r
+                Hv{\r
+                    H{"HH–HH v"}\r
+                }\r
+                fallback{"{0} – {1}"}\r
+            }\r
+            monthNames{\r
+                format{\r
+                    abbreviated{\r
+                        "rêb",\r
+                        "reş",\r
+                        "ada",\r
+                        "avr",\r
+                        "gul",\r
+                        "pûş",\r
+                        "tîr",\r
+                        "gel",\r
+                        "rez",\r
+                        "kew",\r
+                        "ser",\r
+                        "ber",\r
+                    }\r
+                    narrow{\r
+                        "R",\r
+                        "R",\r
+                        "A",\r
+                        "A",\r
+                        "G",\r
+                        "P",\r
+                        "T",\r
+                        "G",\r
+                        "R",\r
+                        "K",\r
+                        "S",\r
+                        "B",\r
+                    }\r
+                    wide{\r
+                        "rêbendanê",\r
+                        "reşemiyê",\r
+                        "adarê",\r
+                        "avrêlê",\r
+                        "gulanê",\r
+                        "pûşperê",\r
+                        "tîrmehê",\r
+                        "gelawêjê",\r
+                        "rezberê",\r
+                        "kewçêrê",\r
+                        "sermawezê",\r
+                        "berfanbarê",\r
+                    }\r
+                }\r
+                stand-alone{\r
+                    abbreviated{\r
+                        "rêb",\r
+                        "reş",\r
+                        "ada",\r
+                        "avr",\r
+                        "gul",\r
+                        "pûş",\r
+                        "tîr",\r
+                        "gel",\r
+                        "rez",\r
+                        "kew",\r
+                        "ser",\r
+                        "ber",\r
+                    }\r
+                    narrow{\r
+                        "R",\r
+                        "R",\r
+                        "A",\r
+                        "A",\r
+                        "G",\r
+                        "P",\r
+                        "T",\r
+                        "G",\r
+                        "R",\r
+                        "K",\r
+                        "S",\r
+                        "B",\r
+                    }\r
+                    wide{\r
+                        "rêbendan",\r
+                        "reşemî",\r
+                        "adar",\r
+                        "avrêl",\r
+                        "gulan",\r
+                        "pûşper",\r
+                        "tîrmeh",\r
+                        "gelawêj",\r
+                        "rezber",\r
+                        "kewçêr",\r
+                        "sermawez",\r
+                        "berfanbar",\r
+                    }\r
+                }\r
+            }\r
+            quarters{\r
+                format{\r
+                    abbreviated{\r
+                        "Ç1",\r
+                        "Ç2",\r
+                        "Ç3",\r
+                        "Ç4",\r
+                    }\r
+                    narrow{\r
+                        "1",\r
+                        "2",\r
+                        "3",\r
+                        "4",\r
+                    }\r
+                }\r
+                stand-alone{\r
+                    abbreviated{\r
+                        "Ç1",\r
+                        "Ç2",\r
+                        "Ç3",\r
+                        "Ç4",\r
+                    }\r
+                    narrow{\r
+                        "1",\r
+                        "2",\r
+                        "3",\r
+                        "4",\r
+                    }\r
+                }\r
+            }\r
+        }\r
+    }\r
+    characterLabel{\r
+        animal{"heywan"}\r
+        animals_nature{"heywan an xweza"}\r
+    }\r
+    delimiters{\r
+        alternateQuotationEnd{"’"}\r
+        alternateQuotationStart{"‘"}\r
+        quotationEnd{"”"}\r
+        quotationStart{"“"}\r
+    }\r
+    fields{\r
+        day{\r
+            dn{"roj"}\r
+            relative{\r
+                "-1"{"duh"}\r
+                "0"{"îro"}\r
+                "1"{"sibe"}\r
+            }\r
+        }\r
+        day-narrow{\r
+            dn{"r."}\r
+        }\r
+        day-short{\r
+            dn{"r."}\r
+        }\r
+        era{\r
+            dn{"serdem"}\r
+        }\r
+        hour{\r
+            dn{"saet"}\r
+        }\r
+        hour-narrow{\r
+            dn{"st."}\r
+        }\r
+        hour-short{\r
+            dn{"st."}\r
+        }\r
+        minute{\r
+            dn{"deqîqe"}\r
+        }\r
+        minute-narrow{\r
+            dn{"d."}\r
+        }\r
+        minute-short{\r
+            dn{"d."}\r
+        }\r
+        month{\r
+            dn{"meh"}\r
+        }\r
+        month-narrow{\r
+            dn{"m."}\r
+        }\r
+        month-short{\r
+            dn{"m."}\r
+        }\r
+        quarter{\r
+            dn{"çarêk"}\r
+        }\r
+        quarter-narrow{\r
+            dn{"çrk."}\r
+        }\r
+        quarter-short{\r
+            dn{"çrk."}\r
+        }\r
+        second{\r
+            dn{"saniye"}\r
+        }\r
+        second-narrow{\r
+            dn{"s."}\r
+        }\r
+        second-short{\r
+            dn{"s."}\r
+        }\r
+        week{\r
+            dn{"hefte"}\r
+        }\r
+        week-narrow{\r
+            dn{"hf."}\r
+        }\r
+        week-short{\r
+            dn{"hf."}\r
+        }\r
+        year{\r
+            dn{"sal"}\r
+            relative{\r
+                "-1"{"par"}\r
+                "0"{"îsal"}\r
+                "1"{"sala piştî"}\r
+            }\r
+        }\r
+        year-narrow{\r
+            dn{"sl"}\r
+        }\r
+        year-short{\r
+            dn{"sal"}\r
+        }\r
+    }\r
+    listPattern{\r
+        or{\r
+            2{"{0} an {1}"}\r
+            end{"{0} an {1}"}\r
+            middle{"{0}, {1}"}\r
+            start{"{0}, {1}"}\r
+        }\r
+        standard{\r
+            2{"{0} û {1}"}\r
+            end{"{0} û {1}"}\r
+            middle{"{0}, {1}"}\r
+            start{"{0}, {1}"}\r
+        }\r
+        standard-short{\r
+            2{"{0} û {1}"}\r
+            end{"{0} û {1}"}\r
+            middle{"{0}, {1}"}\r
+            start{"{0}, {1}"}\r
+        }\r
+        unit{\r
+            2{"{0} û {1}"}\r
+            end{"{0} û {1}"}\r
+            middle{"{0}, {1}"}\r
+            start{"{0}, {1}"}\r
+        }\r
+        unit-narrow{\r
+            2{"{0} {1}"}\r
+            end{"{0} {1}"}\r
+            middle{"{0} {1}"}\r
+            start{"{0} {1}"}\r
+        }\r
+        unit-short{\r
+            2{"{0} û {1}"}\r
+            end{"{0} û {1}"}\r
+            middle{"{0}, {1}"}\r
+            start{"{0}, {1}"}\r
+        }\r
+    }\r
+    parse{\r
+        date{\r
+            lenient{\r
+                "[\\--/]",\r
+                "[\\:∶]",\r
+            }\r
+        }\r
+        general{\r
+            lenient{\r
+                "[.․。︒﹒.。]",\r
+                "['ʼ՚᾽᾿’']",\r
+                "[%٪﹪%]",\r
+                "[؉‰]",\r
+                "[\$﹩$$]",\r
+                "[£₤]",\r
+                "[¥¥]",\r
+                "[₩₩]",\r
+                "[₨₹{Rp}{Rs}]",\r
+            }\r
+        }\r
+        number{\r
+            lenient{\r
+                "[\\-‒⁻₋−➖﹣-]",\r
+                "[,،٫、︐︑﹐﹑,、]",\r
+                "[+⁺₊➕﬩﹢+]",\r
+            }\r
+            stricter{\r
+                "[,٫︐﹐,]",\r
+                "[.․﹒.。]",\r
+            }\r
+        }\r
+    }\r
+}\r
diff --git a/source/data/locales/ku_TR.txt b/source/data/locales/ku_TR.txt
new file mode 100644 (file)
index 0000000..6307c34
--- /dev/null
@@ -0,0 +1,5 @@
+// © 2016 and later: Unicode, Inc. and others.\r
+// License & terms of use: http://www.unicode.org/copyright.html#License\r
+ku_TR{\r
+    Version{"2.1.44.82"}\r
+}\r
index 5774812..57ccd14 100644 (file)
@@ -9,7 +9,7 @@ kw{
             }\r
         }\r
     }\r
-    Version{"2.1.38.69"}\r
+    Version{"2.1.43.65"}\r
     calendar{\r
         gregorian{\r
             AmPmMarkers{\r
index 26e7425..7077ae3 100644 (file)
@@ -10,7 +10,7 @@ ky{
         word-initial{"… {0}"}\r
         word-medial{"{0} … {1}"}\r
     }\r
-    ExemplarCharacters{"[а б г д е ё ж з и й к л м н ӊ о ө п р с т у ү х ч ш ъ ы э ю я]"}\r
+    ExemplarCharacters{"[а б г д е ё ж з и й к л м н ң о ө п р с т у ү х ч ш ъ ы э ю я]"}\r
     ExemplarCharactersIndex{"[А Б В Г Д Е Ё Ж З И Й К Л М Н Ң О Ө П Р С Т У Ү Ф Х Ц Ч Ш Щ Ъ Ы Ь Э Ю Я]"}\r
     ExemplarCharactersNumbers{"[  \\- , % ‰ + 0 1 2 3 4 5 6 7 8 9]"}\r
     ExemplarCharactersPunctuation{\r
@@ -22,7 +22,9 @@ ky{
         default{"latn"}\r
         latn{\r
             miscPatterns{\r
+                approximately{"~{0}"}\r
                 atLeast{"{0}+"}\r
+                atMost{"≤{0}"}\r
                 range{"{0}–{1}"}\r
             }\r
             patterns{\r
@@ -35,16 +37,16 @@ ky{
             patternsLong{\r
                 decimalFormat{\r
                     1000{\r
-                        one{"0 миӊ"}\r
-                        other{"0 миӊ"}\r
+                        one{"0 миң"}\r
+                        other{"0 миң"}\r
                     }\r
                     10000{\r
-                        one{"00 миӊ"}\r
-                        other{"00 миӊ"}\r
+                        one{"00 миң"}\r
+                        other{"00 миң"}\r
                     }\r
                     100000{\r
-                        one{"000 миӊ"}\r
-                        other{"000 миӊ"}\r
+                        one{"000 миң"}\r
+                        other{"000 миң"}\r
                     }\r
                     1000000{\r
                         one{"0 миллион"}\r
@@ -87,16 +89,16 @@ ky{
             patternsShort{\r
                 currencyFormat{\r
                     1000{\r
-                        one{"0 миӊ ¤"}\r
-                        other{"0 миӊ ¤"}\r
+                        one{"0 миң ¤"}\r
+                        other{"0 миң ¤"}\r
                     }\r
                     10000{\r
-                        one{"00 миӊ ¤"}\r
-                        other{"00 миӊ ¤"}\r
+                        one{"00 миң ¤"}\r
+                        other{"00 миң ¤"}\r
                     }\r
                     100000{\r
-                        one{"000 миӊ ¤"}\r
-                        other{"000 миӊ ¤"}\r
+                        one{"000 миң ¤"}\r
+                        other{"000 миң ¤"}\r
                     }\r
                     1000000{\r
                         one{"0 млн ¤"}\r
@@ -137,16 +139,16 @@ ky{
                 }\r
                 decimalFormat{\r
                     1000{\r
-                        one{"0 миӊ"}\r
-                        other{"0 миӊ"}\r
+                        one{"0 миң"}\r
+                        other{"0 миң"}\r
                     }\r
                     10000{\r
-                        one{"00 миӊ"}\r
-                        other{"00 миӊ"}\r
+                        one{"00 миң"}\r
+                        other{"00 миң"}\r
                     }\r
                     100000{\r
-                        one{"000 миӊ"}\r
-                        other{"000 миӊ"}\r
+                        one{"000 миң"}\r
+                        other{"000 миң"}\r
                     }\r
                     1000000{\r
                         one{"0 млн"}\r
@@ -212,7 +214,7 @@ ky{
         minimumGroupingDigits{"1"}\r
         native{"latn"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.65"}\r
     calendar{\r
         generic{\r
             DateTimePatterns{\r
@@ -274,6 +276,20 @@ ky{
                 yyyyQQQQ{"G y-'ж'. QQQQ"}\r
             }\r
             intervalFormats{\r
+                H{\r
+                    H{"HH–HH"}\r
+                }\r
+                Hm{\r
+                    H{"HH:mm–HH:mm"}\r
+                    m{"HH:mm–HH:mm"}\r
+                }\r
+                Hmv{\r
+                    H{"HH:mm–HH:mm v"}\r
+                    m{"HH:mm–HH:mm v"}\r
+                }\r
+                Hv{\r
+                    H{"HH–HH v"}\r
+                }\r
                 M{\r
                     M{"M–M"}\r
                 }\r
@@ -300,6 +316,9 @@ ky{
                     d{"d–d"}\r
                 }\r
                 fallback{"{0} - {1}"}\r
+                hmv{\r
+                    m{"h:mm–h:mm a v"}\r
+                }\r
                 y{\r
                     y{"y-'ж'.–y-'ж'. G"}\r
                 }\r
@@ -443,13 +462,13 @@ ky{
                         "И",\r
                     }\r
                     short{\r
-                        "жек.",\r
-                        "дүй.",\r
-                        "шейш.",\r
-                        "шарш.",\r
-                        "бейш.",\r
-                        "жума",\r
-                        "ишм.",\r
+                        "жш.",\r
+                        "дш.",\r
+                        "шш.",\r
+                        "шр.",\r
+                        "бш.",\r
+                        "жм.",\r
+                        "иш.",\r
                     }\r
                     wide{\r
                         "жекшемби",\r
@@ -481,7 +500,7 @@ ky{
                         "И",\r
                     }\r
                     short{\r
-                        "жк",\r
+                        "жш.",\r
                         "дш.",\r
                         "шш.",\r
                         "шр.",\r
@@ -904,7 +923,7 @@ ky{
                 "-1"{"кечээ"}\r
                 "-2"{"мурдагы күнү"}\r
                 "0"{"бүгүн"}\r
-                "1"{"эртеӊ"}\r
+                "1"{"эртең"}\r
                 "2"{"бүрсүгүнү"}\r
             }\r
             relativeTime{\r
@@ -924,7 +943,7 @@ ky{
                 "-1"{"кечээ"}\r
                 "-2"{"мурдагы күнү"}\r
                 "0"{"бүгүн"}\r
-                "1"{"эртеӊ"}\r
+                "1"{"эртең"}\r
                 "2"{"бүрсүгүнү"}\r
             }\r
             relativeTime{\r
@@ -944,7 +963,7 @@ ky{
                 "-1"{"кечээ"}\r
                 "-2"{"мурдагы күнү"}\r
                 "0"{"бүгүн"}\r
-                "1"{"эртеӊ"}\r
+                "1"{"эртең"}\r
                 "2"{"бүрсүгүнү"}\r
             }\r
             relativeTime{\r
@@ -971,10 +990,10 @@ ky{
             dn{"ТЧ/ТК"}\r
         }\r
         dayperiod-narrow{\r
-            dn{"ТЧ/ТК"}\r
+            dn{"тң/тк"}\r
         }\r
         dayperiod-short{\r
-            dn{"ТЧ/ТК"}\r
+            dn{"тң/тк"}\r
         }\r
         era{\r
             dn{"заман"}\r
@@ -1767,4 +1786,36 @@ ky{
         US{"АКШ"}\r
         metric{"Метрикалык өлчөө тутуму"}\r
     }\r
+    parse{\r
+        date{\r
+            lenient{\r
+                "[\\--/]",\r
+                "[\\:∶]",\r
+            }\r
+        }\r
+        general{\r
+            lenient{\r
+                "[.․。︒﹒.。]",\r
+                "['ʼ՚᾽᾿’']",\r
+                "[%٪﹪%]",\r
+                "[؉‰]",\r
+                "[\$﹩$$]",\r
+                "[£₤]",\r
+                "[¥¥]",\r
+                "[₩₩]",\r
+                "[₨₹{Rp}{Rs}]",\r
+            }\r
+        }\r
+        number{\r
+            lenient{\r
+                "[\\-‒⁻₋−➖﹣-]",\r
+                "[,،٫、︐︑﹐﹑,、]",\r
+                "[+⁺₊➕﬩﹢+]",\r
+            }\r
+            stricter{\r
+                "[,٫︐﹐,]",\r
+                "[.․﹒.。]",\r
+            }\r
+        }\r
+    }\r
 }\r
index 9887831..140839f 100644 (file)
@@ -25,7 +25,7 @@ lb{
         default{"latn"}\r
         latn{\r
             miscPatterns{\r
-                atLeast{"⩾ {0}"}\r
+                atLeast{"â\89¥ {0}"}\r
                 range{"{0}–{1}"}\r
             }\r
             patterns{\r
@@ -156,7 +156,7 @@ lb{
         minimumGroupingDigits{"1"}\r
         native{"latn"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.91"}\r
     calendar{\r
         buddhist{\r
             eras{\r
index 254db27..0c65aa3 100644 (file)
@@ -111,7 +111,9 @@ lo{
         }\r
         latn{\r
             miscPatterns{\r
+                approximately{"~{0}"}\r
                 atLeast{"{0}+"}\r
+                atMost{"≤{0}"}\r
                 range{"{0}–{1}"}\r
             }\r
             patterns{\r
@@ -266,7 +268,7 @@ lo{
         minimumGroupingDigits{"1"}\r
         native{"laoo"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.50"}\r
     calendar{\r
         chinese{\r
             DateTimePatterns{\r
@@ -1845,6 +1847,7 @@ lo{
                     "ໄຕໂຊ",\r
                     "ໂຊວາ",\r
                     "ຮີຊີ",\r
+                    "Qqqq",\r
                 }\r
             }\r
         }\r
index 3a3ad97..ee598cf 100644 (file)
@@ -31,7 +31,7 @@ lrc{
         }\r
         native{"arabext"}\r
     }\r
-    Version{"2.1.38.69"}\r
+    Version{"2.1.43.65"}\r
     calendar{\r
         default{"persian"}\r
         generic{\r
@@ -78,6 +78,66 @@ lrc{
                 "{1} {0}",\r
                 "{1} {0}",\r
             }\r
+            dayNames{\r
+                format{\r
+                    abbreviated{\r
+                        "Sun",\r
+                        "Mon",\r
+                        "Tue",\r
+                        "Wed",\r
+                        "Thu",\r
+                        "Fri",\r
+                        "Sat",\r
+                    }\r
+                    narrow{\r
+                        "S",\r
+                        "M",\r
+                        "T",\r
+                        "W",\r
+                        "T",\r
+                        "F",\r
+                        "S",\r
+                    }\r
+                    wide{\r
+                        "Sun",\r
+                        "Mon",\r
+                        "Tue",\r
+                        "Wed",\r
+                        "Thu",\r
+                        "Fri",\r
+                        "Sat",\r
+                    }\r
+                }\r
+                stand-alone{\r
+                    abbreviated{\r
+                        "Sun",\r
+                        "Mon",\r
+                        "Tue",\r
+                        "Wed",\r
+                        "Thu",\r
+                        "Fri",\r
+                        "Sat",\r
+                    }\r
+                    narrow{\r
+                        "S",\r
+                        "M",\r
+                        "T",\r
+                        "W",\r
+                        "T",\r
+                        "F",\r
+                        "S",\r
+                    }\r
+                    wide{\r
+                        "Sun",\r
+                        "Mon",\r
+                        "Tue",\r
+                        "Wed",\r
+                        "Thu",\r
+                        "Fri",\r
+                        "Sat",\r
+                    }\r
+                }\r
+            }\r
             eras{\r
                 abbreviated{\r
                     "BCE",\r
index e093f63..3f69910 100644 (file)
@@ -25,7 +25,9 @@ lt{
         default{"latn"}\r
         latn{\r
             miscPatterns{\r
-                atLeast{"⩾{0}"}\r
+                approximately{"~{0}"}\r
+                atLeast{"≥{0}"}\r
+                atMost{"≤{0}"}\r
                 range{"{0}–{1}"}\r
             }\r
             patterns{\r
@@ -290,7 +292,7 @@ lt{
         minimumGroupingDigits{"1"}\r
         native{"latn"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.91"}\r
     calendar{\r
         buddhist{\r
             eras{\r
@@ -2466,6 +2468,7 @@ lt{
                     "Taišo",\r
                     "Šova",\r
                     "Heisei",\r
+                    "Qqqq",\r
                 }\r
             }\r
         }\r
@@ -3733,8 +3736,13 @@ lt{
         general{\r
             lenient{\r
                 "[.․。︒﹒.。]",\r
+                "['ʼ՚᾽᾿’']",\r
+                "[%٪﹪%]",\r
+                "[؉‰]",\r
                 "[\$﹩$$]",\r
                 "[£₤]",\r
+                "[¥¥]",\r
+                "[₩₩]",\r
                 "[₨₹{Rp}{Rs}]",\r
             }\r
         }\r
index 650424a..79d1fb6 100644 (file)
@@ -22,7 +22,9 @@ lv{
         default{"latn"}\r
         latn{\r
             miscPatterns{\r
-                atLeast{"⩾{0}"}\r
+                approximately{"~{0}"}\r
+                atLeast{"≥{0}"}\r
+                atMost{"≤{0}"}\r
                 range{"{0}–{1}"}\r
             }\r
             patterns{\r
@@ -134,29 +136,29 @@ lv{
                         zero{"0 mljrd'.' ¤"}\r
                     }\r
                     10000000000{\r
-                        one{"¤00 mljrd'.'"}\r
-                        other{"¤00 mljrd'.'"}\r
-                        zero{"¤00 mljrd'.'"}\r
+                        one{"00 mljrd'.' ¤"}\r
+                        other{"00 mljrd'.' ¤"}\r
+                        zero{"00 mljrd'.' ¤"}\r
                     }\r
                     100000000000{\r
-                        one{"¤000 mljrd'.'"}\r
-                        other{"¤000 mljrd'.'"}\r
-                        zero{"¤000 mljrd'.'"}\r
+                        one{"000 mljrd'.' ¤"}\r
+                        other{"000 mljrd'.' ¤"}\r
+                        zero{"000 mljrd'.' ¤"}\r
                     }\r
                     1000000000000{\r
-                        one{"¤0 trilj'.'"}\r
-                        other{"¤0 trilj'.'"}\r
-                        zero{"¤0 trilj'.'"}\r
+                        one{"0 trilj'.' ¤"}\r
+                        other{"0 trilj'.' ¤"}\r
+                        zero{"0 trilj'.' ¤"}\r
                     }\r
                     10000000000000{\r
-                        one{"¤00 trilj'.'"}\r
-                        other{"¤00 trilj'.'"}\r
-                        zero{"¤00 trilj'.'"}\r
+                        one{"00 trilj'.' ¤"}\r
+                        other{"00 trilj'.' ¤"}\r
+                        zero{"00 trilj'.' ¤"}\r
                     }\r
                     100000000000000{\r
-                        one{"¤000 trilj'.'"}\r
-                        other{"¤000 trilj'.'"}\r
-                        zero{"¤000 trilj'.'"}\r
+                        one{"000 trilj'.' ¤"}\r
+                        other{"000 trilj'.' ¤"}\r
+                        zero{"000 trilj'.' ¤"}\r
                     }\r
                 }\r
                 decimalFormat{\r
@@ -250,7 +252,7 @@ lv{
         minimumGroupingDigits{"2"}\r
         native{"latn"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.91"}\r
     calendar{\r
         buddhist{\r
             eras{\r
@@ -438,7 +440,7 @@ lv{
                 "EEEE, y. 'gada' d. MMMM G",\r
                 "y. 'gada' d. MMMM G",\r
                 "y. 'gada' d. MMM G",\r
-                "dd.MM.y GGGGG",\r
+                "dd.MM.y. GGGGG",\r
                 "{1}, {0}",\r
                 "{1} 'plkst'. {0}",\r
                 "{1} 'plkst'. {0}",\r
@@ -486,7 +488,7 @@ lv{
                 yyyyMMMM{"y. 'g'. MMMM G"}\r
                 yyyyMMMd{"y. 'g'. d. MMM G"}\r
                 yyyyMd{"d.MM.y. G"}\r
-                yyyyQQQ{"QQQ y G"}\r
+                yyyyQQQ{"y. 'g'. QQQ G"}\r
                 yyyyQQQQ{"y. 'gada' QQQQ G"}\r
             }\r
             intervalFormats{\r
@@ -508,8 +510,8 @@ lv{
                     M{"MM–MM"}\r
                 }\r
                 MEd{\r
-                    M{"E, dd.MM–E, dd.MM"}\r
-                    d{"E, dd.MM–E, dd.MM"}\r
+                    M{"E, dd.MM.–E, dd.MM."}\r
+                    d{"E, dd.MM.–E, dd.MM."}\r
                 }\r
                 MMM{\r
                     M{"MMM–MMM"}\r
@@ -523,7 +525,7 @@ lv{
                     d{"d.–d. MMM"}\r
                 }\r
                 Md{\r
-                    M{"dd.MM–dd.MM"}\r
+                    M{"dd.MM.–dd.MM."}\r
                     d{"dd.MM.–dd.MM."}\r
                 }\r
                 d{\r
@@ -845,8 +847,8 @@ lv{
                     M{"MM.–MM."}\r
                 }\r
                 MEd{\r
-                    M{"E, dd.MM – E, dd.MM"}\r
-                    d{"E, dd.MM – E, dd.MM"}\r
+                    M{"E, dd.MM. – E, dd.MM."}\r
+                    d{"E, dd.MM. – E, dd.MM."}\r
                 }\r
                 MMM{\r
                     M{"LLL–LLL"}\r
@@ -860,7 +862,7 @@ lv{
                     d{"d.–d. MMM"}\r
                 }\r
                 Md{\r
-                    M{"dd.MM–dd.MM"}\r
+                    M{"dd.MM.–dd.MM."}\r
                     d{"dd.MM.–dd.MM."}\r
                 }\r
                 d{\r
@@ -1379,7 +1381,7 @@ lv{
         flags{"karogi"}\r
         food_drink{"ēdieni un dzērieni"}\r
         format{"formāts"}\r
-        format_whitespace{"formāts un baltstarpas rakstzīme"}\r
+        format_whitespace{"formatēšanas un nedrukājama rakstzīme"}\r
         full_width_form_variant{"pilna platuma formu varianti"}\r
         geometric_shapes{"ģeometriskās figūras"}\r
         half_width_form_variant{"pusplatuma formu varianti"}\r
@@ -1437,7 +1439,7 @@ lv{
         vocalic_jamo{"skanīgie džamo"}\r
         weather{"laikapstākļi"}\r
         western_asian_scripts{"Rietumāzijas rakstības"}\r
-        whitespace{"baltstarpa"}\r
+        whitespace{"nedrukājama rakstzīme"}\r
     }\r
     delimiters{\r
         alternateQuotationEnd{"’"}\r
@@ -1552,13 +1554,13 @@ lv{
             }\r
             relativeTime{\r
                 future{\r
-                    one{"pēc {0} piektdienas"}\r
-                    other{"pēc {0} piektdienām"}\r
+                    one{"pēc {0} piektd."}\r
+                    other{"pēc {0} piektd."}\r
                     zero{"pēc {0} piektdienām"}\r
                 }\r
                 past{\r
-                    one{"pirms {0} piektdienas"}\r
-                    other{"pirms {0} piektdienām"}\r
+                    one{"pirms {0} piektd."}\r
+                    other{"pirms {0} piektd."}\r
                     zero{"pirms {0} piektdienām"}\r
                 }\r
             }\r
@@ -1571,13 +1573,13 @@ lv{
             }\r
             relativeTime{\r
                 future{\r
-                    one{"pēc {0} piektdienas"}\r
-                    other{"pēc {0} piektdienām"}\r
+                    one{"pēc {0} piektd."}\r
+                    other{"pēc {0} piektd."}\r
                     zero{"pēc {0} piektdienām"}\r
                 }\r
                 past{\r
-                    one{"pirms {0} piektdienas"}\r
-                    other{"pirms {0} piektdienām"}\r
+                    one{"pirms {0} piektd."}\r
+                    other{"pirms {0} piektd."}\r
                     zero{"pirms {0} piektdienām"}\r
                 }\r
             }\r
@@ -1705,13 +1707,13 @@ lv{
             }\r
             relativeTime{\r
                 future{\r
-                    one{"pēc {0} pirmdienas"}\r
-                    other{"pēc {0} pirmdienām"}\r
+                    one{"pēc {0} pirmd."}\r
+                    other{"pēc {0} pirmd."}\r
                     zero{"pēc {0} pirmdienām"}\r
                 }\r
                 past{\r
-                    one{"pirms {0} pirmdienas"}\r
-                    other{"pirms {0} pirmdienām"}\r
+                    one{"pirms {0} pirmd."}\r
+                    other{"pirms {0} pirmd."}\r
                     zero{"pirms {0} pirmdienām"}\r
                 }\r
             }\r
@@ -1724,13 +1726,13 @@ lv{
             }\r
             relativeTime{\r
                 future{\r
-                    one{"pēc {0} pirmdienas"}\r
-                    other{"pēc {0} pirmdienām"}\r
+                    one{"pēc {0} pirmd."}\r
+                    other{"pēc {0} pirmd."}\r
                     zero{"pēc {0} pirmdienām"}\r
                 }\r
                 past{\r
-                    one{"pirms {0} pirmdienas"}\r
-                    other{"pirms {0} pirmdienām"}\r
+                    one{"pirms {0} pirmd."}\r
+                    other{"pirms {0} pirmd."}\r
                     zero{"pirms {0} pirmdienām"}\r
                 }\r
             }\r
@@ -1862,13 +1864,13 @@ lv{
             }\r
             relativeTime{\r
                 future{\r
-                    one{"pēc {0} sestdienas"}\r
-                    other{"pēc {0} sestdienām"}\r
+                    one{"pēc {0} sestd."}\r
+                    other{"pēc {0} sestd."}\r
                     zero{"pēc {0} sestdienām"}\r
                 }\r
                 past{\r
-                    one{"pirms {0} sestdienas"}\r
-                    other{"pirms {0} sestdienām"}\r
+                    one{"pirms {0} sestd."}\r
+                    other{"pirms {0} sestd."}\r
                     zero{"pirms {0} sestdienām"}\r
                 }\r
             }\r
@@ -1881,13 +1883,13 @@ lv{
             }\r
             relativeTime{\r
                 future{\r
-                    one{"pēc {0} sestdienas"}\r
-                    other{"pēc {0} sestdienām"}\r
+                    one{"pēc {0} sestd."}\r
+                    other{"pēc {0} sestd."}\r
                     zero{"pēc {0} sestdienām"}\r
                 }\r
                 past{\r
-                    one{"pirms {0} sestdienas"}\r
-                    other{"pirms {0} sestdienām"}\r
+                    one{"pirms {0} sestd."}\r
+                    other{"pirms {0} sestd."}\r
                     zero{"pirms {0} sestdienām"}\r
                 }\r
             }\r
@@ -1967,13 +1969,13 @@ lv{
             }\r
             relativeTime{\r
                 future{\r
-                    one{"pēc {0} svētdienas"}\r
-                    other{"pēc {0} svētdienām"}\r
+                    one{"pēc {0} svētd."}\r
+                    other{"pēc {0} svētd."}\r
                     zero{"pēc {0} svētdienām"}\r
                 }\r
                 past{\r
-                    one{"pirms {0} svētdienas"}\r
-                    other{"pirms {0} svētdienām"}\r
+                    one{"pirms {0} svētd."}\r
+                    other{"pirms {0} svētd."}\r
                     zero{"pirms {0} svētdienām"}\r
                 }\r
             }\r
@@ -1986,13 +1988,13 @@ lv{
             }\r
             relativeTime{\r
                 future{\r
-                    one{"pēc {0} svētdienas"}\r
-                    other{"pēc {0} svētdienām"}\r
+                    one{"pēc {0} svētd."}\r
+                    other{"pēc {0} svētd."}\r
                     zero{"pēc {0} svētdienām"}\r
                 }\r
                 past{\r
-                    one{"pirms {0} svētdienas"}\r
-                    other{"pirms {0} svētdienām"}\r
+                    one{"pirms {0} svētd."}\r
+                    other{"pirms {0} svētd."}\r
                     zero{"pirms {0} svētdienām"}\r
                 }\r
             }\r
@@ -2024,13 +2026,13 @@ lv{
             }\r
             relativeTime{\r
                 future{\r
-                    one{"pēc {0} ceturtdienas"}\r
-                    other{"pēc {0} ceturtdienām"}\r
+                    one{"pēc {0} ceturtd."}\r
+                    other{"pēc {0} ceturtd."}\r
                     zero{"pēc {0} ceturtdienām"}\r
                 }\r
                 past{\r
-                    one{"pirms {0} ceturtdienas"}\r
-                    other{"pirms {0} ceturtdienām"}\r
+                    one{"pirms {0} ceturtd."}\r
+                    other{"pirms {0} ceturtd."}\r
                     zero{"pirms {0} ceturtdienām"}\r
                 }\r
             }\r
@@ -2043,13 +2045,13 @@ lv{
             }\r
             relativeTime{\r
                 future{\r
-                    one{"pēc {0} ceturtdienas"}\r
-                    other{"pēc {0} ceturtdienām"}\r
+                    one{"pēc {0} ceturtd."}\r
+                    other{"pēc {0} ceturtd."}\r
                     zero{"pēc {0} ceturtdienām"}\r
                 }\r
                 past{\r
-                    one{"pirms {0} ceturtdienas"}\r
-                    other{"pirms {0} ceturtdienām"}\r
+                    one{"pirms {0} ceturtd."}\r
+                    other{"pirms {0} ceturtd."}\r
                     zero{"pirms {0} ceturtdienām"}\r
                 }\r
             }\r
@@ -2081,13 +2083,13 @@ lv{
             }\r
             relativeTime{\r
                 future{\r
-                    one{"pēc {0} otrdienas"}\r
-                    other{"pēc {0} otrdienām"}\r
+                    one{"pēc {0} otrd."}\r
+                    other{"pēc {0} otrd."}\r
                     zero{"pēc {0} otrdienām"}\r
                 }\r
                 past{\r
-                    one{"pirms {0} otrdienas"}\r
-                    other{"pirms {0} otrdienām"}\r
+                    one{"pirms {0} otrd."}\r
+                    other{"pirms {0} otrd."}\r
                     zero{"pirms {0} otrdienām"}\r
                 }\r
             }\r
@@ -2100,13 +2102,13 @@ lv{
             }\r
             relativeTime{\r
                 future{\r
-                    one{"pēc {0} otrdienas"}\r
-                    other{"pēc {0} otrdienām"}\r
+                    one{"pēc {0} otrd."}\r
+                    other{"pēc {0} otrd."}\r
                     zero{"pēc {0} otrdienām"}\r
                 }\r
                 past{\r
-                    one{"pirms {0} otrdienas"}\r
-                    other{"pirms {0} otrdienām"}\r
+                    one{"pirms {0} otrd."}\r
+                    other{"pirms {0} otrd."}\r
                     zero{"pirms {0} otrdienām"}\r
                 }\r
             }\r
@@ -2138,13 +2140,13 @@ lv{
             }\r
             relativeTime{\r
                 future{\r
-                    one{"pēc {0} trešdienas"}\r
-                    other{"pēc {0} trešdienām"}\r
+                    one{"pēc {0} trešd."}\r
+                    other{"pēc {0} trešd."}\r
                     zero{"pēc {0} trešdienām"}\r
                 }\r
                 past{\r
-                    one{"pirms {0} trešdienas"}\r
-                    other{"pirms {0} trešdienām"}\r
+                    one{"pirms {0} trešd."}\r
+                    other{"pirms {0} trešd."}\r
                     zero{"pirms {0} trešdienām"}\r
                 }\r
             }\r
@@ -2157,13 +2159,13 @@ lv{
             }\r
             relativeTime{\r
                 future{\r
-                    one{"pēc {0} trešdienas"}\r
-                    other{"pēc {0} trešdienām"}\r
+                    one{"pēc {0} trešd."}\r
+                    other{"pēc {0} trešd."}\r
                     zero{"pēc {0} trešdienām"}\r
                 }\r
                 past{\r
-                    one{"pirms {0} trešdienas"}\r
-                    other{"pirms {0} trešdienām"}\r
+                    one{"pirms {0} trešd."}\r
+                    other{"pirms {0} trešd."}\r
                     zero{"pirms {0} trešdienām"}\r
                 }\r
             }\r
@@ -2361,8 +2363,13 @@ lv{
         general{\r
             lenient{\r
                 "[.․。︒﹒.。]",\r
+                "['ʼ՚᾽᾿’']",\r
+                "[%٪﹪%]",\r
+                "[؉‰]",\r
                 "[\$﹩$$]",\r
                 "[£₤]",\r
+                "[¥¥]",\r
+                "[₩₩]",\r
                 "[₨₹{Rp}{Rs}]",\r
             }\r
         }\r
index 37f50e9..7dcf801 100644 (file)
@@ -8,7 +8,7 @@ mg{
     NumberElements{\r
         latn{\r
             miscPatterns{\r
-                atLeast{"⩾{0}"}\r
+                atLeast{"â\89¥{0}"}\r
                 range{"{0}–{1}"}\r
             }\r
             patterns{\r
@@ -33,7 +33,7 @@ mg{
         }\r
         minimumGroupingDigits{"1"}\r
     }\r
-    Version{"2.1.39.11"}\r
+    Version{"2.1.43.94"}\r
     calendar{\r
         generic{\r
             DateTimePatterns{\r
diff --git a/source/data/locales/mi.txt b/source/data/locales/mi.txt
new file mode 100644 (file)
index 0000000..8f78430
--- /dev/null
@@ -0,0 +1,616 @@
+// © 2016 and later: Unicode, Inc. and others.\r
+// License & terms of use: http://www.unicode.org/copyright.html#License\r
+mi{\r
+    AuxExemplarCharacters{"[b c d f g j l q s v x y z]"}\r
+    ExemplarCharacters{"[a ā e ē h i ī k m n {ng} o ō p r t u ū w {wh}]"}\r
+    ExemplarCharactersIndex{"[A E H I K M N O P R T U W]"}\r
+    NumberElements{\r
+        default{"latn"}\r
+        latn{\r
+            miscPatterns{\r
+                atLeast{"≥{0}"}\r
+                range{"{0}–{1}"}\r
+            }\r
+            patterns{\r
+                accountingFormat{"¤ #,##0.00"}\r
+                currencyFormat{"¤ #,##0.00"}\r
+                decimalFormat{"#,##0.###"}\r
+                percentFormat{"#,##0%"}\r
+                scientificFormat{"#E0"}\r
+            }\r
+            patternsLong{\r
+                decimalFormat{\r
+                    1000{\r
+                        other{"0K"}\r
+                    }\r
+                    10000{\r
+                        other{"00K"}\r
+                    }\r
+                    100000{\r
+                        other{"000K"}\r
+                    }\r
+                    1000000{\r
+                        other{"0M"}\r
+                    }\r
+                    10000000{\r
+                        other{"00M"}\r
+                    }\r
+                    100000000{\r
+                        other{"000M"}\r
+                    }\r
+                    1000000000{\r
+                        other{"0G"}\r
+                    }\r
+                    10000000000{\r
+                        other{"00G"}\r
+                    }\r
+                    100000000000{\r
+                        other{"000G"}\r
+                    }\r
+                    1000000000000{\r
+                        other{"0T"}\r
+                    }\r
+                    10000000000000{\r
+                        other{"00T"}\r
+                    }\r
+                    100000000000000{\r
+                        other{"000T"}\r
+                    }\r
+                }\r
+            }\r
+            patternsShort{\r
+                currencyFormat{\r
+                    1000{\r
+                        other{"¤ 0K"}\r
+                    }\r
+                    10000{\r
+                        other{"¤ 00K"}\r
+                    }\r
+                    100000{\r
+                        other{"¤ 000K"}\r
+                    }\r
+                    1000000{\r
+                        other{"¤ 0M"}\r
+                    }\r
+                    10000000{\r
+                        other{"¤ 00M"}\r
+                    }\r
+                    100000000{\r
+                        other{"¤ 000M"}\r
+                    }\r
+                    1000000000{\r
+                        other{"¤ 0G"}\r
+                    }\r
+                    10000000000{\r
+                        other{"¤ 00G"}\r
+                    }\r
+                    100000000000{\r
+                        other{"¤ 000G"}\r
+                    }\r
+                    1000000000000{\r
+                        other{"¤ 0T"}\r
+                    }\r
+                    10000000000000{\r
+                        other{"¤ 00T"}\r
+                    }\r
+                    100000000000000{\r
+                        other{"¤ 000T"}\r
+                    }\r
+                }\r
+                decimalFormat{\r
+                    1000{\r
+                        other{"0K"}\r
+                    }\r
+                    10000{\r
+                        other{"00K"}\r
+                    }\r
+                    100000{\r
+                        other{"000K"}\r
+                    }\r
+                    1000000{\r
+                        other{"0M"}\r
+                    }\r
+                    10000000{\r
+                        other{"00M"}\r
+                    }\r
+                    100000000{\r
+                        other{"000M"}\r
+                    }\r
+                    1000000000{\r
+                        other{"0G"}\r
+                    }\r
+                    10000000000{\r
+                        other{"00G"}\r
+                    }\r
+                    100000000000{\r
+                        other{"000G"}\r
+                    }\r
+                    1000000000000{\r
+                        other{"0T"}\r
+                    }\r
+                    10000000000000{\r
+                        other{"00T"}\r
+                    }\r
+                    100000000000000{\r
+                        other{"000T"}\r
+                    }\r
+                }\r
+            }\r
+            symbols{\r
+                decimal{"."}\r
+                exponential{"E"}\r
+                group{","}\r
+                infinity{"∞"}\r
+                minusSign{"-"}\r
+                nan{"NaN"}\r
+                perMille{"‰"}\r
+                percentSign{"%"}\r
+                plusSign{"+"}\r
+                superscriptingExponent{"×"}\r
+            }\r
+        }\r
+        minimumGroupingDigits{"1"}\r
+        native{"latn"}\r
+    }\r
+    Version{"2.1.44.15"}\r
+    calendar{\r
+        generic{\r
+            DateTimePatterns{\r
+                "h:mm:ss a zzzz",\r
+                "h:mm:ss a z",\r
+                "h:mm:ss",\r
+                "h:mm",\r
+                "G y MMMM d, EEEE",\r
+                "G y MMMM d",\r
+                "G y MMM d",\r
+                "GGGGG y-MM-dd",\r
+                "{1} {0}",\r
+                "{1} {0}",\r
+                "{1} {0}",\r
+                "{1} {0}",\r
+                "{1} {0}",\r
+            }\r
+            intervalFormats{\r
+                M{\r
+                    M{"MM–MM"}\r
+                }\r
+                MEd{\r
+                    M{"MM-dd, E – MM-dd, E"}\r
+                    d{"MM-dd, E – MM-dd, E"}\r
+                }\r
+                MMM{\r
+                    M{"LLL–LLL"}\r
+                }\r
+                MMMEd{\r
+                    M{"MMM d, E – MMM d, E"}\r
+                    d{"MMM d, E – MMM d, E"}\r
+                }\r
+                MMMd{\r
+                    M{"MMM d – MMM d"}\r
+                    d{"MMM d–d"}\r
+                }\r
+                Md{\r
+                    M{"MM-dd – MM-dd"}\r
+                    d{"MM-dd – MM-dd"}\r
+                }\r
+                d{\r
+                    d{"d–d"}\r
+                }\r
+                fallback{"{0} ki te {1}"}\r
+                y{\r
+                    y{"G y–y"}\r
+                }\r
+                yM{\r
+                    M{"GGGGG y-MM – y-MM"}\r
+                    y{"GGGGG y-MM – y-MM"}\r
+                }\r
+                yMEd{\r
+                    M{"GGGGG y-MM-dd, E – y-MM-dd, E"}\r
+                    d{"GGGGG y-MM-dd, E – y-MM-dd, E"}\r
+                    y{"GGGGG y-MM-dd, E – y-MM-dd, E"}\r
+                }\r
+                yMMM{\r
+                    M{"G y MMM–MMM"}\r
+                    y{"G y MMM – y MMM"}\r
+                }\r
+                yMMMEd{\r
+                    M{"G y MMM d, E – MMM d, E"}\r
+                    d{"G y MMM d, E – MMM d, E"}\r
+                    y{"G y MMM d, E – y MMM d, E"}\r
+                }\r
+                yMMMM{\r
+                    M{"G y MMMM–MMMM"}\r
+                    y{"G y MMMM – y MMMM"}\r
+                }\r
+                yMMMd{\r
+                    M{"G y MMM d – MMM d"}\r
+                    d{"G y MMM d–d"}\r
+                    y{"G y MMM d – y MMM d"}\r
+                }\r
+                yMd{\r
+                    M{"GGGGG y-MM-dd – y-MM-dd"}\r
+                    d{"GGGGG y-MM-dd – y-MM-dd"}\r
+                    y{"GGGGG y-MM-dd – y-MM-dd"}\r
+                }\r
+            }\r
+        }\r
+        gregorian{\r
+            AmPmMarkers{\r
+                "AM",\r
+                "PM",\r
+            }\r
+            AmPmMarkersAbbr{\r
+                "AM",\r
+                "PM",\r
+            }\r
+            AmPmMarkersNarrow{\r
+                "AM",\r
+                "PM",\r
+            }\r
+            DateTimePatterns{\r
+                "h:mm:ss a zzzz",\r
+                "h:mm:ss a z",\r
+                "h:mm:ss",\r
+                "h:mm",\r
+                "y MMMM d, EEEE",\r
+                "y MMMM d",\r
+                "y MMM d",\r
+                "y-MM-dd",\r
+                "{1} {0}",\r
+                "{1} {0}",\r
+                "{1} {0}",\r
+                "{1} {0}",\r
+                "{1} {0}",\r
+            }\r
+            dayNames{\r
+                format{\r
+                    abbreviated{\r
+                        "Tap",\r
+                        "Hin",\r
+                        "Tū",\r
+                        "Apa",\r
+                        "Par",\r
+                        "Mer",\r
+                        "Hor",\r
+                    }\r
+                    narrow{\r
+                        "T",\r
+                        "H",\r
+                        "T",\r
+                        "A",\r
+                        "P",\r
+                        "M",\r
+                        "H",\r
+                    }\r
+                    short{\r
+                        "Tap",\r
+                        "Hin",\r
+                        "Tū",\r
+                        "Apa",\r
+                        "Par",\r
+                        "Mer",\r
+                        "Hor",\r
+                    }\r
+                    wide{\r
+                        "Rātapu",\r
+                        "Rāhina",\r
+                        "Rātū",\r
+                        "Rāapa",\r
+                        "Rāpare",\r
+                        "Rāmere",\r
+                        "Rāhoroi",\r
+                    }\r
+                }\r
+                stand-alone{\r
+                    abbreviated{\r
+                        "Tap",\r
+                        "Hin",\r
+                        "Tū",\r
+                        "Apa",\r
+                        "Par",\r
+                        "Mer",\r
+                        "Hor",\r
+                    }\r
+                    narrow{\r
+                        "T",\r
+                        "H",\r
+                        "T",\r
+                        "A",\r
+                        "P",\r
+                        "M",\r
+                        "H",\r
+                    }\r
+                    short{\r
+                        "Tap",\r
+                        "Hin",\r
+                        "Tū",\r
+                        "Apa",\r
+                        "Par",\r
+                        "Mer",\r
+                        "Hor",\r
+                    }\r
+                    wide{\r
+                        "Rātapu",\r
+                        "Rāhina",\r
+                        "Rātū",\r
+                        "Rāapa",\r
+                        "Rāpare",\r
+                        "Rāmere",\r
+                        "Rāhoroi",\r
+                    }\r
+                }\r
+            }\r
+            dayPeriod{\r
+                stand-alone{\r
+                    abbreviated{\r
+                        am{"AM"}\r
+                        pm{"PM"}\r
+                    }\r
+                    narrow{\r
+                        am{"AM"}\r
+                        pm{"PM"}\r
+                    }\r
+                    wide{\r
+                        am{"AM"}\r
+                        pm{"PM"}\r
+                    }\r
+                }\r
+            }\r
+            eras{\r
+                abbreviated{\r
+                    "BCE",\r
+                    "CE",\r
+                }\r
+                wide{\r
+                    "BCE",\r
+                    "CE",\r
+                }\r
+            }\r
+            intervalFormats{\r
+                fallback{"{0} ki te {1}"}\r
+            }\r
+            monthNames{\r
+                format{\r
+                    abbreviated{\r
+                        "Kohi",\r
+                        "Hui",\r
+                        "Pou",\r
+                        "Pae",\r
+                        "Hara",\r
+                        "Pipi",\r
+                        "Hōngo",\r
+                        "Here",\r
+                        "Mahu",\r
+                        "Nuku",\r
+                        "Rangi",\r
+                        "Haki",\r
+                    }\r
+                    narrow{\r
+                        "K",\r
+                        "H",\r
+                        "P",\r
+                        "P",\r
+                        "H",\r
+                        "P",\r
+                        "H",\r
+                        "H",\r
+                        "M",\r
+                        "N",\r
+                        "R",\r
+                        "H",\r
+                    }\r
+                    wide{\r
+                        "Kohitātea",\r
+                        "Huitanguru",\r
+                        "Poutūterangi",\r
+                        "Paengawhāwhā",\r
+                        "Haratua",\r
+                        "Pipiri",\r
+                        "Hōngongoi",\r
+                        "Hereturikōkā",\r
+                        "Mahuru",\r
+                        "Whiringa-ā-nuku",\r
+                        "Whiringa-ā-rangi",\r
+                        "Hakihea",\r
+                    }\r
+                }\r
+                stand-alone{\r
+                    abbreviated{\r
+                        "Kohi",\r
+                        "Hui",\r
+                        "Pou",\r
+                        "Pae",\r
+                        "Hara",\r
+                        "Pipi",\r
+                        "Hōngo",\r
+                        "Here",\r
+                        "Mahu",\r
+                        "Nuku",\r
+                        "Rangi",\r
+                        "Haki",\r
+                    }\r
+                    narrow{\r
+                        "K",\r
+                        "H",\r
+                        "P",\r
+                        "P",\r
+                        "H",\r
+                        "P",\r
+                        "H",\r
+                        "H",\r
+                        "M",\r
+                        "N",\r
+                        "R",\r
+                        "H",\r
+                    }\r
+                    wide{\r
+                        "Kohitātea",\r
+                        "Huitanguru",\r
+                        "Poutūterangi",\r
+                        "Paengawhāwhā",\r
+                        "Haratua",\r
+                        "Pipiri",\r
+                        "Hōngongoi",\r
+                        "Hereturikōkā",\r
+                        "Mahuru",\r
+                        "Whiringa-ā-nuku",\r
+                        "Whiringa-ā-rangi",\r
+                        "Hakihea",\r
+                    }\r
+                }\r
+            }\r
+            quarters{\r
+                format{\r
+                    abbreviated{\r
+                        "HW1",\r
+                        "HW2",\r
+                        "HW3",\r
+                        "HW4",\r
+                    }\r
+                    narrow{\r
+                        "1",\r
+                        "2",\r
+                        "3",\r
+                        "4",\r
+                    }\r
+                    wide{\r
+                        "Hauwhā tuatahi",\r
+                        "Hauwhā tuarua",\r
+                        "Hauwhā tuatoru",\r
+                        "Hauwhā tuawhā",\r
+                    }\r
+                }\r
+                stand-alone{\r
+                    abbreviated{\r
+                        "HW1",\r
+                        "HW2",\r
+                        "HW3",\r
+                        "HW4",\r
+                    }\r
+                    narrow{\r
+                        "1",\r
+                        "2",\r
+                        "3",\r
+                        "4",\r
+                    }\r
+                    wide{\r
+                        "Hauwhā tuatahi",\r
+                        "Hauwhā tuarua",\r
+                        "Hauwhā tuatoru",\r
+                        "Hauwhā tuawhā",\r
+                    }\r
+                }\r
+            }\r
+        }\r
+    }\r
+    delimiters{\r
+        alternateQuotationEnd{"’"}\r
+        alternateQuotationStart{"‘"}\r
+        quotationEnd{"”"}\r
+        quotationStart{"“"}\r
+    }\r
+    fields{\r
+        day{\r
+            dn{"rā"}\r
+            relative{\r
+                "-1"{"inanahi"}\r
+                "0"{"āianei"}\r
+                "1"{"āpōpō"}\r
+            }\r
+        }\r
+        day-narrow{\r
+            dn{"rā"}\r
+        }\r
+        day-short{\r
+            dn{"rā"}\r
+        }\r
+        dayperiod{\r
+            dn{"AM/PM"}\r
+        }\r
+        era{\r
+            dn{"wā"}\r
+        }\r
+        hour{\r
+            dn{"hāora"}\r
+        }\r
+        hour-narrow{\r
+            dn{"hr"}\r
+        }\r
+        hour-short{\r
+            dn{"hr"}\r
+        }\r
+        minute{\r
+            dn{"meneti"}\r
+        }\r
+        minute-narrow{\r
+            dn{"men"}\r
+        }\r
+        minute-short{\r
+            dn{"men"}\r
+        }\r
+        month{\r
+            dn{"marama"}\r
+        }\r
+        month-narrow{\r
+            dn{"m"}\r
+        }\r
+        month-short{\r
+            dn{"m"}\r
+        }\r
+        quarter{\r
+            dn{"hauwhā"}\r
+        }\r
+        quarter-narrow{\r
+            dn{"hw"}\r
+        }\r
+        quarter-short{\r
+            dn{"hw"}\r
+        }\r
+        second{\r
+            dn{"hēkona"}\r
+        }\r
+        second-narrow{\r
+            dn{"hēk"}\r
+        }\r
+        second-short{\r
+            dn{"hēk"}\r
+        }\r
+        week{\r
+            dn{"wiki"}\r
+        }\r
+        week-narrow{\r
+            dn{"w"}\r
+        }\r
+        week-short{\r
+            dn{"w"}\r
+        }\r
+        weekday{\r
+            dn{"rā o te wiki"}\r
+        }\r
+        year{\r
+            dn{"tau"}\r
+        }\r
+        year-narrow{\r
+            dn{"t"}\r
+        }\r
+        year-short{\r
+            dn{"t"}\r
+        }\r
+        zone{\r
+            dn{"rohe wā"}\r
+        }\r
+    }\r
+    listPattern{\r
+        standard{\r
+            2{"{0}, {1}"}\r
+            end{"{0}, {1}"}\r
+            middle{"{0}, {1}"}\r
+            start{"{0}, {1}"}\r
+        }\r
+    }\r
+    measurementSystemNames{\r
+        UK{"UK"}\r
+        US{"US"}\r
+        metric{"Ngahuru"}\r
+    }\r
+}\r
diff --git a/source/data/locales/mi_NZ.txt b/source/data/locales/mi_NZ.txt
new file mode 100644 (file)
index 0000000..cbc8f00
--- /dev/null
@@ -0,0 +1,5 @@
+// © 2016 and later: Unicode, Inc. and others.\r
+// License & terms of use: http://www.unicode.org/copyright.html#License\r
+mi_NZ{\r
+    Version{"2.1.44.15"}\r
+}\r
index fd5e759..0dac45b 100644 (file)
@@ -19,7 +19,9 @@ mk{
         default{"latn"}\r
         latn{\r
             miscPatterns{\r
+                approximately{"~{0}"}\r
                 atLeast{"{0}+"}\r
+                atMost{"≤{0}"}\r
                 range{"{0}–{1}"}\r
             }\r
             patterns{\r
@@ -213,7 +215,7 @@ mk{
         minimumGroupingDigits{"1"}\r
         native{"latn"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.65"}\r
     calendar{\r
         buddhist{\r
             DateTimePatterns{\r
@@ -2416,6 +2418,11 @@ mk{
         }\r
         quarter-narrow{\r
             dn{"тромес."}\r
+            relative{\r
+                "-1"{"последното тромесечје"}\r
+                "0"{"ова тромесечје"}\r
+                "1"{"следното тромесечје"}\r
+            }\r
             relativeTime{\r
                 future{\r
                     one{"за {0} тромес."}\r
@@ -2429,6 +2436,11 @@ mk{
         }\r
         quarter-short{\r
             dn{"тромес."}\r
+            relative{\r
+                "-1"{"последното тромесечје"}\r
+                "0"{"ова тромесечје"}\r
+                "1"{"следното тромесечје"}\r
+            }\r
             relativeTime{\r
                 future{\r
                     one{"за {0} тромес."}\r
@@ -2938,8 +2950,13 @@ mk{
         general{\r
             lenient{\r
                 "[.․。︒﹒.。]",\r
+                "['ʼ՚᾽᾿’']",\r
+                "[%٪﹪%]",\r
+                "[؉‰]",\r
                 "[\$﹩$$]",\r
                 "[£₤]",\r
+                "[¥¥]",\r
+                "[₩₩]",\r
                 "[₨₹{Rp}{Rs}]",\r
             }\r
         }\r
index fd67656..a0fb4ee 100644 (file)
@@ -26,7 +26,9 @@ ml{
         default{"latn"}\r
         latn{\r
             miscPatterns{\r
+                approximately{"~{0}"}\r
                 atLeast{"{0}+"}\r
+                atMost{"≤{0}"}\r
                 range{"{0}-{1}"}\r
             }\r
             patterns{\r
@@ -239,7 +241,7 @@ ml{
         }\r
         native{"mlym"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.50"}\r
     calendar{\r
         buddhist{\r
             eras{\r
@@ -2023,6 +2025,11 @@ ml{
         }\r
         quarter-narrow{\r
             dn{"പാദം"}\r
+            relative{\r
+                "-1"{"കഴിഞ്ഞ പാദം"}\r
+                "0"{"ഈ പാദം"}\r
+                "1"{"അടുത്ത പാദം"}\r
+            }\r
             relativeTime{\r
                 future{\r
                     one{"{0} പാദത്തിൽ"}\r
@@ -2036,6 +2043,11 @@ ml{
         }\r
         quarter-short{\r
             dn{"പാദം"}\r
+            relative{\r
+                "-1"{"കഴിഞ്ഞ പാദം"}\r
+                "0"{"ഈ പാദം"}\r
+                "1"{"അടുത്ത പാദം"}\r
+            }\r
             relativeTime{\r
                 future{\r
                     one{"{0} പാദത്തിൽ"}\r
@@ -2545,8 +2557,13 @@ ml{
         general{\r
             lenient{\r
                 "[.․。︒﹒.。]",\r
+                "['ʼ՚᾽᾿’']",\r
+                "[%٪﹪%]",\r
+                "[؉‰]",\r
                 "[\$﹩$$]",\r
                 "[£₤]",\r
+                "[¥¥]",\r
+                "[₩₩]",\r
                 "[₨₹{Rp}{Rs}]",\r
             }\r
         }\r
index 219cf1a..6fd066b 100644 (file)
@@ -21,7 +21,9 @@ mn{
         default{"latn"}\r
         latn{\r
             miscPatterns{\r
-                atLeast{"⩾{0}"}\r
+                approximately{"~{0}"}\r
+                atLeast{"≥{0}"}\r
+                atMost{"≤{0}"}\r
                 range{"{0}–{1}"}\r
             }\r
             patterns{\r
@@ -136,36 +138,36 @@ mn{
                 }\r
                 decimalFormat{\r
                     1000{\r
-                        one{"0мянга"}\r
-                        other{"0мянга"}\r
+                        one{"0 мянга"}\r
+                        other{"0 мянга"}\r
                     }\r
                     10000{\r
-                        one{"00мянга"}\r
-                        other{"00мянга"}\r
+                        one{"00 мянга"}\r
+                        other{"00 мянга"}\r
                     }\r
                     100000{\r
-                        one{"000мянга"}\r
-                        other{"000мянга"}\r
+                        one{"000 мянга"}\r
+                        other{"000 мянга"}\r
                     }\r
                     1000000{\r
-                        one{"0сая"}\r
-                        other{"0сая"}\r
+                        one{"0 сая"}\r
+                        other{"0 сая"}\r
                     }\r
                     10000000{\r
-                        one{"00сая"}\r
-                        other{"00сая"}\r
+                        one{"00 сая"}\r
+                        other{"00 сая"}\r
                     }\r
                     100000000{\r
-                        one{"000сая"}\r
-                        other{"000сая"}\r
+                        one{"000 сая"}\r
+                        other{"000 сая"}\r
                     }\r
                     1000000000{\r
-                        one{"0тэрбум"}\r
-                        other{"0тэрбум"}\r
+                        one{"0 тэрбум"}\r
+                        other{"0 тэрбум"}\r
                     }\r
                     10000000000{\r
-                        one{"00тэрбум"}\r
-                        other{"00тэрбум"}\r
+                        one{"00 тэрбум"}\r
+                        other{"00 тэрбум"}\r
                     }\r
                     100000000000{\r
                         one{"000Т"}\r
@@ -212,7 +214,7 @@ mn{
         minimumGroupingDigits{"1"}\r
         native{"latn"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.94"}\r
     calendar{\r
         generic{\r
             DateTimePatterns{\r
@@ -220,58 +222,58 @@ mn{
                 "HH:mm:ss (z)",\r
                 "HH:mm:ss",\r
                 "HH:mm",\r
-                "EEEE, y 'оны' MM 'сарын' dd",\r
-                "y 'оны' MM 'сарын' dd",\r
-                "y MM d",\r
-                "y-MM-dd",\r
+                "G y 'оны' MMMM'ын' d. cccc 'гараг'",\r
+                "G y 'оны' MM 'сарын' dd",\r
+                "G y 'оны' MMM'ын' d",\r
+                "GGGGG y.MM.dd",\r
+                "{1} {0}",\r
                 "{1} {0}",\r
                 "{1} {0}",\r
                 "{1} {0}",\r
                 "{1} {0}",\r
-                "{1}, {0}",\r
             }\r
             availableFormats{\r
-                Bh{"h B"}\r
-                Bhm{"h:mm B"}\r
-                Bhms{"h:mm:ss B"}\r
+                Bh{"B h 'ц'"}\r
+                Bhm{"B h:mm"}\r
+                Bhms{"B h:mm:ss"}\r
                 E{"ccc"}\r
-                EBhm{"E h:mm B"}\r
-                EBhms{"E h:mm:ss B"}\r
-                EHm{"E HH:mm"}\r
-                EHms{"E HH:mm:ss"}\r
-                Ed{"dd E"}\r
-                Ehm{"E h:mm a"}\r
-                Ehms{"E h:mm:ss a"}\r
-                Gy{"y"}\r
-                GyMMM{"G y MMM"}\r
-                GyMMMEd{"G y MMM d, E"}\r
-                GyMMMd{"G y MMM d"}\r
-                H{"HH"}\r
+                EBhm{"E. B h:mm"}\r
+                EBhms{"E. B h:mm:ss"}\r
+                EHm{"E. HH:mm"}\r
+                EHms{"E. HH:mm:ss"}\r
+                Ed{"dd. E"}\r
+                Ehm{"E. h:mm a"}\r
+                Ehms{"E. h:mm:ss a"}\r
+                Gy{"y"}\r
+                GyMMM{"G y 'оны' MMM"}\r
+                GyMMMEd{"G y 'оны' MMM'ын' d. E"}\r
+                GyMMMd{"G y 'оны' MMM'ын' d"}\r
+                H{"HH 'ц'"}\r
                 Hm{"HH:mm"}\r
                 Hms{"HH:mm:ss"}\r
-                M{"L"}\r
-                MEd{"E, M-d"}\r
+                M{"LLLLL"}\r
+                MEd{"MMMMM/dd. E"}\r
                 MMM{"LLL"}\r
-                MMMEd{"MMM d, E"}\r
-                MMMMd{"MMMM d"}\r
-                MMMd{"MMM d"}\r
-                Md{"M-d"}\r
+                MMMEd{"MMM'ын' d. E"}\r
+                MMMMd{"MMMM'ын' d"}\r
+                MMMd{"MMM'ын' d"}\r
+                Md{"MMMMM/dd"}\r
                 d{"d"}\r
-                h{"h a"}\r
+                h{"h 'ц' a"}\r
                 hm{"h:mm a"}\r
                 hms{"h:mm:ss a"}\r
                 ms{"mm:ss"}\r
                 y{"G y"}\r
                 yyyy{"G y"}\r
-                yyyyM{"GGGGG y-MM"}\r
-                yyyyMEd{"GGGGG y-MM-dd, E"}\r
-                yyyyMMM{"G y MMM"}\r
-                yyyyMMMEd{"G y MMM d, E"}\r
-                yyyyMMMM{"G y MMMM"}\r
-                yyyyMMMd{"G y MMM d"}\r
-                yyyyMd{"GGGGG y-MM-dd"}\r
-                yyyyQQQ{"G y QQQ"}\r
-                yyyyQQQQ{"G y QQQQ"}\r
+                yyyyM{"GGGGG y MMMMM"}\r
+                yyyyMEd{"GGGGG y.MM.dd. E"}\r
+                yyyyMMM{"G y 'оны' MMM"}\r
+                yyyyMMMEd{"G y 'оны' MMM'ын' d. E"}\r
+                yyyyMMMM{"G y 'оны' MMM"}\r
+                yyyyMMMd{"G y 'оны' MMM'ын' d"}\r
+                yyyyMd{"GGGGG y.MM.dd"}\r
+                yyyyQQQ{"G y 'оны' QQQ"}\r
+                yyyyQQQQ{"G y 'оны' QQQQ"}\r
             }\r
             intervalFormats{\r
                 H{\r
@@ -289,26 +291,26 @@ mn{
                     H{"HH–HH v"}\r
                 }\r
                 M{\r
-                    M{"M – M"}\r
+                    M{"MMMMM – MMMMM 'сар'"}\r
                 }\r
                 MEd{\r
-                    M{"E, MM/dd – E, MM/dd"}\r
-                    d{"E, MM/dd – E, MM/dd"}\r
+                    M{"MMMMM/d E – MMMMM/d E"}\r
+                    d{"MMMMM/d E – MMMMM/d E"}\r
                 }\r
                 MMM{\r
-                    M{"MMM – MMM"}\r
+                    M{"MMMMM – MMMMM 'сар'"}\r
                 }\r
                 MMMEd{\r
-                    M{"E, MM/dd – E, MM/dd"}\r
-                    d{"E, MM/dd – E, MM/dd"}\r
+                    M{"MMMMM/d E – MMMMM/d E"}\r
+                    d{"MMMMM/d E – MMMMM/d E"}\r
                 }\r
                 MMMd{\r
-                    M{"MM/d – MM/d"}\r
-                    d{"MMM d–d"}\r
+                    M{"MMMMM/d – MMMMM/d"}\r
+                    d{"MMMMM/d – d"}\r
                 }\r
                 Md{\r
-                    M{"MM/dd–MM/dd"}\r
-                    d{"MM/dd–MM/dd"}\r
+                    M{"MMMMM/d – MMMMM/d"}\r
+                    d{"MMMMM/d – MMMMM/d"}\r
                 }\r
                 d{\r
                     d{"d – d"}\r
@@ -336,51 +338,51 @@ mn{
                     y{"G y–y"}\r
                 }\r
                 yM{\r
-                    M{"GGGGG y-MM – y-MM"}\r
-                    y{"GGGGG y-MM – y-MM"}\r
+                    M{"GGGGG y 'оны' MMMMM–MMMMM 'сар'"}\r
+                    y{"GGGGG y 'оны' MMMMM 'сар' – y 'оны' MMMMM 'сар'"}\r
                 }\r
                 yMEd{\r
-                    M{"GGGGG y-MM-dd, E – y-MM-dd, E"}\r
-                    d{"GGGGG y-MM-dd, E – y-MM-dd, E"}\r
-                    y{"GGGGG y-MM-dd, E – y-MM-dd, E"}\r
+                    M{"GGGGG y 'оны' MMMMM/dd E – MMMMM/dd E"}\r
+                    d{"GGGGG y 'оны' MMMMM/dd E – MMMMM/dd E"}\r
+                    y{"GGGGG y 'оны' MMMMM/dd E – y 'оны' MMMMM/dd E"}\r
                 }\r
                 yMMM{\r
-                    M{"G y MMM–MMM"}\r
-                    y{"G y MMM – y MMM"}\r
+                    M{"G y 'оны' MMMMM – MMMMM 'сар'"}\r
+                    y{"G y 'оны' MMMMM 'сар' – y 'оны' MMMMM 'сар'"}\r
                 }\r
                 yMMMEd{\r
-                    M{"G y MMM d, E – MMM d, E"}\r
-                    d{"G y MMM d, E – MMM d, E"}\r
-                    y{"G y MMM d, E – y MMM d, E"}\r
+                    M{"G y 'оны' MMMMM/dd E – MMMMM/dd E"}\r
+                    d{"G y 'оны' MMMMM/dd E – MMMMM/dd E"}\r
+                    y{"G y 'оны' MMMMM/dd E – y 'оны' MMMMM/dd E"}\r
                 }\r
                 yMMMM{\r
-                    M{"G y MMMM–MMMM"}\r
-                    y{"G y MMMM – y MMMM"}\r
+                    M{"G y 'оны' MMMMM – MMMMM 'сар'"}\r
+                    y{"G y 'оны' MMMMM 'сар' – y 'оны' MMMMM 'сар'"}\r
                 }\r
                 yMMMd{\r
-                    M{"G y MMM d – MMM d"}\r
-                    d{"G y MMM d–d"}\r
-                    y{"G y MMM d – y MMM d"}\r
+                    M{"G y 'оны' MMMMM/dd – MMMMM/dd"}\r
+                    d{"G y 'оны' MMMMM/dd – dd"}\r
+                    y{"G y 'оны' MMMMM/dd – y 'оны' MMMMM/dd"}\r
                 }\r
                 yMd{\r
-                    M{"GGGGG y-MM-dd – y-MM-dd"}\r
-                    d{"GGGGG y-MM-dd – y-MM-dd"}\r
-                    y{"GGGGG y-MM-dd – y-MM-dd"}\r
+                    M{"GGGGG y 'оны' MMMMM/dd – MMMMM/dd"}\r
+                    d{"GGGGG y 'оны' MMMMM/dd – MMMMM/dd"}\r
+                    y{"GGGGG y 'оны' MMMMM/dd – y 'оны' MMMMM/dd"}\r
                 }\r
             }\r
         }\r
         gregorian{\r
             AmPmMarkers{\r
-                "ү.ө",\r
-                "ү.х",\r
+                "ү.ө.",\r
+                "ү.х.",\r
             }\r
             AmPmMarkersAbbr{\r
-                "Ò®Ó¨",\r
-                "ҮХ",\r
+                "Ò¯.Ó©.",\r
+                "Ò¯.Ñ\85.",\r
             }\r
             AmPmMarkersNarrow{\r
-                "үө",\r
-                "үх",\r
+                "ү.ө.",\r
+                "ү.х.",\r
             }\r
             DateTimePatterns{\r
                 "HH:mm:ss (zzzz)",\r
@@ -389,7 +391,7 @@ mn{
                 "HH:mm",\r
                 "y.MM.dd, EEEE",\r
                 "y.MM.dd",\r
-                "y.MM.dd",\r
+                "y 'оны' MMM'ын' d",\r
                 "y.MM.dd",\r
                 "{1} {0}",\r
                 "{1} {0}",\r
@@ -398,56 +400,56 @@ mn{
                 "{1} {0}",\r
             }\r
             appendItems{\r
-                Timezone{"{0} {1}"}\r
+                Timezone{"{0} ({1})"}\r
             }\r
             availableFormats{\r
-                Bh{"B h"}\r
+                Bh{"B h 'ц'"}\r
                 Bhm{"B h:mm"}\r
                 Bhms{"B h:mm:ss"}\r
                 E{"ccc"}\r
-                EBhm{"E, B h:mm"}\r
-                EBhms{"E, B h:mm:ss"}\r
-                EHm{"E HH:mm"}\r
-                EHms{"E HH:mm:ss"}\r
-                Ed{"dd E"}\r
-                Ehm{"E h:mm a"}\r
-                Ehms{"E h:mm:ss a"}\r
+                EBhm{"E. B h:mm"}\r
+                EBhms{"E. B h:mm:ss"}\r
+                EHm{"E. HH:mm"}\r
+                EHms{"E. HH:mm:ss"}\r
+                Ed{"dd. E"}\r
+                Ehm{"E. h:mm a"}\r
+                Ehms{"E. h:mm:ss a"}\r
                 Gy{"G y"}\r
                 GyMMM{"G y 'оны' MMM"}\r
-                GyMMMEd{"G y 'оны' MMM'ын' d, E"}\r
+                GyMMMEd{"G y 'оны' MMM'ын' d. E"}\r
                 GyMMMd{"G y 'оны' MMM'ын' d"}\r
                 H{"HH 'ц'"}\r
                 Hm{"HH:mm"}\r
                 Hms{"HH:mm:ss"}\r
-                Hmsv{"HH:mm:ss v"}\r
-                Hmv{"HH:mm v"}\r
-                M{"L"}\r
-                MEd{"MM/dd, E"}\r
+                Hmsv{"HH:mm:ss (v)"}\r
+                Hmv{"HH:mm (v)"}\r
+                M{"LLLLL"}\r
+                MEd{"MMMMM/dd. E"}\r
                 MMM{"LLL"}\r
-                MMMEd{"MMM'ын' d, E"}\r
+                MMMEd{"MMM'ын' d. E"}\r
                 MMMMW{\r
-                    one{"MMM'ын' W-'р' 'долоо' 'хоног'"}\r
-                    other{"MMM'ын' W-'р' 'долоо' 'хоног'"}\r
+                    one{"MMMM'ын' W-'р' 'долоо' 'хоног'"}\r
+                    other{"MMMM'ын' W-'р' 'долоо' 'хоног'"}\r
                 }\r
-                MMMMd{"MMM'ын' d"}\r
+                MMMMd{"MMMM'ын' d"}\r
                 MMMd{"MMM'ын' d"}\r
-                Md{"MM/dd"}\r
+                Md{"MMMMM/dd"}\r
                 d{"d"}\r
-                h{"h a"}\r
+                h{"h 'ц' a"}\r
                 hm{"h:mm a"}\r
                 hms{"h:mm:ss a"}\r
-                hmsv{"h:mm:ss a v"}\r
-                hmv{"h:mm a v"}\r
+                hmsv{"h:mm:ss a (v)"}\r
+                hmv{"h:mm a (v)"}\r
                 ms{"mm:ss"}\r
                 y{"y"}\r
-                yM{"y M"}\r
-                yMEd{"y.MM.dd, E"}\r
+                yM{"y MMMMM"}\r
+                yMEd{"y.MM.dd. E"}\r
                 yMMM{"y 'оны' MMM"}\r
-                yMMMEd{"y.MM.dd, E"}\r
+                yMMMEd{"y 'оны' MMM'ын' d. E"}\r
                 yMMMM{"y 'оны' MMM"}\r
-                yMMMd{"y.MM.dd"}\r
+                yMMMd{"y 'оны' MMM'ын' d"}\r
                 yMd{"y.MM.dd"}\r
-                yQQQ{"y QQQ"}\r
+                yQQQ{"y 'оны' QQQ"}\r
                 yQQQQ{"y 'оны' QQQQ"}\r
                 yw{\r
                     one{"Y 'оны' w-'р' 'долоо' 'хоног'"}\r
@@ -522,13 +524,13 @@ mn{
                         "Бя",\r
                     }\r
                     wide{\r
-                        "ням",\r
-                        "даваа",\r
-                        "мягмар",\r
-                        "лхагва",\r
-                        "пүрэв",\r
-                        "баасан",\r
-                        "бямба",\r
+                        "Ð\9dям",\r
+                        "Ð\94аваа",\r
+                        "Ð\9cягмар",\r
+                        "Ð\9bхагва",\r
+                        "Ð\9fүрэв",\r
+                        "Ð\91аасан",\r
+                        "Ð\91ямба",\r
                     }\r
                 }\r
             }\r
@@ -562,33 +564,33 @@ mn{
                 stand-alone{\r
                     abbreviated{\r
                         afternoon1{"өдөр"}\r
-                        am{"Ò®Ó¨"}\r
+                        am{"Ò¯.Ó©."}\r
                         evening1{"орой"}\r
                         midnight{"шөнө дунд"}\r
                         morning1{"өглөө"}\r
                         night1{"шөнө"}\r
                         noon{"үд дунд"}\r
-                        pm{"ҮХ"}\r
+                        pm{"Ò¯.Ñ\85."}\r
                     }\r
                     narrow{\r
                         afternoon1{"өдөр"}\r
-                        am{"Ò®Ó¨"}\r
+                        am{"Ò¯.Ó©."}\r
                         evening1{"орой"}\r
                         midnight{"шөнө дунд"}\r
                         morning1{"өглөө"}\r
                         night1{"шөнө"}\r
                         noon{"үд дунд"}\r
-                        pm{"ҮХ"}\r
+                        pm{"Ò¯.Ñ\85."}\r
                     }\r
                     wide{\r
                         afternoon1{"өдөр"}\r
-                        am{"Ò®Ó¨"}\r
+                        am{"Ò¯.Ó©."}\r
                         evening1{"орой"}\r
                         midnight{"шөнө дунд"}\r
                         morning1{"өглөө"}\r
                         night1{"шөнө"}\r
                         noon{"үд дунд"}\r
-                        pm{"ҮХ"}\r
+                        pm{"Ò¯.Ñ\85."}\r
                     }\r
                 }\r
             }\r
@@ -623,33 +625,33 @@ mn{
                     m{"HH:mm – HH:mm"}\r
                 }\r
                 Hmv{\r
-                    H{"HH:mm – HH:mm v"}\r
-                    m{"HH:mm – HH:mm v"}\r
+                    H{"HH:mm – HH:mm (v)"}\r
+                    m{"HH:mm – HH:mm (v)"}\r
                 }\r
                 Hv{\r
-                    H{"HH – HH 'ц' v"}\r
+                    H{"HH – HH 'ц' (v)"}\r
                 }\r
                 M{\r
-                    M{"M – M-'р' 'сар'"}\r
+                    M{"MMMMM – MMMMM 'сар'"}\r
                 }\r
                 MEd{\r
-                    M{"E, MM/dd – E, MM/dd"}\r
-                    d{"E, MM/dd – E, MM/dd"}\r
+                    M{"MMMMM/d E – MMMMM/d E"}\r
+                    d{"MMMMM/d E – MMMMM/d E"}\r
                 }\r
                 MMM{\r
-                    M{"MMM – MMM"}\r
+                    M{"MMMMM – MMMMM 'сар'"}\r
                 }\r
                 MMMEd{\r
-                    M{"E, MM/dd – E, MM/dd"}\r
-                    d{"E, MM/dd – E, MM/dd"}\r
+                    M{"MMMMM/d E – MMMMM/d E"}\r
+                    d{"MMMMM/d E – MMMMM/d E"}\r
                 }\r
                 MMMd{\r
-                    M{"MM/d – MM/d"}\r
-                    d{"MM/d–d"}\r
+                    M{"MMMMM/d – MMMMM/d"}\r
+                    d{"MMMMM/d – d"}\r
                 }\r
                 Md{\r
-                    M{"MM/dd–MM/dd"}\r
-                    d{"MM/dd–MM/dd"}\r
+                    M{"MMMMM/d – MMMMM/d"}\r
+                    d{"MMMMM/d – MMMMM/d"}\r
                 }\r
                 d{\r
                     d{"d – d"}\r
@@ -665,48 +667,48 @@ mn{
                     m{"h:mm – h:mm a"}\r
                 }\r
                 hmv{\r
-                    a{"h:mm a – h:mm a v"}\r
-                    h{"h:mm – h:mm a v"}\r
-                    m{"h:mm – h:mm a v"}\r
+                    a{"h:mm a – h:mm a (v)"}\r
+                    h{"h:mm – h:mm a (v)"}\r
+                    m{"h:mm – h:mm a (v)"}\r
                 }\r
                 hv{\r
-                    a{"h a – h a v"}\r
-                    h{"h – h a v"}\r
+                    a{"h a – h a (v)"}\r
+                    h{"h – h a (v)"}\r
                 }\r
                 y{\r
                     y{"y – y"}\r
                 }\r
                 yM{\r
-                    M{"y/MM–MM"}\r
-                    y{"y/MM – y/MM"}\r
+                    M{"y 'оны' MMMMM–MMMMM 'сар'"}\r
+                    y{"y 'оны' MMMMM 'сар' – y 'оны' MMMMM 'сар'"}\r
                 }\r
                 yMEd{\r
-                    M{"E, y/MM/dd – E, y/MM/dd"}\r
-                    d{"E, y/MM/dd – E, y/MM/dd"}\r
-                    y{"E, y/MM/dd – E, y/MM/dd"}\r
+                    M{"y 'оны' MMMMM/dd E – MMMMM/dd E"}\r
+                    d{"y 'оны' MMMMM/dd E – MMMMM/dd E"}\r
+                    y{"y 'оны' MMMMM/dd E – y 'оны' MMMMM/dd E"}\r
                 }\r
                 yMMM{\r
-                    M{"y/MM–MM"}\r
-                    y{"y/MM – y/MM"}\r
+                    M{"y 'оны' MMMMM – MMMMM 'сар'"}\r
+                    y{"y 'оны' MMMMM 'сар' – y 'оны' MMMMM 'сар'"}\r
                 }\r
                 yMMMEd{\r
-                    M{"E, y/MM/dd – E, y/MM/dd"}\r
-                    d{"E, y/MM/dd – E, y/MM/dd"}\r
-                    y{"E, y/MM/dd – E, y/MM/dd"}\r
+                    M{"y 'оны' MMMMM/dd E – MMMMM/dd E"}\r
+                    d{"y 'оны' MMMMM/dd E – MMMMM/dd E"}\r
+                    y{"y 'оны' MMMMM/dd E – y 'оны' MMMMM/dd E"}\r
                 }\r
                 yMMMM{\r
-                    M{"y 'оны' MM–MM-'р' 'сар'"}\r
-                    y{"y/MM –y/MM"}\r
+                    M{"y 'оны' MMMMM – MMMMM 'сар'"}\r
+                    y{"y 'оны' MMMMM 'сар' – y 'оны' MMMMM 'сар'"}\r
                 }\r
                 yMMMd{\r
-                    M{"y/MM/dd – MM/dd"}\r
-                    d{"y/MM/d–d"}\r
-                    y{"y/MM/dd – y/MM/dd"}\r
+                    M{"y 'оны' MMMMM/dd – MMMMM/dd"}\r
+                    d{"y 'оны' MMMMM/dd – dd"}\r
+                    y{"y 'оны' MMMMM/dd – y 'оны' MMMMM/dd"}\r
                 }\r
                 yMd{\r
-                    M{"y/MM/dd –MM/dd"}\r
-                    d{"y/MM/dd–dd"}\r
-                    y{"y/MM/dd – y/MM/dd"}\r
+                    M{"y 'оны' MMMMM/dd – MMMMM/dd"}\r
+                    d{"y 'оны' MMMMM/dd – MMMMM/dd"}\r
+                    y{"y 'оны' MMMMM/dd – y 'оны' MMMMM/dd"}\r
                 }\r
             }\r
             monthNames{\r
@@ -740,18 +742,18 @@ mn{
                         "XII",\r
                     }\r
                     wide{\r
-                        "Ð\9dэгдүгээр сар",\r
-                        "Хоёрдугаар сар",\r
-                        "Ð\93уравдугаар сар",\r
-                        "Ð\94өрөвдүгээр сар",\r
-                        "Тавдугаар сар",\r
-                        "Ð\97ургаадугаар сар",\r
-                        "Ð\94олдугаар сар",\r
-                        "Ð\9dаймдугаар сар",\r
-                        "Ð\95сдүгээр сар",\r
-                        "Ð\90равдугаар сар",\r
-                        "Ð\90рван нэгдүгээр сар",\r
-                        "Ð\90рван хоёрдугаар сар",\r
+                        "нэгдүгээр сар",\r
+                        "хоёрдугаар сар",\r
+                        "гуравдугаар сар",\r
+                        "дөрөвдүгээр сар",\r
+                        "тавдугаар сар",\r
+                        "зургаадугаар сар",\r
+                        "долоодугаар сар",\r
+                        "наймдугаар сар",\r
+                        "есдүгээр сар",\r
+                        "аравдугаар сар",\r
+                        "арван нэгдүгээр сар",\r
+                        "арван хоёрдугаар сар",\r
                     }\r
                 }\r
                 stand-alone{\r
@@ -790,7 +792,7 @@ mn{
                         "Дөрөвдүгээр сар",\r
                         "Тавдугаар сар",\r
                         "Зургаадугаар сар",\r
-                        "Долдугаар сар",\r
+                        "Ð\94олоодÑ\83гааÑ\80 Ñ\81аÑ\80",\r
                         "Наймдугаар сар",\r
                         "Есдүгээр сар",\r
                         "Аравдугаар сар",\r
@@ -822,10 +824,10 @@ mn{
                 }\r
                 stand-alone{\r
                     abbreviated{\r
-                        "I",\r
-                        "II",\r
-                        "III",\r
-                        "IV",\r
+                        "I улирал",\r
+                        "II улирал",\r
+                        "III улирал",\r
+                        "IV улирал",\r
                     }\r
                     narrow{\r
                         "I",\r
@@ -949,8 +951,8 @@ mn{
             }\r
             relativeTime{\r
                 future{\r
-                    one{"{0} өдөрт"}\r
-                    other{"{0} өдөрт"}\r
+                    one{"{0} өдрийн дараа"}\r
+                    other{"{0} өдрийн дараа"}\r
                 }\r
                 past{\r
                     one{"{0} өдрийн өмнө"}\r
@@ -962,8 +964,8 @@ mn{
             dn{"өдөр"}\r
             relativeTime{\r
                 future{\r
-                    one{"{0} өдөрт"}\r
-                    other{"{0} өдөрт"}\r
+                    one{"{0} өдрийн дараа"}\r
+                    other{"{0} өдрийн дараа"}\r
                 }\r
                 past{\r
                     one{"{0} өдрийн өмнө"}\r
@@ -975,8 +977,8 @@ mn{
             dn{"өдөр"}\r
             relativeTime{\r
                 future{\r
-                    one{"{0} өдөрт"}\r
-                    other{"{0} өдөрт"}\r
+                    one{"{0} өдрийн дараа"}\r
+                    other{"{0} өдрийн дараа"}\r
                 }\r
                 past{\r
                     one{"{0} өдрийн өмнө"}\r
@@ -985,13 +987,13 @@ mn{
             }\r
         }\r
         dayOfYear{\r
-            dn{"Ð\96илийн Ó©Ð´Ó©Ñ\80"}\r
+            dn{"жилийн Ñ\85оног"}\r
         }\r
         dayOfYear-narrow{\r
-            dn{"Ð\96илийн Ó©Ð´Ó©Ñ\80"}\r
+            dn{"жилийн Ñ\85оног"}\r
         }\r
         dayOfYear-short{\r
-            dn{"Ð\96илийн Ó©Ð´Ó©Ñ\80"}\r
+            dn{"жилийн Ñ\85оног"}\r
         }\r
         dayperiod{\r
             dn{"ү.ө./ү.х."}\r
@@ -1019,8 +1021,8 @@ mn{
             }\r
             relativeTime{\r
                 future{\r
-                    one{"{0} баасан гарагт"}\r
-                    other{"{0} баасан гарагт"}\r
+                    one{"{0} баасан гарагийн дараа"}\r
+                    other{"{0} баасан гарагийн дараа"}\r
                 }\r
                 past{\r
                     one{"{0} баасан гарагийн өмнө"}\r
@@ -1030,35 +1032,35 @@ mn{
         }\r
         fri-narrow{\r
             relative{\r
-                "-1"{"өнгөÑ\80Ñ\81өн Ð±Ð°Ð°Ñ\81ан Ð³Ð°Ñ\80аг"}\r
-                "0"{"Ñ\8dнÑ\8d Ð±Ð°Ð°Ñ\81ан Ð³Ð°Ñ\80аг"}\r
-                "1"{"иÑ\80Ñ\8dÑ\85 Ð±Ð°Ð°Ñ\81ан Ð³Ð°Ñ\80аг"}\r
+                "-1"{"өнгөÑ\80Ñ\81өн Ð\91а"}\r
+                "0"{"Ñ\8dнÑ\8d Ð\91а"}\r
+                "1"{"иÑ\80Ñ\8dÑ\85 Ð\91а"}\r
             }\r
             relativeTime{\r
                 future{\r
-                    one{"{0} Ð±Ð°Ð°Ñ\81ан Ð³Ð°Ñ\80агÑ\82"}\r
-                    other{"{0} Ð±Ð°Ð°Ñ\81ан Ð³Ð°Ñ\80агÑ\82"}\r
+                    one{"{0} Ð\91а Ð´Ð°Ñ\80аа"}\r
+                    other{"{0} Ð\91а Ð´Ð°Ñ\80аа"}\r
                 }\r
                 past{\r
-                    one{"{0} Ð±Ð°Ð°Ñ\81ан Ð³Ð°Ñ\80агийн өмнө"}\r
-                    other{"{0} Ð±Ð°Ð°Ñ\81ан Ð³Ð°Ñ\80агийн өмнө"}\r
+                    one{"{0} Ð\91а өмнө"}\r
+                    other{"{0} Ð\91а өмнө"}\r
                 }\r
             }\r
         }\r
         fri-short{\r
             relative{\r
-                "-1"{"өнгөÑ\80Ñ\81өн Ð±Ð°Ð°Ñ\81ан Ð³Ð°Ñ\80аг"}\r
-                "0"{"Ñ\8dнÑ\8d Ð±Ð°Ð°Ñ\81ан Ð³Ð°Ñ\80аг"}\r
-                "1"{"иÑ\80Ñ\8dÑ\85 Ð±Ð°Ð°Ñ\81ан Ð³Ð°Ñ\80аг"}\r
+                "-1"{"өнгөÑ\80Ñ\81өн Ð\91а"}\r
+                "0"{"Ñ\8dнÑ\8d Ð\91а"}\r
+                "1"{"иÑ\80Ñ\8dÑ\85 Ð\91а"}\r
             }\r
             relativeTime{\r
                 future{\r
-                    one{"{0} Ð±Ð°Ð°Ñ\81ан Ð³Ð°Ñ\80агÑ\82"}\r
-                    other{"{0} Ð±Ð°Ð°Ñ\81ан Ð³Ð°Ñ\80агÑ\82"}\r
+                    one{"{0} Ð\91а Ð´Ð°Ñ\80аа"}\r
+                    other{"{0} Ð\91а Ð´Ð°Ñ\80аа"}\r
                 }\r
                 past{\r
-                    one{"{0} Ð±Ð°Ð°Ñ\81ан Ð³Ð°Ñ\80агийн өмнө"}\r
-                    other{"{0} Ð±Ð°Ð°Ñ\81ан Ð³Ð°Ñ\80агийн өмнө"}\r
+                    one{"{0} Ð\91а өмнө"}\r
+                    other{"{0} Ð\91а өмнө"}\r
                 }\r
             }\r
         }\r
@@ -1069,8 +1071,8 @@ mn{
             }\r
             relativeTime{\r
                 future{\r
-                    one{"{0} цагт"}\r
-                    other{"{0} цагт"}\r
+                    one{"{0} цагийн дараа"}\r
+                    other{"{0} цагийн дараа"}\r
                 }\r
                 past{\r
                     one{"{0} цагийн өмнө"}\r
@@ -1079,28 +1081,28 @@ mn{
             }\r
         }\r
         hour-narrow{\r
-            dn{"ц."}\r
+            dn{"ц"}\r
             relativeTime{\r
                 future{\r
-                    one{"{0} цагт"}\r
-                    other{"{0} цагт"}\r
+                    one{"{0} ц дараа"}\r
+                    other{"{0} ц дараа"}\r
                 }\r
                 past{\r
-                    one{"{0} ц. өмнө"}\r
-                    other{"{0} ц. өмнө"}\r
+                    one{"{0} ц өмнө"}\r
+                    other{"{0} ц өмнө"}\r
                 }\r
             }\r
         }\r
         hour-short{\r
-            dn{"ц."}\r
+            dn{"ц"}\r
             relativeTime{\r
                 future{\r
-                    one{"{0} цагт"}\r
-                    other{"{0} цагт"}\r
+                    one{"{0} ц дараа"}\r
+                    other{"{0} ц дараа"}\r
                 }\r
                 past{\r
-                    one{"{0} ц. өмнө"}\r
-                    other{"{0} ц. өмнө"}\r
+                    one{"{0} ц өмнө"}\r
+                    other{"{0} ц өмнө"}\r
                 }\r
             }\r
         }\r
@@ -1111,8 +1113,8 @@ mn{
             }\r
             relativeTime{\r
                 future{\r
-                    one{"{0} Ð¼Ð¸Ð½Ñ\83Ñ\82Ñ\8bн Ð´Ð¾Ñ\82оÑ\80"}\r
-                    other{"{0} Ð¼Ð¸Ð½Ñ\83Ñ\82Ñ\8bн Ð´Ð¾Ñ\82оÑ\80"}\r
+                    one{"{0} Ð¼Ð¸Ð½Ñ\83Ñ\82Ñ\8bн Ð´Ð°Ñ\80аа"}\r
+                    other{"{0} Ð¼Ð¸Ð½Ñ\83Ñ\82Ñ\8bн Ð´Ð°Ñ\80аа"}\r
                 }\r
                 past{\r
                     one{"{0} минутын өмнө"}\r
@@ -1121,28 +1123,28 @@ mn{
             }\r
         }\r
         minute-narrow{\r
-            dn{"мин."}\r
+            dn{"мин"}\r
             relativeTime{\r
                 future{\r
-                    one{"{0} мин. дотор"}\r
-                    other{"{0} мин. дотор"}\r
+                    one{"{0} мин дараа"}\r
+                    other{"{0} мин дараа"}\r
                 }\r
                 past{\r
-                    one{"{0} мин. өмнө"}\r
-                    other{"{0} мин. өмнө"}\r
+                    one{"{0} мин өмнө"}\r
+                    other{"{0} мин өмнө"}\r
                 }\r
             }\r
         }\r
         minute-short{\r
-            dn{"мин."}\r
+            dn{"мин"}\r
             relativeTime{\r
                 future{\r
-                    one{"{0} мин. дотор"}\r
-                    other{"{0} мин. дотор"}\r
+                    one{"{0} мин дараа"}\r
+                    other{"{0} мин дараа"}\r
                 }\r
                 past{\r
-                    one{"{0} мин. өмнө"}\r
-                    other{"{0} мин. өмнө"}\r
+                    one{"{0} мин өмнө"}\r
+                    other{"{0} мин өмнө"}\r
                 }\r
             }\r
         }\r
@@ -1154,8 +1156,8 @@ mn{
             }\r
             relativeTime{\r
                 future{\r
-                    one{"{0} даваа гарагт"}\r
-                    other{"{0} даваа гарагт"}\r
+                    one{"{0} даваа гарагийн дараа"}\r
+                    other{"{0} даваа гарагийн дараа"}\r
                 }\r
                 past{\r
                     one{"{0} даваа гарагийн өмнө"}\r
@@ -1165,35 +1167,35 @@ mn{
         }\r
         mon-narrow{\r
             relative{\r
-                "-1"{"өнгөÑ\80Ñ\81өн Ð´Ð°Ð²Ð°а"}\r
-                "0"{"Ñ\8dнÑ\8d Ð´Ð°Ð²Ð°а"}\r
-                "1"{"иÑ\80Ñ\8dÑ\85 Ð´Ð°Ð²Ð°а"}\r
+                "-1"{"өнгөÑ\80Ñ\81өн Ð\94а"}\r
+                "0"{"Ñ\8dнÑ\8d Ð\94а"}\r
+                "1"{"иÑ\80Ñ\8dÑ\85 Ð\94а"}\r
             }\r
             relativeTime{\r
                 future{\r
-                    one{"{0} Ð´Ð°Ð²Ð°Ð° Ð³Ð°Ñ\80агÑ\82"}\r
-                    other{"{0} Ð´Ð°Ð²Ð°Ð° Ð³Ð°Ñ\80агÑ\82"}\r
+                    one{"{0} Ð\94а Ð´Ð°Ñ\80аа"}\r
+                    other{"{0} Ð\94а Ð´Ð°Ñ\80аа"}\r
                 }\r
                 past{\r
-                    one{"{0} Ð´Ð°Ð²Ð°Ð° Ð³Ð°Ñ\80агийн өмнө"}\r
-                    other{"{0} Ð´Ð°Ð²Ð°Ð° Ð³Ð°Ñ\80агийн өмнө"}\r
+                    one{"{0} Ð\94а өмнө"}\r
+                    other{"{0} Ð\94а өмнө"}\r
                 }\r
             }\r
         }\r
         mon-short{\r
             relative{\r
-                "-1"{"өнгөÑ\80Ñ\81өн Ð´Ð°Ð²Ð°а"}\r
-                "0"{"Ñ\8dнÑ\8d Ð´Ð°Ð²Ð°Ð° Ð³Ð°Ñ\80аг"}\r
-                "1"{"иÑ\80Ñ\8dÑ\85 Ð´Ð°Ð²Ð°Ð° Ð³Ð°Ñ\80аг"}\r
+                "-1"{"өнгөÑ\80Ñ\81өн Ð\94а"}\r
+                "0"{"Ñ\8dнÑ\8d Ð\94а"}\r
+                "1"{"иÑ\80Ñ\8dÑ\85 Ð\94а"}\r
             }\r
             relativeTime{\r
                 future{\r
-                    one{"{0} Ð´Ð°Ð²Ð°Ð° Ð³Ð°Ñ\80агÑ\82"}\r
-                    other{"{0} Ð´Ð°Ð²Ð°Ð° Ð³Ð°Ñ\80агÑ\82"}\r
+                    one{"{0} Ð\94а Ð´Ð°Ñ\80аа"}\r
+                    other{"{0} Ð\94а Ð´Ð°Ñ\80аа"}\r
                 }\r
                 past{\r
-                    one{"{0} Ð´Ð°Ð²Ð°Ð° Ð³Ð°Ñ\80агийн өмнө"}\r
-                    other{"{0} Ð´Ð°Ð²Ð°Ð° Ð³Ð°Ñ\80агийн өмнө"}\r
+                    one{"{0} Ð\94а өмнө"}\r
+                    other{"{0} Ð\94а өмнө"}\r
                 }\r
             }\r
         }\r
@@ -1206,8 +1208,8 @@ mn{
             }\r
             relativeTime{\r
                 future{\r
-                    one{"{0} сард"}\r
-                    other{"{0} сард"}\r
+                    one{"{0} сарын дараа"}\r
+                    other{"{0} сарын дараа"}\r
                 }\r
                 past{\r
                     one{"{0} сарын өмнө"}\r
@@ -1219,8 +1221,8 @@ mn{
             dn{"сар"}\r
             relativeTime{\r
                 future{\r
-                    one{"+{0} сард"}\r
-                    other{"+{0} сард"}\r
+                    one{"{0} сарын дараа"}\r
+                    other{"{0} сарын дараа"}\r
                 }\r
                 past{\r
                     one{"{0} сарын өмнө"}\r
@@ -1232,8 +1234,8 @@ mn{
             dn{"сар"}\r
             relativeTime{\r
                 future{\r
-                    one{"{0} сард"}\r
-                    other{"{0} сард"}\r
+                    one{"{0} сарын дараа"}\r
+                    other{"{0} сарын дараа"}\r
                 }\r
                 past{\r
                     one{"{0} сарын өмнө"}\r
@@ -1250,8 +1252,8 @@ mn{
             }\r
             relativeTime{\r
                 future{\r
-                    one{"{0} Ñ\83лиÑ\80алд"}\r
-                    other{"{0} Ñ\83лиÑ\80алд"}\r
+                    one{"{0} Ñ\83лиÑ\80лÑ\8bн Ð´Ð°Ñ\80аа"}\r
+                    other{"{0} Ñ\83лиÑ\80лÑ\8bн Ð´Ð°Ñ\80аа"}\r
                 }\r
                 past{\r
                     one{"{0} улирлын өмнө"}\r
@@ -1263,8 +1265,8 @@ mn{
             dn{"улирал"}\r
             relativeTime{\r
                 future{\r
-                    one{"{0} Ñ\83лиÑ\80алд"}\r
-                    other{"{0} Ñ\83лиÑ\80алд"}\r
+                    one{"{0} Ñ\83лиÑ\80лÑ\8bн Ð´Ð°Ñ\80аа"}\r
+                    other{"{0} Ñ\83лиÑ\80лÑ\8bн Ð´Ð°Ñ\80аа"}\r
                 }\r
                 past{\r
                     one{"{0} улирлын өмнө"}\r
@@ -1276,8 +1278,8 @@ mn{
             dn{"улирал"}\r
             relativeTime{\r
                 future{\r
-                    one{"{0} Ñ\83лиÑ\80алд"}\r
-                    other{"{0} Ñ\83лиÑ\80алд"}\r
+                    one{"{0} Ñ\83лиÑ\80лÑ\8bн Ð´Ð°Ñ\80аа"}\r
+                    other{"{0} Ñ\83лиÑ\80лÑ\8bн Ð´Ð°Ñ\80аа"}\r
                 }\r
                 past{\r
                     one{"{0} улирлын өмнө"}\r
@@ -1293,8 +1295,8 @@ mn{
             }\r
             relativeTime{\r
                 future{\r
-                    one{"{0} бямба гарагт"}\r
-                    other{"{0} бямба гарагт"}\r
+                    one{"{0} бямба гарагийн дараа"}\r
+                    other{"{0} бямба гарагийн дараа"}\r
                 }\r
                 past{\r
                     one{"{0} бямба гарагийн өмнө"}\r
@@ -1304,35 +1306,35 @@ mn{
         }\r
         sat-narrow{\r
             relative{\r
-                "-1"{"өнгөÑ\80Ñ\81өн Ð±Ñ\8fмба"}\r
-                "0"{"Ñ\8dнÑ\8d Ð±Ñ\8fмба"}\r
-                "1"{"иÑ\80Ñ\8dÑ\85 Ð±Ñ\8fмба"}\r
+                "-1"{"өнгөÑ\80Ñ\81өн Ð\91Ñ\8f"}\r
+                "0"{"Ñ\8dнÑ\8d Ð\91Ñ\8f"}\r
+                "1"{"иÑ\80Ñ\8dÑ\85 Ð\91Ñ\8f"}\r
             }\r
             relativeTime{\r
                 future{\r
-                    one{"{0} Ð±Ñ\8fмба Ð³Ð°Ñ\80агÑ\82"}\r
-                    other{"{0} Ð±Ñ\8fмба Ð³Ð°Ñ\80агÑ\82"}\r
+                    one{"{0} Ð\91Ñ\8f Ð´Ð°Ñ\80аа"}\r
+                    other{"{0} Ð\91Ñ\8f Ð´Ð°Ñ\80аа"}\r
                 }\r
                 past{\r
-                    one{"{0} Ð±Ñ\8fмба Ð³Ð°Ñ\80агийн өмнө"}\r
-                    other{"{0} Ð±Ñ\8fмба Ð³Ð°Ñ\80агийн өмнө"}\r
+                    one{"{0} Ð\91Ñ\8f өмнө"}\r
+                    other{"{0} Ð\91Ñ\8f өмнө"}\r
                 }\r
             }\r
         }\r
         sat-short{\r
             relative{\r
-                "-1"{"өнгөÑ\80Ñ\81өн Ð±Ñ\8fмба"}\r
-                "0"{"Ñ\8dнÑ\8d Ð±Ñ\8fмба"}\r
-                "1"{"иÑ\80Ñ\8dÑ\85 Ð±Ñ\8fмба"}\r
+                "-1"{"өнгөÑ\80Ñ\81өн Ð\91Ñ\8f"}\r
+                "0"{"Ñ\8dнÑ\8d Ð\91Ñ\8f"}\r
+                "1"{"иÑ\80Ñ\8dÑ\85 Ð\91Ñ\8f"}\r
             }\r
             relativeTime{\r
                 future{\r
-                    one{"{0} Ð±Ñ\8fмба Ð³Ð°Ñ\80агÑ\82"}\r
-                    other{"{0} Ð±Ñ\8fмба Ð³Ð°Ñ\80агÑ\82"}\r
+                    one{"{0} Ð\91Ñ\8f Ð´Ð°Ñ\80аа"}\r
+                    other{"{0} Ð\91Ñ\8f Ð´Ð°Ñ\80аа"}\r
                 }\r
                 past{\r
-                    one{"{0} Ð±Ñ\8fмба Ð³Ð°Ñ\80агийн өмнө"}\r
-                    other{"{0} Ð±Ñ\8fмба Ð³Ð°Ñ\80агийн өмнө"}\r
+                    one{"{0} Ð\91Ñ\8f өмнө"}\r
+                    other{"{0} Ð\91Ñ\8f өмнө"}\r
                 }\r
             }\r
         }\r
@@ -1343,8 +1345,8 @@ mn{
             }\r
             relativeTime{\r
                 future{\r
-                    one{"{0} Ñ\81екÑ\83ндÑ\8bн Ð´Ð¾Ñ\82оÑ\80"}\r
-                    other{"{0} Ñ\81екÑ\83ндÑ\8bн Ð´Ð¾Ñ\82оÑ\80"}\r
+                    one{"{0} Ñ\81екÑ\83ндÑ\8bн Ð´Ð°Ñ\80аа"}\r
+                    other{"{0} Ñ\81екÑ\83ндÑ\8bн Ð´Ð°Ñ\80аа"}\r
                 }\r
                 past{\r
                     one{"{0} секундын өмнө"}\r
@@ -1353,28 +1355,28 @@ mn{
             }\r
         }\r
         second-narrow{\r
-            dn{"сек."}\r
+            dn{"сек"}\r
             relativeTime{\r
                 future{\r
-                    one{"{0} сек. дотор"}\r
-                    other{"{0} сек. дотор"}\r
+                    one{"{0} сек дараа"}\r
+                    other{"{0} сек дараа"}\r
                 }\r
                 past{\r
-                    one{"{0} сек. өмнө"}\r
-                    other{"{0} сек. өмнө"}\r
+                    one{"{0} сек өмнө"}\r
+                    other{"{0} сек өмнө"}\r
                 }\r
             }\r
         }\r
         second-short{\r
-            dn{"сек."}\r
+            dn{"сек"}\r
             relativeTime{\r
                 future{\r
-                    one{"{0} сек. дотор"}\r
-                    other{"{0} сек. дотор"}\r
+                    one{"{0} сек дараа"}\r
+                    other{"{0} сек дараа"}\r
                 }\r
                 past{\r
-                    one{"{0} сек. өмнө"}\r
-                    other{"{0} сек. өмнө"}\r
+                    one{"{0} сек өмнө"}\r
+                    other{"{0} сек өмнө"}\r
                 }\r
             }\r
         }\r
@@ -1386,8 +1388,8 @@ mn{
             }\r
             relativeTime{\r
                 future{\r
-                    one{"{0} ням гарагт"}\r
-                    other{"{0} ням гарагт"}\r
+                    one{"{0} ням гарагийн дараа"}\r
+                    other{"{0} ням гарагийн дараа"}\r
                 }\r
                 past{\r
                     one{"{0} ням гарагийн өмнө"}\r
@@ -1397,35 +1399,35 @@ mn{
         }\r
         sun-narrow{\r
             relative{\r
-                "-1"{"өнгөÑ\80Ñ\81өн Ð½Ñ\8fм."}\r
-                "0"{"Ñ\8dнÑ\8d Ð½Ñ\8fм"}\r
-                "1"{"иÑ\80Ñ\8dÑ\85 Ð½Ñ\8fм."}\r
+                "-1"{"өнгөÑ\80Ñ\81өн Ð\9dÑ\8f"}\r
+                "0"{"Ñ\8dнÑ\8d Ð\9dÑ\8f"}\r
+                "1"{"иÑ\80Ñ\8dÑ\85 Ð\9dÑ\8f"}\r
             }\r
             relativeTime{\r
                 future{\r
-                    one{"{0} Ð½Ñ\8fм Ð³Ð°Ñ\80агÑ\82"}\r
-                    other{"{0} Ð½Ñ\8fм Ð³Ð°Ñ\80агÑ\82"}\r
+                    one{"{0} Ð\9dÑ\8f Ð´Ð°Ñ\80аа"}\r
+                    other{"{0} Ð\9dÑ\8f Ð´Ð°Ñ\80аа"}\r
                 }\r
                 past{\r
-                    one{"{0} Ð½Ñ\8fм Ð³Ð°Ñ\80агийн өмнө"}\r
-                    other{"{0} Ð½Ñ\8fм Ð³Ð°Ñ\80агийн өмнө"}\r
+                    one{"{0} Ð\9dÑ\8f өмнө"}\r
+                    other{"{0} Ð\9dÑ\8f өмнө"}\r
                 }\r
             }\r
         }\r
         sun-short{\r
             relative{\r
-                "-1"{"өнгөÑ\80Ñ\81өн Ð½Ñ\8fм."}\r
-                "0"{"Ñ\8dнÑ\8d Ð½Ñ\8fм."}\r
-                "1"{"иÑ\80Ñ\8dÑ\85 Ð½Ñ\8fм."}\r
+                "-1"{"өнгөÑ\80Ñ\81өн Ð\9dÑ\8f"}\r
+                "0"{"Ñ\8dнÑ\8d Ð\9dÑ\8f"}\r
+                "1"{"иÑ\80Ñ\8dÑ\85 Ð\9dÑ\8f"}\r
             }\r
             relativeTime{\r
                 future{\r
-                    one{"{0} Ð½Ñ\8fм Ð³Ð°Ñ\80агÑ\82"}\r
-                    other{"{0} Ð½Ñ\8fм Ð³Ð°Ñ\80агÑ\82"}\r
+                    one{"{0} Ð\9dÑ\8f Ð´Ð°Ñ\80аа"}\r
+                    other{"{0} Ð\9dÑ\8f Ð´Ð°Ñ\80аа"}\r
                 }\r
                 past{\r
-                    one{"{0} Ð½Ñ\8fм Ð³Ð°Ñ\80агийн өмнө"}\r
-                    other{"{0} Ð½Ñ\8fм Ð³Ð°Ñ\80агийн өмнө"}\r
+                    one{"{0} Ð\9dÑ\8f өмнө"}\r
+                    other{"{0} Ð\9dÑ\8f өмнө"}\r
                 }\r
             }\r
         }\r
@@ -1437,8 +1439,8 @@ mn{
             }\r
             relativeTime{\r
                 future{\r
-                    one{"{0} пүрэв гарагт"}\r
-                    other{"{0} пүрэв гарагт"}\r
+                    one{"{0} пүрэв гарагийн дараа"}\r
+                    other{"{0} пүрэв гарагийн дараа"}\r
                 }\r
                 past{\r
                     one{"{0} пүрэв гарагийн өмнө"}\r
@@ -1448,35 +1450,35 @@ mn{
         }\r
         thu-narrow{\r
             relative{\r
-                "-1"{"өнгөÑ\80Ñ\81өн Ð¿ү"}\r
-                "0"{"Ñ\8dнÑ\8d Ð¿ү"}\r
-                "1"{"иÑ\80Ñ\8dÑ\85 Ð¿ү"}\r
+                "-1"{"өнгөÑ\80Ñ\81өн Ð\9fү"}\r
+                "0"{"Ñ\8dнÑ\8d Ð\9fү"}\r
+                "1"{"иÑ\80Ñ\8dÑ\85 Ð\9fү"}\r
             }\r
             relativeTime{\r
                 future{\r
-                    one{"{0} Ð¿Ò¯Ñ\80Ñ\8dв Ð³Ð°Ñ\80агÑ\82"}\r
-                    other{"{0} Ð¿Ò¯Ñ\80Ñ\8dв Ð³Ð°Ñ\80агÑ\82"}\r
+                    one{"{0} Ð\9fÒ¯ Ð´Ð°Ñ\80аа"}\r
+                    other{"{0} Ð\9fÒ¯ Ð´Ð°Ñ\80аа"}\r
                 }\r
                 past{\r
-                    one{"{0} Ð¿Ò¯Ñ\80Ñ\8dв Ð³Ð°Ñ\80агийн өмнө"}\r
-                    other{"{0} Ð¿Ò¯Ñ\80Ñ\8dв Ð³Ð°Ñ\80агийн өмнө"}\r
+                    one{"{0} Ð\9fÒ¯ өмнө"}\r
+                    other{"{0} Ð\9fÒ¯ өмнө"}\r
                 }\r
             }\r
         }\r
         thu-short{\r
             relative{\r
-                "-1"{"өнгөÑ\80Ñ\81өн Ð¿Ò¯Ñ\80Ñ\8dв"}\r
-                "0"{"Ñ\8dнÑ\8d Ð¿Ò¯Ñ\80Ñ\8dв"}\r
-                "1"{"иÑ\80Ñ\8dÑ\85 Ð¿Ò¯Ñ\80Ñ\8dв"}\r
+                "-1"{"өнгөÑ\80Ñ\81өн Ð\9fÒ¯"}\r
+                "0"{"Ñ\8dнÑ\8d Ð\9fÒ¯"}\r
+                "1"{"иÑ\80Ñ\8dÑ\85 Ð\9fÒ¯"}\r
             }\r
             relativeTime{\r
                 future{\r
-                    one{"{0} Ð¿Ò¯Ñ\80Ñ\8dв Ð³Ð°Ñ\80агÑ\82"}\r
-                    other{"{0} Ð¿Ò¯Ñ\80Ñ\8dв Ð³Ð°Ñ\80агÑ\82"}\r
+                    one{"{0} Ð\9fÒ¯ Ð´Ð°Ñ\80аа"}\r
+                    other{"{0} Ð\9fÒ¯ Ð´Ð°Ñ\80аа"}\r
                 }\r
                 past{\r
-                    one{"{0} Ð¿Ò¯Ñ\80Ñ\8dв Ð³Ð°Ñ\80агийн өмнө"}\r
-                    other{"{0} Ð¿Ò¯Ñ\80Ñ\8dв Ð³Ð°Ñ\80агийн өмнө"}\r
+                    one{"{0} Ð\9fÒ¯ өмнө"}\r
+                    other{"{0} Ð\9fÒ¯ өмнө"}\r
                 }\r
             }\r
         }\r
@@ -1488,8 +1490,8 @@ mn{
             }\r
             relativeTime{\r
                 future{\r
-                    one{"{0} мягмар гарагт"}\r
-                    other{"{0} мягмар гарагт"}\r
+                    one{"{0} мягмар гарагийн дараа"}\r
+                    other{"{0} мягмар гарагийн дараа"}\r
                 }\r
                 past{\r
                     one{"{0} мягмар гарагийн өмнө"}\r
@@ -1499,35 +1501,35 @@ mn{
         }\r
         tue-narrow{\r
             relative{\r
-                "-1"{"өнгөÑ\80Ñ\81өн Ð¼Ñ\8fгмаÑ\80"}\r
-                "0"{"Ñ\8dнÑ\8d Ð¼Ñ\8fгмаÑ\80"}\r
-                "1"{"иÑ\80Ñ\8dÑ\85 Ð¼Ñ\8fгмаÑ\80"}\r
+                "-1"{"өнгөÑ\80Ñ\81өн Ð\9cÑ\8f"}\r
+                "0"{"Ñ\8dнÑ\8d Ð\9cÑ\8f"}\r
+                "1"{"иÑ\80Ñ\8dÑ\85 Ð\9cÑ\8f"}\r
             }\r
             relativeTime{\r
                 future{\r
-                    one{"{0} Ð¼Ñ\8fгмаÑ\80 Ð³Ð°Ñ\80агÑ\82"}\r
-                    other{"{0} Ð¼Ñ\8fгмаÑ\80 Ð³Ð°Ñ\80агÑ\82"}\r
+                    one{"{0} Ð\9cÑ\8f Ð´Ð°Ñ\80аа"}\r
+                    other{"{0} Ð\9cÑ\8f Ð´Ð°Ñ\80аа"}\r
                 }\r
                 past{\r
-                    one{"{0} Ð¼Ñ\8fгмаÑ\80 Ð³Ð°Ñ\80агийн өмнө"}\r
-                    other{"{0} Ð¼Ñ\8fгмаÑ\80 Ð³Ð°Ñ\80агийн өмнө"}\r
+                    one{"{0} Ð\9cÑ\8f өмнө"}\r
+                    other{"{0} Ð\9cÑ\8f өмнө"}\r
                 }\r
             }\r
         }\r
         tue-short{\r
             relative{\r
-                "-1"{"өнгөÑ\80Ñ\81өн Ð¼Ñ\8fгмаÑ\80"}\r
-                "0"{"Ñ\8dнÑ\8d Ð¼Ñ\8fгмаÑ\80"}\r
-                "1"{"иÑ\80Ñ\8dÑ\85 Ð¼Ñ\8fгмаÑ\80"}\r
+                "-1"{"өнгөÑ\80Ñ\81өн Ð\9cÑ\8f"}\r
+                "0"{"Ñ\8dнÑ\8d Ð\9cÑ\8f"}\r
+                "1"{"иÑ\80Ñ\8dÑ\85 Ð\9cÑ\8f"}\r
             }\r
             relativeTime{\r
                 future{\r
-                    one{"{0} Ð¼Ñ\8fгмаÑ\80 Ð³Ð°Ñ\80агÑ\82"}\r
-                    other{"{0} Ð¼Ñ\8fгмаÑ\80 Ð³Ð°Ñ\80агÑ\82"}\r
+                    one{"{0} Ð\9cÑ\8f Ð´Ð°Ñ\80аа"}\r
+                    other{"{0} Ð\9cÑ\8f Ð´Ð°Ñ\80аа"}\r
                 }\r
                 past{\r
-                    one{"{0} Ð¼Ñ\8fгмаÑ\80 Ð³Ð°Ñ\80агийн өмнө"}\r
-                    other{"{0} Ð¼Ñ\8fгмаÑ\80 Ð³Ð°Ñ\80агийн өмнө"}\r
+                    one{"{0} Ð\9cÑ\8f өмнө"}\r
+                    other{"{0} Ð\9cÑ\8f өмнө"}\r
                 }\r
             }\r
         }\r
@@ -1539,8 +1541,8 @@ mn{
             }\r
             relativeTime{\r
                 future{\r
-                    one{"{0} лхагва гарагт"}\r
-                    other{"{0} лхагва гарагт"}\r
+                    one{"{0} лхагва гарагийн дараа"}\r
+                    other{"{0} лхагва гарагийн дараа"}\r
                 }\r
                 past{\r
                     one{"{0} лхагва гарагийн өмнө"}\r
@@ -1550,35 +1552,35 @@ mn{
         }\r
         wed-narrow{\r
             relative{\r
-                "-1"{"өнгөÑ\80Ñ\81өн Ð»ха"}\r
-                "0"{"Ñ\8dнÑ\8d Ð»ха"}\r
-                "1"{"иÑ\80Ñ\8dÑ\85 Ð»ха"}\r
+                "-1"{"өнгөÑ\80Ñ\81өн Ð\9bха"}\r
+                "0"{"Ñ\8dнÑ\8d Ð\9bха"}\r
+                "1"{"иÑ\80Ñ\8dÑ\85 Ð\9bха"}\r
             }\r
             relativeTime{\r
                 future{\r
-                    one{"{0} Ð»Ñ\85агва Ð³Ð°Ñ\80агÑ\82"}\r
-                    other{"{0} Ð»Ñ\85агва Ð³Ð°Ñ\80агÑ\82"}\r
+                    one{"{0} Ð\9bÑ\85а Ð´Ð°Ñ\80аа"}\r
+                    other{"{0} Ð\9bÑ\85а Ð´Ð°Ñ\80аа"}\r
                 }\r
                 past{\r
-                    one{"{0} Ð»Ñ\85агва Ð³Ð°Ñ\80агийн өмнө"}\r
-                    other{"{0} Ð»Ñ\85агва Ð³Ð°Ñ\80агийн өмнө"}\r
+                    one{"{0} Ð\9bÑ\85а өмнө"}\r
+                    other{"{0} Ð\9bÑ\85а өмнө"}\r
                 }\r
             }\r
         }\r
         wed-short{\r
             relative{\r
-                "-1"{"өнгөÑ\80Ñ\81өн Ð»Ñ\85агва"}\r
-                "0"{"Ñ\8dнÑ\8d Ð»Ñ\85агва"}\r
-                "1"{"иÑ\80Ñ\8dÑ\85 Ð»Ñ\85агва"}\r
+                "-1"{"өнгөÑ\80Ñ\81өн Ð\9bÑ\85а"}\r
+                "0"{"Ñ\8dнÑ\8d Ð\9bÑ\85а"}\r
+                "1"{"иÑ\80Ñ\8dÑ\85 Ð\9bÑ\85а"}\r
             }\r
             relativeTime{\r
                 future{\r
-                    one{"{0} Ð»Ñ\85агва Ð³Ð°Ñ\80агÑ\82"}\r
-                    other{"{0} Ð»Ñ\85агва Ð³Ð°Ñ\80агÑ\82"}\r
+                    one{"{0} Ð\9bÑ\85а Ð´Ð°Ñ\80аа"}\r
+                    other{"{0} Ð\9bÑ\85а Ð´Ð°Ñ\80аа"}\r
                 }\r
                 past{\r
-                    one{"{0} Ð»Ñ\85агва Ð³Ð°Ñ\80агийн өмнө"}\r
-                    other{"{0} Ð»Ñ\85агва Ð³Ð°Ñ\80агийн өмнө"}\r
+                    one{"{0} Ð\9bÑ\85а өмнө"}\r
+                    other{"{0} Ð\9bÑ\85а өмнө"}\r
                 }\r
             }\r
         }\r
@@ -1589,25 +1591,25 @@ mn{
                 "0"{"энэ долоо хоног"}\r
                 "1"{"ирэх долоо хоног"}\r
             }\r
-            relativePeriod{"{0} дэх долоо хоног"}\r
+            relativePeriod{"{0} долоо хоног"}\r
             relativeTime{\r
                 future{\r
-                    one{"{0} 7 хоногт"}\r
-                    other{"{0} 7 хоногт"}\r
+                    one{"{0} долоо хоногийн дараа"}\r
+                    other{"{0} долоо хоногийн дараа"}\r
                 }\r
                 past{\r
-                    one{"{0} 7 хоногийн өмнө"}\r
-                    other{"{0} 7 хоногийн өмнө"}\r
+                    one{"{0} долоо хоногийн өмнө"}\r
+                    other{"{0} долоо хоногийн өмнө"}\r
                 }\r
             }\r
         }\r
         week-narrow{\r
-            dn{"7х"}\r
-            relativePeriod{"{0} дэх долоо хоног"}\r
+            dn{"7 хоног"}\r
+            relativePeriod{"{0}-н 7 хоног"}\r
             relativeTime{\r
                 future{\r
-                    one{"{0} 7 хоногт"}\r
-                    other{"{0} 7 хоногт"}\r
+                    one{"{0} 7 хоногийн дараа"}\r
+                    other{"{0} 7 хоногийн дараа"}\r
                 }\r
                 past{\r
                     one{"{0} 7 хоногийн өмнө"}\r
@@ -1616,12 +1618,12 @@ mn{
             }\r
         }\r
         week-short{\r
-            dn{"7х"}\r
-            relativePeriod{"{0} дэх долоо хоног"}\r
+            dn{"7 хоног"}\r
+            relativePeriod{"{0}-н 7 хоног"}\r
             relativeTime{\r
                 future{\r
-                    one{"{0} 7 хоногт"}\r
-                    other{"{0} 7 хоногт"}\r
+                    one{"{0} 7 хоногийн дараа"}\r
+                    other{"{0} 7 хоногийн дараа"}\r
                 }\r
                 past{\r
                     one{"{0} 7 хоногийн өмнө"}\r
@@ -1630,13 +1632,13 @@ mn{
             }\r
         }\r
         weekOfMonth{\r
-            dn{"Сарын долоо хоног"}\r
+            dn{"сарын долоо хоног"}\r
         }\r
         weekOfMonth-narrow{\r
-            dn{"Сарын долоо хоног"}\r
+            dn{"сарын 7 хоног"}\r
         }\r
         weekOfMonth-short{\r
-            dn{"Сарын долоо хоног"}\r
+            dn{"сарын 7 хоног"}\r
         }\r
         weekday{\r
             dn{"гараг"}\r
@@ -1648,13 +1650,13 @@ mn{
             dn{"гараг"}\r
         }\r
         weekdayOfMonth{\r
-            dn{"Ð\90жлын өдөр"}\r
+            dn{"ажлын өдөр"}\r
         }\r
         weekdayOfMonth-narrow{\r
-            dn{"Ð\90жлын өдөр"}\r
+            dn{"ажлын өдөр"}\r
         }\r
         weekdayOfMonth-short{\r
-            dn{"Ð\90жлын өдөр"}\r
+            dn{"ажлын өдөр"}\r
         }\r
         year{\r
             dn{"жил"}\r
@@ -1665,8 +1667,8 @@ mn{
             }\r
             relativeTime{\r
                 future{\r
-                    one{"{0} Ð¶Ð¸Ð»Ð¸Ð¹Ð½ Ð´Ð¾Ñ\82оÑ\80"}\r
-                    other{"{0} Ð¶Ð¸Ð»Ð¸Ð¹Ð½ Ð´Ð¾Ñ\82оÑ\80"}\r
+                    one{"{0} Ð¶Ð¸Ð»Ð¸Ð¹Ð½ Ð´Ð°Ñ\80аа"}\r
+                    other{"{0} Ð¶Ð¸Ð»Ð¸Ð¹Ð½ Ð´Ð°Ñ\80аа"}\r
                 }\r
                 past{\r
                     one{"{0} жилийн өмнө"}\r
@@ -1678,12 +1680,12 @@ mn{
             dn{"жил"}\r
             relativeTime{\r
                 future{\r
-                    one{"+{0} жилд"}\r
-                    other{"+{0} жилд"}\r
+                    one{"{0} жилийн дараа"}\r
+                    other{"{0} жилийн дараа"}\r
                 }\r
                 past{\r
-                    one{"-{0} жил.н өмнө"}\r
-                    other{"-{0} жил.н өмнө"}\r
+                    one{"{0} жилийн өмнө"}\r
+                    other{"{0} жилийн өмнө"}\r
                 }\r
             }\r
         }\r
@@ -1691,8 +1693,8 @@ mn{
             dn{"жил"}\r
             relativeTime{\r
                 future{\r
-                    one{"{0} Ð¶Ð¸Ð»Ð¸Ð¹Ð½ Ð´Ð¾Ñ\82оÑ\80"}\r
-                    other{"{0} Ð¶Ð¸Ð»Ð¸Ð¹Ð½ Ð´Ð¾Ñ\82оÑ\80"}\r
+                    one{"{0} Ð¶Ð¸Ð»Ð¸Ð¹Ð½ Ð´Ð°Ñ\80аа"}\r
+                    other{"{0} Ð¶Ð¸Ð»Ð¸Ð¹Ð½ Ð´Ð°Ñ\80аа"}\r
                 }\r
                 past{\r
                     one{"{0} жилийн өмнө"}\r
index b75291a..4e8b3af 100644 (file)
@@ -47,7 +47,9 @@ mr{
         }\r
         latn{\r
             miscPatterns{\r
+                approximately{"~{0}"}\r
                 atLeast{"{0}+"}\r
+                atMost{"≤{0}"}\r
                 range{"{0}–{1}"}\r
             }\r
             patterns{\r
@@ -241,7 +243,7 @@ mr{
         minimumGroupingDigits{"1"}\r
         native{"deva"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.65"}\r
     calendar{\r
         buddhist{\r
             eras{\r
@@ -2519,8 +2521,13 @@ mr{
         general{\r
             lenient{\r
                 "[.․。︒﹒.。]",\r
+                "['ʼ՚᾽᾿’']",\r
+                "[%٪﹪%]",\r
+                "[؉‰]",\r
                 "[\$﹩$$]",\r
                 "[£₤]",\r
+                "[¥¥]",\r
+                "[₩₩]",\r
                 "[₨₹{Rp}{Rs}]",\r
             }\r
         }\r
index 76daa14..3f3e40d 100644 (file)
@@ -25,7 +25,9 @@ ms{
         default{"latn"}\r
         latn{\r
             miscPatterns{\r
+                approximately{"~{0}"}\r
                 atLeast{"{0}+"}\r
+                atMost{"≤{0}"}\r
                 range{"{0}–{1}"}\r
             }\r
             patterns{\r
@@ -180,7 +182,7 @@ ms{
         minimumGroupingDigits{"1"}\r
         native{"latn"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.91"}\r
     calendar{\r
         buddhist{\r
             eras{\r
@@ -1790,7 +1792,7 @@ ms{
         japanese_kana{"Kana Jepun"}\r
         kanbun{"Kanbun"}\r
         kanji{"Kanji"}\r
-        keycap{"keycap"}\r
+        keycap{"butang kekunci"}\r
         leftwards_arrows{"anak panah ke kiri"}\r
         leftwards_rightwards_arrows{"anak panah ke kiri dan ke kanan"}\r
         letterlike_symbols{"Simbol Ala Huruf"}\r
@@ -2643,8 +2645,13 @@ ms{
         general{\r
             lenient{\r
                 "[.․。︒﹒.。]",\r
+                "['ʼ՚᾽᾿’']",\r
+                "[%٪﹪%]",\r
+                "[؉‰]",\r
                 "[\$﹩$$]",\r
                 "[£₤]",\r
+                "[¥¥]",\r
+                "[₩₩]",\r
                 "[₨₹{Rp}{Rs}]",\r
             }\r
         }\r
index c1ac687..28cb283 100644 (file)
@@ -19,10 +19,13 @@ mt{
         default{"latn"}\r
         latn{\r
             miscPatterns{\r
-                atLeast{"⩾{0}"}\r
+                approximately{"~{0}"}\r
+                atLeast{"≥{0}"}\r
+                atMost{"≤{0}"}\r
                 range{"{0}–{1}"}\r
             }\r
             patterns{\r
+                accountingFormat{"¤#,##0.00"}\r
                 currencyFormat{"¤#,##0.00"}\r
                 decimalFormat{"#,##0.###"}\r
                 percentFormat{"#,##0%"}\r
@@ -45,7 +48,7 @@ mt{
         minimumGroupingDigits{"1"}\r
         native{"latn"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.94"}\r
     calendar{\r
         generic{\r
             DateTimePatterns{\r
@@ -183,7 +186,12 @@ mt{
                 Timezone{"{0} {1}"}\r
             }\r
             availableFormats{\r
+                Bh{"h B"}\r
+                Bhm{"h:mm B"}\r
+                Bhms{"h:mm:ss B"}\r
                 E{"ccc"}\r
+                EBhm{"E h:mm B"}\r
+                EBhms{"E h:mm:ss B"}\r
                 EHm{"E HH:mm"}\r
                 EHms{"E HH:mm:ss"}\r
                 Ed{"d, E"}\r
@@ -196,10 +204,18 @@ mt{
                 H{"HH"}\r
                 Hm{"HH:mm"}\r
                 Hms{"HH:mm:ss"}\r
+                Hmsv{"HH:mm:ss v"}\r
+                Hmv{"HH:mm v"}\r
                 M{"L"}\r
                 MEd{"E, M-d"}\r
                 MMM{"LLL"}\r
                 MMMEd{"E, d 'ta'’ MMM"}\r
+                MMMMW{\r
+                    few{"W 'ġimgħa' 'ta''' MMMM"}\r
+                    many{"W 'ġimgħa' 'ta''' MMMM"}\r
+                    one{"W 'ġimgħa' 'ta''' MMMM"}\r
+                    other{"W 'ġimgħa' 'ta''' MMMM"}\r
+                }\r
                 MMMMd{"d 'ta'’ MMMM"}\r
                 MMMd{"MMM d"}\r
                 Md{"MM-dd"}\r
@@ -207,6 +223,8 @@ mt{
                 h{"h a"}\r
                 hm{"h:mm a"}\r
                 hms{"h:mm:ss a"}\r
+                hmsv{"h:mm:ss a v"}\r
+                hmv{"h:mm a v"}\r
                 ms{"mm:ss"}\r
                 y{"y"}\r
                 yM{"y-MM"}\r
@@ -215,8 +233,15 @@ mt{
                 yMMMEd{"E, d 'ta'’ MMM, y"}\r
                 yMMMM{"MMMM y"}\r
                 yMMMd{"d 'ta'’ MMM, y"}\r
+                yMd{"M/d/y"}\r
                 yQQQ{"QQQ - y"}\r
                 yQQQQ{"QQQQ - y"}\r
+                yw{\r
+                    few{"w 'ġimgħa' 'ta''' Y"}\r
+                    many{"w 'ġimgħa' 'ta''' Y"}\r
+                    one{"w 'ġimgħa' 'ta''' Y"}\r
+                    other{"w 'ġimgħa' 'ta''' Y"}\r
+                }\r
             }\r
             dayNames{\r
                 format{\r
@@ -325,6 +350,10 @@ mt{
                     "Qabel Kristu",\r
                     "Wara Kristu",\r
                 }\r
+                wide%variant{\r
+                    "QEK",\r
+                    "EK",\r
+                }\r
             }\r
             intervalFormats{\r
                 H{\r
@@ -405,6 +434,10 @@ mt{
                     d{"E, d MMM – E, d MMM, y"}\r
                     y{"E, d 'ta'’ MMM y – E, d 'ta'’ MMM y"}\r
                 }\r
+                yMMMM{\r
+                    M{"MMMM – MMMM y"}\r
+                    y{"MMMM y – MMMM y"}\r
+                }\r
                 yMMMd{\r
                     M{"y MMM d – MMM d"}\r
                     d{"d – d MMM y"}\r
@@ -558,21 +591,199 @@ mt{
     }\r
     fields{\r
         day{\r
-            dn{"Jum"}\r
+            dn{"jum"}\r
             relative{\r
-                "-1"{"Ilbieraħ"}\r
-                "0"{"Illum"}\r
-                "1"{"Għada"}\r
+                "-1"{"lbieraħ"}\r
+                "0"{"illum"}\r
+                "1"{"għada"}\r
+            }\r
+            relativeTime{\r
+                future{\r
+                    few{"fi żmien {0} ġurnata oħra"}\r
+                    many{"fi żmien {0} ġurnata oħra"}\r
+                    one{"fi żmien ġurnata"}\r
+                    other{"fi żmien {0} ġurnata oħra"}\r
+                }\r
+                past{\r
+                    few{"{0} ġranet ilu"}\r
+                    many{"{0}-il ġurnata ilu"}\r
+                    one{"ġurnata ilu"}\r
+                    other{"{0}-il ġurnata ilu"}\r
+                }\r
+            }\r
+        }\r
+        day-narrow{\r
+            dn{"Jum"}\r
+            relativeTime{\r
+                future{\r
+                    few{"fi żmien {0} ġurnata oħra"}\r
+                    many{"fi żmien {0} ġurnata oħra"}\r
+                    one{"fi żmien ġurnata"}\r
+                    other{"fi żmien {0} ġurnata oħra"}\r
+                }\r
+                past{\r
+                    few{"{0} ġranet ilu"}\r
+                    many{"{0}-il ġurnata ilu"}\r
+                    one{"ġurnata ilu"}\r
+                    other{"{0}-il ġurnata ilu"}\r
+                }\r
+            }\r
+        }\r
+        day-short{\r
+            dn{"Jum"}\r
+            relativeTime{\r
+                future{\r
+                    few{"fi żmien {0} ġurnata oħra"}\r
+                    many{"fi żmien {0} ġurnata oħra"}\r
+                    one{"fi żmien ġurnata"}\r
+                    other{"fi żmien {0} ġurnata oħra"}\r
+                }\r
+                past{\r
+                    few{"{0} ġranet ilu"}\r
+                    many{"{0}-il ġurnata ilu"}\r
+                    one{"ġurnata ilu"}\r
+                    other{"{0}-il ġurnata ilu"}\r
+                }\r
             }\r
         }\r
+        dayOfYear{\r
+            dn{"jum tas-sena"}\r
+        }\r
+        dayOfYear-narrow{\r
+            dn{"jum tas-sena"}\r
+        }\r
+        dayperiod{\r
+            dn{"AM/PM"}\r
+        }\r
+        dayperiod-narrow{\r
+            dn{"AM/PM"}\r
+        }\r
+        dayperiod-short{\r
+            dn{"AM/PM"}\r
+        }\r
         era{\r
-            dn{"Epoka"}\r
+            dn{"Era"}\r
+        }\r
+        era-narrow{\r
+            dn{"Era"}\r
+        }\r
+        era-short{\r
+            dn{"Era"}\r
+        }\r
+        fri{\r
+            relative{\r
+                "-1"{"last Friday"}\r
+                "0"{"this Friday"}\r
+                "1"{"next Friday"}\r
+            }\r
         }\r
         hour{\r
-            dn{"Siegħa"}\r
+            dn{"siegħa"}\r
+            relative{\r
+                "0"{"din is-siegħa"}\r
+            }\r
+            relativeTime{\r
+                future{\r
+                    few{"fi żmien {0} sigħat"}\r
+                    many{"fi żmien{0} sigħat"}\r
+                    one{"fi żmien siegħa oħra"}\r
+                    other{"fi żmien {0} sigħat"}\r
+                }\r
+                past{\r
+                    few{"{0} sigħat ilu"}\r
+                    many{"{0} sigħat ilu"}\r
+                    one{"siegħa ilu"}\r
+                    other{"{0} sigħat ilu"}\r
+                }\r
+            }\r
+        }\r
+        hour-narrow{\r
+            dn{"siegħa"}\r
+            relativeTime{\r
+                future{\r
+                    few{"fi żmien {0} sigħat"}\r
+                    many{"fi żmien {0} sigħat"}\r
+                    one{"fi żmien siegħa oħra"}\r
+                    other{"fi żmien {0} sigħat"}\r
+                }\r
+                past{\r
+                    few{"{0} sigħat ilu"}\r
+                    many{"{0} sigħat ilu"}\r
+                    one{"siegħa ilu"}\r
+                    other{"{0} sigħat ilu"}\r
+                }\r
+            }\r
+        }\r
+        hour-short{\r
+            dn{"siegħa"}\r
+            relativeTime{\r
+                future{\r
+                    few{"fi żmien {0} sigħat"}\r
+                    many{"+{0} h"}\r
+                    one{"fi żmien siegħa oħra"}\r
+                    other{"fi żmien {0} sigħat"}\r
+                }\r
+                past{\r
+                    few{"{0} sigħat ilu"}\r
+                    many{"{0} sigħat ilu"}\r
+                    one{"siegħa ilu"}\r
+                    other{"{0} sigħat ilu"}\r
+                }\r
+            }\r
         }\r
         minute{\r
-            dn{"Minuta"}\r
+            dn{"minuta"}\r
+            relative{\r
+                "0"{"din il-minuta"}\r
+            }\r
+            relativeTime{\r
+                future{\r
+                    few{"sa {0} minuti oħra"}\r
+                    many{"sa {0} minuti oħra"}\r
+                    one{"sa minuta oħra"}\r
+                    other{"sa {0} minuti oħra"}\r
+                }\r
+                past{\r
+                    few{"{0} minuti ilu"}\r
+                    many{"{0} minuti ilu"}\r
+                    one{"minuta ilu"}\r
+                    other{"{0} minuti ilu"}\r
+                }\r
+            }\r
+        }\r
+        minute-narrow{\r
+            dn{"m"}\r
+            relativeTime{\r
+                future{\r
+                    few{"sa {0} min. oħra"}\r
+                    many{"+{0} min"}\r
+                    one{"sa min. oħra"}\r
+                    other{"sa {0} min. oħra"}\r
+                }\r
+                past{\r
+                    few{"{0} min. ilu"}\r
+                    many{"{0} min. ilu"}\r
+                    one{"min. ilu"}\r
+                    other{"{0} min. ilu"}\r
+                }\r
+            }\r
+        }\r
+        minute-short{\r
+            dn{"min."}\r
+            relativeTime{\r
+                future{\r
+                    few{"sa {0} min. oħra"}\r
+                    many{"sa {0} min. oħra"}\r
+                    one{"sa min. oħra"}\r
+                    other{"sa {0} min. oħra"}\r
+                }\r
+                past{\r
+                    few{"{0} min. ilu"}\r
+                    many{"{0} minuti ilu"}\r
+                    one{"min. ilu"}\r
+                    other{"{0} min. ilu"}\r
+                }\r
+            }\r
         }\r
         mon{\r
             relative{\r
@@ -581,53 +792,415 @@ mt{
                 "1"{"It-Tnejn li ġej"}\r
             }\r
         }\r
+        mon-narrow{\r
+            relative{\r
+                "-1"{"it-Tn. li għadda"}\r
+                "0"{"it-Tn. li ġej"}\r
+                "1"{"it-Tn. ta’ wara"}\r
+            }\r
+        }\r
+        mon-short{\r
+            relative{\r
+                "-1"{"it-Tn. li għadda"}\r
+                "0"{"it-Tn. li ġej"}\r
+                "1"{"it-Tn. ta’ wara"}\r
+            }\r
+        }\r
         month{\r
-            dn{"Xahar"}\r
+            dn{"xahar"}\r
             relative{\r
                 "-1"{"Ix-xahar li għadda"}\r
                 "0"{"Dan ix-xahar"}\r
                 "1"{"Ix-xahar id-dieħel"}\r
             }\r
+            relativeTime{\r
+                future{\r
+                    few{"fi {0} xhur oħra"}\r
+                    many{"fi {0} xhur oħra"}\r
+                    one{"sa xahar ieħor"}\r
+                    other{"fi {0} xhur oħra"}\r
+                }\r
+                past{\r
+                    few{"{0} xhur ilu"}\r
+                    many{"{0} xhur ilu"}\r
+                    one{"xahar ilu"}\r
+                    other{"{0} xhur ilu"}\r
+                }\r
+            }\r
+        }\r
+        month-narrow{\r
+            dn{"Xahar"}\r
+            relativeTime{\r
+                future{\r
+                    few{"sa {0} xhur oħra"}\r
+                    many{"sa {0} xhur oħra"}\r
+                    one{"sa xahar ieħor"}\r
+                    other{"sa {0} xhur oħra"}\r
+                }\r
+                past{\r
+                    few{"{0} xhur ilu"}\r
+                    many{"{0} xhur ilu"}\r
+                    one{"xahar ilu"}\r
+                    other{"{0} xhur ilu"}\r
+                }\r
+            }\r
+        }\r
+        month-short{\r
+            dn{"Xahar"}\r
+            relativeTime{\r
+                future{\r
+                    few{"sa {0} xhur oħra"}\r
+                    many{"sa {0} xhur oħra"}\r
+                    one{"sa xahar ieħor"}\r
+                    other{"sa {0} xhur oħra"}\r
+                }\r
+                past{\r
+                    few{"{0} xhur ilu"}\r
+                    many{"{0} xhur ilu"}\r
+                    one{"{0} xahar ilu"}\r
+                    other{"{0} xhur ilu"}\r
+                }\r
+            }\r
+        }\r
+        quarter{\r
+            relative{\r
+                "-1"{"il-kwart ta’ sena li għadda"}\r
+                "0"{"il-kwart ta’ sena li qegħdin fih"}\r
+                "1"{"il-kwart li jmiss tas-sena"}\r
+            }\r
+            relativeTime{\r
+                future{\r
+                    few{"f’{0} kwarti ta’ sena oħrajn"}\r
+                    many{"f’{0} kwarti ta’ sena oħrajn"}\r
+                    one{"f’{0} kwarti ta’ sena oħrajn"}\r
+                    other{"f’{0} kwarti ta’ sena oħrajn"}\r
+                }\r
+                past{\r
+                    few{"{0} kwarti ta’ sena li għaddew"}\r
+                    many{"{0} kwarti ta’ sena li għaddew"}\r
+                    one{"il-kwart ta’ sena li għadda"}\r
+                    other{"{0} kwarti ta’ sena li għaddew"}\r
+                }\r
+            }\r
+        }\r
+        quarter-narrow{\r
+            dn{\r
+                "l-ewwel kwart tas-sena, it-tieni kwart tas-sena, it-tielet kwart tas"\r
+                "-sena, ir-raba’ kwart tas-sena"\r
+            }\r
+            relative{\r
+                "-1"{"il-kwart ta’ sena li għadda"}\r
+                "0"{"il-kwart ta’ sena li qegħdin fih"}\r
+                "1"{"il-kwart li jmiss tas-sena"}\r
+            }\r
+            relativeTime{\r
+                future{\r
+                    few{"f’{0} kwarti ta’ sena oħrajn"}\r
+                    many{"f’{0} kwarti ta’ sena oħrajn"}\r
+                    one{"fi kwart ta’ sena ieħor"}\r
+                    other{"f’{0} kwarti ta’ sena oħrajn"}\r
+                }\r
+                past{\r
+                    few{"{0} kwarti ta’ sena ilu"}\r
+                    many{"{0} kwarti ta’ sena ilu"}\r
+                    one{"fil-kwart tas-sena li għadda"}\r
+                    other{"{0} kwarti ta’ sena ilu"}\r
+                }\r
+            }\r
+        }\r
+        quarter-short{\r
+            relative{\r
+                "-1"{"il-kwart ta’ sena li għadda"}\r
+                "0"{"il-kwart ta’ sena li qegħdin fih"}\r
+                "1"{"il-kwart li jmiss tas-sena"}\r
+            }\r
+            relativeTime{\r
+                future{\r
+                    few{"f’{0} kwarti ta’ sena oħrajn"}\r
+                    many{"f’{0} kwarti ta’ sena oħrajn"}\r
+                    one{"fil-kwart tas-sena li ġej"}\r
+                    other{"f’{0} kwarti ta’ sena oħrajn"}\r
+                }\r
+                past{\r
+                    few{"{0} kwarti ta’ sena ilu"}\r
+                    many{"{0} kwarti ta’ sena ilu"}\r
+                    one{"fil-kwart tas-sena li għadda"}\r
+                    other{"{0} kwarti ta’ sena ilu"}\r
+                }\r
+            }\r
         }\r
         second{\r
-            dn{"Sekonda"}\r
+            dn{"sekonda"}\r
+            relative{\r
+                "0"{"issa"}\r
+            }\r
+            relativeTime{\r
+                future{\r
+                    few{"sa {0} sekondi oħra"}\r
+                    many{"sa {0} sekondi oħra"}\r
+                    one{"sa {0} sekondi oħra"}\r
+                    other{"sa {0} sekondi oħra"}\r
+                }\r
+                past{\r
+                    few{"{0} sekondi ilu"}\r
+                    many{"{0} sekondi ilu"}\r
+                    one{"sekonda ilu"}\r
+                    other{"{0} sekondi ilu"}\r
+                }\r
+            }\r
+        }\r
+        second-narrow{\r
+            dn{"s"}\r
+            relativeTime{\r
+                future{\r
+                    few{"sa {0} sek. oħra"}\r
+                    many{"sa {0} sek. oħra"}\r
+                    one{"sa sek. oħra"}\r
+                    other{"sa {0} sek. oħra"}\r
+                }\r
+                past{\r
+                    few{"{0} sek. ilu"}\r
+                    many{"{0} sek. ilu"}\r
+                    one{"sek. ilu"}\r
+                    other{"{0} sek. ilu"}\r
+                }\r
+            }\r
+        }\r
+        second-short{\r
+            dn{"sek."}\r
+            relativeTime{\r
+                future{\r
+                    few{"sa {0} sek. oħra"}\r
+                    many{"sa {0} sek. oħra"}\r
+                    one{"sa {0} sekondi oħra"}\r
+                    other{"sa {0} sekondi oħra"}\r
+                }\r
+                past{\r
+                    few{"{0} sek. ilu"}\r
+                    many{"{0} sek. ilu"}\r
+                    one{"sek. ilu"}\r
+                    other{"{0} sek. ilu"}\r
+                }\r
+            }\r
         }\r
         sun{\r
             relative{\r
                 "-1"{"Il-Ħadd li għadda"}\r
-                "0"{"Dan il-Ħadd"}\r
-                "1"{"Il-Ħadd li ġej"}\r
+                "0"{"il-Ħadd li ġej"}\r
+                "1"{"il-Ħadd ta’ wara"}\r
+            }\r
+            relativeTime{\r
+                future{\r
+                    few{"sa {0} Ħdud oħra"}\r
+                    many{"sa {0} Ħdud oħra"}\r
+                    one{"sa Ħadd ieħor"}\r
+                    other{"sa {0} Ħdud oħra"}\r
+                }\r
+                past{\r
+                    few{"{0} Ħdud ilu"}\r
+                    many{"{0} Ħdud ilu"}\r
+                    one{"il-Ħadd li għadda"}\r
+                    other{"{0} Ħdud ilu"}\r
+                }\r
+            }\r
+        }\r
+        sun-narrow{\r
+            relative{\r
+                "-1"{"il-Ħd. li għadda"}\r
+                "0"{"il-Ħd. li ġej"}\r
+                "1"{"il-Ħd. ta’ wara"}\r
+            }\r
+            relativeTime{\r
+                future{\r
+                    few{"sa {0} Ħd. oħra"}\r
+                    many{"sa {0} Ħd. oħra"}\r
+                    one{"sa Ħd. ieħor"}\r
+                    other{"sa {0} Ħd. oħra"}\r
+                }\r
+                past{\r
+                    few{"{0} Ħd. ilu"}\r
+                    many{"{0} Ħd. ilu"}\r
+                    one{"{0} Ħd. ilu"}\r
+                    other{"{0} Ħd. ilu"}\r
+                }\r
+            }\r
+        }\r
+        sun-short{\r
+            relative{\r
+                "-1"{"il-Ħd. li għadda"}\r
+                "0"{"il-Ħd. li ġej"}\r
+                "1"{"il-Ħd. ta’ wara"}\r
+            }\r
+            relativeTime{\r
+                future{\r
+                    few{"sa {0} Ħd. oħra"}\r
+                    many{"sa {0} Ħd. oħra"}\r
+                    one{"sa Ħd. ieħor"}\r
+                    other{"sa {0} Ħd. oħra"}\r
+                }\r
+                past{\r
+                    few{"{0} Ħd. ilu"}\r
+                    many{"{0} Ħd. ilu"}\r
+                    one{"il-Ħd. li għadda"}\r
+                    other{"{0} Ħd. ilu"}\r
+                }\r
+            }\r
+        }\r
+        tue{\r
+            relative{\r
+                "-1"{"it-Tlieta li għaddiet"}\r
+                "0"{"it-Tlieta li ġejja"}\r
+                "1"{"it-Tlieta ta’ wara"}\r
             }\r
         }\r
         week{\r
-            dn{"Ä imgħa"}\r
+            dn{"Ä¡imgħa"}\r
             relative{\r
-                "-1"{"Il-ġimgħa li għaddiet"}\r
-                "0"{"Din il-ġimgħa"}\r
-                "1"{"Il-ġimgħa d-dieħla"}\r
+                "-1"{"il-ġimgħa li għaddiet"}\r
+                "0"{"din il-ġimgħa"}\r
+                "1"{"il-ġimgħa d-dieħla"}\r
+            }\r
+            relativePeriod{"fil-ġimgħa ta’ {0}"}\r
+            relativeTime{\r
+                future{\r
+                    few{"sa {0} ġimgħat oħra"}\r
+                    many{"sa {0} ġimgħat oħra"}\r
+                    one{"sa ġimgħa oħra"}\r
+                    other{"sa {0} ġimgħat oħra"}\r
+                }\r
+                past{\r
+                    few{"{0} ġimgħat ilu"}\r
+                    many{"{0} ġimgħat ilu"}\r
+                    one{"ġimgħa ilu"}\r
+                    other{"{0} ġimgħat ilu"}\r
+                }\r
             }\r
         }\r
+        week-narrow{\r
+            relativePeriod{"fil-ġimgħa ta’ {0}"}\r
+            relativeTime{\r
+                future{\r
+                    few{"sa {0} ġimgħat oħra"}\r
+                    many{"sa {0} ġimgħat oħra"}\r
+                    one{"sa ġimgħa oħra"}\r
+                    other{"sa {0} ġimgħat oħra"}\r
+                }\r
+                past{\r
+                    few{"{0} ġimgħat ilu"}\r
+                    many{"{0} ġimgħat ilu"}\r
+                    one{"ġimgħa ilu"}\r
+                    other{"{0} ġimgħat ilu"}\r
+                }\r
+            }\r
+        }\r
+        week-short{\r
+            relativePeriod{"fil-ġimgħa ta’ {0}"}\r
+            relativeTime{\r
+                future{\r
+                    few{"sa {0} ġimgħat oħra"}\r
+                    many{"sa {0} ġimgħat oħra"}\r
+                    one{"sa ġimgħa oħra"}\r
+                    other{"+{0} w"}\r
+                }\r
+                past{\r
+                    few{"{0} ġimgħat ilu"}\r
+                    many{"{0} ġimgħat ilu"}\r
+                    one{"ġimgħa ilu"}\r
+                    other{"{0} ġimgħat ilu"}\r
+                }\r
+            }\r
+        }\r
+        weekOfMonth{\r
+            dn{"ġimgħa tax-xahar"}\r
+        }\r
+        weekOfMonth-narrow{\r
+            dn{"ġimgħa tax-xahar"}\r
+        }\r
+        weekOfMonth-short{\r
+            dn{"ġimgħa tax-xahar"}\r
+        }\r
         weekday{\r
-            dn{"Jum tal-Ġimgħa"}\r
+            dn{"jum tal-ġimgħa"}\r
+        }\r
+        weekday-narrow{\r
+            dn{"jum tal-ġimgħa"}\r
+        }\r
+        weekday-short{\r
+            dn{"jum tal-ġimgħa"}\r
+        }\r
+        weekdayOfMonth{\r
+            dn{"jum tax-xahar"}\r
+        }\r
+        weekdayOfMonth-narrow{\r
+            dn{"Weekday Of Month"}\r
+        }\r
+        weekdayOfMonth-short{\r
+            dn{"jum tax-xahar"}\r
         }\r
         year{\r
             dn{"Sena"}\r
             relative{\r
-                "-1"{"Is-sena li għaddiet"}\r
+                "-1"{"is-sena l-oħra"}\r
                 "0"{"din is-sena"}\r
-                "1"{"Is-sena d-dieħla"}\r
+                "1"{"is-sena d-dieħla"}\r
             }\r
             relativeTime{\r
+                future{\r
+                    few{"fi żmien {0} snin oħra"}\r
+                    many{"fi żmien {0} snin oħra"}\r
+                    one{"fi żmien sena"}\r
+                    other{"fi żmien {0} snin oħra"}\r
+                }\r
                 past{\r
                     few{"{0} snin ilu"}\r
                     many{"{0} snin ilu"}\r
-                    one{"{0} sena ilu"}\r
+                    one{"sena ilu"}\r
+                    other{"{0} snin ilu"}\r
+                }\r
+            }\r
+        }\r
+        year-narrow{\r
+            dn{"Sena"}\r
+            relativeTime{\r
+                future{\r
+                    few{"fi żmien {0} snin oħra"}\r
+                    many{"fi żmien {0} snin oħra"}\r
+                    one{"fi żmien sena"}\r
+                    other{"fi żmien {0} snin oħra"}\r
+                }\r
+                past{\r
+                    few{"{0} snin ilu"}\r
+                    many{"{0} snin ilu"}\r
+                    one{"sena ilu"}\r
+                    other{"{0} snin ilu"}\r
+                }\r
+            }\r
+        }\r
+        year-short{\r
+            dn{"Sena"}\r
+            relativeTime{\r
+                future{\r
+                    few{"fi żmien {0} snin oħra"}\r
+                    many{"fi żmien {0} snin oħra"}\r
+                    one{"fi żmien sena"}\r
+                    other{"fi żmien {0} snin oħra"}\r
+                }\r
+                past{\r
+                    few{"{0} snin ilu"}\r
+                    many{"{0} snin ilu"}\r
+                    one{"sa sena ilu"}\r
                     other{"{0} snin ilu"}\r
                 }\r
             }\r
         }\r
         zone{\r
-            dn{"Żona"}\r
+            dn{"żona tal-ħin"}\r
+        }\r
+        zone-narrow{\r
+            dn{"żona"}\r
+        }\r
+        zone-short{\r
+            dn{"żona"}\r
         }\r
     }\r
     listPattern{\r
index 00c8679..7db74b5 100644 (file)
@@ -26,7 +26,9 @@ my{
         default{"mymr"}\r
         latn{\r
             miscPatterns{\r
+                approximately{"~{0}"}\r
                 atLeast{"{0} နှင့်အထက်"}\r
+                atMost{"≤{0}"}\r
                 range{"{0} - {1}"}\r
             }\r
             patterns{\r
@@ -201,7 +203,7 @@ my{
         }\r
         native{"mymr"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.88"}\r
     calendar{\r
         generic{\r
             DateTimePatterns{\r
@@ -440,7 +442,7 @@ my{
                 yQQQ{"y QQQ"}\r
                 yQQQQ{"y QQQQ"}\r
                 yw{\r
-                    other{"y ခု w ပတ်မြောက်"}\r
+                    other{"Y ခု w ပတ်မြောက်"}\r
                 }\r
             }\r
             dayNames{\r
@@ -584,7 +586,7 @@ my{
             eras{\r
                 abbreviated{\r
                     "ဘီစီ",\r
-                    "á\80¡á\80±á\80\92ီ",\r
+                    "á\80¡á\80\92á\80±ီ",\r
                 }\r
                 abbreviated%variant{\r
                     "ဘီစီအီး",\r
@@ -1668,8 +1670,13 @@ my{
         general{\r
             lenient{\r
                 "[.․。︒﹒.。]",\r
+                "['ʼ՚᾽᾿’']",\r
+                "[%٪﹪%]",\r
+                "[؉‰]",\r
                 "[\$﹩$$]",\r
                 "[£₤]",\r
+                "[¥¥]",\r
+                "[₩₩]",\r
                 "[₨₹{Rp}{Rs}]",\r
             }\r
         }\r
index beb2a95..20ee82a 100644 (file)
@@ -21,7 +21,7 @@ mzn{
         default{"arabext"}\r
         native{"arabext"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.41.34"}\r
     calendar{\r
         default{"persian"}\r
         gregorian{\r
index 09052b3..0e6a80a 100644 (file)
@@ -18,10 +18,11 @@ nb{
     NumberElements{\r
         arab{\r
             miscPatterns{\r
-                atLeast{"⩾{0}"}\r
+                atLeast{"â\89¥{0}"}\r
                 range{"{0}–{1}"}\r
             }\r
             patterns{\r
+                accountingFormat{"¤ #,##0.00"}\r
                 currencyFormat{"¤ #,##0.00"}\r
                 decimalFormat{"#,##0.###"}\r
                 percentFormat{"#,##0 %"}\r
@@ -44,7 +45,7 @@ nb{
         }\r
         arabext{\r
             miscPatterns{\r
-                atLeast{"⩾{0}"}\r
+                atLeast{"â\89¥{0}"}\r
                 range{"{0}–{1}"}\r
             }\r
             patterns{\r
@@ -71,7 +72,7 @@ nb{
         }\r
         bali{\r
             miscPatterns{\r
-                atLeast{"⩾{0}"}\r
+                atLeast{"â\89¥{0}"}\r
                 range{"{0}–{1}"}\r
             }\r
             patterns{\r
@@ -97,7 +98,7 @@ nb{
         }\r
         beng{\r
             miscPatterns{\r
-                atLeast{"⩾{0}"}\r
+                atLeast{"â\89¥{0}"}\r
                 range{"{0}–{1}"}\r
             }\r
             patterns{\r
@@ -123,7 +124,7 @@ nb{
         }\r
         brah{\r
             miscPatterns{\r
-                atLeast{"⩾{0}"}\r
+                atLeast{"â\89¥{0}"}\r
                 range{"{0}–{1}"}\r
             }\r
             patterns{\r
@@ -149,7 +150,7 @@ nb{
         }\r
         cakm{\r
             miscPatterns{\r
-                atLeast{"⩾{0}"}\r
+                atLeast{"â\89¥{0}"}\r
                 range{"{0}–{1}"}\r
             }\r
             patterns{\r
@@ -175,7 +176,7 @@ nb{
         }\r
         cham{\r
             miscPatterns{\r
-                atLeast{"⩾{0}"}\r
+                atLeast{"â\89¥{0}"}\r
                 range{"{0}–{1}"}\r
             }\r
             patterns{\r
@@ -202,7 +203,7 @@ nb{
         default{"latn"}\r
         deva{\r
             miscPatterns{\r
-                atLeast{"⩾{0}"}\r
+                atLeast{"â\89¥{0}"}\r
                 range{"{0}–{1}"}\r
             }\r
             patterns{\r
@@ -228,7 +229,7 @@ nb{
         }\r
         fullwide{\r
             miscPatterns{\r
-                atLeast{"⩾{0}"}\r
+                atLeast{"â\89¥{0}"}\r
                 range{"{0}–{1}"}\r
             }\r
             patterns{\r
@@ -254,7 +255,7 @@ nb{
         }\r
         gujr{\r
             miscPatterns{\r
-                atLeast{"⩾{0}"}\r
+                atLeast{"â\89¥{0}"}\r
                 range{"{0}–{1}"}\r
             }\r
             patterns{\r
@@ -280,7 +281,7 @@ nb{
         }\r
         guru{\r
             miscPatterns{\r
-                atLeast{"⩾{0}"}\r
+                atLeast{"â\89¥{0}"}\r
                 range{"{0}–{1}"}\r
             }\r
             patterns{\r
@@ -306,7 +307,7 @@ nb{
         }\r
         hanidec{\r
             miscPatterns{\r
-                atLeast{"⩾{0}"}\r
+                atLeast{"â\89¥{0}"}\r
                 range{"{0}–{1}"}\r
             }\r
             patterns{\r
@@ -332,7 +333,7 @@ nb{
         }\r
         java{\r
             miscPatterns{\r
-                atLeast{"⩾{0}"}\r
+                atLeast{"â\89¥{0}"}\r
                 range{"{0}–{1}"}\r
             }\r
             patterns{\r
@@ -358,7 +359,7 @@ nb{
         }\r
         kali{\r
             miscPatterns{\r
-                atLeast{"⩾{0}"}\r
+                atLeast{"â\89¥{0}"}\r
                 range{"{0}–{1}"}\r
             }\r
             patterns{\r
@@ -384,7 +385,7 @@ nb{
         }\r
         khmr{\r
             miscPatterns{\r
-                atLeast{"⩾{0}"}\r
+                atLeast{"â\89¥{0}"}\r
                 range{"{0}–{1}"}\r
             }\r
             patterns{\r
@@ -410,7 +411,7 @@ nb{
         }\r
         knda{\r
             miscPatterns{\r
-                atLeast{"⩾{0}"}\r
+                atLeast{"â\89¥{0}"}\r
                 range{"{0}–{1}"}\r
             }\r
             patterns{\r
@@ -436,7 +437,7 @@ nb{
         }\r
         lana{\r
             miscPatterns{\r
-                atLeast{"⩾{0}"}\r
+                atLeast{"â\89¥{0}"}\r
                 range{"{0}–{1}"}\r
             }\r
             patterns{\r
@@ -462,7 +463,7 @@ nb{
         }\r
         lanatham{\r
             miscPatterns{\r
-                atLeast{"⩾{0}"}\r
+                atLeast{"â\89¥{0}"}\r
                 range{"{0}–{1}"}\r
             }\r
             patterns{\r
@@ -488,7 +489,7 @@ nb{
         }\r
         laoo{\r
             miscPatterns{\r
-                atLeast{"⩾{0}"}\r
+                atLeast{"â\89¥{0}"}\r
                 range{"{0}–{1}"}\r
             }\r
             patterns{\r
@@ -514,7 +515,9 @@ nb{
         }\r
         latn{\r
             miscPatterns{\r
-                atLeast{"⩾{0}"}\r
+                approximately{"~{0}"}\r
+                atLeast{"≥{0}"}\r
+                atMost{"≤{0}"}\r
                 range{"{0}–{1}"}\r
             }\r
             patterns{\r
@@ -641,40 +644,40 @@ nb{
                         other{"000k"}\r
                     }\r
                     1000000{\r
-                        one{"0 mill"}\r
-                        other{"0 mill"}\r
+                        one{"0 mill'.'"}\r
+                        other{"0 mill'.'"}\r
                     }\r
                     10000000{\r
-                        one{"00 mill"}\r
-                        other{"00 mill"}\r
+                        one{"00 mill'.'"}\r
+                        other{"00 mill'.'"}\r
                     }\r
                     100000000{\r
-                        one{"000 mill"}\r
-                        other{"000 mill"}\r
+                        one{"000 mill'.'"}\r
+                        other{"000 mill'.'"}\r
                     }\r
                     1000000000{\r
-                        one{"0 mrd"}\r
-                        other{"0 mrd"}\r
+                        one{"0 mrd'.'"}\r
+                        other{"0 mrd'.'"}\r
                     }\r
                     10000000000{\r
-                        one{"00 mrd"}\r
-                        other{"00 mrd"}\r
+                        one{"00 mrd'.'"}\r
+                        other{"00 mrd'.'"}\r
                     }\r
                     100000000000{\r
-                        one{"000 mrd"}\r
-                        other{"000 mrd"}\r
+                        one{"000 mrd'.'"}\r
+                        other{"000 mrd'.'"}\r
                     }\r
                     1000000000000{\r
-                        one{"0 bill"}\r
-                        other{"0 bill"}\r
+                        one{"0 bill'.'"}\r
+                        other{"0 bill'.'"}\r
                     }\r
                     10000000000000{\r
-                        one{"00 bill"}\r
-                        other{"00 bill"}\r
+                        one{"00 bill'.'"}\r
+                        other{"00 bill'.'"}\r
                     }\r
                     100000000000000{\r
-                        one{"000 bill"}\r
-                        other{"000 bill"}\r
+                        one{"000 bill'.'"}\r
+                        other{"000 bill'.'"}\r
                     }\r
                 }\r
             }\r
@@ -695,7 +698,7 @@ nb{
         }\r
         lepc{\r
             miscPatterns{\r
-                atLeast{"⩾{0}"}\r
+                atLeast{"â\89¥{0}"}\r
                 range{"{0}–{1}"}\r
             }\r
             patterns{\r
@@ -721,7 +724,7 @@ nb{
         }\r
         limb{\r
             miscPatterns{\r
-                atLeast{"⩾{0}"}\r
+                atLeast{"â\89¥{0}"}\r
                 range{"{0}–{1}"}\r
             }\r
             patterns{\r
@@ -747,7 +750,7 @@ nb{
         }\r
         minimalPairs{\r
             ordinal{\r
-                other{"Ta {0}. svingen til høyre."}\r
+                other{"Ta {0}. sving til høyre."}\r
             }\r
             plural{\r
                 one{"{0} dag"}\r
@@ -757,7 +760,7 @@ nb{
         minimumGroupingDigits{"1"}\r
         mlym{\r
             miscPatterns{\r
-                atLeast{"⩾{0}"}\r
+                atLeast{"â\89¥{0}"}\r
                 range{"{0}–{1}"}\r
             }\r
             patterns{\r
@@ -783,7 +786,7 @@ nb{
         }\r
         mong{\r
             miscPatterns{\r
-                atLeast{"⩾{0}"}\r
+                atLeast{"â\89¥{0}"}\r
                 range{"{0}–{1}"}\r
             }\r
             patterns{\r
@@ -809,7 +812,7 @@ nb{
         }\r
         mtei{\r
             miscPatterns{\r
-                atLeast{"⩾{0}"}\r
+                atLeast{"â\89¥{0}"}\r
                 range{"{0}–{1}"}\r
             }\r
             patterns{\r
@@ -835,7 +838,7 @@ nb{
         }\r
         mymr{\r
             miscPatterns{\r
-                atLeast{"⩾{0}"}\r
+                atLeast{"â\89¥{0}"}\r
                 range{"{0}–{1}"}\r
             }\r
             patterns{\r
@@ -861,7 +864,7 @@ nb{
         }\r
         mymrshan{\r
             miscPatterns{\r
-                atLeast{"⩾{0}"}\r
+                atLeast{"â\89¥{0}"}\r
                 range{"{0}–{1}"}\r
             }\r
             patterns{\r
@@ -888,7 +891,7 @@ nb{
         native{"latn"}\r
         nkoo{\r
             miscPatterns{\r
-                atLeast{"⩾{0}"}\r
+                atLeast{"â\89¥{0}"}\r
                 range{"{0}–{1}"}\r
             }\r
             patterns{\r
@@ -914,7 +917,7 @@ nb{
         }\r
         olck{\r
             miscPatterns{\r
-                atLeast{"⩾{0}"}\r
+                atLeast{"â\89¥{0}"}\r
                 range{"{0}–{1}"}\r
             }\r
             patterns{\r
@@ -940,7 +943,7 @@ nb{
         }\r
         orya{\r
             miscPatterns{\r
-                atLeast{"⩾{0}"}\r
+                atLeast{"â\89¥{0}"}\r
                 range{"{0}–{1}"}\r
             }\r
             patterns{\r
@@ -966,7 +969,7 @@ nb{
         }\r
         osma{\r
             miscPatterns{\r
-                atLeast{"⩾{0}"}\r
+                atLeast{"â\89¥{0}"}\r
                 range{"{0}–{1}"}\r
             }\r
             patterns{\r
@@ -992,7 +995,7 @@ nb{
         }\r
         saur{\r
             miscPatterns{\r
-                atLeast{"⩾{0}"}\r
+                atLeast{"â\89¥{0}"}\r
                 range{"{0}–{1}"}\r
             }\r
             patterns{\r
@@ -1018,7 +1021,7 @@ nb{
         }\r
         shrd{\r
             miscPatterns{\r
-                atLeast{"⩾{0}"}\r
+                atLeast{"â\89¥{0}"}\r
                 range{"{0}–{1}"}\r
             }\r
             patterns{\r
@@ -1044,7 +1047,7 @@ nb{
         }\r
         sora{\r
             miscPatterns{\r
-                atLeast{"⩾{0}"}\r
+                atLeast{"â\89¥{0}"}\r
                 range{"{0}–{1}"}\r
             }\r
             patterns{\r
@@ -1070,7 +1073,7 @@ nb{
         }\r
         sund{\r
             miscPatterns{\r
-                atLeast{"⩾{0}"}\r
+                atLeast{"â\89¥{0}"}\r
                 range{"{0}–{1}"}\r
             }\r
             patterns{\r
@@ -1096,7 +1099,7 @@ nb{
         }\r
         takr{\r
             miscPatterns{\r
-                atLeast{"⩾{0}"}\r
+                atLeast{"â\89¥{0}"}\r
                 range{"{0}–{1}"}\r
             }\r
             patterns{\r
@@ -1122,7 +1125,7 @@ nb{
         }\r
         talu{\r
             miscPatterns{\r
-                atLeast{"⩾{0}"}\r
+                atLeast{"â\89¥{0}"}\r
                 range{"{0}–{1}"}\r
             }\r
             patterns{\r
@@ -1148,7 +1151,7 @@ nb{
         }\r
         tamldec{\r
             miscPatterns{\r
-                atLeast{"⩾{0}"}\r
+                atLeast{"â\89¥{0}"}\r
                 range{"{0}–{1}"}\r
             }\r
             patterns{\r
@@ -1174,7 +1177,7 @@ nb{
         }\r
         telu{\r
             miscPatterns{\r
-                atLeast{"⩾{0}"}\r
+                atLeast{"â\89¥{0}"}\r
                 range{"{0}–{1}"}\r
             }\r
             patterns{\r
@@ -1200,7 +1203,7 @@ nb{
         }\r
         thai{\r
             miscPatterns{\r
-                atLeast{"⩾{0}"}\r
+                atLeast{"â\89¥{0}"}\r
                 range{"{0}–{1}"}\r
             }\r
             patterns{\r
@@ -1226,7 +1229,7 @@ nb{
         }\r
         tibt{\r
             miscPatterns{\r
-                atLeast{"⩾{0}"}\r
+                atLeast{"â\89¥{0}"}\r
                 range{"{0}–{1}"}\r
             }\r
             patterns{\r
@@ -1252,7 +1255,7 @@ nb{
         }\r
         vaii{\r
             miscPatterns{\r
-                atLeast{"⩾{0}"}\r
+                atLeast{"â\89¥{0}"}\r
                 range{"{0}–{1}"}\r
             }\r
             patterns{\r
@@ -1277,7 +1280,7 @@ nb{
             }\r
         }\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.2"}\r
     calendar{\r
         buddhist{\r
             DateTimePatterns{\r
@@ -1369,9 +1372,11 @@ nb{
                 }\r
                 fallback{"{0}–{1}"}\r
                 h{\r
+                    a{"h a–h a"}\r
                     h{"h–h a"}\r
                 }\r
                 hv{\r
+                    a{"h a–h a v"}\r
                     h{"h–h a v"}\r
                 }\r
                 y{\r
@@ -1434,6 +1439,7 @@ nb{
                 GyMMM{"MMM r(U)"}\r
                 GyMMMEd{"E d. MMM r(U)"}\r
                 GyMMMd{"d. MMM r"}\r
+                H{"HH"}\r
                 M{"L."}\r
                 MEd{"E dd.MM."}\r
                 MMM{"LLL"}\r
@@ -1446,6 +1452,7 @@ nb{
                 UMMMd{"d. MMM U"}\r
                 UMd{"d.MM. U"}\r
                 d{"d."}\r
+                h{"h a"}\r
                 y{"r(U)"}\r
                 yMd{"dd.MM.r"}\r
                 yyyy{"r(U)"}\r
@@ -2513,9 +2520,11 @@ nb{
                 }\r
                 fallback{"{0}–{1}"}\r
                 h{\r
+                    a{"h a–h a"}\r
                     h{"h–h a"}\r
                 }\r
                 hv{\r
+                    a{"h a–h a v"}\r
                     h{"h–h a v"}\r
                 }\r
                 y{\r
@@ -3735,9 +3744,11 @@ nb{
                 }\r
                 fallback{"{0}–{1}"}\r
                 h{\r
+                    a{"h a–h a"}\r
                     h{"h–h a"}\r
                 }\r
                 hv{\r
+                    a{"h a–h a v"}\r
                     h{"h–h a v"}\r
                 }\r
                 y{\r
@@ -4612,9 +4623,11 @@ nb{
                 }\r
                 fallback{"{0}–{1}"}\r
                 h{\r
+                    a{"h a–h a"}\r
                     h{"h–h a"}\r
                 }\r
                 hv{\r
+                    a{"h a–h a v"}\r
                     h{"h–h a v"}\r
                 }\r
                 y{\r
@@ -4846,9 +4859,11 @@ nb{
                 }\r
                 fallback{"{0}–{1}"}\r
                 h{\r
+                    a{"h a–h a"}\r
                     h{"h–h a"}\r
                 }\r
                 hv{\r
+                    a{"h a–h a v"}\r
                     h{"h–h a v"}\r
                 }\r
                 y{\r
@@ -5068,9 +5083,11 @@ nb{
                 }\r
                 fallback{"{0}–{1}"}\r
                 h{\r
+                    a{"h a–h a"}\r
                     h{"h–h a"}\r
                 }\r
                 hv{\r
+                    a{"h a–h a v"}\r
                     h{"h–h a v"}\r
                 }\r
                 y{\r
@@ -5483,6 +5500,7 @@ nb{
                     "Taishō",\r
                     "Shōwa",\r
                     "Heisei",\r
+                    "Qqqq",\r
                 }\r
                 narrow{\r
                     "Taika (645–650)",\r
@@ -5721,6 +5739,7 @@ nb{
                     "T",\r
                     "S",\r
                     "H",\r
+                    "Q",\r
                 }\r
                 wide{\r
                     "Taika (645–650)",\r
@@ -5959,6 +5978,7 @@ nb{
                     "Taishō",\r
                     "Shōwa",\r
                     "Heisei",\r
+                    "Qqqq",\r
                 }\r
             }\r
             intervalFormats{\r
@@ -5995,9 +6015,11 @@ nb{
                 }\r
                 fallback{"{0}–{1}"}\r
                 h{\r
+                    a{"h a–h a"}\r
                     h{"h–h a"}\r
                 }\r
                 hv{\r
+                    a{"h a–h a v"}\r
                     h{"h–h a v"}\r
                 }\r
                 y{\r
@@ -6127,9 +6149,11 @@ nb{
                 }\r
                 fallback{"{0}–{1}"}\r
                 h{\r
+                    a{"h a–h a"}\r
                     h{"h–h a"}\r
                 }\r
                 hv{\r
+                    a{"h a–h a v"}\r
                     h{"h–h a v"}\r
                 }\r
                 y{\r
@@ -6352,9 +6376,11 @@ nb{
                 }\r
                 fallback{"{0}–{1}"}\r
                 h{\r
+                    a{"h a–h a"}\r
                     h{"h–h a"}\r
                 }\r
                 hv{\r
+                    a{"h a–h a v"}\r
                     h{"h–h a v"}\r
                 }\r
                 y{\r
index e639e44..bd1a2c5 100644 (file)
@@ -43,7 +43,9 @@ ne{
         }\r
         latn{\r
             miscPatterns{\r
+                approximately{"~{0}"}\r
                 atLeast{"{0}+"}\r
+                atMost{"≤{0}"}\r
                 range{"{0}–{1}"}\r
             }\r
             patterns{\r
@@ -235,7 +237,7 @@ ne{
         minimumGroupingDigits{"1"}\r
         native{"deva"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.50"}\r
     calendar{\r
         generic{\r
             DateTimePatterns{\r
index bf6c95d..57bccfb 100644 (file)
@@ -24,10 +24,13 @@ nl{
     NumberElements{\r
         arab{\r
             miscPatterns{\r
+                approximately{"~{0}"}\r
                 atLeast{"{0}+"}\r
+                atMost{"≤{0}"}\r
                 range{"{0}-{1}"}\r
             }\r
             patterns{\r
+                accountingFormat{"#,##0.00 ¤"}\r
                 currencyFormat{"#,##0.00 ¤"}\r
                 decimalFormat{"#,##0.###"}\r
                 percentFormat{"#,##0 %"}\r
@@ -39,15 +42,20 @@ nl{
                 group{"٬"}\r
                 infinity{"∞"}\r
                 list{"؛"}\r
+                minusSign{"؜-"}\r
                 nan{"NaN"}\r
                 perMille{"؉"}\r
+                percentSign{"٪؜"}\r
+                plusSign{"؜+"}\r
                 superscriptingExponent{"×"}\r
                 timeSeparator{":"}\r
             }\r
         }\r
         arabext{\r
             miscPatterns{\r
+                approximately{"~{0}"}\r
                 atLeast{"{0}+"}\r
+                atMost{"≤{0}"}\r
                 range{"{0}-{1}"}\r
             }\r
             patterns{\r
@@ -74,7 +82,9 @@ nl{
         }\r
         bali{\r
             miscPatterns{\r
+                approximately{"~{0}"}\r
                 atLeast{"{0}+"}\r
+                atMost{"≤{0}"}\r
                 range{"{0}-{1}"}\r
             }\r
             patterns{\r
@@ -101,7 +111,9 @@ nl{
         }\r
         beng{\r
             miscPatterns{\r
+                approximately{"~{0}"}\r
                 atLeast{"{0}+"}\r
+                atMost{"≤{0}"}\r
                 range{"{0}-{1}"}\r
             }\r
             patterns{\r
@@ -128,7 +140,9 @@ nl{
         }\r
         brah{\r
             miscPatterns{\r
+                approximately{"~{0}"}\r
                 atLeast{"{0}+"}\r
+                atMost{"≤{0}"}\r
                 range{"{0}-{1}"}\r
             }\r
             patterns{\r
@@ -155,7 +169,9 @@ nl{
         }\r
         cakm{\r
             miscPatterns{\r
+                approximately{"~{0}"}\r
                 atLeast{"{0}+"}\r
+                atMost{"≤{0}"}\r
                 range{"{0}-{1}"}\r
             }\r
             patterns{\r
@@ -182,7 +198,9 @@ nl{
         }\r
         cham{\r
             miscPatterns{\r
+                approximately{"~{0}"}\r
                 atLeast{"{0}+"}\r
+                atMost{"≤{0}"}\r
                 range{"{0}-{1}"}\r
             }\r
             patterns{\r
@@ -210,7 +228,9 @@ nl{
         default{"latn"}\r
         deva{\r
             miscPatterns{\r
+                approximately{"~{0}"}\r
                 atLeast{"{0}+"}\r
+                atMost{"≤{0}"}\r
                 range{"{0}-{1}"}\r
             }\r
             patterns{\r
@@ -237,7 +257,67 @@ nl{
         }\r
         fullwide{\r
             miscPatterns{\r
+                approximately{"~{0}"}\r
                 atLeast{"{0}+"}\r
+                atMost{"≤{0}"}\r
+                range{"{0}-{1}"}\r
+            }\r
+            patterns{\r
+                accountingFormat{"¤ #,##0.00;(¤ #,##0.00)"}\r
+                currencyFormat{"¤ #,##0.00;¤ -#,##0.00"}\r
+                decimalFormat{"#,##0.###"}\r
+                percentFormat{"#,##0%"}\r
+                scientificFormat{"#E0"}\r
+            }\r
+            symbols{\r
+                decimal{","}\r
+                exponential{"E"}\r
+                group{"."}\r
+                infinity{"∞"}\r
+                list{";"}\r
+                minusSign{"-"}\r
+                nan{"NaN"}\r
+                perMille{"‰"}\r
+                percentSign{"%"}\r
+                plusSign{"+"}\r
+                superscriptingExponent{"×"}\r
+                timeSeparator{":"}\r
+            }\r
+        }\r
+        gong{\r
+            miscPatterns{\r
+                approximately{"~{0}"}\r
+                atLeast{"{0}+"}\r
+                atMost{"≤{0}"}\r
+                range{"{0}-{1}"}\r
+            }\r
+            patterns{\r
+                accountingFormat{"¤ #,##0.00;(¤ #,##0.00)"}\r
+                currencyFormat{"¤ #,##0.00;¤ -#,##0.00"}\r
+                decimalFormat{"#,##0.###"}\r
+                percentFormat{"#,##0%"}\r
+                scientificFormat{"#E0"}\r
+            }\r
+            symbols{\r
+                decimal{","}\r
+                exponential{"E"}\r
+                group{"."}\r
+                infinity{"∞"}\r
+                list{";"}\r
+                minusSign{"-"}\r
+                nan{"NaN"}\r
+                perMille{"‰"}\r
+                percentSign{"%"}\r
+                plusSign{"+"}\r
+                superscriptingExponent{"×"}\r
+                timeSeparator{":"}\r
+            }\r
+        }\r
+        gonm{\r
+            miscPatterns{\r
+                approximately{"~{0}"}\r
+                atLeast{"{0}+"}\r
+                atMost{"≤{0}"}\r
                 range{"{0}-{1}"}\r
             }\r
             patterns{\r
@@ -264,7 +344,9 @@ nl{
         }\r
         gujr{\r
             miscPatterns{\r
+                approximately{"~{0}"}\r
                 atLeast{"{0}+"}\r
+                atMost{"≤{0}"}\r
                 range{"{0}-{1}"}\r
             }\r
             patterns{\r
@@ -291,7 +373,9 @@ nl{
         }\r
         guru{\r
             miscPatterns{\r
+                approximately{"~{0}"}\r
                 atLeast{"{0}+"}\r
+                atMost{"≤{0}"}\r
                 range{"{0}-{1}"}\r
             }\r
             patterns{\r
@@ -318,7 +402,9 @@ nl{
         }\r
         hanidec{\r
             miscPatterns{\r
+                approximately{"~{0}"}\r
                 atLeast{"{0}+"}\r
+                atMost{"≤{0}"}\r
                 range{"{0}-{1}"}\r
             }\r
             patterns{\r
@@ -345,7 +431,9 @@ nl{
         }\r
         java{\r
             miscPatterns{\r
+                approximately{"~{0}"}\r
                 atLeast{"{0}+"}\r
+                atMost{"≤{0}"}\r
                 range{"{0}-{1}"}\r
             }\r
             patterns{\r
@@ -372,7 +460,9 @@ nl{
         }\r
         kali{\r
             miscPatterns{\r
+                approximately{"~{0}"}\r
                 atLeast{"{0}+"}\r
+                atMost{"≤{0}"}\r
                 range{"{0}-{1}"}\r
             }\r
             patterns{\r
@@ -399,7 +489,9 @@ nl{
         }\r
         khmr{\r
             miscPatterns{\r
+                approximately{"~{0}"}\r
                 atLeast{"{0}+"}\r
+                atMost{"≤{0}"}\r
                 range{"{0}-{1}"}\r
             }\r
             patterns{\r
@@ -426,7 +518,9 @@ nl{
         }\r
         knda{\r
             miscPatterns{\r
+                approximately{"~{0}"}\r
                 atLeast{"{0}+"}\r
+                atMost{"≤{0}"}\r
                 range{"{0}-{1}"}\r
             }\r
             patterns{\r
@@ -453,7 +547,9 @@ nl{
         }\r
         lana{\r
             miscPatterns{\r
+                approximately{"~{0}"}\r
                 atLeast{"{0}+"}\r
+                atMost{"≤{0}"}\r
                 range{"{0}-{1}"}\r
             }\r
             patterns{\r
@@ -480,7 +576,9 @@ nl{
         }\r
         lanatham{\r
             miscPatterns{\r
+                approximately{"~{0}"}\r
                 atLeast{"{0}+"}\r
+                atMost{"≤{0}"}\r
                 range{"{0}-{1}"}\r
             }\r
             patterns{\r
@@ -507,7 +605,9 @@ nl{
         }\r
         laoo{\r
             miscPatterns{\r
+                approximately{"~{0}"}\r
                 atLeast{"{0}+"}\r
+                atMost{"≤{0}"}\r
                 range{"{0}-{1}"}\r
             }\r
             patterns{\r
@@ -534,7 +634,9 @@ nl{
         }\r
         latn{\r
             miscPatterns{\r
+                approximately{"~{0}"}\r
                 atLeast{"{0}+"}\r
+                atMost{"≤{0}"}\r
                 range{"{0}-{1}"}\r
             }\r
             patterns{\r
@@ -715,7 +817,9 @@ nl{
         }\r
         lepc{\r
             miscPatterns{\r
+                approximately{"~{0}"}\r
                 atLeast{"{0}+"}\r
+                atMost{"≤{0}"}\r
                 range{"{0}-{1}"}\r
             }\r
             patterns{\r
@@ -742,7 +846,9 @@ nl{
         }\r
         limb{\r
             miscPatterns{\r
+                approximately{"~{0}"}\r
                 atLeast{"{0}+"}\r
+                atMost{"≤{0}"}\r
                 range{"{0}-{1}"}\r
             }\r
             patterns{\r
@@ -779,7 +885,9 @@ nl{
         minimumGroupingDigits{"1"}\r
         mlym{\r
             miscPatterns{\r
+                approximately{"~{0}"}\r
                 atLeast{"{0}+"}\r
+                atMost{"≤{0}"}\r
                 range{"{0}-{1}"}\r
             }\r
             patterns{\r
@@ -806,7 +914,9 @@ nl{
         }\r
         mong{\r
             miscPatterns{\r
+                approximately{"~{0}"}\r
                 atLeast{"{0}+"}\r
+                atMost{"≤{0}"}\r
                 range{"{0}-{1}"}\r
             }\r
             patterns{\r
@@ -833,7 +943,9 @@ nl{
         }\r
         mtei{\r
             miscPatterns{\r
+                approximately{"~{0}"}\r
                 atLeast{"{0}+"}\r
+                atMost{"≤{0}"}\r
                 range{"{0}-{1}"}\r
             }\r
             patterns{\r
@@ -860,7 +972,9 @@ nl{
         }\r
         mymr{\r
             miscPatterns{\r
+                approximately{"~{0}"}\r
                 atLeast{"{0}+"}\r
+                atMost{"≤{0}"}\r
                 range{"{0}-{1}"}\r
             }\r
             patterns{\r
@@ -887,7 +1001,9 @@ nl{
         }\r
         mymrshan{\r
             miscPatterns{\r
+                approximately{"~{0}"}\r
                 atLeast{"{0}+"}\r
+                atMost{"≤{0}"}\r
                 range{"{0}-{1}"}\r
             }\r
             patterns{\r
@@ -915,7 +1031,9 @@ nl{
         native{"latn"}\r
         nkoo{\r
             miscPatterns{\r
+                approximately{"~{0}"}\r
                 atLeast{"{0}+"}\r
+                atMost{"≤{0}"}\r
                 range{"{0}-{1}"}\r
             }\r
             patterns{\r
@@ -942,7 +1060,9 @@ nl{
         }\r
         olck{\r
             miscPatterns{\r
+                approximately{"~{0}"}\r
                 atLeast{"{0}+"}\r
+                atMost{"≤{0}"}\r
                 range{"{0}-{1}"}\r
             }\r
             patterns{\r
@@ -969,7 +1089,9 @@ nl{
         }\r
         orya{\r
             miscPatterns{\r
+                approximately{"~{0}"}\r
                 atLeast{"{0}+"}\r
+                atMost{"≤{0}"}\r
                 range{"{0}-{1}"}\r
             }\r
             patterns{\r
@@ -996,7 +1118,38 @@ nl{
         }\r
         osma{\r
             miscPatterns{\r
+                approximately{"~{0}"}\r
+                atLeast{"{0}+"}\r
+                atMost{"≤{0}"}\r
+                range{"{0}-{1}"}\r
+            }\r
+            patterns{\r
+                accountingFormat{"¤ #,##0.00;(¤ #,##0.00)"}\r
+                currencyFormat{"¤ #,##0.00;¤ -#,##0.00"}\r
+                decimalFormat{"#,##0.###"}\r
+                percentFormat{"#,##0%"}\r
+                scientificFormat{"#E0"}\r
+            }\r
+            symbols{\r
+                decimal{","}\r
+                exponential{"E"}\r
+                group{"."}\r
+                infinity{"∞"}\r
+                list{";"}\r
+                minusSign{"-"}\r
+                nan{"NaN"}\r
+                perMille{"‰"}\r
+                percentSign{"%"}\r
+                plusSign{"+"}\r
+                superscriptingExponent{"×"}\r
+                timeSeparator{":"}\r
+            }\r
+        }\r
+        rohg{\r
+            miscPatterns{\r
+                approximately{"~{0}"}\r
                 atLeast{"{0}+"}\r
+                atMost{"≤{0}"}\r
                 range{"{0}-{1}"}\r
             }\r
             patterns{\r
@@ -1023,7 +1176,9 @@ nl{
         }\r
         saur{\r
             miscPatterns{\r
+                approximately{"~{0}"}\r
                 atLeast{"{0}+"}\r
+                atMost{"≤{0}"}\r
                 range{"{0}-{1}"}\r
             }\r
             patterns{\r
@@ -1050,7 +1205,9 @@ nl{
         }\r
         shrd{\r
             miscPatterns{\r
+                approximately{"~{0}"}\r
                 atLeast{"{0}+"}\r
+                atMost{"≤{0}"}\r
                 range{"{0}-{1}"}\r
             }\r
             patterns{\r
@@ -1077,7 +1234,9 @@ nl{
         }\r
         sora{\r
             miscPatterns{\r
+                approximately{"~{0}"}\r
                 atLeast{"{0}+"}\r
+                atMost{"≤{0}"}\r
                 range{"{0}-{1}"}\r
             }\r
             patterns{\r
@@ -1104,7 +1263,9 @@ nl{
         }\r
         sund{\r
             miscPatterns{\r
+                approximately{"~{0}"}\r
                 atLeast{"{0}+"}\r
+                atMost{"≤{0}"}\r
                 range{"{0}-{1}"}\r
             }\r
             patterns{\r
@@ -1131,7 +1292,9 @@ nl{
         }\r
         takr{\r
             miscPatterns{\r
+                approximately{"~{0}"}\r
                 atLeast{"{0}+"}\r
+                atMost{"≤{0}"}\r
                 range{"{0}-{1}"}\r
             }\r
             patterns{\r
@@ -1158,7 +1321,9 @@ nl{
         }\r
         talu{\r
             miscPatterns{\r
+                approximately{"~{0}"}\r
                 atLeast{"{0}+"}\r
+                atMost{"≤{0}"}\r
                 range{"{0}-{1}"}\r
             }\r
             patterns{\r
@@ -1185,7 +1350,9 @@ nl{
         }\r
         tamldec{\r
             miscPatterns{\r
+                approximately{"~{0}"}\r
                 atLeast{"{0}+"}\r
+                atMost{"≤{0}"}\r
                 range{"{0}-{1}"}\r
             }\r
             patterns{\r
@@ -1212,7 +1379,9 @@ nl{
         }\r
         telu{\r
             miscPatterns{\r
+                approximately{"~{0}"}\r
                 atLeast{"{0}+"}\r
+                atMost{"≤{0}"}\r
                 range{"{0}-{1}"}\r
             }\r
             patterns{\r
@@ -1239,7 +1408,9 @@ nl{
         }\r
         thai{\r
             miscPatterns{\r
+                approximately{"~{0}"}\r
                 atLeast{"{0}+"}\r
+                atMost{"≤{0}"}\r
                 range{"{0}-{1}"}\r
             }\r
             patterns{\r
@@ -1266,7 +1437,9 @@ nl{
         }\r
         tibt{\r
             miscPatterns{\r
+                approximately{"~{0}"}\r
                 atLeast{"{0}+"}\r
+                atMost{"≤{0}"}\r
                 range{"{0}-{1}"}\r
             }\r
             patterns{\r
@@ -1293,7 +1466,9 @@ nl{
         }\r
         vaii{\r
             miscPatterns{\r
+                approximately{"~{0}"}\r
                 atLeast{"{0}+"}\r
+                atMost{"≤{0}"}\r
                 range{"{0}-{1}"}\r
             }\r
             patterns{\r
@@ -1319,7 +1494,7 @@ nl{
             }\r
         }\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.45.14"}\r
     calendar{\r
         buddhist{\r
             DateTimePatterns{\r
@@ -1375,6 +1550,104 @@ nl{
                     "BE",\r
                 }\r
             }\r
+            intervalFormats{\r
+                H{\r
+                    H{"HH–HH"}\r
+                }\r
+                Hm{\r
+                    H{"HH:mm–HH:mm"}\r
+                    m{"HH:mm–HH:mm"}\r
+                }\r
+                Hmv{\r
+                    H{"HH:mm–HH:mm v"}\r
+                    m{"HH:mm–HH:mm v"}\r
+                }\r
+                Hv{\r
+                    H{"HH–HH v"}\r
+                }\r
+                M{\r
+                    M{"M–M"}\r
+                }\r
+                MEd{\r
+                    M{"E dd-MM – E dd-MM"}\r
+                    d{"E dd-MM – E dd-MM"}\r
+                }\r
+                MMM{\r
+                    M{"MMM–MMM"}\r
+                }\r
+                MMMEd{\r
+                    M{"E d MMM – E d MMM"}\r
+                    d{"E d – E d MMM"}\r
+                }\r
+                MMMM{\r
+                    M{"MMMM–MMMM"}\r
+                }\r
+                MMMd{\r
+                    M{"d MMM – d MMM"}\r
+                    d{"d–d MMM"}\r
+                }\r
+                Md{\r
+                    M{"dd-MM – dd-MM"}\r
+                    d{"dd-MM – dd-MM"}\r
+                }\r
+                d{\r
+                    d{"d–d"}\r
+                }\r
+                fallback{"{0} - {1}"}\r
+                h{\r
+                    a{"h a – h a"}\r
+                    h{"h–h a"}\r
+                }\r
+                hm{\r
+                    a{"h:mm a – h:mm a"}\r
+                    h{"h:mm–h:mm a"}\r
+                    m{"h:mm–h:mm a"}\r
+                }\r
+                hmv{\r
+                    a{"h:mm a – h:mm a v"}\r
+                    h{"h:mm–h:mm a v"}\r
+                    m{"h:mm–h:mm a v"}\r
+                }\r
+                hv{\r
+                    a{"h a – h a v"}\r
+                    h{"h–h a v"}\r
+                }\r
+                y{\r
+                    y{"y–y G"}\r
+                }\r
+                yM{\r
+                    M{"MM-y – MM-y G"}\r
+                    y{"MM-y – MM-y G"}\r
+                }\r
+                yMEd{\r
+                    M{"E dd-MM-y – E dd-MM-y G"}\r
+                    d{"E dd-MM-y – E dd-MM-y G"}\r
+                    y{"E dd-MM-y – E dd-MM-y G"}\r
+                }\r
+                yMMM{\r
+                    M{"MMM–MMM y G"}\r
+                    y{"MMM y – MMM y G"}\r
+                }\r
+                yMMMEd{\r
+                    M{"E d MMM – E d MMM y G"}\r
+                    d{"E d – E d MMM y G"}\r
+                    y{"E d MMM y – E d MMM y G"}\r
+                }\r
+                yMMMM{\r
+                    M{"MMMM–MMMM y G"}\r
+                    y{"MMMM y – MMMM y G"}\r
+                }\r
+                yMMMd{\r
+                    M{"d MMM – d MMM y G"}\r
+                    d{"d–d MMM y G"}\r
+                    y{"d MMM y – d MMM y G"}\r
+                }\r
+                yMd{\r
+                    M{"dd-MM-y – dd-MM-y G"}\r
+                    d{"dd-MM-y – dd-MM-y G"}\r
+                    y{"dd-MM-y – dd-MM-y G"}\r
+                }\r
+            }\r
         }\r
         chinese{\r
             DateTimePatterns{\r
@@ -1393,7 +1666,12 @@ nl{
                 "{1} {0}",\r
             }\r
             availableFormats{\r
+                Bh{"h B"}\r
+                Bhm{"h:mm B"}\r
+                Bhms{"h:mm:ss B"}\r
                 E{"ccc"}\r
+                EBhm{"E h:mm B"}\r
+                EBhms{"E h:mm:ss B"}\r
                 Ed{"E d"}\r
                 Gy{"U"}\r
                 GyMMM{"MMM U"}\r
@@ -2393,8 +2671,47 @@ nl{
             }\r
         }\r
         coptic{\r
+            DateTimePatterns{\r
+                "HH:mm:ss zzzz",\r
+                "HH:mm:ss z",\r
+                "HH:mm:ss",\r
+                "HH:mm",\r
+                "EEEE d MMMM y G",\r
+                "d MMMM y G",\r
+                "d MMM y G",\r
+                "dd-MM-yy GGGGG",\r
+                "{1} {0}",\r
+                "{1} 'om' {0}",\r
+                "{1} 'om' {0}",\r
+                "{1} {0}",\r
+                "{1} {0}",\r
+            }\r
             availableFormats{\r
                 E{"ccc"}\r
+                Ed{"E d"}\r
+                Gy{"y G"}\r
+                GyMMM{"MMM y G"}\r
+                GyMMMEd{"E d MMM y G"}\r
+                GyMMMd{"d MMM y G"}\r
+                M{"L"}\r
+                MEd{"E d-M"}\r
+                MMM{"LLL"}\r
+                MMMEd{"E d MMM"}\r
+                MMMMd{"d MMMM"}\r
+                MMMd{"d MMM"}\r
+                Md{"d-M"}\r
+                d{"d"}\r
+                y{"y G"}\r
+                yyyy{"y G"}\r
+                yyyyM{"M-y GGGGG"}\r
+                yyyyMEd{"E d-M-y GGGGG"}\r
+                yyyyMMM{"MMM y G"}\r
+                yyyyMMMEd{"E d MMM y G"}\r
+                yyyyMMMM{"MMMM y G"}\r
+                yyyyMMMd{"d MMM y G"}\r
+                yyyyMd{"d-M-y GGGGG"}\r
+                yyyyQQQ{"QQQ y G"}\r
+                yyyyQQQQ{"QQQQ y G"}\r
             }\r
             eras{\r
                 abbreviated{\r
@@ -2410,42 +2727,140 @@ nl{
                     "ERA1",\r
                 }\r
             }\r
-            monthNames{\r
-                format{\r
-                    abbreviated{\r
-                        "Tut",\r
-                        "Babah",\r
-                        "Hatur",\r
-                        "Kiyahk",\r
-                        "Tubah",\r
-                        "Amshir",\r
-                        "Baramhat",\r
-                        "Baramundah",\r
-                        "Bashans",\r
-                        "Ba’unah",\r
-                        "Abib",\r
-                        "Misra",\r
-                        "Nasi",\r
-                    }\r
-                    narrow{\r
-                        "1",\r
-                        "2",\r
-                        "3",\r
-                        "4",\r
-                        "5",\r
-                        "6",\r
-                        "7",\r
-                        "8",\r
-                        "9",\r
-                        "10",\r
-                        "11",\r
-                        "12",\r
-                        "13",\r
-                    }\r
-                    wide{\r
-                        "Tut",\r
-                        "Babah",\r
-                        "Hatur",\r
+            intervalFormats{\r
+                H{\r
+                    H{"HH–HH"}\r
+                }\r
+                Hm{\r
+                    H{"HH:mm–HH:mm"}\r
+                    m{"HH:mm–HH:mm"}\r
+                }\r
+                Hmv{\r
+                    H{"HH:mm–HH:mm v"}\r
+                    m{"HH:mm–HH:mm v"}\r
+                }\r
+                Hv{\r
+                    H{"HH–HH v"}\r
+                }\r
+                M{\r
+                    M{"M–M"}\r
+                }\r
+                MEd{\r
+                    M{"E dd-MM – E dd-MM"}\r
+                    d{"E dd-MM – E dd-MM"}\r
+                }\r
+                MMM{\r
+                    M{"MMM–MMM"}\r
+                }\r
+                MMMEd{\r
+                    M{"E d MMM – E d MMM"}\r
+                    d{"E d – E d MMM"}\r
+                }\r
+                MMMM{\r
+                    M{"MMMM–MMMM"}\r
+                }\r
+                MMMd{\r
+                    M{"d MMM – d MMM"}\r
+                    d{"d–d MMM"}\r
+                }\r
+                Md{\r
+                    M{"dd-MM – dd-MM"}\r
+                    d{"dd-MM – dd-MM"}\r
+                }\r
+                d{\r
+                    d{"d–d"}\r
+                }\r
+                fallback{"{0} - {1}"}\r
+                h{\r
+                    a{"h a – h a"}\r
+                    h{"h–h a"}\r
+                }\r
+                hm{\r
+                    a{"h:mm a – h:mm a"}\r
+                    h{"h:mm–h:mm a"}\r
+                    m{"h:mm–h:mm a"}\r
+                }\r
+                hmv{\r
+                    a{"h:mm a – h:mm a v"}\r
+                    h{"h:mm–h:mm a v"}\r
+                    m{"h:mm–h:mm a v"}\r
+                }\r
+                hv{\r
+                    a{"h a – h a v"}\r
+                    h{"h–h a v"}\r
+                }\r
+                y{\r
+                    y{"y–y G"}\r
+                }\r
+                yM{\r
+                    M{"MM-y – MM-y G"}\r
+                    y{"MM-y – MM-y G"}\r
+                }\r
+                yMEd{\r
+                    M{"E dd-MM-y – E dd-MM-y G"}\r
+                    d{"E dd-MM-y – E dd-MM-y G"}\r
+                    y{"E dd-MM-y – E dd-MM-y G"}\r
+                }\r
+                yMMM{\r
+                    M{"MMM–MMM y G"}\r
+                    y{"MMM y – MMM y G"}\r
+                }\r
+                yMMMEd{\r
+                    M{"E d MMM – E d MMM y G"}\r
+                    d{"E d – E d MMM y G"}\r
+                    y{"E d MMM y – E d MMM y G"}\r
+                }\r
+                yMMMM{\r
+                    M{"MMMM–MMMM y G"}\r
+                    y{"MMMM y – MMMM y G"}\r
+                }\r
+                yMMMd{\r
+                    M{"d MMM – d MMM y G"}\r
+                    d{"d–d MMM y G"}\r
+                    y{"d MMM y – d MMM y G"}\r
+                }\r
+                yMd{\r
+                    M{"dd-MM-y – dd-MM-y G"}\r
+                    d{"dd-MM-y – dd-MM-y G"}\r
+                    y{"dd-MM-y – dd-MM-y G"}\r
+                }\r
+            }\r
+            monthNames{\r
+                format{\r
+                    abbreviated{\r
+                        "Tut",\r
+                        "Babah",\r
+                        "Hatur",\r
+                        "Kiyahk",\r
+                        "Tubah",\r
+                        "Amshir",\r
+                        "Baramhat",\r
+                        "Baramundah",\r
+                        "Bashans",\r
+                        "Ba’unah",\r
+                        "Abib",\r
+                        "Misra",\r
+                        "Nasi",\r
+                    }\r
+                    narrow{\r
+                        "1",\r
+                        "2",\r
+                        "3",\r
+                        "4",\r
+                        "5",\r
+                        "6",\r
+                        "7",\r
+                        "8",\r
+                        "9",\r
+                        "10",\r
+                        "11",\r
+                        "12",\r
+                        "13",\r
+                    }\r
+                    wide{\r
+                        "Tut",\r
+                        "Babah",\r
+                        "Hatur",\r
                         "Kiyahk",\r
                         "Tubah",\r
                         "Amshir",\r
@@ -2508,6 +2923,53 @@ nl{
             }\r
         }\r
         dangi{\r
+            DateTimePatterns{\r
+                "HH:mm:ss zzzz",\r
+                "HH:mm:ss z",\r
+                "HH:mm:ss",\r
+                "HH:mm",\r
+                "EEEE d MMMM r (U)",\r
+                "d MMMM r (U)",\r
+                "d MMM r",\r
+                "dd-MM-r",\r
+                "{1} {0}",\r
+                "{1} 'om' {0}",\r
+                "{1} 'om' {0}",\r
+                "{1} {0}",\r
+                "{1} {0}",\r
+            }\r
+            availableFormats{\r
+                E{"ccc"}\r
+                Ed{"E d"}\r
+                Gy{"r (U)"}\r
+                GyMMM{"MMM r (U)"}\r
+                GyMMMEd{"E d MMM r (U)"}\r
+                GyMMMd{"d MMM r"}\r
+                M{"L"}\r
+                MEd{"E d-M"}\r
+                MMM{"LLL"}\r
+                MMMEd{"E d MMM"}\r
+                MMMMd{"d MMMM"}\r
+                MMMd{"d MMM"}\r
+                Md{"d-M"}\r
+                UM{"MM U"}\r
+                UMMM{"MMM U"}\r
+                UMMMd{"d MMM U"}\r
+                UMd{"d-MM U"}\r
+                d{"d"}\r
+                y{"r (U)"}\r
+                yMd{"d-M-r"}\r
+                yyyy{"r (U)"}\r
+                yyyyM{"M-r"}\r
+                yyyyMEd{"E d-M-r"}\r
+                yyyyMMM{"MMM r (U)"}\r
+                yyyyMMMEd{"E d MMM r (U)"}\r
+                yyyyMMMM{"MMMM r (U)"}\r
+                yyyyMMMd{"d MMM r"}\r
+                yyyyMd{"d-M-r"}\r
+                yyyyQQQ{"QQQ r (U)"}\r
+                yyyyQQQQ{"QQQQ r (U)"}\r
+            }\r
             cyclicNameSets{\r
                 dayParts{\r
                     format{\r
@@ -3254,6 +3716,101 @@ nl{
                     }\r
                 }\r
             }\r
+            intervalFormats{\r
+                H{\r
+                    H{"HH–HH"}\r
+                }\r
+                Hm{\r
+                    H{"HH:mm–HH:mm"}\r
+                    m{"HH:mm–HH:mm"}\r
+                }\r
+                Hmv{\r
+                    H{"HH:mm–HH:mm v"}\r
+                    m{"HH:mm–HH:mm v"}\r
+                }\r
+                Hv{\r
+                    H{"HH–HH v"}\r
+                }\r
+                M{\r
+                    M{"MM–MM"}\r
+                }\r
+                MEd{\r
+                    M{"MM-dd, E – MM-dd, E"}\r
+                    d{"MM-dd, E – MM-dd, E"}\r
+                }\r
+                MMM{\r
+                    M{"LLL–LLL"}\r
+                }\r
+                MMMEd{\r
+                    M{"MMM d, E – MMM d, E"}\r
+                    d{"MMM d, E – MMM d, E"}\r
+                }\r
+                MMMd{\r
+                    M{"MMM d – MMM d"}\r
+                    d{"MMM d–d"}\r
+                }\r
+                Md{\r
+                    M{"MM-dd – MM-dd"}\r
+                    d{"MM-dd – MM-dd"}\r
+                }\r
+                d{\r
+                    d{"d–d"}\r
+                }\r
+                fallback{"{0} – {1}"}\r
+                h{\r
+                    a{"h a – h a"}\r
+                    h{"h–h a"}\r
+                }\r
+                hm{\r
+                    a{"h:mm a – h:mm a"}\r
+                    h{"h:mm–h:mm a"}\r
+                    m{"h:mm–h:mm a"}\r
+                }\r
+                hmv{\r
+                    a{"h:mm a – h:mm a v"}\r
+                    h{"h:mm–h:mm a v"}\r
+                    m{"h:mm–h:mm a v"}\r
+                }\r
+                hv{\r
+                    a{"h a – h a v"}\r
+                    h{"h–h a v"}\r
+                }\r
+                y{\r
+                    y{"U–U"}\r
+                }\r
+                yM{\r
+                    M{"y-MM – y-MM"}\r
+                    y{"y-MM – y-MM"}\r
+                }\r
+                yMEd{\r
+                    M{"y-MM-dd, E – y-MM-dd, E"}\r
+                    d{"y-MM-dd, E – y-MM-dd, E"}\r
+                    y{"y-MM-dd, E – y-MM-dd, E"}\r
+                }\r
+                yMMM{\r
+                    M{"U MMM–MMM"}\r
+                    y{"U MMM – U MMM"}\r
+                }\r
+                yMMMEd{\r
+                    M{"U MMM d, E – MMM d, E"}\r
+                    d{"U MMM d, E – MMM d, E"}\r
+                    y{"U MMM d, E – U MMM d, E"}\r
+                }\r
+                yMMMM{\r
+                    M{"U MMMM–MMMM"}\r
+                    y{"U MMMM – U MMMM"}\r
+                }\r
+                yMMMd{\r
+                    M{"U MMM d – MMM d"}\r
+                    d{"U MMM d–d"}\r
+                    y{"U MMM d – U MMM d"}\r
+                }\r
+                yMd{\r
+                    M{"y-MM-dd – y-MM-dd"}\r
+                    d{"y-MM-dd – y-MM-dd"}\r
+                    y{"y-MM-dd – y-MM-dd"}\r
+                }\r
+            }\r
             monthNames{\r
                 format{\r
                     abbreviated{\r
@@ -3391,6 +3948,7 @@ nl{
                 "{1} {0}",\r
             }\r
             availableFormats{\r
+                E{"ccc"}\r
                 Ed{"E d"}\r
                 Gy{"y G"}\r
                 GyMMM{"MMM y G"}\r
@@ -3431,9 +3989,23 @@ nl{
                 }\r
             }\r
             intervalFormats{\r
-                M{\r
-                    M{"M–M"}\r
-                }\r
+                H{\r
+                    H{"HH–HH"}\r
+                }\r
+                Hm{\r
+                    H{"HH:mm–HH:mm"}\r
+                    m{"HH:mm–HH:mm"}\r
+                }\r
+                Hmv{\r
+                    H{"HH:mm–HH:mm v"}\r
+                    m{"HH:mm–HH:mm v"}\r
+                }\r
+                Hv{\r
+                    H{"HH–HH v"}\r
+                }\r
+                M{\r
+                    M{"M–M"}\r
+                }\r
                 MEd{\r
                     M{"E dd-MM – E dd-MM"}\r
                     d{"E dd-MM – E dd-MM"}\r
@@ -3459,6 +4031,25 @@ nl{
                 d{\r
                     d{"d–d"}\r
                 }\r
+                fallback{"{0} - {1}"}\r
+                h{\r
+                    a{"h a – h a"}\r
+                    h{"h–h a"}\r
+                }\r
+                hm{\r
+                    a{"h:mm a – h:mm a"}\r
+                    h{"h:mm–h:mm a"}\r
+                    m{"h:mm–h:mm a"}\r
+                }\r
+                hmv{\r
+                    a{"h:mm a – h:mm a v"}\r
+                    h{"h:mm–h:mm a v"}\r
+                    m{"h:mm–h:mm a v"}\r
+                }\r
+                hv{\r
+                    a{"h a – h a v"}\r
+                    h{"h–h a v"}\r
+                }\r
                 y{\r
                     y{"y–y G"}\r
                 }\r
@@ -3784,7 +4375,7 @@ nl{
                 "EEEE d MMMM y",\r
                 "d MMMM y",\r
                 "d MMM y",\r
-                "dd-MM-yy",\r
+                "dd-MM-y",\r
                 "{1} {0}",\r
                 "{1} 'om' {0}",\r
                 "{1} 'om' {0}",\r
@@ -3929,25 +4520,25 @@ nl{
             dayPeriod{\r
                 format{\r
                     abbreviated{\r
-                        afternoon1{"â\80\98s middags"}\r
-                        evening1{"â\80\98s avonds"}\r
+                        afternoon1{"â\80\99s middags"}\r
+                        evening1{"â\80\99s avonds"}\r
                         midnight{"middernacht"}\r
-                        morning1{"â\80\98s ochtends"}\r
-                        night1{"â\80\98s nachts"}\r
+                        morning1{"â\80\99s ochtends"}\r
+                        night1{"â\80\99s nachts"}\r
                     }\r
                     narrow{\r
-                        afternoon1{"â\80\98s middags"}\r
-                        evening1{"â\80\98s avonds"}\r
+                        afternoon1{"â\80\99s middags"}\r
+                        evening1{"â\80\99s avonds"}\r
                         midnight{"middernacht"}\r
-                        morning1{"â\80\98s ochtends"}\r
-                        night1{"â\80\98s nachts"}\r
+                        morning1{"â\80\99s ochtends"}\r
+                        night1{"â\80\99s nachts"}\r
                     }\r
                     wide{\r
-                        afternoon1{"â\80\98s middags"}\r
-                        evening1{"â\80\98s avonds"}\r
+                        afternoon1{"â\80\99s middags"}\r
+                        evening1{"â\80\99s avonds"}\r
                         midnight{"middernacht"}\r
-                        morning1{"â\80\98s ochtends"}\r
-                        night1{"â\80\98s nachts"}\r
+                        morning1{"â\80\99s ochtends"}\r
+                        night1{"â\80\99s nachts"}\r
                     }\r
                 }\r
                 stand-alone{\r
@@ -4253,6 +4844,33 @@ nl{
                 "{1} {0}",\r
                 "{1} {0}",\r
             }\r
+            availableFormats{\r
+                E{"ccc"}\r
+                Ed{"E d"}\r
+                Gy{"y G"}\r
+                GyMMM{"MMM y G"}\r
+                GyMMMEd{"E d MMM y G"}\r
+                GyMMMd{"d MMM y G"}\r
+                M{"L"}\r
+                MEd{"E d MMM"}\r
+                MMM{"LLL"}\r
+                MMMEd{"E d MMM"}\r
+                MMMMd{"d MMMM"}\r
+                MMMd{"d MMM"}\r
+                Md{"d MMM"}\r
+                d{"d"}\r
+                y{"y"}\r
+                yyyy{"y G"}\r
+                yyyyM{"M-y GGGGG"}\r
+                yyyyMEd{"E d-M-y GGGGG"}\r
+                yyyyMMM{"MMM y G"}\r
+                yyyyMMMEd{"E d MMM y G"}\r
+                yyyyMMMM{"MMMM y G"}\r
+                yyyyMMMd{"d MMM y G"}\r
+                yyyyMd{"d-M-y GGGGG"}\r
+                yyyyQQQ{"QQQ y G"}\r
+                yyyyQQQQ{"QQQQ y G"}\r
+            }\r
             eras{\r
                 abbreviated{\r
                     "AM",\r
@@ -4264,6 +4882,104 @@ nl{
                     "AM",\r
                 }\r
             }\r
+            intervalFormats{\r
+                H{\r
+                    H{"HH–HH"}\r
+                }\r
+                Hm{\r
+                    H{"HH:mm–HH:mm"}\r
+                    m{"HH:mm–HH:mm"}\r
+                }\r
+                Hmv{\r
+                    H{"HH:mm–HH:mm v"}\r
+                    m{"HH:mm–HH:mm v"}\r
+                }\r
+                Hv{\r
+                    H{"HH–HH v"}\r
+                }\r
+                M{\r
+                    M{"M–M"}\r
+                }\r
+                MEd{\r
+                    M{"E dd-MM – E dd-MM"}\r
+                    d{"E dd-MM – E dd-MM"}\r
+                }\r
+                MMM{\r
+                    M{"MMM–MMM"}\r
+                }\r
+                MMMEd{\r
+                    M{"E d MMM – E d MMM"}\r
+                    d{"E d – E d MMM"}\r
+                }\r
+                MMMM{\r
+                    M{"MMMM–MMMM"}\r
+                }\r
+                MMMd{\r
+                    M{"d MMM – d MMM"}\r
+                    d{"d–d MMM"}\r
+                }\r
+                Md{\r
+                    M{"dd-MM – dd-MM"}\r
+                    d{"dd-MM – dd-MM"}\r
+                }\r
+                d{\r
+                    d{"d–d"}\r
+                }\r
+                fallback{"{0} - {1}"}\r
+                h{\r
+                    a{"h a – h a"}\r
+                    h{"h–h a"}\r
+                }\r
+                hm{\r
+                    a{"h:mm a – h:mm a"}\r
+                    h{"h:mm–h:mm a"}\r
+                    m{"h:mm–h:mm a"}\r
+                }\r
+                hmv{\r
+                    a{"h:mm a – h:mm a v"}\r
+                    h{"h:mm–h:mm a v"}\r
+                    m{"h:mm–h:mm a v"}\r
+                }\r
+                hv{\r
+                    a{"h a – h a v"}\r
+                    h{"h–h a v"}\r
+                }\r
+                y{\r
+                    y{"y–y G"}\r
+                }\r
+                yM{\r
+                    M{"MM-y – MM-y G"}\r
+                    y{"MM-y – MM-y G"}\r
+                }\r
+                yMEd{\r
+                    M{"E dd-MM-y – E dd-MM-y G"}\r
+                    d{"E dd-MM-y – E dd-MM-y G"}\r
+                    y{"E dd-MM-y – E dd-MM-y G"}\r
+                }\r
+                yMMM{\r
+                    M{"MMM–MMM y G"}\r
+                    y{"MMM y – MMM y G"}\r
+                }\r
+                yMMMEd{\r
+                    M{"E d MMM – E d MMM y G"}\r
+                    d{"E d – E d MMM y G"}\r
+                    y{"E d MMM y – E d MMM y G"}\r
+                }\r
+                yMMMM{\r
+                    M{"MMMM–MMMM y G"}\r
+                    y{"MMMM y – MMMM y G"}\r
+                }\r
+                yMMMd{\r
+                    M{"d MMM – d MMM y G"}\r
+                    d{"d–d MMM y G"}\r
+                    y{"d MMM y – d MMM y G"}\r
+                }\r
+                yMd{\r
+                    M{"dd-MM-y – dd-MM-y G"}\r
+                    d{"dd-MM-y – dd-MM-y G"}\r
+                    y{"dd-MM-y – dd-MM-y G"}\r
+                }\r
+            }\r
             monthNames{\r
                 format{\r
                     abbreviated{\r
@@ -4368,6 +5084,48 @@ nl{
             }\r
         }\r
         indian{\r
+            DateTimePatterns{\r
+                "HH:mm:ss zzzz",\r
+                "HH:mm:ss z",\r
+                "HH:mm:ss",\r
+                "HH:mm",\r
+                "EEEE d MMMM y G",\r
+                "d MMMM y G",\r
+                "d MMM y G",\r
+                "dd-MM-yy GGGGG",\r
+                "{1} {0}",\r
+                "{1} 'om' {0}",\r
+                "{1} 'om' {0}",\r
+                "{1} {0}",\r
+                "{1} {0}",\r
+            }\r
+            availableFormats{\r
+                E{"ccc"}\r
+                Ed{"E d"}\r
+                Gy{"y G"}\r
+                GyMMM{"MMM y G"}\r
+                GyMMMEd{"E d MMM y G"}\r
+                GyMMMd{"d MMM y G"}\r
+                M{"L"}\r
+                MEd{"E d-M"}\r
+                MMM{"LLL"}\r
+                MMMEd{"E d MMM"}\r
+                MMMMd{"d MMMM"}\r
+                MMMd{"d MMM"}\r
+                Md{"d-M"}\r
+                d{"d"}\r
+                y{"y G"}\r
+                yyyy{"y G"}\r
+                yyyyM{"M-y GGGGG"}\r
+                yyyyMEd{"E d-M-y GGGGG"}\r
+                yyyyMMM{"MMM y G"}\r
+                yyyyMMMEd{"E d MMM y G"}\r
+                yyyyMMMM{"MMMM y G"}\r
+                yyyyMMMd{"d MMM y G"}\r
+                yyyyMd{"d-M-y GGGGG"}\r
+                yyyyQQQ{"QQQ y G"}\r
+                yyyyQQQQ{"QQQQ y G"}\r
+            }\r
             eras{\r
                 abbreviated{\r
                     "Saka",\r
@@ -4379,58 +5137,156 @@ nl{
                     "Saka",\r
                 }\r
             }\r
-            monthNames{\r
-                format{\r
-                    abbreviated{\r
-                        "Chaitra",\r
-                        "Vaishakha",\r
-                        "Jyeshtha",\r
-                        "Aashaadha",\r
-                        "Shraavana",\r
-                        "Bhaadrapada",\r
-                        "Ashvina",\r
-                        "Kaartika",\r
-                        "Agrahayana",\r
-                        "Pausha",\r
-                        "Maagha",\r
-                        "Phaalguna",\r
-                    }\r
-                    narrow{\r
-                        "1",\r
-                        "2",\r
-                        "3",\r
-                        "4",\r
-                        "5",\r
-                        "6",\r
-                        "7",\r
-                        "8",\r
-                        "9",\r
-                        "10",\r
-                        "11",\r
-                        "12",\r
-                    }\r
-                    wide{\r
-                        "Chaitra",\r
-                        "Vaishakha",\r
-                        "Jyeshtha",\r
-                        "Aashaadha",\r
-                        "Shraavana",\r
-                        "Bhaadrapada",\r
-                        "Ashvina",\r
-                        "Kaartika",\r
-                        "Agrahayana",\r
-                        "Pausha",\r
-                        "Maagha",\r
-                        "Phaalguna",\r
-                    }\r
+            intervalFormats{\r
+                H{\r
+                    H{"HH–HH"}\r
                 }\r
-                stand-alone{\r
-                    abbreviated{\r
-                        "Chaitra",\r
-                        "Vaishakha",\r
-                        "Jyeshtha",\r
-                        "Aashaadha",\r
-                        "Shraavana",\r
+                Hm{\r
+                    H{"HH:mm–HH:mm"}\r
+                    m{"HH:mm–HH:mm"}\r
+                }\r
+                Hmv{\r
+                    H{"HH:mm–HH:mm v"}\r
+                    m{"HH:mm–HH:mm v"}\r
+                }\r
+                Hv{\r
+                    H{"HH–HH v"}\r
+                }\r
+                M{\r
+                    M{"M–M"}\r
+                }\r
+                MEd{\r
+                    M{"E dd-MM – E dd-MM"}\r
+                    d{"E dd-MM – E dd-MM"}\r
+                }\r
+                MMM{\r
+                    M{"MMM–MMM"}\r
+                }\r
+                MMMEd{\r
+                    M{"E d MMM – E d MMM"}\r
+                    d{"E d – E d MMM"}\r
+                }\r
+                MMMM{\r
+                    M{"MMMM–MMMM"}\r
+                }\r
+                MMMd{\r
+                    M{"d MMM – d MMM"}\r
+                    d{"d–d MMM"}\r
+                }\r
+                Md{\r
+                    M{"dd-MM – dd-MM"}\r
+                    d{"dd-MM – dd-MM"}\r
+                }\r
+                d{\r
+                    d{"d–d"}\r
+                }\r
+                fallback{"{0} - {1}"}\r
+                h{\r
+                    a{"h a – h a"}\r
+                    h{"h–h a"}\r
+                }\r
+                hm{\r
+                    a{"h:mm a – h:mm a"}\r
+                    h{"h:mm–h:mm a"}\r
+                    m{"h:mm–h:mm a"}\r
+                }\r
+                hmv{\r
+                    a{"h:mm a – h:mm a v"}\r
+                    h{"h:mm–h:mm a v"}\r
+                    m{"h:mm–h:mm a v"}\r
+                }\r
+                hv{\r
+                    a{"h a – h a v"}\r
+                    h{"h–h a v"}\r
+                }\r
+                y{\r
+                    y{"y–y G"}\r
+                }\r
+                yM{\r
+                    M{"MM-y – MM-y G"}\r
+                    y{"MM-y – MM-y G"}\r
+                }\r
+                yMEd{\r
+                    M{"E dd-MM-y – E dd-MM-y G"}\r
+                    d{"E dd-MM-y – E dd-MM-y G"}\r
+                    y{"E dd-MM-y – E dd-MM-y G"}\r
+                }\r
+                yMMM{\r
+                    M{"MMM–MMM y G"}\r
+                    y{"MMM y – MMM y G"}\r
+                }\r
+                yMMMEd{\r
+                    M{"E d MMM – E d MMM y G"}\r
+                    d{"E d – E d MMM y G"}\r
+                    y{"E d MMM y – E d MMM y G"}\r
+                }\r
+                yMMMM{\r
+                    M{"MMMM–MMMM y G"}\r
+                    y{"MMMM y – MMMM y G"}\r
+                }\r
+                yMMMd{\r
+                    M{"d MMM – d MMM y G"}\r
+                    d{"d–d MMM y G"}\r
+                    y{"d MMM y – d MMM y G"}\r
+                }\r
+                yMd{\r
+                    M{"dd-MM-y – dd-MM-y G"}\r
+                    d{"dd-MM-y – dd-MM-y G"}\r
+                    y{"dd-MM-y – dd-MM-y G"}\r
+                }\r
+            }\r
+            monthNames{\r
+                format{\r
+                    abbreviated{\r
+                        "Chaitra",\r
+                        "Vaishakha",\r
+                        "Jyeshtha",\r
+                        "Aashaadha",\r
+                        "Shraavana",\r
+                        "Bhaadrapada",\r
+                        "Ashvina",\r
+                        "Kaartika",\r
+                        "Agrahayana",\r
+                        "Pausha",\r
+                        "Maagha",\r
+                        "Phaalguna",\r
+                    }\r
+                    narrow{\r
+                        "1",\r
+                        "2",\r
+                        "3",\r
+                        "4",\r
+                        "5",\r
+                        "6",\r
+                        "7",\r
+                        "8",\r
+                        "9",\r
+                        "10",\r
+                        "11",\r
+                        "12",\r
+                    }\r
+                    wide{\r
+                        "Chaitra",\r
+                        "Vaishakha",\r
+                        "Jyeshtha",\r
+                        "Aashaadha",\r
+                        "Shraavana",\r
+                        "Bhaadrapada",\r
+                        "Ashvina",\r
+                        "Kaartika",\r
+                        "Agrahayana",\r
+                        "Pausha",\r
+                        "Maagha",\r
+                        "Phaalguna",\r
+                    }\r
+                }\r
+                stand-alone{\r
+                    abbreviated{\r
+                        "Chaitra",\r
+                        "Vaishakha",\r
+                        "Jyeshtha",\r
+                        "Aashaadha",\r
+                        "Shraavana",\r
                         "Bhaadrapada",\r
                         "Ashvina",\r
                         "Kaartika",\r
@@ -4487,6 +5343,7 @@ nl{
                 "{1} {0}",\r
             }\r
             availableFormats{\r
+                E{"ccc"}\r
                 Ed{"E d"}\r
                 Gy{"y G"}\r
                 GyMMM{"MMM y G"}\r
@@ -4523,6 +5380,104 @@ nl{
                     "Saʻna Hizjria",\r
                 }\r
             }\r
+            intervalFormats{\r
+                H{\r
+                    H{"HH–HH"}\r
+                }\r
+                Hm{\r
+                    H{"HH:mm–HH:mm"}\r
+                    m{"HH:mm–HH:mm"}\r
+                }\r
+                Hmv{\r
+                    H{"HH:mm–HH:mm v"}\r
+                    m{"HH:mm–HH:mm v"}\r
+                }\r
+                Hv{\r
+                    H{"HH–HH v"}\r
+                }\r
+                M{\r
+                    M{"M–M"}\r
+                }\r
+                MEd{\r
+                    M{"E dd-MM – E dd-MM"}\r
+                    d{"E dd-MM – E dd-MM"}\r
+                }\r
+                MMM{\r
+                    M{"MMM–MMM"}\r
+                }\r
+                MMMEd{\r
+                    M{"E d MMM – E d MMM"}\r
+                    d{"E d – E d MMM"}\r
+                }\r
+                MMMM{\r
+                    M{"MMMM–MMMM"}\r
+                }\r
+                MMMd{\r
+                    M{"d MMM – d MMM"}\r
+                    d{"d–d MMM"}\r
+                }\r
+                Md{\r
+                    M{"dd-MM – dd-MM"}\r
+                    d{"dd-MM – dd-MM"}\r
+                }\r
+                d{\r
+                    d{"d–d"}\r
+                }\r
+                fallback{"{0} - {1}"}\r
+                h{\r
+                    a{"h a – h a"}\r
+                    h{"h–h a"}\r
+                }\r
+                hm{\r
+                    a{"h:mm a – h:mm a"}\r
+                    h{"h:mm–h:mm a"}\r
+                    m{"h:mm–h:mm a"}\r
+                }\r
+                hmv{\r
+                    a{"h:mm a – h:mm a v"}\r
+                    h{"h:mm–h:mm a v"}\r
+                    m{"h:mm–h:mm a v"}\r
+                }\r
+                hv{\r
+                    a{"h a – h a v"}\r
+                    h{"h–h a v"}\r
+                }\r
+                y{\r
+                    y{"y–y G"}\r
+                }\r
+                yM{\r
+                    M{"MM-y – MM-y G"}\r
+                    y{"MM-y – MM-y G"}\r
+                }\r
+                yMEd{\r
+                    M{"E dd-MM-y – E dd-MM-y G"}\r
+                    d{"E dd-MM-y – E dd-MM-y G"}\r
+                    y{"E dd-MM-y – E dd-MM-y G"}\r
+                }\r
+                yMMM{\r
+                    M{"MMM–MMM y G"}\r
+                    y{"MMM y – MMM y G"}\r
+                }\r
+                yMMMEd{\r
+                    M{"E d MMM – E d MMM y G"}\r
+                    d{"E d – E d MMM y G"}\r
+                    y{"E d MMM y – E d MMM y G"}\r
+                }\r
+                yMMMM{\r
+                    M{"MMMM–MMMM y G"}\r
+                    y{"MMMM y – MMMM y G"}\r
+                }\r
+                yMMMd{\r
+                    M{"d MMM – d MMM y G"}\r
+                    d{"d–d MMM y G"}\r
+                    y{"d MMM y – d MMM y G"}\r
+                }\r
+                yMd{\r
+                    M{"dd-MM-y – dd-MM-y G"}\r
+                    d{"dd-MM-y – dd-MM-y G"}\r
+                    y{"dd-MM-y – dd-MM-y G"}\r
+                }\r
+            }\r
             monthNames{\r
                 format{\r
                     abbreviated{\r
@@ -4631,6 +5586,7 @@ nl{
                 "{1} {0}",\r
             }\r
             availableFormats{\r
+                E{"ccc"}\r
                 Ed{"E d"}\r
                 Gy{"y G"}\r
                 GyMMM{"MMM y G"}\r
@@ -4894,6 +5850,7 @@ nl{
                     "Taishō",\r
                     "Shōwa",\r
                     "Heisei",\r
+                    "Qqqq",\r
                 }\r
                 narrow{\r
                     "Taika (645–650)",\r
@@ -5042,14 +5999,14 @@ nl{
                     "Kengen (1302–1303)",\r
                     "Kagen (1303–1306)",\r
                     "Tokuji (1306–1308)",\r
-                    "Enk (1308–1311)",\r
+                    "Enkei (1308–1311)",\r
                     "Ōchō (1311–1312)",\r
                     "Shōwa (1312–1317)",\r
                     "Bunpō (1317–1319)",\r
                     "Genō (1319–1321)",\r
                     "Genkō (1321–1324)",\r
                     "Shōchū (1324–1326)",\r
-                    "Karyaku (1326–1329)",\r
+                    "Kareki (1326–1329)",\r
                     "Gentoku (1329–1331)",\r
                     "Genkō (1331–1334)",\r
                     "Kenmu (1334–1336)",\r
@@ -5110,7 +6067,7 @@ nl{
                     "Kyōhō (1716–1736)",\r
                     "Genbun (1736–1741)",\r
                     "Kanpō (1741–1744)",\r
-                    "Enk (1744–1748)",\r
+                    "Enkei (1744–1748)",\r
                     "Kan’en (1748–1751)",\r
                     "Hōreki (1751–1764)",\r
                     "Meiwa (1764–1772)",\r
@@ -5132,6 +6089,7 @@ nl{
                     "T",\r
                     "S",\r
                     "H",\r
+                    "Q",\r
                 }\r
                 wide{\r
                     "Taika (645–650)",\r
@@ -5370,21 +6328,260 @@ nl{
                     "Taishō",\r
                     "Shōwa",\r
                     "Heisei",\r
+                    "Qqqq",\r
                 }\r
             }\r
-        }\r
-        persian{\r
-            eras{\r
-                abbreviated{\r
-                    "AP",\r
-                }\r
-                narrow{\r
+            intervalFormats{\r
+                H{\r
+                    H{"HH–HH"}\r
+                }\r
+                Hm{\r
+                    H{"HH:mm–HH:mm"}\r
+                    m{"HH:mm–HH:mm"}\r
+                }\r
+                Hmv{\r
+                    H{"HH:mm–HH:mm v"}\r
+                    m{"HH:mm–HH:mm v"}\r
+                }\r
+                Hv{\r
+                    H{"HH–HH v"}\r
+                }\r
+                M{\r
+                    M{"M–M"}\r
+                }\r
+                MEd{\r
+                    M{"E dd-MM – E dd-MM"}\r
+                    d{"E dd-MM – E dd-MM"}\r
+                }\r
+                MMM{\r
+                    M{"MMM–MMM"}\r
+                }\r
+                MMMEd{\r
+                    M{"E d MMM – E d MMM"}\r
+                    d{"E d – E d MMM"}\r
+                }\r
+                MMMM{\r
+                    M{"MMMM–MMMM"}\r
+                }\r
+                MMMd{\r
+                    M{"d MMM – d MMM"}\r
+                    d{"d–d MMM"}\r
+                }\r
+                Md{\r
+                    M{"dd-MM – dd-MM"}\r
+                    d{"dd-MM – dd-MM"}\r
+                }\r
+                d{\r
+                    d{"d–d"}\r
+                }\r
+                fallback{"{0} - {1}"}\r
+                h{\r
+                    a{"h a – h a"}\r
+                    h{"h–h a"}\r
+                }\r
+                hm{\r
+                    a{"h:mm a – h:mm a"}\r
+                    h{"h:mm–h:mm a"}\r
+                    m{"h:mm–h:mm a"}\r
+                }\r
+                hmv{\r
+                    a{"h:mm a – h:mm a v"}\r
+                    h{"h:mm–h:mm a v"}\r
+                    m{"h:mm–h:mm a v"}\r
+                }\r
+                hv{\r
+                    a{"h a – h a v"}\r
+                    h{"h–h a v"}\r
+                }\r
+                y{\r
+                    y{"y–y G"}\r
+                }\r
+                yM{\r
+                    M{"MM-y – MM-y G"}\r
+                    y{"MM-y – MM-y G"}\r
+                }\r
+                yMEd{\r
+                    M{"E dd-MM-y – E dd-MM-y G"}\r
+                    d{"E dd-MM-y – E dd-MM-y G"}\r
+                    y{"E dd-MM-y – E dd-MM-y G"}\r
+                }\r
+                yMMM{\r
+                    M{"MMM–MMM y G"}\r
+                    y{"MMM y – MMM y G"}\r
+                }\r
+                yMMMEd{\r
+                    M{"E d MMM – E d MMM y G"}\r
+                    d{"E d – E d MMM y G"}\r
+                    y{"E d MMM y – E d MMM y G"}\r
+                }\r
+                yMMMM{\r
+                    M{"MMMM–MMMM y G"}\r
+                    y{"MMMM y – MMMM y G"}\r
+                }\r
+                yMMMd{\r
+                    M{"d MMM – d MMM y G"}\r
+                    d{"d–d MMM y G"}\r
+                    y{"d MMM y – d MMM y G"}\r
+                }\r
+                yMd{\r
+                    M{"dd-MM-y – dd-MM-y G"}\r
+                    d{"dd-MM-y – dd-MM-y G"}\r
+                    y{"dd-MM-y – dd-MM-y G"}\r
+                }\r
+            }\r
+        }\r
+        persian{\r
+            DateTimePatterns{\r
+                "HH:mm:ss zzzz",\r
+                "HH:mm:ss z",\r
+                "HH:mm:ss",\r
+                "HH:mm",\r
+                "EEEE d MMMM y G",\r
+                "d MMMM y G",\r
+                "d MMM y G",\r
+                "dd-MM-yy GGGGG",\r
+                "{1} {0}",\r
+                "{1} 'om' {0}",\r
+                "{1} 'om' {0}",\r
+                "{1} {0}",\r
+                "{1} {0}",\r
+            }\r
+            availableFormats{\r
+                E{"ccc"}\r
+                Ed{"E d"}\r
+                Gy{"y G"}\r
+                GyMMM{"MMM y G"}\r
+                GyMMMEd{"E d MMM y G"}\r
+                GyMMMd{"d MMM y G"}\r
+                M{"L"}\r
+                MEd{"E d-M"}\r
+                MMM{"LLL"}\r
+                MMMEd{"E d MMM"}\r
+                MMMMd{"d MMMM"}\r
+                MMMd{"d MMM"}\r
+                Md{"d-M"}\r
+                d{"d"}\r
+                y{"y G"}\r
+                yyyy{"y G"}\r
+                yyyyM{"M-y GGGGG"}\r
+                yyyyMEd{"E d-M-y GGGGG"}\r
+                yyyyMMM{"MMM y G"}\r
+                yyyyMMMEd{"E d MMM y G"}\r
+                yyyyMMMM{"MMMM y G"}\r
+                yyyyMMMd{"d MMM y G"}\r
+                yyyyMd{"d-M-y GGGGG"}\r
+                yyyyQQQ{"QQQ y G"}\r
+                yyyyQQQQ{"QQQQ y G"}\r
+            }\r
+            eras{\r
+                abbreviated{\r
+                    "AP",\r
+                }\r
+                narrow{\r
                     "AP",\r
                 }\r
                 wide{\r
                     "AP",\r
                 }\r
             }\r
+            intervalFormats{\r
+                H{\r
+                    H{"HH–HH"}\r
+                }\r
+                Hm{\r
+                    H{"HH:mm–HH:mm"}\r
+                    m{"HH:mm–HH:mm"}\r
+                }\r
+                Hmv{\r
+                    H{"HH:mm–HH:mm v"}\r
+                    m{"HH:mm–HH:mm v"}\r
+                }\r
+                Hv{\r
+                    H{"HH–HH v"}\r
+                }\r
+                M{\r
+                    M{"M–M"}\r
+                }\r
+                MEd{\r
+                    M{"E dd-MM – E dd-MM"}\r
+                    d{"E dd-MM – E dd-MM"}\r
+                }\r
+                MMM{\r
+                    M{"MMM–MMM"}\r
+                }\r
+                MMMEd{\r
+                    M{"E d MMM – E d MMM"}\r
+                    d{"E d – E d MMM"}\r
+                }\r
+                MMMM{\r
+                    M{"MMMM–MMMM"}\r
+                }\r
+                MMMd{\r
+                    M{"d MMM – d MMM"}\r
+                    d{"d–d MMM"}\r
+                }\r
+                Md{\r
+                    M{"dd-MM – dd-MM"}\r
+                    d{"dd-MM – dd-MM"}\r
+                }\r
+                d{\r
+                    d{"d–d"}\r
+                }\r
+                fallback{"{0} - {1}"}\r
+                h{\r
+                    a{"h a – h a"}\r
+                    h{"h–h a"}\r
+                }\r
+                hm{\r
+                    a{"h:mm a – h:mm a"}\r
+                    h{"h:mm–h:mm a"}\r
+                    m{"h:mm–h:mm a"}\r
+                }\r
+                hmv{\r
+                    a{"h:mm a – h:mm a v"}\r
+                    h{"h:mm–h:mm a v"}\r
+                    m{"h:mm–h:mm a v"}\r
+                }\r
+                hv{\r
+                    a{"h a – h a v"}\r
+                    h{"h–h a v"}\r
+                }\r
+                y{\r
+                    y{"y–y G"}\r
+                }\r
+                yM{\r
+                    M{"MM-y – MM-y G"}\r
+                    y{"MM-y – MM-y G"}\r
+                }\r
+                yMEd{\r
+                    M{"E dd-MM-y – E dd-MM-y G"}\r
+                    d{"E dd-MM-y – E dd-MM-y G"}\r
+                    y{"E dd-MM-y – E dd-MM-y G"}\r
+                }\r
+                yMMM{\r
+                    M{"MMM–MMM y G"}\r
+                    y{"MMM y – MMM y G"}\r
+                }\r
+                yMMMEd{\r
+                    M{"E d MMM – E d MMM y G"}\r
+                    d{"E d – E d MMM y G"}\r
+                    y{"E d MMM y – E d MMM y G"}\r
+                }\r
+                yMMMM{\r
+                    M{"MMMM–MMMM y G"}\r
+                    y{"MMMM y – MMMM y G"}\r
+                }\r
+                yMMMd{\r
+                    M{"d MMM – d MMM y G"}\r
+                    d{"d–d MMM y G"}\r
+                    y{"d MMM y – d MMM y G"}\r
+                }\r
+                yMd{\r
+                    M{"dd-MM-y – dd-MM-y G"}\r
+                    d{"dd-MM-y – dd-MM-y G"}\r
+                    y{"dd-MM-y – dd-MM-y G"}\r
+                }\r
+            }\r
             monthNames{\r
                 format{\r
                     abbreviated{\r
@@ -5493,6 +6690,7 @@ nl{
                 "{1} {0}",\r
             }\r
             availableFormats{\r
+                E{"ccc"}\r
                 Ed{"E d"}\r
                 Gy{"y G"}\r
                 GyMMM{"MMM y G"}\r
@@ -5532,6 +6730,104 @@ nl{
                     "Minguo",\r
                 }\r
             }\r
+            intervalFormats{\r
+                H{\r
+                    H{"HH–HH"}\r
+                }\r
+                Hm{\r
+                    H{"HH:mm–HH:mm"}\r
+                    m{"HH:mm–HH:mm"}\r
+                }\r
+                Hmv{\r
+                    H{"HH:mm–HH:mm v"}\r
+                    m{"HH:mm–HH:mm v"}\r
+                }\r
+                Hv{\r
+                    H{"HH–HH v"}\r
+                }\r
+                M{\r
+                    M{"M–M"}\r
+                }\r
+                MEd{\r
+                    M{"E dd-MM – E dd-MM"}\r
+                    d{"E dd-MM – E dd-MM"}\r
+                }\r
+                MMM{\r
+                    M{"MMM–MMM"}\r
+                }\r
+                MMMEd{\r
+                    M{"E d MMM – E d MMM"}\r
+                    d{"E d – E d MMM"}\r
+                }\r
+                MMMM{\r
+                    M{"MMMM–MMMM"}\r
+                }\r
+                MMMd{\r
+                    M{"d MMM – d MMM"}\r
+                    d{"d–d MMM"}\r
+                }\r
+                Md{\r
+                    M{"dd-MM – dd-MM"}\r
+                    d{"dd-MM – dd-MM"}\r
+                }\r
+                d{\r
+                    d{"d–d"}\r
+                }\r
+                fallback{"{0} - {1}"}\r
+                h{\r
+                    a{"h a – h a"}\r
+                    h{"h–h a"}\r
+                }\r
+                hm{\r
+                    a{"h:mm a – h:mm a"}\r
+                    h{"h:mm–h:mm a"}\r
+                    m{"h:mm–h:mm a"}\r
+                }\r
+                hmv{\r
+                    a{"h:mm a – h:mm a v"}\r
+                    h{"h:mm–h:mm a v"}\r
+                    m{"h:mm–h:mm a v"}\r
+                }\r
+                hv{\r
+                    a{"h a – h a v"}\r
+                    h{"h–h a v"}\r
+                }\r
+                y{\r
+                    y{"y–y G"}\r
+                }\r
+                yM{\r
+                    M{"MM-y – MM-y G"}\r
+                    y{"MM-y – MM-y G"}\r
+                }\r
+                yMEd{\r
+                    M{"E dd-MM-y – E dd-MM-y G"}\r
+                    d{"E dd-MM-y – E dd-MM-y G"}\r
+                    y{"E dd-MM-y – E dd-MM-y G"}\r
+                }\r
+                yMMM{\r
+                    M{"MMM–MMM y G"}\r
+                    y{"MMM y – MMM y G"}\r
+                }\r
+                yMMMEd{\r
+                    M{"E d MMM – E d MMM y G"}\r
+                    d{"E d – E d MMM y G"}\r
+                    y{"E d MMM y – E d MMM y G"}\r
+                }\r
+                yMMMM{\r
+                    M{"MMMM–MMMM y G"}\r
+                    y{"MMMM y – MMMM y G"}\r
+                }\r
+                yMMMd{\r
+                    M{"d MMM – d MMM y G"}\r
+                    d{"d–d MMM y G"}\r
+                    y{"d MMM y – d MMM y G"}\r
+                }\r
+                yMd{\r
+                    M{"dd-MM-y – dd-MM-y G"}\r
+                    d{"dd-MM-y – dd-MM-y G"}\r
+                    y{"dd-MM-y – dd-MM-y G"}\r
+                }\r
+            }\r
         }\r
     }\r
     characterLabel{\r
@@ -6552,8 +7848,13 @@ nl{
         general{\r
             lenient{\r
                 "[.․。︒﹒.。]",\r
+                "['ʼ՚᾽᾿’']",\r
+                "[%٪﹪%]",\r
+                "[؉‰]",\r
                 "[\$﹩$$]",\r
                 "[£₤]",\r
+                "[¥¥]",\r
+                "[₩₩]",\r
                 "[₨₹{Rp}{Rs}]",\r
             }\r
         }\r
index 5c0e95d..a0bf9d9 100644 (file)
@@ -4,11 +4,11 @@ nl_BE{
     NumberElements{\r
         latn{\r
             patterns{\r
-                currencyFormat{"#,##0.00 ¤"}\r
+                currencyFormat{"¤ #,##0.00"}\r
             }\r
         }\r
     }\r
-    Version{"2.1.38.39"}\r
+    Version{"2.1.43.2"}\r
     calendar{\r
         generic{\r
             DateTimePatterns{\r
@@ -67,7 +67,7 @@ nl_BE{
                 "EEEE d MMMM y",\r
                 "d MMMM y",\r
                 "d MMM y",\r
-                "d/MM/yy",\r
+                "d/MM/y",\r
                 "{1} {0}",\r
                 "{1} 'om' {0}",\r
                 "{1} 'om' {0}",\r
index 0f6c09b..9f9e7c0 100644 (file)
@@ -9,7 +9,7 @@ nn{
         default{"latn"}\r
         latn{\r
             miscPatterns{\r
-                atLeast{"⩾{0}"}\r
+                atLeast{"â\89¥{0}"}\r
                 range{"{0}‒{1}"}\r
             }\r
             patterns{\r
@@ -98,7 +98,7 @@ nn{
         minimumGroupingDigits{"1"}\r
         native{"latn"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.94"}\r
     calendar{\r
         generic{\r
             DateTimePatterns{\r
index f554f94..d41f364 100644 (file)
@@ -8,7 +8,7 @@ om{
         default{"latn"}\r
         latn{\r
             miscPatterns{\r
-                atLeast{"⩾{0}"}\r
+                atLeast{"â\89¥{0}"}\r
                 range{"{0}–{1}"}\r
             }\r
             patterns{\r
@@ -35,7 +35,7 @@ om{
         native{"latn"}\r
         traditional{"ethi"}\r
     }\r
-    Version{"2.1.38.69"}\r
+    Version{"2.1.43.94"}\r
     calendar{\r
         generic{\r
             DateTimePatterns{\r
index eaa4db7..37fa2d8 100644 (file)
@@ -20,19 +20,25 @@ or{
         " ଲ ଳ ଶ ଷ ସ ହ {କ\u0B4Dଷ}]"\r
     }\r
     ExemplarCharactersNumbers{"[\\- , . % ‰ + 0୦ 1୧ 2୨ 3୩ 4୪ 5୫ 6୬ 7୭ 8୮ 9୯]"}\r
+    ExemplarCharactersPunctuation{\r
+        "[\\- ‐ – — , ; \\: ! ? . … ' ‘ ’ \u0022 “ ” ( ) \\[ \\] § @ * / \\& # † ‡ ′ "\r
+        "″]"\r
+    }\r
     MoreInformation{"?"}\r
     NumberElements{\r
         default{"latn"}\r
         latn{\r
             miscPatterns{\r
+                approximately{"~{0}"}\r
                 atLeast{"{0}+"}\r
+                atMost{"≤{0}"}\r
                 range{"{0}–{1}"}\r
             }\r
             patterns{\r
-                accountingFormat{"¤#,##,##0.00;(¤#,##,##0.00)"}\r
-                currencyFormat{"¤ #,##,##0.00"}\r
+                accountingFormat{"¤#,##0.00;(¤#,##0.00)"}\r
+                currencyFormat{"¤#,##0.00"}\r
                 decimalFormat{"#,##,##0.###"}\r
-                percentFormat{"#,##,##0%"}\r
+                percentFormat{"#,##0%"}\r
                 scientificFormat{"#E0"}\r
             }\r
             patternsLong{\r
@@ -215,9 +221,9 @@ or{
         native{"orya"}\r
         orya{\r
             patterns{\r
-                currencyFormat{"¤#,##,##0.00"}\r
+                currencyFormat{"¤#,##0.00"}\r
                 decimalFormat{"#,##,##0.###"}\r
-                percentFormat{"#,##,##0%"}\r
+                percentFormat{"#,##0%"}\r
                 scientificFormat{"#E0"}\r
             }\r
             symbols{\r
@@ -234,7 +240,7 @@ or{
             }\r
         }\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.65"}\r
     calendar{\r
         generic{\r
             DateTimePatterns{\r
@@ -796,7 +802,7 @@ or{
         african_scripts{"ଆଫ୍ରିକୀୟ ସ୍କ୍ରିପ୍ଟ"}\r
         american_scripts{"ଆମେରିକୀୟ ସ୍କ୍ରିପ୍ଟ"}\r
         animal{"ପଶୁ"}\r
-        animals_nature{"ପà­\8dରାଣà­\80 କିମ୍ବା ପ୍ରକୃତି"}\r
+        animals_nature{"ପଶà­\81 କିମ୍ବା ପ୍ରକୃତି"}\r
         arrows{"ତୀର"}\r
         body{"ଶରୀର"}\r
         box_drawing{"ବକ୍ସ ଅଙ୍କନ କରିବା"}\r
@@ -1709,8 +1715,13 @@ or{
         general{\r
             lenient{\r
                 "[.․。︒﹒.。]",\r
+                "['ʼ՚᾽᾿’']",\r
+                "[%٪﹪%]",\r
+                "[؉‰]",\r
                 "[\$﹩$$]",\r
                 "[£₤]",\r
+                "[¥¥]",\r
+                "[₩₩]",\r
                 "[₨₹{Rp}{Rs}]",\r
             }\r
         }\r
index afe2c19..e9d223c 100644 (file)
@@ -64,7 +64,9 @@ pa{
         }\r
         latn{\r
             miscPatterns{\r
+                approximately{"~{0}"}\r
                 atLeast{"{0}+"}\r
+                atMost{"≤{0}"}\r
                 range{"{0}–{1}"}\r
             }\r
             patterns{\r
@@ -254,7 +256,7 @@ pa{
         minimumGroupingDigits{"1"}\r
         native{"guru"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.65"}\r
     calendar{\r
         buddhist{\r
             DateTimePatterns{\r
@@ -283,6 +285,9 @@ pa{
                     "ਈਸਵੀ ਪੂਰਵ",\r
                 }\r
             }\r
+            intervalFormats{\r
+                fallback{"{0} – {1}"}\r
+            }\r
         }\r
         coptic{\r
             eras{\r
@@ -508,6 +513,19 @@ pa{
                 }\r
             }\r
         }\r
+        ethiopic-amete-alem{\r
+            eras{\r
+                abbreviated{\r
+                    "ERA0",\r
+                }\r
+                narrow{\r
+                    "ERA0",\r
+                }\r
+                wide{\r
+                    "ERA0",\r
+                }\r
+            }\r
+        }\r
         generic{\r
             DateTimePatterns{\r
                 "h:mm:ss a zzzz",\r
@@ -570,6 +588,20 @@ pa{
                 yyyyQQQQ{"QQQQ y G"}\r
             }\r
             intervalFormats{\r
+                H{\r
+                    H{"HH–HH"}\r
+                }\r
+                Hm{\r
+                    H{"HH:mm–HH:mm"}\r
+                    m{"HH:mm–HH:mm"}\r
+                }\r
+                Hmv{\r
+                    H{"HH:mm–HH:mm v"}\r
+                    m{"HH:mm–HH:mm v"}\r
+                }\r
+                Hv{\r
+                    H{"HH–HH v"}\r
+                }\r
                 M{\r
                     M{"MM–MM"}\r
                 }\r
@@ -596,6 +628,24 @@ pa{
                     d{"d – d"}\r
                 }\r
                 fallback{"{0} – {1}"}\r
+                h{\r
+                    a{"h a – h a"}\r
+                    h{"h–h a"}\r
+                }\r
+                hm{\r
+                    a{"h:mm a – h:mm a"}\r
+                    h{"h:mm–h:mm a"}\r
+                    m{"h:mm–h:mm a"}\r
+                }\r
+                hmv{\r
+                    a{"h:mm a – h:mm a v"}\r
+                    h{"h:mm–h:mm a v"}\r
+                    m{"h:mm–h:mm a v"}\r
+                }\r
+                hv{\r
+                    a{"h a – h a v"}\r
+                    h{"h–h a v"}\r
+                }\r
                 y{\r
                     y{"y – y G"}\r
                 }\r
@@ -1550,11 +1600,11 @@ pa{
         }\r
     }\r
     characterLabel{\r
-        activities{"ਸਰਗਰਮੀਆਂ"}\r
-        african_scripts{"à¨\85ਫਰà©\80à¨\95ਨ à¨²à¨¿à©±à¨ªà©\80à¨\86à¨\82"}\r
-        american_scripts{"à¨\85ਮਰà©\80à¨\95à©\80 à¨²à¨¿à©±à¨ªà©\80à¨\86à¨\82"}\r
+        activities{"ਸਰਗਰਮੀ"}\r
+        african_scripts{"à¨\85ਫਰà©\80à¨\95à©\80 à¨²à¨¿à¨ªà©\80"}\r
+        american_scripts{"à¨\85ਮਰà©\80à¨\95à©\80 à¨²à¨¿à¨ªà©\80"}\r
         animal{"ਜਾਨਵਰ"}\r
-        animals_nature{"ਪਸ਼à©\82 à¨\85ਤà©\87 ਕੁਦਰਤ"}\r
+        animals_nature{"à¨\9cਾਨਵਰ à¨\9cਾà¨\82 ਕੁਦਰਤ"}\r
         arrows{"ਤੀਰ"}\r
         body{"ਸਰੀਰ"}\r
         box_drawing{"ਬਾਕਸ ਡਰਾਇੰਗ"}\r
@@ -1563,15 +1613,15 @@ pa{
         bullets_stars{"ਬਿੰਦੀਆਂ/ਤਾਰੇ"}\r
         consonantal_jamo{"ਵਿਅੰਜਨਾਤਮਕ ਜਾਮੋ"}\r
         currency_symbols{"ਮੁਦਰਾ ਚਿੰਨ੍ਹ"}\r
-        dash_connector{"ਡੈਸ਼/ਕਨੈਕਟਰ"}\r
+        dash_connector{"ਡੈਸ਼ ਜਾਂ ਕਨੈਕਟਰ"}\r
         digits{"ਅੰਕ"}\r
-        dingbats{"ਡਿੰਗਬੈਟ"}\r
+        dingbats{"ਡਿੰਗਬੈਟ"}\r
         divination_symbols{"ਭਵਿੱਖਬਾਣੀ ਚਿੰਨ੍ਹ"}\r
         downwards_arrows{"ਹੇਠਾਂ ਨੂੰ ਤੀਰ"}\r
         downwards_upwards_arrows{"ਹੇਠ ਉੱਪਰ ਵੱਲ ਤੀਰ"}\r
-        east_asian_scripts{"ਪà©\82ਰਬà©\80 à¨\8fਸ਼à©\80à¨\86à¨\88 à¨²à¨¿à©±à¨ªà©\80à¨\86à¨\82"}\r
+        east_asian_scripts{"ਪà©\82ਰਬà©\80 à¨\8fਸ਼à©\80à¨\86à¨\88 à¨²à¨¿à¨ªà©\80"}\r
         emoji{"ਇਮੋਜੀ"}\r
-        european_scripts{"ਯà©\82ਰਪà©\80 à¨²à¨¿à©±à¨ªà©\80à¨\86à¨\82"}\r
+        european_scripts{"ਯà©\82ਰਪà©\80 à¨²à¨¿à¨ªà©\80"}\r
         female{"ਔਰਤ"}\r
         flag{"ਝੰਡਾ"}\r
         flags{"ਝੰਡੇ"}\r
@@ -1579,18 +1629,18 @@ pa{
         format{"ਬਣਤਰ"}\r
         format_whitespace{"ਬਣਤਰ ਅਤੇ ਖਾਲੀ ਸਥਾਨ"}\r
         full_width_form_variant{"ਪੂਰਨ-ਚੌੜਾਈ ਰੂਪੀ ਰੂਪਾਂਤਰ"}\r
-        geometric_shapes{"à¨\9cਿà¨\86ਮਿਤà©\80 à¨\86à¨\95à©\8dਰਿਤà©\80à¨\86à¨\82"}\r
+        geometric_shapes{"à¨\9cਿà¨\86ਮਿਤà©\80 à¨¸à¨¼à¨\95ਲ"}\r
         half_width_form_variant{"ਅਰਧ-ਚੌੜਾਈ ਰੂਪੀ ਰੂਪਾਂਤਰ"}\r
         han_characters{"ਹਾਨ ਅੱਖਰ"}\r
         han_radicals{"ਹਾਨ ਮੂਲ ਸ਼ਬਦ"}\r
         hanja{"ਹਾਂਜਾ"}\r
         hanzi_simplified{"ਹਾਂਜ਼ੀ (ਸਰਲ)"}\r
-        hanzi_traditional{"ਹਾà¨\82à¨\9c਼à©\80 (ਰਿਵਾà¨\87ਤà©\80)"}\r
+        hanzi_traditional{"ਹਾਂਜ਼ੀ (ਰਵਾਇਤੀ)"}\r
         heart{"ਦਿਲ"}\r
-        historic_scripts{"à¨\87ਤਿਹਾਸà¨\95 à¨²à¨¿à©±à¨ªà©\80à¨\86à¨\82"}\r
+        historic_scripts{"à¨\87ਤਿਹਾਸà¨\95 à¨²à¨¿à¨ªà©\80"}\r
         ideographic_desc_characters{"ਇਡਿਓਗ੍ਰਾਫਿਕ ਵੇਰਵਾ ਅੱਖਰ"}\r
         japanese_kana{"ਜਪਾਨੀ ਕਾਨਾ"}\r
-        kanbun{"ਕਾਨਬੁਨ (ਚੀਨੀ ਕਲਾਸਿਕ)"}\r
+        kanbun{"ਕਾਨਬੁਨ"}\r
         kanji{"ਕਾਂਜੀ"}\r
         keycap{"ਕੀਕੈਪ"}\r
         leftwards_arrows{"ਖੱਬੇ ਪਾਸੇ ਵੱਲ ਤੀਰ"}\r
@@ -1599,9 +1649,9 @@ pa{
         limited_use{"ਸੀਮਿਤ ਵਰਤੋਂ"}\r
         male{"ਪੁਰਸ਼"}\r
         math_symbols{"ਗਣਿਤ ਚਿੰਨ੍ਹ"}\r
-        middle_eastern_scripts{"ਮੱਧ à¨ªà©\82ਰਬà©\80 à¨²à¨¿à©±à¨ªà©\80à¨\86à¨\82"}\r
+        middle_eastern_scripts{"ਮੱਧ à¨ªà©\82ਰਬà©\80 à¨²à¨¿à¨ªà©\80"}\r
         miscellaneous{"ਫੁਟਕਲ"}\r
-        modern_scripts{"à¨\86ਧà©\81ਨਿà¨\95 à¨²à¨¿à©±à¨ªà©\80à¨\86à¨\82"}\r
+        modern_scripts{"à¨\86ਧà©\81ਨਿà¨\95 à¨²à¨¿à¨ªà©\80"}\r
         modifier{"ਵਿਸ਼ੇਸ਼ਕ"}\r
         musical_symbols{"ਸੰਗੀਤ ਚਿੰਨ੍ਹ"}\r
         nature{"ਕੁਦਰਤ"}\r
@@ -1621,20 +1671,20 @@ pa{
         small_form_variant{"ਛੋਟੇ ਰੂਪ ਦੇ ਰੂਪਾਂਤਰ"}\r
         smiley{"ਸਮਾਈਲੀ"}\r
         smileys_people{"ਸਮਾਇਲੀ ਅਤੇ ਲੋਕ"}\r
-        south_asian_scripts{"ਦੱà¨\96ਣà©\80 à¨\8fਸ਼à©\80à¨\86à¨\88 à¨²à¨¿à©±à¨ªà©\80à¨\86à¨\82"}\r
-        southeast_asian_scripts{"ਦੱà¨\96ਣ-ਪà©\82ਰਬà©\80 à¨\8fਸ਼à©\80à¨\86à¨\88 à¨²à¨¿à©±à¨ªà©\80à¨\86à¨\82"}\r
+        south_asian_scripts{"ਦੱà¨\96ਣà©\80 à¨\8fਸ਼à©\80à¨\86à¨\88 à¨²à¨¿à¨ªà©\80"}\r
+        southeast_asian_scripts{"ਦੱà¨\96ਣ-ਪà©\82ਰਬà©\80 à¨\8fਸ਼à©\80à¨\86à¨\88 à¨²à¨¿à¨ªà©\80"}\r
         spacing{"ਵਿੱਥ"}\r
         sport{"ਖੇਡ"}\r
         symbols{"ਚਿੰਨ੍ਹ"}\r
         technical_symbols{"ਤਕਨੀਕੀ ਚਿੰਨ੍ਹ"}\r
         tone_marks{"ਧੁਨੀ ਨਿਸ਼ਾਨ"}\r
         travel{"ਯਾਤਰਾ"}\r
-        travel_places{"ਯਾਤਰਾ à¨\85ਤà©\87 à¨¸à¨¥à¨¾à¨¨"}\r
+        travel_places{"ਸਫਰ à¨\9cਾà¨\82 à¨¥à¨¾à¨\82"}\r
         upwards_arrows{"ਉੱਪਰ ਵੱਲ ਤੀਰ"}\r
         variant_forms{"ਭਿੰਨ ਰੂਪ"}\r
         vocalic_jamo{"ਵੋਕੈਲਿਕ ਜਾਮੋ"}\r
         weather{"ਮੌਸਮ"}\r
-        western_asian_scripts{"ਪੱà¨\9bਮà©\80 à¨\8fਸ਼à©\80à¨\86à¨\88 à¨²à¨¿à©±à¨ªà©\80à¨\86à¨\82"}\r
+        western_asian_scripts{"ਪੱà¨\9bਮà©\80 à¨\8fਸ਼à©\80à¨\86à¨\88 à¨²à¨¿à¨ªà©\80"}\r
         whitespace{"ਵ੍ਹਾਈਟ ਸਪੇਸ"}\r
     }\r
     delimiters{\r
@@ -1664,6 +1714,11 @@ pa{
         }\r
         day-narrow{\r
             dn{"ਦਿਨ"}\r
+            relative{\r
+                "-1"{"ਬੀਤਿਆ ਕੱਲ੍ਹ"}\r
+                "0"{"ਅੱਜ"}\r
+                "1"{"ਭਲਕੇ"}\r
+            }\r
             relativeTime{\r
                 future{\r
                     one{"{0} ਦਿਨ ਵਿੱਚ"}\r
@@ -1677,6 +1732,11 @@ pa{
         }\r
         day-short{\r
             dn{"ਦਿਨ"}\r
+            relative{\r
+                "-1"{"ਬੀਤਿਆ ਕੱਲ੍ਹ"}\r
+                "0"{"ਅੱਜ"}\r
+                "1"{"ਭਲਕੇ"}\r
+            }\r
             relativeTime{\r
                 future{\r
                     one{"{0} ਦਿਨ ਵਿੱਚ"}\r
@@ -1784,6 +1844,9 @@ pa{
         }\r
         hour-narrow{\r
             dn{"ਘੰ"}\r
+            relative{\r
+                "0"{"ਇਸ ਘੰਟੇ"}\r
+            }\r
             relativeTime{\r
                 future{\r
                     one{"{0} ਘੰਟੇ ਵਿੱਚ"}\r
@@ -1797,6 +1860,9 @@ pa{
         }\r
         hour-short{\r
             dn{"ਘੰਟਾ"}\r
+            relative{\r
+                "0"{"ਇਸ ਘੰਟੇ"}\r
+            }\r
             relativeTime{\r
                 future{\r
                     one{"{0} ਘੰਟੇ ਵਿੱਚ"}\r
@@ -1826,6 +1892,9 @@ pa{
         }\r
         minute-narrow{\r
             dn{"ਮਿੰਟ"}\r
+            relative{\r
+                "0"{"ਇਸ ਮਿੰਟ"}\r
+            }\r
             relativeTime{\r
                 future{\r
                     one{"{0} ਮਿੰਟ ਵਿੱਚ"}\r
@@ -1839,6 +1908,9 @@ pa{
         }\r
         minute-short{\r
             dn{"ਮਿੰਟ"}\r
+            relative{\r
+                "0"{"ਇਸ ਮਿੰਟ"}\r
+            }\r
             relativeTime{\r
                 future{\r
                     one{"{0} ਮਿੰਟ ਵਿੱਚ"}\r
@@ -1982,11 +2054,11 @@ pa{
             }\r
             relativeTime{\r
                 future{\r
-                    one{"{0} ਤਿਮਾਹੀਆਂ ਵਿੱਚ"}\r
+                    one{"{0} ਤਿਮਾਹੀ ਵਿੱਚ"}\r
                     other{"{0} ਤਿਮਾਹੀਆਂ ਵਿੱਚ"}\r
                 }\r
                 past{\r
-                    one{"{0} ਤਿਮਾਹੀਆਂ ਪਹਿਲਾਂ"}\r
+                    one{"{0} ਤਿਮਾਹੀ ਪਹਿਲਾਂ"}\r
                     other{"{0} ਤਿਮਾਹੀਆਂ ਪਹਿਲਾਂ"}\r
                 }\r
             }\r
@@ -2078,6 +2150,9 @@ pa{
         }\r
         second-narrow{\r
             dn{"ਸਕਿੰਟ"}\r
+            relative{\r
+                "0"{"ਹੁਣ"}\r
+            }\r
             relativeTime{\r
                 future{\r
                     one{"{0} ਸਕਿੰਟ ਵਿੱਚ"}\r
@@ -2091,6 +2166,9 @@ pa{
         }\r
         second-short{\r
             dn{"ਸਕਿੰਟ"}\r
+            relative{\r
+                "0"{"ਹੁਣ"}\r
+            }\r
             relativeTime{\r
                 future{\r
                     one{"{0} ਸਕਿੰਟ ਵਿੱਚ"}\r
@@ -2456,7 +2534,7 @@ pa{
     }\r
     listPattern{\r
         or{\r
-            2{"{0} or {1}"}\r
+            2{"{0} ਜਾਂ {1}"}\r
             end{"{0}, or {1}"}\r
             middle{"{0}, {1}"}\r
             start{"{0}, {1}"}\r
@@ -2507,8 +2585,13 @@ pa{
         general{\r
             lenient{\r
                 "[.․。︒﹒.。]",\r
+                "['ʼ՚᾽᾿’']",\r
+                "[%٪﹪%]",\r
+                "[؉‰]",\r
                 "[\$﹩$$]",\r
                 "[£₤]",\r
+                "[¥¥]",\r
+                "[₩₩]",\r
                 "[₨₹{Rp}{Rs}]",\r
             }\r
         }\r
index b5d6bfa..a9431c9 100644 (file)
@@ -22,7 +22,9 @@ pl{
         default{"latn"}\r
         latn{\r
             miscPatterns{\r
+                approximately{"~{0}"}\r
                 atLeast{"{0}+"}\r
+                atMost{"≤{0}"}\r
                 range{"{0}–{1}"}\r
             }\r
             patterns{\r
@@ -287,7 +289,7 @@ pl{
         minimumGroupingDigits{"2"}\r
         native{"latn"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.50"}\r
     calendar{\r
         buddhist{\r
             eras{\r
@@ -976,6 +978,10 @@ pl{
                     "p.n.e.",\r
                     "n.e.",\r
                 }\r
+                abbreviated%variant{\r
+                    "BCE",\r
+                    "CE",\r
+                }\r
                 wide{\r
                     "przed naszą erą",\r
                     "naszej ery",\r
@@ -2778,8 +2784,13 @@ pl{
         general{\r
             lenient{\r
                 "[.․。︒﹒.。]",\r
+                "['ʼ՚᾽᾿’']",\r
+                "[%٪﹪%]",\r
+                "[؉‰]",\r
                 "[\$﹩$$]",\r
                 "[£₤]",\r
+                "[¥¥]",\r
+                "[₩₩]",\r
                 "[₨₹{Rp}{Rs}]",\r
             }\r
         }\r
index 917ec42..31e94c9 100644 (file)
Binary files a/source/data/locales/pool.res and b/source/data/locales/pool.res differ
index dc98601..600ffd1 100644 (file)
@@ -15,7 +15,12 @@ ps{
         " ء ب پ ت ټ ث ج ځ چ څ ح خ د ډ ذ ر ړ ز ژ ږ س ش ښ ص ض ط ظ ع غ ف ق ک ګ گ ل م ن ڼ"\r
         " ه ة و ؤ ی ي ې ۍ ئ]"\r
     }\r
+    ExemplarCharactersIndex{\r
+        "[آ ا ء ب پ ت ټ ث ج ځ چ څ ح خ د ډ ذ ر ړ ز ژ ږ س ش ښ ص ض ط ظ ع غ ف ق ک ګ ل م ن"\r
+        " ڼ ه و ی]"\r
+    }\r
     ExemplarCharactersNumbers{"[\u200E \\- , ٫ ٬ . % ٪ ‰ ؉ + − 0۰ 1۱ 2۲ 3۳ 4۴ 5۵ 6۶ 7۷ 8۸ 9۹]"}\r
+    ExemplarCharactersPunctuation{"[، ; \\: ! ۔ ' ‘ ( ) \\[ \\] \\{ \\} /]"}\r
     MoreInformation{"?"}\r
     NumberElements{\r
         arabext{\r
@@ -41,7 +46,9 @@ ps{
         default{"arabext"}\r
         latn{\r
             miscPatterns{\r
-                atLeast{"⩾{0}"}\r
+                approximately{"~{0}"}\r
+                atLeast{"≥{0}"}\r
+                atMost{"≤{0}"}\r
                 range{"{0}–{1}"}\r
             }\r
             patterns{\r
@@ -230,7 +237,7 @@ ps{
         minimumGroupingDigits{"1"}\r
         native{"arabext"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.94"}\r
     calendar{\r
         default{"persian"}\r
         generic{\r
@@ -944,7 +951,7 @@ ps{
                 format{\r
                     abbreviated{\r
                         "محرم",\r
-                        "د ØµÙ\81رÛ\90 Ø¯",\r
+                        "صÙ\81رÙ\87",\r
                         "ربيع",\r
                         "ربيع II",\r
                         "جماعه",\r
@@ -988,7 +995,7 @@ ps{
                 stand-alone{\r
                     abbreviated{\r
                         "محرم",\r
-                        "د ØµÙ\81رÛ\90 Ø¯",\r
+                        "صÙ\81رÙ\87",\r
                         "ربيع",\r
                         "ربيع II",\r
                         "جماعه",\r
@@ -1130,25 +1137,25 @@ ps{
         }\r
     }\r
     characterLabel{\r
-        activities{"سرگرمی"}\r
-        african_scripts{"افریقی سکریپټ"}\r
-        american_scripts{"امریکی سکریپټ"}\r
-        animal{"د څارويو"}\r
-        animals_nature{"د څارويو او يا د قدرت"}\r
-        arrows{"تÛ\8cر"}\r
-        body{"جسم"}\r
+        activities{"فعاليت"}\r
+        african_scripts{"افريقايي سکريپټ"}\r
+        american_scripts{"امريکايي سکريپټ"}\r
+        animal{"څاروی"}\r
+        animals_nature{"څاروی يا قدرت"}\r
+        arrows{"غشÛ\8c"}\r
+        body{"وجود"}\r
         box_drawing{"د بکس انځور"}\r
         braille{"بریل"}\r
         building{"ودانۍ"}\r
         bullets_stars{"ګولۍ یا ستوری"}\r
         consonantal_jamo{"کنسینټل جامو"}\r
-        currency_symbols{"د اسعارو د سمبول"}\r
+        currency_symbols{"د پېسو سمبول"}\r
         dash_connector{"ډش یا نښلونکی"}\r
         digits{"عدد"}\r
         dingbats{"ڈنگبت"}\r
-        divination_symbols{"غÛ\8cب Ø¯Ø§Ù\86Û\8c سمبول"}\r
-        downwards_arrows{"Ú\9aکتÙ\87 ØªÛ\8cر"}\r
-        downwards_upwards_arrows{"Ú\9aکتÙ\87 Ù¾Ù\88رتÙ\87 ØªÛ\8cر"}\r
+        divination_symbols{"د Ø§Ù¼Ú©Ù\84 سمبول"}\r
+        downwards_arrows{"Ú\9aکتÙ\87 ØºØ´Û\8c"}\r
+        downwards_upwards_arrows{"Ú\9aکتÙ\87 Ù¾Ù\88رتÙ\87 ØºØ´Û\8c"}\r
         east_asian_scripts{"د ختيځې اسيا سکرېپټ"}\r
         emoji{"ایموجی"}\r
         european_scripts{"اروپایي سکرېپټ"}\r
@@ -1157,10 +1164,10 @@ ps{
         flags{"بيرغونه"}\r
         food_drink{"خواړه او څښاک"}\r
         format{"بڼه"}\r
-        format_whitespace{"بڼه او سپیټ اسپیس"}\r
-        full_width_form_variant{"بشپÚ\93 - Ú\86Ù\88Ú© Ù\88Ù\8aÛ\8cرټ"}\r
-        geometric_shapes{"جاميټري شکل"}\r
-        half_width_form_variant{"نیم چوک ويیرټ"}\r
+        format_whitespace{"بڼه او سپين ځای"}\r
+        full_width_form_variant{"د Ø¨Ø´Ù¾Ú\93 Ù¾Ø±Ø§Ø®ØªÙ\8aا Ø¨Ù\84Ù\87 Ø¨Ú¼Ù\87"}\r
+        geometric_shapes{"جيوميتريکي شکل"}\r
+        half_width_form_variant{"د نيمايي پراختيا بله بڼه"}\r
         han_characters{"د حني کرکټر"}\r
         han_radicals{"د حني سخت دريځه"}\r
         hanja{"هانجا"}\r
@@ -1168,14 +1175,14 @@ ps{
         hanzi_traditional{"حنيزي (روايتي)"}\r
         heart{"زړه"}\r
         historic_scripts{"تاريخي سکرېپټ"}\r
-        ideographic_desc_characters{"د اډیګرافیک تفصیل کرکټر"}\r
+        ideographic_desc_characters{"د اډیګرافیک ډيسک کرکټر"}\r
         japanese_kana{"جاپاني کانا"}\r
         kanbun{"کنبن"}\r
         kanji{"کانجی"}\r
         keycap{"کیکاپ"}\r
-        leftwards_arrows{"پاتې دي تير"}\r
-        leftwards_rightwards_arrows{"پاتې دي سمه لار تير"}\r
-        letterlike_symbols{"خط Ù\84Ú©Ù\87 سمبول"}\r
+        leftwards_arrows{"کڼ اړخ ته غشی"}\r
+        leftwards_rightwards_arrows{"کڼ اړخ او ښۍ اړخ ته غشی"}\r
+        letterlike_symbols{"د ØªÙ\88رÙ\8a Ù¾Ù\87 Ú\85Û\90ر سمبول"}\r
         limited_use{"د محدود استعمال"}\r
         male{"نارینه"}\r
         math_symbols{"ریاضی سمبول"}\r
@@ -1185,37 +1192,37 @@ ps{
         modifier{"بدلوونی"}\r
         musical_symbols{"د موسيقي سمبول"}\r
         nature{"قدرت"}\r
-        nonspacing{"ناپایه کول"}\r
-        numbers{"شمېره"}\r
+        nonspacing{"بې واټنه کول"}\r
+        numbers{"شمېرې"}\r
         objects{"څيز"}\r
         other{"نور"}\r
         paired{"جوړه"}\r
         person{"شخص"}\r
-        phonetic_alphabet{"صوتيک الفبا"}\r
+        phonetic_alphabet{"صوتي الفبا"}\r
         pictographs{"پکٹوګراف"}\r
         place{"ځای"}\r
         plant{"نبات"}\r
-        punctuation{"پنکچوییسن"}\r
-        rightwards_arrows{"سمه لار تیر"}\r
+        punctuation{"تنقيط"}\r
+        rightwards_arrows{"ښۍ اړخ ته غشی"}\r
         sign_standard_symbols{"نښه یا سمبول"}\r
-        small_form_variant{"کوچنۍ ويیرټ"}\r
-        smiley{"مسکراھٹ"}\r
-        smileys_people{"مسکراھٹ یا شخص"}\r
-        south_asian_scripts{"جÙ\86Ù\88بÙ\8a Ø§Ø³Û\8cا Ø³Ú©Ø±Û\90پټ"}\r
-        southeast_asian_scripts{"د Ø¬Ù\86Ù\88ب Ø®ØªÛ\8cÚ\81Û\90 Ø¢Ø³Û\8cا Ø³Ú©Ø±Û\90پټ"}\r
-        spacing{"Ù\81اصÙ\84Ù\87"}\r
-        sport{"کھیل"}\r
+        small_form_variant{"کوچنۍ بله بڼه"}\r
+        smiley{"مسکېدلې"}\r
+        smileys_people{"مسکېدلي يا شخص"}\r
+        south_asian_scripts{"د Ø³Ù\88Ù\8aÙ\84Ù\8a Ø¢Ø³Ù\8aا Ø³Ú©Ø±Ù\8aپټ"}\r
+        southeast_asian_scripts{"د Ø³Ù\88Ù\8aÙ\84Ù\8a Ø®ØªÙ\8aÚ\81 Ø¢Ø³Ù\8aا Ø³Ú©Ø±Ù\8aپټ"}\r
+        spacing{"Ù\88اټÙ\86 Ù\88رکÙ\88Ù\84"}\r
+        sport{"لوبه"}\r
         symbols{"سمبول"}\r
         technical_symbols{"تخنیکي سمبول"}\r
         tone_marks{"ټون نښه"}\r
         travel{"سفر"}\r
         travel_places{"سفر یا ځای"}\r
-        upwards_arrows{"Ù¾Ù\88رتÙ\87 ØªÛ\8cرÙ\88Ù\86Ù\87"}\r
-        variant_forms{"ويیرټ"}\r
+        upwards_arrows{"Ù¾Ù\88رتÙ\87 ØºØ´Ù\8a"}\r
+        variant_forms{"بله بڼه"}\r
         vocalic_jamo{"غږ جامو"}\r
         weather{"موسم"}\r
-        western_asian_scripts{"غربي آسیا د سکرېپټ"}\r
-        whitespace{"سپیټ اسپیس"}\r
+        western_asian_scripts{"لويديځ آسيايي سکريپټ"}\r
+        whitespace{"سپين ځای"}\r
     }\r
     delimiters{\r
         alternateQuotationEnd{"’"}\r
@@ -2033,13 +2040,13 @@ ps{
             start{"{0}, {1}"}\r
         }\r
         unit-narrow{\r
-            2{"{0} او {1}"}\r
-            end{"{0}, {1}"}\r
-            middle{"{0}, {1}"}\r
-            start{"{0}, {1}"}\r
+            2{"{0} {1}"}\r
+            end{"{0} {1}"}\r
+            middle{"{0} {1}"}\r
+            start{"{0} {1}"}\r
         }\r
         unit-short{\r
-            2{"{0} او {1}"}\r
+            2{"{0} و {1}"}\r
             end{"{0}, {1}"}\r
             middle{"{0}, {1}"}\r
             start{"{0}, {1}"}\r
@@ -2050,4 +2057,36 @@ ps{
         US{"امريکايي"}\r
         metric{"مېټرک"}\r
     }\r
+    parse{\r
+        date{\r
+            lenient{\r
+                "[\\--/]",\r
+                "[\\:∶]",\r
+            }\r
+        }\r
+        general{\r
+            lenient{\r
+                "[.․。︒﹒.。]",\r
+                "['ʼ՚᾽᾿’']",\r
+                "[%٪﹪%]",\r
+                "[؉‰]",\r
+                "[\$﹩$$]",\r
+                "[£₤]",\r
+                "[¥¥]",\r
+                "[₩₩]",\r
+                "[₨₹{Rp}{Rs}]",\r
+            }\r
+        }\r
+        number{\r
+            lenient{\r
+                "[\\-‒⁻₋−➖﹣-]",\r
+                "[,،٫、︐︑﹐﹑,、]",\r
+                "[+⁺₊➕﬩﹢+]",\r
+            }\r
+            stricter{\r
+                "[,٫︐﹐,]",\r
+                "[.․﹒.。]",\r
+            }\r
+        }\r
+    }\r
 }\r
index e46eb4c..ee46678 100644 (file)
@@ -25,7 +25,9 @@ pt{
         default{"latn"}\r
         latn{\r
             miscPatterns{\r
+                approximately{"~{0}"}\r
                 atLeast{"+{0}"}\r
+                atMost{"≤{0}"}\r
                 range{"{0}–{1}"}\r
             }\r
             patterns{\r
@@ -90,52 +92,52 @@ pt{
             patternsShort{\r
                 currencyFormat{\r
                     1000{\r
-                        one{"¤0 mil"}\r
-                        other{"¤0 mil"}\r
+                        one{"¤ 0 mil"}\r
+                        other{"¤ 0 mil"}\r
                     }\r
                     10000{\r
-                        one{"¤00 mil"}\r
-                        other{"¤00 mil"}\r
+                        one{"¤ 00 mil"}\r
+                        other{"¤ 00 mil"}\r
                     }\r
                     100000{\r
-                        one{"¤000 mil"}\r
-                        other{"¤000 mil"}\r
+                        one{"¤ 000 mil"}\r
+                        other{"¤ 000 mil"}\r
                     }\r
                     1000000{\r
-                        one{"¤0 mi"}\r
-                        other{"¤0 mi"}\r
+                        one{"¤ 0 mi"}\r
+                        other{"¤ 0 mi"}\r
                     }\r
                     10000000{\r
-                        one{"¤00 mi"}\r
-                        other{"¤00 mi"}\r
+                        one{"¤ 00 mi"}\r
+                        other{"¤ 00 mi"}\r
                     }\r
                     100000000{\r
-                        one{"¤000 mi"}\r
-                        other{"¤000 mi"}\r
+                        one{"¤ 000 mi"}\r
+                        other{"¤ 000 mi"}\r
                     }\r
                     1000000000{\r
-                        one{"¤0 bi"}\r
-                        other{"¤0 bi"}\r
+                        one{"¤ 0 bi"}\r
+                        other{"¤ 0 bi"}\r
                     }\r
                     10000000000{\r
-                        one{"¤00 bi"}\r
-                        other{"¤00 bi"}\r
+                        one{"¤ 00 bi"}\r
+                        other{"¤ 00 bi"}\r
                     }\r
                     100000000000{\r
-                        one{"¤000 bi"}\r
-                        other{"¤000 bi"}\r
+                        one{"¤ 000 bi"}\r
+                        other{"¤ 000 bi"}\r
                     }\r
                     1000000000000{\r
-                        one{"¤0 tri"}\r
-                        other{"¤0 tri"}\r
+                        one{"¤ 0 tri"}\r
+                        other{"¤ 0 tri"}\r
                     }\r
                     10000000000000{\r
-                        one{"¤00 tri"}\r
-                        other{"¤00 tri"}\r
+                        one{"¤ 00 tri"}\r
+                        other{"¤ 00 tri"}\r
                     }\r
                     100000000000000{\r
-                        one{"¤000 tri"}\r
-                        other{"¤000 tri"}\r
+                        one{"¤ 000 tri"}\r
+                        other{"¤ 000 tri"}\r
                     }\r
                 }\r
                 decimalFormat{\r
@@ -206,17 +208,17 @@ pt{
         }\r
         minimalPairs{\r
             ordinal{\r
-                other{"{0}º livro"}\r
+                other{"Pegue a {0}ª à direita."}\r
             }\r
             plural{\r
-                one{"{0} ponto"}\r
-                other{"{0} pontos"}\r
+                one{"{0} dia"}\r
+                other{"{0} dias"}\r
             }\r
         }\r
         minimumGroupingDigits{"1"}\r
         native{"latn"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.65"}\r
     calendar{\r
         buddhist{\r
             eras{\r
@@ -570,7 +572,7 @@ pt{
                 "HH:mm",\r
                 "EEEE, d 'de' MMMM 'de' y G",\r
                 "d 'de' MMMM 'de' y G",\r
-                "dd/MM/y G",\r
+                "d MMM y G",\r
                 "dd/MM/y GGGGG",\r
                 "{1} {0}",\r
                 "{1} {0}",\r
@@ -651,7 +653,7 @@ pt{
                 }\r
                 MMMEd{\r
                     M{"E, d 'de' MMM – E, d 'de' MMM"}\r
-                    d{"E, d – E, d 'de' MMM"}\r
+                    d{"E, d 'de' MMM – E, d 'de' MMM"}\r
                 }\r
                 MMMd{\r
                     M{"d 'de' MMM – d 'de' MMM"}\r
@@ -701,7 +703,7 @@ pt{
                 }\r
                 yMMMEd{\r
                     M{"E, d 'de' MMM – E, d 'de' MMM 'de' y G"}\r
-                    d{"E, d – E, d 'de' MMM 'de' y G"}\r
+                    d{"E, d 'de' MMM – E, d 'de' MMM 'de' y G"}\r
                     y{"E, d 'de' MMM 'de' y – E, d 'de' MMM 'de' y G"}\r
                 }\r
                 yMMMM{\r
@@ -1675,15 +1677,15 @@ pt{
         east_asian_scripts{"escrita do leste asiático"}\r
         emoji{"emoji"}\r
         european_scripts{"escrita europeia"}\r
-        female{"mulher"}\r
+        female{"feminino"}\r
         flag{"bandeira"}\r
         flags{"bandeiras"}\r
         food_drink{"comidas e bebidas"}\r
         format{"formato"}\r
         format_whitespace{"formato e espaço em branco"}\r
-        full_width_form_variant{"variação com largura completa"}\r
+        full_width_form_variant{"variante de largura inteira"}\r
         geometric_shapes{"forma geométrica"}\r
-        half_width_form_variant{"variação com meia largura"}\r
+        half_width_form_variant{"variante de meia largura"}\r
         han_characters{"caractere Han"}\r
         han_radicals{"radical Han"}\r
         hanja{"hanja"}\r
@@ -1700,9 +1702,9 @@ pt{
         leftwards_rightwards_arrows{"seta para a esquerda e para a direita"}\r
         letterlike_symbols{"símbolo de letra"}\r
         limited_use{"uso limitado"}\r
-        male{"homem"}\r
+        male{"masculino"}\r
         math_symbols{"símbolo matemático"}\r
-        middle_eastern_scripts{"escrita do oriente médio"}\r
+        middle_eastern_scripts{"escrita do Oriente Médio"}\r
         miscellaneous{"diversos"}\r
         modern_scripts{"escrita moderna"}\r
         modifier{"modificador"}\r
@@ -1721,7 +1723,7 @@ pt{
         punctuation{"pontuação"}\r
         rightwards_arrows{"seta para a direita"}\r
         sign_standard_symbols{"sinal ou símbolo"}\r
-        small_form_variant{"variações pequenas"}\r
+        small_form_variant{"variantes pequenas"}\r
         smiley{"smiley"}\r
         smileys_people{"smiley ou pessoa"}\r
         south_asian_scripts{"escrita do sul asiático"}\r
@@ -1732,7 +1734,7 @@ pt{
         technical_symbols{"símbolo técnico"}\r
         tone_marks{"marca de tom"}\r
         travel{"viagem"}\r
-        travel_places{"turismo ou lugar"}\r
+        travel_places{"viagem ou lugar"}\r
         upwards_arrows{"setas para cima"}\r
         variant_forms{"variante"}\r
         vocalic_jamo{"jamo vocálico"}\r
@@ -1784,8 +1786,8 @@ pt{
                     other{"em {0} dias"}\r
                 }\r
                 past{\r
-                    one{"{0} dia atrás"}\r
-                    other{"{0} dias atrás"}\r
+                    one{"há {0} dia"}\r
+                    other{"há {0} dias"}\r
                 }\r
             }\r
         }\r
@@ -1801,8 +1803,8 @@ pt{
                     other{"em {0} dias"}\r
                 }\r
                 past{\r
-                    one{"{0} dia atrás"}\r
-                    other{"{0} dias atrás"}\r
+                    one{"há {0} dia"}\r
+                    other{"há {0} dias"}\r
                 }\r
             }\r
         }\r
@@ -1818,8 +1820,8 @@ pt{
                     other{"em {0} dias"}\r
                 }\r
                 past{\r
-                    one{"{0} dia atrás"}\r
-                    other{"{0} dias atrás"}\r
+                    one{"há {0} dia"}\r
+                    other{"há {0} dias"}\r
                 }\r
             }\r
         }\r
@@ -1858,11 +1860,11 @@ pt{
             }\r
             relativeTime{\r
                 future{\r
-                    one{"em {0} sextas-feiras"}\r
+                    one{"em {0} sexta-feira"}\r
                     other{"em {0} sextas-feiras"}\r
                 }\r
                 past{\r
-                    one{"há {0} sextas-feiras"}\r
+                    one{"há {0} sexta-feira"}\r
                     other{"há {0} sextas-feiras"}\r
                 }\r
             }\r
@@ -1875,12 +1877,12 @@ pt{
             }\r
             relativeTime{\r
                 future{\r
-                    one{"em {0} sextas-feiras"}\r
-                    other{"em {0} sextas-feiras"}\r
+                    one{"em {0} sex."}\r
+                    other{"em {0} sex."}\r
                 }\r
                 past{\r
-                    one{"há {0} sextas-feiras"}\r
-                    other{"há {0} sextas-feiras"}\r
+                    one{"há {0} sex."}\r
+                    other{"há {0} sex."}\r
                 }\r
             }\r
         }\r
@@ -1892,12 +1894,12 @@ pt{
             }\r
             relativeTime{\r
                 future{\r
-                    one{"em {0} sextas-feiras"}\r
-                    other{"em {0} sextas-feiras"}\r
+                    one{"em {0} sex."}\r
+                    other{"em {0} sex."}\r
                 }\r
                 past{\r
-                    one{"há {0} sextas-feiras"}\r
-                    other{"há {0} sextas-feiras"}\r
+                    one{"há {0} sex."}\r
+                    other{"há {0} sex."}\r
                 }\r
             }\r
         }\r
@@ -1912,8 +1914,8 @@ pt{
                     other{"em {0} horas"}\r
                 }\r
                 past{\r
-                    one{"{0} hora atrás"}\r
-                    other{"{0} horas atrás"}\r
+                    one{"há {0} hora"}\r
+                    other{"há {0} horas"}\r
                 }\r
             }\r
         }\r
@@ -1925,8 +1927,8 @@ pt{
                     other{"em {0} h"}\r
                 }\r
                 past{\r
-                    one{"{0} h atrás"}\r
-                    other{"{0} h atrás"}\r
+                    one{"há {0} h"}\r
+                    other{"há {0} h"}\r
                 }\r
             }\r
         }\r
@@ -1938,8 +1940,8 @@ pt{
                     other{"em {0} h"}\r
                 }\r
                 past{\r
-                    one{"{0} h atrás"}\r
-                    other{"{0} h atrás"}\r
+                    one{"há {0} h"}\r
+                    other{"há {0} h"}\r
                 }\r
             }\r
         }\r
@@ -1954,8 +1956,8 @@ pt{
                     other{"em {0} minutos"}\r
                 }\r
                 past{\r
-                    one{"{0} minuto atrás"}\r
-                    other{"{0} minutos atrás"}\r
+                    one{"há {0} minuto"}\r
+                    other{"há {0} minutos"}\r
                 }\r
             }\r
         }\r
@@ -1967,8 +1969,8 @@ pt{
                     other{"em {0} min."}\r
                 }\r
                 past{\r
-                    one{"{0} min. atrás"}\r
-                    other{"{0} min. atrás"}\r
+                    one{"há {0} min."}\r
+                    other{"há {0} min."}\r
                 }\r
             }\r
         }\r
@@ -1980,8 +1982,8 @@ pt{
                     other{"em {0} min."}\r
                 }\r
                 past{\r
-                    one{"{0} min. atrás"}\r
-                    other{"{0} min. atrás"}\r
+                    one{"há {0} min."}\r
+                    other{"há {0} min."}\r
                 }\r
             }\r
         }\r
@@ -1997,8 +1999,8 @@ pt{
                     other{"em {0} segundas-feiras"}\r
                 }\r
                 past{\r
-                    one{"{0} segunda-feira atrás"}\r
-                    other{"{{0} segundas-feiras atrás"}\r
+                    one{"há {0} segunda-feira"}\r
+                    other{"{0} segundas-feiras atrás"}\r
                 }\r
             }\r
         }\r
@@ -2014,8 +2016,8 @@ pt{
                     other{"em {0} seg."}\r
                 }\r
                 past{\r
-                    one{"há {0} segundas-feiras"}\r
-                    other{"há {0} segundas-feiras"}\r
+                    one{"há {0} seg."}\r
+                    other{"há {0} seg."}\r
                 }\r
             }\r
         }\r
@@ -2031,8 +2033,8 @@ pt{
                     other{"em {0} seg."}\r
                 }\r
                 past{\r
-                    one{"{0} seg. atrás"}\r
-                    other{"{0} seg. atrás"}\r
+                    one{"há {0} seg."}\r
+                    other{"há {0} seg."}\r
                 }\r
             }\r
         }\r
@@ -2049,8 +2051,8 @@ pt{
                     other{"em {0} meses"}\r
                 }\r
                 past{\r
-                    one{"{0} mês atrás"}\r
-                    other{"{0} meses atrás"}\r
+                    one{"há {0} mês"}\r
+                    other{"há {0} meses"}\r
                 }\r
             }\r
         }\r
@@ -2067,8 +2069,8 @@ pt{
                     other{"em {0} meses"}\r
                 }\r
                 past{\r
-                    one{"{0} mês atrás"}\r
-                    other{"{0} meses atrás"}\r
+                    one{"há {0} mês"}\r
+                    other{"há {0} meses"}\r
                 }\r
             }\r
         }\r
@@ -2085,8 +2087,8 @@ pt{
                     other{"em {0} meses"}\r
                 }\r
                 past{\r
-                    one{"{0} mês atrás"}\r
-                    other{"{0} meses atrás"}\r
+                    one{"há {0} mês"}\r
+                    other{"há {0} meses"}\r
                 }\r
             }\r
         }\r
@@ -2103,33 +2105,43 @@ pt{
                     other{"em {0} trimestres"}\r
                 }\r
                 past{\r
-                    one{"{0} trimestre atrás"}\r
-                    other{"{0} trimestres atrás"}\r
+                    one{"há {0} trimestre"}\r
+                    other{"há {0} trimestres"}\r
                 }\r
             }\r
         }\r
         quarter-narrow{\r
             dn{"trim."}\r
+            relative{\r
+                "-1"{"último trimestre"}\r
+                "0"{"este trimestre"}\r
+                "1"{"próximo trimestre"}\r
+            }\r
             relativeTime{\r
                 future{\r
                     one{"em {0} trim."}\r
                     other{"em {0} trim."}\r
                 }\r
                 past{\r
-                    one{"{0} trim. atrás"}\r
-                    other{"{0} trim. atrás"}\r
+                    one{"há {0} trim."}\r
+                    other{"há {0} trim."}\r
                 }\r
             }\r
         }\r
         quarter-short{\r
             dn{"trim."}\r
+            relative{\r
+                "-1"{"último trimestre"}\r
+                "0"{"este trimestre"}\r
+                "1"{"próximo trimestre"}\r
+            }\r
             relativeTime{\r
                 future{\r
                     one{"em {0} trim."}\r
                     other{"em {0} trim."}\r
                 }\r
                 past{\r
-                    one{"{0} trim. atrás"}\r
+                    one{"há {0} trim."}\r
                     other{"{0} trim. atrás"}\r
                 }\r
             }\r
@@ -2146,8 +2158,8 @@ pt{
                     other{"em {0} sábados"}\r
                 }\r
                 past{\r
-                    one{"{0} sábado atrás"}\r
-                    other{"{0} sábados atrás"}\r
+                    one{"há {0} sábado"}\r
+                    other{"há {0} sábados"}\r
                 }\r
             }\r
         }\r
@@ -2163,8 +2175,8 @@ pt{
                     other{"em {0} sáb."}\r
                 }\r
                 past{\r
-                    one{"{0} sáb. atrás"}\r
-                    other{"{0} sáb. atrás"}\r
+                    one{"há {0} sáb."}\r
+                    other{"há {0} sáb."}\r
                 }\r
             }\r
         }\r
@@ -2180,8 +2192,8 @@ pt{
                     other{"em {0} sáb."}\r
                 }\r
                 past{\r
-                    one{"{0} sáb. atrás"}\r
-                    other{"{0} sáb. atrás"}\r
+                    one{"há {0} sáb."}\r
+                    other{"há {0} sáb."}\r
                 }\r
             }\r
         }\r
@@ -2196,8 +2208,8 @@ pt{
                     other{"em {0} segundos"}\r
                 }\r
                 past{\r
-                    one{"{0} segundo atrás"}\r
-                    other{"{0} segundos atrás"}\r
+                    one{"há {0} segundo"}\r
+                    other{"há {0} segundos"}\r
                 }\r
             }\r
         }\r
@@ -2209,8 +2221,8 @@ pt{
                     other{"em {0} seg."}\r
                 }\r
                 past{\r
-                    one{"{0} seg. atrás"}\r
-                    other{"{0} seg. atrás"}\r
+                    one{"há {0} seg."}\r
+                    other{"há {0} seg."}\r
                 }\r
             }\r
         }\r
@@ -2222,8 +2234,8 @@ pt{
                     other{"em {0} seg."}\r
                 }\r
                 past{\r
-                    one{"{0} seg. atrás"}\r
-                    other{"{0} seg. atrás"}\r
+                    one{"há {0} seg."}\r
+                    other{"há {0} seg."}\r
                 }\r
             }\r
         }\r
@@ -2239,8 +2251,8 @@ pt{
                     other{"em {0} domingos"}\r
                 }\r
                 past{\r
-                    one{"{0} domingo atrás"}\r
-                    other{"{0} domingos atrás"}\r
+                    one{"há {0} domigo"}\r
+                    other{"há {0} domigos"}\r
                 }\r
             }\r
         }\r
@@ -2256,8 +2268,8 @@ pt{
                     other{"em {0} dom."}\r
                 }\r
                 past{\r
-                    one{"{0} dom. atrás"}\r
-                    other{"{0} dom. atrás"}\r
+                    one{"há {0} dom."}\r
+                    other{"há {0} dom."}\r
                 }\r
             }\r
         }\r
@@ -2273,8 +2285,8 @@ pt{
                     other{"em {0} dom."}\r
                 }\r
                 past{\r
-                    one{"{0} dom. atrás"}\r
-                    other{"{0} dom. atrás"}\r
+                    one{"há {0} dom."}\r
+                    other{"há {0} dom."}\r
                 }\r
             }\r
         }\r
@@ -2286,11 +2298,11 @@ pt{
             }\r
             relativeTime{\r
                 future{\r
-                    one{"em {0} quintas-feiras"}\r
+                    one{"em {0} quinta-feira"}\r
                     other{"em {0} quintas-feiras"}\r
                 }\r
                 past{\r
-                    one{"há {0} quintas-feiras"}\r
+                    one{"há {0} quinta-feira"}\r
                     other{"há {0} quintas-feiras"}\r
                 }\r
             }\r
@@ -2299,16 +2311,16 @@ pt{
             relative{\r
                 "-1"{"qui. passada"}\r
                 "0"{"esta qui."}\r
-                "1"{"próx. qui"}\r
+                "1"{"próxima qui."}\r
             }\r
             relativeTime{\r
                 future{\r
-                    one{"em {0} quintas-feiras"}\r
-                    other{"em {0} quintas-feiras"}\r
+                    one{"em {0} qui."}\r
+                    other{"em {0} qui."}\r
                 }\r
                 past{\r
-                    one{"há {0} quintas-feiras"}\r
-                    other{"há {0} quintas-feiras"}\r
+                    one{"há {0} qui."}\r
+                    other{"há {0} qui."}\r
                 }\r
             }\r
         }\r
@@ -2316,16 +2328,16 @@ pt{
             relative{\r
                 "-1"{"qui. passada"}\r
                 "0"{"esta qui."}\r
-                "1"{"próx. qui"}\r
+                "1"{"próxima qui."}\r
             }\r
             relativeTime{\r
                 future{\r
-                    one{"em {0} quintas-feiras"}\r
-                    other{"em {0} quintas-feiras"}\r
+                    one{"em {0} qui."}\r
+                    other{"em {0} qui."}\r
                 }\r
                 past{\r
-                    one{"há {0} quintas-feiras"}\r
-                    other{"há {0} quintas-feiras"}\r
+                    one{"há {0} qui."}\r
+                    other{"há {0} qui."}\r
                 }\r
             }\r
         }\r
@@ -2354,12 +2366,12 @@ pt{
             }\r
             relativeTime{\r
                 future{\r
-                    one{"em {0} terças-feiras"}\r
-                    other{"em {0} terças-feiras"}\r
+                    one{"em {0} ter."}\r
+                    other{"em {0} ter."}\r
                 }\r
                 past{\r
-                    one{"há {0} terças-feiras"}\r
-                    other{"há {0} terças-feiras"}\r
+                    one{"há {0} ter."}\r
+                    other{"há {0} ter."}\r
                 }\r
             }\r
         }\r
@@ -2371,12 +2383,12 @@ pt{
             }\r
             relativeTime{\r
                 future{\r
-                    one{"em {0} terças-feiras"}\r
-                    other{"em {0} terças-feiras"}\r
+                    one{"em {0} ter."}\r
+                    other{"em {0} ter."}\r
                 }\r
                 past{\r
-                    one{"há {0} terças-feiras"}\r
-                    other{"há {0} terças-feiras"}\r
+                    one{"há {0} ter."}\r
+                    other{"há {0} ter."}\r
                 }\r
             }\r
         }\r
@@ -2388,7 +2400,7 @@ pt{
             }\r
             relativeTime{\r
                 future{\r
-                    one{"em {0} quartas-feiras"}\r
+                    one{"em {0} quarta-feira"}\r
                     other{"em {0} quartas-feiras"}\r
                 }\r
                 past{\r
@@ -2405,12 +2417,12 @@ pt{
             }\r
             relativeTime{\r
                 future{\r
-                    one{"em {0} quartas-feiras"}\r
-                    other{"em {0} quartas-feiras"}\r
+                    one{"em {0} qua."}\r
+                    other{"em {0} qua."}\r
                 }\r
                 past{\r
-                    one{"há {0} quartas-feiras"}\r
-                    other{"há {0} quartas-feiras"}\r
+                    one{"há {0} qua."}\r
+                    other{"há {0} qua."}\r
                 }\r
             }\r
         }\r
@@ -2422,12 +2434,12 @@ pt{
             }\r
             relativeTime{\r
                 future{\r
-                    one{"em {0} quartas-feiras"}\r
-                    other{"em {0} quartas-feiras"}\r
+                    one{"em {0} qua."}\r
+                    other{"em {0} qua."}\r
                 }\r
                 past{\r
-                    one{"há {0} quartas-feiras"}\r
-                    other{"há {0} quartas-feiras"}\r
+                    one{"há {0} qua."}\r
+                    other{"há {0} qua."}\r
                 }\r
             }\r
         }\r
@@ -2445,8 +2457,8 @@ pt{
                     other{"em {0} semanas"}\r
                 }\r
                 past{\r
-                    one{"{0} semana atrás"}\r
-                    other{"{0} semanas atrás"}\r
+                    one{"há {0} semana"}\r
+                    other{"há {0} semanas"}\r
                 }\r
             }\r
         }\r
@@ -2464,8 +2476,8 @@ pt{
                     other{"em {0} sem."}\r
                 }\r
                 past{\r
-                    one{"{0} sem. atrás"}\r
-                    other{"{0} sem. atrás"}\r
+                    one{"há {0} sem."}\r
+                    other{"há {0} sem."}\r
                 }\r
             }\r
         }\r
@@ -2483,8 +2495,8 @@ pt{
                     other{"em {0} sem."}\r
                 }\r
                 past{\r
-                    one{"{0} sem. atrás"}\r
-                    other{"{0} sem. atrás"}\r
+                    one{"há {0} sem."}\r
+                    other{"há {0} sem."}\r
                 }\r
             }\r
         }\r
@@ -2528,8 +2540,8 @@ pt{
                     other{"em {0} anos"}\r
                 }\r
                 past{\r
-                    one{"{0} ano atrás"}\r
-                    other{"{0} anos atrás"}\r
+                    one{"há {0} ano"}\r
+                    other{"há {0} anos"}\r
                 }\r
             }\r
         }\r
@@ -2546,7 +2558,7 @@ pt{
                     other{"em {0} anos"}\r
                 }\r
                 past{\r
-                    one{"{0} ano atrás"}\r
+                    one{"há {0} ano"}\r
                     other{"{0} anos atrás"}\r
                 }\r
             }\r
@@ -2564,8 +2576,8 @@ pt{
                     other{"em {0} anos"}\r
                 }\r
                 past{\r
-                    one{"{0} ano atrás"}\r
-                    other{"{0} anos atrás"}\r
+                    one{"há {0} ano"}\r
+                    other{"há {0} anos"}\r
                 }\r
             }\r
         }\r
@@ -2629,5 +2641,29 @@ pt{
                 "[\\:∶]",\r
             }\r
         }\r
+        general{\r
+            lenient{\r
+                "[.․。︒﹒.。]",\r
+                "['ʼ՚᾽᾿’']",\r
+                "[%٪﹪%]",\r
+                "[؉‰]",\r
+                "[\$﹩$$]",\r
+                "[£₤]",\r
+                "[¥¥]",\r
+                "[₩₩]",\r
+                "[₨₹{Rp}{Rs}]",\r
+            }\r
+        }\r
+        number{\r
+            lenient{\r
+                "[\\-‒⁻₋−➖﹣-]",\r
+                "[,،٫、︐︑﹐﹑,、]",\r
+                "[+⁺₊➕﬩﹢+]",\r
+            }\r
+            stricter{\r
+                "[,٫︐﹐,]",\r
+                "[.․﹒.。]",\r
+            }\r
+        }\r
     }\r
 }\r
index 084db72..5057f12 100644 (file)
@@ -149,14 +149,10 @@ pt_PT{
             ordinal{\r
                 other{"{0}.º lugar"}\r
             }\r
-            plural{\r
-                one{"{0} dia"}\r
-                other{"{0} dias"}\r
-            }\r
         }\r
         minimumGroupingDigits{"2"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.9"}\r
     calendar{\r
         buddhist{\r
             DateTimePatterns{\r
@@ -166,7 +162,7 @@ pt_PT{
                 "HH:mm",\r
                 "EEEE, d 'de' MMMM 'de' y G",\r
                 "d 'de' MMMM 'de' y G",\r
-                "dd/MM/y G",\r
+                "d MMM y G",\r
                 "d/M/y G",\r
                 "{1}, {0}",\r
                 "{1} 'às' {0}",\r
@@ -242,7 +238,7 @@ pt_PT{
                 "HH:mm",\r
                 "EEEE, d 'de' MMMM 'de' y G",\r
                 "d 'de' MMMM 'de' y G",\r
-                "dd/MM/y G",\r
+                "d MMM y G",\r
                 "d/M/y G",\r
                 "{1}, {0}",\r
                 "{1} 'às' {0}",\r
@@ -493,7 +489,7 @@ pt_PT{
                 "HH:mm",\r
                 "EEEE, d 'de' MMMM 'de' y G",\r
                 "d 'de' MMMM 'de' y G",\r
-                "dd/MM/y G",\r
+                "d MMM y G",\r
                 "d/M/y G",\r
                 "{1}, {0}",\r
                 "{1} 'às' {0}",\r
@@ -530,7 +526,7 @@ pt_PT{
                 "HH:mm",\r
                 "EEEE, d 'de' MMMM 'de' y G",\r
                 "d 'de' MMMM 'de' y G",\r
-                "dd/MM/y G",\r
+                "d MMM y G",\r
                 "d/M/y G",\r
                 "{1}, {0}",\r
                 "{1} 'às' {0}",\r
@@ -564,7 +560,7 @@ pt_PT{
                 "HH:mm",\r
                 "EEEE, d 'de' MMMM 'de' y G",\r
                 "d 'de' MMMM 'de' y G",\r
-                "dd/MM/y G",\r
+                "d MMM y G",\r
                 "d/M/y G",\r
                 "{1}, {0}",\r
                 "{1} 'às' {0}",\r
@@ -581,26 +577,21 @@ pt_PT{
         dash_connector{"travessão ou elemento de ligação"}\r
         divination_symbols{"símbolo de divinação"}\r
         east_asian_scripts{"escrita leste-asiática"}\r
-        female{"feminino"}\r
         food_drink{"comida e bebida"}\r
-        full_width_form_variant{"variante de largura inteira"}\r
-        half_width_form_variant{"variante de meia largura"}\r
         han_characters{"carácter Han"}\r
         hanzi_simplified{"hanzi (simplificado)"}\r
         hanzi_traditional{"hanzi (tradicional)"}\r
         ideographic_desc_characters{"carácter de descrição ideográfica"}\r
         letterlike_symbols{"símbolo parecido com uma letra"}\r
-        male{"masculino"}\r
-        middle_eastern_scripts{"escrita do Médio Oriente"}\r
+        limited_use{"de uso limitado"}\r
+        middle_eastern_scripts{"escrita médio-oriental"}\r
         other{"outro"}\r
-        small_form_variant{"variantes pequenas"}\r
         south_asian_scripts{"escrita sul-asiática"}\r
         southeast_asian_scripts{"escrita sudeste-asiática"}\r
         sport{"desporto"}\r
         travel{"viagens"}\r
-        travel_places{"viagem ou lugar"}\r
         vocalic_jamo{"jamo vogal"}\r
-        weather{"tempo"}\r
+        weather{"meteorologia"}\r
         western_asian_scripts{"escrita oeste-asiática"}\r
     }\r
     contextTransforms{\r
@@ -629,10 +620,6 @@ pt_PT{
                     one{"dentro de {0} dia"}\r
                     other{"dentro de {0} dias"}\r
                 }\r
-                past{\r
-                    one{"há {0} dia"}\r
-                    other{"há {0} dias"}\r
-                }\r
             }\r
         }\r
         day-narrow{\r
@@ -667,12 +654,11 @@ pt_PT{
                     one{"dentro de {0} dia"}\r
                     other{"dentro de {0} dias"}\r
                 }\r
-                past{\r
-                    one{"há {0} dia"}\r
-                    other{"há {0} dias"}\r
-                }\r
             }\r
         }\r
+        dayperiod{\r
+            dn{"am/pm"}\r
+        }\r
         dayperiod-narrow{\r
             dn{"am/pm"}\r
         }\r
@@ -685,10 +671,6 @@ pt_PT{
                     one{"dentro de {0} sexta-feira"}\r
                     other{"dentro de {0} sextas-feiras"}\r
                 }\r
-                past{\r
-                    one{"há {0} sexta-feira"}\r
-                    other{"há {0} sextas-feiras"}\r
-                }\r
             }\r
         }\r
         fri-narrow{\r
@@ -697,10 +679,6 @@ pt_PT{
                     one{"dentro de {0} sex."}\r
                     other{"dentro de {0} sex."}\r
                 }\r
-                past{\r
-                    one{"há {0} sex."}\r
-                    other{"há {0} sex."}\r
-                }\r
             }\r
         }\r
         fri-short{\r
@@ -726,10 +704,6 @@ pt_PT{
                     one{"dentro de {0} hora"}\r
                     other{"dentro de {0} horas"}\r
                 }\r
-                past{\r
-                    one{"há {0} hora"}\r
-                    other{"há {0} horas"}\r
-                }\r
             }\r
         }\r
         hour-narrow{\r
@@ -750,10 +724,6 @@ pt_PT{
                     one{"dentro de {0} h"}\r
                     other{"dentro de {0} h"}\r
                 }\r
-                past{\r
-                    one{"há {0} h"}\r
-                    other{"há {0} h"}\r
-                }\r
             }\r
         }\r
         minute{\r
@@ -762,10 +732,6 @@ pt_PT{
                     one{"dentro de {0} minuto"}\r
                     other{"dentro de {0} minutos"}\r
                 }\r
-                past{\r
-                    one{"há {0} minuto"}\r
-                    other{"há {0} minutos"}\r
-                }\r
             }\r
         }\r
         minute-narrow{\r
@@ -808,10 +774,6 @@ pt_PT{
                     one{"dentro de {0} seg."}\r
                     other{"dentro de {0} seg."}\r
                 }\r
-                past{\r
-                    one{"há {0} seg."}\r
-                    other{"há {0} seg."}\r
-                }\r
             }\r
         }\r
         mon-short{\r
@@ -837,10 +799,6 @@ pt_PT{
                     one{"dentro de {0} mês"}\r
                     other{"dentro de {0} meses"}\r
                 }\r
-                past{\r
-                    one{"há {0} mês"}\r
-                    other{"há {0} meses"}\r
-                }\r
             }\r
         }\r
         month-narrow{\r
@@ -861,10 +819,6 @@ pt_PT{
                     one{"dentro de {0} mês"}\r
                     other{"dentro de {0} meses"}\r
                 }\r
-                past{\r
-                    one{"há {0} mês"}\r
-                    other{"há {0} meses"}\r
-                }\r
             }\r
         }\r
         quarter{\r
@@ -878,10 +832,6 @@ pt_PT{
                     one{"dentro de {0} trimestre"}\r
                     other{"dentro de {0} trimestres"}\r
                 }\r
-                past{\r
-                    one{"há {0} trimestre"}\r
-                    other{"há {0} trimestres"}\r
-                }\r
             }\r
         }\r
         quarter-narrow{\r
@@ -924,10 +874,6 @@ pt_PT{
                     one{"dentro de {0} sábado"}\r
                     other{"dentro de {0} sábados"}\r
                 }\r
-                past{\r
-                    one{"há {0} sábado"}\r
-                    other{"há {0} sábados"}\r
-                }\r
             }\r
         }\r
         sat-narrow{\r
@@ -936,10 +882,6 @@ pt_PT{
                     one{"dentro de {0} sáb."}\r
                     other{"dentro de {0} sáb."}\r
                 }\r
-                past{\r
-                    one{"há {0} sáb."}\r
-                    other{"há {0} sáb."}\r
-                }\r
             }\r
         }\r
         sat-short{\r
@@ -965,10 +907,6 @@ pt_PT{
                     one{"dentro de {0} segundo"}\r
                     other{"dentro de {0} segundos"}\r
                 }\r
-                past{\r
-                    one{"há {0} segundo"}\r
-                    other{"há {0} segundos"}\r
-                }\r
             }\r
         }\r
         second-narrow{\r
@@ -1015,10 +953,6 @@ pt_PT{
                     one{"dentro de {0} dom."}\r
                     other{"dentro de {0} dom."}\r
                 }\r
-                past{\r
-                    one{"há {0} dom."}\r
-                    other{"há {0} dom."}\r
-                }\r
             }\r
         }\r
         sun-short{\r
@@ -1040,27 +974,14 @@ pt_PT{
                     one{"dentro de {0} quinta-feira"}\r
                     other{"dentro de {0} quintas-feiras"}\r
                 }\r
-                past{\r
-                    one{"há {0} quinta-feira"}\r
-                    other{"há {0} quintas-feiras"}\r
-                }\r
             }\r
         }\r
         thu-narrow{\r
-            relative{\r
-                "-1"{"qui. passada"}\r
-                "0"{"esta qui."}\r
-                "1"{"próxima qui."}\r
-            }\r
             relativeTime{\r
                 future{\r
                     one{"dentro de {0} qui."}\r
                     other{"dentro de {0} qui."}\r
                 }\r
-                past{\r
-                    one{"há {0} qui."}\r
-                    other{"há {0} qui."}\r
-                }\r
             }\r
         }\r
         thu-short{\r
@@ -1094,10 +1015,6 @@ pt_PT{
                     one{"dentro de {0} ter."}\r
                     other{"dentro de {0} ter."}\r
                 }\r
-                past{\r
-                    one{"há {0} ter."}\r
-                    other{"há {0} ter."}\r
-                }\r
             }\r
         }\r
         tue-short{\r
@@ -1135,10 +1052,6 @@ pt_PT{
                     one{"dentro de {0} qua."}\r
                     other{"dentro de {0} qua."}\r
                 }\r
-                past{\r
-                    one{"há {0} qua."}\r
-                    other{"há {0} qua."}\r
-                }\r
             }\r
         }\r
         wed-short{\r
@@ -1164,10 +1077,6 @@ pt_PT{
                     one{"dentro de {0} semana"}\r
                     other{"dentro de {0} semanas"}\r
                 }\r
-                past{\r
-                    one{"há {0} semana"}\r
-                    other{"há {0} semanas"}\r
-                }\r
             }\r
         }\r
         week-narrow{\r
@@ -1189,10 +1098,6 @@ pt_PT{
                     one{"dentro de {0} sem."}\r
                     other{"dentro de {0} sem."}\r
                 }\r
-                past{\r
-                    one{"há {0} sem."}\r
-                    other{"há {0} sem."}\r
-                }\r
             }\r
         }\r
         weekday-narrow{\r
@@ -1207,10 +1112,6 @@ pt_PT{
                     one{"dentro de {0} ano"}\r
                     other{"dentro de {0} anos"}\r
                 }\r
-                past{\r
-                    one{"há {0} ano"}\r
-                    other{"há {0} anos"}\r
-                }\r
             }\r
         }\r
         year-narrow{\r
@@ -1231,10 +1132,6 @@ pt_PT{
                     one{"dentro de {0} ano"}\r
                     other{"dentro de {0} anos"}\r
                 }\r
-                past{\r
-                    one{"há {0} ano"}\r
-                    other{"há {0} anos"}\r
-                }\r
             }\r
         }\r
         zone-narrow{\r
index 0191cdd..53a5b55 100644 (file)
@@ -11,7 +11,9 @@ qu{
     NumberElements{\r
         latn{\r
             miscPatterns{\r
-                atLeast{"⩾{0}"}\r
+                approximately{"~{0}"}\r
+                atLeast{"≥{0}"}\r
+                atMost{"≤{0}"}\r
                 range{"{0}–{1}"}\r
             }\r
             patterns{\r
@@ -152,9 +154,133 @@ qu{
                 superscriptingExponent{"×"}\r
             }\r
         }\r
+        minimumGroupingDigits{"1"}\r
     }\r
-    Version{"2.1.38.72"}\r
+    Version{"2.1.43.94"}\r
     calendar{\r
+        generic{\r
+            DateTimePatterns{\r
+                "HH:mm:ss zzzz",\r
+                "HH:mm:ss z",\r
+                "HH:mm:ss",\r
+                "HH:mm",\r
+                "EEEE, d MMMM y, G",\r
+                "d MMMM y, G",\r
+                "d MMM y, G",\r
+                "d/M/y GGGGG",\r
+                "{1} {0}",\r
+                "{1} {0}",\r
+                "{1} {0}",\r
+                "{1} {0}",\r
+                "{1} {0}",\r
+            }\r
+            availableFormats{\r
+                Bh{"h B"}\r
+                Bhm{"h:mm B"}\r
+                Bhms{"h:mm:ss B"}\r
+                E{"ccc"}\r
+                EBhm{"E h:mm B"}\r
+                EBhms{"E h:mm:ss B"}\r
+                EHm{"E HH:mm"}\r
+                EHms{"E HH:mm:ss"}\r
+                Ed{"E, d"}\r
+                Ehm{"E h:mm a"}\r
+                Ehms{"E h:mm:ss a"}\r
+                Gy{"y G"}\r
+                GyMMM{"MMM y G"}\r
+                GyMMMEd{"E, d MMMM y G"}\r
+                GyMMMd{"d MMM y G"}\r
+                H{"HH"}\r
+                Hm{"HH:mm"}\r
+                Hms{"HH:mm:ss"}\r
+                M{"L"}\r
+                MEd{"E, dd-MM"}\r
+                MMM{"LLL"}\r
+                MMMEd{"E, d MMMM"}\r
+                MMMMd{"d MMMM"}\r
+                MMMd{"d MMM"}\r
+                Md{"dd-MM"}\r
+                d{"d"}\r
+                h{"h a"}\r
+                hm{"h:mm a"}\r
+                hms{"h:mm:ss a"}\r
+                ms{"mm:ss"}\r
+                y{"y G"}\r
+                yyyy{"y G"}\r
+                yyyyM{"MM-y GGGGG"}\r
+                yyyyMEd{"E, dd-MM-y GGGGG"}\r
+                yyyyMMM{"MMM y G"}\r
+                yyyyMMMEd{"E, d MMM y G"}\r
+                yyyyMMMM{"MMMM y G"}\r
+                yyyyMMMd{"d MMM y G"}\r
+                yyyyMd{"dd-MM-y GGGGG"}\r
+                yyyyQQQ{"QQQ y G"}\r
+                yyyyQQQQ{"QQQQ y G"}\r
+            }\r
+            intervalFormats{\r
+                M{\r
+                    M{"MM–MM"}\r
+                }\r
+                MEd{\r
+                    M{"E, dd-MM – E, dd-MM"}\r
+                    d{"E, dd-MM – E, dd-MM"}\r
+                }\r
+                MMM{\r
+                    M{"LLL–LLL"}\r
+                }\r
+                MMMEd{\r
+                    M{"E, d MMM – E, d MMM"}\r
+                    d{"E, d MMM – E, d MMM"}\r
+                }\r
+                MMMd{\r
+                    M{"d MMM – d MMM"}\r
+                    d{"d–d MMM"}\r
+                }\r
+                Md{\r
+                    M{"dd-MM – dd-MM"}\r
+                    d{"dd-MM – dd-MM"}\r
+                }\r
+                d{\r
+                    d{"d–d"}\r
+                }\r
+                fallback{"{0} – {1}"}\r
+                y{\r
+                    y{"y–y G"}\r
+                }\r
+                yM{\r
+                    M{"MM-y – MM-y GGGGG"}\r
+                    y{"MM-y – MM-y GGGGG"}\r
+                }\r
+                yMEd{\r
+                    M{"E, dd-MM-y – E, dd-MM-y GGGGG"}\r
+                    d{"E, dd-MM-y – E, dd-MM-y GGGGG"}\r
+                    y{"E, dd-MM-y – E, dd-MM-y GGGGG"}\r
+                }\r
+                yMMM{\r
+                    M{"MMM–MMM y G"}\r
+                    y{"MMM y – MMM y G"}\r
+                }\r
+                yMMMEd{\r
+                    M{"E, d MMM – E, d MMM y G"}\r
+                    d{"E, d MMM y – E, d MMM y G"}\r
+                    y{"E, d MMM y – E, d MMM y G"}\r
+                }\r
+                yMMMM{\r
+                    M{"MMMM–MMMM y G"}\r
+                    y{"MMMM y – MMMM y G"}\r
+                }\r
+                yMMMd{\r
+                    M{"d MMM – d MMM y G"}\r
+                    d{"d–d MMM y G"}\r
+                    y{"d MMM y – d MMM y G"}\r
+                }\r
+                yMd{\r
+                    M{"dd-MM-y – dd-MM-y GGGGG"}\r
+                    d{"dd-MM-y – dd-MM-y GGGGG"}\r
+                    y{"dd-MM-y – dd-MM-y GGGGG"}\r
+                }\r
+            }\r
+        }\r
         gregorian{\r
             AmPmMarkers{\r
                 "a.m.",\r
@@ -583,6 +709,687 @@ qu{
             }\r
         }\r
     }\r
+    fields{\r
+        day{\r
+            dn{"Day"}\r
+            relative{\r
+                "-1"{"qayna punchaw"}\r
+                "0"{"kunan punchaw"}\r
+                "1"{"paqarin"}\r
+            }\r
+            relativeTime{\r
+                future{\r
+                    other{"+{0} d"}\r
+                }\r
+                past{\r
+                    other{"-{0} d"}\r
+                }\r
+            }\r
+        }\r
+        day-narrow{\r
+            dn{"Day"}\r
+            relativeTime{\r
+                future{\r
+                    other{"+{0} d"}\r
+                }\r
+                past{\r
+                    other{"-{0} d"}\r
+                }\r
+            }\r
+        }\r
+        day-short{\r
+            dn{"Day"}\r
+            relativeTime{\r
+                future{\r
+                    other{"+{0} d"}\r
+                }\r
+                past{\r
+                    other{"-{0} d"}\r
+                }\r
+            }\r
+        }\r
+        dayOfYear{\r
+            dn{"Day Of Year"}\r
+        }\r
+        dayOfYear-narrow{\r
+            dn{"Day Of Year"}\r
+        }\r
+        dayOfYear-short{\r
+            dn{"Day Of Year"}\r
+        }\r
+        dayperiod{\r
+            dn{"Dayperiod"}\r
+        }\r
+        dayperiod-narrow{\r
+            dn{"Dayperiod"}\r
+        }\r
+        dayperiod-short{\r
+            dn{"Dayperiod"}\r
+        }\r
+        era{\r
+            dn{"Era"}\r
+        }\r
+        era-narrow{\r
+            dn{"Era"}\r
+        }\r
+        era-short{\r
+            dn{"Era"}\r
+        }\r
+        fri{\r
+            relative{\r
+                "-1"{"Qayna Viernes"}\r
+                "0"{"kunan Viernes"}\r
+                "1"{"hamuq Viernes"}\r
+            }\r
+            relativeTime{\r
+                future{\r
+                    other{"+{0} Viernes"}\r
+                }\r
+                past{\r
+                    other{"-{0} Viernes"}\r
+                }\r
+            }\r
+        }\r
+        fri-narrow{\r
+            relative{\r
+                "-1"{"Qayna Viernes"}\r
+                "0"{"kunan Viernes"}\r
+                "1"{"hamuq Viernes"}\r
+            }\r
+            relativeTime{\r
+                future{\r
+                    other{"+{0} Viernes"}\r
+                }\r
+                past{\r
+                    other{"-{0} Viernes"}\r
+                }\r
+            }\r
+        }\r
+        fri-short{\r
+            relative{\r
+                "-1"{"Qayna Viernes"}\r
+                "0"{"kunan Viernes"}\r
+                "1"{"hamuq Viernes"}\r
+            }\r
+            relativeTime{\r
+                future{\r
+                    other{"+{0} Viernes"}\r
+                }\r
+                past{\r
+                    other{"-{0} Viernes"}\r
+                }\r
+            }\r
+        }\r
+        hour{\r
+            dn{"Hour"}\r
+            relative{\r
+                "0"{"kay hora"}\r
+            }\r
+            relativeTime{\r
+                future{\r
+                    other{"+{0} h"}\r
+                }\r
+                past{\r
+                    other{"-{0} h"}\r
+                }\r
+            }\r
+        }\r
+        hour-narrow{\r
+            dn{"Hour"}\r
+            relativeTime{\r
+                future{\r
+                    other{"+{0} h"}\r
+                }\r
+                past{\r
+                    other{"-{0} h"}\r
+                }\r
+            }\r
+        }\r
+        hour-short{\r
+            dn{"Hour"}\r
+            relativeTime{\r
+                future{\r
+                    other{"+{0} h"}\r
+                }\r
+                past{\r
+                    other{"-{0} h"}\r
+                }\r
+            }\r
+        }\r
+        minute{\r
+            dn{"Minute"}\r
+            relative{\r
+                "0"{"kay minuto"}\r
+            }\r
+            relativeTime{\r
+                future{\r
+                    other{"+{0} min"}\r
+                }\r
+                past{\r
+                    other{"-{0} min"}\r
+                }\r
+            }\r
+        }\r
+        minute-narrow{\r
+            dn{"Minute"}\r
+            relativeTime{\r
+                future{\r
+                    other{"+{0} min"}\r
+                }\r
+                past{\r
+                    other{"-{0} min"}\r
+                }\r
+            }\r
+        }\r
+        minute-short{\r
+            dn{"Minute"}\r
+            relativeTime{\r
+                future{\r
+                    other{"+{0} min"}\r
+                }\r
+                past{\r
+                    other{"-{0} min"}\r
+                }\r
+            }\r
+        }\r
+        mon{\r
+            relative{\r
+                "-1"{"qayna Lunes"}\r
+                "0"{"kunan Lunes"}\r
+                "1"{"hamuq Lunes"}\r
+            }\r
+            relativeTime{\r
+                future{\r
+                    other{"+{0} Lunes"}\r
+                }\r
+                past{\r
+                    other{"-{0} Lunes"}\r
+                }\r
+            }\r
+        }\r
+        mon-narrow{\r
+            relative{\r
+                "-1"{"qayna Lunes"}\r
+                "0"{"kunan Lunes"}\r
+                "1"{"next Monday"}\r
+            }\r
+            relativeTime{\r
+                future{\r
+                    other{"+{0} Lunes"}\r
+                }\r
+                past{\r
+                    other{"-{0} Lunes"}\r
+                }\r
+            }\r
+        }\r
+        mon-short{\r
+            relative{\r
+                "-1"{"qayna Lunes"}\r
+                "0"{"kunan Lunes"}\r
+                "1"{"hamuq Lunes"}\r
+            }\r
+            relativeTime{\r
+                future{\r
+                    other{"+{0} Lunes"}\r
+                }\r
+                past{\r
+                    other{"-{0} Lunes"}\r
+                }\r
+            }\r
+        }\r
+        month{\r
+            dn{"Month"}\r
+            relative{\r
+                "-1"{"qayna killa"}\r
+                "0"{"kunan killa"}\r
+                "1"{"hamuq killa"}\r
+            }\r
+            relativeTime{\r
+                future{\r
+                    other{"+{0} m"}\r
+                }\r
+                past{\r
+                    other{"-{0} m"}\r
+                }\r
+            }\r
+        }\r
+        month-narrow{\r
+            dn{"Month"}\r
+            relativeTime{\r
+                future{\r
+                    other{"+{0} m"}\r
+                }\r
+                past{\r
+                    other{"-{0} m"}\r
+                }\r
+            }\r
+        }\r
+        month-short{\r
+            dn{"Month"}\r
+            relativeTime{\r
+                future{\r
+                    other{"+{0} m"}\r
+                }\r
+                past{\r
+                    other{"-{0} m"}\r
+                }\r
+            }\r
+        }\r
+        quarter{\r
+            dn{"Quarter"}\r
+            relative{\r
+                "-1"{"qayna kimsa killa"}\r
+                "0"{"kunan kimsa killa"}\r
+                "1"{"hamuq kimsa killa"}\r
+            }\r
+            relativeTime{\r
+                future{\r
+                    other{"+{0} Q"}\r
+                }\r
+                past{\r
+                    other{"-{0} Q"}\r
+                }\r
+            }\r
+        }\r
+        quarter-narrow{\r
+            dn{"Quarter"}\r
+            relativeTime{\r
+                future{\r
+                    other{"+{0} Q"}\r
+                }\r
+                past{\r
+                    other{"-{0} Q"}\r
+                }\r
+            }\r
+        }\r
+        quarter-short{\r
+            dn{"Quarter"}\r
+            relativeTime{\r
+                future{\r
+                    other{"+{0} Q"}\r
+                }\r
+                past{\r
+                    other{"-{0} Q"}\r
+                }\r
+            }\r
+        }\r
+        sat{\r
+            relative{\r
+                "-1"{"qayna Sábado"}\r
+                "0"{"kunan Sábado"}\r
+                "1"{"hamuq Sábado"}\r
+            }\r
+            relativeTime{\r
+                future{\r
+                    other{"+{0} Sábado"}\r
+                }\r
+                past{\r
+                    other{"-{0} Sábado"}\r
+                }\r
+            }\r
+        }\r
+        sat-narrow{\r
+            relative{\r
+                "-1"{"qayna Sábado"}\r
+                "0"{"kunan Sábado"}\r
+                "1"{"next Saturday"}\r
+            }\r
+            relativeTime{\r
+                future{\r
+                    other{"+{0} Sábado"}\r
+                }\r
+                past{\r
+                    other{"-{0} Sábado"}\r
+                }\r
+            }\r
+        }\r
+        sat-short{\r
+            relative{\r
+                "-1"{"qayna Sábado"}\r
+                "0"{"kunan Sábado"}\r
+                "1"{"hamuq Sábado"}\r
+            }\r
+            relativeTime{\r
+                future{\r
+                    other{"+{0} Sábado"}\r
+                }\r
+                past{\r
+                    other{"-{0} Sábado"}\r
+                }\r
+            }\r
+        }\r
+        second{\r
+            dn{"Second"}\r
+            relative{\r
+                "0"{"now"}\r
+            }\r
+            relativeTime{\r
+                future{\r
+                    other{"+{0} s"}\r
+                }\r
+                past{\r
+                    other{"-{0} s"}\r
+                }\r
+            }\r
+        }\r
+        second-narrow{\r
+            dn{"Second"}\r
+            relativeTime{\r
+                future{\r
+                    other{"+{0} s"}\r
+                }\r
+                past{\r
+                    other{"-{0} s"}\r
+                }\r
+            }\r
+        }\r
+        second-short{\r
+            dn{"Second"}\r
+            relativeTime{\r
+                future{\r
+                    other{"+{0} s"}\r
+                }\r
+                past{\r
+                    other{"-{0} s"}\r
+                }\r
+            }\r
+        }\r
+        sun{\r
+            relative{\r
+                "-1"{"qayna domingo"}\r
+                "0"{"kunan domingo"}\r
+                "1"{"hamuq domingo"}\r
+            }\r
+            relativeTime{\r
+                future{\r
+                    other{"+{0} Domingopi"}\r
+                }\r
+                past{\r
+                    other{"-{0} Domingopi"}\r
+                }\r
+            }\r
+        }\r
+        sun-narrow{\r
+            relative{\r
+                "-1"{"qayna domingo"}\r
+                "0"{"kunan domingo"}\r
+                "1"{"hamuq domingo"}\r
+            }\r
+            relativeTime{\r
+                future{\r
+                    other{"+{0} Domingopi"}\r
+                }\r
+                past{\r
+                    other{"-{0} Domingopi"}\r
+                }\r
+            }\r
+        }\r
+        sun-short{\r
+            relative{\r
+                "-1"{"qayna domingo"}\r
+                "0"{"kunan domingo"}\r
+                "1"{"hamuq domingo"}\r
+            }\r
+            relativeTime{\r
+                future{\r
+                    other{"+{0} Domingopi"}\r
+                }\r
+                past{\r
+                    other{"-{0} Domingopi"}\r
+                }\r
+            }\r
+        }\r
+        thu{\r
+            relative{\r
+                "-1"{"qayna Jueves"}\r
+                "0"{"kunan Jueves"}\r
+                "1"{"hamuq Jueves"}\r
+            }\r
+            relativeTime{\r
+                future{\r
+                    other{"+{0} Jueves"}\r
+                }\r
+                past{\r
+                    other{"-{0} Jueves"}\r
+                }\r
+            }\r
+        }\r
+        thu-narrow{\r
+            relative{\r
+                "-1"{"qayna Jueves"}\r
+                "0"{"kunan Jueves"}\r
+                "1"{"hamuq Jueves"}\r
+            }\r
+            relativeTime{\r
+                future{\r
+                    other{"+{0} Jueves"}\r
+                }\r
+                past{\r
+                    other{"-{0} Jueves"}\r
+                }\r
+            }\r
+        }\r
+        thu-short{\r
+            relative{\r
+                "-1"{"qayna Jueves"}\r
+                "0"{"kunan Jueves"}\r
+                "1"{"hamuq Jueves"}\r
+            }\r
+            relativeTime{\r
+                future{\r
+                    other{"+{0} Jueves"}\r
+                }\r
+                past{\r
+                    other{"-{0} Jueves"}\r
+                }\r
+            }\r
+        }\r
+        tue{\r
+            relative{\r
+                "-1"{"qayna Martes"}\r
+                "0"{"kunan Martes"}\r
+                "1"{"hamuq Martes"}\r
+            }\r
+            relativeTime{\r
+                future{\r
+                    other{"+{0} Martes"}\r
+                }\r
+                past{\r
+                    other{"-{0} Martes"}\r
+                }\r
+            }\r
+        }\r
+        tue-narrow{\r
+            relative{\r
+                "-1"{"qayna Martes"}\r
+                "0"{"kunan Martes"}\r
+                "1"{"hamuq Martes"}\r
+            }\r
+            relativeTime{\r
+                future{\r
+                    other{"+{0} Martes"}\r
+                }\r
+                past{\r
+                    other{"-{0} Martes"}\r
+                }\r
+            }\r
+        }\r
+        tue-short{\r
+            relative{\r
+                "-1"{"qayna Martes"}\r
+                "0"{"kunan Martes"}\r
+                "1"{"hamuq Martes"}\r
+            }\r
+            relativeTime{\r
+                future{\r
+                    other{"+{0} Martes"}\r
+                }\r
+                past{\r
+                    other{"-{0} Martes"}\r
+                }\r
+            }\r
+        }\r
+        wed{\r
+            relative{\r
+                "-1"{"Qayna Miércoles"}\r
+                "0"{"kunan Miércoles"}\r
+                "1"{"hamuq Miércoles"}\r
+            }\r
+            relativeTime{\r
+                future{\r
+                    other{"+{0} Miércoles"}\r
+                }\r
+                past{\r
+                    other{"-{0} Miércoles"}\r
+                }\r
+            }\r
+        }\r
+        wed-narrow{\r
+            relative{\r
+                "-1"{"Qayna Miércoles"}\r
+                "0"{"kunan Miércoles"}\r
+                "1"{"hamuq Miércoles"}\r
+            }\r
+            relativeTime{\r
+                future{\r
+                    other{"+{0} Miércoles"}\r
+                }\r
+                past{\r
+                    other{"-{0} Miércoles"}\r
+                }\r
+            }\r
+        }\r
+        wed-short{\r
+            relative{\r
+                "-1"{"Qayna Miércoles"}\r
+                "0"{"kunan Miércoles"}\r
+                "1"{"hamuq Miércoles"}\r
+            }\r
+            relativeTime{\r
+                future{\r
+                    other{"+{0} Miércoles"}\r
+                }\r
+                past{\r
+                    other{"-{0} Miércoles"}\r
+                }\r
+            }\r
+        }\r
+        week{\r
+            dn{"Week"}\r
+            relative{\r
+                "-1"{"qayna semana"}\r
+                "0"{"kunan semana"}\r
+                "1"{"hamuq semana"}\r
+            }\r
+            relativePeriod{"{0} semanapi"}\r
+            relativeTime{\r
+                future{\r
+                    other{"+{0} w"}\r
+                }\r
+                past{\r
+                    other{"-{0} w"}\r
+                }\r
+            }\r
+        }\r
+        week-narrow{\r
+            dn{"Week"}\r
+            relativePeriod{"{0} semanapi"}\r
+            relativeTime{\r
+                future{\r
+                    other{"+{0} w"}\r
+                }\r
+                past{\r
+                    other{"-{0} w"}\r
+                }\r
+            }\r
+        }\r
+        week-short{\r
+            dn{"Week"}\r
+            relativePeriod{"{0} semanapi"}\r
+            relativeTime{\r
+                future{\r
+                    other{"+{0} w"}\r
+                }\r
+                past{\r
+                    other{"-{0} w"}\r
+                }\r
+            }\r
+        }\r
+        weekOfMonth{\r
+            dn{"Week Of Month"}\r
+        }\r
+        weekOfMonth-narrow{\r
+            dn{"Week Of Month"}\r
+        }\r
+        weekOfMonth-short{\r
+            dn{"Week Of Month"}\r
+        }\r
+        weekday{\r
+            dn{"Day of the Week"}\r
+        }\r
+        weekday-narrow{\r
+            dn{"Day of the Week"}\r
+        }\r
+        weekday-short{\r
+            dn{"Day of the Week"}\r
+        }\r
+        weekdayOfMonth{\r
+            dn{"Weekday Of Month"}\r
+        }\r
+        weekdayOfMonth-narrow{\r
+            dn{"Weekday Of Month"}\r
+        }\r
+        weekdayOfMonth-short{\r
+            dn{"Weekday Of Month"}\r
+        }\r
+        year{\r
+            dn{"Year"}\r
+            relative{\r
+                "-1"{"qayna wata"}\r
+                "0"{"kunan wata"}\r
+                "1"{"hamuq wata"}\r
+            }\r
+            relativeTime{\r
+                future{\r
+                    other{"+{0} y"}\r
+                }\r
+                past{\r
+                    other{"-{0} y"}\r
+                }\r
+            }\r
+        }\r
+        year-narrow{\r
+            dn{"Year"}\r
+            relativeTime{\r
+                future{\r
+                    other{"+{0} y"}\r
+                }\r
+                past{\r
+                    other{"-{0} y"}\r
+                }\r
+            }\r
+        }\r
+        year-short{\r
+            dn{"Year"}\r
+            relativeTime{\r
+                future{\r
+                    other{"+{0} y"}\r
+                }\r
+                past{\r
+                    other{"-{0} y"}\r
+                }\r
+            }\r
+        }\r
+        zone{\r
+            dn{"Zone"}\r
+        }\r
+        zone-narrow{\r
+            dn{"Zone"}\r
+        }\r
+        zone-short{\r
+            dn{"Zone"}\r
+        }\r
+    }\r
     layout{\r
         characters{"left-to-right"}\r
         lines{"top-to-bottom"}\r
index 627c2c8..797c3af 100644 (file)
@@ -1,6 +1,6 @@
 # © 2016 and later: Unicode, Inc. and others.\r
 # License & terms of use: http://www.unicode.org/copyright.html#License\r
-GENRB_CLDR_VERSION = 33.1\r
+GENRB_CLDR_VERSION = 34\r
 # A list of txt's to build\r
 # Note:\r
 #\r
@@ -97,30 +97,30 @@ GENRB_SOURCE = af.txt af_NA.txt af_ZA.txt agq.txt\
  es_PY.txt es_SV.txt es_US.txt es_UY.txt es_VE.txt\\r
  et.txt et_EE.txt eu.txt eu_ES.txt ewo.txt\\r
  ewo_CM.txt fa.txt fa_AF.txt fa_IR.txt ff.txt\\r
- ff_CM.txt ff_GN.txt ff_MR.txt ff_SN.txt fi.txt\\r
- fi_FI.txt fil.txt fil_PH.txt fo.txt fo_DK.txt\\r
- fo_FO.txt fr.txt fr_BE.txt fr_BF.txt fr_BI.txt\\r
- fr_BJ.txt fr_BL.txt fr_CA.txt fr_CD.txt fr_CF.txt\\r
- fr_CG.txt fr_CH.txt fr_CI.txt fr_CM.txt fr_DJ.txt\\r
- fr_DZ.txt fr_FR.txt fr_GA.txt fr_GF.txt fr_GN.txt\\r
- fr_GP.txt fr_GQ.txt fr_HT.txt fr_KM.txt fr_LU.txt\\r
- fr_MA.txt fr_MC.txt fr_MF.txt fr_MG.txt fr_ML.txt\\r
- fr_MQ.txt fr_MR.txt fr_MU.txt fr_NC.txt fr_NE.txt\\r
- fr_PF.txt fr_PM.txt fr_RE.txt fr_RW.txt fr_SC.txt\\r
- fr_SN.txt fr_SY.txt fr_TD.txt fr_TG.txt fr_TN.txt\\r
- fr_VU.txt fr_WF.txt fr_YT.txt fur.txt fur_IT.txt\\r
fy.txt fy_NL.txt ga.txt ga_IE.txt gd.txt\\r
- gd_GB.txt gl.txt gl_ES.txt gsw.txt gsw_CH.txt\\r
- gsw_FR.txt gsw_LI.txt gu.txt gu_IN.txt guz.txt\\r
guz_KE.txt gv.txt gv_IM.txt ha.txt ha_GH.txt\\r
- ha_NE.txt ha_NG.txt haw.txt haw_US.txt he.txt\\r
- he_IL.txt hi.txt hi_IN.txt hr.txt hr_BA.txt\\r
- hr_HR.txt hsb.txt hsb_DE.txt hu.txt hu_HU.txt\\r
hy.txt hy_AM.txt id.txt id_ID.txt ig.txt\\r
- ig_NG.txt ii.txt ii_CN.txt is.txt is_IS.txt\\r
- it.txt it_CH.txt it_IT.txt it_SM.txt it_VA.txt\\r
- ja.txt ja_JP.txt jgo.txt jgo_CM.txt jmc.txt\\r
- jmc_TZ.txt ka.txt ka_GE.txt kab.txt kab_DZ.txt\\r
+ fi.txt fi_FI.txt fil.txt fil_PH.txt fo.txt\\r
+ fo_DK.txt fo_FO.txt fr.txt fr_BE.txt fr_BF.txt\\r
+ fr_BI.txt fr_BJ.txt fr_BL.txt fr_CA.txt fr_CD.txt\\r
+ fr_CF.txt fr_CG.txt fr_CH.txt fr_CI.txt fr_CM.txt\\r
+ fr_DJ.txt fr_DZ.txt fr_FR.txt fr_GA.txt fr_GF.txt\\r
+ fr_GN.txt fr_GP.txt fr_GQ.txt fr_HT.txt fr_KM.txt\\r
+ fr_LU.txt fr_MA.txt fr_MC.txt fr_MF.txt fr_MG.txt\\r
+ fr_ML.txt fr_MQ.txt fr_MR.txt fr_MU.txt fr_NC.txt\\r
+ fr_NE.txt fr_PF.txt fr_PM.txt fr_RE.txt fr_RW.txt\\r
+ fr_SC.txt fr_SN.txt fr_SY.txt fr_TD.txt fr_TG.txt\\r
+ fr_TN.txt fr_VU.txt fr_WF.txt fr_YT.txt fur.txt\\r
+ fur_IT.txt fy.txt fy_NL.txt ga.txt ga_IE.txt\\r
gd.txt gd_GB.txt gl.txt gl_ES.txt gsw.txt\\r
+ gsw_CH.txt gsw_FR.txt gsw_LI.txt gu.txt gu_IN.txt\\r
+ guz.txt guz_KE.txt gv.txt gv_IM.txt ha.txt\\r
ha_GH.txt ha_NE.txt ha_NG.txt haw.txt haw_US.txt\\r
+ he.txt he_IL.txt hi.txt hi_IN.txt hr.txt\\r
+ hr_BA.txt hr_HR.txt hsb.txt hsb_DE.txt hu.txt\\r
+ hu_HU.txt hy.txt hy_AM.txt ia.txt ia_001.txt\\r
id.txt id_ID.txt ig.txt ig_NG.txt ii.txt\\r
+ ii_CN.txt is.txt is_IS.txt it.txt it_CH.txt\\r
+ it_IT.txt it_SM.txt it_VA.txt ja.txt ja_JP.txt\\r
+ jgo.txt jgo_CM.txt jmc.txt jmc_TZ.txt jv.txt\\r
+ jv_ID.txt ka.txt ka_GE.txt kab.txt kab_DZ.txt\\r
  kam.txt kam_KE.txt kde.txt kde_TZ.txt kea.txt\\r
  kea_CV.txt khq.txt khq_ML.txt ki.txt ki_KE.txt\\r
  kk.txt kk_KZ.txt kkj.txt kkj_CM.txt kl.txt\\r
@@ -128,59 +128,61 @@ GENRB_SOURCE = af.txt af_NA.txt af_ZA.txt agq.txt\
  kn.txt kn_IN.txt ko.txt ko_KP.txt ko_KR.txt\\r
  kok.txt kok_IN.txt ks.txt ks_IN.txt ksb.txt\\r
  ksb_TZ.txt ksf.txt ksf_CM.txt ksh.txt ksh_DE.txt\\r
- kw.txt kw_GB.txt ky.txt ky_KG.txt lag.txt\\r
- lag_TZ.txt lb.txt lb_LU.txt lg.txt lg_UG.txt\\r
- lkt.txt lkt_US.txt ln.txt ln_AO.txt ln_CD.txt\\r
- ln_CF.txt ln_CG.txt lo.txt lo_LA.txt lrc.txt\\r
- lrc_IQ.txt lrc_IR.txt lt.txt lt_LT.txt lu.txt\\r
- lu_CD.txt luo.txt luo_KE.txt luy.txt luy_KE.txt\\r
- lv.txt lv_LV.txt mas.txt mas_KE.txt mas_TZ.txt\\r
- mer.txt mer_KE.txt mfe.txt mfe_MU.txt mg.txt\\r
- mg_MG.txt mgh.txt mgh_MZ.txt mgo.txt mgo_CM.txt\\r
- mk.txt mk_MK.txt ml.txt ml_IN.txt mn.txt\\r
- mn_MN.txt mr.txt mr_IN.txt ms.txt ms_BN.txt\\r
- ms_MY.txt ms_SG.txt mt.txt mt_MT.txt mua.txt\\r
- mua_CM.txt my.txt my_MM.txt mzn.txt mzn_IR.txt\\r
- naq.txt naq_NA.txt nb.txt nb_NO.txt nb_SJ.txt\\r
- nd.txt nd_ZW.txt nds.txt nds_DE.txt nds_NL.txt\\r
- ne.txt ne_IN.txt ne_NP.txt nl.txt nl_AW.txt\\r
- nl_BE.txt nl_BQ.txt nl_CW.txt nl_NL.txt nl_SR.txt\\r
- nl_SX.txt nmg.txt nmg_CM.txt nn.txt nn_NO.txt\\r
- nnh.txt nnh_CM.txt nus.txt nus_SS.txt nyn.txt\\r
- nyn_UG.txt om.txt om_ET.txt om_KE.txt or.txt\\r
- or_IN.txt os.txt os_GE.txt os_RU.txt pa.txt\\r
- pa_Arab.txt pa_Arab_PK.txt pa_Guru.txt pa_Guru_IN.txt pl.txt\\r
- pl_PL.txt ps.txt ps_AF.txt pt.txt pt_AO.txt\\r
- pt_BR.txt pt_CH.txt pt_CV.txt pt_GQ.txt pt_GW.txt\\r
- pt_LU.txt pt_MO.txt pt_MZ.txt pt_PT.txt pt_ST.txt\\r
- pt_TL.txt qu.txt qu_BO.txt qu_EC.txt qu_PE.txt\\r
- rm.txt rm_CH.txt rn.txt rn_BI.txt ro.txt\\r
- ro_MD.txt ro_RO.txt rof.txt rof_TZ.txt ru.txt\\r
- ru_BY.txt ru_KG.txt ru_KZ.txt ru_MD.txt ru_RU.txt\\r
- ru_UA.txt rw.txt rw_RW.txt rwk.txt rwk_TZ.txt\\r
- sah.txt sah_RU.txt saq.txt saq_KE.txt sbp.txt\\r
- sbp_TZ.txt se.txt se_FI.txt se_NO.txt se_SE.txt\\r
- seh.txt seh_MZ.txt ses.txt ses_ML.txt sg.txt\\r
- sg_CF.txt shi.txt shi_Latn.txt shi_Latn_MA.txt shi_Tfng.txt\\r
- shi_Tfng_MA.txt si.txt si_LK.txt sk.txt sk_SK.txt\\r
- sl.txt sl_SI.txt smn.txt smn_FI.txt sn.txt\\r
- sn_ZW.txt so.txt so_DJ.txt so_ET.txt so_KE.txt\\r
- so_SO.txt sq.txt sq_AL.txt sq_MK.txt sq_XK.txt\\r
- sr.txt sr_Cyrl.txt sr_Cyrl_BA.txt sr_Cyrl_ME.txt sr_Cyrl_RS.txt\\r
- sr_Cyrl_XK.txt sr_Latn.txt sr_Latn_BA.txt sr_Latn_ME.txt sr_Latn_RS.txt\\r
- sr_Latn_XK.txt sv.txt sv_AX.txt sv_FI.txt sv_SE.txt\\r
- sw.txt sw_CD.txt sw_KE.txt sw_TZ.txt sw_UG.txt\\r
- ta.txt ta_IN.txt ta_LK.txt ta_MY.txt ta_SG.txt\\r
- te.txt te_IN.txt teo.txt teo_KE.txt teo_UG.txt\\r
- tg.txt tg_TJ.txt th.txt th_TH.txt ti.txt\\r
- ti_ER.txt ti_ET.txt to.txt to_TO.txt tr.txt\\r
- tr_CY.txt tr_TR.txt tt.txt tt_RU.txt twq.txt\\r
- twq_NE.txt tzm.txt tzm_MA.txt ug.txt ug_CN.txt\\r
- uk.txt uk_UA.txt ur.txt ur_IN.txt ur_PK.txt\\r
- uz.txt uz_Arab.txt uz_Arab_AF.txt uz_Cyrl.txt uz_Cyrl_UZ.txt\\r
- uz_Latn.txt uz_Latn_UZ.txt vai.txt vai_Latn.txt vai_Latn_LR.txt\\r
- vai_Vaii.txt vai_Vaii_LR.txt vi.txt vi_VN.txt vun.txt\\r
- vun_TZ.txt wae.txt wae_CH.txt wo.txt wo_SN.txt\\r
+ ku.txt ku_TR.txt kw.txt kw_GB.txt ky.txt\\r
+ ky_KG.txt lag.txt lag_TZ.txt lb.txt lb_LU.txt\\r
+ lg.txt lg_UG.txt lkt.txt lkt_US.txt ln.txt\\r
+ ln_AO.txt ln_CD.txt ln_CF.txt ln_CG.txt lo.txt\\r
+ lo_LA.txt lrc.txt lrc_IQ.txt lrc_IR.txt lt.txt\\r
+ lt_LT.txt lu.txt lu_CD.txt luo.txt luo_KE.txt\\r
+ luy.txt luy_KE.txt lv.txt lv_LV.txt mas.txt\\r
+ mas_KE.txt mas_TZ.txt mer.txt mer_KE.txt mfe.txt\\r
+ mfe_MU.txt mg.txt mg_MG.txt mgh.txt mgh_MZ.txt\\r
+ mgo.txt mgo_CM.txt mi.txt mi_NZ.txt mk.txt\\r
+ mk_MK.txt ml.txt ml_IN.txt mn.txt mn_MN.txt\\r
+ mr.txt mr_IN.txt ms.txt ms_BN.txt ms_MY.txt\\r
+ ms_SG.txt mt.txt mt_MT.txt mua.txt mua_CM.txt\\r
+ my.txt my_MM.txt mzn.txt mzn_IR.txt naq.txt\\r
+ naq_NA.txt nb.txt nb_NO.txt nb_SJ.txt nd.txt\\r
+ nd_ZW.txt nds.txt nds_DE.txt nds_NL.txt ne.txt\\r
+ ne_IN.txt ne_NP.txt nl.txt nl_AW.txt nl_BE.txt\\r
+ nl_BQ.txt nl_CW.txt nl_NL.txt nl_SR.txt nl_SX.txt\\r
+ nmg.txt nmg_CM.txt nn.txt nn_NO.txt nnh.txt\\r
+ nnh_CM.txt nus.txt nus_SS.txt nyn.txt nyn_UG.txt\\r
+ om.txt om_ET.txt om_KE.txt or.txt or_IN.txt\\r
+ os.txt os_GE.txt os_RU.txt pa.txt pa_Arab.txt\\r
+ pa_Arab_PK.txt pa_Guru.txt pa_Guru_IN.txt pl.txt pl_PL.txt\\r
+ ps.txt ps_AF.txt pt.txt pt_AO.txt pt_BR.txt\\r
+ pt_CH.txt pt_CV.txt pt_GQ.txt pt_GW.txt pt_LU.txt\\r
+ pt_MO.txt pt_MZ.txt pt_PT.txt pt_ST.txt pt_TL.txt\\r
+ qu.txt qu_BO.txt qu_EC.txt qu_PE.txt rm.txt\\r
+ rm_CH.txt rn.txt rn_BI.txt ro.txt ro_MD.txt\\r
+ ro_RO.txt rof.txt rof_TZ.txt ru.txt ru_BY.txt\\r
+ ru_KG.txt ru_KZ.txt ru_MD.txt ru_RU.txt ru_UA.txt\\r
+ rw.txt rw_RW.txt rwk.txt rwk_TZ.txt sah.txt\\r
+ sah_RU.txt saq.txt saq_KE.txt sbp.txt sbp_TZ.txt\\r
+ sd.txt sd_PK.txt se.txt se_FI.txt se_NO.txt\\r
+ se_SE.txt seh.txt seh_MZ.txt ses.txt ses_ML.txt\\r
+ sg.txt sg_CF.txt shi.txt shi_Latn.txt shi_Latn_MA.txt\\r
+ shi_Tfng.txt shi_Tfng_MA.txt si.txt si_LK.txt sk.txt\\r
+ sk_SK.txt sl.txt sl_SI.txt smn.txt smn_FI.txt\\r
+ sn.txt sn_ZW.txt so.txt so_DJ.txt so_ET.txt\\r
+ so_KE.txt so_SO.txt sq.txt sq_AL.txt sq_MK.txt\\r
+ sq_XK.txt sr.txt sr_Cyrl.txt sr_Cyrl_BA.txt sr_Cyrl_ME.txt\\r
+ sr_Cyrl_RS.txt sr_Cyrl_XK.txt sr_Latn.txt sr_Latn_BA.txt sr_Latn_ME.txt\\r
+ sr_Latn_RS.txt sr_Latn_XK.txt sv.txt sv_AX.txt sv_FI.txt\\r
+ sv_SE.txt sw.txt sw_CD.txt sw_KE.txt sw_TZ.txt\\r
+ sw_UG.txt ta.txt ta_IN.txt ta_LK.txt ta_MY.txt\\r
+ ta_SG.txt te.txt te_IN.txt teo.txt teo_KE.txt\\r
+ teo_UG.txt tg.txt tg_TJ.txt th.txt th_TH.txt\\r
+ ti.txt ti_ER.txt ti_ET.txt tk.txt tk_TM.txt\\r
+ to.txt to_TO.txt tr.txt tr_CY.txt tr_TR.txt\\r
+ tt.txt tt_RU.txt twq.txt twq_NE.txt tzm.txt\\r
+ tzm_MA.txt ug.txt ug_CN.txt uk.txt uk_UA.txt\\r
+ ur.txt ur_IN.txt ur_PK.txt uz.txt uz_Arab.txt\\r
+ uz_Arab_AF.txt uz_Cyrl.txt uz_Cyrl_UZ.txt uz_Latn.txt uz_Latn_UZ.txt\\r
+ vai.txt vai_Latn.txt vai_Latn_LR.txt vai_Vaii.txt vai_Vaii_LR.txt\\r
+ vi.txt vi_VN.txt vun.txt vun_TZ.txt wae.txt\\r
+ wae_CH.txt wo.txt wo_SN.txt xh.txt xh_ZA.txt\\r
  xog.txt xog_UG.txt yav.txt yav_CM.txt yi.txt\\r
  yi_001.txt yo.txt yo_BJ.txt yo_NG.txt yue.txt\\r
  yue_Hans.txt yue_Hans_CN.txt yue_Hant.txt yue_Hant_HK.txt zgh.txt\\r
index 6dd3a7c..65bf7f1 100644 (file)
@@ -8,7 +8,7 @@ rm{
     NumberElements{\r
         latn{\r
             miscPatterns{\r
-                atLeast{"⩾{0}"}\r
+                atLeast{"â\89¥{0}"}\r
                 range{"{0}–{1}"}\r
             }\r
             patterns{\r
@@ -35,7 +35,7 @@ rm{
         }\r
         minimumGroupingDigits{"1"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.94"}\r
     calendar{\r
         generic{\r
             DateTimePatterns{\r
index 6bc997c..89f1e35 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 ro{\r
-    AuxExemplarCharacters{"[á à å ä ç é è ê ë ñ ö q ş ţ ü w y]"}\r
+    AuxExemplarCharacters{"[á à å ä ç é è ê ë ñ ö q ş ţ ü]"}\r
     Ellipsis{\r
         final{"{0}…"}\r
         initial{"…{0}"}\r
@@ -10,7 +10,7 @@ ro{
         word-initial{"…{0}"}\r
         word-medial{"{0} … {1}"}\r
     }\r
-    ExemplarCharacters{"[a ă â b c d e f g h i î j k l m n o p r s ș t ț u v x z]"}\r
+    ExemplarCharacters{"[a ă â b c d e f g h i î j k l m n o p r s ș t ț u v w x y z]"}\r
     ExemplarCharactersIndex{"[A Ă Â B C D E F G H I Î J K L M N O P Q R S Ș T Ț U V W X Y Z]"}\r
     ExemplarCharactersNumbers{"[\\- , . % ‰ + 0 1 2 3 4 5 6 7 8 9]"}\r
     ExemplarCharactersPunctuation{"[\\- ‐ – — , ; \\: ! ? . … ' ‘ \u0022 “ ” „ « » ( ) \\[ \\] @ * /]"}\r
@@ -19,7 +19,9 @@ ro{
         default{"latn"}\r
         latn{\r
             miscPatterns{\r
-                atLeast{"⩾{0}"}\r
+                approximately{"~{0}"}\r
+                atLeast{"≥{0}"}\r
+                atMost{"≤{0}"}\r
                 range{"{0} - {1}"}\r
             }\r
             patterns{\r
@@ -248,9 +250,52 @@ ro{
         minimumGroupingDigits{"1"}\r
         native{"latn"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.94"}\r
     calendar{\r
         buddhist{\r
+            DateTimePatterns{\r
+                "HH:mm:ss zzzz",\r
+                "HH:mm:ss z",\r
+                "HH:mm:ss",\r
+                "HH:mm",\r
+                "EEEE, d MMMM y G",\r
+                "d MMMM y G",\r
+                "dd.MM.y G",\r
+                "dd.MM.y GGGGG",\r
+                "{1}, {0}",\r
+                "{1} 'la' {0}",\r
+                "{1} 'la' {0}",\r
+                "{1}, {0}",\r
+                "{1}, {0}",\r
+            }\r
+            availableFormats{\r
+                E{"ccc"}\r
+                Ed{"E d"}\r
+                Gy{"y G"}\r
+                GyMMM{"MMM y G"}\r
+                GyMMMEd{"E, d MMM y G"}\r
+                GyMMMd{"d MMM y G"}\r
+                M{"L"}\r
+                MEd{"E, dd.MM"}\r
+                MMM{"LLL"}\r
+                MMMEd{"E, d MMM"}\r
+                MMMMEd{"E, d MMMM"}\r
+                MMMMd{"d MMMM"}\r
+                MMMd{"d MMM"}\r
+                Md{"dd.MM"}\r
+                d{"d"}\r
+                y{"y"}\r
+                yyyy{"y G"}\r
+                yyyyM{"MM.y G"}\r
+                yyyyMEd{"E, dd.MM.y G"}\r
+                yyyyMMM{"MMM y G"}\r
+                yyyyMMMEd{"E, d MMM y G"}\r
+                yyyyMMMM{"MMMM y G"}\r
+                yyyyMMMd{"d MMM y G"}\r
+                yyyyMd{"dd.MM.y G"}\r
+                yyyyQQQ{"QQQ y G"}\r
+                yyyyQQQQ{"QQQQ y G"}\r
+            }\r
             eras{\r
                 abbreviated{\r
                     "e.b.",\r
@@ -262,6 +307,101 @@ ro{
                     "era budistă",\r
                 }\r
             }\r
+            intervalFormats{\r
+                H{\r
+                    H{"HH–HH"}\r
+                }\r
+                Hm{\r
+                    H{"HH:mm–HH:mm"}\r
+                    m{"HH:mm–HH:mm"}\r
+                }\r
+                Hmv{\r
+                    H{"HH:mm–HH:mm v"}\r
+                    m{"HH:mm–HH:mm v"}\r
+                }\r
+                Hv{\r
+                    H{"HH–HH v"}\r
+                }\r
+                M{\r
+                    M{"M–M"}\r
+                }\r
+                MEd{\r
+                    M{"E, dd.MM – E, dd.MM"}\r
+                    d{"E, dd.MM – E, dd.MM"}\r
+                }\r
+                MMM{\r
+                    M{"MMM–MMM"}\r
+                }\r
+                MMMEd{\r
+                    M{"E, d MMM – E, d MMM"}\r
+                    d{"E, d MMM – E, d MMM"}\r
+                }\r
+                MMMd{\r
+                    M{"d MMM – d MMM"}\r
+                    d{"d–d MMM"}\r
+                }\r
+                Md{\r
+                    M{"dd.MM – dd.MM"}\r
+                    d{"dd.MM – dd.MM"}\r
+                }\r
+                d{\r
+                    d{"d–d"}\r
+                }\r
+                fallback{"{0} – {1}"}\r
+                h{\r
+                    a{"h a – h a"}\r
+                    h{"h–h a"}\r
+                }\r
+                hm{\r
+                    a{"h:mm a – h:mm a"}\r
+                    h{"h:mm–h:mm a"}\r
+                    m{"h:mm–h:mm a"}\r
+                }\r
+                hmv{\r
+                    a{"h:mm a – h:mm a v"}\r
+                    h{"h:mm–h:mm a v"}\r
+                    m{"h:mm–h:mm a v"}\r
+                }\r
+                hv{\r
+                    a{"h a – h a v"}\r
+                    h{"h–h a v"}\r
+                }\r
+                y{\r
+                    y{"y–y G"}\r
+                }\r
+                yM{\r
+                    M{"MM.y – MM.y G"}\r
+                    y{"MM.y – MM.y G"}\r
+                }\r
+                yMEd{\r
+                    M{"E, dd.MM.y – E, dd.MM.y G"}\r
+                    d{"E, dd.MM.y – E, dd.MM.y G"}\r
+                    y{"E, dd.MM.y – E, dd.MM.y G"}\r
+                }\r
+                yMMM{\r
+                    M{"MMM–MMM y G"}\r
+                    y{"MMM y – MMM y G"}\r
+                }\r
+                yMMMEd{\r
+                    M{"E, d MMM – E, d MMM y G"}\r
+                    d{"E, d MMM – E, d MMM y G"}\r
+                    y{"E, d MMM y – E, d MMM y G"}\r
+                }\r
+                yMMMM{\r
+                    M{"MMMM–MMMM y G"}\r
+                    y{"MMMM y – MMMM y G"}\r
+                }\r
+                yMMMd{\r
+                    M{"d MMM – d MMM y G"}\r
+                    d{"d–d MMM y G"}\r
+                    y{"d MMM y – d MMM y G"}\r
+                }\r
+                yMd{\r
+                    M{"dd.MM.y – dd.MM.y G"}\r
+                    d{"dd.MM.y – dd.MM.y G"}\r
+                    y{"dd.MM.y – dd.MM.y G"}\r
+                }\r
+            }\r
         }\r
         chinese{\r
             monthNames{\r
@@ -1755,6 +1895,13 @@ ro{
         }\r
         day-narrow{\r
             dn{"zi"}\r
+            relative{\r
+                "-1"{"ieri"}\r
+                "-2"{"alaltăieri"}\r
+                "0"{"azi"}\r
+                "1"{"mâine"}\r
+                "2"{"poimâine"}\r
+            }\r
             relativeTime{\r
                 future{\r
                     few{"+{0} zile"}\r
@@ -1770,6 +1917,13 @@ ro{
         }\r
         day-short{\r
             dn{"zi"}\r
+            relative{\r
+                "-1"{"ieri"}\r
+                "-2"{"alaltăieri"}\r
+                "0"{"azi"}\r
+                "1"{"mâine"}\r
+                "2"{"poimâine"}\r
+            }\r
             relativeTime{\r
                 future{\r
                     few{"peste {0} zile"}\r
@@ -1887,6 +2041,9 @@ ro{
         }\r
         hour-narrow{\r
             dn{"h"}\r
+            relative{\r
+                "0"{"ora aceasta"}\r
+            }\r
             relativeTime{\r
                 future{\r
                     few{"+{0} h"}\r
@@ -1902,6 +2059,9 @@ ro{
         }\r
         hour-short{\r
             dn{"h"}\r
+            relative{\r
+                "0"{"ora aceasta"}\r
+            }\r
             relativeTime{\r
                 future{\r
                     few{"peste {0} h"}\r
@@ -1935,6 +2095,9 @@ ro{
         }\r
         minute-narrow{\r
             dn{"m"}\r
+            relative{\r
+                "0"{"minutul acesta"}\r
+            }\r
             relativeTime{\r
                 future{\r
                     few{"+{0} m"}\r
@@ -1950,6 +2113,9 @@ ro{
         }\r
         minute-short{\r
             dn{"min."}\r
+            relative{\r
+                "0"{"minutul acesta"}\r
+            }\r
             relativeTime{\r
                 future{\r
                     few{"peste {0} min."}\r
@@ -2042,6 +2208,11 @@ ro{
         }\r
         month-narrow{\r
             dn{"lună"}\r
+            relative{\r
+                "-1"{"luna trecută"}\r
+                "0"{"luna aceasta"}\r
+                "1"{"luna viitoare"}\r
+            }\r
             relativeTime{\r
                 future{\r
                     few{"+{0} luni"}\r
@@ -2057,6 +2228,11 @@ ro{
         }\r
         month-short{\r
             dn{"lună"}\r
+            relative{\r
+                "-1"{"luna trecută"}\r
+                "0"{"luna aceasta"}\r
+                "1"{"luna viitoare"}\r
+            }\r
             relativeTime{\r
                 future{\r
                     few{"peste {0} luni"}\r
@@ -2145,7 +2321,7 @@ ro{
                 past{\r
                     few{"sâmbătă, acum {0} săptămâni"}\r
                     one{"sâmbătă, acum {0} săptămână"}\r
-                    other{"sâmbătă, acum de {0} săptămâni"}\r
+                    other{"sâmbătă, acum {0} de săptămâni"}\r
                 }\r
             }\r
         }\r
@@ -2207,6 +2383,9 @@ ro{
         }\r
         second-narrow{\r
             dn{"s"}\r
+            relative{\r
+                "0"{"acum"}\r
+            }\r
             relativeTime{\r
                 future{\r
                     few{"+{0} s"}\r
@@ -2222,6 +2401,9 @@ ro{
         }\r
         second-short{\r
             dn{"sec."}\r
+            relative{\r
+                "0"{"acum"}\r
+            }\r
             relativeTime{\r
                 future{\r
                     few{"peste {0} sec."}\r
@@ -2486,6 +2668,11 @@ ro{
         }\r
         week-narrow{\r
             dn{"săpt."}\r
+            relative{\r
+                "-1"{"săpt. trecută"}\r
+                "0"{"săptămâna aceasta"}\r
+                "1"{"săpt. viitoare"}\r
+            }\r
             relativePeriod{"săpt. cu {0}"}\r
             relativeTime{\r
                 future{\r
@@ -2502,6 +2689,11 @@ ro{
         }\r
         week-short{\r
             dn{"săpt."}\r
+            relative{\r
+                "-1"{"săpt. trecută"}\r
+                "0"{"săpt. aceasta"}\r
+                "1"{"săpt. viitoare"}\r
+            }\r
             relativePeriod{"săpt. cu {0}"}\r
             relativeTime{\r
                 future{\r
@@ -2565,6 +2757,11 @@ ro{
         }\r
         year-narrow{\r
             dn{"an"}\r
+            relative{\r
+                "-1"{"anul trecut"}\r
+                "0"{"anul acesta"}\r
+                "1"{"anul viitor"}\r
+            }\r
             relativeTime{\r
                 future{\r
                     few{"+{0} ani"}\r
@@ -2580,6 +2777,11 @@ ro{
         }\r
         year-short{\r
             dn{"an"}\r
+            relative{\r
+                "-1"{"anul trecut"}\r
+                "0"{"anul acesta"}\r
+                "1"{"anul viitor"}\r
+            }\r
             relativeTime{\r
                 future{\r
                     few{"peste {0} ani"}\r
@@ -2646,4 +2848,36 @@ ro{
         US{"american"}\r
         metric{"metric"}\r
     }\r
+    parse{\r
+        date{\r
+            lenient{\r
+                "[\\--/]",\r
+                "[\\:∶]",\r
+            }\r
+        }\r
+        general{\r
+            lenient{\r
+                "[.․。︒﹒.。]",\r
+                "['ʼ՚᾽᾿’']",\r
+                "[%٪﹪%]",\r
+                "[؉‰]",\r
+                "[\$﹩$$]",\r
+                "[£₤]",\r
+                "[¥¥]",\r
+                "[₩₩]",\r
+                "[₨₹{Rp}{Rs}]",\r
+            }\r
+        }\r
+        number{\r
+            lenient{\r
+                "[\\-‒⁻₋−➖﹣-]",\r
+                "[,،٫、︐︑﹐﹑,、]",\r
+                "[+⁺₊➕﬩﹢+]",\r
+            }\r
+            stricter{\r
+                "[,٫︐﹐,]",\r
+                "[.․﹒.。]",\r
+            }\r
+        }\r
+    }\r
 }\r
index 1626e00..8ecc9b7 100644 (file)
@@ -58,7 +58,9 @@ root{
         default{"latn"}\r
         latn{\r
             miscPatterns{\r
-                atLeast{"⩾{0}"}\r
+                approximately{"~{0}"}\r
+                atLeast{"≥{0}"}\r
+                atMost{"≤{0}"}\r
                 range{"{0}–{1}"}\r
             }\r
             patterns{\r
@@ -172,7 +174,7 @@ root{
         minimumGroupingDigits{"1"}\r
         native{"latn"}\r
     }\r
-    Version{"2.1.41.58"}\r
+    Version{"2.1.44.91"}\r
     calendar{\r
         buddhist{\r
             AmPmMarkers:alias{"/LOCALE/calendar/gregorian/AmPmMarkers"}\r
@@ -807,6 +809,44 @@ root{
                 wide:alias{"/LOCALE/calendar/generic/eras/abbreviated"}\r
             }\r
             intervalFormats{\r
+                Gy{\r
+                    G{"G y – G y"}\r
+                    y{"G y–y"}\r
+                }\r
+                GyM{\r
+                    G{"GGGGG y-MM – GGGGG y-MM"}\r
+                    M{"GGGGG y-MM – y-MM"}\r
+                    y{"GGGGG y-MM – y-MM"}\r
+                }\r
+                GyMEd{\r
+                    G{"GGGGG y-MM-dd, E – GGGGG y-MM-dd, E"}\r
+                    M{"GGGGG y-MM-dd, E – y-MM-dd, E"}\r
+                    d{"GGGGG y-MM-dd, E – y-MM-dd, E"}\r
+                    y{"GGGGG y-MM-dd, E – y-MM-dd, E"}\r
+                }\r
+                GyMMM{\r
+                    G{"G y MMM – G y MMM"}\r
+                    M{"G y MMM–MMM"}\r
+                    y{"G y MMM – y MMM"}\r
+                }\r
+                GyMMMEd{\r
+                    G{"G y MMM d, E – G y MMM d, E"}\r
+                    M{"G y MMM d, E – MMM d, E"}\r
+                    d{"G y MMM d, E – MMM d, E"}\r
+                    y{"G y MMM d, E – y MMM d, E"}\r
+                }\r
+                GyMMMd{\r
+                    G{"G y MMM d – G y MMM d"}\r
+                    M{"G y MMM d – MMM d"}\r
+                    d{"G y MMM d–d"}\r
+                    y{"G y MMM d – y MMM d"}\r
+                }\r
+                GyMd{\r
+                    G{"GGGGG y-MM-dd – GGGGG y-MM-dd"}\r
+                    M{"GGGGG y-MM-dd – y-MM-dd"}\r
+                    d{"GGGGG y-MM-dd – y-MM-dd"}\r
+                    y{"GGGGG y-MM-dd – y-MM-dd"}\r
+                }\r
                 H{\r
                     H{"HH–HH"}\r
                 }\r
@@ -1067,6 +1107,44 @@ root{
                 wide:alias{"/LOCALE/calendar/gregorian/eras/abbreviated"}\r
             }\r
             intervalFormats{\r
+                Gy{\r
+                    G{"G y – G y"}\r
+                    y{"G y–y"}\r
+                }\r
+                GyM{\r
+                    G{"GGGGG y-MM – GGGGG y-MM"}\r
+                    M{"GGGGG y-MM – y-MM"}\r
+                    y{"GGGGG y-MM – y-MM"}\r
+                }\r
+                GyMEd{\r
+                    G{"GGGGG y-MM-dd, E – GGGGG y-MM-dd, E"}\r
+                    M{"GGGGG y-MM-dd, E – y-MM-dd, E"}\r
+                    d{"GGGGG y-MM-dd, E – y-MM-dd, E"}\r
+                    y{"GGGGG y-MM-dd, E – y-MM-dd, E"}\r
+                }\r
+                GyMMM{\r
+                    G{"G y MMM – G y MMM"}\r
+                    M{"G y MMM–MMM"}\r
+                    y{"G y MMM – y MMM"}\r
+                }\r
+                GyMMMEd{\r
+                    G{"G y MMM d, E – G y MMM d, E"}\r
+                    M{"G y MMM d, E – MMM d, E"}\r
+                    d{"G y MMM d, E – MMM d, E"}\r
+                    y{"G y MMM d, E – y MMM d, E"}\r
+                }\r
+                GyMMMd{\r
+                    G{"G y MMM d – G y MMM d"}\r
+                    M{"G y MMM d – MMM d"}\r
+                    d{"G y MMM d–d"}\r
+                    y{"G y MMM d – y MMM d"}\r
+                }\r
+                GyMd{\r
+                    G{"GGGGG y-MM-dd – GGGGG y-MM-dd"}\r
+                    M{"GGGGG y-MM-dd – y-MM-dd"}\r
+                    d{"GGGGG y-MM-dd – y-MM-dd"}\r
+                    y{"GGGGG y-MM-dd – y-MM-dd"}\r
+                }\r
                 H{\r
                     H{"HH–HH"}\r
                 }\r
@@ -1713,6 +1791,7 @@ root{
                     "Taishō",\r
                     "Shōwa",\r
                     "Heisei",\r
+                    "Qqqq",\r
                 }\r
                 narrow{\r
                     "Taika (645–650)",\r
@@ -1951,6 +2030,7 @@ root{
                     "T",\r
                     "S",\r
                     "H",\r
+                    "Q",\r
                 }\r
                 wide:alias{"/LOCALE/calendar/japanese/eras/abbreviated"}\r
             }\r
@@ -2437,12 +2517,30 @@ root{
             middle{"{0}, {1}"}\r
             start{"{0}, {1}"}\r
         }\r
+        or-narrow{\r
+            2:alias{"/LOCALE/listPattern/or-short/2"}\r
+            end:alias{"/LOCALE/listPattern/or-short/end"}\r
+            middle:alias{"/LOCALE/listPattern/or-short/middle"}\r
+            start:alias{"/LOCALE/listPattern/or-short/start"}\r
+        }\r
+        or-short{\r
+            2:alias{"/LOCALE/listPattern/or/2"}\r
+            end:alias{"/LOCALE/listPattern/or/end"}\r
+            middle:alias{"/LOCALE/listPattern/or/middle"}\r
+            start:alias{"/LOCALE/listPattern/or/start"}\r
+        }\r
         standard{\r
             2{"{0}, {1}"}\r
             end{"{0}, {1}"}\r
             middle{"{0}, {1}"}\r
             start{"{0}, {1}"}\r
         }\r
+        standard-narrow{\r
+            2:alias{"/LOCALE/listPattern/standard-short/2"}\r
+            end:alias{"/LOCALE/listPattern/standard-short/end"}\r
+            middle:alias{"/LOCALE/listPattern/standard-short/middle"}\r
+            start:alias{"/LOCALE/listPattern/standard-short/start"}\r
+        }\r
         standard-short{\r
             2:alias{"/LOCALE/listPattern/standard/2"}\r
             end:alias{"/LOCALE/listPattern/standard/end"}\r
@@ -2477,20 +2575,25 @@ root{
         date{\r
             lenient{\r
                 "[\\--/]",\r
-                "[\\:∶]",\r
+                "[\\:∶︓﹕:]",\r
             }\r
         }\r
         general{\r
             lenient{\r
                 "[.․。︒﹒.。]",\r
-                "[\$﹩$$]",\r
-                "[£₤]",\r
+                "['ʼ՚᾽᾿’']",\r
+                "[%٪﹪%]",\r
+                "[؉‰]",\r
+                "[\$﹩$]",\r
+                "[£₤£]",\r
+                "[¥¥]",\r
+                "[₩₩]",\r
                 "[₨₹{Rp}{Rs}]",\r
             }\r
         }\r
         number{\r
             lenient{\r
-                "[\\-â\80\92⁻₋−➖﹣-]",\r
+                "[\\-â\80\90â\80\92â\80\93⁻₋−➖﹣-]",\r
                 "[,،٫、︐︑﹐﹑,、]",\r
                 "[+⁺₊➕﬩﹢+]",\r
             }\r
index 9edef62..d325d2d 100644 (file)
@@ -25,7 +25,9 @@ ru{
         default{"latn"}\r
         latn{\r
             miscPatterns{\r
-                atLeast{"⩾{0}"}\r
+                approximately{"≈{0}"}\r
+                atLeast{"≥{0}"}\r
+                atMost{"≤{0}"}\r
                 range{"{0}–{1}"}\r
             }\r
             patterns{\r
@@ -290,7 +292,7 @@ ru{
         minimumGroupingDigits{"1"}\r
         native{"latn"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.45.15"}\r
     calendar{\r
         buddhist{\r
             eras{\r
@@ -307,10 +309,10 @@ ru{
         }\r
         chinese{\r
             DateTimePatterns{\r
-                "H:mm:ss zzzz",\r
-                "H:mm:ss z",\r
-                "H:mm:ss",\r
-                "H:mm",\r
+                "HH:mm:ss zzzz",\r
+                "HH:mm:ss z",\r
+                "HH:mm:ss",\r
+                "HH:mm",\r
                 "EEEE, d MMMM U",\r
                 "d MMMM U",\r
                 "dd.MM U",\r
@@ -643,10 +645,10 @@ ru{
         }\r
         generic{\r
             DateTimePatterns{\r
-                "H:mm:ss zzzz",\r
-                "H:mm:ss z",\r
-                "H:mm:ss",\r
-                "H:mm",\r
+                "HH:mm:ss zzzz",\r
+                "HH:mm:ss z",\r
+                "HH:mm:ss",\r
+                "HH:mm",\r
                 "EEEE, d MMMM y 'г'. G",\r
                 "d MMMM y 'г'. G",\r
                 "d MMM y 'г'. G",\r
@@ -813,10 +815,10 @@ ru{
                 "PM",\r
             }\r
             DateTimePatterns{\r
-                "H:mm:ss zzzz",\r
-                "H:mm:ss z",\r
-                "H:mm:ss",\r
-                "H:mm",\r
+                "HH:mm:ss zzzz",\r
+                "HH:mm:ss z",\r
+                "HH:mm:ss",\r
+                "HH:mm",\r
                 "EEEE, d MMMM y 'г'.",\r
                 "d MMMM y 'г'.",\r
                 "d MMM y 'г'.",\r
@@ -846,11 +848,11 @@ ru{
                 GyMMM{"LLL y G"}\r
                 GyMMMEd{"E, d MMM y 'г'. G"}\r
                 GyMMMd{"d MMM y 'г'. G"}\r
-                H{"H"}\r
-                Hm{"H:mm"}\r
-                Hms{"H:mm:ss"}\r
-                Hmsv{"H:mm:ss v"}\r
-                Hmv{"H:mm v"}\r
+                H{"HH"}\r
+                Hm{"HH:mm"}\r
+                Hms{"HH:mm:ss"}\r
+                Hmsv{"HH:mm:ss v"}\r
+                Hmv{"HH:mm v"}\r
                 M{"L"}\r
                 MEd{"E, dd.MM"}\r
                 MMM{"LLL"}\r
@@ -1033,6 +1035,10 @@ ru{
                     "до н. э.",\r
                     "н. э.",\r
                 }\r
+                abbreviated%variant{\r
+                    "BCE",\r
+                    "н. э.",\r
+                }\r
                 narrow{\r
                     "до н.э.",\r
                     "н.э.",\r
@@ -1048,18 +1054,18 @@ ru{
             }\r
             intervalFormats{\r
                 H{\r
-                    H{"HH"}\r
+                    H{"HH–HH"}\r
                 }\r
                 Hm{\r
-                    H{"H:mm–H:mm"}\r
-                    m{"H:mm–H:mm"}\r
+                    H{"HH:mm–HH:mm"}\r
+                    m{"HH:mm–HH:mm"}\r
                 }\r
                 Hmv{\r
-                    H{"H:mm–H:mm v"}\r
-                    m{"H:mm–H:mm v"}\r
+                    H{"HH:mm–HH:mm v"}\r
+                    m{"HH:mm–HH:mm v"}\r
                 }\r
                 Hv{\r
-                    H{"HH v"}\r
+                    H{"HH–HH v"}\r
                 }\r
                 M{\r
                     M{"M–M"}\r
@@ -1837,6 +1843,7 @@ ru{
                     "Эпоха Тайсьо",\r
                     "Сьова",\r
                     "Эпоха Хэйсэй",\r
+                    "Qqqq",\r
                 }\r
             }\r
         }\r
@@ -1984,7 +1991,7 @@ ru{
         emoji{"эмодзи"}\r
         european_scripts{"письменности Европы"}\r
         female{"женщины"}\r
-        flag{"флаги"}\r
+        flag{"флаг"}\r
         flags{"флаги"}\r
         food_drink{"еда и напитки"}\r
         format{"форматирование"}\r
@@ -3161,8 +3168,13 @@ ru{
         general{\r
             lenient{\r
                 "[.․。︒﹒.。]",\r
+                "['ʼ՚᾽᾿’']",\r
+                "[%٪﹪%]",\r
+                "[؉‰]",\r
                 "[\$﹩$$]",\r
                 "[£₤]",\r
+                "[¥¥]",\r
+                "[₩₩]",\r
                 "[₨₹{Rp}{Rs}]",\r
             }\r
         }\r
index 64d98bf..f5e8fcf 100644 (file)
@@ -4,65 +4,14 @@ ru_UA{
     NumberElements{\r
         minimumGroupingDigits{"2"}\r
     }\r
-    Version{"2.1.38.39"}\r
+    Version{"2.1.43.65"}\r
     calendar{\r
-        generic{\r
-            DateTimePatterns{\r
-                "HH:mm:ss zzzz",\r
-                "HH:mm:ss z",\r
-                "HH:mm:ss",\r
-                "HH:mm",\r
-                "EEEE, d MMMM y 'г'. G",\r
-                "d MMMM y 'г'. G",\r
-                "d MMM y 'г'. G",\r
-                "dd.MM.y G",\r
-                "{1}, {0}",\r
-                "{1}, {0}",\r
-                "{1}, {0}",\r
-                "{1}, {0}",\r
-                "{1}, {0}",\r
-            }\r
-        }\r
         gregorian{\r
-            DateTimePatterns{\r
-                "HH:mm:ss zzzz",\r
-                "HH:mm:ss z",\r
-                "HH:mm:ss",\r
-                "HH:mm",\r
-                "EEEE, d MMMM y 'г'.",\r
-                "d MMMM y 'г'.",\r
-                "d MMM y 'г'.",\r
-                "dd.MM.y",\r
-                "{1}, {0}",\r
-                "{1}, {0}",\r
-                "{1}, {0}",\r
-                "{1}, {0}",\r
-                "{1}, {0}",\r
-            }\r
             availableFormats{\r
                 GyMMM{"LLL y 'г'. G"}\r
-                H{"HH"}\r
-                Hm{"HH:mm"}\r
-                Hms{"HH:mm:ss"}\r
-                Hmsv{"HH:mm:ss v"}\r
-                Hmv{"HH:mm v"}\r
                 yMEd{"ccc, d.MM.y"}\r
             }\r
             intervalFormats{\r
-                H{\r
-                    H{"HH–HH"}\r
-                }\r
-                Hm{\r
-                    H{"HH:mm–HH:mm"}\r
-                    m{"HH:mm–HH:mm"}\r
-                }\r
-                Hmv{\r
-                    H{"HH:mm–HH:mm v"}\r
-                    m{"HH:mm–HH:mm v"}\r
-                }\r
-                Hv{\r
-                    H{"HH–HH v"}\r
-                }\r
                 yMMM{\r
                     y{"LLL y – LLL y"}\r
                 }\r
index e6f9e1d..39a0439 100644 (file)
@@ -7,7 +7,7 @@ rw{
     NumberElements{\r
         latn{\r
             miscPatterns{\r
-                atLeast{"⩾{0}"}\r
+                atLeast{"â\89¥{0}"}\r
                 range{"{0}–{1}"}\r
             }\r
             patterns{\r
@@ -32,7 +32,7 @@ rw{
         }\r
         minimumGroupingDigits{"1"}\r
     }\r
-    Version{"2.1.38.72"}\r
+    Version{"2.1.44.88"}\r
     calendar{\r
         generic{\r
             DateTimePatterns{\r
@@ -126,7 +126,7 @@ rw{
                 yQQQ{"y QQQ"}\r
                 yQQQQ{"y QQQQ"}\r
                 yw{\r
-                    other{"'week' w 'of' y"}\r
+                    other{"'week' w 'of' Y"}\r
                 }\r
             }\r
             dayNames{\r
index 5282aa3..994334b 100644 (file)
@@ -19,7 +19,7 @@ sah{
         default{"latn"}\r
         latn{\r
             miscPatterns{\r
-                atLeast{"⩾{0}"}\r
+                atLeast{"â\89¥{0}"}\r
                 range{"{0}–{1}"}\r
             }\r
             patterns{\r
@@ -164,7 +164,7 @@ sah{
         minimumGroupingDigits{"1"}\r
         native{"latn"}\r
     }\r
-    Version{"2.1.38.69"}\r
+    Version{"2.1.43.94"}\r
     calendar{\r
         generic{\r
             DateTimePatterns{\r
diff --git a/source/data/locales/sd.txt b/source/data/locales/sd.txt
new file mode 100644 (file)
index 0000000..a669300
--- /dev/null
@@ -0,0 +1,1714 @@
+// © 2016 and later: Unicode, Inc. and others.\r
+// License & terms of use: http://www.unicode.org/copyright.html#License\r
+sd{\r
+    AuxExemplarCharacters{"[ئ]"}\r
+    Ellipsis{\r
+        final{"{0}…"}\r
+        initial{"…{0}"}\r
+        medial{"{0}…{1}"}\r
+        word-final{"{0} …"}\r
+        word-initial{"… {0}"}\r
+        word-medial{"{0} … {1}"}\r
+    }\r
+    ExemplarCharacters{\r
+        "[آ ا ب ٻ پ ڀ ت ث ٺ ٽ ٿ ج {جھ} ڃ ڄ چ ڇ ح خ د ذ ڊ ڌ ڍ ڏ ر ز ڙ س ش ص ض ط ظ ع غ "\r
+        "ف ڦ ق ک ڪ گ {گھ} ڱ ڳ ل م ن ڻ ه ھ و ي]"\r
+    }\r
+    ExemplarCharactersIndex{\r
+        "[ا ب ٻ پ ڀ ت ث ٺ ٽ ٿ ج {جھ} ڃ ڄ چ ڇ ح خ د ذ ڊ ڌ ڍ ڏ ر ز ڙ س ش ص ض ط ظ ع غ ف "\r
+        "ڦ ق ک ڪ گ {گھ} ڱ ڳ ل م ن ڻ ه ھ و ي]"\r
+    }\r
+    ExemplarCharactersNumbers{"[\\- , . % ‰ + 0 1 2 3 4 5 6 7 8 9]"}\r
+    ExemplarCharactersPunctuation{"[⹁ ⁏ \\: ! ۔ ‘ ( ) \\[ \\] \\{ \\} /]"}\r
+    MoreInformation{"?"}\r
+    NumberElements{\r
+        default{"arab"}\r
+        latn{\r
+            miscPatterns{\r
+                approximately{"~{0}"}\r
+                atLeast{"≥{0}"}\r
+                atMost{"≤{0}"}\r
+                range{"{0}–{1}"}\r
+            }\r
+            patterns{\r
+                accountingFormat{"¤ #,##0.00"}\r
+                currencyFormat{"¤ #,##0.00"}\r
+                decimalFormat{"#,##0.###"}\r
+                percentFormat{"#,##0%"}\r
+                scientificFormat{"#E0"}\r
+            }\r
+            patternsLong{\r
+                decimalFormat{\r
+                    1000{\r
+                        one{"0 ھزار"}\r
+                        other{"0 ھزار"}\r
+                    }\r
+                    10000{\r
+                        one{"00 ھزار"}\r
+                        other{"00K"}\r
+                    }\r
+                    100000{\r
+                        one{"000K"}\r
+                        other{"000K"}\r
+                    }\r
+                    1000000{\r
+                        one{"0M"}\r
+                        other{"0M"}\r
+                    }\r
+                    10000000{\r
+                        one{"00M"}\r
+                        other{"00M"}\r
+                    }\r
+                    100000000{\r
+                        one{"000M"}\r
+                        other{"000M"}\r
+                    }\r
+                    1000000000{\r
+                        one{"0G"}\r
+                        other{"0G"}\r
+                    }\r
+                    10000000000{\r
+                        one{"00G"}\r
+                        other{"00G"}\r
+                    }\r
+                    100000000000{\r
+                        one{"000G"}\r
+                        other{"000G"}\r
+                    }\r
+                    1000000000000{\r
+                        one{"0T"}\r
+                        other{"0T"}\r
+                    }\r
+                    10000000000000{\r
+                        one{"00T"}\r
+                        other{"00T"}\r
+                    }\r
+                    100000000000000{\r
+                        one{"000T"}\r
+                        other{"000T"}\r
+                    }\r
+                }\r
+            }\r
+            patternsShort{\r
+                currencyFormat{\r
+                    1000{\r
+                        one{"¤ 0K"}\r
+                        other{"¤ 0K"}\r
+                    }\r
+                    10000{\r
+                        one{"¤ 00K"}\r
+                        other{"¤ 00K"}\r
+                    }\r
+                    100000{\r
+                        one{"¤ 000K"}\r
+                        other{"¤ 000K"}\r
+                    }\r
+                    1000000{\r
+                        one{"¤ 0M"}\r
+                        other{"¤ 0M"}\r
+                    }\r
+                    10000000{\r
+                        one{"¤ 00M"}\r
+                        other{"¤ 00M"}\r
+                    }\r
+                    100000000{\r
+                        one{"¤ 000M"}\r
+                        other{"¤ 000M"}\r
+                    }\r
+                    1000000000{\r
+                        one{"¤ 0G"}\r
+                        other{"¤ 0G"}\r
+                    }\r
+                    10000000000{\r
+                        one{"¤ 00G"}\r
+                        other{"¤ 00G"}\r
+                    }\r
+                    100000000000{\r
+                        one{"¤ 000G"}\r
+                        other{"¤ 000G"}\r
+                    }\r
+                    1000000000000{\r
+                        one{"¤ 0T"}\r
+                        other{"¤ 0T"}\r
+                    }\r
+                    10000000000000{\r
+                        one{"¤ 00T"}\r
+                        other{"¤ 00T"}\r
+                    }\r
+                    100000000000000{\r
+                        one{"¤ 000T"}\r
+                        other{"¤ 000T"}\r
+                    }\r
+                }\r
+                decimalFormat{\r
+                    1000{\r
+                        one{"0K"}\r
+                        other{"0K"}\r
+                    }\r
+                    10000{\r
+                        one{"00K"}\r
+                        other{"00K"}\r
+                    }\r
+                    100000{\r
+                        one{"000K"}\r
+                        other{"000K"}\r
+                    }\r
+                    1000000{\r
+                        one{"0M"}\r
+                        other{"0M"}\r
+                    }\r
+                    10000000{\r
+                        one{"00M"}\r
+                        other{"00M"}\r
+                    }\r
+                    100000000{\r
+                        one{"000M"}\r
+                        other{"000M"}\r
+                    }\r
+                    1000000000{\r
+                        one{"0G"}\r
+                        other{"0G"}\r
+                    }\r
+                    10000000000{\r
+                        one{"00G"}\r
+                        other{"00G"}\r
+                    }\r
+                    100000000000{\r
+                        one{"000G"}\r
+                        other{"000G"}\r
+                    }\r
+                    1000000000000{\r
+                        one{"0T"}\r
+                        other{"0T"}\r
+                    }\r
+                    10000000000000{\r
+                        one{"00T"}\r
+                        other{"00T"}\r
+                    }\r
+                    100000000000000{\r
+                        one{"000T"}\r
+                        other{"000T"}\r
+                    }\r
+                }\r
+            }\r
+            symbols{\r
+                decimal{"."}\r
+                exponential{"E"}\r
+                group{","}\r
+                infinity{"∞"}\r
+                minusSign{"-"}\r
+                nan{"NaN"}\r
+                perMille{"‰"}\r
+                percentSign{"%"}\r
+                plusSign{"+"}\r
+                superscriptingExponent{"×"}\r
+            }\r
+        }\r
+        minimalPairs{\r
+            ordinal{\r
+                other{"کاٻي تي {0} نمبر گهر."}\r
+            }\r
+            plural{\r
+                one{"{0} ڪتاب"}\r
+                other{"{0} ڪتابون"}\r
+            }\r
+        }\r
+        minimumGroupingDigits{"1"}\r
+        native{"arab"}\r
+    }\r
+    Version{"2.1.43.94"}\r
+    calendar{\r
+        generic{\r
+            DateTimePatterns{\r
+                "h:mm:ss a zzzz",\r
+                "h:mm:ss a z",\r
+                "h:mm:ss a",\r
+                "h:mm a",\r
+                "G y MMMM d, EEEE",\r
+                "G y MMMM d",\r
+                "G y MMM d",\r
+                "GGGGG y-MM-dd",\r
+                "{1} {0}",\r
+                "{1} {0}",\r
+                "{1} {0}",\r
+                "{1} {0}",\r
+                "{1} {0}",\r
+            }\r
+            availableFormats{\r
+                Bh{"h B"}\r
+                Bhm{"h:mm B"}\r
+                Bhms{"h:mm:ss B"}\r
+                E{"ccc"}\r
+                EBhm{"E h:mm B"}\r
+                EBhms{"E h:mm:ss B"}\r
+                EHm{"E HH:mm"}\r
+                EHms{"E HH:mm:ss"}\r
+                Ed{"d, E"}\r
+                Ehm{"E h:mm a"}\r
+                Ehms{"E h:mm:ss a"}\r
+                Gy{"G y"}\r
+                GyMMM{"G y MMM"}\r
+                GyMMMEd{"G y MMM d, E"}\r
+                GyMMMd{"G y MMM d"}\r
+                H{"HH"}\r
+                Hm{"HH:mm"}\r
+                Hms{"HH:mm:ss"}\r
+                M{"L"}\r
+                MEd{"MM-dd, E"}\r
+                MMM{"LLL"}\r
+                MMMEd{"MMM d, E"}\r
+                MMMMd{"MMMM d"}\r
+                MMMd{"MMM d"}\r
+                Md{"MM-dd"}\r
+                d{"d"}\r
+                h{"h a"}\r
+                hm{"h:mm a"}\r
+                hms{"h:mm:ss a"}\r
+                ms{"mm:ss"}\r
+                y{"G y"}\r
+                yyyy{"G y"}\r
+                yyyyM{"GGGGG y-MM"}\r
+                yyyyMEd{"GGGGG y-MM-dd, E"}\r
+                yyyyMMM{"G y MMM"}\r
+                yyyyMMMEd{"G y MMM d, E"}\r
+                yyyyMMMM{"G y MMMM"}\r
+                yyyyMMMd{"G y MMM d"}\r
+                yyyyMd{"GGGGG y-MM-dd"}\r
+                yyyyQQQ{"G y QQQ"}\r
+                yyyyQQQQ{"G y QQQQ"}\r
+            }\r
+            intervalFormats{\r
+                M{\r
+                    M{"MM–MM"}\r
+                }\r
+                MEd{\r
+                    M{"MM-dd, E – MM-dd, E"}\r
+                    d{"MM-dd, E – MM-dd, E"}\r
+                }\r
+                MMM{\r
+                    M{"LLL–LLL"}\r
+                }\r
+                MMMEd{\r
+                    M{"MMM d, E – MMM d, E"}\r
+                    d{"MMM d, E – MMM d, E"}\r
+                }\r
+                MMMd{\r
+                    M{"MMM d – MMM d"}\r
+                    d{"MMM d–d"}\r
+                }\r
+                Md{\r
+                    M{"MM-dd – MM-dd"}\r
+                    d{"MM-dd – MM-dd"}\r
+                }\r
+                d{\r
+                    d{"d–d"}\r
+                }\r
+                fallback{"{0} – {1}"}\r
+                y{\r
+                    y{"G y–y"}\r
+                }\r
+                yM{\r
+                    M{"GGGGG y-MM – y-MM"}\r
+                    y{"GGGGG y-MM – y-MM"}\r
+                }\r
+                yMEd{\r
+                    M{"GGGGG y-MM-dd, E – y-MM-dd, E"}\r
+                    d{"GGGGG y-MM-dd, E – y-MM-dd, E"}\r
+                    y{"GGGGG y-MM-dd, E – y-MM-dd, E"}\r
+                }\r
+                yMMM{\r
+                    M{"G y MMM–MMM"}\r
+                    y{"G y MMM – y MMM"}\r
+                }\r
+                yMMMEd{\r
+                    M{"G y MMM d, E – MMM d, E"}\r
+                    d{"G y MMM d, E – MMM d, E"}\r
+                    y{"G y MMM d, E – y MMM d, E"}\r
+                }\r
+                yMMMM{\r
+                    M{"G y MMMM–MMMM"}\r
+                    y{"G y MMMM – y MMMM"}\r
+                }\r
+                yMMMd{\r
+                    M{"G y MMM d – MMM d"}\r
+                    d{"G y MMM d–d"}\r
+                    y{"G y MMM d – y MMM d"}\r
+                }\r
+                yMd{\r
+                    M{"GGGGG y-MM-dd – y-MM-dd"}\r
+                    d{"GGGGG y-MM-dd – y-MM-dd"}\r
+                    y{"GGGGG y-MM-dd – y-MM-dd"}\r
+                }\r
+            }\r
+        }\r
+        gregorian{\r
+            AmPmMarkers{\r
+                "صبح، منجهند",\r
+                "منجهند، شام",\r
+            }\r
+            AmPmMarkersAbbr{\r
+                "صبح، منجهند",\r
+                "شام، منجهند",\r
+            }\r
+            AmPmMarkersNarrow{\r
+                "صبح، منجهند",\r
+                "منجهند، شام",\r
+            }\r
+            DateTimePatterns{\r
+                "h:mm:ss a zzzz",\r
+                "h:mm:ss a z",\r
+                "h:mm:ss a",\r
+                "h:mm a",\r
+                "y MMMM d, EEEE",\r
+                "y MMMM d",\r
+                "y MMM d",\r
+                "y-MM-dd",\r
+                "{1} {0}",\r
+                "{1} {0}",\r
+                "{1} {0}",\r
+                "{1} {0}",\r
+                "{1} {0}",\r
+            }\r
+            appendItems{\r
+                Timezone{"{0} {1}"}\r
+            }\r
+            availableFormats{\r
+                Bh{"h B"}\r
+                Bhm{"h:mm B"}\r
+                Bhms{"h:mm:ss B"}\r
+                E{"ccc"}\r
+                EBhm{"E h:mm B"}\r
+                EBhms{"E h:mm:ss B"}\r
+                EHm{"E HH:mm"}\r
+                EHms{"E HH:mm:ss"}\r
+                Ed{"d, E"}\r
+                Ehm{"E h:mm a"}\r
+                Ehms{"E h:mm:ss a"}\r
+                Gy{"G y"}\r
+                GyMMM{"G y MMM"}\r
+                GyMMMEd{"G y MMM d, E"}\r
+                GyMMMd{"G y MMM d"}\r
+                H{"HH"}\r
+                Hm{"HH:mm"}\r
+                Hms{"HH:mm:ss"}\r
+                Hmsv{"HH:mm:ss v"}\r
+                Hmv{"HH:mm v"}\r
+                M{"L"}\r
+                MEd{"MM-dd, E"}\r
+                MMM{"LLL"}\r
+                MMMEd{"MMM d, E"}\r
+                MMMMW{\r
+                    one{"ھفتو W جو MMMM"}\r
+                    other{"ھفتو W جو MMMM"}\r
+                }\r
+                MMMMd{"MMMM d"}\r
+                MMMd{"MMM d"}\r
+                Md{"MM-dd"}\r
+                d{"d"}\r
+                h{"h a"}\r
+                hm{"h:mm a"}\r
+                hms{"h:mm:ss a"}\r
+                hmsv{"h:mm:ss a v"}\r
+                hmv{"h:mm a v"}\r
+                ms{"mm:ss"}\r
+                y{"y"}\r
+                yM{"y-MM"}\r
+                yMEd{"y-MM-dd, E"}\r
+                yMMM{"y MMM"}\r
+                yMMMEd{"y MMM d, E"}\r
+                yMMMM{"y MMMM"}\r
+                yMMMd{"y MMM d"}\r
+                yMd{"y-MM-dd"}\r
+                yQQQ{"y QQQ"}\r
+                yQQQQ{"y QQQQ"}\r
+                yw{\r
+                    one{"ھفتو w جو Y"}\r
+                    other{"ھفتو w جو Y"}\r
+                }\r
+            }\r
+            dayNames{\r
+                format{\r
+                    abbreviated{\r
+                        "آچر",\r
+                        "سومر",\r
+                        "اڱارو",\r
+                        "اربع",\r
+                        "خميس",\r
+                        "جمعو",\r
+                        "ڇنڇر",\r
+                    }\r
+                    narrow{\r
+                        "آچر",\r
+                        "سو",\r
+                        "اڱارو",\r
+                        "اربع",\r
+                        "خم",\r
+                        "جمعو",\r
+                        "ڇنڇر",\r
+                    }\r
+                    short{\r
+                        "آچر",\r
+                        "سومر",\r
+                        "اڱارو",\r
+                        "اربع",\r
+                        "خميس",\r
+                        "جمعو",\r
+                        "ڇنڇر",\r
+                    }\r
+                    wide{\r
+                        "آچر",\r
+                        "سومر",\r
+                        "اڱارو",\r
+                        "اربع",\r
+                        "خميس",\r
+                        "جمعو",\r
+                        "ڇنڇر",\r
+                    }\r
+                }\r
+                stand-alone{\r
+                    abbreviated{\r
+                        "آچر",\r
+                        "سومر",\r
+                        "اڱارو",\r
+                        "اربع",\r
+                        "خميس",\r
+                        "جمعو",\r
+                        "ڇنڇر",\r
+                    }\r
+                    narrow{\r
+                        "آچر",\r
+                        "سو",\r
+                        "اڱارو",\r
+                        "اربع",\r
+                        "خم",\r
+                        "جمعو",\r
+                        "ڇنڇر",\r
+                    }\r
+                    short{\r
+                        "آچر",\r
+                        "سومر",\r
+                        "اڱارو",\r
+                        "اربع",\r
+                        "خميس",\r
+                        "جمعو",\r
+                        "ڇنڇر",\r
+                    }\r
+                    wide{\r
+                        "آچر",\r
+                        "سومر",\r
+                        "اڱارو",\r
+                        "اربع",\r
+                        "خميس",\r
+                        "جمعو",\r
+                        "ڇنڇر",\r
+                    }\r
+                }\r
+            }\r
+            dayPeriod{\r
+                stand-alone{\r
+                    abbreviated{\r
+                        am{"صبح، منجهند"}\r
+                        pm{"منجهند، شام"}\r
+                    }\r
+                    narrow{\r
+                        am{"صبح، منجهند"}\r
+                        pm{"منجهند، شام"}\r
+                    }\r
+                    wide{\r
+                        am{"صبح، منجهند"}\r
+                        pm{"منجهند، شام"}\r
+                    }\r
+                }\r
+            }\r
+            eras{\r
+                abbreviated{\r
+                    "BC",\r
+                    "CD",\r
+                }\r
+                abbreviated%variant{\r
+                    "BCE",\r
+                    "CE",\r
+                }\r
+                wide{\r
+                    "مسيح کان اڳ",\r
+                    "عيسوي کان پهرين",\r
+                }\r
+                wide%variant{\r
+                    "عام دور کان پهرين",\r
+                    "عام دور",\r
+                }\r
+            }\r
+            intervalFormats{\r
+                H{\r
+                    H{"HH–HH"}\r
+                }\r
+                Hm{\r
+                    H{"HH:mm–HH:mm"}\r
+                    m{"HH:mm–HH:mm"}\r
+                }\r
+                Hmv{\r
+                    H{"HH:mm–HH:mm v"}\r
+                    m{"HH:mm–HH:mm v"}\r
+                }\r
+                Hv{\r
+                    H{"HH–HH v"}\r
+                }\r
+                M{\r
+                    M{"MM–MM"}\r
+                }\r
+                MEd{\r
+                    M{"MM-dd, E – MM-dd, E"}\r
+                    d{"MM-dd, E – MM-dd, E"}\r
+                }\r
+                MMM{\r
+                    M{"LLL–LLL"}\r
+                }\r
+                MMMEd{\r
+                    M{"MMM d, E – MMM d, E"}\r
+                    d{"MMM d, E – MMM d, E"}\r
+                }\r
+                MMMd{\r
+                    M{"MMM d – MMM d"}\r
+                    d{"MMM d–d"}\r
+                }\r
+                Md{\r
+                    M{"MM-dd – MM-dd"}\r
+                    d{"MM-dd – MM-dd"}\r
+                }\r
+                d{\r
+                    d{"d–d"}\r
+                }\r
+                fallback{"{0} – {1}"}\r
+                h{\r
+                    a{"h a – h a"}\r
+                    h{"h–h a"}\r
+                }\r
+                hm{\r
+                    a{"h:mm a – h:mm a"}\r
+                    h{"h:mm–h:mm a"}\r
+                    m{"h:mm–h:mm a"}\r
+                }\r
+                hmv{\r
+                    a{"h:mm a – h:mm a v"}\r
+                    h{"h:mm–h:mm a v"}\r
+                    m{"h:mm–h:mm a v"}\r
+                }\r
+                hv{\r
+                    a{"h a – h a v"}\r
+                    h{"h–h a v"}\r
+                }\r
+                y{\r
+                    y{"y–y"}\r
+                }\r
+                yM{\r
+                    M{"y-MM – y-MM"}\r
+                    y{"y-MM – y-MM"}\r
+                }\r
+                yMEd{\r
+                    M{"y-MM-dd, E – y-MM-dd, E"}\r
+                    d{"y-MM-dd, E – y-MM-dd, E"}\r
+                    y{"y-MM-dd, E – y-MM-dd, E"}\r
+                }\r
+                yMMM{\r
+                    M{"y MMM–MMM"}\r
+                    y{"y MMM – y MMM"}\r
+                }\r
+                yMMMEd{\r
+                    M{"y MMM d, E – MMM d, E"}\r
+                    d{"y MMM d, E – MMM d, E"}\r
+                    y{"y MMM d, E – y MMM d, E"}\r
+                }\r
+                yMMMM{\r
+                    M{"y MMMM–MMMM"}\r
+                    y{"y MMMM – y MMMM"}\r
+                }\r
+                yMMMd{\r
+                    M{"y MMM d – MMM d"}\r
+                    d{"y MMM d–d"}\r
+                    y{"y MMM d – y MMM d"}\r
+                }\r
+                yMd{\r
+                    M{"y-MM-dd – y-MM-dd"}\r
+                    d{"y-MM-dd – y-MM-dd"}\r
+                    y{"y-MM-dd – y-MM-dd"}\r
+                }\r
+            }\r
+            monthNames{\r
+                format{\r
+                    abbreviated{\r
+                        "جنوري",\r
+                        "فيبروري",\r
+                        "مارچ",\r
+                        "اپريل",\r
+                        "مئي",\r
+                        "جون",\r
+                        "جولاءِ",\r
+                        "آگسٽ",\r
+                        "سيپٽمبر",\r
+                        "آڪٽوبر",\r
+                        "نومبر",\r
+                        "ڊسمبر",\r
+                    }\r
+                    narrow{\r
+                        "J",\r
+                        "F",\r
+                        "M",\r
+                        "A",\r
+                        "M",\r
+                        "J",\r
+                        "J",\r
+                        "A",\r
+                        "S",\r
+                        "O",\r
+                        "N",\r
+                        "D",\r
+                    }\r
+                    wide{\r
+                        "جنوري",\r
+                        "فيبروري",\r
+                        "مارچ",\r
+                        "اپريل",\r
+                        "مئي",\r
+                        "جون",\r
+                        "جولاءِ",\r
+                        "آگسٽ",\r
+                        "سيپٽمبر",\r
+                        "آڪٽوبر",\r
+                        "نومبر",\r
+                        "ڊسمبر",\r
+                    }\r
+                }\r
+                stand-alone{\r
+                    abbreviated{\r
+                        "جنوري",\r
+                        "فيبروري",\r
+                        "مارچ",\r
+                        "اپريل",\r
+                        "مئي",\r
+                        "جون",\r
+                        "جولاءِ",\r
+                        "آگسٽ",\r
+                        "سيپٽمبر",\r
+                        "آڪٽوبر",\r
+                        "نومبر",\r
+                        "ڊسمبر",\r
+                    }\r
+                    narrow{\r
+                        "J",\r
+                        "F",\r
+                        "M",\r
+                        "A",\r
+                        "M",\r
+                        "J",\r
+                        "J",\r
+                        "A",\r
+                        "S",\r
+                        "O",\r
+                        "N",\r
+                        "D",\r
+                    }\r
+                    wide{\r
+                        "جنوري",\r
+                        "فيبروري",\r
+                        "مارچ",\r
+                        "اپريل",\r
+                        "مئي",\r
+                        "جون",\r
+                        "جولاءِ",\r
+                        "آگسٽ",\r
+                        "سيپٽمبر",\r
+                        "آڪٽوبر",\r
+                        "نومبر",\r
+                        "ڊسمبر",\r
+                    }\r
+                }\r
+            }\r
+            quarters{\r
+                format{\r
+                    abbreviated{\r
+                        "Q1",\r
+                        "Q2",\r
+                        "Q3",\r
+                        "Q5",\r
+                    }\r
+                    narrow{\r
+                        "1",\r
+                        "2",\r
+                        "3",\r
+                        "4",\r
+                    }\r
+                    wide{\r
+                        "پهرين ٽي ماهي",\r
+                        "ٻين ٽي ماهي",\r
+                        "ٽين ٽي ماهي",\r
+                        "چوٿين ٽي ماهي",\r
+                    }\r
+                }\r
+                stand-alone{\r
+                    abbreviated{\r
+                        "Q1",\r
+                        "Q2",\r
+                        "Q3",\r
+                        "Q4",\r
+                    }\r
+                    narrow{\r
+                        "1",\r
+                        "2",\r
+                        "3",\r
+                        "4",\r
+                    }\r
+                    wide{\r
+                        "پهرين ٽي ماهي",\r
+                        "ٻين ٽي ماهي",\r
+                        "ٽين ٽي ماهي",\r
+                        "چوٿين ٽي ماهي",\r
+                    }\r
+                }\r
+            }\r
+        }\r
+    }\r
+    characterLabel{\r
+        activities{"سرگرمي"}\r
+        african_scripts{"آفريقي رسم الخط"}\r
+        american_scripts{"آمريڪي رسم الخط"}\r
+        animal{"جانور"}\r
+        animals_nature{"جانور يا قدرت"}\r
+        arrows{"تير"}\r
+        body{"جسم"}\r
+        box_drawing{"دٻي جي ڊرائنگ"}\r
+        braille{"بريلي"}\r
+        building{"عمارت"}\r
+        bullets_stars{"گولي يا تارو"}\r
+        consonantal_jamo{"حرف صحيح جامو"}\r
+        currency_symbols{"سڪي جي نشاني"}\r
+        dash_connector{"ڊيش يا ڪنيڪٽر"}\r
+        digits{"انگ"}\r
+        dingbats{"احمق ماڻهو"}\r
+        divination_symbols{"اڳڪٿي جي نشاني"}\r
+        downwards_arrows{"هيٺ تير جو نشان"}\r
+        downwards_upwards_arrows{"هيٺ مٿي تير جو نشان"}\r
+        east_asian_scripts{"اوڀر ايشيائي رسم الخط"}\r
+        emoji{"ايموجي"}\r
+        european_scripts{"يورپي رسم الخط"}\r
+        female{"مادي"}\r
+        flag{"جهنڊو"}\r
+        flags{"جهنڊا"}\r
+        food_drink{"کاڌو ۽ پاڻي"}\r
+        format{"فارميٽ"}\r
+        format_whitespace{"فارميٽ ۽ خالي جڳي"}\r
+        full_width_form_variant{"پوري چوڙائي ويريئنٽ"}\r
+        geometric_shapes{"جاميٽري شڪل"}\r
+        half_width_form_variant{"اڌ چوڙائي ويريئنٽ"}\r
+        han_characters{"هان حرف"}\r
+        han_radicals{"هان ريڊيڪل"}\r
+        hanja{"هنجا"}\r
+        hanzi_simplified{"هانزي (آسان ڪيل)"}\r
+        hanzi_traditional{"هانزي (رواجي)"}\r
+        heart{"دل"}\r
+        historic_scripts{"تاريخي رسم الخط"}\r
+        ideographic_desc_characters{"تصورنگاري وضاحت حرف"}\r
+        japanese_kana{"جاپاني ڪنا"}\r
+        kanbun{"ڪانبون"}\r
+        kanji{"ڪانجي"}\r
+        keycap{"ڪي ڪيپ"}\r
+        leftwards_arrows{"کاٻي پاسي تير"}\r
+        leftwards_rightwards_arrows{"کاٻي پاسي ساڄي پاسي تير"}\r
+        letterlike_symbols{"اکر جهڙي نشاني"}\r
+        limited_use{"محدود-استعمال"}\r
+        male{"مرد"}\r
+        math_symbols{"رياضي جي نشاني"}\r
+        middle_eastern_scripts{"وچ اوڀاريون رسم الخط"}\r
+        miscellaneous{"متفرق"}\r
+        modern_scripts{"جديد رسم الخط"}\r
+        modifier{"ترميم ڪندڙ"}\r
+        musical_symbols{"موسيقي جي نشاني"}\r
+        nature{"فطرت"}\r
+        nonspacing{"بغير وٿي"}\r
+        numbers{"عدد"}\r
+        objects{"شئي"}\r
+        other{"ٻيا"}\r
+        paired{"جوڙو"}\r
+        person{"شخص"}\r
+        phonetic_alphabet{"صوتياتي رسم الخط"}\r
+        pictographs{"تصويري نشاني"}\r
+        place{"جڳھَ"}\r
+        plant{"ٻوٽو"}\r
+        punctuation{"اوقاف"}\r
+        rightwards_arrows{"ساڄي پاسي تير"}\r
+        sign_standard_symbols{"نشاني يا علامت"}\r
+        small_form_variant{"ننڍا ويريئنٽ"}\r
+        smiley{"هنس مک"}\r
+        smileys_people{"هنس مک يا شخص"}\r
+        south_asian_scripts{"ڏکڻ ايشيائي رسم الخط"}\r
+        southeast_asian_scripts{"ڏکڻ-اوڀر ايشيائي رسم الخط"}\r
+        spacing{"وٿي"}\r
+        sport{"راند"}\r
+        symbols{"علامت"}\r
+        technical_symbols{"تڪنيڪي علامت"}\r
+        tone_marks{"ٽون مارڪ"}\r
+        travel{"سفر"}\r
+        travel_places{"سفر يا جڳھَ"}\r
+        upwards_arrows{"مٿي تير"}\r
+        variant_forms{"ويريئنٽ"}\r
+        vocalic_jamo{"ووڪلڪ جامو"}\r
+        weather{"موسم"}\r
+        western_asian_scripts{"مغربي ايشيائي رسم الخط"}\r
+        whitespace{"خالي جڳھَ"}\r
+    }\r
+    delimiters{\r
+        alternateQuotationEnd{"’"}\r
+        alternateQuotationStart{"‘"}\r
+        quotationEnd{"”"}\r
+        quotationStart{"“"}\r
+    }\r
+    fields{\r
+        day{\r
+            dn{"ڏينهن"}\r
+            relative{\r
+                "-1"{"ڪل"}\r
+                "0"{"اڄ"}\r
+                "1"{"سڀاڻي"}\r
+            }\r
+            relativeTime{\r
+                future{\r
+                    one{"{0} ڏينهن ۾"}\r
+                    other{"{0} ڏينهن ۾"}\r
+                }\r
+                past{\r
+                    one{"{0} ڏينهن پهرين"}\r
+                    other{"{0} ڏينهن پهرين"}\r
+                }\r
+            }\r
+        }\r
+        day-narrow{\r
+            dn{"ڏينهن"}\r
+            relativeTime{\r
+                future{\r
+                    one{"{0} ڏينهن ۾"}\r
+                    other{"{0} ڏينهن ۾"}\r
+                }\r
+                past{\r
+                    one{"{0} ڏينهن پهرين"}\r
+                    other{"{0} ڏينهن پهرين"}\r
+                }\r
+            }\r
+        }\r
+        day-short{\r
+            dn{"ڏينهن"}\r
+            relativeTime{\r
+                future{\r
+                    one{"{0} ڏينهن ۾"}\r
+                    other{"{0} ڏينهن ۾"}\r
+                }\r
+                past{\r
+                    one{"{0} ڏينهن پهرين"}\r
+                    other{"{0} ڏينهن پهرين"}\r
+                }\r
+            }\r
+        }\r
+        dayOfYear{\r
+            dn{"سال جو ڏينهن"}\r
+        }\r
+        dayOfYear-narrow{\r
+            dn{"سال جو ڏينهن"}\r
+        }\r
+        dayOfYear-short{\r
+            dn{"سال جو ڏينهن"}\r
+        }\r
+        dayperiod{\r
+            dn{"صبح/شام"}\r
+        }\r
+        dayperiod-narrow{\r
+            dn{"صبح، منجهند/منجهند، شام"}\r
+        }\r
+        dayperiod-short{\r
+            dn{"صبح، منجهند/منجهند، شام"}\r
+        }\r
+        era{\r
+            dn{"دور"}\r
+        }\r
+        era-narrow{\r
+            dn{"دور"}\r
+        }\r
+        era-short{\r
+            dn{"دور"}\r
+        }\r
+        fri{\r
+            relative{\r
+                "-1"{"پوئين جمعي"}\r
+                "0"{"هن جمعي"}\r
+                "1"{"اڳين جمعي"}\r
+            }\r
+            relativeTime{\r
+                future{\r
+                    one{"{0} جمعن ۾"}\r
+                    other{"{0} جمعن ۾"}\r
+                }\r
+                past{\r
+                    one{"{0} جمعا پهرين"}\r
+                    other{"{0} جمعا پهرين"}\r
+                }\r
+            }\r
+        }\r
+        fri-narrow{\r
+            relative{\r
+                "-1"{"پوئين جمعي"}\r
+                "0"{"هن جمعي"}\r
+                "1"{"اڳين جمعي"}\r
+            }\r
+            relativeTime{\r
+                future{\r
+                    one{"{0} جمعن ۾"}\r
+                    other{"{0} جمعن ۾"}\r
+                }\r
+                past{\r
+                    one{"{0} جمعا پهرين"}\r
+                    other{"{0} جمعا پهرين"}\r
+                }\r
+            }\r
+        }\r
+        fri-short{\r
+            relative{\r
+                "-1"{"پوئين جمعي"}\r
+                "0"{"هن جمعي"}\r
+                "1"{"اڳين جمعي"}\r
+            }\r
+            relativeTime{\r
+                future{\r
+                    one{"{0} جمعن ۾"}\r
+                    other{"{0} جمعن ۾"}\r
+                }\r
+                past{\r
+                    one{"{0} جمعا پهرين"}\r
+                    other{"{0} جمعا پهرين"}\r
+                }\r
+            }\r
+        }\r
+        hour{\r
+            dn{"ڪلاڪ"}\r
+            relative{\r
+                "0"{"هن ڪلڪ"}\r
+            }\r
+            relativeTime{\r
+                future{\r
+                    one{"{0} ڪلاڪ ۾"}\r
+                    other{"{0} ڪلاڪ ۾"}\r
+                }\r
+                past{\r
+                    one{"{0} ڪلاڪ پهرين"}\r
+                    other{"{0} ڪلاڪ پهرين"}\r
+                }\r
+            }\r
+        }\r
+        hour-narrow{\r
+            dn{"ڪلاڪ"}\r
+            relativeTime{\r
+                future{\r
+                    one{"{0} ڪلاڪ ۾"}\r
+                    other{"{0} ڪلاڪ ۾"}\r
+                }\r
+                past{\r
+                    one{"{0} ڪلاڪ پهرين"}\r
+                    other{"{0} ڪلاڪ پهرين"}\r
+                }\r
+            }\r
+        }\r
+        hour-short{\r
+            dn{"ڪلاڪ"}\r
+            relativeTime{\r
+                future{\r
+                    one{"{0} ڪلاڪ ۾"}\r
+                    other{"{0} ڪلاڪ ۾"}\r
+                }\r
+                past{\r
+                    one{"{0} ڪلاڪ پهرين"}\r
+                    other{"{0} ڪلاڪ پهرين"}\r
+                }\r
+            }\r
+        }\r
+        minute{\r
+            dn{"منٽ"}\r
+            relative{\r
+                "0"{"هن منٽ"}\r
+            }\r
+            relativeTime{\r
+                future{\r
+                    one{"{0} منٽن ۾"}\r
+                    other{"+{0} min"}\r
+                }\r
+                past{\r
+                    one{"{0} منٽ پهرين"}\r
+                    other{"{0} منٽ پهرين"}\r
+                }\r
+            }\r
+        }\r
+        minute-narrow{\r
+            dn{"منٽ"}\r
+            relativeTime{\r
+                future{\r
+                    one{"{0} منٽن ۾"}\r
+                    other{"{0} منٽن ۾"}\r
+                }\r
+                past{\r
+                    one{"{0} منٽ پهرين"}\r
+                    other{"{0} منٽ پهرين"}\r
+                }\r
+            }\r
+        }\r
+        minute-short{\r
+            dn{"منٽ"}\r
+            relativeTime{\r
+                future{\r
+                    one{"{0} منٽن ۾"}\r
+                    other{"{0} منٽن ۾"}\r
+                }\r
+                past{\r
+                    one{"{0} منٽ پهرين"}\r
+                    other{"{0} منٽ پهرين"}\r
+                }\r
+            }\r
+        }\r
+        mon{\r
+            relative{\r
+                "-1"{"پوئين سومر"}\r
+                "0"{"هن سومر"}\r
+                "1"{"اڳين سومر"}\r
+            }\r
+            relativeTime{\r
+                future{\r
+                    one{"{0} سومرن ۾"}\r
+                    other{"{0} سومرن ۾"}\r
+                }\r
+                past{\r
+                    one{"{0} سومر پهرين"}\r
+                    other{"{0} سومر پهرين"}\r
+                }\r
+            }\r
+        }\r
+        mon-narrow{\r
+            relative{\r
+                "-1"{"پوئين سومر"}\r
+                "0"{"هن سومر"}\r
+                "1"{"اڳين سومر"}\r
+            }\r
+            relativeTime{\r
+                future{\r
+                    one{"{0} سومرن ۾"}\r
+                    other{"{0} سومرن ۾"}\r
+                }\r
+                past{\r
+                    one{"{0} سومر پهرين"}\r
+                    other{"{0} سومر پهرين"}\r
+                }\r
+            }\r
+        }\r
+        mon-short{\r
+            relative{\r
+                "-1"{"پوئين سومر"}\r
+                "0"{"هن سومر"}\r
+                "1"{"اڳين سومر"}\r
+            }\r
+            relativeTime{\r
+                future{\r
+                    one{"{0} سومرن ۾"}\r
+                    other{"{0} سومرن ۾"}\r
+                }\r
+                past{\r
+                    one{"{0} سومر پهرين"}\r
+                    other{"{0} سومر پهرين"}\r
+                }\r
+            }\r
+        }\r
+        month{\r
+            dn{"مهينو"}\r
+            relative{\r
+                "-1"{"پوئين مهيني"}\r
+                "0"{"هن مهيني"}\r
+                "1"{"اڳين مهيني"}\r
+            }\r
+            relativeTime{\r
+                future{\r
+                    one{"{0} مهينن ۾"}\r
+                    other{"{0} مهينن ۾"}\r
+                }\r
+                past{\r
+                    one{"{0} مهينا پهرين"}\r
+                    other{"{0} مهينا پهرين"}\r
+                }\r
+            }\r
+        }\r
+        month-narrow{\r
+            dn{"مهينو"}\r
+            relativeTime{\r
+                future{\r
+                    one{"{0} مهينن ۾"}\r
+                    other{"{0} مهينن ۾"}\r
+                }\r
+                past{\r
+                    one{"{0} مهينا پهرين"}\r
+                    other{"{0} مهينا پهرين"}\r
+                }\r
+            }\r
+        }\r
+        month-short{\r
+            dn{"مهينو"}\r
+            relativeTime{\r
+                future{\r
+                    one{"{0} مهينن ۾"}\r
+                    other{"{0} مهينن ۾"}\r
+                }\r
+                past{\r
+                    one{"{0} مهينا پهرين"}\r
+                    other{"{0} مهينا پهرين"}\r
+                }\r
+            }\r
+        }\r
+        quarter{\r
+            dn{"ٽي ماهي"}\r
+            relative{\r
+                "-1"{"پوئين ٽي ماهي"}\r
+                "0"{"هن ٽي ماهي"}\r
+                "1"{"اڳين ٽي ماهي"}\r
+            }\r
+            relativeTime{\r
+                future{\r
+                    one{"{0} ٽي ماهي ۾"}\r
+                    other{"{0} ٽي ماهي ۾"}\r
+                }\r
+                past{\r
+                    one{"{0} ٽي ماهي پهرين"}\r
+                    other{"{0} ٽي ماهي پهرين"}\r
+                }\r
+            }\r
+        }\r
+        quarter-narrow{\r
+            dn{"ٽي ماهي"}\r
+            relativeTime{\r
+                future{\r
+                    one{"{0} ٽي ماهي ۾"}\r
+                    other{"{0} ٽي ماهي ۾"}\r
+                }\r
+                past{\r
+                    one{"{0} ٽي ماهي پهرين"}\r
+                    other{"{0} ٽي ماهي پهرين"}\r
+                }\r
+            }\r
+        }\r
+        quarter-short{\r
+            dn{"ٽي ماهي"}\r
+            relativeTime{\r
+                future{\r
+                    one{"{0} ٽي ماهي ۾"}\r
+                    other{"{0} ٽي ماهي ۾"}\r
+                }\r
+                past{\r
+                    one{"{0} ٽي ماهي پهرين"}\r
+                    other{"{0} ٽي ماهي پهرين"}\r
+                }\r
+            }\r
+        }\r
+        sat{\r
+            relative{\r
+                "-1"{"پوئين ڇنڇر"}\r
+                "0"{"هن ڇنڇر"}\r
+                "1"{"اڳين ڇنڇر"}\r
+            }\r
+            relativeTime{\r
+                future{\r
+                    one{"{0} ڇنڇرن ۾"}\r
+                    other{"{0} ڇنڇرن ۾"}\r
+                }\r
+                past{\r
+                    one{"{0} ڇنڇر پهرين"}\r
+                    other{"{0} ڇنڇر پهرين"}\r
+                }\r
+            }\r
+        }\r
+        sat-narrow{\r
+            relative{\r
+                "-1"{"پوئين ڇنڇر"}\r
+                "0"{"هن ڇنڇر"}\r
+                "1"{"اڳين ڇنڇر"}\r
+            }\r
+            relativeTime{\r
+                future{\r
+                    one{"{0} ڇنڇرن ۾"}\r
+                    other{"{0} ڇنڇرن ۾"}\r
+                }\r
+                past{\r
+                    one{"{0} ڇنڇر پهرين"}\r
+                    other{"{0} ڇنڇر پهرين"}\r
+                }\r
+            }\r
+        }\r
+        sat-short{\r
+            relative{\r
+                "-1"{"پوئين ڇنڇر"}\r
+                "0"{"هن ڇنڇر"}\r
+                "1"{"اڳين ڇنڇر"}\r
+            }\r
+            relativeTime{\r
+                future{\r
+                    one{"{0} ڇنڇرن ۾"}\r
+                    other{"{0} ڇنڇرن ۾"}\r
+                }\r
+                past{\r
+                    one{"{0} ڇنڇر پهرين"}\r
+                    other{"{0} ڇنڇر پهرين"}\r
+                }\r
+            }\r
+        }\r
+        second{\r
+            dn{"سيڪنڊ"}\r
+            relative{\r
+                "0"{"هاڻي"}\r
+            }\r
+            relativeTime{\r
+                future{\r
+                    one{"{0} سيڪنڊن ۾"}\r
+                    other{"{0} سيڪنڊن ۾"}\r
+                }\r
+                past{\r
+                    one{"{0} سيڪنڊ پهرين"}\r
+                    other{"{0} سيڪنڊ پهرين"}\r
+                }\r
+            }\r
+        }\r
+        second-narrow{\r
+            dn{"سيڪنڊ"}\r
+            relativeTime{\r
+                future{\r
+                    one{"{0} سيڪنڊن ۾"}\r
+                    other{"{0} سيڪنڊن ۾"}\r
+                }\r
+                past{\r
+                    one{"{0} سيڪنڊ پهرين"}\r
+                    other{"{0} سيڪنڊ پهرين"}\r
+                }\r
+            }\r
+        }\r
+        second-short{\r
+            dn{"سيڪنڊ"}\r
+            relativeTime{\r
+                future{\r
+                    one{"{0} سيڪنڊن ۾"}\r
+                    other{"{0} سيڪنڊن ۾"}\r
+                }\r
+                past{\r
+                    one{"{0} سيڪنڊ پهرين"}\r
+                    other{"{0} سيڪنڊ پهرين"}\r
+                }\r
+            }\r
+        }\r
+        sun{\r
+            relative{\r
+                "-1"{"پوئين آچر"}\r
+                "0"{"هن آچر"}\r
+                "1"{"اڳين آچر"}\r
+            }\r
+            relativeTime{\r
+                future{\r
+                    one{"{0} آچرن ۾"}\r
+                    other{"{0} آچرن ۾"}\r
+                }\r
+                past{\r
+                    one{"{0} آچر پهرين"}\r
+                    other{"{0} آچر پهرين"}\r
+                }\r
+            }\r
+        }\r
+        sun-narrow{\r
+            relative{\r
+                "-1"{"پوئين آچر"}\r
+                "0"{"هن آچر"}\r
+                "1"{"اڳين آچر"}\r
+            }\r
+            relativeTime{\r
+                future{\r
+                    one{"{0} آچرن ۾"}\r
+                    other{"{0} آچرن ۾"}\r
+                }\r
+                past{\r
+                    one{"{0} آچر پهرين"}\r
+                    other{"{0} آچر پهرين"}\r
+                }\r
+            }\r
+        }\r
+        sun-short{\r
+            relative{\r
+                "-1"{"پوئين آچر"}\r
+                "0"{"هن آچر"}\r
+                "1"{"اڳين آچر"}\r
+            }\r
+            relativeTime{\r
+                future{\r
+                    one{"{0} آچرن ۾"}\r
+                    other{"{0} آچرن ۾"}\r
+                }\r
+                past{\r
+                    one{"{0} آچر پهرين"}\r
+                    other{"{0} آچر پهرين"}\r
+                }\r
+            }\r
+        }\r
+        thu{\r
+            relative{\r
+                "-1"{"پوئين خميس"}\r
+                "0"{"هن خميس"}\r
+                "1"{"اڳين خميس"}\r
+            }\r
+            relativeTime{\r
+                future{\r
+                    one{"{0} خميسن ۾"}\r
+                    other{"{0} خميسن ۾"}\r
+                }\r
+                past{\r
+                    one{"{0} خميس پهرين"}\r
+                    other{"{0} خميس پهرين"}\r
+                }\r
+            }\r
+        }\r
+        thu-narrow{\r
+            relative{\r
+                "-1"{"پوئين خميس"}\r
+                "0"{"هن خميس"}\r
+                "1"{"اڳين خميس"}\r
+            }\r
+            relativeTime{\r
+                future{\r
+                    one{"{0} خميسن ۾"}\r
+                    other{"{0} خميسن ۾"}\r
+                }\r
+                past{\r
+                    one{"{0} خميس پهرين"}\r
+                    other{"{0} خميس پهرين"}\r
+                }\r
+            }\r
+        }\r
+        thu-short{\r
+            relative{\r
+                "-1"{"پوئين خميس"}\r
+                "0"{"هن خميس"}\r
+                "1"{"اڳين خميس"}\r
+            }\r
+            relativeTime{\r
+                future{\r
+                    one{"{0} خميسن ۾"}\r
+                    other{"{0} خميسن ۾"}\r
+                }\r
+                past{\r
+                    one{"{0} خميس پهرين"}\r
+                    other{"{0} خميس پهرين"}\r
+                }\r
+            }\r
+        }\r
+        tue{\r
+            relative{\r
+                "-1"{"پوئين اڱاري"}\r
+                "0"{"هن اڱاري"}\r
+                "1"{"اڳين اڱاري"}\r
+            }\r
+            relativeTime{\r
+                future{\r
+                    one{"{0} اڱارن ۾"}\r
+                    other{"{0} اڱارن ۾"}\r
+                }\r
+                past{\r
+                    one{"{0} اڱارا پهرين"}\r
+                    other{"{0} اڱارا پهرين"}\r
+                }\r
+            }\r
+        }\r
+        tue-narrow{\r
+            relative{\r
+                "-1"{"پوئين اڱاري"}\r
+                "0"{"هن اڱاري"}\r
+                "1"{"اڳين اڱاري"}\r
+            }\r
+            relativeTime{\r
+                future{\r
+                    one{"{0} اڱارن ۾"}\r
+                    other{"{0} اڱارن ۾"}\r
+                }\r
+                past{\r
+                    one{"{0} اڱارا پهرين"}\r
+                    other{"{0} اڱارا پهرين"}\r
+                }\r
+            }\r
+        }\r
+        tue-short{\r
+            relative{\r
+                "-1"{"پوئين اڱاري"}\r
+                "0"{"هن اڱاري"}\r
+                "1"{"اڳين اڱاري"}\r
+            }\r
+            relativeTime{\r
+                future{\r
+                    one{"{0} اڱارن ۾"}\r
+                    other{"{0} اڱارن ۾"}\r
+                }\r
+                past{\r
+                    one{"{0} اڱارا پهرين"}\r
+                    other{"{0} اڱارا پهرين"}\r
+                }\r
+            }\r
+        }\r
+        wed{\r
+            relative{\r
+                "-1"{"پوئين اربع"}\r
+                "0"{"هن اربع"}\r
+                "1"{"اڳين اربع"}\r
+            }\r
+            relativeTime{\r
+                future{\r
+                    one{"{0} اربعن ۾"}\r
+                    other{"{0} اربعن ۾"}\r
+                }\r
+                past{\r
+                    one{"{0} اربعا پهرين"}\r
+                    other{"{0} اربعا پهرين"}\r
+                }\r
+            }\r
+        }\r
+        wed-narrow{\r
+            relative{\r
+                "-1"{"پوئين اربع"}\r
+                "0"{"هن اربع"}\r
+                "1"{"اڳين اربع"}\r
+            }\r
+            relativeTime{\r
+                future{\r
+                    one{"{0} اربعن ۾"}\r
+                    other{"{0} اربعن ۾"}\r
+                }\r
+                past{\r
+                    one{"{0} اربعا پهرين"}\r
+                    other{"{0} اربعا پهرين"}\r
+                }\r
+            }\r
+        }\r
+        wed-short{\r
+            relative{\r
+                "-1"{"پوئين اربع"}\r
+                "0"{"هن اربع"}\r
+                "1"{"اڳين اربع"}\r
+            }\r
+            relativeTime{\r
+                future{\r
+                    one{"{0} اربعن ۾"}\r
+                    other{"{0} اربعن ۾"}\r
+                }\r
+                past{\r
+                    one{"{0} اربعا پهرين"}\r
+                    other{"{0} اربعا پهرين"}\r
+                }\r
+            }\r
+        }\r
+        week{\r
+            dn{"هفتو"}\r
+            relative{\r
+                "-1"{"پوئين هفتي"}\r
+                "0"{"هن هفتي"}\r
+                "1"{"اڳين هفتي"}\r
+            }\r
+            relativePeriod{"{0} جي هفتي"}\r
+            relativeTime{\r
+                future{\r
+                    one{"{0} هفتن ۾"}\r
+                    other{"{0} هفتن ۾"}\r
+                }\r
+                past{\r
+                    one{"{0} هفتا پهرين"}\r
+                    other{"{0} هفتا پهرين"}\r
+                }\r
+            }\r
+        }\r
+        week-narrow{\r
+            dn{"هفتو"}\r
+            relativePeriod{"{0} جي هفتي"}\r
+            relativeTime{\r
+                future{\r
+                    one{"{0} هفتن ۾"}\r
+                    other{"{0} هفتن ۾"}\r
+                }\r
+                past{\r
+                    one{"{0} هفتا پهرين"}\r
+                    other{"{0} هفتا پهرين"}\r
+                }\r
+            }\r
+        }\r
+        week-short{\r
+            dn{"هفتو"}\r
+            relativePeriod{"{0} جي هفتي"}\r
+            relativeTime{\r
+                future{\r
+                    one{"{0} هفتن ۾"}\r
+                    other{"{0} هفتن ۾"}\r
+                }\r
+                past{\r
+                    one{"{0} هفتا پهرين"}\r
+                    other{"{0} هفتا پهرين"}\r
+                }\r
+            }\r
+        }\r
+        weekOfMonth{\r
+            dn{"مهيني جي هفتي"}\r
+        }\r
+        weekOfMonth-narrow{\r
+            dn{"مهيني جي هفتي"}\r
+        }\r
+        weekOfMonth-short{\r
+            dn{"مهيني جي هفتي"}\r
+        }\r
+        weekday{\r
+            dn{"هفتي جو ڏينهن"}\r
+        }\r
+        weekday-narrow{\r
+            dn{"هفتي جو ڏينهن"}\r
+        }\r
+        weekday-short{\r
+            dn{"هفتي جو ڏينهن"}\r
+        }\r
+        weekdayOfMonth{\r
+            dn{"مهيني جي موڪل جو ڏينهن"}\r
+        }\r
+        weekdayOfMonth-narrow{\r
+            dn{"مهيني جي موڪل جو ڏينهن"}\r
+        }\r
+        weekdayOfMonth-short{\r
+            dn{"مهيني جي موڪل جو ڏينهن"}\r
+        }\r
+        year{\r
+            dn{"سال"}\r
+            relative{\r
+                "-1"{"پويون سال"}\r
+                "0"{"پويون سال"}\r
+                "1"{"پويون سال"}\r
+            }\r
+            relativeTime{\r
+                future{\r
+                    one{"{0} سالن ۾"}\r
+                    other{"{0} سالن ۾"}\r
+                }\r
+                past{\r
+                    one{"{0} سال پهرين"}\r
+                    other{"{0} سال پهرين"}\r
+                }\r
+            }\r
+        }\r
+        year-narrow{\r
+            dn{"سال"}\r
+            relativeTime{\r
+                future{\r
+                    one{"{0} سالن ۾"}\r
+                    other{"{0} سالن ۾"}\r
+                }\r
+                past{\r
+                    one{"{0} سال پهرين"}\r
+                    other{"{0} سال پهرين"}\r
+                }\r
+            }\r
+        }\r
+        year-short{\r
+            dn{"سال"}\r
+            relativeTime{\r
+                future{\r
+                    one{"{0} سالن ۾"}\r
+                    other{"{0} سالن ۾"}\r
+                }\r
+                past{\r
+                    one{"{0} سال پهرين"}\r
+                    other{"{0} سال پهرين"}\r
+                }\r
+            }\r
+        }\r
+        zone{\r
+            dn{"ٽائيم زون"}\r
+        }\r
+        zone-narrow{\r
+            dn{"ٽائيم زون"}\r
+        }\r
+        zone-short{\r
+            dn{"ٽائيم زون"}\r
+        }\r
+    }\r
+    layout{\r
+        characters{"right-to-left"}\r
+        lines{"top-to-bottom"}\r
+    }\r
+    listPattern{\r
+        or{\r
+            2{"{0} يا {1}"}\r
+            end{"{0}, يا {1}"}\r
+            middle{"{0}, {1}"}\r
+            start{"{0}, {1}"}\r
+        }\r
+        standard{\r
+            2{"{0} ۽ {1}"}\r
+            end{"{0}، ۽ {1}"}\r
+            middle{"{0}, {1}"}\r
+            start{"{0}, {1}"}\r
+        }\r
+        standard-short{\r
+            2{"{0} ۽ {1}"}\r
+            end{"{0}، ۽ {1}"}\r
+            middle{"{0}, {1}"}\r
+            start{"{0}, {1}"}\r
+        }\r
+        unit{\r
+            2{"{0}, {1}"}\r
+            end{"{0}, {1}"}\r
+            middle{"{0}, {1}"}\r
+            start{"{0}, {1}"}\r
+        }\r
+        unit-narrow{\r
+            2{"{0}, {1}"}\r
+            end{"{0}, {1}"}\r
+            middle{"{0}, {1}"}\r
+            start{"{0}, {1}"}\r
+        }\r
+        unit-short{\r
+            2{"{0}, {1}"}\r
+            end{"{0}, {1}"}\r
+            middle{"{0}, {1}"}\r
+            start{"{0}, {1}"}\r
+        }\r
+    }\r
+    measurementSystemNames{\r
+        UK{"برطانيه"}\r
+        US{"آمريڪا"}\r
+        metric{"ميٽرڪ"}\r
+    }\r
+    parse{\r
+        date{\r
+            lenient{\r
+                "[\\--/]",\r
+                "[\\:∶]",\r
+            }\r
+        }\r
+        general{\r
+            lenient{\r
+                "[.․。︒﹒.。]",\r
+                "['ʼ՚᾽᾿’']",\r
+                "[%٪﹪%]",\r
+                "[؉‰]",\r
+                "[\$﹩$$]",\r
+                "[£₤]",\r
+                "[¥¥]",\r
+                "[₩₩]",\r
+                "[₨₹{Rp}{Rs}]",\r
+            }\r
+        }\r
+        number{\r
+            lenient{\r
+                "[\\-‒⁻₋−➖﹣-]",\r
+                "[,،٫、︐︑﹐﹑,、]",\r
+                "[+⁺₊➕﬩﹢+]",\r
+            }\r
+            stricter{\r
+                "[,٫︐﹐,]",\r
+                "[.․﹒.。]",\r
+            }\r
+        }\r
+    }\r
+}\r
diff --git a/source/data/locales/sd_PK.txt b/source/data/locales/sd_PK.txt
new file mode 100644 (file)
index 0000000..ae61c39
--- /dev/null
@@ -0,0 +1,5 @@
+// © 2016 and later: Unicode, Inc. and others.\r
+// License & terms of use: http://www.unicode.org/copyright.html#License\r
+sd_PK{\r
+    Version{"2.1.38.39"}\r
+}\r
index b6ca189..4e6d6dd 100644 (file)
@@ -11,7 +11,7 @@ se{
     NumberElements{\r
         latn{\r
             miscPatterns{\r
-                atLeast{"⩾{0}"}\r
+                atLeast{"â\89¥{0}"}\r
                 range{"{0}–{1}"}\r
             }\r
             patterns{\r
@@ -166,7 +166,7 @@ se{
         }\r
         minimumGroupingDigits{"1"}\r
     }\r
-    Version{"2.1.38.69"}\r
+    Version{"2.1.43.94"}\r
     calendar{\r
         gregorian{\r
             AmPmMarkers{\r
index 4014e67..1694a3c 100644 (file)
@@ -62,7 +62,7 @@ se_FI{
             }\r
         }\r
     }\r
-    Version{"2.1.38.73"}\r
+    Version{"2.1.44.88"}\r
     calendar{\r
         generic{\r
             DateTimePatterns{\r
@@ -196,9 +196,9 @@ se_FI{
                 MEd{"E d.M"}\r
                 MMMEd{"E d MMM"}\r
                 MMMMW{\r
-                    one{"MMMM:a 'vahkku' W"}\r
-                    other{"MMM:a 'vahkku' W"}\r
-                    two{"MMMM:a 'vahkku' W"}\r
+                    one{"MMMM':a vahkku' W"}\r
+                    other{"MMMM':a vahkku' W"}\r
+                    two{"MMMM':a vahkku' W"}\r
                 }\r
                 MMMMd{"d MMMM"}\r
                 MMMd{"d MMM"}\r
@@ -1279,6 +1279,10 @@ se_FI{
         }\r
         year-short{\r
             dn{"j."}\r
+            relative{\r
+                "0"{"dán jagi"}\r
+                "1"{"boahtte jagi"}\r
+            }\r
             relativeTime{\r
                 future{\r
                     one{"{0} j. siste"}\r
index e348826..5f5482e 100644 (file)
@@ -29,7 +29,9 @@ si{
         default{"latn"}\r
         latn{\r
             miscPatterns{\r
+                approximately{"~{0}"}\r
                 atLeast{"{0}+"}\r
+                atMost{"≤{0}"}\r
                 range{"{0}–{1}"}\r
             }\r
             patterns{\r
@@ -219,7 +221,7 @@ si{
         minimumGroupingDigits{"1"}\r
         native{"latn"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.50"}\r
     calendar{\r
         generic{\r
             DateTimePatterns{\r
@@ -1818,8 +1820,13 @@ si{
         general{\r
             lenient{\r
                 "[.․。︒﹒.。]",\r
+                "['ʼ՚᾽᾿’']",\r
+                "[%٪﹪%]",\r
+                "[؉‰]",\r
                 "[\$﹩$$]",\r
                 "[£₤]",\r
+                "[¥¥]",\r
+                "[₩₩]",\r
                 "[₨₹{Rp}{Rs}]",\r
             }\r
         }\r
index 8a0383f..3b2682b 100644 (file)
@@ -22,7 +22,9 @@ sk{
         default{"latn"}\r
         latn{\r
             miscPatterns{\r
+                approximately{"~{0}"}\r
                 atLeast{"{0}+"}\r
+                atMost{"≤{0}"}\r
                 range{"{0} – {1}"}\r
             }\r
             patterns{\r
@@ -287,7 +289,7 @@ sk{
         minimumGroupingDigits{"1"}\r
         native{"latn"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.65"}\r
     calendar{\r
         buddhist{\r
             eras{\r
@@ -715,10 +717,10 @@ sk{
                 yQQQ{"QQQ y"}\r
                 yQQQQ{"QQQQ y"}\r
                 yw{\r
-                    few{"w. 'týždeň' 'v' 'roku' Y"}\r
-                    many{"w. 'týždeň' 'v' 'roku' Y"}\r
-                    one{"w. 'týždeň' 'v' 'roku' Y"}\r
-                    other{"w. 'týždeň' 'v' 'roku' Y"}\r
+                    few{"w. 'týždeň' 'roka' Y"}\r
+                    many{"w. 'týždeň' 'roka' Y"}\r
+                    one{"w. 'týždeň' 'roka' Y"}\r
+                    other{"w. 'týždeň' 'roka' Y"}\r
                 }\r
             }\r
             dayNames{\r
@@ -2595,4 +2597,36 @@ sk{
         US{"americký"}\r
         metric{"metrický"}\r
     }\r
+    parse{\r
+        date{\r
+            lenient{\r
+                "[\\--/]",\r
+                "[\\:∶]",\r
+            }\r
+        }\r
+        general{\r
+            lenient{\r
+                "[.․。︒﹒.。]",\r
+                "['ʼ՚᾽᾿’']",\r
+                "[%٪﹪%]",\r
+                "[؉‰]",\r
+                "[\$﹩$$]",\r
+                "[£₤]",\r
+                "[¥¥]",\r
+                "[₩₩]",\r
+                "[₨₹{Rp}{Rs}]",\r
+            }\r
+        }\r
+        number{\r
+            lenient{\r
+                "[\\-‒⁻₋−➖﹣-]",\r
+                "[,،٫、︐︑﹐﹑,、]",\r
+                "[+⁺₊➕﬩﹢+]",\r
+            }\r
+            stricter{\r
+                "[,٫︐﹐,]",\r
+                "[.․﹒.。]",\r
+            }\r
+        }\r
+    }\r
 }\r
index b18daee..2c7b70e 100644 (file)
@@ -22,7 +22,9 @@ sl{
         default{"latn"}\r
         latn{\r
             miscPatterns{\r
-                atLeast{"⩾{0}"}\r
+                approximately{"~{0}"}\r
+                atLeast{"≥{0}"}\r
+                atMost{"≤{0}"}\r
                 range{"{0}–{1}"}\r
             }\r
             patterns{\r
@@ -287,7 +289,7 @@ sl{
         minimumGroupingDigits{"1"}\r
         native{"latn"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.91"}\r
     calendar{\r
         buddhist{\r
             eras{\r
@@ -1724,6 +1726,13 @@ sl{
         }\r
         day-narrow{\r
             dn{"dan"}\r
+            relative{\r
+                "-1"{"včeraj"}\r
+                "-2"{"predvčerajšnjim"}\r
+                "0"{"danes"}\r
+                "1"{"jutri"}\r
+                "2"{"pojutrišnjem"}\r
+            }\r
             relativeTime{\r
                 future{\r
                     few{"čez {0} dni"}\r
@@ -1741,6 +1750,13 @@ sl{
         }\r
         day-short{\r
             dn{"dan"}\r
+            relative{\r
+                "-1"{"včeraj"}\r
+                "-2"{"predvčerajšnjim"}\r
+                "0"{"danes"}\r
+                "1"{"jutri"}\r
+                "2"{"pojutrišnjem"}\r
+            }\r
             relativeTime{\r
                 future{\r
                     few{"čez {0} dni"}\r
@@ -2041,6 +2057,11 @@ sl{
         }\r
         month-narrow{\r
             dn{"mes."}\r
+            relative{\r
+                "-1"{"prejšnji mesec"}\r
+                "0"{"ta mesec"}\r
+                "1"{"naslednji mesec"}\r
+            }\r
             relativeTime{\r
                 future{\r
                     few{"čez {0} mes."}\r
@@ -2058,6 +2079,11 @@ sl{
         }\r
         month-short{\r
             dn{"mes."}\r
+            relative{\r
+                "-1"{"prejšnji mesec"}\r
+                "0"{"ta mesec"}\r
+                "1"{"naslednji mesec"}\r
+            }\r
             relativeTime{\r
                 future{\r
                     few{"čez {0} mes."}\r
@@ -2533,6 +2559,11 @@ sl{
         }\r
         week-narrow{\r
             dn{"ted."}\r
+            relative{\r
+                "-1"{"prejšnji teden"}\r
+                "0"{"ta teden"}\r
+                "1"{"naslednji teden"}\r
+            }\r
             relativePeriod{"v tednu {0}"}\r
             relativeTime{\r
                 future{\r
@@ -2551,6 +2582,11 @@ sl{
         }\r
         week-short{\r
             dn{"ted."}\r
+            relative{\r
+                "-1"{"prejšnji teden"}\r
+                "0"{"ta teden"}\r
+                "1"{"naslednji teden"}\r
+            }\r
             relativePeriod{"v tednu {0}"}\r
             relativeTime{\r
                 future{\r
@@ -2618,6 +2654,11 @@ sl{
         }\r
         year-narrow{\r
             dn{"leto"}\r
+            relative{\r
+                "-1"{"lani"}\r
+                "0"{"letos"}\r
+                "1"{"naslednje leto"}\r
+            }\r
             relativeTime{\r
                 future{\r
                     few{"čez {0} leta"}\r
@@ -2635,6 +2676,11 @@ sl{
         }\r
         year-short{\r
             dn{"leto"}\r
+            relative{\r
+                "-1"{"lani"}\r
+                "0"{"letos"}\r
+                "1"{"naslednje leto"}\r
+            }\r
             relativeTime{\r
                 future{\r
                     few{"čez {0} leta"}\r
@@ -2713,8 +2759,13 @@ sl{
         general{\r
             lenient{\r
                 "[.․。︒﹒.。]",\r
+                "['ʼ՚᾽᾿’']",\r
+                "[%٪﹪%]",\r
+                "[؉‰]",\r
                 "[\$﹩$$]",\r
                 "[£₤]",\r
+                "[¥¥]",\r
+                "[₩₩]",\r
                 "[₨₹{Rs}]",\r
             }\r
         }\r
index 6881a8c..bf985df 100644 (file)
@@ -8,7 +8,7 @@ sn{
     NumberElements{\r
         latn{\r
             miscPatterns{\r
-                atLeast{"⩾{0}"}\r
+                atLeast{"â\89¥{0}"}\r
                 range{"{0}–{1}"}\r
             }\r
             patterns{\r
@@ -33,7 +33,7 @@ sn{
         }\r
         minimumGroupingDigits{"1"}\r
     }\r
-    Version{"2.1.39.11"}\r
+    Version{"2.1.43.94"}\r
     calendar{\r
         generic{\r
             DateTimePatterns{\r
index 8d5606b..3d95742 100644 (file)
@@ -1,12 +1,36 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 so{\r
+    AuxExemplarCharacters{"[]"}\r
+    Ellipsis{\r
+        final{"{0}…"}\r
+        initial{"…{0}"}\r
+        medial{"{0}…{1}"}\r
+        word-final{"{0} …"}\r
+        word-initial{"… {0}"}\r
+        word-medial{"{0} … {1}"}\r
+    }\r
     ExemplarCharacters{"[a b c d e f g h i j k l m n o p q r s t u v w x y z]"}\r
+    ExemplarCharactersIndex{"[B C D F G H J K L M N Q R S T W X Y]"}\r
     ExemplarCharactersNumbers{"[\\- , . % ‰ + 0 1 2 3 4 5 6 7 8 9]"}\r
+    ExemplarCharactersPunctuation{\r
+        "[\\- ‐ – — , ; \\: ! ? . … ' ‘ ’ \u0022 “ ” ( ) \\[ \\] § @ * / \\& # † ‡ ′ "\r
+        "″]"\r
+    }\r
+    MoreInformation{"?"}\r
     NumberElements{\r
+        default{"latn"}\r
         latn{\r
+            miscPatterns{\r
+                atLeast{"≥{0}"}\r
+                range{"{0}–{1}"}\r
+            }\r
             patterns{\r
+                accountingFormat{"¤#,##0.00"}\r
                 currencyFormat{"¤#,##0.00"}\r
+                decimalFormat{"#,##0.###"}\r
+                percentFormat{"#,##0%"}\r
+                scientificFormat{"#E0"}\r
             }\r
             patternsLong{\r
                 decimalFormat{\r
@@ -26,11 +50,21 @@ so{
             }\r
             symbols{\r
                 decimal{"."}\r
+                exponential{"E"}\r
                 group{","}\r
+                infinity{"∞"}\r
+                minusSign{"-"}\r
+                nan{"NaN"}\r
+                perMille{"‰"}\r
+                percentSign{"%"}\r
+                plusSign{"+"}\r
+                superscriptingExponent{"×"}\r
             }\r
         }\r
+        minimumGroupingDigits{"1"}\r
+        native{"latn"}\r
     }\r
-    Version{"2.1.38.69"}\r
+    Version{"2.1.43.94"}\r
     calendar{\r
         generic{\r
             DateTimePatterns{\r
@@ -38,10 +72,10 @@ so{
                 "h:mm:ss a z",\r
                 "h:mm:ss a",\r
                 "h:mm a",\r
-                "EEEE, MMMM dd, y G",\r
-                "dd MMMM y G",\r
-                "dd-MMM-y G",\r
-                "dd/MM/yy GGGGG",\r
+                "G y MMMM d, EEEE",\r
+                "G y MMMM d",\r
+                "G y MMM d",\r
+                "GGGGG y-MM-dd",\r
                 "{1} {0}",\r
                 "{1} {0}",\r
                 "{1} {0}",\r
@@ -49,6 +83,17 @@ so{
                 "{1} {0}",\r
             }\r
             availableFormats{\r
+                E{"ccc"}\r
+                EHm{"E HH:mm"}\r
+                EHms{"E HH:mm:ss"}\r
+                Ed{"d, E"}\r
+                Ehm{"E h:mm a"}\r
+                Ehms{"E h:mm:ss a"}\r
+                Gy{"G y"}\r
+                GyMMM{"G y MMM"}\r
+                GyMMMEd{"G y MMM d, E"}\r
+                GyMMMd{"G y MMM d"}\r
+                H{"HH"}\r
                 Hm{"HH:mm"}\r
                 Hms{"HH:mm:ss"}\r
                 M{"L"}\r
@@ -60,7 +105,9 @@ so{
                 MMMd{"MMM d"}\r
                 Md{"M/d"}\r
                 d{"d"}\r
+                h{"h a"}\r
                 hm{"h:mm a"}\r
+                hms{"h:mm:ss a"}\r
                 ms{"mm:ss"}\r
                 y{"y"}\r
                 yM{"M/y"}\r
@@ -70,6 +117,47 @@ so{
                 yMMMM{"MMMM y"}\r
                 yQQQ{"QQQ y"}\r
                 yQQQQ{"QQQQ y"}\r
+                yyyy{"G y"}\r
+                yyyyM{"GGGGG y-MM"}\r
+                yyyyMEd{"GGGGG y-MM-dd, E"}\r
+                yyyyMMM{"G y MMM"}\r
+                yyyyMMMEd{"G y MMM d, E"}\r
+                yyyyMMMM{"G y MMMM"}\r
+                yyyyMMMd{"G y MMM d"}\r
+                yyyyMd{"GGGGG y-MM-dd"}\r
+                yyyyQQQ{"G y QQQ"}\r
+                yyyyQQQQ{"G y QQQQ"}\r
+            }\r
+            intervalFormats{\r
+                fallback{"{0} – {1}"}\r
+                yMEd{\r
+                    M{"E, dd/MM/y – E, dd/MM/y"}\r
+                    d{"E, dd/MM/y – E, dd/MM/y"}\r
+                    y{"E, dd/MM/y – E, dd/MM/y"}\r
+                }\r
+                yMMM{\r
+                    M{"MMM–MMM y"}\r
+                    y{"MMM y – MMM y"}\r
+                }\r
+                yMMMEd{\r
+                    M{"E, MMM dd – E, MMM dd, y"}\r
+                    d{"E, MMM dd – E, MMM dd, y"}\r
+                    y{"E, MMM dd, y – E, MMM dd, y"}\r
+                }\r
+                yMMMM{\r
+                    M{"G y MMMM–MMMM"}\r
+                    y{"G y MMMM – y MMMM"}\r
+                }\r
+                yMMMd{\r
+                    M{"dd MMM – dd MMM y"}\r
+                    d{"dd–dd MMM y"}\r
+                    y{"dd MMM y – dd MMM y"}\r
+                }\r
+                yMd{\r
+                    M{"GGGGG y-MM-dd – y-MM-dd"}\r
+                    d{"GGGGG y-MM-dd – y-MM-dd"}\r
+                    y{"dd/MM/y – dd/MM/y"}\r
+                }\r
             }\r
         }\r
         gregorian{\r
@@ -100,9 +188,25 @@ so{
                 "{1} {0}",\r
                 "{1} {0}",\r
             }\r
+            appendItems{\r
+                Timezone{"{0} {1}"}\r
+            }\r
             availableFormats{\r
+                E{"ccc"}\r
+                EHm{"E HH:mm"}\r
+                EHms{"E HH:mm:ss"}\r
+                Ed{"d, E"}\r
+                Ehm{"E h:mm a"}\r
+                Ehms{"E h:mm:ss a"}\r
+                Gy{"G y"}\r
+                GyMMM{"G y MMM"}\r
+                GyMMMEd{"G y MMM d, E"}\r
+                GyMMMd{"G y MMM d"}\r
+                H{"HH"}\r
                 Hm{"HH:mm"}\r
                 Hms{"HH:mm:ss"}\r
+                Hmsv{"HH:mm:ss v"}\r
+                Hmv{"HH:mm v"}\r
                 M{"L"}\r
                 MEd{"E, M/d"}\r
                 MMM{"LLL"}\r
@@ -116,7 +220,11 @@ so{
                 MMMd{"MMM d"}\r
                 Md{"M/d"}\r
                 d{"d"}\r
+                h{"h a"}\r
                 hm{"h:mm a"}\r
+                hms{"h:mm:ss a"}\r
+                hmsv{"h:mm:ss a v"}\r
+                hmv{"h:mm a v"}\r
                 ms{"mm:ss"}\r
                 y{"y"}\r
                 yM{"M/y"}\r
@@ -124,8 +232,14 @@ so{
                 yMMM{"MMM y"}\r
                 yMMMEd{"E, MMM d, y"}\r
                 yMMMM{"MMMM y"}\r
+                yMMMd{"y MMM d"}\r
+                yMd{"y-MM-dd"}\r
                 yQQQ{"QQQ y"}\r
                 yQQQQ{"QQQQ y"}\r
+                yw{\r
+                    one{"'Usbuuca' w 'e' Y"}\r
+                    other{"'Usbuuca' w 'ee' Y"}\r
+                }\r
             }\r
             dayNames{\r
                 format{\r
@@ -167,6 +281,15 @@ so{
                     }\r
                 }\r
                 stand-alone{\r
+                    abbreviated{\r
+                        "Axd",\r
+                        "Isn",\r
+                        "Tal",\r
+                        "Arb",\r
+                        "Kha",\r
+                        "Jim",\r
+                        "Sab",\r
+                    }\r
                     narrow{\r
                         "A",\r
                         "I",\r
@@ -202,6 +325,10 @@ so{
                         am{"sn."}\r
                         pm{"gn."}\r
                     }\r
+                    narrow{\r
+                        am{"sn."}\r
+                        pm{"gn."}\r
+                    }\r
                     wide{\r
                         am{"sn."}\r
                         pm{"gn."}\r
@@ -213,10 +340,113 @@ so{
                     "CK",\r
                     "CD",\r
                 }\r
+                abbreviated%variant{\r
+                    "BCE",\r
+                    "CE",\r
+                }\r
                 wide{\r
                     "CK",\r
                     "CD",\r
                 }\r
+                wide%variant{\r
+                    "Ka hor taariikhda miilaadiga",\r
+                    "Taariikhda miilaadiga",\r
+                }\r
+            }\r
+            intervalFormats{\r
+                H{\r
+                    H{"HH–HH"}\r
+                }\r
+                Hm{\r
+                    H{"HH:mm–HH:mm"}\r
+                    m{"HH:mm–HH:mm"}\r
+                }\r
+                Hmv{\r
+                    H{"HH:mm–HH:mm v"}\r
+                    m{"HH:mm–HH:mm v"}\r
+                }\r
+                Hv{\r
+                    H{"HH–HH v"}\r
+                }\r
+                M{\r
+                    M{"M–M"}\r
+                }\r
+                MEd{\r
+                    M{"E, dd/MM – E, dd/MM"}\r
+                    d{"E, dd/MM – E, dd/MM"}\r
+                }\r
+                MMM{\r
+                    M{"MMM–MMM"}\r
+                }\r
+                MMMEd{\r
+                    M{"E, dd MMM – E, dd MMM"}\r
+                    d{"E, dd – E, dd MMM"}\r
+                }\r
+                MMMd{\r
+                    M{"dd MMM – dd MMM"}\r
+                    d{"dd–dd MMM"}\r
+                }\r
+                Md{\r
+                    M{"dd/MM – dd/MM"}\r
+                    d{"dd/MM – dd/MM"}\r
+                }\r
+                d{\r
+                    d{"d–d"}\r
+                }\r
+                fallback{"{0} - {1}"}\r
+                h{\r
+                    a{"h a – h a"}\r
+                    h{"h–h a"}\r
+                }\r
+                hm{\r
+                    a{"h:mm a – h:mm a"}\r
+                    h{"h:mm–h:mm a"}\r
+                    m{"h:mm–h:mm a"}\r
+                }\r
+                hmv{\r
+                    a{"h:mm a – h:mm a v"}\r
+                    h{"h:mm–h:mm a v"}\r
+                    m{"h:mm–h:mm a v"}\r
+                }\r
+                hv{\r
+                    a{"h a – h a v"}\r
+                    h{"h–h a v"}\r
+                }\r
+                y{\r
+                    y{"y–y"}\r
+                }\r
+                yM{\r
+                    M{"MM/y – MM/y"}\r
+                    y{"MM/y – MM/y"}\r
+                }\r
+                yMEd{\r
+                    M{"E, dd/MM/y – E, dd/MM/y"}\r
+                    d{"E, dd/MM/y – E, dd/MM/y"}\r
+                    y{"E, dd/MM/y – E, dd/MM/y"}\r
+                }\r
+                yMMM{\r
+                    M{"MMM–MMM y"}\r
+                    y{"MMM y – MMM y"}\r
+                }\r
+                yMMMEd{\r
+                    M{"E, MMM dd – E, MMM dd, y"}\r
+                    d{"E, MMM dd – E, MMM dd, y"}\r
+                    y{"E, MMM dd, y – E, MMM dd, y"}\r
+                }\r
+                yMMMM{\r
+                    M{"y MMMM–MMMM"}\r
+                    y{"y MMMM – y MMMM"}\r
+                }\r
+                yMMMd{\r
+                    M{"dd MMM – dd MMM y"}\r
+                    d{"dd–dd MMM y"}\r
+                    y{"dd MMM y – dd MMM y"}\r
+                }\r
+                yMd{\r
+                    M{"dd/MM/y – dd/MM/y"}\r
+                    d{"dd/MM/y – dd/MM/y"}\r
+                    y{"dd/MM/y – dd/MM/y"}\r
+                }\r
             }\r
             monthNames{\r
                 format{\r
@@ -225,14 +455,14 @@ so{
                         "Lab",\r
                         "Sad",\r
                         "Afr",\r
-                        "Sha",\r
-                        "Lix",\r
-                        "Tod",\r
-                        "Sid",\r
-                        "Sag",\r
-                        "Tob",\r
-                        "KIT",\r
-                        "LIT",\r
+                        "May",\r
+                        "Juun",\r
+                        "Luuliyo",\r
+                        "Og",\r
+                        "Sebtembar",\r
+                        "Oktoobar",\r
+                        "Nofembar",\r
+                        "Dec",\r
                     }\r
                     narrow{\r
                         "K",\r
@@ -263,6 +493,50 @@ so{
                         "Bisha Laba iyo Tobnaad",\r
                     }\r
                 }\r
+                stand-alone{\r
+                    abbreviated{\r
+                        "Jan",\r
+                        "Feb",\r
+                        "Mar",\r
+                        "Abr",\r
+                        "May",\r
+                        "Juun",\r
+                        "Luuliyo",\r
+                        "Og",\r
+                        "Seb",\r
+                        "Okt",\r
+                        "Nof",\r
+                        "Des",\r
+                    }\r
+                    narrow{\r
+                        "J",\r
+                        "F",\r
+                        "M",\r
+                        "A",\r
+                        "M",\r
+                        "J",\r
+                        "L",\r
+                        "O",\r
+                        "S",\r
+                        "O",\r
+                        "N",\r
+                        "D",\r
+                    }\r
+                    wide{\r
+                        "Jannaayo",\r
+                        "Febraayo",\r
+                        "Maarso",\r
+                        "Abriil",\r
+                        "May",\r
+                        "Juun",\r
+                        "Luuliyo",\r
+                        "Ogost",\r
+                        "Sebtembar",\r
+                        "Oktoobar",\r
+                        "Nofembar",\r
+                        "Desembar",\r
+                    }\r
+                }\r
             }\r
             quarters{\r
                 format{\r
@@ -286,6 +560,18 @@ so{
                     }\r
                 }\r
                 stand-alone{\r
+                    abbreviated{\r
+                        "R1",\r
+                        "R2",\r
+                        "R3",\r
+                        "R4",\r
+                    }\r
+                    narrow{\r
+                        "1",\r
+                        "2",\r
+                        "3",\r
+                        "4",\r
+                    }\r
                     wide{\r
                         "Rubaca 1aad",\r
                         "Rubaca 2aad",\r
@@ -322,6 +608,7 @@ so{
             }\r
         }\r
         day-narrow{\r
+            dn{"Maalin-dhuuban"}\r
             relativeTime{\r
                 future{\r
                     one{"+{0} d"}\r
@@ -369,6 +656,7 @@ so{
             }\r
         }\r
         hour-narrow{\r
+            dn{"Saacad-gaaban"}\r
             relativeTime{\r
                 future{\r
                     one{"+{0} h"}\r
@@ -381,6 +669,7 @@ so{
             }\r
         }\r
         hour-short{\r
+            dn{"Saacad-gaaban"}\r
             relativeTime{\r
                 future{\r
                     one{"+{0} h"}\r
@@ -409,6 +698,7 @@ so{
             }\r
         }\r
         minute-narrow{\r
+            dn{"Daqiiqad-dhuuban"}\r
             relativeTime{\r
                 future{\r
                     one{"+{0} min"}\r
@@ -421,6 +711,7 @@ so{
             }\r
         }\r
         minute-short{\r
+            dn{"Minute"}\r
             relativeTime{\r
                 future{\r
                     one{"+{0} min"}\r
@@ -434,6 +725,11 @@ so{
         }\r
         month{\r
             dn{"Month"}\r
+            relative{\r
+                "-1"{"Bishii la soo dhaafay"}\r
+                "0"{"Bishan"}\r
+                "1"{"Bisha xigta"}\r
+            }\r
             relativeTime{\r
                 future{\r
                     one{"+{0} m"}\r
@@ -446,6 +742,7 @@ so{
             }\r
         }\r
         month-narrow{\r
+            dn{"Bil-gaaban"}\r
             relativeTime{\r
                 future{\r
                     one{"+{0} m"}\r
@@ -458,6 +755,7 @@ so{
             }\r
         }\r
         month-short{\r
+            dn{"Bil-gaaban"}\r
             relativeTime{\r
                 future{\r
                     one{"+{0} m"}\r
@@ -483,6 +781,7 @@ so{
             }\r
         }\r
         quarter-narrow{\r
+            dn{"Rubuc-dhuuban"}\r
             relativeTime{\r
                 future{\r
                     one{"+{0} Q"}\r
@@ -495,6 +794,7 @@ so{
             }\r
         }\r
         quarter-short{\r
+            dn{"Rubuc-gaaban"}\r
             relativeTime{\r
                 future{\r
                     one{"+{0} Q"}\r
@@ -523,6 +823,7 @@ so{
             }\r
         }\r
         second-narrow{\r
+            dn{"Il-biriqsi-dhuuban"}\r
             relativeTime{\r
                 future{\r
                     one{"+{0} s"}\r
@@ -535,6 +836,7 @@ so{
             }\r
         }\r
         second-short{\r
+            dn{"Il-biriqsi-gaaban"}\r
             relativeTime{\r
                 future{\r
                     one{"+{0} s"}\r
@@ -565,6 +867,11 @@ so{
         }\r
         week{\r
             dn{"Week"}\r
+            relative{\r
+                "-1"{"Usbuucii la soo dhaafay"}\r
+                "0"{"Usbuucan"}\r
+                "1"{"Usbuuca xiga"}\r
+            }\r
             relativePeriod{"the week of {0}"}\r
             relativeTime{\r
                 future{\r
@@ -578,6 +885,7 @@ so{
             }\r
         }\r
         week-narrow{\r
+            dn{"Usbuuc-dhuuban"}\r
             relativePeriod{"the week of {0}"}\r
             relativeTime{\r
                 future{\r
@@ -591,6 +899,7 @@ so{
             }\r
         }\r
         week-short{\r
+            dn{"Usbuuc-gaaban"}\r
             relativePeriod{"the week of {0}"}\r
             relativeTime{\r
                 future{\r
@@ -608,6 +917,11 @@ so{
         }\r
         year{\r
             dn{"Year"}\r
+            relative{\r
+                "-1"{"Sannadkii la soo dhaafay"}\r
+                "0"{"Sannadkan"}\r
+                "1"{"Sannadka xiga"}\r
+            }\r
             relativeTime{\r
                 future{\r
                     one{"+{0} y"}\r
@@ -620,6 +934,7 @@ so{
             }\r
         }\r
         year-narrow{\r
+            dn{"Sannad-dhuuban"}\r
             relativeTime{\r
                 future{\r
                     one{"+{0} y"}\r
@@ -632,6 +947,7 @@ so{
             }\r
         }\r
         year-short{\r
+            dn{"Sanadkii"}\r
             relativeTime{\r
                 future{\r
                     one{"+{0} y"}\r
@@ -647,4 +963,79 @@ so{
             dn{"Zone"}\r
         }\r
     }\r
+    listPattern{\r
+        or{\r
+            2{"{0} ama {1}"}\r
+            end{"{0} ama {1}"}\r
+            middle{"{0}, {1}"}\r
+            start{"{0}, {1}"}\r
+        }\r
+        standard{\r
+            2{"{0} iyo {1}"}\r
+            end{"{0} iyo {1}"}\r
+            middle{"{0}, {1}"}\r
+            start{"{0}, {1}"}\r
+        }\r
+        standard-short{\r
+            2{"{0} iyo {1}"}\r
+            end{"{0} iyo {1}"}\r
+            middle{"{0}, {1}"}\r
+            start{"{0}, {1}"}\r
+        }\r
+        unit{\r
+            2{"{0} iyo {1}"}\r
+            end{"{0} iyo {1}"}\r
+            middle{"{0}, {1}"}\r
+            start{"{0}, {1}"}\r
+        }\r
+        unit-narrow{\r
+            2{"{0}, {1}"}\r
+            end{"{0}, {1}"}\r
+            middle{"{0}, {1}"}\r
+            start{"{0}, {1}"}\r
+        }\r
+        unit-short{\r
+            2{"{0}, {1}"}\r
+            end{"{0}, {1}"}\r
+            middle{"{0}, {1}"}\r
+            start{"{0}, {1}"}\r
+        }\r
+    }\r
+    measurementSystemNames{\r
+        UK{"UK"}\r
+        US{"US"}\r
+        metric{"Metrik"}\r
+    }\r
+    parse{\r
+        date{\r
+            lenient{\r
+                "[\\--/]",\r
+                "[\\:∶]",\r
+            }\r
+        }\r
+        general{\r
+            lenient{\r
+                "[.․。︒﹒.。]",\r
+                "['ʼ՚᾽᾿’']",\r
+                "[%٪﹪%]",\r
+                "[؉‰]",\r
+                "[\$﹩$$]",\r
+                "[£₤]",\r
+                "[¥¥]",\r
+                "[₩₩]",\r
+                "[₨₹{Rp}{Rs}]",\r
+            }\r
+        }\r
+        number{\r
+            lenient{\r
+                "[\\-‒⁻₋−➖﹣-]",\r
+                "[,،٫、︐︑﹐﹑,、]",\r
+                "[+⁺₊➕﬩﹢+]",\r
+            }\r
+            stricter{\r
+                "[,٫︐﹐,]",\r
+                "[.․﹒.。]",\r
+            }\r
+        }\r
+    }\r
 }\r
index b8225cf..e144a8a 100644 (file)
@@ -28,7 +28,9 @@ sq{
         default{"latn"}\r
         latn{\r
             miscPatterns{\r
-                atLeast{">{0}"}\r
+                approximately{"≈{0}"}\r
+                atLeast{"≥{0}"}\r
+                atMost{"≤{0}"}\r
                 range{"{0}-{1}"}\r
             }\r
             patterns{\r
@@ -217,10 +219,10 @@ sq{
                 other{"{0} libra"}\r
             }\r
         }\r
-        minimumGroupingDigits{"1"}\r
+        minimumGroupingDigits{"2"}\r
         native{"latn"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.50"}\r
     calendar{\r
         generic{\r
             DateTimePatterns{\r
@@ -283,6 +285,20 @@ sq{
                 yyyyQQQQ{"QQQQ, y G"}\r
             }\r
             intervalFormats{\r
+                H{\r
+                    H{"HH–HH"}\r
+                }\r
+                Hm{\r
+                    H{"HH:mm–HH:mm"}\r
+                    m{"HH:mm–HH:mm"}\r
+                }\r
+                Hmv{\r
+                    H{"HH:mm–HH:mm v"}\r
+                    m{"HH:mm–HH:mm v"}\r
+                }\r
+                Hv{\r
+                    H{"HH–HH v"}\r
+                }\r
                 M{\r
                     M{"M – M"}\r
                 }\r
@@ -352,12 +368,12 @@ sq{
                 "e pasdites",\r
             }\r
             AmPmMarkersAbbr{\r
-                "e paradites",\r
-                "e pasdites",\r
+                "p.d.",\r
+                "m.d.",\r
             }\r
             AmPmMarkersNarrow{\r
-                "e paradites",\r
-                "e pasdites",\r
+                "p.d.",\r
+                "m.d.",\r
             }\r
             DateTimePatterns{\r
                 "h:mm:ss a, zzzz",\r
@@ -445,22 +461,22 @@ sq{
                         "Sht",\r
                     }\r
                     narrow{\r
-                        "D",\r
-                        "H",\r
-                        "M",\r
-                        "M",\r
-                        "E",\r
-                        "P",\r
-                        "Sh",\r
+                        "d",\r
+                        "h",\r
+                        "m",\r
+                        "m",\r
+                        "e",\r
+                        "p",\r
+                        "sh",\r
                     }\r
                     short{\r
-                        "Die",\r
-                        "Hën",\r
-                        "Mar",\r
-                        "Mër",\r
-                        "Enj",\r
-                        "Pre",\r
-                        "Sht",\r
+                        "die",\r
+                        "hën",\r
+                        "mar",\r
+                        "mër",\r
+                        "enj",\r
+                        "pre",\r
+                        "sht",\r
                     }\r
                     wide{\r
                         "e diel",\r
@@ -474,40 +490,40 @@ sq{
                 }\r
                 stand-alone{\r
                     abbreviated{\r
-                        "Die",\r
-                        "Hën",\r
-                        "Mar",\r
-                        "Mër",\r
-                        "Enj",\r
-                        "Pre",\r
-                        "Sht",\r
+                        "die",\r
+                        "hën",\r
+                        "mar",\r
+                        "mër",\r
+                        "enj",\r
+                        "pre",\r
+                        "sht",\r
                     }\r
                     narrow{\r
-                        "D",\r
-                        "H",\r
-                        "M",\r
-                        "M",\r
-                        "E",\r
-                        "P",\r
-                        "Sh",\r
+                        "d",\r
+                        "h",\r
+                        "m",\r
+                        "m",\r
+                        "e",\r
+                        "p",\r
+                        "sh",\r
                     }\r
                     short{\r
-                        "Die",\r
-                        "Hën",\r
-                        "Mar",\r
-                        "Mër",\r
-                        "Enj",\r
-                        "Pre",\r
-                        "Sht",\r
+                        "die",\r
+                        "hën",\r
+                        "mar",\r
+                        "mër",\r
+                        "enj",\r
+                        "pre",\r
+                        "sht",\r
                     }\r
                     wide{\r
-                        "E diel",\r
-                        "E hënë",\r
-                        "E martë",\r
-                        "E mërkurë",\r
-                        "E enjte",\r
-                        "E premte",\r
-                        "E shtunë",\r
+                        "e diel",\r
+                        "e hënë",\r
+                        "e martë",\r
+                        "e mërkurë",\r
+                        "e enjte",\r
+                        "e premte",\r
+                        "e shtunë",\r
                     }\r
                 }\r
             }\r
@@ -544,25 +560,25 @@ sq{
                 stand-alone{\r
                     abbreviated{\r
                         afternoon1{"pasdite"}\r
-                        am{"paradite"}\r
+                        am{"p.d."}\r
                         evening1{"mbrëmje"}\r
                         midnight{"mesnatë"}\r
                         morning1{"mëngjes"}\r
                         morning2{"paradite"}\r
                         night1{"natë"}\r
                         noon{"mesditë"}\r
-                        pm{"pasdite"}\r
+                        pm{"m.d."}\r
                     }\r
                     narrow{\r
                         afternoon1{"pasdite"}\r
-                        am{"paradite"}\r
+                        am{"p.d."}\r
                         evening1{"mbrëmje"}\r
                         midnight{"mesnatë"}\r
                         morning1{"mëngjes"}\r
                         morning2{"paradite"}\r
                         night1{"natë"}\r
                         noon{"mesditë"}\r
-                        pm{"pasdite"}\r
+                        pm{"m.d."}\r
                     }\r
                     wide{\r
                         afternoon1{"pasdite"}\r
@@ -745,46 +761,46 @@ sq{
                 }\r
                 stand-alone{\r
                     abbreviated{\r
-                        "Jan",\r
-                        "Shk",\r
-                        "Mar",\r
-                        "Pri",\r
-                        "Maj",\r
-                        "Qer",\r
-                        "Korr",\r
-                        "Gush",\r
-                        "Sht",\r
-                        "Tet",\r
-                        "Nën",\r
-                        "Dhj",\r
+                        "jan",\r
+                        "shk",\r
+                        "mar",\r
+                        "pri",\r
+                        "maj",\r
+                        "qer",\r
+                        "korr",\r
+                        "gush",\r
+                        "sht",\r
+                        "tet",\r
+                        "nën",\r
+                        "dhj",\r
                     }\r
                     narrow{\r
-                        "J",\r
-                        "Sh",\r
-                        "M",\r
-                        "P",\r
-                        "M",\r
-                        "Q",\r
-                        "K",\r
-                        "G",\r
-                        "Sh",\r
-                        "T",\r
-                        "N",\r
-                        "Dh",\r
+                        "j",\r
+                        "sh",\r
+                        "m",\r
+                        "p",\r
+                        "m",\r
+                        "q",\r
+                        "k",\r
+                        "g",\r
+                        "sh",\r
+                        "t",\r
+                        "n",\r
+                        "dh",\r
                     }\r
                     wide{\r
-                        "Janar",\r
-                        "Shkurt",\r
-                        "Mars",\r
-                        "Prill",\r
-                        "Maj",\r
-                        "Qershor",\r
-                        "Korrik",\r
-                        "Gusht",\r
-                        "Shtator",\r
-                        "Tetor",\r
-                        "Nëntor",\r
-                        "Dhjetor",\r
+                        "janar",\r
+                        "shkurt",\r
+                        "mars",\r
+                        "prill",\r
+                        "maj",\r
+                        "qershor",\r
+                        "korrik",\r
+                        "gusht",\r
+                        "shtator",\r
+                        "tetor",\r
+                        "nëntor",\r
+                        "dhjetor",\r
                     }\r
                 }\r
             }\r
@@ -1006,7 +1022,7 @@ sq{
             }\r
             relativeTime{\r
                 future{\r
-                    one{"pas {0} të premte"}\r
+                    one{"pas {0} të premteje"}\r
                     other{"pas {0} të premtesh"}\r
                 }\r
                 past{\r
@@ -1023,7 +1039,7 @@ sq{
             }\r
             relativeTime{\r
                 future{\r
-                    one{"pas {0} të premte"}\r
+                    one{"pas {0} të premteje"}\r
                     other{"pas {0} të premtesh"}\r
                 }\r
                 past{\r
@@ -1040,7 +1056,7 @@ sq{
             }\r
             relativeTime{\r
                 future{\r
-                    one{"pas {0} të premte"}\r
+                    one{"pas {0} të premteje"}\r
                     other{"pas {0} të premtesh"}\r
                 }\r
                 past{\r
@@ -1108,28 +1124,28 @@ sq{
             }\r
         }\r
         minute-narrow{\r
-            dn{"min."}\r
+            dn{"min"}\r
             relativeTime{\r
                 future{\r
-                    one{"pas {0} min."}\r
-                    other{"pas {0} min."}\r
+                    one{"pas {0} min"}\r
+                    other{"pas {0} min"}\r
                 }\r
                 past{\r
-                    one{"{0} min. më parë"}\r
-                    other{"{0} min. më parë"}\r
+                    one{"{0} min më parë"}\r
+                    other{"{0} min më parë"}\r
                 }\r
             }\r
         }\r
         minute-short{\r
-            dn{"min."}\r
+            dn{"min"}\r
             relativeTime{\r
                 future{\r
-                    one{"pas {0} min."}\r
-                    other{"pas {0} min."}\r
+                    one{"pas {0} min"}\r
+                    other{"pas {0} min"}\r
                 }\r
                 past{\r
-                    one{"{0} min. më parë"}\r
-                    other{"{0} min. më parë"}\r
+                    one{"{0} min më parë"}\r
+                    other{"{0} min më parë"}\r
                 }\r
             }\r
         }\r
@@ -1204,6 +1220,11 @@ sq{
         }\r
         month-narrow{\r
             dn{"muaj"}\r
+            relative{\r
+                "-1"{"muajin e kaluar"}\r
+                "0"{"këtë muaj"}\r
+                "1"{"muajin e ardhshëm"}\r
+            }\r
             relativeTime{\r
                 future{\r
                     one{"pas {0} muaji"}\r
@@ -1217,6 +1238,11 @@ sq{
         }\r
         month-short{\r
             dn{"muaj"}\r
+            relative{\r
+                "-1"{"muajin e kaluar"}\r
+                "0"{"këtë muaj"}\r
+                "1"{"muajin e ardhshëm"}\r
+            }\r
             relativeTime{\r
                 future{\r
                     one{"pas {0} muaji"}\r
@@ -1248,6 +1274,11 @@ sq{
         }\r
         quarter-narrow{\r
             dn{"tremujor"}\r
+            relative{\r
+                "-1"{"tremujorin e kaluar"}\r
+                "0"{"këtë tremujor"}\r
+                "1"{"tremujorin e ardhshëm"}\r
+            }\r
             relativeTime{\r
                 future{\r
                     one{"pas {0} tremujori"}\r
@@ -1261,6 +1292,11 @@ sq{
         }\r
         quarter-short{\r
             dn{"tremujor"}\r
+            relative{\r
+                "-1"{"tremujorin e kaluar"}\r
+                "0"{"këtë tremujor"}\r
+                "1"{"tremujorin e ardhshëm"}\r
+            }\r
             relativeTime{\r
                 future{\r
                     one{"pas {0} tremujori"}\r
@@ -1340,28 +1376,28 @@ sq{
             }\r
         }\r
         second-narrow{\r
-            dn{"sek."}\r
+            dn{"sek"}\r
             relativeTime{\r
                 future{\r
-                    one{"pas {0} sek."}\r
-                    other{"pas {0} sek."}\r
+                    one{"pas {0} sek"}\r
+                    other{"pas {0} sek"}\r
                 }\r
                 past{\r
-                    one{"{0} sek. më parë"}\r
-                    other{"{0} sek. më parë"}\r
+                    one{"{0} sek më parë"}\r
+                    other{"{0} sek më parë"}\r
                 }\r
             }\r
         }\r
         second-short{\r
-            dn{"sek."}\r
+            dn{"sek"}\r
             relativeTime{\r
                 future{\r
-                    one{"pas {0} sek."}\r
-                    other{"pas {0} sek."}\r
+                    one{"pas {0} sek"}\r
+                    other{"pas {0} sek"}\r
                 }\r
                 past{\r
-                    one{"{0} sek. më parë"}\r
-                    other{"{0} sek. më parë"}\r
+                    one{"{0} sek më parë"}\r
+                    other{"{0} sek më parë"}\r
                 }\r
             }\r
         }\r
@@ -1424,7 +1460,7 @@ sq{
             }\r
             relativeTime{\r
                 future{\r
-                    one{"pas {0} të enjte"}\r
+                    one{"pas {0} të enjteje"}\r
                     other{"pas {0} të enjtesh"}\r
                 }\r
                 past{\r
@@ -1441,7 +1477,7 @@ sq{
             }\r
             relativeTime{\r
                 future{\r
-                    one{"pas {0} të enjte"}\r
+                    one{"pas {0} të enjteje"}\r
                     other{"pas {0} të enjtesh"}\r
                 }\r
                 past{\r
@@ -1458,7 +1494,7 @@ sq{
             }\r
             relativeTime{\r
                 future{\r
-                    one{"pas {0} të enjte"}\r
+                    one{"pas {0} të enjteje"}\r
                     other{"pas {0} të enjtesh"}\r
                 }\r
                 past{\r
@@ -1590,6 +1626,11 @@ sq{
         }\r
         week-narrow{\r
             dn{"javë"}\r
+            relative{\r
+                "-1"{"javën e kaluar"}\r
+                "0"{"këtë javë"}\r
+                "1"{"javën e ardhshme"}\r
+            }\r
             relativePeriod{"java e {0}"}\r
             relativeTime{\r
                 future{\r
@@ -1604,6 +1645,11 @@ sq{
         }\r
         week-short{\r
             dn{"javë"}\r
+            relative{\r
+                "-1"{"javën e kaluar"}\r
+                "0"{"këtë javë"}\r
+                "1"{"javën e ardhshme"}\r
+            }\r
             relativePeriod{"java e {0}"}\r
             relativeTime{\r
                 future{\r
@@ -1646,9 +1692,9 @@ sq{
         year{\r
             dn{"vit"}\r
             relative{\r
-                "-1"{"vitin e kaluar"}\r
-                "0"{"këtë vit"}\r
-                "1"{"vitin e ardhshëm"}\r
+                "-1"{"vjet"}\r
+                "0"{"sivjet"}\r
+                "1"{"mot"}\r
             }\r
             relativeTime{\r
                 future{\r
@@ -1663,6 +1709,11 @@ sq{
         }\r
         year-narrow{\r
             dn{"vit"}\r
+            relative{\r
+                "-1"{"vitin e kaluar"}\r
+                "0"{"këtë vit"}\r
+                "1"{"vitin e ardhshëm"}\r
+            }\r
             relativeTime{\r
                 future{\r
                     one{"pas {0} viti"}\r
@@ -1676,6 +1727,11 @@ sq{
         }\r
         year-short{\r
             dn{"vit"}\r
+            relative{\r
+                "-1"{"vitin e kaluar"}\r
+                "0"{"këtë vit"}\r
+                "1"{"vitin e ardhshëm"}\r
+            }\r
             relativeTime{\r
                 future{\r
                     one{"pas {0} viti"}\r
@@ -1750,8 +1806,13 @@ sq{
         general{\r
             lenient{\r
                 "[.․。︒﹒.。]",\r
+                "['ʼ՚᾽᾿’']",\r
+                "[%٪﹪%]",\r
+                "[؉‰]",\r
                 "[\$﹩$$]",\r
                 "[£₤]",\r
+                "[¥¥]",\r
+                "[₩₩]",\r
                 "[₨₹{Rp}{Rs}]",\r
             }\r
         }\r
index 642bb50..8315219 100644 (file)
@@ -19,7 +19,9 @@ sr{
         default{"latn"}\r
         latn{\r
             miscPatterns{\r
-                atLeast{"⩾{0}"}\r
+                approximately{"~{0}"}\r
+                atLeast{"≥{0}"}\r
+                atMost{"≤{0}"}\r
                 range{"{0}–{1}"}\r
             }\r
             patterns{\r
@@ -247,7 +249,7 @@ sr{
         minimumGroupingDigits{"1"}\r
         native{"latn"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.94"}\r
     calendar{\r
         buddhist{\r
             eras{\r
@@ -1256,6 +1258,7 @@ sr{
                     "Таишо",\r
                     "Шова",\r
                     "Хаисеи",\r
+                    "Qqqq",\r
                 }\r
             }\r
         }\r
@@ -1407,6 +1410,13 @@ sr{
         }\r
         day-narrow{\r
             dn{"д."}\r
+            relative{\r
+                "-1"{"јуче"}\r
+                "-2"{"прекјуче"}\r
+                "0"{"данас"}\r
+                "1"{"сутра"}\r
+                "2"{"прекосутра"}\r
+            }\r
             relativeTime{\r
                 future{\r
                     few{"за {0} д."}\r
@@ -1422,6 +1432,13 @@ sr{
         }\r
         day-short{\r
             dn{"д."}\r
+            relative{\r
+                "-1"{"јуче"}\r
+                "-2"{"прекјуче"}\r
+                "0"{"данас"}\r
+                "1"{"сутра"}\r
+                "2"{"прекосутра"}\r
+            }\r
             relativeTime{\r
                 future{\r
                     few{"за {0} д."}\r
@@ -2338,8 +2355,13 @@ sr{
         general{\r
             lenient{\r
                 "[.․。︒﹒.。]",\r
+                "['ʼ՚᾽᾿’']",\r
+                "[%٪﹪%]",\r
+                "[؉‰]",\r
                 "[\$﹩$$]",\r
                 "[£₤]",\r
+                "[¥¥]",\r
+                "[₩₩]",\r
                 "[₨₹{Rp}{Rs}]",\r
             }\r
         }\r
index 9604803..606d263 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 sr_Cyrl_BA{\r
-    Version{"2.1.38.69"}\r
+    Version{"2.1.44.88"}\r
     calendar{\r
         generic{\r
             intervalFormats{\r
@@ -30,21 +30,21 @@ sr_Cyrl_BA{
                     other{"W. 'сједмица' 'у' MMM"}\r
                 }\r
                 yw{\r
-                    few{"w. 'сједмица' 'у' y."}\r
-                    one{"w. 'сједмица' 'у' y."}\r
-                    other{"w. 'сједмица' 'у' y."}\r
+                    few{"w. 'сједмица' 'у' Y."}\r
+                    one{"w. 'сједмица' 'у' Y."}\r
+                    other{"w. 'сједмица' 'у' Y."}\r
                 }\r
             }\r
             dayNames{\r
                 format{\r
                     abbreviated{\r
-                        "нед.",\r
-                        "пон.",\r
-                        "ут.",\r
-                        "ср.",\r
-                        "чет.",\r
-                        "пет.",\r
-                        "суб.",\r
+                        "нед",\r
+                        "пон",\r
+                        "ут",\r
+                        "ср",\r
+                        "чет",\r
+                        "пет",\r
+                        "суб",\r
                     }\r
                     wide{\r
                         "недјеља",\r
@@ -58,13 +58,13 @@ sr_Cyrl_BA{
                 }\r
                 stand-alone{\r
                     abbreviated{\r
-                        "нед.",\r
-                        "пон.",\r
-                        "ут.",\r
-                        "ср.",\r
-                        "чет.",\r
-                        "пет.",\r
-                        "суб.",\r
+                        "нед",\r
+                        "пон",\r
+                        "ут",\r
+                        "ср",\r
+                        "чет",\r
+                        "пет",\r
+                        "суб",\r
                     }\r
                     wide{\r
                         "недјеља",\r
@@ -121,37 +121,45 @@ sr_Cyrl_BA{
                     "нове ере",\r
                 }\r
             }\r
-            monthNames{\r
-                format{\r
-                    abbreviated{\r
-                        "јан.",\r
-                        "феб.",\r
-                        "март",\r
-                        "апр.",\r
-                        "мај",\r
-                        "јун",\r
-                        "јул",\r
-                        "авг.",\r
-                        "септ.",\r
-                        "окт.",\r
-                        "нов.",\r
-                        "дец.",\r
-                    }\r
+            intervalFormats{\r
+                MEd{\r
+                    M{"E, MM-dd – E, MM-dd"}\r
+                    d{"E, MM-dd – E, MM-dd"}\r
+                }\r
+                Md{\r
+                    M{"MM-dd – MM-dd"}\r
+                    d{"MM-dd – MM-dd"}\r
+                }\r
+                yM{\r
+                    M{"y-MM – y-MM"}\r
+                    y{"y-MM – y-MM"}\r
+                }\r
+                yMEd{\r
+                    M{"E, y-MM-dd – E, y-MM-dd"}\r
+                    d{"E, y-MM-dd – E, y-MM-dd"}\r
+                    y{"E, y-MM-dd – E, y-MM-dd"}\r
                 }\r
+                yMd{\r
+                    M{"y-MM-dd – y-MM-dd"}\r
+                    d{"y-MM-dd – y-MM-dd"}\r
+                    y{"y-MM-dd – y-MM-dd"}\r
+                }\r
+            }\r
+            monthNames{\r
                 stand-alone{\r
                     abbreviated{\r
-                        "јан.",\r
-                        "феб.",\r
+                        "јан",\r
+                        "феб",\r
                         "март",\r
-                        "апр.",\r
+                        "апр",\r
                         "мај",\r
                         "јун",\r
                         "јул",\r
-                        "авг.",\r
-                        "септ.",\r
-                        "окт.",\r
-                        "нов.",\r
-                        "дец.",\r
+                        "авг",\r
+                        "септ",\r
+                        "окт",\r
+                        "нов",\r
+                        "дец",\r
                     }\r
                 }\r
             }\r
index 21a3a14..9fb6792 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 sr_Cyrl_ME{\r
-    Version{"2.1.38.69"}\r
+    Version{"2.1.44.88"}\r
     calendar{\r
         generic{\r
             intervalFormats{\r
@@ -27,9 +27,9 @@ sr_Cyrl_ME{
                     other{"W. 'сједмица' 'у' MMM"}\r
                 }\r
                 yw{\r
-                    few{"w. 'сједмица' 'у' y."}\r
-                    one{"w. 'сједмица' 'у' y."}\r
-                    other{"w. 'сједмица' 'у' y."}\r
+                    few{"w. 'сједмица' 'у' Y."}\r
+                    one{"w. 'сједмица' 'у' Y."}\r
+                    other{"w. 'сједмица' 'у' Y."}\r
                 }\r
             }\r
             dayNames{\r
index a1325e6..bfc9b71 100644 (file)
@@ -20,7 +20,9 @@ sr_Latn{
         default{"latn"}\r
         latn{\r
             miscPatterns{\r
-                atLeast{"⩾{0}"}\r
+                approximately{"~{0}"}\r
+                atLeast{"≥{0}"}\r
+                atMost{"≤{0}"}\r
                 range{"{0}–{1}"}\r
             }\r
             patterns{\r
@@ -248,7 +250,7 @@ sr_Latn{
         minimumGroupingDigits{"1"}\r
         native{"latn"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.50"}\r
     calendar{\r
         buddhist{\r
             eras{\r
@@ -1257,6 +1259,7 @@ sr_Latn{
                     "Taišo",\r
                     "Šova",\r
                     "Haisei",\r
+                    "Qqqq",\r
                 }\r
             }\r
         }\r
@@ -1408,6 +1411,13 @@ sr_Latn{
         }\r
         day-narrow{\r
             dn{"d."}\r
+            relative{\r
+                "-1"{"juče"}\r
+                "-2"{"prekjuče"}\r
+                "0"{"danas"}\r
+                "1"{"sutra"}\r
+                "2"{"prekosutra"}\r
+            }\r
             relativeTime{\r
                 future{\r
                     few{"za {0} d."}\r
@@ -1423,6 +1433,13 @@ sr_Latn{
         }\r
         day-short{\r
             dn{"d."}\r
+            relative{\r
+                "-1"{"juče"}\r
+                "-2"{"prekjuče"}\r
+                "0"{"danas"}\r
+                "1"{"sutra"}\r
+                "2"{"prekosutra"}\r
+            }\r
             relativeTime{\r
                 future{\r
                     few{"za {0} d."}\r
@@ -2339,8 +2356,13 @@ sr_Latn{
         general{\r
             lenient{\r
                 "[.․。︒﹒.。]",\r
+                "['ʼ՚᾽᾿’']",\r
+                "[%٪﹪%]",\r
+                "[؉‰]",\r
                 "[\$﹩$$]",\r
                 "[£₤]",\r
+                "[¥¥]",\r
+                "[₩₩]",\r
                 "[₨₹{Rp}{Rs}]",\r
             }\r
         }\r
index ef898c9..c22e64c 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 sr_Latn_BA{\r
-    Version{"2.1.38.69"}\r
+    Version{"2.1.44.88"}\r
     calendar{\r
         generic{\r
             intervalFormats{\r
@@ -30,21 +30,21 @@ sr_Latn_BA{
                     other{"W. 'sjedmica' 'u' MMM"}\r
                 }\r
                 yw{\r
-                    few{"w. 'sjedmica' 'u' y."}\r
-                    one{"w. 'sjedmica' 'u' y."}\r
-                    other{"w. 'sjedmica' 'u' y."}\r
+                    few{"w. 'sjedmica' 'u' Y."}\r
+                    one{"w. 'sjedmica' 'u' Y."}\r
+                    other{"w. 'sjedmica' 'u' Y."}\r
                 }\r
             }\r
             dayNames{\r
                 format{\r
                     abbreviated{\r
-                        "ned.",\r
-                        "pon.",\r
-                        "ut.",\r
-                        "sr.",\r
-                        "čet.",\r
-                        "pet.",\r
-                        "sub.",\r
+                        "ned",\r
+                        "pon",\r
+                        "ut",\r
+                        "sr",\r
+                        "čet",\r
+                        "pet",\r
+                        "sub",\r
                     }\r
                     wide{\r
                         "nedjelja",\r
@@ -58,13 +58,13 @@ sr_Latn_BA{
                 }\r
                 stand-alone{\r
                     abbreviated{\r
-                        "ned.",\r
-                        "pon.",\r
-                        "ut.",\r
-                        "sr.",\r
-                        "čet.",\r
-                        "pet.",\r
-                        "sub.",\r
+                        "ned",\r
+                        "pon",\r
+                        "ut",\r
+                        "sr",\r
+                        "čet",\r
+                        "pet",\r
+                        "sub",\r
                     }\r
                     wide{\r
                         "nedjelja",\r
@@ -121,37 +121,45 @@ sr_Latn_BA{
                     "nove ere",\r
                 }\r
             }\r
-            monthNames{\r
-                format{\r
-                    abbreviated{\r
-                        "jan.",\r
-                        "feb.",\r
-                        "mart",\r
-                        "apr.",\r
-                        "maj",\r
-                        "jun",\r
-                        "jul",\r
-                        "avg.",\r
-                        "sept.",\r
-                        "okt.",\r
-                        "nov.",\r
-                        "dec.",\r
-                    }\r
+            intervalFormats{\r
+                MEd{\r
+                    M{"E, MM-dd – E, MM-dd"}\r
+                    d{"E, MM-dd – E, MM-dd"}\r
+                }\r
+                Md{\r
+                    M{"MM-dd – MM-dd"}\r
+                    d{"MM-dd – MM-dd"}\r
+                }\r
+                yM{\r
+                    M{"y-MM – y-MM"}\r
+                    y{"y-MM – y-MM"}\r
+                }\r
+                yMEd{\r
+                    M{"E, y-MM-dd – E, y-MM-dd"}\r
+                    d{"E, y-MM-dd – E, y-MM-dd"}\r
+                    y{"E, y-MM-dd – E, y-MM-dd"}\r
                 }\r
+                yMd{\r
+                    M{"y-MM-dd – y-MM-dd"}\r
+                    d{"y-MM-dd – y-MM-dd"}\r
+                    y{"y-MM-dd – y-MM-dd"}\r
+                }\r
+            }\r
+            monthNames{\r
                 stand-alone{\r
                     abbreviated{\r
-                        "jan.",\r
-                        "feb.",\r
+                        "jan",\r
+                        "feb",\r
                         "mart",\r
-                        "apr.",\r
+                        "apr",\r
                         "maj",\r
                         "jun",\r
                         "jul",\r
-                        "avg.",\r
-                        "sept.",\r
-                        "okt.",\r
-                        "nov.",\r
-                        "dec.",\r
+                        "avg",\r
+                        "sept",\r
+                        "okt",\r
+                        "nov",\r
+                        "dec",\r
                     }\r
                 }\r
             }\r
index f65e4f7..c096fd6 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 sr_Latn_ME{\r
-    Version{"2.1.38.69"}\r
+    Version{"2.1.44.88"}\r
     calendar{\r
         generic{\r
             intervalFormats{\r
@@ -27,9 +27,9 @@ sr_Latn_ME{
                     other{"W. 'sjedmica' 'u' MMM"}\r
                 }\r
                 yw{\r
-                    few{"w. 'sjedmica' 'u' y."}\r
-                    one{"w. 'sjedmica' 'u' y."}\r
-                    other{"w. 'sjedmica' 'u' y."}\r
+                    few{"w. 'sjedmica' 'u' Y."}\r
+                    one{"w. 'sjedmica' 'u' Y."}\r
+                    other{"w. 'sjedmica' 'u' Y."}\r
                 }\r
             }\r
             dayNames{\r
index 5d30750..b0697cb 100644 (file)
@@ -59,7 +59,9 @@ sv{
         }\r
         latn{\r
             miscPatterns{\r
-                atLeast{"⩾{0}"}\r
+                approximately{"~{0}"}\r
+                atLeast{"≥{0}"}\r
+                atMost{"≤{0}"}\r
                 range{"{0}‒{1}"}\r
             }\r
             patterns{\r
@@ -251,9 +253,12 @@ sv{
         minimumGroupingDigits{"1"}\r
         native{"latn"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.94"}\r
     calendar{\r
         buddhist{\r
+            availableFormats{\r
+                yyyyMMMM{"MMMM y G"}\r
+            }\r
             eras{\r
                 abbreviated{\r
                     "BE",\r
@@ -274,6 +279,9 @@ sv{
                     H{"HH:mm–HH:mm v"}\r
                     m{"HH:mm–HH:mm v"}\r
                 }\r
+                hmv{\r
+                    h{"h:mm–h:mm a v"}\r
+                }\r
             }\r
         }\r
         chinese{\r
@@ -1630,6 +1638,7 @@ sv{
                     "Taishō",\r
                     "Shōwa",\r
                     "Heisei",\r
+                    "Qqqq",\r
                 }\r
             }\r
         }\r
@@ -1641,6 +1650,9 @@ sv{
                 narrow{\r
                     "AP",\r
                 }\r
+                wide{\r
+                    "Anno Persarum",\r
+                }\r
             }\r
             intervalFormats{\r
                 Hm{\r
@@ -1751,7 +1763,7 @@ sv{
         arrows{"pilar"}\r
         body{"kropp"}\r
         box_drawing{"boxritning"}\r
-        braille{"blindskrift"}\r
+        braille{"punktskrift"}\r
         building{"byggnader"}\r
         bullets_stars{"punkter/stjärnor"}\r
         consonantal_jamo{"jamokonsonanter"}\r
@@ -1787,7 +1799,7 @@ sv{
         kanji{"japanska kanji"}\r
         keycap{"keycap"}\r
         leftwards_arrows{"vänsterpilar"}\r
-        leftwards_rightwards_arrows{"vänster/höger-pilar"}\r
+        leftwards_rightwards_arrows{"vänster-/högerpilar"}\r
         letterlike_symbols{"bokstavsliknande symboler"}\r
         limited_use{"begränsad användning"}\r
         male{"manlig"}\r
@@ -2110,8 +2122,8 @@ sv{
             }\r
             relativeTime{\r
                 future{\r
-                    one{"+{0} månd"}\r
-                    other{"+{0} månd"}\r
+                    one{"+{0} må."}\r
+                    other{"+{0} må."}\r
                 }\r
                 past{\r
                     one{"–{0} månd"}\r
@@ -2738,4 +2750,36 @@ sv{
         US{"USA-enheter"}\r
         metric{"SI-enheter"}\r
     }\r
+    parse{\r
+        date{\r
+            lenient{\r
+                "[\\--/]",\r
+                "[\\:∶]",\r
+            }\r
+        }\r
+        general{\r
+            lenient{\r
+                "[.․。︒﹒.。]",\r
+                "['ʼ՚᾽᾿’']",\r
+                "[%٪﹪%]",\r
+                "[؉‰]",\r
+                "[\$﹩$$]",\r
+                "[£₤]",\r
+                "[¥¥]",\r
+                "[₩₩]",\r
+                "[₨₹{Rp}{Rs}]",\r
+            }\r
+        }\r
+        number{\r
+            lenient{\r
+                "[\\-‒⁻₋−➖﹣-]",\r
+                "[,،٫、︐︑﹐﹑,、]",\r
+                "[+⁺₊➕﬩﹢+]",\r
+            }\r
+            stricter{\r
+                "[,٫︐﹐,]",\r
+                "[.․﹒.。]",\r
+            }\r
+        }\r
+    }\r
 }\r
index 9b3d5bf..1f00012 100644 (file)
@@ -11,6 +11,7 @@ sw{
         word-medial{"{0} … {1}"}\r
     }\r
     ExemplarCharacters{"[a b {ch} d e f g h i j k l m n o p r s t u v w y z]"}\r
+    ExemplarCharactersIndex{"[A B C D E F G H I J K L M N O P R S T U V W Y Z]"}\r
     ExemplarCharactersNumbers{"[\\- , . % ‰ + 0 1 2 3 4 5 6 7 8 9]"}\r
     ExemplarCharactersPunctuation{"[\\- , ; \\: ! ? . ' \u0022 ( ) \\[ \\] \\{ \\}]"}\r
     MoreInformation{"?"}\r
@@ -18,12 +19,14 @@ sw{
         default{"latn"}\r
         latn{\r
             miscPatterns{\r
-                atLeast{"⩾{0}"}\r
+                approximately{"~{0}"}\r
+                atLeast{"{0}+"}\r
+                atMost{"≤{0}"}\r
                 range{"{0}–{1}"}\r
             }\r
             patterns{\r
-                accountingFormat{"¤#,##0.00;(¤#,##0.00)"}\r
-                currencyFormat{"¤#,##0.00"}\r
+                accountingFormat{"¤ #,##0.00"}\r
+                currencyFormat{"¤ #,##0.00"}\r
                 decimalFormat{"#,##0.###"}\r
                 percentFormat{"#,##0%"}\r
                 scientificFormat{"#E0"}\r
@@ -83,52 +86,52 @@ sw{
             patternsShort{\r
                 currencyFormat{\r
                     1000{\r
-                        one{"¤elfu 0;¤elfu -0"}\r
-                        other{"¤elfu 0;¤elfu -0"}\r
+                        one{"¤ elfu0"}\r
+                        other{"¤ elfu0"}\r
                     }\r
                     10000{\r
-                        one{"¤elfu 00;¤elfu -00"}\r
-                        other{"¤elfu 00;¤elfu -00"}\r
+                        one{"¤ elfu00;¤elfu -00"}\r
+                        other{"¤ elfu00;¤elfu -00"}\r
                     }\r
                     100000{\r
-                        one{"¤laki 000;¤laki -000"}\r
-                        other{"¤laki 000;¤laki -000"}\r
+                        one{"¤ laki000;¤laki -000"}\r
+                        other{"¤ laki000;¤laki -000"}\r
                     }\r
                     1000000{\r
-                        one{"¤M0;¤M-0"}\r
-                        other{"¤M0;¤M-0"}\r
+                        one{"¤ 0M;¤-0M"}\r
+                        other{"¤ 0M"}\r
                     }\r
                     10000000{\r
-                        one{"¤M00;¤M-00"}\r
-                        other{"¤M00;¤M-00"}\r
+                        one{"¤ 00M;¤M-00M"}\r
+                        other{"¤ 00M;¤-00M"}\r
                     }\r
                     100000000{\r
-                        one{"¤M000;¤M-000"}\r
-                        other{"¤M000;¤M-000"}\r
+                        one{"¤ 000M;¤Milioni-000"}\r
+                        other{"¤ 000M"}\r
                     }\r
                     1000000000{\r
-                        one{"¤B0;¤B-0"}\r
-                        other{"¤B0;¤B-0"}\r
+                        one{"¤ 0B;¤-0B"}\r
+                        other{"¤ 0B;¤-0B"}\r
                     }\r
                     10000000000{\r
-                        one{"¤B00;¤B-00"}\r
-                        other{"¤B00;¤B-00"}\r
+                        one{"¤ 00B;¤-00B"}\r
+                        other{"¤ 00B;¤-00B"}\r
                     }\r
                     100000000000{\r
-                        one{"¤B000;¤B-000"}\r
-                        other{"¤B000;¤B-000"}\r
+                        one{"¤ 000B;¤-000B"}\r
+                        other{"¤ 000B;¤-000B"}\r
                     }\r
                     1000000000000{\r
-                        one{"¤T0;¤T-0"}\r
-                        other{"¤T0;¤T-0"}\r
+                        one{"¤ 0T;¤-0T"}\r
+                        other{"¤ 0T"}\r
                     }\r
                     10000000000000{\r
-                        one{"¤T00;¤T-00"}\r
-                        other{"¤T00;¤T-00"}\r
+                        one{"¤ 00T;¤-00T"}\r
+                        other{"¤ 00T"}\r
                     }\r
                     100000000000000{\r
-                        one{"¤T000;¤T-000"}\r
-                        other{"¤T000;¤T-000"}\r
+                        one{"¤ 000T;¤-000T"}\r
+                        other{"¤ 000T;¤-000T"}\r
                     }\r
                 }\r
                 decimalFormat{\r
@@ -145,40 +148,40 @@ sw{
                         other{"elfu 000;elfu -000"}\r
                     }\r
                     1000000{\r
-                        one{"M0;M-0"}\r
-                        other{"M0;M-0"}\r
+                        one{"0M;-0M"}\r
+                        other{"0M"}\r
                     }\r
                     10000000{\r
-                        one{"M00;M-00"}\r
-                        other{"M00;M-00"}\r
+                        one{"00M;-00M"}\r
+                        other{"00M"}\r
                     }\r
                     100000000{\r
-                        one{"M000;M-000"}\r
-                        other{"M000;M-000"}\r
+                        one{"000M;-000M"}\r
+                        other{"000M"}\r
                     }\r
                     1000000000{\r
-                        one{"B0;B-0"}\r
-                        other{"B0;B-0"}\r
+                        one{"0B;-0B"}\r
+                        other{"0B;-0B"}\r
                     }\r
                     10000000000{\r
-                        one{"B00;B-00"}\r
-                        other{"B00;B-00"}\r
+                        one{"00B;-00B"}\r
+                        other{"00B;-00B"}\r
                     }\r
                     100000000000{\r
-                        one{"B000;B-000"}\r
-                        other{"B000;B-000"}\r
+                        one{"000B;-000B"}\r
+                        other{"000B;-000B"}\r
                     }\r
                     1000000000000{\r
-                        one{"T0;T-0"}\r
-                        other{"T0;T-0"}\r
+                        one{"0T;-0T"}\r
+                        other{"0T"}\r
                     }\r
                     10000000000000{\r
-                        one{"T00;T-00"}\r
-                        other{"T00;T-00"}\r
+                        one{"00T;-00T"}\r
+                        other{"00T"}\r
                     }\r
                     100000000000000{\r
-                        one{"T000;T-000"}\r
-                        other{"T000;T-000"}\r
+                        one{"000T;-000T"}\r
+                        other{"000T"}\r
                     }\r
                 }\r
             }\r
@@ -209,7 +212,7 @@ sw{
         minimumGroupingDigits{"1"}\r
         native{"latn"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.65"}\r
     calendar{\r
         generic{\r
             DateTimePatterns{\r
@@ -961,6 +964,13 @@ sw{
         }\r
         day-narrow{\r
             dn{"siku"}\r
+            relative{\r
+                "-1"{"jana"}\r
+                "-2"{"juzi"}\r
+                "0"{"leo"}\r
+                "1"{"kesho"}\r
+                "2"{"kesho kutwa"}\r
+            }\r
             relativeTime{\r
                 future{\r
                     one{"baada ya siku {0}"}\r
@@ -974,6 +984,13 @@ sw{
         }\r
         day-short{\r
             dn{"siku"}\r
+            relative{\r
+                "-1"{"jana"}\r
+                "-2"{"juzi"}\r
+                "0"{"leo"}\r
+                "1"{"kesho"}\r
+                "2"{"kesho kutwa"}\r
+            }\r
             relativeTime{\r
                 future{\r
                     one{"baada ya siku {0}"}\r
@@ -1705,10 +1722,10 @@ sw{
             dn{"saa za eneo"}\r
         }\r
         zone-narrow{\r
-            dn{"saa za eneo"}\r
+            dn{"eneo"}\r
         }\r
         zone-short{\r
-            dn{"saa za eneo"}\r
+            dn{"eneo"}\r
         }\r
     }\r
     listPattern{\r
@@ -1764,8 +1781,13 @@ sw{
         general{\r
             lenient{\r
                 "[.․。︒﹒.。]",\r
+                "['ʼ՚᾽᾿’']",\r
+                "[%٪﹪%]",\r
+                "[؉‰]",\r
                 "[\$﹩$$]",\r
                 "[£₤]",\r
+                "[¥¥]",\r
+                "[₩₩]",\r
                 "[₨₹{Rp}{Rs}]",\r
             }\r
         }\r
index fb1e8a0..e09a4d1 100644 (file)
@@ -11,7 +11,7 @@ sw_CD{
             }\r
         }\r
     }\r
-    Version{"2.1.39.11"}\r
+    Version{"2.1.43.65"}\r
     calendar{\r
         generic{\r
             availableFormats{\r
index 1e2e4dc..b54c08f 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 sw_KE{\r
-    Version{"2.1.38.39"}\r
+    Version{"2.1.43.65"}\r
     calendar{\r
         generic{\r
             DateTimePatterns{\r
@@ -21,6 +21,10 @@ sw_KE{
             }\r
         }\r
         gregorian{\r
+            AmPmMarkers{\r
+                "AM",\r
+                "PM",\r
+            }\r
             DateTimePatterns{\r
                 "HH:mm:ss zzzz",\r
                 "HH:mm:ss z",\r
index 680e1cd..a71a51b 100644 (file)
@@ -24,7 +24,9 @@ ta{
         default{"latn"}\r
         latn{\r
             miscPatterns{\r
+                approximately{"~{0}"}\r
                 atLeast{"{0}+"}\r
+                atMost{"≤{0}"}\r
                 range{"{0}–{1}"}\r
             }\r
             patterns{\r
@@ -236,7 +238,7 @@ ta{
         }\r
         traditional{"taml"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.50"}\r
     calendar{\r
         buddhist{\r
             eras{\r
@@ -2407,6 +2409,9 @@ ta{
         zone{\r
             dn{"நேர மண்டலம்"}\r
         }\r
+        zone-narrow{\r
+            dn{"மண்டலம்"}\r
+        }\r
         zone-short{\r
             dn{"மண்டலம்"}\r
         }\r
@@ -2464,8 +2469,13 @@ ta{
         general{\r
             lenient{\r
                 "[.․。︒﹒.。]",\r
+                "['ʼ՚᾽᾿’']",\r
+                "[%٪﹪%]",\r
+                "[؉‰]",\r
                 "[\$﹩$$]",\r
                 "[£₤]",\r
+                "[¥¥]",\r
+                "[₩₩]",\r
                 "[₨₹{Rp}{Rs}]",\r
             }\r
         }\r
index 7022aeb..0094f93 100644 (file)
@@ -26,7 +26,9 @@ te{
         default{"latn"}\r
         latn{\r
             miscPatterns{\r
+                approximately{"~{0}"}\r
                 atLeast{"{0}+"}\r
+                atMost{"≤{0}"}\r
                 range{"{0}–{1}"}\r
             }\r
             patterns{\r
@@ -238,7 +240,7 @@ te{
             }\r
         }\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.50"}\r
     calendar{\r
         buddhist{\r
             eras{\r
@@ -2494,8 +2496,13 @@ te{
         general{\r
             lenient{\r
                 "[.․。︒﹒.。]",\r
+                "['ʼ՚᾽᾿’']",\r
+                "[%٪﹪%]",\r
+                "[؉‰]",\r
                 "[\$﹩$$]",\r
                 "[£₤]",\r
+                "[¥¥]",\r
+                "[₩₩]",\r
                 "[₨₹{Rp}{Rs}]",\r
             }\r
         }\r
index e51e468..868e357 100644 (file)
@@ -8,7 +8,7 @@ tg{
         default{"latn"}\r
         latn{\r
             miscPatterns{\r
-                atLeast{"⩾{0}"}\r
+                atLeast{"â\89¥{0}"}\r
                 range{"{0}–{1}"}\r
             }\r
             patterns{\r
@@ -34,7 +34,7 @@ tg{
         minimumGroupingDigits{"1"}\r
         native{"latn"}\r
     }\r
-    Version{"2.1.38.71"}\r
+    Version{"2.1.44.88"}\r
     calendar{\r
         generic{\r
             DateTimePatterns{\r
@@ -143,7 +143,7 @@ tg{
                 yQQQ{"QQQ y"}\r
                 yQQQQ{"QQQQ y"}\r
                 yw{\r
-                    other{"'ҳафтаи' w, y"}\r
+                    other{"'ҳафтаи' w, Y"}\r
                 }\r
             }\r
             dayNames{\r
index f72fcb6..cb469e9 100644 (file)
@@ -27,7 +27,9 @@ th{
         default{"latn"}\r
         latn{\r
             miscPatterns{\r
+                approximately{"~{0}"}\r
                 atLeast{"{0}+"}\r
+                atMost{"≤{0}"}\r
                 range{"{0}-{1}"}\r
             }\r
             patterns{\r
@@ -181,7 +183,7 @@ th{
         minimumGroupingDigits{"1"}\r
         native{"thai"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.89"}\r
     calendar{\r
         buddhist{\r
             DateTimePatterns{\r
@@ -428,7 +430,7 @@ th{
                             "เกิงอู้",\r
                             "ซินเว่ย",\r
                             "เหรินเซิน",\r
-                            "à¸\81ุà¹\8bà¹\88ยà¹\82หยà¹\88ว",\r
+                            "กุ๋ยโหย่ว",\r
                             "เจ่ียซู",\r
                             "อี๋ฮ่าย",\r
                             "ปิ๋ิ่งจื่อ",\r
@@ -1228,7 +1230,7 @@ th{
                 MMMMEEEEd{"EEEEที่ d MMMM"}\r
                 MMMMEd{"E d MMMM"}\r
                 MMMMW{\r
-                    other{"สัปดาห์ที่ W ของ MMM"}\r
+                    other{"สัปดาห์ที่ W ของเดือนMMMM"}\r
                 }\r
                 MMMMd{"d MMMM"}\r
                 MMMd{"d MMM"}\r
@@ -1256,7 +1258,7 @@ th{
                 yQQQ{"QQQ y"}\r
                 yQQQQ{"QQQQ G y"}\r
                 yw{\r
-                    other{"สัปดาห์ที่ w ของ Y"}\r
+                    other{"สัปดาห์ที่ w ของปี Y"}\r
                 }\r
             }\r
             dayNames{\r
@@ -1357,7 +1359,7 @@ th{
                         midnight{"เที่ยงคืน"}\r
                         morning1{"เช้า"}\r
                         night1{"กลางคืน"}\r
-                        noon{"n"}\r
+                        noon{"เที่ยง"}\r
                     }\r
                     wide{\r
                         afternoon1{"ในตอนบ่าย"}\r
@@ -1411,7 +1413,7 @@ th{
             }\r
             eras{\r
                 abbreviated{\r
-                    "à¸\9bีà¸\81à¹\88อà¸\99 à¸\84.ศ.",\r
+                    "ก่อน ค.ศ.",\r
                     "ค.ศ.",\r
                 }\r
                 abbreviated%variant{\r
@@ -1427,7 +1429,7 @@ th{
                     "ส.ศ.",\r
                 }\r
                 wide{\r
-                    "à¸\9bีà¸\81à¹\88อà¸\99à¸\84ริสà¸\95à¹\8cศัà¸\81ราà¸\8a",\r
+                    "à¸\9bีà¸\81à¹\88อà¸\99à¸\84ริสà¸\95à¸\81าล",\r
                     "คริสต์ศักราช",\r
                 }\r
                 wide%variant{\r
@@ -2332,6 +2334,7 @@ th{
                     "ทะอิโช",\r
                     "โชวะ",\r
                     "เฮเซ",\r
+                    "Qqqq",\r
                 }\r
             }\r
         }\r
@@ -2491,7 +2494,7 @@ th{
         african_scripts{"สคริปต์แอฟริกัน"}\r
         american_scripts{"สคริปต์อเมริกัน"}\r
         animal{"สัตว์"}\r
-        animals_nature{"สัà¸\95วà¹\8cà¹\81ละธรรมชาติ"}\r
+        animals_nature{"สัà¸\95วà¹\8cหรือธรรมชาติ"}\r
         arrows{"ลูกศร"}\r
         body{"ร่างกาย"}\r
         box_drawing{"การวาดกล่อง"}\r
@@ -2557,7 +2560,7 @@ th{
         sign_standard_symbols{"เครื่องหมาย/สัญลักษณ์มาตรฐาน"}\r
         small_form_variant{"รูปแบบขนาดเล็ก"}\r
         smiley{"หน้ายิ้ม"}\r
-        smileys_people{"หà¸\99à¹\89ายิà¹\89มà¹\81ละรูปคน"}\r
+        smileys_people{"หà¸\99à¹\89ายิà¹\89มหรือรูปคน"}\r
         south_asian_scripts{"สคริปต์เอเชียใต้"}\r
         southeast_asian_scripts{"สคริปต์เอเชียตะวันออกเฉียงใต้"}\r
         spacing{"การเว้นวรรค"}\r
@@ -2566,7 +2569,7 @@ th{
         technical_symbols{"สัญลักษณ์ทางเทคนิค"}\r
         tone_marks{"วรรณยุกต์"}\r
         travel{"การเดินทาง"}\r
-        travel_places{"à¸\81ารà¹\80à¸\94ิà¸\99à¸\97าà¸\87à¹\81ละสถานที่"}\r
+        travel_places{"à¸\81ารà¹\80à¸\94ิà¸\99à¸\97าà¸\87หรือสถานที่"}\r
         upwards_arrows{"ลูกศรขึ้น"}\r
         variant_forms{"รูปแบบที่เปลี่ยนแปลง"}\r
         vocalic_jamo{"สระภาษาเกาหลี"}\r
@@ -2890,6 +2893,11 @@ th{
         }\r
         quarter-narrow{\r
             dn{"ไตรมาส"}\r
+            relative{\r
+                "-1"{"ไตรมาสที่แล้ว"}\r
+                "0"{"ไตรมาสนี้"}\r
+                "1"{"ไตรมาสหน้า"}\r
+            }\r
             relativeTime{\r
                 future{\r
                     other{"ใน {0} ไตรมาส"}\r
@@ -2901,6 +2909,11 @@ th{
         }\r
         quarter-short{\r
             dn{"ไตรมาส"}\r
+            relative{\r
+                "-1"{"ไตรมาสที่แล้ว"}\r
+                "0"{"ไตรมาสนี้"}\r
+                "1"{"ไตรมาสหน้า"}\r
+            }\r
             relativeTime{\r
                 future{\r
                     other{"ใน {0} ไตรมาส"}\r
@@ -3232,7 +3245,7 @@ th{
             dn{"สัปดาห์ของเดือน"}\r
         }\r
         weekday{\r
-            dn{"วัà¸\99à¹\83à¸\99สัปดาห์"}\r
+            dn{"วัà¸\99à¸\82อà¸\87สัปดาห์"}\r
         }\r
         weekday-narrow{\r
             dn{"วันของสัปดาห์"}\r
@@ -3360,8 +3373,13 @@ th{
         general{\r
             lenient{\r
                 "[.․。︒﹒.。]",\r
+                "['ʼ՚᾽᾿’']",\r
+                "[%٪﹪%]",\r
+                "[؉‰]",\r
                 "[\$﹩$$]",\r
                 "[£₤]",\r
+                "[¥¥]",\r
+                "[₩₩]",\r
                 "[₨₹{Rp}{Rs}]",\r
             }\r
         }\r
index 2f1a5da..5dc4880 100644 (file)
@@ -20,7 +20,7 @@ ti{
         default{"latn"}\r
         latn{\r
             miscPatterns{\r
-                atLeast{"⩾{0}"}\r
+                atLeast{"â\89¥{0}"}\r
                 range{"{0}–{1}"}\r
             }\r
             patterns{\r
@@ -202,7 +202,7 @@ ti{
         native{"latn"}\r
         traditional{"ethi"}\r
     }\r
-    Version{"2.1.38.72"}\r
+    Version{"2.1.44.88"}\r
     calendar{\r
         generic{\r
             DateTimePatterns{\r
@@ -312,8 +312,8 @@ ti{
                 yQQQ{"QQQ y"}\r
                 yQQQQ{"y QQQQ"}\r
                 yw{\r
-                    one{"መበል w ሰሙን ናይ y"}\r
-                    other{"መበል w ሰሙን ናይ y"}\r
+                    one{"መበል w ሰሙን ናይ Y"}\r
+                    other{"መበል w ሰሙን ናይ Y"}\r
                 }\r
             }\r
             dayNames{\r
@@ -386,9 +386,9 @@ ti{
                     wide{\r
                         "ሰንበት",\r
                         "ሰኑይ",\r
-                        "á\88°ሉስ",\r
+                        "á\88 ሉስ",\r
                         "ረቡዕ",\r
-                        "á\88\93ሙስ",\r
+                        "á\8a\83ሙስ",\r
                         "ዓርቢ",\r
                         "ቀዳም",\r
                     }\r
index e188463..817dcc3 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 ti_ER{\r
-    Version{"2.1.38.73"}\r
+    Version{"2.1.43.65"}\r
     calendar{\r
         generic{\r
             DateTimePatterns{\r
diff --git a/source/data/locales/tk.txt b/source/data/locales/tk.txt
new file mode 100644 (file)
index 0000000..a7a28f1
--- /dev/null
@@ -0,0 +1,1731 @@
+// © 2016 and later: Unicode, Inc. and others.\r
+// License & terms of use: http://www.unicode.org/copyright.html#License\r
+tk{\r
+    AuxExemplarCharacters{"[c q v x]"}\r
+    Ellipsis{\r
+        final{"{0}…"}\r
+        initial{"…{0}"}\r
+        medial{"{0}…{1}"}\r
+        word-final{"{0} …"}\r
+        word-initial{"… {0}"}\r
+        word-medial{"{0} … {1}"}\r
+    }\r
+    ExemplarCharacters{"[a b ç d e ä f g h i j ž k l m n ň o ö p r s ş t u ü w y ý z]"}\r
+    ExemplarCharactersIndex{"[A B Ç D E Ä F G H I J Ž K L M N Ň O Ö P R S Ş T U Ü W Y Ý Z]"}\r
+    ExemplarCharactersNumbers{"[  \\- , % ‰ + 0 1 2 3 4 5 6 7 8 9]"}\r
+    ExemplarCharactersPunctuation{"[\\- – — , ; \\: ! ? . … \u0022 “ ” ( ) \\[ \\] \\{ \\} § @ * #]"}\r
+    MoreInformation{"?"}\r
+    NumberElements{\r
+        default{"latn"}\r
+        latn{\r
+            miscPatterns{\r
+                approximately{"~{0}"}\r
+                atLeast{"≥{0}"}\r
+                atMost{"≤{0}"}\r
+                range{"{0}–{1}"}\r
+            }\r
+            patterns{\r
+                accountingFormat{"#,##0.00 ¤"}\r
+                currencyFormat{"#,##0.00 ¤"}\r
+                decimalFormat{"#,##0.###"}\r
+                percentFormat{"#,##0 %"}\r
+                scientificFormat{"#E0"}\r
+            }\r
+            patternsLong{\r
+                decimalFormat{\r
+                    1000{\r
+                        one{"0 müň"}\r
+                        other{"0 müň"}\r
+                    }\r
+                    10000{\r
+                        one{"00 müň"}\r
+                        other{"00 müň"}\r
+                    }\r
+                    100000{\r
+                        one{"000 müň"}\r
+                        other{"000 müň"}\r
+                    }\r
+                    1000000{\r
+                        one{"0 million"}\r
+                        other{"0 million"}\r
+                    }\r
+                    10000000{\r
+                        one{"00 million"}\r
+                        other{"00 million"}\r
+                    }\r
+                    100000000{\r
+                        one{"000 million"}\r
+                        other{"000 million"}\r
+                    }\r
+                    1000000000{\r
+                        one{"0 milliard"}\r
+                        other{"0 milliard"}\r
+                    }\r
+                    10000000000{\r
+                        one{"00 milliard"}\r
+                        other{"00 milliard"}\r
+                    }\r
+                    100000000000{\r
+                        one{"000 milliard"}\r
+                        other{"000 milliard"}\r
+                    }\r
+                    1000000000000{\r
+                        one{"0 trillion"}\r
+                        other{"0 trillion"}\r
+                    }\r
+                    10000000000000{\r
+                        one{"00 trillion"}\r
+                        other{"00 trillion"}\r
+                    }\r
+                    100000000000000{\r
+                        one{"000 trillion"}\r
+                        other{"000 trillion"}\r
+                    }\r
+                }\r
+            }\r
+            patternsShort{\r
+                currencyFormat{\r
+                    1000{\r
+                        one{"0 müň ¤"}\r
+                        other{"0 müň ¤"}\r
+                    }\r
+                    10000{\r
+                        one{"00 müň ¤"}\r
+                        other{"00 müň ¤"}\r
+                    }\r
+                    100000{\r
+                        one{"000 müň ¤"}\r
+                        other{"000 müň ¤"}\r
+                    }\r
+                    1000000{\r
+                        one{"0 mln ¤"}\r
+                        other{"0 mln ¤"}\r
+                    }\r
+                    10000000{\r
+                        one{"00 mln ¤"}\r
+                        other{"00 mln ¤"}\r
+                    }\r
+                    100000000{\r
+                        one{"000 mln ¤"}\r
+                        other{"000 mln ¤"}\r
+                    }\r
+                    1000000000{\r
+                        one{"0 mlrd ¤"}\r
+                        other{"0 mlrd ¤"}\r
+                    }\r
+                    10000000000{\r
+                        one{"00 mlrd ¤"}\r
+                        other{"00 mlrd ¤"}\r
+                    }\r
+                    100000000000{\r
+                        one{"000 mlrd ¤"}\r
+                        other{"000 mlrd ¤"}\r
+                    }\r
+                    1000000000000{\r
+                        one{"0 trln ¤"}\r
+                        other{"0 trln ¤"}\r
+                    }\r
+                    10000000000000{\r
+                        one{"00 trln ¤"}\r
+                        other{"00 trln ¤"}\r
+                    }\r
+                    100000000000000{\r
+                        one{"000 trln ¤"}\r
+                        other{"000 trln ¤"}\r
+                    }\r
+                }\r
+                decimalFormat{\r
+                    1000{\r
+                        one{"0 müň"}\r
+                        other{"0 müň"}\r
+                    }\r
+                    10000{\r
+                        one{"00 müň"}\r
+                        other{"00 müň"}\r
+                    }\r
+                    100000{\r
+                        one{"000 müň"}\r
+                        other{"000 müň"}\r
+                    }\r
+                    1000000{\r
+                        one{"0 mln"}\r
+                        other{"0 mln"}\r
+                    }\r
+                    10000000{\r
+                        one{"00 mln"}\r
+                        other{"00 mln"}\r
+                    }\r
+                    100000000{\r
+                        one{"000 mln"}\r
+                        other{"000 mln"}\r
+                    }\r
+                    1000000000{\r
+                        one{"0 mlrd"}\r
+                        other{"0 mlrd"}\r
+                    }\r
+                    10000000000{\r
+                        one{"00 mlrd"}\r
+                        other{"00 mlrd"}\r
+                    }\r
+                    100000000000{\r
+                        one{"000 mlrd"}\r
+                        other{"000 mlrd"}\r
+                    }\r
+                    1000000000000{\r
+                        one{"0 trln"}\r
+                        other{"0 trln"}\r
+                    }\r
+                    10000000000000{\r
+                        one{"00 trln"}\r
+                        other{"00 trln"}\r
+                    }\r
+                    100000000000000{\r
+                        one{"000 trln"}\r
+                        other{"000 trln"}\r
+                    }\r
+                }\r
+            }\r
+            symbols{\r
+                decimal{","}\r
+                exponential{"E"}\r
+                group{" "}\r
+                infinity{"∞"}\r
+                list{";"}\r
+                minusSign{"-"}\r
+                nan{"san däl"}\r
+                perMille{"‰"}\r
+                percentSign{"%"}\r
+                plusSign{"+"}\r
+                superscriptingExponent{"×"}\r
+                timeSeparator{":"}\r
+            }\r
+        }\r
+        minimalPairs{\r
+            ordinal{\r
+                other{"Sagdan {0}-nj. öwrümden öwrüliň."}\r
+            }\r
+        }\r
+        minimumGroupingDigits{"1"}\r
+        native{"latn"}\r
+    }\r
+    Version{"2.1.43.65"}\r
+    calendar{\r
+        generic{\r
+            DateTimePatterns{\r
+                "HH:mm:ss zzzz",\r
+                "HH:mm:ss z",\r
+                "HH:mm:ss",\r
+                "HH:mm",\r
+                "d MMMM y G EEEE",\r
+                "d MMMM y G",\r
+                "d MMM y G",\r
+                "dd.MM.y GGGGG",\r
+                "{1} {0}",\r
+                "{1} {0}",\r
+                "{1} {0}",\r
+                "{1} {0}",\r
+                "{1} {0}",\r
+            }\r
+            availableFormats{\r
+                Bh{"h B"}\r
+                Bhm{"h:mm B"}\r
+                Bhms{"h:mm:ss B"}\r
+                E{"ccc"}\r
+                EBhm{"E h:mm B"}\r
+                EBhms{"E h:mm:ss B"}\r
+                EHm{"E HH:mm"}\r
+                EHms{"E HH:mm:ss"}\r
+                Ed{"d E"}\r
+                Ehm{"E h:mm a"}\r
+                Ehms{"E h:mm:ss a"}\r
+                Gy{"G y"}\r
+                GyMMM{"G y MMM"}\r
+                GyMMMEd{"G y MMM d, E"}\r
+                GyMMMd{"G y MMM d"}\r
+                H{"HH"}\r
+                Hm{"HH:mm"}\r
+                Hms{"HH:mm:ss"}\r
+                M{"L"}\r
+                MEd{"dd.MM E"}\r
+                MMM{"LLL"}\r
+                MMMEd{"d MMM E"}\r
+                MMMMEd{"d MMMM E"}\r
+                MMMMd{"d MMMM"}\r
+                MMMd{"d MMM"}\r
+                Md{"dd.MM"}\r
+                d{"d"}\r
+                h{"h a"}\r
+                hm{"h:mm a"}\r
+                hms{"h:mm:ss a"}\r
+                ms{"mm:ss"}\r
+                y{"y"}\r
+                yM{"MM.y"}\r
+                yMEd{"dd.MM.y E"}\r
+                yMMM{"MMM y"}\r
+                yMMMEd{"d MMM y E"}\r
+                yMMMM{"MMMM y"}\r
+                yMMMd{"d MMM y"}\r
+                yMd{"dd.MM.y"}\r
+                yyyy{"G y"}\r
+                yyyyM{"GGGGG y-MM"}\r
+                yyyyMEd{"GGGGG y-MM-dd, E"}\r
+                yyyyMMM{"G y MMM"}\r
+                yyyyMMMEd{"G y MMM d, E"}\r
+                yyyyMMMM{"G y MMMM"}\r
+                yyyyMMMd{"G y MMM d"}\r
+                yyyyMd{"GGGGG y-MM-dd"}\r
+                yyyyQQQ{"G y QQQ"}\r
+                yyyyQQQQ{"G y QQQQ"}\r
+            }\r
+            dayNames{\r
+                stand-alone{\r
+                    narrow{\r
+                        "Ý",\r
+                        "D",\r
+                        "S",\r
+                        "Ç",\r
+                        "P",\r
+                        "A",\r
+                        "Ş",\r
+                    }\r
+                }\r
+            }\r
+            intervalFormats{\r
+                M{\r
+                    M{"MM – MM"}\r
+                }\r
+                MEd{\r
+                    M{"dd.MM E – dd.MM E"}\r
+                    d{"dd.MM E – dd.MM E"}\r
+                }\r
+                MMM{\r
+                    M{"MMM–MMM"}\r
+                }\r
+                MMMEd{\r
+                    M{"d MMM E – d MMM E"}\r
+                    d{"d MMM E – d MMM E"}\r
+                }\r
+                MMMd{\r
+                    M{"d MMM – d MMM"}\r
+                    d{"d – d MMM"}\r
+                }\r
+                Md{\r
+                    M{"dd.MM – dd.MM"}\r
+                    d{"dd.MM – dd.MM"}\r
+                }\r
+                d{\r
+                    d{"d–d"}\r
+                }\r
+                fallback{"{0} - {1}"}\r
+                y{\r
+                    y{"y–y"}\r
+                }\r
+                yM{\r
+                    M{"MM.y – MM.y"}\r
+                    y{"MM.y – MM.y"}\r
+                }\r
+                yMEd{\r
+                    M{"dd.MM.y E – dd.MM.y E"}\r
+                    d{"dd.MM.y E – dd.MM.y E"}\r
+                    y{"dd.MM.y E – dd.MM.y E"}\r
+                }\r
+                yMMM{\r
+                    M{"MMM–MMM y"}\r
+                    y{"MMM y – MMM y"}\r
+                }\r
+                yMMMEd{\r
+                    M{"d MMM y E – d MMM y E"}\r
+                    d{"d MMM y E – d MMM y E"}\r
+                    y{"d MMM y E – d MMM y E"}\r
+                }\r
+                yMMMM{\r
+                    M{"MMMM–MMMM y"}\r
+                    y{"MMMM y – MMMM y"}\r
+                }\r
+                yMMMd{\r
+                    M{"d MMM – d MMM y"}\r
+                    d{"d – d MMM y"}\r
+                    y{"d MMM y – d MMM y"}\r
+                }\r
+                yMd{\r
+                    M{"dd.MM.y – dd.MM.y"}\r
+                    d{"dd.MM.y – dd.MM.y"}\r
+                    y{"dd.MM.y – dd.MM.y"}\r
+                }\r
+            }\r
+        }\r
+        gregorian{\r
+            AmPmMarkers{\r
+                "günortadan öň",\r
+                "günortadan soň",\r
+            }\r
+            AmPmMarkersAbbr{\r
+                "go.öň",\r
+                "go.soň",\r
+            }\r
+            AmPmMarkersNarrow{\r
+                "öň",\r
+                "soň",\r
+            }\r
+            DateTimePatterns{\r
+                "HH:mm:ss zzzz",\r
+                "HH:mm:ss z",\r
+                "HH:mm:ss",\r
+                "HH:mm",\r
+                "d MMMM y EEEE",\r
+                "d MMMM y",\r
+                "d MMM y",\r
+                "dd.MM.y",\r
+                "{1} {0}",\r
+                "{1} {0}",\r
+                "{1} {0}",\r
+                "{1} {0}",\r
+                "{1} {0}",\r
+            }\r
+            appendItems{\r
+                Timezone{"{0} {1}"}\r
+            }\r
+            availableFormats{\r
+                Bh{"h B"}\r
+                Bhm{"h:mm B"}\r
+                Bhms{"h:mm:ss B"}\r
+                E{"ccc"}\r
+                EBhm{"E h:mm B"}\r
+                EBhms{"E h:mm:ss B"}\r
+                EHm{"E HH:mm"}\r
+                EHms{"E HH:mm:ss"}\r
+                Ed{"d E"}\r
+                Ehm{"E h:mm a"}\r
+                Ehms{"E h:mm:ss a"}\r
+                Gy{"G y"}\r
+                GyMMM{"G y MMM"}\r
+                GyMMMEd{"G y MMM d, E"}\r
+                GyMMMd{"G y MMM d"}\r
+                H{"HH"}\r
+                Hm{"HH:mm"}\r
+                Hms{"HH:mm:ss"}\r
+                Hmsv{"HH:mm:ss v"}\r
+                Hmv{"HH:mm v"}\r
+                M{"L"}\r
+                MEd{"dd.MM E"}\r
+                MMM{"LLL"}\r
+                MMMEd{"d MMM E"}\r
+                MMMMEd{"d MMMM E"}\r
+                MMMMW{\r
+                    one{"'hepde' W, MMMM"}\r
+                    other{"'hepde' W, MMMM"}\r
+                }\r
+                MMMMd{"d MMMM"}\r
+                MMMd{"d MMM"}\r
+                Md{"dd.MM"}\r
+                d{"d"}\r
+                h{"h a"}\r
+                hm{"h:mm a"}\r
+                hms{"h:mm:ss a"}\r
+                hmsv{"h:mm:ss a v"}\r
+                hmv{"h:mm a v"}\r
+                mmss{"mm:ss"}\r
+                ms{"mm:ss"}\r
+                y{"y"}\r
+                yM{"MM.y"}\r
+                yMEd{"dd.MM.y E"}\r
+                yMMM{"MMM y"}\r
+                yMMMEd{"d MMM y E"}\r
+                yMMMM{"MMMM y"}\r
+                yMMMd{"d MMM y"}\r
+                yMd{"dd.MM.y"}\r
+                yQQQ{"y QQQ"}\r
+                yQQQQ{"y QQQQ"}\r
+                yw{\r
+                    one{"'hepde' w, Y"}\r
+                    other{"'hepde' w, Y"}\r
+                }\r
+            }\r
+            dayNames{\r
+                format{\r
+                    abbreviated{\r
+                        "ýek",\r
+                        "duş",\r
+                        "siş",\r
+                        "çar",\r
+                        "pen",\r
+                        "ann",\r
+                        "şen",\r
+                    }\r
+                    narrow{\r
+                        "Ý",\r
+                        "D",\r
+                        "S",\r
+                        "Ç",\r
+                        "P",\r
+                        "A",\r
+                        "Ş",\r
+                    }\r
+                    short{\r
+                        "ýb",\r
+                        "db",\r
+                        "sb",\r
+                        "çb",\r
+                        "pb",\r
+                        "an",\r
+                        "şb",\r
+                    }\r
+                    wide{\r
+                        "ýekşenbe",\r
+                        "duşenbe",\r
+                        "sişenbe",\r
+                        "çarşenbe",\r
+                        "penşenbe",\r
+                        "anna",\r
+                        "şenbe",\r
+                    }\r
+                }\r
+                stand-alone{\r
+                    abbreviated{\r
+                        "Ýek",\r
+                        "Duş",\r
+                        "Siş",\r
+                        "Çar",\r
+                        "Pen",\r
+                        "Ann",\r
+                        "Şen",\r
+                    }\r
+                    narrow{\r
+                        "Ý",\r
+                        "D",\r
+                        "S",\r
+                        "Ç",\r
+                        "P",\r
+                        "A",\r
+                        "Ş",\r
+                    }\r
+                    short{\r
+                        "Ýb",\r
+                        "Db",\r
+                        "Sb",\r
+                        "Çb",\r
+                        "Pb",\r
+                        "An",\r
+                        "Şb",\r
+                    }\r
+                    wide{\r
+                        "Ýekşenbe",\r
+                        "Duşenbe",\r
+                        "Sişenbe",\r
+                        "Çarşenbe",\r
+                        "Penşenbe",\r
+                        "Anna",\r
+                        "Şenbe",\r
+                    }\r
+                }\r
+            }\r
+            dayPeriod{\r
+                stand-alone{\r
+                    abbreviated{\r
+                        am{"g.öň"}\r
+                        pm{"g.soň"}\r
+                    }\r
+                    narrow{\r
+                        am{"öň"}\r
+                        pm{"soň"}\r
+                    }\r
+                    wide{\r
+                        am{"günortadan öň"}\r
+                        pm{"günortadan soň"}\r
+                    }\r
+                }\r
+            }\r
+            eras{\r
+                abbreviated{\r
+                    "B.e.öň",\r
+                    "B.e.",\r
+                }\r
+                abbreviated%variant{\r
+                    "b.e.öň",\r
+                    "b.e.",\r
+                }\r
+                wide{\r
+                    "Isadan öň",\r
+                    "Isadan soň",\r
+                }\r
+                wide%variant{\r
+                    "Biziň eramyzdan öň",\r
+                    "Biziň eramyz",\r
+                }\r
+            }\r
+            intervalFormats{\r
+                H{\r
+                    H{"HH–HH"}\r
+                }\r
+                Hm{\r
+                    H{"HH:mm–HH:mm"}\r
+                    m{"HH:mm–HH:mm"}\r
+                }\r
+                Hmv{\r
+                    H{"HH:mm–HH:mm v"}\r
+                    m{"HH:mm–HH:mm v"}\r
+                }\r
+                Hv{\r
+                    H{"HH–HH v"}\r
+                }\r
+                M{\r
+                    M{"MM – MM"}\r
+                }\r
+                MEd{\r
+                    M{"dd.MM E – dd.MM E"}\r
+                    d{"dd.MM E – dd.MM E"}\r
+                }\r
+                MMM{\r
+                    M{"MMM–MMM"}\r
+                }\r
+                MMMEd{\r
+                    M{"d MMM E – d MMM E"}\r
+                    d{"d MMM E – d MMM E"}\r
+                }\r
+                MMMd{\r
+                    M{"d MMM – d MMM"}\r
+                    d{"d – d MMM"}\r
+                }\r
+                Md{\r
+                    M{"dd.MM – dd.MM"}\r
+                    d{"dd.MM – dd.MM"}\r
+                }\r
+                d{\r
+                    d{"d–d"}\r
+                }\r
+                fallback{"{0} - {1}"}\r
+                h{\r
+                    a{"h a – h a"}\r
+                    h{"h–h a"}\r
+                }\r
+                hm{\r
+                    a{"h:mm a – h:mm a"}\r
+                    h{"h:mm–h:mm a"}\r
+                    m{"h:mm–h:mm a"}\r
+                }\r
+                hmv{\r
+                    a{"h:mm a – h:mm a v"}\r
+                    h{"h:mm–h:mm a v"}\r
+                    m{"h:mm–h:mm a v"}\r
+                }\r
+                hv{\r
+                    a{"h a – h a v"}\r
+                    h{"h–h a v"}\r
+                }\r
+                y{\r
+                    y{"y–y"}\r
+                }\r
+                yM{\r
+                    M{"MM.y – MM.y"}\r
+                    y{"MM.y – MM.y"}\r
+                }\r
+                yMEd{\r
+                    M{"dd.MM.y E – dd.MM.y E"}\r
+                    d{"dd.MM.y E – dd.MM.y E"}\r
+                    y{"dd.MM.y E – dd.MM.y E"}\r
+                }\r
+                yMMM{\r
+                    M{"MMM–MMM y"}\r
+                    y{"MMM y – MMM y"}\r
+                }\r
+                yMMMEd{\r
+                    M{"d MMM y E – d MMM y E"}\r
+                    d{"d MMM y E – d MMM y E"}\r
+                    y{"d MMM y E – d MMM y E"}\r
+                }\r
+                yMMMM{\r
+                    M{"MMMM–MMMM y"}\r
+                    y{"MMMM y – MMMM y"}\r
+                }\r
+                yMMMd{\r
+                    M{"d MMM – d MMM y"}\r
+                    d{"d – d MMM y"}\r
+                    y{"d MMM y – d MMM y"}\r
+                }\r
+                yMd{\r
+                    M{"dd.MM.y – dd.MM.y"}\r
+                    d{"dd.MM.y – dd.MM.y"}\r
+                    y{"dd.MM.y – dd.MM.y"}\r
+                }\r
+            }\r
+            monthNames{\r
+                format{\r
+                    abbreviated{\r
+                        "ýan",\r
+                        "few",\r
+                        "mart",\r
+                        "apr",\r
+                        "maý",\r
+                        "iýun",\r
+                        "iýul",\r
+                        "awg",\r
+                        "sen",\r
+                        "okt",\r
+                        "noý",\r
+                        "dek",\r
+                    }\r
+                    narrow{\r
+                        "Ý",\r
+                        "F",\r
+                        "M",\r
+                        "A",\r
+                        "M",\r
+                        "I",\r
+                        "I",\r
+                        "A",\r
+                        "S",\r
+                        "O",\r
+                        "N",\r
+                        "D",\r
+                    }\r
+                    wide{\r
+                        "ýanwar",\r
+                        "fewral",\r
+                        "mart",\r
+                        "aprel",\r
+                        "maý",\r
+                        "iýun",\r
+                        "iýul",\r
+                        "awgust",\r
+                        "sentýabr",\r
+                        "oktýabr",\r
+                        "noýabr",\r
+                        "dekabr",\r
+                    }\r
+                }\r
+                stand-alone{\r
+                    abbreviated{\r
+                        "Ýan",\r
+                        "Few",\r
+                        "Mar",\r
+                        "Apr",\r
+                        "Maý",\r
+                        "Iýun",\r
+                        "Iýul",\r
+                        "Awg",\r
+                        "Sen",\r
+                        "Okt",\r
+                        "Noý",\r
+                        "Dek",\r
+                    }\r
+                    narrow{\r
+                        "Ý",\r
+                        "F",\r
+                        "M",\r
+                        "A",\r
+                        "M",\r
+                        "I",\r
+                        "I",\r
+                        "A",\r
+                        "S",\r
+                        "O",\r
+                        "N",\r
+                        "D",\r
+                    }\r
+                    wide{\r
+                        "Ýanwar",\r
+                        "Fewral",\r
+                        "Mart",\r
+                        "Aprel",\r
+                        "Maý",\r
+                        "Iýun",\r
+                        "Iýul",\r
+                        "Awgust",\r
+                        "Sentýabr",\r
+                        "Oktýabr",\r
+                        "Noýabr",\r
+                        "Dekabr",\r
+                    }\r
+                }\r
+            }\r
+            quarters{\r
+                format{\r
+                    abbreviated{\r
+                        "1Ç",\r
+                        "2Ç",\r
+                        "3Ç",\r
+                        "4Ç",\r
+                    }\r
+                    narrow{\r
+                        "1",\r
+                        "2",\r
+                        "3",\r
+                        "4",\r
+                    }\r
+                    wide{\r
+                        "1-nji çärýek",\r
+                        "2-nji çärýek",\r
+                        "3-nji çärýek",\r
+                        "4-nji çärýek",\r
+                    }\r
+                }\r
+                stand-alone{\r
+                    abbreviated{\r
+                        "1Ç",\r
+                        "2Ç",\r
+                        "3Ç",\r
+                        "4Ç",\r
+                    }\r
+                    narrow{\r
+                        "1",\r
+                        "2",\r
+                        "3",\r
+                        "4",\r
+                    }\r
+                    wide{\r
+                        "1-nji çärýek",\r
+                        "2-nji çärýek",\r
+                        "3-nji çärýek",\r
+                        "4-nji çärýek",\r
+                    }\r
+                }\r
+            }\r
+        }\r
+    }\r
+    characterLabel{\r
+        activities{"işjeňlik"}\r
+        african_scripts{"Afrika elipbiýi"}\r
+        american_scripts{"Amerikan elipbiýi"}\r
+        animal{"haýwan"}\r
+        animals_nature{"haýwan ýa-da tebigat"}\r
+        arrows{"ok"}\r
+        body{"göwre"}\r
+        box_drawing{"guty çyzuwy"}\r
+        braille{"Braýl"}\r
+        building{"bina"}\r
+        bullets_stars{"ok ýa-da ýyldyz"}\r
+        consonantal_jamo{"çekimsizli jamo"}\r
+        currency_symbols{"pul birliginiň nyşany"}\r
+        dash_connector{"kese çyzyk ýa-da baglaýjy"}\r
+        digits{"san"}\r
+        dingbats{"dingbat"}\r
+        divination_symbols{"bilgiçlik nyşany"}\r
+        downwards_arrows{"aşaklygyna ok"}\r
+        downwards_upwards_arrows{"aşak-ýokary ok"}\r
+        east_asian_scripts{"Gündogar Aziýa elipbiýi"}\r
+        emoji{"emoji"}\r
+        european_scripts{"Ýewropa elipbiýi"}\r
+        female{"zenan"}\r
+        flag{"baýdak"}\r
+        flags{"baýdaklar"}\r
+        food_drink{"iýmit we içgiler"}\r
+        format{"format"}\r
+        format_whitespace{"format we boşluk"}\r
+        full_width_form_variant{"doly giňlik warianty"}\r
+        geometric_shapes{"geometrik şekil"}\r
+        half_width_form_variant{"ýarym giňlik warianty"}\r
+        han_characters{"Han elipbiýiniň harpy"}\r
+        han_radicals{"Han harpynyň köki"}\r
+        hanja{"hanja"}\r
+        hanzi_simplified{"Hanzi (ýönekeýleşdirilen)"}\r
+        hanzi_traditional{"Hanzi (adaty)"}\r
+        heart{"ýürek"}\r
+        historic_scripts{"taryhy elipbiý"}\r
+        ideographic_desc_characters{"ideografik düşündiriş harpy"}\r
+        japanese_kana{"ýapon kana"}\r
+        kanbun{"kanbun"}\r
+        kanji{"kandzi"}\r
+        keycap{"klawiş gapagy"}\r
+        leftwards_arrows{"çepe ok"}\r
+        leftwards_rightwards_arrows{"çepe-saga ok"}\r
+        letterlike_symbols{"harpa meňzeş nyşan"}\r
+        limited_use{"çäkli ulanyş"}\r
+        male{"erkek"}\r
+        math_symbols{"matematika nyşany"}\r
+        middle_eastern_scripts{"Ýakyn Gündogar elipbiýi"}\r
+        miscellaneous{"dürli"}\r
+        modern_scripts{"häzirki zaman elipbiýi"}\r
+        modifier{"modifikator"}\r
+        musical_symbols{"aýdym-saz nyşany"}\r
+        nature{"tebigat"}\r
+        nonspacing{"aralyksyz"}\r
+        numbers{"sanlar"}\r
+        objects{"obýekt"}\r
+        other{"başga"}\r
+        paired{"jübütlenen"}\r
+        person{"şahs"}\r
+        phonetic_alphabet{"fonetik elipbiý"}\r
+        pictographs{"piktograf"}\r
+        place{"ýer"}\r
+        plant{"ösümlik"}\r
+        punctuation{"dyngy"}\r
+        rightwards_arrows{"saga ok"}\r
+        sign_standard_symbols{"belgi ýa-da nyşan"}\r
+        small_form_variant{"kiçi wariantlar"}\r
+        smiley{"ýylgyryş"}\r
+        smileys_people{"ýylgyryş ýa-da şahys"}\r
+        south_asian_scripts{"Günorta Aziýa elipbiýi"}\r
+        southeast_asian_scripts{"Günorta-gündogar Aziýa elipbiýi"}\r
+        spacing{"aralykly"}\r
+        sport{"sport"}\r
+        symbols{"nyşan"}\r
+        technical_symbols{"tehniki nyşan"}\r
+        tone_marks{"äheň belgisi"}\r
+        travel{"syýahat"}\r
+        travel_places{"syýahat ýa-da ýer"}\r
+        upwards_arrows{"ýokarlygyna ok"}\r
+        variant_forms{"wariant"}\r
+        vocalic_jamo{"çekimli jamo"}\r
+        weather{"howa"}\r
+        western_asian_scripts{"Günbatar Aziýa elipbiýi"}\r
+        whitespace{"boşluk"}\r
+    }\r
+    contextTransforms{\r
+        languages:intvector{\r
+            0,\r
+            1,\r
+        }\r
+    }\r
+    delimiters{\r
+        alternateQuotationEnd{"”"}\r
+        alternateQuotationStart{"“"}\r
+        quotationEnd{"”"}\r
+        quotationStart{"“"}\r
+    }\r
+    fields{\r
+        day{\r
+            dn{"gün"}\r
+            relative{\r
+                "-1"{"düýn"}\r
+                "0"{"şu gün"}\r
+                "1"{"ertir"}\r
+            }\r
+            relativeTime{\r
+                future{\r
+                    one{"{0} günden"}\r
+                    other{"{0} günden"}\r
+                }\r
+                past{\r
+                    one{"{0} gün öň"}\r
+                    other{"{0} gün öň"}\r
+                }\r
+            }\r
+        }\r
+        day-narrow{\r
+            dn{"gün"}\r
+            relativeTime{\r
+                future{\r
+                    one{"{0} g-den"}\r
+                    other{"{0} g-den"}\r
+                }\r
+                past{\r
+                    one{"{0} g. öň"}\r
+                    other{"{0} g. öň"}\r
+                }\r
+            }\r
+        }\r
+        day-short{\r
+            dn{"gün"}\r
+            relativeTime{\r
+                future{\r
+                    one{"{0} g-den"}\r
+                    other{"{0} g-den"}\r
+                }\r
+                past{\r
+                    one{"{0} g. öň"}\r
+                    other{"{0} g. öň"}\r
+                }\r
+            }\r
+        }\r
+        dayOfYear{\r
+            dn{"ýylyň güni"}\r
+        }\r
+        dayOfYear-narrow{\r
+            dn{"ý. güni"}\r
+        }\r
+        dayOfYear-short{\r
+            dn{"ý. güni"}\r
+        }\r
+        dayperiod{\r
+            dn{"günortadan öň/günortadan soň"}\r
+        }\r
+        dayperiod-narrow{\r
+            dn{"GÖ/GS"}\r
+        }\r
+        dayperiod-short{\r
+            dn{"GÖ/GS"}\r
+        }\r
+        era{\r
+            dn{"era"}\r
+        }\r
+        era-narrow{\r
+            dn{"era"}\r
+        }\r
+        era-short{\r
+            dn{"era"}\r
+        }\r
+        fri{\r
+            relative{\r
+                "-1"{"geçen anna"}\r
+                "0"{"şu anna"}\r
+                "1"{"indiki anna"}\r
+            }\r
+            relativeTime{\r
+                future{\r
+                    one{"{0} annadan"}\r
+                    other{"{0} annadan"}\r
+                }\r
+                past{\r
+                    one{"{0} anna öň"}\r
+                    other{"{0} anna öň"}\r
+                }\r
+            }\r
+        }\r
+        fri-narrow{\r
+            relative{\r
+                "-1"{"geçen an"}\r
+                "0"{"şu an"}\r
+                "1"{"indiki an"}\r
+            }\r
+            relativeTime{\r
+                future{\r
+                    one{"{0} an-dan"}\r
+                    other{"{0} an-dan"}\r
+                }\r
+                past{\r
+                    one{"{0} an öň"}\r
+                    other{"{0} an öň"}\r
+                }\r
+            }\r
+        }\r
+        fri-short{\r
+            relative{\r
+                "-1"{"geçen an."}\r
+                "0"{"şu an."}\r
+                "1"{"indiki an."}\r
+            }\r
+            relativeTime{\r
+                future{\r
+                    one{"{0} an-dan"}\r
+                    other{"{0} an-dan"}\r
+                }\r
+                past{\r
+                    one{"{0} an. öň"}\r
+                    other{"{0} an. öň"}\r
+                }\r
+            }\r
+        }\r
+        hour{\r
+            dn{"sagat"}\r
+            relative{\r
+                "0"{"şu sagat"}\r
+            }\r
+            relativeTime{\r
+                future{\r
+                    one{"{0} sagatdan"}\r
+                    other{"{0} sagatdan"}\r
+                }\r
+                past{\r
+                    one{"{0} sagat öň"}\r
+                    other{"{0} sagat öň"}\r
+                }\r
+            }\r
+        }\r
+        hour-narrow{\r
+            dn{"sag."}\r
+            relativeTime{\r
+                future{\r
+                    one{"{0} sag-dan"}\r
+                    other{"{0} sag-dan"}\r
+                }\r
+                past{\r
+                    one{"{0} sag. öň"}\r
+                    other{"{0} sag. öň"}\r
+                }\r
+            }\r
+        }\r
+        hour-short{\r
+            dn{"sag."}\r
+            relativeTime{\r
+                future{\r
+                    one{"{0} sag-dan"}\r
+                    other{"{0} sag-dan"}\r
+                }\r
+                past{\r
+                    one{"{0} sag. öň"}\r
+                    other{"{0} sag. öň"}\r
+                }\r
+            }\r
+        }\r
+        minute{\r
+            dn{"minut"}\r
+            relative{\r
+                "0"{"şu minut"}\r
+            }\r
+            relativeTime{\r
+                future{\r
+                    one{"{0} minutdan"}\r
+                    other{"{0} minutdan"}\r
+                }\r
+                past{\r
+                    one{"{0} minut öň"}\r
+                    other{"{0} minut öň"}\r
+                }\r
+            }\r
+        }\r
+        minute-narrow{\r
+            dn{"min."}\r
+            relativeTime{\r
+                future{\r
+                    one{"{0} min-dan"}\r
+                    other{"{0} min-dan"}\r
+                }\r
+                past{\r
+                    one{"{0} min. öň"}\r
+                    other{"{0} min. öň"}\r
+                }\r
+            }\r
+        }\r
+        minute-short{\r
+            dn{"min."}\r
+            relativeTime{\r
+                future{\r
+                    one{"{0} min-dan"}\r
+                    other{"{0} min-dan"}\r
+                }\r
+                past{\r
+                    one{"{0} min. öň"}\r
+                    other{"{0} min. öň"}\r
+                }\r
+            }\r
+        }\r
+        mon{\r
+            relative{\r
+                "-1"{"geçen duşenbe"}\r
+                "0"{"şu duşenbe"}\r
+                "1"{"indiki duşenbe"}\r
+            }\r
+            relativeTime{\r
+                future{\r
+                    one{"{0} duşenbeden"}\r
+                    other{"{0} duşenbeden"}\r
+                }\r
+                past{\r
+                    one{"{0} duşenbe öň"}\r
+                    other{"{0} duşenbe öň"}\r
+                }\r
+            }\r
+        }\r
+        mon-narrow{\r
+            relative{\r
+                "-1"{"geçen db"}\r
+                "0"{"şu db"}\r
+                "1"{"indiki db"}\r
+            }\r
+            relativeTime{\r
+                future{\r
+                    one{"{0} db-den"}\r
+                    other{"{0} db-den"}\r
+                }\r
+                past{\r
+                    one{"{0} db öň"}\r
+                    other{"{0} db öň"}\r
+                }\r
+            }\r
+        }\r
+        mon-short{\r
+            relative{\r
+                "-1"{"geçen duş."}\r
+                "0"{"şu duş."}\r
+                "1"{"indiki duş."}\r
+            }\r
+            relativeTime{\r
+                future{\r
+                    one{"{0} duş-den"}\r
+                    other{"{0} duş-den"}\r
+                }\r
+                past{\r
+                    one{"{0} duş. öň"}\r
+                    other{"{0} duş. öň"}\r
+                }\r
+            }\r
+        }\r
+        month{\r
+            dn{"aý"}\r
+            relative{\r
+                "-1"{"geçen aý"}\r
+                "0"{"şu aý"}\r
+                "1"{"indiki aý"}\r
+            }\r
+            relativeTime{\r
+                future{\r
+                    one{"{0} aýdan"}\r
+                    other{"{0} aýdan"}\r
+                }\r
+                past{\r
+                    one{"{0} aý öň"}\r
+                    other{"{0} aý öň"}\r
+                }\r
+            }\r
+        }\r
+        month-narrow{\r
+            dn{"aý"}\r
+            relativeTime{\r
+                future{\r
+                    one{"{0} aýdan"}\r
+                    other{"{0} aýdan"}\r
+                }\r
+                past{\r
+                    one{"{0} aý öň"}\r
+                    other{"{0} aý öň"}\r
+                }\r
+            }\r
+        }\r
+        month-short{\r
+            dn{"aý"}\r
+            relativeTime{\r
+                future{\r
+                    one{"{0} aýdan"}\r
+                    other{"{0} aýdan"}\r
+                }\r
+                past{\r
+                    one{"{0} aý öň"}\r
+                    other{"{0} aý öň"}\r
+                }\r
+            }\r
+        }\r
+        quarter{\r
+            dn{"çärýek"}\r
+            relative{\r
+                "-1"{"geçen çärýek"}\r
+                "0"{"şu çärýek"}\r
+                "1"{"indiki çärýek"}\r
+            }\r
+            relativeTime{\r
+                future{\r
+                    one{"{0} çärýekden"}\r
+                    other{"{0} çärýekden"}\r
+                }\r
+                past{\r
+                    one{"{0} çärýek öň"}\r
+                    other{"{0} çärýek öň"}\r
+                }\r
+            }\r
+        }\r
+        quarter-narrow{\r
+            dn{"çär."}\r
+            relativeTime{\r
+                future{\r
+                    one{"{0} ç-den"}\r
+                    other{"{0} ç-den"}\r
+                }\r
+                past{\r
+                    one{"{0} ç. öň"}\r
+                    other{"{0} ç. öň"}\r
+                }\r
+            }\r
+        }\r
+        quarter-short{\r
+            dn{"çär."}\r
+            relativeTime{\r
+                future{\r
+                    one{"{0} çär-den"}\r
+                    other{"{0} çär-den"}\r
+                }\r
+                past{\r
+                    one{"{0} çär. öň"}\r
+                    other{"{0} çär. öň"}\r
+                }\r
+            }\r
+        }\r
+        sat{\r
+            relative{\r
+                "-1"{"geçen şenbe"}\r
+                "0"{"şu şenbe"}\r
+                "1"{"indiki şenbe"}\r
+            }\r
+            relativeTime{\r
+                future{\r
+                    one{"{0} şenbeden"}\r
+                    other{"{0} şenbeden"}\r
+                }\r
+                past{\r
+                    one{"{0} şenbe öň"}\r
+                    other{"{0} şenbe öň"}\r
+                }\r
+            }\r
+        }\r
+        sat-narrow{\r
+            relative{\r
+                "-1"{"geçen şb"}\r
+                "0"{"şu şb"}\r
+                "1"{"indiki şb"}\r
+            }\r
+            relativeTime{\r
+                future{\r
+                    one{"{0} şb-den"}\r
+                    other{"{0} şb-den"}\r
+                }\r
+                past{\r
+                    one{"{0} şb öň"}\r
+                    other{"{0} şb öň"}\r
+                }\r
+            }\r
+        }\r
+        sat-short{\r
+            relative{\r
+                "-1"{"geçen şen."}\r
+                "0"{"şu şen."}\r
+                "1"{"indiki şen."}\r
+            }\r
+            relativeTime{\r
+                future{\r
+                    one{"{0} şen-den"}\r
+                    other{"{0} şen-den"}\r
+                }\r
+                past{\r
+                    one{"{0} şen. öň"}\r
+                    other{"{0} şen. öň"}\r
+                }\r
+            }\r
+        }\r
+        second{\r
+            dn{"sekunt"}\r
+            relative{\r
+                "0"{"häzir"}\r
+            }\r
+            relativeTime{\r
+                future{\r
+                    one{"{0} sekuntdan"}\r
+                    other{"{0} sekuntdan"}\r
+                }\r
+                past{\r
+                    one{"{0} sekunt öň"}\r
+                    other{"{0} sekunt öň"}\r
+                }\r
+            }\r
+        }\r
+        second-narrow{\r
+            dn{"sek."}\r
+            relativeTime{\r
+                future{\r
+                    one{"{0} sek-dan"}\r
+                    other{"{0} sek-dan"}\r
+                }\r
+                past{\r
+                    one{"{0} sek. öň"}\r
+                    other{"{0} sek. öň"}\r
+                }\r
+            }\r
+        }\r
+        second-short{\r
+            dn{"sek."}\r
+            relativeTime{\r
+                future{\r
+                    one{"{0} sek-dan"}\r
+                    other{"{0} sek-dan"}\r
+                }\r
+                past{\r
+                    one{"{0} sek. öň"}\r
+                    other{"{0} sek. öň"}\r
+                }\r
+            }\r
+        }\r
+        sun{\r
+            relative{\r
+                "-1"{"geçen ýekşenbe"}\r
+                "0"{"şu ýekşenbe"}\r
+                "1"{"indiki çekşenbe"}\r
+            }\r
+            relativeTime{\r
+                future{\r
+                    one{"{0} ýekşenbeden"}\r
+                    other{"{0} ýekşenbe"}\r
+                }\r
+                past{\r
+                    one{"{0} ýekşenbe öň"}\r
+                    other{"{0} ýekşenbe öň"}\r
+                }\r
+            }\r
+        }\r
+        sun-narrow{\r
+            relative{\r
+                "-1"{"geçen ýb"}\r
+                "0"{"şu ýb"}\r
+                "1"{"indiki ýb"}\r
+            }\r
+            relativeTime{\r
+                future{\r
+                    one{"{0} ýb.-den"}\r
+                    other{"{0} ýb.-den"}\r
+                }\r
+                past{\r
+                    one{"{0} ýb öň"}\r
+                    other{"{0} ýb öň"}\r
+                }\r
+            }\r
+        }\r
+        sun-short{\r
+            relative{\r
+                "-1"{"geçen ýek."}\r
+                "0"{"şu ýek."}\r
+                "1"{"indiki ýek."}\r
+            }\r
+            relativeTime{\r
+                future{\r
+                    one{"{0} ýek-den"}\r
+                    other{"{0} ýek-den"}\r
+                }\r
+                past{\r
+                    one{"{0} ýek. öň"}\r
+                    other{"{0} ýek. öň"}\r
+                }\r
+            }\r
+        }\r
+        thu{\r
+            relative{\r
+                "-1"{"geçen penşenbe"}\r
+                "0"{"şu penşenbe"}\r
+                "1"{"indiki penşenbe"}\r
+            }\r
+            relativeTime{\r
+                future{\r
+                    one{"{0} penşenbeden"}\r
+                    other{"{0} penşenbeden"}\r
+                }\r
+                past{\r
+                    one{"{0} penşenbe öň"}\r
+                    other{"{0} penşenbe öň"}\r
+                }\r
+            }\r
+        }\r
+        thu-narrow{\r
+            relative{\r
+                "-1"{"geçen pb"}\r
+                "0"{"şu pb"}\r
+                "1"{"indiki pb"}\r
+            }\r
+            relativeTime{\r
+                future{\r
+                    one{"{0} pb-den"}\r
+                    other{"{0} pb-den"}\r
+                }\r
+                past{\r
+                    one{"{0} pb öň"}\r
+                    other{"{0} pb öň"}\r
+                }\r
+            }\r
+        }\r
+        thu-short{\r
+            relative{\r
+                "-1"{"geçen pen."}\r
+                "0"{"şu pen."}\r
+                "1"{"indiki pen."}\r
+            }\r
+            relativeTime{\r
+                future{\r
+                    one{"{0} pen-den"}\r
+                    other{"{0} pen-den"}\r
+                }\r
+                past{\r
+                    one{"{0} pen. öň"}\r
+                    other{"{0} pen. öň"}\r
+                }\r
+            }\r
+        }\r
+        tue{\r
+            relative{\r
+                "-1"{"geçen sişenbe"}\r
+                "0"{"şu sişenbe"}\r
+                "1"{"indiki sişenbe"}\r
+            }\r
+            relativeTime{\r
+                future{\r
+                    one{"{0} sişenbeden"}\r
+                    other{"{0} sişenbeden"}\r
+                }\r
+                past{\r
+                    one{"{0} sişenbe öň"}\r
+                    other{"{0} sişenbe öň"}\r
+                }\r
+            }\r
+        }\r
+        tue-narrow{\r
+            relative{\r
+                "-1"{"geçen sb"}\r
+                "0"{"şu sb"}\r
+                "1"{"indiki sb"}\r
+            }\r
+            relativeTime{\r
+                future{\r
+                    one{"{0} sb-den"}\r
+                    other{"{0} sb-den"}\r
+                }\r
+                past{\r
+                    one{"{0} sb öň"}\r
+                    other{"{0} sb öň"}\r
+                }\r
+            }\r
+        }\r
+        tue-short{\r
+            relative{\r
+                "-1"{"geçen siş."}\r
+                "0"{"şu siş."}\r
+                "1"{"indiki siş."}\r
+            }\r
+            relativeTime{\r
+                future{\r
+                    one{"{0} siş-den"}\r
+                    other{"{0} siş-den"}\r
+                }\r
+                past{\r
+                    one{"{0} siş. öň"}\r
+                    other{"{0} siş. öň"}\r
+                }\r
+            }\r
+        }\r
+        wed{\r
+            relative{\r
+                "-1"{"geçen çarşenbe"}\r
+                "0"{"şu çarşenbe"}\r
+                "1"{"indiki çarşenbe"}\r
+            }\r
+            relativeTime{\r
+                future{\r
+                    one{"{0} çarşenbeden"}\r
+                    other{"{0} çarşenbeden"}\r
+                }\r
+                past{\r
+                    one{"{0} çarşenbe öň"}\r
+                    other{"{0} çarşenbe öň"}\r
+                }\r
+            }\r
+        }\r
+        wed-narrow{\r
+            relative{\r
+                "-1"{"geçen çb"}\r
+                "0"{"şu çb"}\r
+                "1"{"indiki çb"}\r
+            }\r
+            relativeTime{\r
+                future{\r
+                    one{"{0} çb-den"}\r
+                    other{"{0} çb-den"}\r
+                }\r
+                past{\r
+                    one{"{0} çb öň"}\r
+                    other{"{0} çb öň"}\r
+                }\r
+            }\r
+        }\r
+        wed-short{\r
+            relative{\r
+                "-1"{"geçen çar."}\r
+                "0"{"şu çar."}\r
+                "1"{"indiki çar."}\r
+            }\r
+            relativeTime{\r
+                future{\r
+                    one{"{0} çar-den"}\r
+                    other{"{0} çar-den"}\r
+                }\r
+                past{\r
+                    one{"{0} çar. öň"}\r
+                    other{"{0} çar. öň"}\r
+                }\r
+            }\r
+        }\r
+        week{\r
+            dn{"hepde"}\r
+            relative{\r
+                "-1"{"geçen hepde"}\r
+                "0"{"şu hepde"}\r
+                "1"{"indiki hepde"}\r
+            }\r
+            relativePeriod{"{0} hepdesi"}\r
+            relativeTime{\r
+                future{\r
+                    one{"{0} hepdeden"}\r
+                    other{"{0} hepdeden"}\r
+                }\r
+                past{\r
+                    one{"{0} hepde öň"}\r
+                    other{"{0} hepde öň"}\r
+                }\r
+            }\r
+        }\r
+        week-narrow{\r
+            dn{"hep."}\r
+            relativePeriod{"{0} hepdesi"}\r
+            relativeTime{\r
+                future{\r
+                    one{"{0} h-den"}\r
+                    other{"{0} h-den"}\r
+                }\r
+                past{\r
+                    one{"{0} h. öň"}\r
+                    other{"{0} h. öň"}\r
+                }\r
+            }\r
+        }\r
+        week-short{\r
+            dn{"hep."}\r
+            relativePeriod{"{0} hepdesi"}\r
+            relativeTime{\r
+                future{\r
+                    one{"{0} hep-den"}\r
+                    other{"{0} hep-den"}\r
+                }\r
+                past{\r
+                    one{"{0} hep. öň"}\r
+                    other{"{0} hep. öň"}\r
+                }\r
+            }\r
+        }\r
+        weekOfMonth{\r
+            dn{"aýyň hepdesi"}\r
+        }\r
+        weekOfMonth-narrow{\r
+            dn{"hep./aý"}\r
+        }\r
+        weekOfMonth-short{\r
+            dn{"hep./aý"}\r
+        }\r
+        weekday{\r
+            dn{"hepdäniň güni"}\r
+        }\r
+        weekday-narrow{\r
+            dn{"hep. güni"}\r
+        }\r
+        weekday-short{\r
+            dn{"hep. güni"}\r
+        }\r
+        weekdayOfMonth{\r
+            dn{"aýda hepdäň güni"}\r
+        }\r
+        weekdayOfMonth-narrow{\r
+            dn{"aýda hep. güni"}\r
+        }\r
+        weekdayOfMonth-short{\r
+            dn{"aýda hep. güni"}\r
+        }\r
+        year{\r
+            dn{"ýyl"}\r
+            relative{\r
+                "-1"{"geçen ýyl"}\r
+                "0"{"şu ýyl"}\r
+                "1"{"indiki ýyl"}\r
+            }\r
+            relativeTime{\r
+                future{\r
+                    one{"{0} ýyldan"}\r
+                    other{"{0} ýyldan"}\r
+                }\r
+                past{\r
+                    one{"{0} ýyl öň"}\r
+                    other{"{0} ýyl öň"}\r
+                }\r
+            }\r
+        }\r
+        year-narrow{\r
+            dn{"ý."}\r
+            relativeTime{\r
+                future{\r
+                    one{"{0} ý-dan"}\r
+                    other{"{0} ý-dan"}\r
+                }\r
+                past{\r
+                    one{"{0} ý. öň"}\r
+                    other{"{0} ý. öň"}\r
+                }\r
+            }\r
+        }\r
+        year-short{\r
+            dn{"ý."}\r
+            relativeTime{\r
+                future{\r
+                    one{"{0} ý-dan"}\r
+                    other{"{0} ý-dan"}\r
+                }\r
+                past{\r
+                    one{"{0} ý. öň"}\r
+                    other{"{0} ý. öň"}\r
+                }\r
+            }\r
+        }\r
+        zone{\r
+            dn{"sagat guşaklygy"}\r
+        }\r
+        zone-narrow{\r
+            dn{"guşaklyk"}\r
+        }\r
+        zone-short{\r
+            dn{"guşaklyk"}\r
+        }\r
+    }\r
+    listPattern{\r
+        or{\r
+            2{"{0} ýa-da {1}"}\r
+            end{"{0} ýa-da {1}"}\r
+            middle{"{0}, {1}"}\r
+            start{"{0}, {1}"}\r
+        }\r
+        standard{\r
+            2{"{0} we {1}"}\r
+            end{"{0} we {1}"}\r
+            middle{"{0}, {1}"}\r
+            start{"{0}, {1}"}\r
+        }\r
+        standard-short{\r
+            2{"{0} we {1}"}\r
+            end{"{0} we {1}"}\r
+            middle{"{0}, {1}"}\r
+            start{"{0}, {1}"}\r
+        }\r
+        unit{\r
+            2{"{0} we {1}"}\r
+            end{"{0}, {1}"}\r
+            middle{"{0}, {1}"}\r
+            start{"{0}, {1}"}\r
+        }\r
+        unit-narrow{\r
+            2{"{0} {1}"}\r
+            end{"{0} {1}"}\r
+            middle{"{0} {1}"}\r
+            start{"{0} {1}"}\r
+        }\r
+        unit-short{\r
+            2{"{0}, {1}"}\r
+            end{"{0}, {1}"}\r
+            middle{"{0}, {1}"}\r
+            start{"{0}, {1}"}\r
+        }\r
+    }\r
+    measurementSystemNames{\r
+        UK{"Birleşen Patyşalyk"}\r
+        US{"ABŞ"}\r
+        metric{"Metrik"}\r
+    }\r
+    parse{\r
+        date{\r
+            lenient{\r
+                "[\\--/]",\r
+                "[\\:∶]",\r
+            }\r
+        }\r
+        general{\r
+            lenient{\r
+                "[.․。︒﹒.。]",\r
+                "['ʼ՚᾽᾿’']",\r
+                "[%٪﹪%]",\r
+                "[؉‰]",\r
+                "[\$﹩$$]",\r
+                "[£₤]",\r
+                "[¥¥]",\r
+                "[₩₩]",\r
+                "[₨₹{Rp}{Rs}]",\r
+            }\r
+        }\r
+        number{\r
+            lenient{\r
+                "[\\-‒⁻₋−➖﹣-]",\r
+                "[,،٫、︐︑﹐﹑,、]",\r
+                "[+⁺₊➕﬩﹢+]",\r
+            }\r
+            stricter{\r
+                "[,٫︐﹐,]",\r
+                "[.․﹒.。]",\r
+            }\r
+        }\r
+    }\r
+}\r
similarity index 92%
rename from source/data/locales/ff_SN.txt
rename to source/data/locales/tk_TM.txt
index 041e8ac..8e8dc63 100644 (file)
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
-ff_SN{\r
+tk_TM{\r
     Version{"2.1.38.69"}\r
 }\r
index d4e6174..4c22a7b 100644 (file)
@@ -166,7 +166,7 @@ to{
         minimumGroupingDigits{"1"}\r
         native{"latn"}\r
     }\r
-    Version{"2.1.38.39"}\r
+    Version{"2.1.44.88"}\r
     calendar{\r
         generic{\r
             DateTimePatterns{\r
@@ -1337,4 +1337,19 @@ to{
         US{"fakaʻamelika"}\r
         metric{"fakamita"}\r
     }\r
+    parse{\r
+        general{\r
+            lenient{\r
+                "[.․。︒﹒.。]",\r
+                "['ʼ՚᾽᾿’']",\r
+                "[%٪﹪%]",\r
+                "[؉‰]",\r
+                "[\$﹩$]",\r
+                "[£₤£]",\r
+                "[¥¥]",\r
+                "[₩₩]",\r
+                "[₨₹{Rp}{Rs}]",\r
+            }\r
+        }\r
+    }\r
 }\r
index 46b70ef..d94fbfb 100644 (file)
@@ -25,7 +25,9 @@ tr{
         default{"latn"}\r
         latn{\r
             miscPatterns{\r
+                approximately{"~{0}"}\r
                 atLeast{"{0}+"}\r
+                atMost{"≤{0}"}\r
                 range{"{0}–{1}"}\r
             }\r
             patterns{\r
@@ -216,7 +218,7 @@ tr{
         minimumGroupingDigits{"1"}\r
         native{"latn"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.91"}\r
     calendar{\r
         buddhist{\r
             eras{\r
@@ -2279,8 +2281,13 @@ tr{
         general{\r
             lenient{\r
                 "[.․。︒﹒.。]",\r
+                "['ʼ՚᾽᾿’']",\r
+                "[%٪﹪%]",\r
+                "[؉‰]",\r
                 "[\$﹩$$]",\r
                 "[£₤]",\r
+                "[¥¥]",\r
+                "[₩₩]",\r
                 "[₨₹{Rp}{Rs}]",\r
             }\r
         }\r
index 7313d2e..465dfcd 100644 (file)
@@ -1,6 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 tt{\r
+    AuxExemplarCharacters{"[ғ қ ӯ]"}\r
     ExemplarCharacters{\r
         "[а ә б в г д е ё ж җ з и й к л м н ң о ө п р с т у ү ф х һ ц ч ш щ ъ ы ь э ю"\r
         " я]"\r
@@ -10,6 +11,7 @@ tt{
         " Я]"\r
     }\r
     ExemplarCharactersNumbers{"[  \\- , % ‰ + 0 1 2 3 4 5 6 7 8 9]"}\r
+    ExemplarCharactersPunctuation{"[\\- ‐ – — , ; \\: ! ? . … ' ‘ ’ \u0022 “ ” ( ) \\[ \\] § @ * / \\& # ′ ″]"}\r
     NumberElements{\r
         default{"latn"}\r
         latn{\r
@@ -40,7 +42,7 @@ tt{
         minimumGroupingDigits{"1"}\r
         native{"latn"}\r
     }\r
-    Version{"2.1.38.72"}\r
+    Version{"2.1.44.88"}\r
     calendar{\r
         generic{\r
             DateTimePatterns{\r
@@ -135,7 +137,7 @@ tt{
                 yQQQ{"QQQ, y 'ел'"}\r
                 yQQQQ{"QQQQ, y 'ел'"}\r
                 yw{\r
-                    other{"y 'елның' w 'атнасы'"}\r
+                    other{"Y 'елның' w 'атнасы'"}\r
                 }\r
             }\r
             dayNames{\r
index a632083..921c390 100644 (file)
@@ -142,7 +142,7 @@ ug{
         }\r
         native{"arabext"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.88"}\r
     calendar{\r
         buddhist{\r
             eras{\r
@@ -406,8 +406,8 @@ ug{
                 yQQQ{"y QQQ"}\r
                 yQQQQ{"y QQQQ"}\r
                 yw{\r
-                    one{"y، w-ھەپتە"}\r
-                    other{"y، w-ھەپتە"}\r
+                    one{"Y، w-ھەپتە"}\r
+                    other{"Y، w-ھەپتە"}\r
                 }\r
             }\r
             dayNames{\r
index 3a082e3..6757939 100644 (file)
@@ -22,11 +22,13 @@ uk{
         default{"latn"}\r
         latn{\r
             miscPatterns{\r
+                approximately{"~{0}"}\r
                 atLeast{"{0}+"}\r
+                atMost{"≤{0}"}\r
                 range{"{0}–{1}"}\r
             }\r
             patterns{\r
-                accountingFormat{"#,##0.00¤;(#,##0.00¤)"}\r
+                accountingFormat{"#,##0.00 ¤"}\r
                 currencyFormat{"#,##0.00 ¤"}\r
                 decimalFormat{"#,##0.###"}\r
                 percentFormat{"#,##0%"}\r
@@ -288,7 +290,7 @@ uk{
         minimumGroupingDigits{"1"}\r
         native{"latn"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.65"}\r
     calendar{\r
         buddhist{\r
             eras{\r
@@ -873,7 +875,7 @@ uk{
                         afternoon1{"день"}\r
                         am{"дп"}\r
                         evening1{"вечір"}\r
-                        midnight{"північ"}\r
+                        midnight{"опÑ\96внÑ\96Ñ\87"}\r
                         morning1{"ранок"}\r
                         night1{"ніч"}\r
                         noon{"полудень"}\r
@@ -1463,9 +1465,9 @@ uk{
         female{"жінка"}\r
         flag{"прапор"}\r
         flags{"прапори"}\r
-        food_drink{"Ñ\97жа Ñ\96 напої"}\r
+        food_drink{"Ñ\97жа Ñ\82а напої"}\r
         format{"формат"}\r
-        format_whitespace{"Ñ\84оÑ\80маÑ\82 Ñ\96 Ð¿Ñ\80обÑ\96лÑ\8cний Ð·Ð½Ð°Ðº"}\r
+        format_whitespace{"Ñ\84оÑ\80маÑ\82 Ñ\96 Ð·Ð½Ð°Ðº Ð¿Ñ\80обÑ\96лÑ\83"}\r
         full_width_form_variant{"варіант повної ширини"}\r
         geometric_shapes{"геометрична фігура"}\r
         half_width_form_variant{"варіант половинної ширини"}\r
@@ -1487,7 +1489,7 @@ uk{
         limited_use{"обмеженого вжитку"}\r
         male{"чоловік"}\r
         math_symbols{"математичний символ"}\r
-        middle_eastern_scripts{"пиÑ\81Ñ\8cмо Ð¡ÐµÑ\80еднÑ\8cого Сходу"}\r
+        middle_eastern_scripts{"пиÑ\81Ñ\8cмо Ð\91лизÑ\8cкого Сходу"}\r
         miscellaneous{"некласифікований"}\r
         modern_scripts{"сучасне письмо"}\r
         modifier{"модифікатор"}\r
@@ -1507,7 +1509,7 @@ uk{
         rightwards_arrows{"Стрілки вправо"}\r
         sign_standard_symbols{"знак чи символ"}\r
         small_form_variant{"малі варіанти"}\r
-        smiley{"смалик"}\r
+        smiley{"Ñ\81майлик"}\r
         smileys_people{"смайлик чи людина"}\r
         south_asian_scripts{"південноазійське письмо"}\r
         southeast_asian_scripts{"південно-східне азійське письмо"}\r
@@ -1523,7 +1525,7 @@ uk{
         vocalic_jamo{"Корейські голосні"}\r
         weather{"погода"}\r
         western_asian_scripts{"західноазійське письмо"}\r
-        whitespace{"Ð\9fробіл"}\r
+        whitespace{"пробіл"}\r
     }\r
     contextTransforms{\r
         day-format-except-narrow:intvector{\r
@@ -1587,7 +1589,7 @@ uk{
             }\r
         }\r
         day-narrow{\r
-            dn{"д."}\r
+            dn{"д"}\r
             relative{\r
                 "-1"{"учора"}\r
                 "-2"{"позавчора"}\r
@@ -1641,7 +1643,7 @@ uk{
             dn{"день року"}\r
         }\r
         dayOfYear-short{\r
-            dn{"день року"}\r
+            dn{"д. року"}\r
         }\r
         dayperiod{\r
             dn{"дп/пп"}\r
@@ -1765,7 +1767,7 @@ uk{
             }\r
         }\r
         hour-short{\r
-            dn{"год"}\r
+            dn{"год."}\r
             relative{\r
                 "0"{"цієї години"}\r
             }\r
@@ -1825,7 +1827,7 @@ uk{
             }\r
         }\r
         minute-short{\r
-            dn{"хв"}\r
+            dn{"хв."}\r
             relative{\r
                 "0"{"цієї хвилини"}\r
             }\r
@@ -1930,7 +1932,7 @@ uk{
             }\r
         }\r
         month-narrow{\r
-            dn{"міс."}\r
+            dn{"м"}\r
             relative{\r
                 "-1"{"минулого місяця"}\r
                 "0"{"цього місяця"}\r
@@ -2438,7 +2440,7 @@ uk{
             }\r
         }\r
         week-narrow{\r
-            dn{"тиж."}\r
+            dn{"т"}\r
             relative{\r
                 "-1"{"минулого тижня"}\r
                 "0"{"цього тижня"}\r
@@ -2487,7 +2489,7 @@ uk{
             dn{"тиждень місяця"}\r
         }\r
         weekOfMonth-narrow{\r
-            dn{"тиж. місяця"}\r
+            dn{"тиж. міс."}\r
         }\r
         weekOfMonth-short{\r
             dn{"тиж. місяця"}\r
@@ -2496,19 +2498,19 @@ uk{
             dn{"день тижня"}\r
         }\r
         weekday-narrow{\r
-            dn{"день тижня"}\r
+            dn{"д тижня"}\r
         }\r
         weekday-short{\r
-            dn{"день тижня"}\r
+            dn{"д. тижня"}\r
         }\r
         weekdayOfMonth{\r
             dn{"день місяця"}\r
         }\r
         weekdayOfMonth-narrow{\r
-            dn{"день місяця"}\r
+            dn{"д місяця"}\r
         }\r
         weekdayOfMonth-short{\r
-            dn{"день місяця"}\r
+            dn{"д. місяця"}\r
         }\r
         year{\r
             dn{"рік"}\r
@@ -2533,7 +2535,7 @@ uk{
             }\r
         }\r
         year-narrow{\r
-            dn{"р."}\r
+            dn{"р"}\r
             relative{\r
                 "-1"{"торік"}\r
                 "0"{"цього року"}\r
@@ -2580,10 +2582,10 @@ uk{
             dn{"часовий пояс"}\r
         }\r
         zone-narrow{\r
-            dn{"часовий пояс"}\r
+            dn{"час. п."}\r
         }\r
         zone-short{\r
-            dn{"часовий пояс"}\r
+            dn{"час. пояс"}\r
         }\r
     }\r
     listPattern{\r
@@ -2639,8 +2641,13 @@ uk{
         general{\r
             lenient{\r
                 "[.․。︒﹒.。]",\r
+                "['ʼ՚᾽᾿’']",\r
+                "[%٪﹪%]",\r
+                "[؉‰]",\r
                 "[\$﹩$$]",\r
                 "[£₤]",\r
+                "[¥¥]",\r
+                "[₩₩]",\r
                 "[₨₹{Rp}{Rs}]",\r
             }\r
         }\r
index d3e3e3b..9ef461c 100644 (file)
@@ -49,7 +49,9 @@ ur{
         default{"latn"}\r
         latn{\r
             miscPatterns{\r
-                atLeast{"⩾{0}"}\r
+                approximately{"~{0}"}\r
+                atLeast{"≥{0}"}\r
+                atMost{"≤{0}"}\r
                 range{"{0}–{1}"}\r
             }\r
             patterns{\r
@@ -240,7 +242,7 @@ ur{
         minimumGroupingDigits{"1"}\r
         native{"arabext"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.3"}\r
     calendar{\r
         buddhist{\r
             eras{\r
@@ -1370,7 +1372,7 @@ ur{
     }\r
     characterLabel{\r
         activities{"سرگرمی"}\r
-        african_scripts{"افریقی سکرپٹس"}\r
+        african_scripts{"اÙ\81رÛ\8cÙ\82Û\8c Ø§Ø³Ú©Ø±Ù¾Ù¹Ø³"}\r
         american_scripts{"امریکی سکرپٹس"}\r
         animal{"جانور"}\r
         animals_nature{"حیوانات و فطرت"}\r
@@ -1445,7 +1447,7 @@ ur{
         spacing{"فاصلہ بندی"}\r
         sport{"کھیل"}\r
         symbols{"علامات"}\r
-        technical_symbols{"تکنکی علامات"}\r
+        technical_symbols{"تکنیکی علامات"}\r
         tone_marks{"ٹون مارکس"}\r
         travel{"سفر"}\r
         travel_places{"سفر اور مقامات"}\r
@@ -1621,7 +1623,7 @@ ur{
             dn{"گھنٹہ"}\r
             relativeTime{\r
                 future{\r
-                    one{"{0} Ú¯Ú¾Ù\86Ù¹Û\81 میں"}\r
+                    one{"{0} Ú¯Ú¾Ù\86Ù¹Û\92 میں"}\r
                     other{"{0} گھنٹوں میں"}\r
                 }\r
                 past{\r
@@ -2330,8 +2332,13 @@ ur{
         general{\r
             lenient{\r
                 "[.․。︒﹒.。]",\r
+                "['ʼ՚᾽᾿’']",\r
+                "[%٪﹪%]",\r
+                "[؉‰]",\r
                 "[\$﹩$$]",\r
                 "[£₤]",\r
+                "[¥¥]",\r
+                "[₩₩]",\r
                 "[₨₹{Rp}{Rs}]",\r
             }\r
         }\r
index 49363b1..96d9d7b 100644 (file)
@@ -14,7 +14,7 @@ ur_IN{
             }\r
         }\r
     }\r
-    Version{"2.1.38.39"}\r
+    Version{"2.1.43.65"}\r
     fields{\r
         day-narrow{\r
             relativeTime{\r
index 54ccce1..025933b 100644 (file)
@@ -43,7 +43,9 @@ uz{
         default{"latn"}\r
         latn{\r
             miscPatterns{\r
-                atLeast{"⩾{0}"}\r
+                approximately{"~{0}"}\r
+                atLeast{"≥{0}"}\r
+                atMost{"≤{0}"}\r
                 range{"{0}–{1}"}\r
             }\r
             patterns{\r
@@ -233,7 +235,7 @@ uz{
         minimumGroupingDigits{"1"}\r
         native{"latn"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.88"}\r
     calendar{\r
         generic{\r
             DateTimePatterns{\r
@@ -439,8 +441,8 @@ uz{
                 yQQQ{"y, QQQ"}\r
                 yQQQQ{"y, QQQQ"}\r
                 yw{\r
-                    one{"y, w-'hafta'"}\r
-                    other{"y, w-'hafta'"}\r
+                    one{"Y, w-'hafta'"}\r
+                    other{"Y, w-'hafta'"}\r
                 }\r
             }\r
             dayNames{\r
index 76ddae0..47385f2 100644 (file)
@@ -165,7 +165,7 @@ uz_Cyrl{
             }\r
         }\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.2"}\r
     calendar{\r
         generic{\r
             DateTimePatterns{\r
@@ -303,6 +303,11 @@ uz_Cyrl{
                 Timezone{"{0} {1}"}\r
             }\r
             availableFormats{\r
+                Bh{"B h"}\r
+                Bhm{"B h:mm"}\r
+                Bhms{"B h:mm:ss"}\r
+                EBhm{"E, B h:mm"}\r
+                EBhms{"E, B h:mm:ss"}\r
                 EHm{"E, HH:mm"}\r
                 EHms{"E, HH:mm:ss"}\r
                 Ed{"d, E"}\r
@@ -371,13 +376,13 @@ uz_Cyrl{
                         "Ш",\r
                     }\r
                     short{\r
-                        "Як",\r
-                        "Ð\94у",\r
-                        "Се",\r
-                        "Чо",\r
-                        "Ð\9fа",\r
-                        "Ð\96у",\r
-                        "Ша",\r
+                        "як",\r
+                        "ду",\r
+                        "се",\r
+                        "чо",\r
+                        "па",\r
+                        "Ðу",\r
+                        "ша",\r
                     }\r
                     wide{\r
                         "якшанба",\r
@@ -391,13 +396,13 @@ uz_Cyrl{
                 }\r
                 stand-alone{\r
                     abbreviated{\r
-                        "Якш",\r
-                        "Ð\94уш",\r
-                        "Сеш",\r
-                        "Чор",\r
-                        "Ð\9fай",\r
-                        "Ð\96ум",\r
-                        "Шан",\r
+                        "якш",\r
+                        "душ",\r
+                        "сеш",\r
+                        "чор",\r
+                        "пай",\r
+                        "Ðум",\r
+                        "шан",\r
                     }\r
                     narrow{\r
                         "Я",\r
@@ -409,22 +414,22 @@ uz_Cyrl{
                         "Ш",\r
                     }\r
                     short{\r
-                        "Як",\r
-                        "Ð\94у",\r
-                        "Се",\r
-                        "Чо",\r
-                        "Ð\9fа",\r
-                        "Ð\96у",\r
-                        "Ша",\r
+                        "як",\r
+                        "ду",\r
+                        "се",\r
+                        "чо",\r
+                        "па",\r
+                        "Ðу",\r
+                        "ша",\r
                     }\r
                     wide{\r
-                        "Якшанба",\r
-                        "Ð\94ушанба",\r
-                        "Сешанба",\r
-                        "Чоршанба",\r
-                        "Ð\9fайшанба",\r
-                        "Ð\96ума",\r
-                        "Шанба",\r
+                        "якшанба",\r
+                        "душанба",\r
+                        "сешанба",\r
+                        "чоршанба",\r
+                        "пайшанба",\r
+                        "Ðума",\r
+                        "шанба",\r
                     }\r
                 }\r
             }\r
@@ -495,7 +500,7 @@ uz_Cyrl{
                 }\r
                 abbreviated%variant{\r
                     "э.а.",\r
-                    "CE",\r
+                    "эрамиз",\r
                 }\r
                 wide{\r
                     "милоддан аввалги",\r
@@ -503,7 +508,7 @@ uz_Cyrl{
                 }\r
                 wide%variant{\r
                     "эрамиздан аввалги",\r
-                    "CE",\r
+                    "эрамиз",\r
                 }\r
             }\r
             intervalFormats{\r
@@ -648,18 +653,18 @@ uz_Cyrl{
                 }\r
                 stand-alone{\r
                     abbreviated{\r
-                        "Янв",\r
-                        "Фев",\r
-                        "Ð\9cар",\r
-                        "Ð\90пр",\r
-                        "Ð\9cай",\r
-                        "Ð\98юн",\r
-                        "Ð\98юл",\r
-                        "Ð\90вг",\r
-                        "Сен",\r
-                        "Ð\9eкт",\r
-                        "Ð\9dоя",\r
-                        "Ð\94ек",\r
+                        "янв",\r
+                        "фев",\r
+                        "мар",\r
+                        "апр",\r
+                        "май",\r
+                        "июн",\r
+                        "июл",\r
+                        "авг",\r
+                        "сен",\r
+                        "окт",\r
+                        "ноя",\r
+                        "дек",\r
                     }\r
                     narrow{\r
                         "Я",\r
@@ -676,18 +681,18 @@ uz_Cyrl{
                         "Д",\r
                     }\r
                     wide{\r
-                        "Январ",\r
-                        "Феврал",\r
-                        "Ð\9cарт",\r
-                        "Ð\90прел",\r
-                        "Ð\9cай",\r
-                        "Ð\98юн",\r
-                        "Ð\98юл",\r
-                        "Ð\90вгуст",\r
-                        "Сентябр",\r
-                        "Ð\9eктябр",\r
-                        "Ð\9dоябр",\r
-                        "Ð\94екабр",\r
+                        "январ",\r
+                        "феврал",\r
+                        "март",\r
+                        "апрел",\r
+                        "май",\r
+                        "июн",\r
+                        "июл",\r
+                        "август",\r
+                        "сентябр",\r
+                        "октябр",\r
+                        "ноябр",\r
+                        "декабр",\r
                     }\r
                 }\r
             }\r
index f146c3e..ee87fd3 100644 (file)
@@ -26,7 +26,9 @@ vi{
         default{"latn"}\r
         latn{\r
             miscPatterns{\r
+                approximately{"~{0}"}\r
                 atLeast{"{0}+"}\r
+                atMost{"≤{0}"}\r
                 range{"{0}-{1}"}\r
             }\r
             patterns{\r
@@ -182,7 +184,7 @@ vi{
         minimumGroupingDigits{"1"}\r
         native{"latn"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.65"}\r
     calendar{\r
         buddhist{\r
             DateTimePatterns{\r
@@ -683,7 +685,7 @@ vi{
                 GyMMM{"MMM y G"}\r
                 GyMMMEd{"E, d MMM, y G"}\r
                 GyMMMd{"d MMM, y G"}\r
-                H{"HH'h'"}\r
+                H{"HH"}\r
                 Hm{"HH:mm"}\r
                 Hms{"HH:mm:ss"}\r
                 M{"L"}\r
@@ -696,7 +698,7 @@ vi{
                 MMdd{"dd-MM"}\r
                 Md{"dd/M"}\r
                 d{"'Ngày' dd"}\r
-                h{"h'h' a"}\r
+                h{"h a"}\r
                 hm{"h:mm a"}\r
                 hms{"h:mm:ss a"}\r
                 ms{"mm:ss"}\r
@@ -2407,8 +2409,13 @@ vi{
         general{\r
             lenient{\r
                 "[.․。︒﹒.。]",\r
+                "['ʼ՚᾽᾿’']",\r
+                "[%٪﹪%]",\r
+                "[؉‰]",\r
                 "[\$﹩$$]",\r
                 "[£₤]",\r
+                "[¥¥]",\r
+                "[₩₩]",\r
                 "[₨₹{Rp}{Rs}]",\r
             }\r
         }\r
index 56c4412..4948cbf 100644 (file)
@@ -9,7 +9,7 @@ wo{
         default{"latn"}\r
         latn{\r
             miscPatterns{\r
-                atLeast{"⩾{0}"}\r
+                atLeast{"â\89¥{0}"}\r
                 range{"{0}–{1}"}\r
             }\r
             patterns{\r
@@ -35,7 +35,7 @@ wo{
         minimumGroupingDigits{"1"}\r
         native{"latn"}\r
     }\r
-    Version{"2.1.38.71"}\r
+    Version{"2.1.43.94"}\r
     calendar{\r
         generic{\r
             DateTimePatterns{\r
diff --git a/source/data/locales/xh.txt b/source/data/locales/xh.txt
new file mode 100644 (file)
index 0000000..d18a46c
--- /dev/null
@@ -0,0 +1,402 @@
+// © 2016 and later: Unicode, Inc. and others.\r
+// License & terms of use: http://www.unicode.org/copyright.html#License\r
+xh{\r
+    ExemplarCharacters{"[a b c d e f g h i j k l m n o p q r s t u v w x y z]"}\r
+    ExemplarCharactersIndex{"[A B C D E F G H I J K L M N O P Q R S T U V W X Y Z]"}\r
+    NumberElements{\r
+        latn{\r
+            patterns{\r
+                currencyFormat{"¤#,##0.00"}\r
+                decimalFormat{"#,##0.###"}\r
+                percentFormat{"#,##0%"}\r
+                scientificFormat{"#E0"}\r
+            }\r
+            symbols{\r
+                decimal{"."}\r
+                group{" "}\r
+                minusSign{"-"}\r
+                percentSign{"%"}\r
+                plusSign{"+"}\r
+            }\r
+        }\r
+    }\r
+    Version{"2.1.44.88"}\r
+    calendar{\r
+        gregorian{\r
+            AmPmMarkers{\r
+                "AM",\r
+                "PM",\r
+            }\r
+            DateTimePatterns{\r
+                "HH:mm:ss zzzz",\r
+                "HH:mm:ss z",\r
+                "HH:mm:ss",\r
+                "HH:mm",\r
+                "y MMMM d, EEEE",\r
+                "y MMMM d",\r
+                "y MMM d",\r
+                "y-MM-dd",\r
+                "{1} {0}",\r
+                "{1} {0}",\r
+                "{1} {0}",\r
+                "{1} {0}",\r
+                "{1} {0}",\r
+            }\r
+            appendItems{\r
+                Timezone{"{0} {1}"}\r
+            }\r
+            availableFormats{\r
+                E{"ccc"}\r
+                EHm{"E HH:mm"}\r
+                EHms{"E HH:mm:ss"}\r
+                Ed{"d, E"}\r
+                Ehm{"E h:mm a"}\r
+                Ehms{"E h:mm:ss a"}\r
+                Gy{"G y"}\r
+                GyMMM{"G y MMM"}\r
+                GyMMMEd{"G y MMM d, E"}\r
+                GyMMMd{"G y MMM d"}\r
+                H{"HH"}\r
+                Hm{"HH:mm"}\r
+                Hms{"HH:mm:ss"}\r
+                Hmsv{"HH:mm:ss v"}\r
+                Hmv{"HH:mm v"}\r
+                M{"L"}\r
+                MEd{"MM-dd, E"}\r
+                MMM{"LLL"}\r
+                MMMEd{"MMM d, E"}\r
+                MMMMW{\r
+                    one{"'week' W 'of' MMM"}\r
+                    other{"'week' W 'of' MMM"}\r
+                }\r
+                MMMMd{"MMMM d"}\r
+                MMMd{"MMM d"}\r
+                Md{"MM-dd"}\r
+                d{"d"}\r
+                h{"h a"}\r
+                hm{"h:mm a"}\r
+                hms{"h:mm:ss a"}\r
+                hmsv{"h:mm:ss a v"}\r
+                hmv{"h:mm a v"}\r
+                ms{"mm:ss"}\r
+                y{"y"}\r
+                yM{"y-MM"}\r
+                yMEd{"y-MM-dd, E"}\r
+                yMMM{"y MMM"}\r
+                yMMMEd{"y MMM d, E"}\r
+                yMMMM{"y MMMM"}\r
+                yMMMd{"y MMM d"}\r
+                yMd{"y-MM-dd"}\r
+                yQQQ{"y QQQ"}\r
+                yQQQQ{"y QQQQ"}\r
+                yw{\r
+                    one{"'week' w 'of' Y"}\r
+                    other{"'week' w 'of' Y"}\r
+                }\r
+            }\r
+            dayNames{\r
+                format{\r
+                    abbreviated{\r
+                        "Caw",\r
+                        "Mvu",\r
+                        "Bin",\r
+                        "Tha",\r
+                        "Sin",\r
+                        "Hla",\r
+                        "Mgq",\r
+                    }\r
+                    narrow{\r
+                        "S",\r
+                        "M",\r
+                        "T",\r
+                        "W",\r
+                        "T",\r
+                        "F",\r
+                        "S",\r
+                    }\r
+                    wide{\r
+                        "Cawe",\r
+                        "Mvulo",\r
+                        "Lwesibini",\r
+                        "Lwesithathu",\r
+                        "Lwesine",\r
+                        "Lwesihlanu",\r
+                        "Mgqibelo",\r
+                    }\r
+                }\r
+                stand-alone{\r
+                    abbreviated{\r
+                        "Caw",\r
+                        "Mvu",\r
+                        "Bin",\r
+                        "Tha",\r
+                        "Sin",\r
+                        "Hla",\r
+                        "Mgq",\r
+                    }\r
+                    narrow{\r
+                        "S",\r
+                        "M",\r
+                        "T",\r
+                        "W",\r
+                        "T",\r
+                        "F",\r
+                        "S",\r
+                    }\r
+                    wide{\r
+                        "Cawe",\r
+                        "Mvulo",\r
+                        "Lwesibini",\r
+                        "Lwesithathu",\r
+                        "Lwesine",\r
+                        "Lwesihlanu",\r
+                        "Mgqibelo",\r
+                    }\r
+                }\r
+            }\r
+            eras{\r
+                abbreviated{\r
+                    "BC",\r
+                    "AD",\r
+                }\r
+                abbreviated%variant{\r
+                    "BCE",\r
+                    "CE",\r
+                }\r
+            }\r
+            intervalFormats{\r
+                H{\r
+                    H{"HH–HH"}\r
+                }\r
+                Hm{\r
+                    H{"HH:mm–HH:mm"}\r
+                    m{"HH:mm–HH:mm"}\r
+                }\r
+                Hmv{\r
+                    H{"HH:mm–HH:mm v"}\r
+                    m{"HH:mm–HH:mm v"}\r
+                }\r
+                Hv{\r
+                    H{"HH–HH v"}\r
+                }\r
+                M{\r
+                    M{"MM–MM"}\r
+                }\r
+                MEd{\r
+                    M{"MM-dd, E – MM-dd, E"}\r
+                    d{"MM-dd, E – MM-dd, E"}\r
+                }\r
+                MMM{\r
+                    M{"LLL–LLL"}\r
+                }\r
+                MMMEd{\r
+                    M{"MMM d, E – MMM d, E"}\r
+                    d{"MMM d, E – MMM d, E"}\r
+                }\r
+                MMMd{\r
+                    M{"MMM d – MMM d"}\r
+                    d{"MMM d–d"}\r
+                }\r
+                Md{\r
+                    M{"MM-dd – MM-dd"}\r
+                    d{"MM-dd – MM-dd"}\r
+                }\r
+                d{\r
+                    d{"d–d"}\r
+                }\r
+                fallback{"{0} – {1}"}\r
+                h{\r
+                    a{"h a – h a"}\r
+                    h{"h–h a"}\r
+                }\r
+                hm{\r
+                    a{"h:mm a – h:mm a"}\r
+                    h{"h:mm–h:mm a"}\r
+                    m{"h:mm–h:mm a"}\r
+                }\r
+                hmv{\r
+                    a{"h:mm a – h:mm a v"}\r
+                    h{"h:mm–h:mm a v"}\r
+                    m{"h:mm–h:mm a v"}\r
+                }\r
+                hv{\r
+                    a{"h a – h a v"}\r
+                    h{"h–h a v"}\r
+                }\r
+                y{\r
+                    y{"y–y"}\r
+                }\r
+                yM{\r
+                    M{"y-MM – y-MM"}\r
+                    y{"y-MM – y-MM"}\r
+                }\r
+                yMEd{\r
+                    M{"y-MM-dd, E – y-MM-dd, E"}\r
+                    d{"y-MM-dd, E – y-MM-dd, E"}\r
+                    y{"y-MM-dd, E – y-MM-dd, E"}\r
+                }\r
+                yMMM{\r
+                    M{"y MMM–MMM"}\r
+                    y{"y MMM – y MMM"}\r
+                }\r
+                yMMMEd{\r
+                    M{"y MMM d, E – MMM d, E"}\r
+                    d{"y MMM d, E – MMM d, E"}\r
+                    y{"y MMM d, E – y MMM d, E"}\r
+                }\r
+                yMMMM{\r
+                    M{"y MMMM–MMMM"}\r
+                    y{"y MMMM – y MMMM"}\r
+                }\r
+                yMMMd{\r
+                    M{"y MMM d – MMM d"}\r
+                    d{"y MMM d–d"}\r
+                    y{"y MMM d – y MMM d"}\r
+                }\r
+                yMd{\r
+                    M{"y-MM-dd – y-MM-dd"}\r
+                    d{"y-MM-dd – y-MM-dd"}\r
+                    y{"y-MM-dd – y-MM-dd"}\r
+                }\r
+            }\r
+            monthNames{\r
+                format{\r
+                    abbreviated{\r
+                        "Jan",\r
+                        "Feb",\r
+                        "Mat",\r
+                        "Epr",\r
+                        "Mey",\r
+                        "Jun",\r
+                        "Jul",\r
+                        "Aga",\r
+                        "Sep",\r
+                        "Okt",\r
+                        "Nov",\r
+                        "Dis",\r
+                    }\r
+                    narrow{\r
+                        "1",\r
+                        "2",\r
+                        "3",\r
+                        "4",\r
+                        "5",\r
+                        "6",\r
+                        "7",\r
+                        "8",\r
+                        "9",\r
+                        "10",\r
+                        "11",\r
+                        "12",\r
+                    }\r
+                    wide{\r
+                        "Janyuwari",\r
+                        "Februwari",\r
+                        "Matshi",\r
+                        "Epreli",\r
+                        "Meyi",\r
+                        "Juni",\r
+                        "Julayi",\r
+                        "Agasti",\r
+                        "Septemba",\r
+                        "Okthoba",\r
+                        "Novemba",\r
+                        "Disemba",\r
+                    }\r
+                }\r
+                stand-alone{\r
+                    abbreviated{\r
+                        "Jan",\r
+                        "Feb",\r
+                        "Mat",\r
+                        "Epr",\r
+                        "Mey",\r
+                        "Jun",\r
+                        "Jul",\r
+                        "Aga",\r
+                        "Sep",\r
+                        "Okt",\r
+                        "Nov",\r
+                        "Dis",\r
+                    }\r
+                    narrow{\r
+                        "1",\r
+                        "2",\r
+                        "3",\r
+                        "4",\r
+                        "5",\r
+                        "6",\r
+                        "7",\r
+                        "8",\r
+                        "9",\r
+                        "10",\r
+                        "11",\r
+                        "12",\r
+                    }\r
+                    wide{\r
+                        "Janyuwari",\r
+                        "Februwari",\r
+                        "Matshi",\r
+                        "Epreli",\r
+                        "Meyi",\r
+                        "Juni",\r
+                        "Julayi",\r
+                        "Agasti",\r
+                        "Septemba",\r
+                        "Okthoba",\r
+                        "Novemba",\r
+                        "Disemba",\r
+                    }\r
+                }\r
+            }\r
+            quarters{\r
+                format{\r
+                    abbreviated{\r
+                        "Q1",\r
+                        "Q2",\r
+                        "Q3",\r
+                        "Q4",\r
+                    }\r
+                    narrow{\r
+                        "1",\r
+                        "2",\r
+                        "3",\r
+                        "4",\r
+                    }\r
+                    wide{\r
+                        "1 unyangantathu",\r
+                        "2 unyangantathu",\r
+                        "3 unyangantathu",\r
+                        "4 unyangantathu",\r
+                    }\r
+                }\r
+                stand-alone{\r
+                    abbreviated{\r
+                        "Q1",\r
+                        "Q2",\r
+                        "Q3",\r
+                        "Q4",\r
+                    }\r
+                    narrow{\r
+                        "1",\r
+                        "2",\r
+                        "3",\r
+                        "4",\r
+                    }\r
+                    wide{\r
+                        "1 unyangantathu",\r
+                        "2 unyangantathu",\r
+                        "3 unyangantathu",\r
+                        "4 unyangantathu",\r
+                    }\r
+                }\r
+            }\r
+        }\r
+    }\r
+    delimiters{\r
+        alternateQuotationEnd{"”"}\r
+        alternateQuotationStart{"“"}\r
+        quotationEnd{"’"}\r
+        quotationStart{"‘"}\r
+    }\r
+}\r
diff --git a/source/data/locales/xh_ZA.txt b/source/data/locales/xh_ZA.txt
new file mode 100644 (file)
index 0000000..f6d67ea
--- /dev/null
@@ -0,0 +1,5 @@
+// © 2016 and later: Unicode, Inc. and others.\r
+// License & terms of use: http://www.unicode.org/copyright.html#License\r
+xh_ZA{\r
+    Version{"2.1.44.82"}\r
+}\r
index 4a22cd3..98c989b 100644 (file)
@@ -11,7 +11,7 @@ yo{
     NumberElements{\r
         latn{\r
             miscPatterns{\r
-                atLeast{"⩾{0}"}\r
+                atLeast{"â\89¥{0}"}\r
                 range{"{0}–{1}"}\r
             }\r
             patterns{\r
@@ -36,7 +36,7 @@ yo{
         }\r
         minimumGroupingDigits{"1"}\r
     }\r
-    Version{"2.1.39.11"}\r
+    Version{"2.1.44.88"}\r
     calendar{\r
         generic{\r
             DateTimePatterns{\r
@@ -154,7 +154,7 @@ yo{
                 yQQQ{"QQQ y"}\r
                 yQQQQ{"QQQQ y"}\r
                 yw{\r
-                    other{"'week' w 'of' y"}\r
+                    other{"'week' w 'of' Y"}\r
                 }\r
             }\r
             dayNames{\r
index 52d9286..af2ad68 100644 (file)
@@ -5,7 +5,7 @@ yo_BJ{
         "[a á à b d e é è ɛ {ɛ\u0301} {ɛ\u0300} f g {gb} h i í ì j k l m n o ó ò ɔ {ɔ"\r
         "\u0301} {ɔ\u0300} p r s {sh} t u ú ù w y]"\r
     }\r
-    Version{"2.1.39.11"}\r
+    Version{"2.1.44.53"}\r
     calendar{\r
         gregorian{\r
             AmPmMarkers{\r
index 0164e35..77cfbd0 100644 (file)
@@ -105,7 +105,9 @@ yue{
         }\r
         latn{\r
             miscPatterns{\r
+                approximately{"~{0}"}\r
                 atLeast{"{0}+"}\r
+                atMost{"≤{0}"}\r
                 range{"{0}-{1}"}\r
             }\r
             patterns{\r
@@ -118,7 +120,7 @@ yue{
             patternsLong{\r
                 decimalFormat{\r
                     1000{\r
-                        other{"0"}\r
+                        other{"0"}\r
                     }\r
                     10000{\r
                         other{"0萬"}\r
@@ -158,7 +160,7 @@ yue{
             patternsShort{\r
                 currencyFormat{\r
                     1000{\r
-                        other{"¤0千"}\r
+                        other{"0"}\r
                     }\r
                     10000{\r
                         other{"¤0萬"}\r
@@ -196,7 +198,7 @@ yue{
                 }\r
                 decimalFormat{\r
                     1000{\r
-                        other{"0"}\r
+                        other{"0"}\r
                     }\r
                     10000{\r
                         other{"0萬"}\r
@@ -260,7 +262,7 @@ yue{
         native{"hanidec"}\r
         traditional{"hant"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.91"}\r
     calendar{\r
         buddhist{\r
             DateTimePatterns{\r
@@ -2394,6 +2396,7 @@ yue{
                     "大正",\r
                     "昭和",\r
                     "平成",\r
+                    "Qqqq",\r
                 }\r
             }\r
         }\r
index 8f0e488..87f5153 100644 (file)
@@ -103,7 +103,9 @@ yue_Hans{
         }\r
         latn{\r
             miscPatterns{\r
+                approximately{"~{0}"}\r
                 atLeast{"{0}+"}\r
+                atMost{"≤{0}"}\r
                 range{"{0}-{1}"}\r
             }\r
             patterns{\r
@@ -258,7 +260,7 @@ yue_Hans{
         native{"hanidec"}\r
         traditional{"hans"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.91"}\r
     calendar{\r
         buddhist{\r
             DateTimePatterns{\r
@@ -2392,6 +2394,7 @@ yue_Hans{
                     "大正",\r
                     "昭和",\r
                     "平成",\r
+                    "Qqqq",\r
                 }\r
             }\r
         }\r
index 9047f58..ec360fb 100644 (file)
@@ -7,7 +7,7 @@ zgh{
     NumberElements{\r
         latn{\r
             miscPatterns{\r
-                atLeast{"⩾{0}"}\r
+                atLeast{"â\89¥{0}"}\r
                 range{"{0}–{1}"}\r
             }\r
             patterns{\r
@@ -32,7 +32,7 @@ zgh{
         }\r
         minimumGroupingDigits{"1"}\r
     }\r
-    Version{"2.1.39.11"}\r
+    Version{"2.1.43.94"}\r
     calendar{\r
         generic{\r
             DateTimePatterns{\r
index 207f064..a3d8d26 100644 (file)
@@ -384,7 +384,9 @@ zh{
         }\r
         latn{\r
             miscPatterns{\r
+                approximately{"~{0}"}\r
                 atLeast{"{0}+"}\r
+                atMost{"≤{0}"}\r
                 range{"{0}-{1}"}\r
             }\r
             patterns{\r
@@ -825,7 +827,7 @@ zh{
             }\r
         }\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.76"}\r
     calendar{\r
         buddhist{\r
             DateTimePatterns{\r
@@ -3403,6 +3405,7 @@ zh{
                     "大正",\r
                     "昭和",\r
                     "平成",\r
+                    "Qqqq",\r
                 }\r
                 narrow{\r
                     "大化(645–650)",\r
@@ -3641,6 +3644,7 @@ zh{
                     "T",\r
                     "S",\r
                     "H",\r
+                    "Q",\r
                 }\r
                 wide{\r
                     "大化 (645–650)",\r
@@ -3879,6 +3883,7 @@ zh{
                     "大正",\r
                     "昭和",\r
                     "平成",\r
+                    "Qqqq",\r
                 }\r
             }\r
         }\r
@@ -5031,4 +5036,36 @@ zh{
         US{"美制"}\r
         metric{"公制"}\r
     }\r
+    parse{\r
+        date{\r
+            lenient{\r
+                "[\\--/]",\r
+                "[\\:∶]",\r
+            }\r
+        }\r
+        general{\r
+            lenient{\r
+                "[.․。︒﹒.。]",\r
+                "['ʼ՚᾽᾿’']",\r
+                "[%٪﹪%]",\r
+                "[؉‰]",\r
+                "[\$﹩$$]",\r
+                "[£₤]",\r
+                "[¥¥]",\r
+                "[₩₩]",\r
+                "[₨₹{Rp}{Rs}]",\r
+            }\r
+        }\r
+        number{\r
+            lenient{\r
+                "[\\-‒⁻₋−➖﹣-]",\r
+                "[,،٫、︐︑﹐﹑,、]",\r
+                "[+⁺₊➕﬩﹢+]",\r
+            }\r
+            stricter{\r
+                "[,٫︐﹐,]",\r
+                "[.․﹒.。]",\r
+            }\r
+        }\r
+    }\r
 }\r
index 7eb03a7..b888e29 100644 (file)
@@ -625,7 +625,9 @@ zh_Hant{
         }\r
         latn{\r
             miscPatterns{\r
+                approximately{"~{0}"}\r
                 atLeast{"{0}+"}\r
+                atMost{"≤{0}"}\r
                 range{"{0}-{1}"}\r
             }\r
             patterns{\r
@@ -1374,7 +1376,7 @@ zh_Hant{
             }\r
         }\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.91"}\r
     calendar{\r
         buddhist{\r
             DateTimePatterns{\r
@@ -4696,6 +4698,12 @@ zh_Hant{
                     }\r
                 }\r
                 stand-alone{\r
+                    abbreviated{\r
+                        "第1季",\r
+                        "第2季",\r
+                        "第3季",\r
+                        "第4季",\r
+                    }\r
                     narrow{\r
                         "1",\r
                         "2",\r
@@ -5737,6 +5745,7 @@ zh_Hant{
                     "大正",\r
                     "昭和",\r
                     "平成",\r
+                    "Qqqq",\r
                 }\r
                 narrow{\r
                     "大化",\r
@@ -5975,6 +5984,7 @@ zh_Hant{
                     "大正",\r
                     "昭和",\r
                     "平成",\r
+                    "Q",\r
                 }\r
                 wide{\r
                     "大化",\r
@@ -6213,6 +6223,7 @@ zh_Hant{
                     "大正",\r
                     "昭和",\r
                     "平成",\r
+                    "Qqqq",\r
                 }\r
             }\r
             intervalFormats{\r
index ed7a37e..fd17bcc 100644 (file)
@@ -11,6 +11,16 @@ zh_Hant_HK{
     }\r
     NumberElements{\r
         latn{\r
+            patternsLong{\r
+                decimalFormat{\r
+                    10000{\r
+                        other{"0萬"}\r
+                    }\r
+                    100000{\r
+                        other{"00萬"}\r
+                    }\r
+                }\r
+            }\r
             patternsShort{\r
                 currencyFormat{\r
                     1000{\r
@@ -91,7 +101,7 @@ zh_Hant_HK{
             }\r
         }\r
     }\r
-    Version{"2.1.39.11"}\r
+    Version{"2.1.43.65"}\r
     calendar{\r
         buddhist{\r
             availableFormats{\r
@@ -336,7 +346,6 @@ zh_Hant_HK{
                         evening1{"晚上"}\r
                         midnight{"午夜"}\r
                         morning1{"早上"}\r
-                        morning2{"上午"}\r
                         night1{"凌晨"}\r
                     }\r
                     narrow{\r
@@ -345,7 +354,6 @@ zh_Hant_HK{
                         evening1{"晚上"}\r
                         midnight{"午夜"}\r
                         morning1{"早上"}\r
-                        morning2{"上午"}\r
                         night1{"凌晨"}\r
                     }\r
                     wide{\r
@@ -354,7 +362,6 @@ zh_Hant_HK{
                         evening1{"晚上"}\r
                         midnight{"午夜"}\r
                         morning1{"早上"}\r
-                        morning2{"上午"}\r
                         night1{"凌晨"}\r
                     }\r
                 }\r
@@ -364,7 +371,6 @@ zh_Hant_HK{
                         afternoon2{"下午"}\r
                         evening1{"晚上"}\r
                         morning1{"早上"}\r
-                        morning2{"上午"}\r
                         night1{"凌晨"}\r
                     }\r
                     narrow{\r
@@ -372,7 +378,6 @@ zh_Hant_HK{
                         afternoon2{"下午"}\r
                         evening1{"晚上"}\r
                         morning1{"早上"}\r
-                        morning2{"上午"}\r
                         night1{"凌晨"}\r
                     }\r
                     wide{\r
@@ -380,7 +385,6 @@ zh_Hant_HK{
                         afternoon2{"下午"}\r
                         evening1{"晚上"}\r
                         morning1{"早上"}\r
-                        morning2{"上午"}\r
                         night1{"凌晨"}\r
                     }\r
                 }\r
index 43c2f1f..953afbf 100644 (file)
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 zh_Hant_MO{\r
     %%Parent{"zh_Hant_HK"}\r
-    Version{"2.1.38.39"}\r
+    Version{"2.1.43.65"}\r
 }\r
index 233d44e..c6b1f2b 100644 (file)
@@ -20,12 +20,15 @@ zu{
         " y z]"\r
     }\r
     ExemplarCharactersNumbers{"[\\- , . % ‰ + 0 1 2 3 4 5 6 7 8 9]"}\r
+    ExemplarCharactersPunctuation{"[\\- , ; \\: ! ? . ( ) \\[ \\] \\{ \\}]"}\r
     MoreInformation{"?"}\r
     NumberElements{\r
         default{"latn"}\r
         latn{\r
             miscPatterns{\r
+                approximately{"~{0}"}\r
                 atLeast{"{0}+"}\r
+                atMost{"≤{0}"}\r
                 range{"{0}–{1}"}\r
             }\r
             patterns{\r
@@ -216,7 +219,7 @@ zu{
         minimumGroupingDigits{"1"}\r
         native{"latn"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.65"}\r
     calendar{\r
         generic{\r
             DateTimePatterns{\r
@@ -962,6 +965,11 @@ zu{
         }\r
         day-narrow{\r
             dn{"Usuku"}\r
+            relative{\r
+                "-1"{"izolo"}\r
+                "0"{"namhlanje"}\r
+                "1"{"kusasa"}\r
+            }\r
             relativeTime{\r
                 future{\r
                     one{"osukwini olungu-{0} oluzayo"}\r
@@ -975,6 +983,11 @@ zu{
         }\r
         day-short{\r
             dn{"Usuku"}\r
+            relative{\r
+                "-1"{"izolo"}\r
+                "0"{"namhlanje"}\r
+                "1"{"kusasa"}\r
+            }\r
             relativeTime{\r
                 future{\r
                     one{"osukwini olungu-{0} oluzayo"}\r
@@ -1765,8 +1778,13 @@ zu{
         general{\r
             lenient{\r
                 "[.․。︒﹒.。]",\r
+                "['ʼ՚᾽᾿’']",\r
+                "[%٪﹪%]",\r
+                "[؉‰]",\r
                 "[\$﹩$$]",\r
                 "[£₤]",\r
+                "[¥¥]",\r
+                "[₩₩]",\r
                 "[₨₹{Rp}{Rs}]",\r
             }\r
         }\r
index 6e7e768..f4d945d 100644 (file)
 \r
 ##############################################################################\r
 # Keep the following in sync with the version - see common/unicode/uvernum.h\r
-U_ICUDATA_NAME=icudt62\r
+U_ICUDATA_NAME=icudt63\r
 ##############################################################################\r
 !IF "$(UWP)" == "UWP"\r
 # Optionally change the name of the data file for the UWP version.\r
-U_ICUDATA_NAME=icudt62\r
+U_ICUDATA_NAME=icudt63\r
 !ENDIF\r
 U_ICUDATA_ENDIAN_SUFFIX=l\r
 UNICODE_VERSION=11.0\r
@@ -33,6 +33,14 @@ ICU_LIB_TARGET=$(DLL_OUTPUT)\$(U_ICUDATA_NAME).dll
 !ENDIF\r
 !MESSAGE ICU data make path is $(ICUMAKE)\r
 \r
+!IF [py -3]!=0\r
+!MESSAGE Information: Unable to find Python 3. ICU versions 64 and later will require Python 3 to build.\r
+!MESSAGE Information: See ICU-10923 for more information: https://unicode-org.atlassian.net/browse/ICU-10923\r
+!ELSE\r
+!MESSAGE Information: Found Python 3. You are all set for ICU 64, which will require Python 3 to build.\r
+!MESSAGE Information: For more info on Python 3 requirement, see: https://unicode-org.atlassian.net/browse/ICU-10923\r
+!ENDIF\r
+\r
 # Suffixes for data files\r
 .SUFFIXES : .nrm .icu .ucm .cnv .dll .dat .res .txt .c\r
 \r
index e26b35b..a96e68c 100644 (file)
@@ -6,7 +6,7 @@
 // Corporation and others.  All Rights Reserved.\r
 //---------------------------------------------------------\r
 // Build tool: com.ibm.icu.dev.tool.currency.NumericCodeData\r
-// Build date: 2018-06-06T22:39:58Z\r
+// Build date: 2018-09-17T17:52:05Z\r
 //---------------------------------------------------------\r
 // >> !!! >>   THIS IS A MACHINE-GENERATED FILE   << !!! <<\r
 // >> !!! >>>            DO NOT EDIT             <<< !!! <<\r
@@ -270,9 +270,11 @@ currencyNumericCodes:table(nofallback){
         UYN:int{858}\r
         UYP:int{858}\r
         UYU:int{858}\r
+        UYW:int{927}\r
         UZS:int{860}\r
         VEB:int{862}\r
         VEF:int{937}\r
+        VES:int{928}\r
         VNC:int{704}\r
         VND:int{704}\r
         VUV:int{548}\r
index 7149b76..ee49c68 100644 (file)
@@ -8,6 +8,6 @@
 // ***************************************************************************\r
 \r
 icuver:table(nofallback){ \r
-    DataVersion { "62.1.0.0" }\r
-    ICUVersion  { "62.1.0.0" }\r
+    DataVersion { "63.1.0.0" }\r
+    ICUVersion  { "63.1.0.0" }\r
 }\r
index ac16f27..d34784e 100644 (file)
@@ -422,9 +422,11 @@ keyTypeData:table(nofallback){
             uyi{""}\r
             uyp{""}\r
             uyu{""}\r
+            uyw{""}\r
             uzs{""}\r
             veb{""}\r
             vef{""}\r
+            ves{""}\r
             vnd{""}\r
             vnn{""}\r
             vuv{""}\r
@@ -488,6 +490,7 @@ keyTypeData:table(nofallback){
             remove{""}\r
             title{""}\r
             upper{""}\r
+            zawgyi{""}\r
         }\r
         em{\r
             default{""}\r
index 34cbc8d..ab818b5 100644 (file)
@@ -483,7 +483,7 @@ likelySubtags:table(nofallback){
     hui{"hui_Latn_ZZ"}\r
     hy{"hy_Armn_AM"}\r
     hz{"hz_Latn_NA"}\r
-    ia{"ia_Latn_FR"}\r
+    ia{"ia_Latn_001"}\r
     ian{"ian_Latn_ZZ"}\r
     iar{"iar_Latn_ZZ"}\r
     iba{"iba_Latn_MY"}\r
index 86513f0..13450b3 100644 (file)
@@ -1495,18 +1495,6 @@ metadata:table(nofallback){
                 reason{"overlong"}\r
                 replacement{"MO"}\r
             }\r
-            cnhk{\r
-                reason{"overlong"}\r
-                replacement{"HK"}\r
-            }\r
-            cnmo{\r
-                reason{"overlong"}\r
-                replacement{"MO"}\r
-            }\r
-            cntw{\r
-                reason{"overlong"}\r
-                replacement{"TW"}\r
-            }\r
             cz10a{\r
                 reason{"deprecated"}\r
                 replacement{"cz110"}\r
@@ -4527,7 +4515,9 @@ metadata:table(nofallback){
         "eu_ES",\r
         "ewo_CM",\r
         "fa_IR",\r
-        "ff_SN",\r
+        "ff_Adlm_GN",\r
+        "ff_Latn",\r
+        "ff_Latn_SN",\r
         "fi_FI",\r
         "fil_PH",\r
         "fo_FO",\r
@@ -4553,7 +4543,7 @@ metadata:table(nofallback){
         "hsb_DE",\r
         "hu_HU",\r
         "hy_AM",\r
-        "ia_FR",\r
+        "ia_001",\r
         "id_ID",\r
         "ife_TG",\r
         "ig_NG",\r
@@ -4625,6 +4615,7 @@ metadata:table(nofallback){
         "mt_MT",\r
         "mua_CM",\r
         "my_MM",\r
+        "myv_RU",\r
         "mzn_IR",\r
         "naq_NA",\r
         "nb_NO",\r
@@ -4665,6 +4656,7 @@ metadata:table(nofallback){
         "sah_RU",\r
         "saq_KE",\r
         "sbp_TZ",\r
+        "sc_IT",\r
         "scn_IT",\r
         "sd_PK",\r
         "sdh_IR",\r
index 0d3c83b..db40cde 100644 (file)
@@ -28,4 +28,4 @@ MISC_SOURCE = \
 zoneinfo64.txt supplementalData.txt likelySubtags.txt plurals.txt \\r
 numberingSystems.txt icuver.txt icustd.txt metadata.txt metaZones.txt \\r
 windowsZones.txt keyTypeData.txt timezoneTypes.txt currencyNumericCodes.txt \\r
-genderList.txt dayPeriods.txt\r
+genderList.txt dayPeriods.txt pluralRanges.txt\r
diff --git a/source/data/misc/pluralRanges.txt b/source/data/misc/pluralRanges.txt
new file mode 100644 (file)
index 0000000..67a4dc5
--- /dev/null
@@ -0,0 +1,983 @@
+// © 2016 and later: Unicode, Inc. and others.\r
+// License & terms of use: http://www.unicode.org/copyright.html#License\r
+pluralRanges:table(nofallback){\r
+    locales{\r
+        af{"set05"}\r
+        ak{"set02"}\r
+        am{"set01"}\r
+        ar{"set18"}\r
+        as{"set01"}\r
+        az{"set04"}\r
+        be{"set15"}\r
+        bg{"set05"}\r
+        bn{"set01"}\r
+        bs{"set11"}\r
+        ca{"set05"}\r
+        cs{"set14"}\r
+        cy{"set17"}\r
+        da{"set06"}\r
+        de{"set04"}\r
+        el{"set04"}\r
+        en{"set05"}\r
+        es{"set05"}\r
+        et{"set05"}\r
+        eu{"set05"}\r
+        fa{"set02"}\r
+        fi{"set05"}\r
+        fil{"set06"}\r
+        fr{"set01"}\r
+        ga{"set16"}\r
+        gl{"set04"}\r
+        gsw{"set04"}\r
+        gu{"set01"}\r
+        he{"set13"}\r
+        hi{"set01"}\r
+        hr{"set11"}\r
+        hu{"set04"}\r
+        hy{"set01"}\r
+        ia{"set05"}\r
+        id{"set00"}\r
+        io{"set05"}\r
+        is{"set06"}\r
+        it{"set04"}\r
+        ja{"set00"}\r
+        ka{"set03"}\r
+        kk{"set04"}\r
+        km{"set00"}\r
+        kn{"set01"}\r
+        ko{"set00"}\r
+        ky{"set04"}\r
+        lo{"set00"}\r
+        lt{"set15"}\r
+        lv{"set09"}\r
+        mk{"set08"}\r
+        ml{"set04"}\r
+        mn{"set04"}\r
+        mr{"set01"}\r
+        ms{"set00"}\r
+        my{"set00"}\r
+        nb{"set05"}\r
+        ne{"set04"}\r
+        nl{"set04"}\r
+        or{"set02"}\r
+        pa{"set06"}\r
+        pl{"set14"}\r
+        ps{"set01"}\r
+        pt{"set01"}\r
+        ro{"set10"}\r
+        ru{"set15"}\r
+        sc{"set04"}\r
+        scn{"set04"}\r
+        sd{"set02"}\r
+        si{"set07"}\r
+        sk{"set14"}\r
+        sl{"set12"}\r
+        sq{"set04"}\r
+        sr{"set11"}\r
+        sv{"set05"}\r
+        sw{"set04"}\r
+        ta{"set04"}\r
+        te{"set04"}\r
+        th{"set00"}\r
+        tk{"set04"}\r
+        tr{"set04"}\r
+        ug{"set04"}\r
+        uk{"set15"}\r
+        ur{"set05"}\r
+        uz{"set04"}\r
+        vi{"set00"}\r
+        yue{"set00"}\r
+        zh{"set00"}\r
+        zu{"set01"}\r
+    }\r
+    rules{\r
+        set00{\r
+            {\r
+                "other",\r
+                "other",\r
+                "other",\r
+            }\r
+        }\r
+        set01{\r
+            {\r
+                "one",\r
+                "one",\r
+                "one",\r
+            }\r
+            {\r
+                "one",\r
+                "other",\r
+                "other",\r
+            }\r
+            {\r
+                "other",\r
+                "other",\r
+                "other",\r
+            }\r
+        }\r
+        set02{\r
+            {\r
+                "one",\r
+                "one",\r
+                "other",\r
+            }\r
+            {\r
+                "one",\r
+                "other",\r
+                "other",\r
+            }\r
+            {\r
+                "other",\r
+                "other",\r
+                "other",\r
+            }\r
+        }\r
+        set03{\r
+            {\r
+                "one",\r
+                "other",\r
+                "one",\r
+            }\r
+            {\r
+                "other",\r
+                "one",\r
+                "other",\r
+            }\r
+            {\r
+                "other",\r
+                "other",\r
+                "other",\r
+            }\r
+        }\r
+        set04{\r
+            {\r
+                "one",\r
+                "other",\r
+                "other",\r
+            }\r
+            {\r
+                "other",\r
+                "one",\r
+                "one",\r
+            }\r
+            {\r
+                "other",\r
+                "other",\r
+                "other",\r
+            }\r
+        }\r
+        set05{\r
+            {\r
+                "one",\r
+                "other",\r
+                "other",\r
+            }\r
+            {\r
+                "other",\r
+                "one",\r
+                "other",\r
+            }\r
+            {\r
+                "other",\r
+                "other",\r
+                "other",\r
+            }\r
+        }\r
+        set06{\r
+            {\r
+                "one",\r
+                "one",\r
+                "one",\r
+            }\r
+            {\r
+                "one",\r
+                "other",\r
+                "other",\r
+            }\r
+            {\r
+                "other",\r
+                "one",\r
+                "one",\r
+            }\r
+            {\r
+                "other",\r
+                "other",\r
+                "other",\r
+            }\r
+        }\r
+        set07{\r
+            {\r
+                "one",\r
+                "one",\r
+                "one",\r
+            }\r
+            {\r
+                "one",\r
+                "other",\r
+                "other",\r
+            }\r
+            {\r
+                "other",\r
+                "one",\r
+                "other",\r
+            }\r
+            {\r
+                "other",\r
+                "other",\r
+                "other",\r
+            }\r
+        }\r
+        set08{\r
+            {\r
+                "one",\r
+                "one",\r
+                "other",\r
+            }\r
+            {\r
+                "one",\r
+                "other",\r
+                "other",\r
+            }\r
+            {\r
+                "other",\r
+                "one",\r
+                "other",\r
+            }\r
+            {\r
+                "other",\r
+                "other",\r
+                "other",\r
+            }\r
+        }\r
+        set09{\r
+            {\r
+                "zero",\r
+                "zero",\r
+                "other",\r
+            }\r
+            {\r
+                "zero",\r
+                "one",\r
+                "one",\r
+            }\r
+            {\r
+                "zero",\r
+                "other",\r
+                "other",\r
+            }\r
+            {\r
+                "one",\r
+                "zero",\r
+                "other",\r
+            }\r
+            {\r
+                "one",\r
+                "one",\r
+                "one",\r
+            }\r
+            {\r
+                "one",\r
+                "other",\r
+                "other",\r
+            }\r
+            {\r
+                "other",\r
+                "zero",\r
+                "other",\r
+            }\r
+            {\r
+                "other",\r
+                "one",\r
+                "one",\r
+            }\r
+            {\r
+                "other",\r
+                "other",\r
+                "other",\r
+            }\r
+        }\r
+        set10{\r
+            {\r
+                "one",\r
+                "few",\r
+                "few",\r
+            }\r
+            {\r
+                "one",\r
+                "other",\r
+                "other",\r
+            }\r
+            {\r
+                "few",\r
+                "one",\r
+                "few",\r
+            }\r
+            {\r
+                "few",\r
+                "few",\r
+                "few",\r
+            }\r
+            {\r
+                "few",\r
+                "other",\r
+                "other",\r
+            }\r
+            {\r
+                "other",\r
+                "few",\r
+                "few",\r
+            }\r
+            {\r
+                "other",\r
+                "other",\r
+                "other",\r
+            }\r
+        }\r
+        set11{\r
+            {\r
+                "one",\r
+                "one",\r
+                "one",\r
+            }\r
+            {\r
+                "one",\r
+                "few",\r
+                "few",\r
+            }\r
+            {\r
+                "one",\r
+                "other",\r
+                "other",\r
+            }\r
+            {\r
+                "few",\r
+                "one",\r
+                "one",\r
+            }\r
+            {\r
+                "few",\r
+                "few",\r
+                "few",\r
+            }\r
+            {\r
+                "few",\r
+                "other",\r
+                "other",\r
+            }\r
+            {\r
+                "other",\r
+                "one",\r
+                "one",\r
+            }\r
+            {\r
+                "other",\r
+                "few",\r
+                "few",\r
+            }\r
+            {\r
+                "other",\r
+                "other",\r
+                "other",\r
+            }\r
+        }\r
+        set12{\r
+            {\r
+                "one",\r
+                "one",\r
+                "few",\r
+            }\r
+            {\r
+                "one",\r
+                "two",\r
+                "two",\r
+            }\r
+            {\r
+                "one",\r
+                "few",\r
+                "few",\r
+            }\r
+            {\r
+                "one",\r
+                "other",\r
+                "other",\r
+            }\r
+            {\r
+                "two",\r
+                "one",\r
+                "few",\r
+            }\r
+            {\r
+                "two",\r
+                "two",\r
+                "two",\r
+            }\r
+            {\r
+                "two",\r
+                "few",\r
+                "few",\r
+            }\r
+            {\r
+                "two",\r
+                "other",\r
+                "other",\r
+            }\r
+            {\r
+                "few",\r
+                "one",\r
+                "few",\r
+            }\r
+            {\r
+                "few",\r
+                "two",\r
+                "two",\r
+            }\r
+            {\r
+                "few",\r
+                "few",\r
+                "few",\r
+            }\r
+            {\r
+                "few",\r
+                "other",\r
+                "other",\r
+            }\r
+            {\r
+                "other",\r
+                "one",\r
+                "few",\r
+            }\r
+            {\r
+                "other",\r
+                "two",\r
+                "two",\r
+            }\r
+            {\r
+                "other",\r
+                "few",\r
+                "few",\r
+            }\r
+            {\r
+                "other",\r
+                "other",\r
+                "other",\r
+            }\r
+        }\r
+        set13{\r
+            {\r
+                "one",\r
+                "two",\r
+                "other",\r
+            }\r
+            {\r
+                "one",\r
+                "many",\r
+                "many",\r
+            }\r
+            {\r
+                "one",\r
+                "other",\r
+                "other",\r
+            }\r
+            {\r
+                "two",\r
+                "many",\r
+                "other",\r
+            }\r
+            {\r
+                "two",\r
+                "other",\r
+                "other",\r
+            }\r
+            {\r
+                "many",\r
+                "many",\r
+                "many",\r
+            }\r
+            {\r
+                "many",\r
+                "other",\r
+                "many",\r
+            }\r
+            {\r
+                "other",\r
+                "one",\r
+                "other",\r
+            }\r
+            {\r
+                "other",\r
+                "two",\r
+                "other",\r
+            }\r
+            {\r
+                "other",\r
+                "many",\r
+                "many",\r
+            }\r
+            {\r
+                "other",\r
+                "other",\r
+                "other",\r
+            }\r
+        }\r
+        set14{\r
+            {\r
+                "one",\r
+                "few",\r
+                "few",\r
+            }\r
+            {\r
+                "one",\r
+                "many",\r
+                "many",\r
+            }\r
+            {\r
+                "one",\r
+                "other",\r
+                "other",\r
+            }\r
+            {\r
+                "few",\r
+                "few",\r
+                "few",\r
+            }\r
+            {\r
+                "few",\r
+                "many",\r
+                "many",\r
+            }\r
+            {\r
+                "few",\r
+                "other",\r
+                "other",\r
+            }\r
+            {\r
+                "many",\r
+                "one",\r
+                "one",\r
+            }\r
+            {\r
+                "many",\r
+                "few",\r
+                "few",\r
+            }\r
+            {\r
+                "many",\r
+                "many",\r
+                "many",\r
+            }\r
+            {\r
+                "many",\r
+                "other",\r
+                "other",\r
+            }\r
+            {\r
+                "other",\r
+                "one",\r
+                "one",\r
+            }\r
+            {\r
+                "other",\r
+                "few",\r
+                "few",\r
+            }\r
+            {\r
+                "other",\r
+                "many",\r
+                "many",\r
+            }\r
+            {\r
+                "other",\r
+                "other",\r
+                "other",\r
+            }\r
+        }\r
+        set15{\r
+            {\r
+                "one",\r
+                "one",\r
+                "one",\r
+            }\r
+            {\r
+                "one",\r
+                "few",\r
+                "few",\r
+            }\r
+            {\r
+                "one",\r
+                "many",\r
+                "many",\r
+            }\r
+            {\r
+                "one",\r
+                "other",\r
+                "other",\r
+            }\r
+            {\r
+                "few",\r
+                "one",\r
+                "one",\r
+            }\r
+            {\r
+                "few",\r
+                "few",\r
+                "few",\r
+            }\r
+            {\r
+                "few",\r
+                "many",\r
+                "many",\r
+            }\r
+            {\r
+                "few",\r
+                "other",\r
+                "other",\r
+            }\r
+            {\r
+                "many",\r
+                "one",\r
+                "one",\r
+            }\r
+            {\r
+                "many",\r
+                "few",\r
+                "few",\r
+            }\r
+            {\r
+                "many",\r
+                "many",\r
+                "many",\r
+            }\r
+            {\r
+                "many",\r
+                "other",\r
+                "other",\r
+            }\r
+            {\r
+                "other",\r
+                "one",\r
+                "one",\r
+            }\r
+            {\r
+                "other",\r
+                "few",\r
+                "few",\r
+            }\r
+            {\r
+                "other",\r
+                "many",\r
+                "many",\r
+            }\r
+            {\r
+                "other",\r
+                "other",\r
+                "other",\r
+            }\r
+        }\r
+        set16{\r
+            {\r
+                "one",\r
+                "two",\r
+                "two",\r
+            }\r
+            {\r
+                "one",\r
+                "few",\r
+                "few",\r
+            }\r
+            {\r
+                "one",\r
+                "many",\r
+                "many",\r
+            }\r
+            {\r
+                "one",\r
+                "other",\r
+                "other",\r
+            }\r
+            {\r
+                "two",\r
+                "few",\r
+                "few",\r
+            }\r
+            {\r
+                "two",\r
+                "many",\r
+                "many",\r
+            }\r
+            {\r
+                "two",\r
+                "other",\r
+                "other",\r
+            }\r
+            {\r
+                "few",\r
+                "few",\r
+                "few",\r
+            }\r
+            {\r
+                "few",\r
+                "many",\r
+                "many",\r
+            }\r
+            {\r
+                "few",\r
+                "other",\r
+                "other",\r
+            }\r
+            {\r
+                "many",\r
+                "many",\r
+                "many",\r
+            }\r
+            {\r
+                "many",\r
+                "other",\r
+                "other",\r
+            }\r
+            {\r
+                "other",\r
+                "one",\r
+                "one",\r
+            }\r
+            {\r
+                "other",\r
+                "two",\r
+                "two",\r
+            }\r
+            {\r
+                "other",\r
+                "few",\r
+                "few",\r
+            }\r
+            {\r
+                "other",\r
+                "many",\r
+                "many",\r
+            }\r
+            {\r
+                "other",\r
+                "other",\r
+                "other",\r
+            }\r
+        }\r
+        set17{\r
+            {\r
+                "zero",\r
+                "one",\r
+                "one",\r
+            }\r
+            {\r
+                "zero",\r
+                "two",\r
+                "two",\r
+            }\r
+            {\r
+                "zero",\r
+                "few",\r
+                "few",\r
+            }\r
+            {\r
+                "zero",\r
+                "many",\r
+                "many",\r
+            }\r
+            {\r
+                "zero",\r
+                "other",\r
+                "other",\r
+            }\r
+            {\r
+                "one",\r
+                "two",\r
+                "two",\r
+            }\r
+            {\r
+                "one",\r
+                "few",\r
+                "few",\r
+            }\r
+            {\r
+                "one",\r
+                "many",\r
+                "many",\r
+            }\r
+            {\r
+                "one",\r
+                "other",\r
+                "other",\r
+            }\r
+            {\r
+                "two",\r
+                "few",\r
+                "few",\r
+            }\r
+            {\r
+                "two",\r
+                "many",\r
+                "many",\r
+            }\r
+            {\r
+                "two",\r
+                "other",\r
+                "other",\r
+            }\r
+            {\r
+                "few",\r
+                "many",\r
+                "many",\r
+            }\r
+            {\r
+                "few",\r
+                "other",\r
+                "other",\r
+            }\r
+            {\r
+                "many",\r
+                "other",\r
+                "other",\r
+            }\r
+            {\r
+                "other",\r
+                "one",\r
+                "one",\r
+            }\r
+            {\r
+                "other",\r
+                "two",\r
+                "two",\r
+            }\r
+            {\r
+                "other",\r
+                "few",\r
+                "few",\r
+            }\r
+            {\r
+                "other",\r
+                "many",\r
+                "many",\r
+            }\r
+            {\r
+                "other",\r
+                "other",\r
+                "other",\r
+            }\r
+        }\r
+        set18{\r
+            {\r
+                "zero",\r
+                "one",\r
+                "zero",\r
+            }\r
+            {\r
+                "zero",\r
+                "two",\r
+                "zero",\r
+            }\r
+            {\r
+                "zero",\r
+                "few",\r
+                "few",\r
+            }\r
+            {\r
+                "zero",\r
+                "many",\r
+                "many",\r
+            }\r
+            {\r
+                "zero",\r
+                "other",\r
+                "other",\r
+            }\r
+            {\r
+                "one",\r
+                "two",\r
+                "other",\r
+            }\r
+            {\r
+                "one",\r
+                "few",\r
+                "few",\r
+            }\r
+            {\r
+                "one",\r
+                "many",\r
+                "many",\r
+            }\r
+            {\r
+                "one",\r
+                "other",\r
+                "other",\r
+            }\r
+            {\r
+                "two",\r
+                "few",\r
+                "few",\r
+            }\r
+            {\r
+                "two",\r
+                "many",\r
+                "many",\r
+            }\r
+            {\r
+                "two",\r
+                "other",\r
+                "other",\r
+            }\r
+            {\r
+                "few",\r
+                "few",\r
+                "few",\r
+            }\r
+            {\r
+                "few",\r
+                "many",\r
+                "many",\r
+            }\r
+            {\r
+                "few",\r
+                "other",\r
+                "other",\r
+            }\r
+            {\r
+                "many",\r
+                "few",\r
+                "few",\r
+            }\r
+            {\r
+                "many",\r
+                "many",\r
+                "many",\r
+            }\r
+            {\r
+                "many",\r
+                "other",\r
+                "other",\r
+            }\r
+            {\r
+                "other",\r
+                "one",\r
+                "other",\r
+            }\r
+            {\r
+                "other",\r
+                "two",\r
+                "other",\r
+            }\r
+            {\r
+                "other",\r
+                "few",\r
+                "few",\r
+            }\r
+            {\r
+                "other",\r
+                "many",\r
+                "many",\r
+            }\r
+            {\r
+                "other",\r
+                "other",\r
+                "other",\r
+            }\r
+        }\r
+    }\r
+}\r
index ab1baa5..7b8543c 100644 (file)
@@ -64,6 +64,7 @@ plurals:table(nofallback){
         hsb{"set22"}\r
         hu{"set8"}\r
         hy{"set2"}\r
+        ia{"set4"}\r
         id{"set0"}\r
         ig{"set0"}\r
         ii{"set0"}\r
@@ -149,6 +150,7 @@ plurals:table(nofallback){
         rwk{"set8"}\r
         sah{"set0"}\r
         saq{"set8"}\r
+        sc{"set4"}\r
         scn{"set4"}\r
         sd{"set8"}\r
         sdh{"set8"}\r
@@ -212,16 +214,16 @@ plurals:table(nofallback){
         af{"set35"}\r
         am{"set35"}\r
         ar{"set35"}\r
-        as{"set53"}\r
-        az{"set51"}\r
+        as{"set54"}\r
+        az{"set52"}\r
         be{"set40"}\r
         bg{"set35"}\r
-        bn{"set53"}\r
+        bn{"set54"}\r
         bs{"set35"}\r
         ca{"set49"}\r
         ce{"set35"}\r
         cs{"set35"}\r
-        cy{"set55"}\r
+        cy{"set56"}\r
         da{"set35"}\r
         de{"set35"}\r
         dsb{"set35"}\r
@@ -236,15 +238,17 @@ plurals:table(nofallback){
         fr{"set37"}\r
         fy{"set35"}\r
         ga{"set37"}\r
+        gd{"set50"}\r
         gl{"set35"}\r
         gsw{"set35"}\r
-        gu{"set52"}\r
+        gu{"set53"}\r
         he{"set35"}\r
-        hi{"set52"}\r
+        hi{"set53"}\r
         hr{"set35"}\r
         hsb{"set35"}\r
         hu{"set38"}\r
         hy{"set37"}\r
+        ia{"set35"}\r
         id{"set35"}\r
         in{"set35"}\r
         is{"set35"}\r
@@ -260,7 +264,7 @@ plurals:table(nofallback){
         lo{"set37"}\r
         lt{"set35"}\r
         lv{"set35"}\r
-        mk{"set50"}\r
+        mk{"set51"}\r
         ml{"set35"}\r
         mn{"set35"}\r
         mo{"set37"}\r
@@ -270,7 +274,7 @@ plurals:table(nofallback){
         nb{"set35"}\r
         ne{"set39"}\r
         nl{"set35"}\r
-        or{"set54"}\r
+        or{"set55"}\r
         pa{"set35"}\r
         pl{"set35"}\r
         prg{"set35"}\r
@@ -279,6 +283,7 @@ plurals:table(nofallback){
         ro{"set37"}\r
         root{"set35"}\r
         ru{"set35"}\r
+        sc{"set44"}\r
         scn{"set44"}\r
         sd{"set35"}\r
         sh{"set35"}\r
@@ -818,6 +823,12 @@ plurals:table(nofallback){
             }\r
         }\r
         set50{\r
+            few{"n = 3,13 @integer 3, 13"}\r
+            one{"n = 1,11 @integer 1, 11"}\r
+            other{" @integer 0, 5~19, 100, 1000, 10000, 100000, 1000000, …"}\r
+            two{"n = 2,12 @integer 2, 12"}\r
+        }\r
+        set51{\r
             many{\r
                 "i % 10 = 7,8 and i % 100 != 17,18 @integer 7, 8, 27, 28, 37, 38, 47,"\r
                 " 48, 57, 58, 67, 68, 77, 78, 87, 88, 107, 1007, …"\r
@@ -832,7 +843,7 @@ plurals:table(nofallback){
                 " 102, 1002, …"\r
             }\r
         }\r
-        set51{\r
+        set52{\r
             few{\r
                 "i % 10 = 3,4 or i % 1000 = 100,200,300,400,500,600,700,800,900 @inte"\r
                 "ger 3, 4, 13, 14, 23, 24, 33, 34, 43, 44, 53, 54, 63, 64, 73, 74, 10"\r
@@ -851,28 +862,28 @@ plurals:table(nofallback){
                 "00000, 1000000, …"\r
             }\r
         }\r
-        set52{\r
+        set53{\r
             few{"n = 4 @integer 4"}\r
             many{"n = 6 @integer 6"}\r
             one{"n = 1 @integer 1"}\r
             other{" @integer 0, 5, 7~20, 100, 1000, 10000, 100000, 1000000, …"}\r
             two{"n = 2,3 @integer 2, 3"}\r
         }\r
-        set53{\r
+        set54{\r
             few{"n = 4 @integer 4"}\r
             many{"n = 6 @integer 6"}\r
             one{"n = 1,5,7,8,9,10 @integer 1, 5, 7~10"}\r
             other{" @integer 0, 11~25, 100, 1000, 10000, 100000, 1000000, …"}\r
             two{"n = 2,3 @integer 2, 3"}\r
         }\r
-        set54{\r
+        set55{\r
             few{"n = 4 @integer 4"}\r
             many{"n = 6 @integer 6"}\r
             one{"n = 1,5,7..9 @integer 1, 5, 7~9"}\r
             other{" @integer 0, 10~24, 100, 1000, 10000, 100000, 1000000, …"}\r
             two{"n = 2,3 @integer 2, 3"}\r
         }\r
-        set55{\r
+        set56{\r
             few{"n = 3,4 @integer 3, 4"}\r
             many{"n = 5,6 @integer 5, 6"}\r
             one{"n = 1 @integer 1"}\r
index 1be25cb..9a3c1b6 100644 (file)
@@ -6,8 +6,9 @@ supplementalData:table(nofallback){
             eras{\r
                 0{\r
                     start:intvector{\r
-                        -18457,\r
-                        643382272,\r
+                        -542,\r
+                        1,\r
+                        1,\r
                     }\r
                 }\r
             }\r
@@ -17,8 +18,9 @@ supplementalData:table(nofallback){
             eras{\r
                 0{\r
                     start:intvector{\r
-                        -33843,\r
-                        1352598528,\r
+                        -2636,\r
+                        1,\r
+                        1,\r
                     }\r
                 }\r
             }\r
@@ -28,14 +30,16 @@ supplementalData:table(nofallback){
             eras{\r
                 0{\r
                     end:intvector{\r
-                        -12383,\r
-                        368826367,\r
+                        284,\r
+                        8,\r
+                        28,\r
                     }\r
                 }\r
                 1{\r
                     start:intvector{\r
-                        -12383,\r
-                        368826368,\r
+                        284,\r
+                        8,\r
+                        29,\r
                     }\r
                 }\r
             }\r
@@ -45,8 +49,9 @@ supplementalData:table(nofallback){
             eras{\r
                 0{\r
                     start:intvector{\r
-                        -31610,\r
-                        -93940736,\r
+                        -2332,\r
+                        1,\r
+                        1,\r
                     }\r
                 }\r
             }\r
@@ -56,14 +61,16 @@ supplementalData:table(nofallback){
             eras{\r
                 0{\r
                     end:intvector{\r
-                        -14411,\r
-                        664902655,\r
+                        8,\r
+                        8,\r
+                        28,\r
                     }\r
                 }\r
                 1{\r
                     start:intvector{\r
-                        -14411,\r
-                        664902656,\r
+                        8,\r
+                        8,\r
+                        29,\r
                     }\r
                 }\r
             }\r
@@ -73,8 +80,9 @@ supplementalData:table(nofallback){
             eras{\r
                 0{\r
                     end:intvector{\r
-                        -54823,\r
-                        -2125298689,\r
+                        -5492,\r
+                        8,\r
+                        29,\r
                     }\r
                 }\r
             }\r
@@ -83,14 +91,16 @@ supplementalData:table(nofallback){
             eras{\r
                 0{\r
                     end:intvector{\r
-                        -14468,\r
-                        -477728769,\r
+                        0,\r
+                        12,\r
+                        31,\r
                     }\r
                 }\r
                 1{\r
                     start:intvector{\r
-                        -14468,\r
-                        -477728768,\r
+                        1,\r
+                        1,\r
+                        1,\r
                     }\r
                 }\r
             }\r
@@ -100,8 +110,9 @@ supplementalData:table(nofallback){
             eras{\r
                 0{\r
                     start:intvector{\r
-                        -42096,\r
-                        1167292416,\r
+                        -3760,\r
+                        10,\r
+                        7,\r
                     }\r
                 }\r
             }\r
@@ -111,8 +122,9 @@ supplementalData:table(nofallback){
             eras{\r
                 0{\r
                     start:intvector{\r
-                        -13895,\r
-                        -44389376,\r
+                        79,\r
+                        1,\r
+                        1,\r
                     }\r
                 }\r
             }\r
@@ -121,8 +133,9 @@ supplementalData:table(nofallback){
             eras{\r
                 0{\r
                     start:intvector{\r
-                        -9901,\r
-                        -1497369600,\r
+                        622,\r
+                        7,\r
+                        15,\r
                     }\r
                 }\r
             }\r
@@ -132,8 +145,9 @@ supplementalData:table(nofallback){
             eras{\r
                 0{\r
                     start:intvector{\r
-                        -9901,\r
-                        -1410969600,\r
+                        622,\r
+                        7,\r
+                        16,\r
                     }\r
                 }\r
             }\r
@@ -143,8 +157,9 @@ supplementalData:table(nofallback){
             eras{\r
                 0{\r
                     start:intvector{\r
-                        -9901,\r
-                        -1497369600,\r
+                        622,\r
+                        7,\r
+                        15,\r
                     }\r
                 }\r
             }\r
@@ -154,8 +169,9 @@ supplementalData:table(nofallback){
             eras{\r
                 0{\r
                     start:intvector{\r
-                        -9901,\r
-                        -1497369600,\r
+                        622,\r
+                        7,\r
+                        15,\r
                     }\r
                 }\r
             }\r
@@ -165,8 +181,9 @@ supplementalData:table(nofallback){
             eras{\r
                 0{\r
                     start:intvector{\r
-                        -9901,\r
-                        -1497369600,\r
+                        622,\r
+                        7,\r
+                        15,\r
                     }\r
                 }\r
             }\r
@@ -176,1418 +193,1662 @@ supplementalData:table(nofallback){
             eras{\r
                 0{\r
                     start:intvector{\r
-                        -9732,\r
-                        548124672,\r
+                        645,\r
+                        6,\r
+                        19,\r
                     }\r
                 }\r
                 1{\r
                     start:intvector{\r
-                        -9698,\r
-                        1572036608,\r
+                        650,\r
+                        2,\r
+                        15,\r
                     }\r
                 }\r
                 10{\r
                     start:intvector{\r
-                        -9114,\r
-                        1157535744,\r
+                        729,\r
+                        8,\r
+                        5,\r
                     }\r
                 }\r
                 100{\r
                     start:intvector{\r
-                        -5884,\r
-                        -819397632,\r
+                        1169,\r
+                        4,\r
+                        8,\r
                     }\r
                 }\r
                 101{\r
                     start:intvector{\r
-                        -5869,\r
-                        -1048707072,\r
+                        1171,\r
+                        4,\r
+                        21,\r
                     }\r
                 }\r
                 102{\r
                     start:intvector{\r
-                        -5837,\r
-                        504906752,\r
+                        1175,\r
+                        7,\r
+                        28,\r
                     }\r
                 }\r
                 103{\r
                     start:intvector{\r
-                        -5823,\r
-                        -156402688,\r
+                        1177,\r
+                        8,\r
+                        4,\r
                     }\r
                 }\r
                 104{\r
                     start:intvector{\r
-                        -5794,\r
-                        -294454272,\r
+                        1181,\r
+                        7,\r
+                        14,\r
                     }\r
                 }\r
                 105{\r
                     start:intvector{\r
-                        -5787,\r
-                        1324541952,\r
+                        1182,\r
+                        5,\r
+                        27,\r
                     }\r
                 }\r
                 106{\r
                     start:intvector{\r
-                        -5773,\r
-                        810999808,\r
+                        1184,\r
+                        4,\r
+                        16,\r
                     }\r
                 }\r
                 107{\r
                     start:intvector{\r
-                        -5764,\r
-                        -234673152,\r
+                        1185,\r
+                        8,\r
+                        14,\r
                     }\r
                 }\r
                 108{\r
                     start:intvector{\r
-                        -5729,\r
-                        702838784,\r
+                        1190,\r
+                        4,\r
+                        11,\r
                     }\r
                 }\r
                 109{\r
                     start:intvector{\r
-                        -5663,\r
-                        -1680770048,\r
+                        1199,\r
+                        4,\r
+                        27,\r
                     }\r
                 }\r
                 11{\r
                     start:intvector{\r
-                        -8970,\r
-                        -223922176,\r
+                        749,\r
+                        4,\r
+                        14,\r
                     }\r
                 }\r
                 110{\r
                     start:intvector{\r
-                        -5650,\r
-                        -664144896,\r
+                        1201,\r
+                        2,\r
+                        13,\r
                     }\r
                 }\r
                 111{\r
                     start:intvector{\r
-                        -5627,\r
-                        59374592,\r
+                        1204,\r
+                        2,\r
+                        20,\r
                     }\r
                 }\r
                 112{\r
                     start:intvector{\r
-                        -5611,\r
-                        200697856,\r
+                        1206,\r
+                        4,\r
+                        27,\r
                     }\r
                 }\r
                 113{\r
                     start:intvector{\r
-                        -5600,\r
-                        130457600,\r
+                        1207,\r
+                        10,\r
+                        25,\r
                     }\r
                 }\r
                 114{\r
                     start:intvector{\r
-                        -5576,\r
-                        -885324800,\r
+                        1211,\r
+                        3,\r
+                        9,\r
                     }\r
                 }\r
                 115{\r
                     start:intvector{\r
-                        -5556,\r
-                        -125470720,\r
+                        1213,\r
+                        12,\r
+                        6,\r
                     }\r
                 }\r
                 116{\r
                     start:intvector{\r
-                        -5516,\r
-                        1110004736,\r
+                        1219,\r
+                        4,\r
+                        12,\r
                     }\r
                 }\r
                 117{\r
                     start:intvector{\r
-                        -5494,\r
-                        1401524224,\r
+                        1222,\r
+                        4,\r
+                        13,\r
                     }\r
                 }\r
                 118{\r
                     start:intvector{\r
-                        -5475,\r
-                        2049945600,\r
+                        1224,\r
+                        11,\r
+                        20,\r
                     }\r
                 }\r
                 119{\r
                     start:intvector{\r
-                        -5472,\r
-                        -2083523584,\r
+                        1225,\r
+                        4,\r
+                        20,\r
                     }\r
                 }\r
                 12{\r
                     start:intvector{\r
-                        -8968,\r
-                        -1988256768,\r
+                        749,\r
+                        7,\r
+                        2,\r
                     }\r
                 }\r
                 120{\r
                     start:intvector{\r
-                        -5453,\r
-                        -398302208,\r
+                        1227,\r
+                        12,\r
+                        10,\r
                     }\r
                 }\r
                 121{\r
                     start:intvector{\r
-                        -5444,\r
-                        -86607872,\r
+                        1229,\r
+                        3,\r
+                        5,\r
                     }\r
                 }\r
                 122{\r
                     start:intvector{\r
-                        -5421,\r
-                        -1757255680,\r
+                        1232,\r
+                        4,\r
+                        2,\r
                     }\r
                 }\r
                 123{\r
                     start:intvector{\r
-                        -5413,\r
-                        837173248,\r
+                        1233,\r
+                        4,\r
+                        15,\r
                     }\r
                 }\r
                 124{\r
                     start:intvector{\r
-                        -5402,\r
-                        -1540834304,\r
+                        1234,\r
+                        11,\r
+                        5,\r
                     }\r
                 }\r
                 125{\r
                     start:intvector{\r
-                        -5395,\r
-                        164561920,\r
+                        1235,\r
+                        9,\r
+                        19,\r
                     }\r
                 }\r
                 126{\r
                     start:intvector{\r
-                        -5372,\r
-                        1690714112,\r
+                        1238,\r
+                        11,\r
+                        23,\r
                     }\r
                 }\r
                 127{\r
                     start:intvector{\r
-                        -5371,\r
-                        -332820480,\r
+                        1239,\r
+                        2,\r
+                        7,\r
                     }\r
                 }\r
                 128{\r
                     start:intvector{\r
-                        -5360,\r
-                        2077506560,\r
+                        1240,\r
+                        7,\r
+                        16,\r
                     }\r
                 }\r
                 129{\r
                     start:intvector{\r
-                        -5341,\r
-                        -1309839360,\r
+                        1243,\r
+                        2,\r
+                        26,\r
                     }\r
                 }\r
                 13{\r
                     start:intvector{\r
-                        -8908,\r
-                        1130272768,\r
+                        757,\r
+                        8,\r
+                        18,\r
                     }\r
                 }\r
                 130{\r
                     start:intvector{\r
-                        -5311,\r
-                        539309056,\r
+                        1247,\r
+                        2,\r
+                        28,\r
                     }\r
                 }\r
                 131{\r
                     start:intvector{\r
-                        -5296,\r
-                        828399616,\r
+                        1249,\r
+                        3,\r
+                        18,\r
                     }\r
                 }\r
                 132{\r
                     start:intvector{\r
-                        -5241,\r
-                        -1398568960,\r
+                        1256,\r
+                        10,\r
+                        5,\r
                     }\r
                 }\r
                 133{\r
                     start:intvector{\r
-                        -5238,\r
-                        -459470848,\r
+                        1257,\r
+                        3,\r
+                        14,\r
                     }\r
                 }\r
                 134{\r
                     start:intvector{\r
-                        -5223,\r
-                        -775180288,\r
+                        1259,\r
+                        3,\r
+                        26,\r
                     }\r
                 }\r
                 135{\r
                     start:intvector{\r
-                        -5215,\r
-                        -1957318656,\r
+                        1260,\r
+                        4,\r
+                        13,\r
                     }\r
                 }\r
                 136{\r
                     start:intvector{\r
-                        -5209,\r
-                        -683922432,\r
+                        1261,\r
+                        2,\r
+                        20,\r
                     }\r
                 }\r
                 137{\r
                     start:intvector{\r
-                        -5186,\r
-                        125997056,\r
+                        1264,\r
+                        2,\r
+                        28,\r
                     }\r
                 }\r
                 138{\r
                     start:intvector{\r
-                        -5105,\r
-                        -67721216,\r
+                        1275,\r
+                        4,\r
+                        25,\r
                     }\r
                 }\r
                 139{\r
                     start:intvector{\r
-                        -5084,\r
-                        -319634432,\r
+                        1278,\r
+                        2,\r
+                        29,\r
                     }\r
                 }\r
                 14{\r
                     start:intvector{\r
-                        -8854,\r
-                        -1899328512,\r
+                        765,\r
+                        1,\r
+                        7,\r
                     }\r
                 }\r
                 140{\r
                     start:intvector{\r
-                        -5009,\r
-                        -1811781632,\r
+                        1288,\r
+                        4,\r
+                        28,\r
                     }\r
                 }\r
                 141{\r
                     start:intvector{\r
-                        -4969,\r
-                        1324493824,\r
+                        1293,\r
+                        8,\r
+                        5,\r
                     }\r
                 }\r
                 142{\r
                     start:intvector{\r
-                        -4928,\r
-                        1400434688,\r
+                        1299,\r
+                        4,\r
+                        25,\r
                     }\r
                 }\r
                 143{\r
                     start:intvector{\r
-                        -4902,\r
-                        -1725282304,\r
+                        1302,\r
+                        11,\r
+                        21,\r
                     }\r
                 }\r
                 144{\r
                     start:intvector{\r
-                        -4897,\r
-                        -995318784,\r
+                        1303,\r
+                        8,\r
+                        5,\r
                     }\r
                 }\r
                 145{\r
                     start:intvector{\r
-                        -4872,\r
-                        1938266112,\r
+                        1306,\r
+                        12,\r
+                        14,\r
                     }\r
                 }\r
                 146{\r
                     start:intvector{\r
-                        -4859,\r
-                        -735276032,\r
+                        1308,\r
+                        10,\r
+                        9,\r
                     }\r
                 }\r
                 147{\r
                     start:intvector{\r
-                        -4840,\r
-                        -1901254656,\r
+                        1311,\r
+                        4,\r
+                        28,\r
                     }\r
                 }\r
                 148{\r
                     start:intvector{\r
-                        -4833,\r
-                        581741568,\r
+                        1312,\r
+                        3,\r
+                        20,\r
                     }\r
                 }\r
                 149{\r
                     start:intvector{\r
-                        -4798,\r
-                        -158681088,\r
+                        1317,\r
+                        2,\r
+                        3,\r
                     }\r
                 }\r
                 15{\r
                     start:intvector{\r
-                        -8835,\r
-                        -1337307136,\r
+                        767,\r
+                        8,\r
+                        16,\r
                     }\r
                 }\r
                 150{\r
                     start:intvector{\r
-                        -4781,\r
-                        1451442176,\r
+                        1319,\r
+                        4,\r
+                        28,\r
                     }\r
                 }\r
                 151{\r
                     start:intvector{\r
-                        -4768,\r
-                        -1049299968,\r
+                        1321,\r
+                        2,\r
+                        23,\r
                     }\r
                 }\r
                 152{\r
                     start:intvector{\r
-                        -4740,\r
-                        -1644384256,\r
+                        1324,\r
+                        12,\r
+                        9,\r
                     }\r
                 }\r
                 153{\r
                     start:intvector{\r
-                        -4730,\r
-                        -1134857216,\r
+                        1326,\r
+                        4,\r
+                        26,\r
                     }\r
                 }\r
                 154{\r
                     start:intvector{\r
-                        -4705,\r
-                        1280327680,\r
+                        1329,\r
+                        8,\r
+                        29,\r
                     }\r
                 }\r
                 155{\r
                     start:intvector{\r
-                        -4691,\r
-                        -1800181760,\r
+                        1331,\r
+                        8,\r
+                        9,\r
                     }\r
                 }\r
                 156{\r
                     start:intvector{\r
-                        -4673,\r
-                        -1003993088,\r
+                        1334,\r
+                        1,\r
+                        29,\r
                     }\r
                 }\r
                 157{\r
                     start:intvector{\r
-                        -4657,\r
-                        321897472,\r
+                        1336,\r
+                        2,\r
+                        29,\r
                     }\r
                 }\r
                 158{\r
                     start:intvector{\r
-                        -4627,\r
-                        -1494088704,\r
+                        1340,\r
+                        4,\r
+                        28,\r
                     }\r
                 }\r
                 159{\r
                     start:intvector{\r
-                        -4578,\r
-                        1003481088,\r
+                        1346,\r
+                        12,\r
+                        8,\r
                     }\r
                 }\r
                 16{\r
                     start:intvector{\r
-                        -8812,\r
-                        -1452754944,\r
+                        770,\r
+                        10,\r
+                        1,\r
                     }\r
                 }\r
                 160{\r
                     start:intvector{\r
-                        -4405,\r
-                        -775228416,\r
+                        1370,\r
+                        7,\r
+                        24,\r
                     }\r
                 }\r
                 161{\r
                     start:intvector{\r
-                        -4392,\r
-                        993964032,\r
+                        1372,\r
+                        4,\r
+                        1,\r
                     }\r
                 }\r
                 162{\r
                     start:intvector{\r
-                        -4369,\r
-                        1656116224,\r
+                        1375,\r
+                        5,\r
+                        27,\r
                     }\r
                 }\r
                 163{\r
                     start:intvector{\r
-                        -4341,\r
-                        1925031936,\r
+                        1379,\r
+                        3,\r
+                        22,\r
                     }\r
                 }\r
                 164{\r
                     start:intvector{\r
-                        -4327,\r
-                        1497889792,\r
+                        1381,\r
+                        2,\r
+                        10,\r
                     }\r
                 }\r
                 165{\r
                     start:intvector{\r
-                        -4304,\r
-                        -234125312,\r
+                        1384,\r
+                        4,\r
+                        28,\r
                     }\r
                 }\r
                 166{\r
                     start:intvector{\r
-                        -4305,\r
-                        -1209558016,\r
+                        1387,\r
+                        8,\r
+                        22,\r
                     }\r
                 }\r
                 167{\r
                     start:intvector{\r
-                        -4279,\r
-                        1403459584,\r
+                        1387,\r
+                        8,\r
+                        23,\r
                     }\r
                 }\r
                 168{\r
                     start:intvector{\r
-                        -4268,\r
-                        469219328,\r
+                        1389,\r
+                        2,\r
+                        9,\r
                     }\r
                 }\r
                 169{\r
                     start:intvector{\r
-                        -4260,\r
-                        1533480960,\r
+                        1390,\r
+                        3,\r
+                        26,\r
                     }\r
                 }\r
                 17{\r
                     start:intvector{\r
-                        -8737,\r
-                        -7302144,\r
+                        781,\r
+                        1,\r
+                        1,\r
                     }\r
                 }\r
                 170{\r
                     start:intvector{\r
-                        -4229,\r
-                        -948672512,\r
+                        1394,\r
+                        7,\r
+                        5,\r
                     }\r
                 }\r
                 171{\r
                     start:intvector{\r
-                        -3980,\r
-                        939438080,\r
+                        1428,\r
+                        4,\r
+                        27,\r
                     }\r
                 }\r
                 172{\r
                     start:intvector{\r
-                        -3970,\r
-                        844165120,\r
+                        1429,\r
+                        9,\r
+                        5,\r
                     }\r
                 }\r
                 173{\r
                     start:intvector{\r
-                        -3886,\r
-                        1478112256,\r
+                        1441,\r
+                        2,\r
+                        17,\r
                     }\r
                 }\r
                 174{\r
                     start:intvector{\r
-                        -3864,\r
-                        560031744,\r
+                        1444,\r
+                        2,\r
+                        5,\r
                     }\r
                 }\r
                 175{\r
                     start:intvector{\r
-                        -3824,\r
-                        1561339904,\r
+                        1449,\r
+                        7,\r
+                        28,\r
                     }\r
                 }\r
                 176{\r
                     start:intvector{\r
-                        -3802,\r
-                        1507259392,\r
+                        1452,\r
+                        7,\r
+                        25,\r
                     }\r
                 }\r
                 177{\r
                     start:intvector{\r
-                        -3780,\r
-                        1625978880,\r
+                        1455,\r
+                        7,\r
+                        25,\r
                     }\r
                 }\r
                 178{\r
                     start:intvector{\r
-                        -3764,\r
-                        1680902144,\r
+                        1457,\r
+                        9,\r
+                        28,\r
                     }\r
                 }\r
                 179{\r
                     start:intvector{\r
-                        -3740,\r
-                        553687040,\r
+                        1460,\r
+                        12,\r
+                        21,\r
                     }\r
                 }\r
                 18{\r
                     start:intvector{\r
-                        -8725,\r
-                        -138909696,\r
+                        782,\r
+                        8,\r
+                        19,\r
                     }\r
                 }\r
                 180{\r
                     start:intvector{\r
-                        -3702,\r
-                        1072929792,\r
+                        1466,\r
+                        2,\r
+                        28,\r
                     }\r
                 }\r
                 181{\r
                     start:intvector{\r
-                        -3695,\r
-                        -1491608576,\r
+                        1467,\r
+                        3,\r
+                        3,\r
                     }\r
                 }\r
                 182{\r
                     start:intvector{\r
-                        -3679,\r
-                        2080681984,\r
+                        1469,\r
+                        4,\r
+                        28,\r
                     }\r
                 }\r
                 183{\r
                     start:intvector{\r
-                        -3545,\r
-                        -1797502976,\r
+                        1487,\r
+                        7,\r
+                        29,\r
                     }\r
                 }\r
                 184{\r
                     start:intvector{\r
-                        -3530,\r
-                        -1076412416,\r
+                        1489,\r
+                        8,\r
+                        21,\r
                     }\r
                 }\r
                 185{\r
                     start:intvector{\r
-                        -3508,\r
-                        572474368,\r
+                        1492,\r
+                        7,\r
+                        19,\r
                     }\r
                 }\r
                 186{\r
                     start:intvector{\r
-                        -3445,\r
-                        1890334720,\r
+                        1501,\r
+                        2,\r
+                        29,\r
                     }\r
                 }\r
                 187{\r
                     start:intvector{\r
-                        -3423,\r
-                        2095454208,\r
+                        1504,\r
+                        2,\r
+                        30,\r
                     }\r
                 }\r
                 188{\r
                     start:intvector{\r
-                        -3295,\r
-                        -377726976,\r
+                        1521,\r
+                        8,\r
+                        23,\r
                     }\r
                 }\r
                 189{\r
                     start:intvector{\r
-                        -3243,\r
-                        1244540928,\r
+                        1528,\r
+                        8,\r
+                        20,\r
                     }\r
                 }\r
                 19{\r
                     start:intvector{\r
-                        -8550,\r
-                        1883980800,\r
+                        806,\r
+                        5,\r
+                        18,\r
                     }\r
                 }\r
                 190{\r
                     start:intvector{\r
-                        -3214,\r
-                        1020089344,\r
+                        1532,\r
+                        7,\r
+                        29,\r
                     }\r
                 }\r
                 191{\r
                     start:intvector{\r
-                        -3044,\r
-                        -228918272,\r
+                        1555,\r
+                        10,\r
+                        23,\r
                     }\r
                 }\r
                 192{\r
                     start:intvector{\r
-                        -3026,\r
-                        974237696,\r
+                        1558,\r
+                        2,\r
+                        28,\r
                     }\r
                 }\r
                 193{\r
                     start:intvector{\r
-                        -2937,\r
-                        2078948352,\r
+                        1570,\r
+                        4,\r
+                        23,\r
                     }\r
                 }\r
                 194{\r
                     start:intvector{\r
-                        -2913,\r
-                        1988533248,\r
+                        1573,\r
+                        7,\r
+                        28,\r
                     }\r
                 }\r
                 195{\r
                     start:intvector{\r
-                        -2771,\r
-                        -1948590080,\r
+                        1592,\r
+                        12,\r
+                        8,\r
                     }\r
                 }\r
                 196{\r
                     start:intvector{\r
-                        -2742,\r
-                        393925632,\r
+                        1596,\r
+                        10,\r
+                        27,\r
                     }\r
                 }\r
                 197{\r
                     start:intvector{\r
-                        -2605,\r
-                        -1940361216,\r
+                        1615,\r
+                        7,\r
+                        13,\r
                     }\r
                 }\r
                 198{\r
                     start:intvector{\r
-                        -2542,\r
-                        -17700864,\r
+                        1624,\r
+                        2,\r
+                        30,\r
                     }\r
                 }\r
                 199{\r
                     start:intvector{\r
-                        -2389,\r
-                        -939697152,\r
+                        1644,\r
+                        12,\r
+                        16,\r
                     }\r
                 }\r
                 2{\r
                     start:intvector{\r
-                        -9537,\r
-                        418301952,\r
+                        672,\r
+                        1,\r
+                        1,\r
                     }\r
                 }\r
                 20{\r
                     start:intvector{\r
-                        -8518,\r
-                        1389027328,\r
+                        810,\r
+                        9,\r
+                        19,\r
                     }\r
                 }\r
                 200{\r
                     start:intvector{\r
-                        -2365,\r
-                        154455040,\r
+                        1648,\r
+                        2,\r
+                        15,\r
                     }\r
                 }\r
                 201{\r
                     start:intvector{\r
-                        -2332,\r
-                        -981633024,\r
+                        1652,\r
+                        9,\r
+                        18,\r
                     }\r
                 }\r
                 202{\r
                     start:intvector{\r
-                        -2313,\r
-                        -1629211648,\r
+                        1655,\r
+                        4,\r
+                        13,\r
                     }\r
                 }\r
                 203{\r
                     start:intvector{\r
-                        -2289,\r
-                        -1287626752,\r
+                        1658,\r
+                        7,\r
+                        23,\r
                     }\r
                 }\r
                 204{\r
                     start:intvector{\r
-                        -2269,\r
-                        -182172672,\r
+                        1661,\r
+                        4,\r
+                        25,\r
                     }\r
                 }\r
                 205{\r
                     start:intvector{\r
-                        -2177,\r
-                        540603392,\r
+                        1673,\r
+                        9,\r
+                        21,\r
                     }\r
                 }\r
                 206{\r
                     start:intvector{\r
-                        -2118,\r
-                        289532928,\r
+                        1681,\r
+                        9,\r
+                        29,\r
                     }\r
                 }\r
                 207{\r
                     start:intvector{\r
-                        -2101,\r
-                        -1419878400,\r
+                        1684,\r
+                        2,\r
+                        21,\r
                     }\r
                 }\r
                 208{\r
                     start:intvector{\r
-                        -2067,\r
-                        -2037566464,\r
+                        1688,\r
+                        9,\r
+                        30,\r
                     }\r
                 }\r
                 209{\r
                     start:intvector{\r
-                        -1953,\r
-                        99929088,\r
+                        1704,\r
+                        3,\r
+                        13,\r
                     }\r
                 }\r
                 21{\r
                     start:intvector{\r
-                        -8420,\r
-                        40632320,\r
+                        824,\r
+                        1,\r
+                        5,\r
                     }\r
                 }\r
                 210{\r
                     start:intvector{\r
-                        -1901,\r
-                        1315229696,\r
+                        1711,\r
+                        4,\r
+                        25,\r
                     }\r
                 }\r
                 211{\r
                     start:intvector{\r
-                        -1863,\r
-                        970472448,\r
+                        1716,\r
+                        6,\r
+                        22,\r
                     }\r
                 }\r
                 212{\r
                     start:intvector{\r
-                        -1717,\r
-                        305247232,\r
+                        1736,\r
+                        4,\r
+                        28,\r
                     }\r
                 }\r
                 213{\r
                     start:intvector{\r
-                        -1682,\r
-                        -1731175424,\r
+                        1741,\r
+                        2,\r
+                        27,\r
                     }\r
                 }\r
                 214{\r
                     start:intvector{\r
-                        -1660,\r
-                        -2130855936,\r
+                        1744,\r
+                        2,\r
+                        21,\r
                     }\r
                 }\r
                 215{\r
                     start:intvector{\r
-                        -1628,\r
-                        -1070609408,\r
+                        1748,\r
+                        7,\r
+                        12,\r
                     }\r
                 }\r
                 216{\r
                     start:intvector{\r
-                        -1604,\r
-                        -297024512,\r
+                        1751,\r
+                        10,\r
+                        27,\r
                     }\r
                 }\r
                 217{\r
                     start:intvector{\r
-                        -1511,\r
-                        -2116183040,\r
+                        1764,\r
+                        6,\r
+                        2,\r
                     }\r
                 }\r
                 218{\r
                     start:intvector{\r
-                        -1449,\r
-                        -1514555392,\r
+                        1772,\r
+                        11,\r
+                        16,\r
                     }\r
                 }\r
                 219{\r
                     start:intvector{\r
-                        -1387,\r
-                        790039552,\r
+                        1781,\r
+                        4,\r
+                        2,\r
                     }\r
                 }\r
                 22{\r
                     start:intvector{\r
-                        -8347,\r
-                        1954419712,\r
+                        834,\r
+                        1,\r
+                        3,\r
                     }\r
                 }\r
                 220{\r
                     start:intvector{\r
-                        -1330,\r
-                        -1646063616,\r
+                        1789,\r
+                        1,\r
+                        25,\r
                     }\r
                 }\r
                 221{\r
                     start:intvector{\r
-                        -1242,\r
-                        -47985664,\r
+                        1801,\r
+                        2,\r
+                        5,\r
                     }\r
                 }\r
                 222{\r
                     start:intvector{\r
-                        -1219,\r
-                        589133824,\r
+                        1804,\r
+                        2,\r
+                        11,\r
                     }\r
                 }\r
                 223{\r
                     start:intvector{\r
-                        -1115,\r
-                        1810135040,\r
+                        1818,\r
+                        4,\r
+                        22,\r
                     }\r
                 }\r
                 224{\r
                     start:intvector{\r
-                        -1022,\r
-                        1114176512,\r
+                        1830,\r
+                        12,\r
+                        10,\r
                     }\r
                 }\r
                 225{\r
                     start:intvector{\r
-                        -920,\r
-                        -109054976,\r
+                        1844,\r
+                        12,\r
+                        2,\r
                     }\r
                 }\r
                 226{\r
                     start:intvector{\r
-                        -896,\r
-                        -977070080,\r
+                        1848,\r
+                        2,\r
+                        28,\r
                     }\r
                 }\r
                 227{\r
                     start:intvector{\r
-                        -846,\r
-                        1459132416,\r
+                        1854,\r
+                        11,\r
+                        27,\r
                     }\r
                 }\r
                 228{\r
                     start:intvector{\r
-                        -807,\r
-                        1398607872,\r
+                        1860,\r
+                        3,\r
+                        18,\r
                     }\r
                 }\r
                 229{\r
                     start:intvector{\r
-                        -800,\r
-                        537036800,\r
+                        1861,\r
+                        2,\r
+                        19,\r
                     }\r
                 }\r
                 23{\r
                     start:intvector{\r
-                        -8241,\r
-                        -1847080960,\r
+                        848,\r
+                        6,\r
+                        13,\r
                     }\r
                 }\r
                 230{\r
                     start:intvector{\r
-                        -778,\r
-                        742156288,\r
+                        1864,\r
+                        2,\r
+                        20,\r
                     }\r
                 }\r
                 231{\r
                     start:intvector{\r
-                        -770,\r
-                        1979217920,\r
+                        1865,\r
+                        4,\r
+                        7,\r
                     }\r
                 }\r
                 232{\r
                     start:intvector{\r
-                        -745,\r
-                        -1689931776,\r
+                        1868,\r
+                        9,\r
+                        8,\r
                     }\r
                 }\r
                 233{\r
                     start:intvector{\r
-                        -422,\r
-                        322598912,\r
+                        1912,\r
+                        7,\r
+                        30,\r
                     }\r
                 }\r
                 234{\r
                     start:intvector{\r
-                        -317,\r
-                        -393534464,\r
+                        1926,\r
+                        12,\r
+                        25,\r
                     }\r
                 }\r
                 235{\r
                     start:intvector{\r
-                        139,\r
-                        -1074621440,\r
+                        1989,\r
+                        1,\r
+                        8,\r
+                    }\r
+                }\r
+                236{\r
+                    named{"false"}\r
+                    start:intvector{\r
+                        2019,\r
+                        5,\r
+                        1,\r
                     }\r
                 }\r
                 24{\r
                     start:intvector{\r
-                        -8220,\r
-                        -1407794176,\r
+                        851,\r
+                        4,\r
+                        28,\r
                     }\r
                 }\r
                 25{\r
                     start:intvector{\r
-                        -8193,\r
-                        279856128,\r
+                        854,\r
+                        11,\r
+                        30,\r
                     }\r
                 }\r
                 26{\r
                     start:intvector{\r
-                        -8177,\r
-                        1889979392,\r
+                        857,\r
+                        2,\r
+                        21,\r
                     }\r
                 }\r
                 27{\r
                     start:intvector{\r
-                        -8161,\r
-                        821702656,\r
+                        859,\r
+                        4,\r
+                        15,\r
                     }\r
                 }\r
                 28{\r
                     start:intvector{\r
-                        -8029,\r
-                        2052419584,\r
+                        877,\r
+                        4,\r
+                        16,\r
                     }\r
                 }\r
                 29{\r
                     start:intvector{\r
-                        -7971,\r
-                        739516416,\r
+                        885,\r
+                        2,\r
+                        21,\r
                     }\r
                 }\r
                 3{\r
                     start:intvector{\r
-                        -9431,\r
-                        -13598720,\r
+                        686,\r
+                        7,\r
+                        20,\r
                     }\r
                 }\r
                 30{\r
                     start:intvector{\r
-                        -7941,\r
-                        -558069760,\r
+                        889,\r
+                        4,\r
+                        27,\r
                     }\r
                 }\r
                 31{\r
                     start:intvector{\r
-                        -7875,\r
-                        -115511296,\r
+                        898,\r
+                        4,\r
+                        26,\r
                     }\r
                 }\r
                 32{\r
                     start:intvector{\r
-                        -7851,\r
-                        -1588326400,\r
+                        901,\r
+                        7,\r
+                        15,\r
                     }\r
                 }\r
                 33{\r
                     start:intvector{\r
-                        -7691,\r
-                        1527873536,\r
+                        923,\r
+                        4,\r
+                        11,\r
                     }\r
                 }\r
                 34{\r
                     start:intvector{\r
-                        -7632,\r
-                        1881603072,\r
+                        931,\r
+                        4,\r
+                        26,\r
                     }\r
                 }\r
                 35{\r
                     start:intvector{\r
-                        -7580,\r
-                        1714503680,\r
+                        938,\r
+                        5,\r
+                        22,\r
                     }\r
                 }\r
                 36{\r
                     start:intvector{\r
-                        -7515,\r
-                        -348537856,\r
+                        947,\r
+                        4,\r
+                        22,\r
                     }\r
                 }\r
                 37{\r
                     start:intvector{\r
-                        -7437,\r
-                        801380352,\r
+                        957,\r
+                        10,\r
+                        27,\r
                     }\r
                 }\r
                 38{\r
                     start:intvector{\r
-                        -7413,\r
-                        2093365248,\r
+                        961,\r
+                        2,\r
+                        16,\r
                     }\r
                 }\r
                 39{\r
                     start:intvector{\r
-                        -7388,\r
-                        1855182848,\r
+                        964,\r
+                        7,\r
+                        10,\r
                     }\r
                 }\r
                 4{\r
                     start:intvector{\r
-                        -9323,\r
-                        -938866688,\r
+                        701,\r
+                        3,\r
+                        21,\r
                     }\r
                 }\r
                 40{\r
                     start:intvector{\r
-                        -7358,\r
-                        -2120803328,\r
+                        968,\r
+                        8,\r
+                        13,\r
                     }\r
                 }\r
                 41{\r
                     start:intvector{\r
-                        -7346,\r
-                        1524156416,\r
+                        970,\r
+                        3,\r
+                        25,\r
                     }\r
                 }\r
                 42{\r
                     start:intvector{\r
-                        -7319,\r
-                        -712527872,\r
+                        973,\r
+                        12,\r
+                        20,\r
                     }\r
                 }\r
                 43{\r
                     start:intvector{\r
-                        -7300,\r
-                        -1446506496,\r
+                        976,\r
+                        7,\r
+                        13,\r
                     }\r
                 }\r
                 44{\r
                     start:intvector{\r
-                        -7282,\r
-                        620649472,\r
+                        978,\r
+                        11,\r
+                        29,\r
                     }\r
                 }\r
                 45{\r
                     start:intvector{\r
-                        -7250,\r
-                        1248896000,\r
+                        983,\r
+                        4,\r
+                        15,\r
                     }\r
                 }\r
                 46{\r
                     start:intvector{\r
-                        -7235,\r
-                        1019586560,\r
+                        985,\r
+                        4,\r
+                        27,\r
                     }\r
                 }\r
                 47{\r
                     start:intvector{\r
-                        -7221,\r
-                        2061244416,\r
+                        987,\r
+                        4,\r
+                        5,\r
                     }\r
                 }\r
                 48{\r
                     start:intvector{\r
-                        -7204,\r
-                        -1289766912,\r
+                        989,\r
+                        8,\r
+                        8,\r
                     }\r
                 }\r
                 49{\r
                     start:intvector{\r
-                        -7195,\r
-                        -546072576,\r
+                        990,\r
+                        11,\r
+                        7,\r
                     }\r
                 }\r
                 5{\r
                     start:intvector{\r
-                        -9300,\r
-                        -708714496,\r
+                        704,\r
+                        5,\r
+                        10,\r
                     }\r
                 }\r
                 50{\r
                     start:intvector{\r
-                        -7163,\r
-                        1785141248,\r
+                        995,\r
+                        2,\r
+                        22,\r
                     }\r
                 }\r
                 51{\r
                     start:intvector{\r
-                        -7134,\r
-                        5489664,\r
+                        999,\r
+                        1,\r
+                        13,\r
                     }\r
                 }\r
                 52{\r
                     start:intvector{\r
-                        -7094,\r
-                        -1992169472,\r
+                        1004,\r
+                        7,\r
+                        20,\r
                     }\r
                 }\r
                 53{\r
                     start:intvector{\r
-                        -7032,\r
-                        2126825472,\r
+                        1012,\r
+                        12,\r
+                        25,\r
                     }\r
                 }\r
                 54{\r
                     start:intvector{\r
-                        -7000,\r
-                        1199872000,\r
+                        1017,\r
+                        4,\r
+                        23,\r
                     }\r
                 }\r
                 55{\r
                     start:intvector{\r
-                        -6972,\r
-                        259187712,\r
+                        1021,\r
+                        2,\r
+                        2,\r
                     }\r
                 }\r
                 56{\r
                     start:intvector{\r
-                        -6947,\r
-                        1489805312,\r
+                        1024,\r
+                        7,\r
+                        13,\r
                     }\r
                 }\r
                 57{\r
                     start:intvector{\r
-                        -6918,\r
-                        -92013568,\r
+                        1028,\r
+                        7,\r
+                        25,\r
                     }\r
                 }\r
                 58{\r
                     start:intvector{\r
-                        -6853,\r
-                        818879488,\r
+                        1037,\r
+                        4,\r
+                        21,\r
                     }\r
                 }\r
                 59{\r
                     start:intvector{\r
-                        -6827,\r
-                        1383329792,\r
+                        1040,\r
+                        11,\r
+                        10,\r
                     }\r
                 }\r
                 6{\r
                     start:intvector{\r
-                        -9273,\r
-                        -810431488,\r
+                        708,\r
+                        1,\r
+                        11,\r
                     }\r
                 }\r
                 60{\r
                     start:intvector{\r
-                        -6798,\r
-                        -25689088,\r
+                        1044,\r
+                        11,\r
+                        24,\r
                     }\r
                 }\r
                 61{\r
                     start:intvector{\r
-                        -6787,\r
-                        743037952,\r
+                        1046,\r
+                        4,\r
+                        14,\r
                     }\r
                 }\r
                 62{\r
                     start:intvector{\r
-                        -6738,\r
-                        -1115726848,\r
+                        1053,\r
+                        1,\r
+                        11,\r
                     }\r
                 }\r
                 63{\r
                     start:intvector{\r
-                        -6696,\r
-                        429014016,\r
+                        1058,\r
+                        8,\r
+                        29,\r
                     }\r
                 }\r
                 64{\r
                     start:intvector{\r
-                        -6646,\r
-                        -22318080,\r
+                        1065,\r
+                        8,\r
+                        2,\r
                     }\r
                 }\r
                 65{\r
                     start:intvector{\r
-                        -6618,\r
-                        653564928,\r
+                        1069,\r
+                        4,\r
+                        13,\r
                     }\r
                 }\r
                 66{\r
                     start:intvector{\r
-                        -6579,\r
-                        -1973926912,\r
+                        1074,\r
+                        8,\r
+                        23,\r
                     }\r
                 }\r
                 67{\r
                     start:intvector{\r
-                        -6555,\r
-                        1366625280,\r
+                        1077,\r
+                        11,\r
+                        17,\r
                     }\r
                 }\r
                 68{\r
                     start:intvector{\r
-                        -6531,\r
-                        325810176,\r
+                        1081,\r
+                        2,\r
+                        10,\r
                     }\r
                 }\r
                 69{\r
                     start:intvector{\r
-                        -6509,\r
-                        185329664,\r
+                        1084,\r
+                        2,\r
+                        7,\r
                     }\r
                 }\r
                 7{\r
                     start:intvector{\r
-                        -9217,\r
-                        -186200064,\r
+                        715,\r
+                        9,\r
+                        2,\r
                     }\r
                 }\r
                 70{\r
                     start:intvector{\r
-                        -6486,\r
-                        1193081856,\r
+                        1087,\r
+                        4,\r
+                        7,\r
                     }\r
                 }\r
                 71{\r
                     start:intvector{\r
-                        -6430,\r
-                        -922454016,\r
+                        1094,\r
+                        12,\r
+                        15,\r
                     }\r
                 }\r
                 72{\r
                     start:intvector{\r
-                        -6415,\r
-                        -2015763456,\r
+                        1096,\r
+                        12,\r
+                        17,\r
                     }\r
                 }\r
                 73{\r
                     start:intvector{\r
-                        -6408,\r
-                        1504032768,\r
+                        1097,\r
+                        11,\r
+                        21,\r
                     }\r
                 }\r
                 74{\r
                     start:intvector{\r
-                        -6395,\r
-                        1397457920,\r
+                        1099,\r
+                        8,\r
+                        28,\r
                     }\r
                 }\r
                 75{\r
                     start:intvector{\r
-                        -6362,\r
-                        236337152,\r
+                        1104,\r
+                        2,\r
+                        10,\r
                     }\r
                 }\r
                 76{\r
                     start:intvector{\r
-                        -6347,\r
-                        -313539584,\r
+                        1106,\r
+                        4,\r
+                        9,\r
                     }\r
                 }\r
                 77{\r
                     start:intvector{\r
-                        -6330,\r
-                        -147183616,\r
+                        1108,\r
+                        8,\r
+                        3,\r
                     }\r
                 }\r
                 78{\r
                     start:intvector{\r
-                        -6315,\r
-                        980874240,\r
+                        1110,\r
+                        7,\r
+                        13,\r
                     }\r
                 }\r
                 79{\r
                     start:intvector{\r
-                        -6293,\r
-                        1185993728,\r
+                        1113,\r
+                        7,\r
+                        13,\r
                     }\r
                 }\r
                 8{\r
                     start:intvector{\r
-                        -9200,\r
-                        819123200,\r
+                        717,\r
+                        11,\r
+                        17,\r
                     }\r
                 }\r
                 80{\r
                     start:intvector{\r
-                        -6259,\r
-                        -97861632,\r
+                        1118,\r
+                        4,\r
+                        3,\r
                     }\r
                 }\r
                 81{\r
                     start:intvector{\r
-                        -6244,\r
-                        -759171072,\r
+                        1120,\r
+                        4,\r
+                        10,\r
                     }\r
                 }\r
                 82{\r
                     start:intvector{\r
-                        -6214,\r
-                        312377344,\r
+                        1124,\r
+                        4,\r
+                        3,\r
                     }\r
                 }\r
                 83{\r
                     start:intvector{\r
-                        -6201,\r
-                        1415402496,\r
+                        1126,\r
+                        1,\r
+                        22,\r
                     }\r
                 }\r
                 84{\r
                     start:intvector{\r
-                        -6164,\r
-                        872812544,\r
+                        1131,\r
+                        1,\r
+                        29,\r
                     }\r
                 }\r
                 85{\r
                     start:intvector{\r
-                        -6153,\r
-                        2012172288,\r
+                        1132,\r
+                        8,\r
+                        11,\r
                     }\r
                 }\r
                 86{\r
                     start:intvector{\r
-                        -6133,\r
-                        1562426368,\r
+                        1135,\r
+                        4,\r
+                        27,\r
                     }\r
                 }\r
                 87{\r
                     start:intvector{\r
-                        -6088,\r
-                        -223669248,\r
+                        1141,\r
+                        7,\r
+                        10,\r
                     }\r
                 }\r
                 88{\r
                     start:intvector{\r
-                        -6082,\r
-                        -764673024,\r
+                        1142,\r
+                        4,\r
+                        28,\r
                     }\r
                 }\r
                 89{\r
                     start:intvector{\r
-                        -6068,\r
-                        943152128,\r
+                        1144,\r
+                        2,\r
+                        23,\r
                     }\r
                 }\r
                 9{\r
                     start:intvector{\r
-                        -9155,\r
-                        -621372416,\r
+                        724,\r
+                        2,\r
+                        4,\r
                     }\r
                 }\r
                 90{\r
                     start:intvector{\r
-                        -6058,\r
-                        -1805488128,\r
+                        1145,\r
+                        7,\r
+                        22,\r
                     }\r
                 }\r
                 91{\r
                     start:intvector{\r
-                        -6017,\r
-                        405420032,\r
+                        1151,\r
+                        1,\r
+                        26,\r
                     }\r
                 }\r
                 92{\r
                     start:intvector{\r
-                        -5990,\r
-                        -1399264256,\r
+                        1154,\r
+                        10,\r
+                        28,\r
                     }\r
                 }\r
                 93{\r
                     start:intvector{\r
-                        -5979,\r
-                        -1383104512,\r
+                        1156,\r
+                        4,\r
+                        27,\r
                     }\r
                 }\r
                 94{\r
                     start:intvector{\r
-                        -5957,\r
-                        -1869185024,\r
+                        1159,\r
+                        4,\r
+                        20,\r
                     }\r
                 }\r
                 95{\r
                     start:intvector{\r
-                        -5952,\r
-                        -448021504,\r
+                        1160,\r
+                        1,\r
+                        10,\r
                     }\r
                 }\r
                 96{\r
                     start:intvector{\r
-                        -5939,\r
-                        111570944,\r
+                        1161,\r
+                        9,\r
+                        4,\r
                     }\r
                 }\r
                 97{\r
                     start:intvector{\r
-                        -5928,\r
-                        -2093636608,\r
+                        1163,\r
+                        3,\r
+                        29,\r
                     }\r
                 }\r
                 98{\r
                     start:intvector{\r
-                        -5912,\r
-                        -1779513344,\r
+                        1165,\r
+                        6,\r
+                        5,\r
                     }\r
                 }\r
                 99{\r
                     start:intvector{\r
-                        -5903,\r
-                        -1727019008,\r
+                        1166,\r
+                        8,\r
+                        27,\r
                     }\r
                 }\r
             }\r
@@ -1597,8 +1858,9 @@ supplementalData:table(nofallback){
             eras{\r
                 0{\r
                     start:intvector{\r
-                        -9905,\r
-                        -1165500416,\r
+                        622,\r
+                        1,\r
+                        1,\r
                     }\r
                 }\r
             }\r
@@ -1608,14 +1870,16 @@ supplementalData:table(nofallback){
             eras{\r
                 0{\r
                     end:intvector{\r
-                        -427,\r
-                        -727931905,\r
+                        1911,\r
+                        12,\r
+                        31,\r
                     }\r
                 }\r
                 1{\r
                     start:intvector{\r
-                        -427,\r
-                        -727931904,\r
+                        1912,\r
+                        1,\r
+                        1,\r
                     }\r
                 }\r
             }\r
@@ -1841,7 +2105,7 @@ supplementalData:table(nofallback){
             "islamic-tbla",\r
         }\r
     }\r
-    cldrVersion{"33.1"}\r
+    cldrVersion{"34"}\r
     codeMappings{\r
         {\r
             "AA",\r
@@ -3981,6 +4245,10 @@ supplementalData:table(nofallback){
             "858",\r
         }\r
         {\r
+            "UYW",\r
+            "927",\r
+        }\r
+        {\r
             "UZS",\r
             "860",\r
         }\r
@@ -3989,6 +4257,10 @@ supplementalData:table(nofallback){
             "937",\r
         }\r
         {\r
+            "VES",\r
+            "928",\r
+        }\r
+        {\r
             "VND",\r
             "704",\r
         }\r
@@ -4159,8 +4431,10 @@ supplementalData:table(nofallback){
                 "MGF",\r
                 "MKN",\r
                 "MLF",\r
+                "MRO",\r
                 "MTL",\r
                 "MTP",\r
+                "MVP",\r
                 "MXP",\r
                 "MXV",\r
                 "MZE",\r
@@ -4193,6 +4467,7 @@ supplementalData:table(nofallback){
                 "UYI",\r
                 "UYP",\r
                 "VEB",\r
+                "VEF",\r
                 "VNN",\r
                 "XAG",\r
                 "XAU",\r
@@ -4310,7 +4585,7 @@ supplementalData:table(nofallback){
                 "MMK",\r
                 "MNT",\r
                 "MOP",\r
-                "MRO",\r
+                "MRU",\r
                 "MUR",\r
                 "MVR",\r
                 "MWK",\r
@@ -4364,7 +4639,7 @@ supplementalData:table(nofallback){
                 "USD",\r
                 "UYU",\r
                 "UZS",\r
-                "VEF",\r
+                "VES",\r
                 "VND",\r
                 "VUV",\r
                 "WST",\r
@@ -4770,7 +5045,7 @@ supplementalData:table(nofallback){
                 "cu",\r
                 "cua~c",\r
                 "cug~m",\r
-                "cuo~x",\r
+                "cuo~y",\r
                 "cv",\r
                 "cvg",\r
                 "cvn",\r
@@ -5104,7 +5379,7 @@ supplementalData:table(nofallback){
                 "gjr",\r
                 "gju",\r
                 "gka",\r
-                "gke",\r
+                "gkd~e",\r
                 "gkn~p",\r
                 "gku",\r
                 "gl",\r
@@ -5123,8 +5398,7 @@ supplementalData:table(nofallback){
                 "gmu~z",\r
                 "gn",\r
                 "gna~e",\r
-                "gng~i",\r
-                "gnk~n",\r
+                "gng~n",\r
                 "gnq~r",\r
                 "gnt~u",\r
                 "gnw",\r
@@ -5175,7 +5449,7 @@ supplementalData:table(nofallback){
                 "gyb",\r
                 "gyd~g",\r
                 "gyi",\r
-                "gyl~n",\r
+                "gyl~o",\r
                 "gyr",\r
                 "gyy",\r
                 "gza",\r
@@ -5212,6 +5486,7 @@ supplementalData:table(nofallback){
                 "hka",\r
                 "hke",\r
                 "hkk",\r
+                "hkn",\r
                 "hks",\r
                 "hla~b",\r
                 "hld~e",\r
@@ -5268,7 +5543,7 @@ supplementalData:table(nofallback){
                 "hwo",\r
                 "hy",\r
                 "hya",\r
-                "hyx",\r
+                "hyw~x",\r
                 "hz",\r
                 "ia",\r
                 "iai",\r
@@ -5646,7 +5921,7 @@ supplementalData:table(nofallback){
                 "lwg~h",\r
                 "lwl~m",\r
                 "lwo",\r
-                "lwt~u",\r
+                "lws~u",\r
                 "lww",\r
                 "lya",\r
                 "lyg",\r
@@ -5768,8 +6043,7 @@ supplementalData:table(nofallback){
                 "nlc",\r
                 "nle",\r
                 "nlg",\r
-                "nli~l",\r
-                "nln~o",\r
+                "nli~o",\r
                 "nlq~r",\r
                 "nlu~z",\r
                 "nma~z",\r
@@ -5836,6 +6110,7 @@ supplementalData:table(nofallback){
                 "ny",\r
                 "nyb~y",\r
                 "nza~b",\r
+                "nzd",\r
                 "nzi",\r
                 "nzk",\r
                 "nzm",\r
@@ -5952,8 +6227,7 @@ supplementalData:table(nofallback){
                 "pao~z",\r
                 "pbb~c",\r
                 "pbe~i",\r
-                "pbl",\r
-                "pbn~p",\r
+                "pbl~p",\r
                 "pbr~t",\r
                 "pbv",\r
                 "pby~z",\r
@@ -6317,7 +6591,7 @@ supplementalData:table(nofallback){
                 "te",\r
                 "tea~i",\r
                 "tek",\r
-                "tem~y",\r
+                "tem~z",\r
                 "tfi",\r
                 "tfn~o",\r
                 "tfr",\r
@@ -7044,7 +7318,7 @@ supplementalData:table(nofallback){
                 "QM~N",\r
                 "QP~T",\r
                 "QV~Z",\r
-                "XA~J",\r
+                "XC~J",\r
                 "XL~Z",\r
             }\r
             regular{\r
@@ -7169,12 +7443,14 @@ supplementalData:table(nofallback){
                 "ZM",\r
                 "ZW",\r
             }\r
+            special{"XA~B"}\r
             unknown{"ZZ"}\r
         }\r
         script{\r
             deprecated{"Qaai"}\r
             private_use{\r
-                "Qaaa~h",\r
+                "Qaaa~f",\r
+                "Qaah",\r
                 "Qaaj~z",\r
                 "Qaba~x",\r
             }\r
@@ -7333,6 +7609,7 @@ supplementalData:table(nofallback){
                 "Zyyy",\r
             }\r
             special{\r
+                "Qaag",\r
                 "Zmth",\r
                 "Zsye",\r
                 "Zsym",\r
@@ -7384,6 +7661,12 @@ supplementalData:table(nofallback){
                 "cdor",\r
                 "ci01~9",\r
                 "ci10~9",\r
+                "cn11~5",\r
+                "cn21~3",\r
+                "cn31~7",\r
+                "cn41~6",\r
+                "cn50~4",\r
+                "cn61~5",\r
                 "cn71",\r
                 "cn91~2",\r
                 "cz10a~f",\r
@@ -7469,6 +7752,10 @@ supplementalData:table(nofallback){
                 "lud",\r
                 "lug",\r
                 "lul",\r
+                "ma13~6",\r
+                "mammd",\r
+                "mammn",\r
+                "masyb",\r
                 "mk01",\r
                 "mk09",\r
                 "mk15",\r
@@ -7498,7 +7785,6 @@ supplementalData:table(nofallback){
                 "twtnq",\r
                 "twtpq",\r
                 "twtxq",\r
-                "ug331",\r
                 "usas",\r
                 "usgu",\r
                 "usmp",\r
@@ -7990,12 +8276,37 @@ supplementalData:table(nofallback){
                 "cmou",\r
                 "cmsu",\r
                 "cmsw",\r
-                "cn11~5",\r
-                "cn21~3",\r
-                "cn31~7",\r
-                "cn41~6",\r
-                "cn50~4",\r
-                "cn61~5",\r
+                "cnah",\r
+                "cnbj",\r
+                "cncq",\r
+                "cnfj",\r
+                "cngd",\r
+                "cngs",\r
+                "cngx",\r
+                "cngz",\r
+                "cnha~b",\r
+                "cnhe",\r
+                "cnhi",\r
+                "cnhk~l",\r
+                "cnhn",\r
+                "cnjl",\r
+                "cnjs",\r
+                "cnjx",\r
+                "cnln",\r
+                "cnmo",\r
+                "cnnm",\r
+                "cnnx",\r
+                "cnqh",\r
+                "cnsc~d",\r
+                "cnsh",\r
+                "cnsn",\r
+                "cnsx",\r
+                "cntj",\r
+                "cntw",\r
+                "cnxj",\r
+                "cnxz",\r
+                "cnyn",\r
+                "cnzj",\r
                 "coama",\r
                 "coant",\r
                 "coara",\r
@@ -8956,7 +9267,7 @@ supplementalData:table(nofallback){
                 "knn",\r
                 "kp01~9",\r
                 "kp10",\r
-                "kp13",\r
+                "kp13~4",\r
                 "kr11",\r
                 "kr26~9",\r
                 "kr30~1",\r
@@ -9121,7 +9432,7 @@ supplementalData:table(nofallback){
                 "lyws",\r
                 "lyza",\r
                 "ma01~9",\r
-                "ma10~6",\r
+                "ma10~2",\r
                 "maagd",\r
                 "maaou",\r
                 "maasz",\r
@@ -9130,17 +9441,20 @@ supplementalData:table(nofallback){
                 "maber~s",\r
                 "mabod",\r
                 "mabom",\r
+                "mabrr",\r
                 "macas",\r
                 "mache",\r
                 "machi",\r
                 "macht",\r
+                "madri",\r
                 "maerr",\r
                 "maesi",\r
                 "maesm",\r
                 "mafah",\r
                 "mafes",\r
                 "mafig",\r
-                "mague",\r
+                "mafqh",\r
+                "mague~f",\r
                 "mahaj",\r
                 "mahao",\r
                 "mahoc",\r
@@ -9154,10 +9468,11 @@ supplementalData:table(nofallback){
                 "makhn~o",\r
                 "malaa",\r
                 "malar",\r
+                "mamar",\r
+                "mamdf",\r
                 "mamed",\r
                 "mamek",\r
-                "mammd",\r
-                "mammn",\r
+                "mamid",\r
                 "mamoh",\r
                 "mamou",\r
                 "manad",\r
@@ -9165,23 +9480,29 @@ supplementalData:table(nofallback){
                 "maoua",\r
                 "maoud",\r
                 "maouj",\r
+                "maouz",\r
                 "marab",\r
+                "mareh",\r
                 "masaf",\r
                 "masal",\r
                 "masef",\r
                 "maset",\r
-                "masik",\r
+                "masib",\r
+                "masif",\r
+                "masik~l",\r
                 "maskh",\r
-                "masyb",\r
+                "mataf",\r
                 "matai",\r
                 "matao",\r
                 "matar",\r
                 "matat",\r
                 "mataz",\r
                 "matet",\r
+                "matin",\r
                 "matiz",\r
                 "matng",\r
                 "matnt",\r
+                "mayus",\r
                 "mazag",\r
                 "mccl",\r
                 "mcco",\r
@@ -9279,7 +9600,9 @@ supplementalData:table(nofallback){
                 "mk78",\r
                 "mk80~3",\r
                 "mk85",\r
-                "ml1~8",\r
+                "ml1",\r
+                "ml10",\r
+                "ml2~9",\r
                 "mlbko",\r
                 "mm01~7",\r
                 "mm11~8",\r
@@ -9738,6 +10061,7 @@ supplementalData:table(nofallback){
                 "qakh",\r
                 "qams",\r
                 "qara",\r
+                "qash",\r
                 "qaus",\r
                 "qawa",\r
                 "qaza",\r
@@ -10187,18 +10511,19 @@ supplementalData:table(nofallback){
                 "ua77",\r
                 "ug101~9",\r
                 "ug110~9",\r
-                "ug120~4",\r
+                "ug120~5",\r
                 "ug201~9",\r
                 "ug210~9",\r
                 "ug220~9",\r
-                "ug230~2",\r
+                "ug230~4",\r
                 "ug301~9",\r
                 "ug310~9",\r
                 "ug320~9",\r
-                "ug330",\r
+                "ug330~2",\r
                 "ug401~9",\r
                 "ug410~9",\r
-                "ug420~6",\r
+                "ug420~9",\r
+                "ug430~1",\r
                 "ugc",\r
                 "uge",\r
                 "ugn",\r
@@ -10634,6 +10959,7 @@ supplementalData:table(nofallback){
             }\r
         }\r
         unit{\r
+            deprecated{"proportion-karat"}\r
             regular{\r
                 "acceleration-g-force",\r
                 "acceleration-meter-per-second-squared",\r
@@ -10788,9 +11114,11 @@ supplementalData:table(nofallback){
                 "alalc97",\r
                 "aluku",\r
                 "ao1990",\r
+                "aranes",\r
                 "arevela",\r
                 "arevmda",\r
                 "asante",\r
+                "auvern",\r
                 "baku1926",\r
                 "balanka",\r
                 "barla",\r
@@ -10800,15 +11128,22 @@ supplementalData:table(nofallback){
                 "biske",\r
                 "bohoric",\r
                 "boont",\r
+                "cisaup",\r
                 "colb1945",\r
                 "cornu",\r
+                "creiss",\r
                 "dajnko",\r
                 "ekavsk",\r
                 "emodeng",\r
                 "fonipa",\r
+                "fonkirsh",\r
                 "fonnapa",\r
                 "fonupa",\r
                 "fonxsamp",\r
+                "gascon",\r
+                "grclass",\r
+                "grital",\r
+                "grmistr",\r
                 "hepburn",\r
                 "heploc",\r
                 "hognorsk",\r
@@ -10822,6 +11157,8 @@ supplementalData:table(nofallback){
                 "kociewie",\r
                 "kscor",\r
                 "laukika",\r
+                "lemosin",\r
+                "lengadoc",\r
                 "lipaw",\r
                 "luna1918",\r
                 "metelko",\r
@@ -10829,6 +11166,7 @@ supplementalData:table(nofallback){
                 "ndyuka",\r
                 "nedis",\r
                 "newfound",\r
+                "nicard",\r
                 "njiva",\r
                 "nulik",\r
                 "osojs",\r
@@ -10838,6 +11176,7 @@ supplementalData:table(nofallback){
                 "petr1708",\r
                 "pinyin",\r
                 "polyton",\r
+                "provenc",\r
                 "puter",\r
                 "rigik",\r
                 "rozaj",\r
@@ -10859,6 +11198,7 @@ supplementalData:table(nofallback){
                 "vaidika",\r
                 "valencia",\r
                 "vallader",\r
+                "vivaraup",\r
                 "wadegile",\r
                 "xsistemo",\r
             }\r
@@ -12378,7 +12718,10 @@ supplementalData:table(nofallback){
         }\r
         ff{\r
             primary{\r
-                scripts{"Latn"}\r
+                scripts{\r
+                    "Latn",\r
+                    "Adlm",\r
+                }\r
             }\r
             secondary{\r
                 territories{\r
@@ -13903,7 +14246,7 @@ supplementalData:table(nofallback){
             }\r
         }\r
         lui{\r
-            primary{\r
+            secondary{\r
                 scripts{"Latn"}\r
             }\r
         }\r
@@ -18759,6 +19102,7 @@ supplementalData:table(nofallback){
             "vai_Latn",\r
             "zh_Hant",\r
             "yue_Hans",\r
+            "ff_Adlm",\r
         }\r
         zh_Hant_HK{"zh_Hant_MO"}\r
     }\r
@@ -20776,10 +21120,6 @@ supplementalData:table(nofallback){
             "ma10",\r
             "ma11",\r
             "ma12",\r
-            "ma13",\r
-            "ma14",\r
-            "ma15",\r
-            "ma16",\r
         }\r
         MC{\r
             "mccl",\r
@@ -24036,95 +24376,99 @@ supplementalData:table(nofallback){
         ma01{\r
             "mache",\r
             "mafah",\r
+            "mahoc",\r
             "malar",\r
+            "mamdf",\r
+            "maouz",\r
             "matet",\r
             "matng",\r
         }\r
         ma02{\r
-            "maken",\r
-            "masik",\r
-        }\r
-        ma03{\r
-            "mahoc",\r
-            "matao",\r
-            "mataz",\r
-        }\r
-        ma04{\r
             "maber",\r
+            "madri",\r
             "mafig",\r
+            "maguf",\r
             "majra",\r
             "manad",\r
             "maouj",\r
             "matai",\r
         }\r
-        ma05{\r
+        ma03{\r
             "mabom",\r
             "mafes",\r
-            "mamou",\r
-            "masef",\r
-        }\r
-        ma06{\r
-            "maerr",\r
             "mahaj",\r
             "maifr",\r
-            "makhn",\r
             "mamek",\r
+            "mamou",\r
+            "masef",\r
+            "matao",\r
+            "mataz",\r
         }\r
-        ma07{\r
+        ma04{\r
+            "maken",\r
             "makhe",\r
+            "manou",\r
             "marab",\r
             "masal",\r
+            "masil",\r
             "maskh",\r
         }\r
-        ma08{\r
-            "macas",\r
-            "mamed",\r
-            "mamoh",\r
-            "manou",\r
-        }\r
-        ma09{\r
-            "mabes",\r
+        ma05{\r
+            "maazi",\r
+            "mabem",\r
+            "mafqh",\r
+            "makhn",\r
             "makho",\r
-            "maset",\r
         }\r
-        ma10{\r
+        ma06{\r
+            "mabes",\r
+            "mabrr",\r
+            "macht",\r
             "majdi",\r
-            "masaf",\r
+            "mamed",\r
+            "mamoh",\r
+            "masib",\r
+            "masik",\r
         }\r
-        ma11{\r
+        ma07{\r
             "machi",\r
             "maesi",\r
             "mahao",\r
             "makes",\r
-            "mammd",\r
-            "mammn",\r
-            "masyb",\r
+            "mamar",\r
+            "mareh",\r
+            "masaf",\r
+            "mayus",\r
         }\r
-        ma12{\r
-            "maazi",\r
-            "mabem",\r
+        ma08{\r
+            "macas",\r
+            "maerr",\r
+            "mamid",\r
+            "maoua",\r
+            "maset",\r
+            "matin",\r
+            "mazag",\r
         }\r
-        ma13{\r
+        ma09{\r
             "maagd",\r
-            "macht",\r
             "maine",\r
-            "maoua",\r
             "matar",\r
+            "matat",\r
             "matiz",\r
-            "mazag",\r
         }\r
-        ma14{\r
+        ma10{\r
             "maasz",\r
-            "maesm",\r
             "mague",\r
-            "matat",\r
+            "masif",\r
             "matnt",\r
         }\r
-        ma15{\r
+        ma11{\r
             "mabod",\r
+            "maesm",\r
             "malaa",\r
+            "mataf",\r
         }\r
-        ma16{\r
+        ma12{\r
             "maaou",\r
             "maoud",\r
         }\r
@@ -24508,1636 +24852,330 @@ supplementalData:table(nofallback){
             "ug431",\r
         }\r
     }\r
-    telephoneCodeData{\r
+    territoryContainment{\r
         001{\r
-            {\r
-                code{"388"}\r
-            }\r
-            {\r
-                code{"800"}\r
-            }\r
-            {\r
-                code{"808"}\r
-            }\r
-            {\r
-                code{"870"}\r
-            }\r
-            {\r
-                code{"871"}\r
-            }\r
-            {\r
-                code{"872"}\r
-            }\r
-            {\r
-                code{"873"}\r
-            }\r
-            {\r
-                code{"874"}\r
-            }\r
-            {\r
-                code{"878"}\r
-            }\r
-            {\r
-                code{"881"}\r
-            }\r
-            {\r
-                code{"882"}\r
-            }\r
-            {\r
-                code{"883"}\r
-            }\r
-            {\r
-                code{"888"}\r
-            }\r
-            {\r
-                code{"979"}\r
-            }\r
-            {\r
-                code{"991"}\r
-            }\r
+            "019",\r
+            "002",\r
+            "150",\r
+            "142",\r
+            "009",\r
         }\r
-        AC{\r
-            {\r
-                code{"247"}\r
-            }\r
+        002{\r
+            "015",\r
+            "011",\r
+            "017",\r
+            "014",\r
+            "018",\r
         }\r
-        AD{\r
-            {\r
-                code{"376"}\r
-            }\r
+        005{\r
+            "AR",\r
+            "BO",\r
+            "BR",\r
+            "BV",\r
+            "CL",\r
+            "CO",\r
+            "EC",\r
+            "FK",\r
+            "GF",\r
+            "GS",\r
+            "GY",\r
+            "PE",\r
+            "PY",\r
+            "SR",\r
+            "UY",\r
+            "VE",\r
         }\r
-        AE{\r
-            {\r
-                code{"971"}\r
-            }\r
+        009{\r
+            "053",\r
+            "054",\r
+            "057",\r
+            "061",\r
+            "QO",\r
         }\r
-        AF{\r
-            {\r
-                code{"93"}\r
-            }\r
+        011{\r
+            "BF",\r
+            "BJ",\r
+            "CI",\r
+            "CV",\r
+            "GH",\r
+            "GM",\r
+            "GN",\r
+            "GW",\r
+            "LR",\r
+            "ML",\r
+            "MR",\r
+            "NE",\r
+            "NG",\r
+            "SH",\r
+            "SL",\r
+            "SN",\r
+            "TG",\r
         }\r
-        AG{\r
-            {\r
-                code{"1"}\r
-            }\r
+        013{\r
+            "BZ",\r
+            "CR",\r
+            "GT",\r
+            "HN",\r
+            "MX",\r
+            "NI",\r
+            "PA",\r
+            "SV",\r
         }\r
-        AI{\r
-            {\r
-                code{"1"}\r
-            }\r
+        014{\r
+            "BI",\r
+            "DJ",\r
+            "ER",\r
+            "ET",\r
+            "IO",\r
+            "KE",\r
+            "KM",\r
+            "MG",\r
+            "MU",\r
+            "MW",\r
+            "MZ",\r
+            "RE",\r
+            "RW",\r
+            "SC",\r
+            "SO",\r
+            "SS",\r
+            "TF",\r
+            "TZ",\r
+            "UG",\r
+            "YT",\r
+            "ZM",\r
+            "ZW",\r
         }\r
-        AL{\r
-            {\r
-                code{"355"}\r
-            }\r
+        015{\r
+            "DZ",\r
+            "EG",\r
+            "EH",\r
+            "LY",\r
+            "MA",\r
+            "SD",\r
+            "TN",\r
+            "EA",\r
+            "IC",\r
         }\r
-        AM{\r
-            {\r
-                code{"374"}\r
-            }\r
+        017{\r
+            "AO",\r
+            "CD",\r
+            "CF",\r
+            "CG",\r
+            "CM",\r
+            "GA",\r
+            "GQ",\r
+            "ST",\r
+            "TD",\r
         }\r
-        AO{\r
-            {\r
-                code{"244"}\r
-            }\r
+        018{\r
+            "BW",\r
+            "LS",\r
+            "NA",\r
+            "SZ",\r
+            "ZA",\r
         }\r
-        AQ{\r
-            {\r
-                code{"672"}\r
-            }\r
+        019{\r
+            "021",\r
+            "013",\r
+            "029",\r
+            "005",\r
         }\r
-        AR{\r
-            {\r
-                code{"54"}\r
-            }\r
+        021{\r
+            "BM",\r
+            "CA",\r
+            "GL",\r
+            "PM",\r
+            "US",\r
         }\r
-        AS{\r
-            {\r
-                code{"1"}\r
-            }\r
+        029{\r
+            "AG",\r
+            "AI",\r
+            "AW",\r
+            "BB",\r
+            "BL",\r
+            "BQ",\r
+            "BS",\r
+            "CU",\r
+            "CW",\r
+            "DM",\r
+            "DO",\r
+            "GD",\r
+            "GP",\r
+            "HT",\r
+            "JM",\r
+            "KN",\r
+            "KY",\r
+            "LC",\r
+            "MF",\r
+            "MQ",\r
+            "MS",\r
+            "PR",\r
+            "SX",\r
+            "TC",\r
+            "TT",\r
+            "VC",\r
+            "VG",\r
+            "VI",\r
         }\r
-        AT{\r
-            {\r
-                code{"43"}\r
-            }\r
+        030{\r
+            "CN",\r
+            "HK",\r
+            "JP",\r
+            "KP",\r
+            "KR",\r
+            "MN",\r
+            "MO",\r
+            "TW",\r
         }\r
-        AU{\r
-            {\r
-                code{"61"}\r
-            }\r
+        034{\r
+            "AF",\r
+            "BD",\r
+            "BT",\r
+            "IN",\r
+            "IR",\r
+            "LK",\r
+            "MV",\r
+            "NP",\r
+            "PK",\r
         }\r
-        AW{\r
-            {\r
-                code{"297"}\r
-            }\r
+        035{\r
+            "BN",\r
+            "ID",\r
+            "KH",\r
+            "LA",\r
+            "MM",\r
+            "MY",\r
+            "PH",\r
+            "SG",\r
+            "TH",\r
+            "TL",\r
+            "VN",\r
         }\r
-        AX{\r
-            {\r
-                code{"358"}\r
-            }\r
+        039{\r
+            "AD",\r
+            "AL",\r
+            "BA",\r
+            "ES",\r
+            "GI",\r
+            "GR",\r
+            "HR",\r
+            "IT",\r
+            "ME",\r
+            "MK",\r
+            "MT",\r
+            "RS",\r
+            "PT",\r
+            "SI",\r
+            "SM",\r
+            "VA",\r
+            "XK",\r
         }\r
-        AZ{\r
-            {\r
-                code{"994"}\r
-            }\r
+        053{\r
+            "AU",\r
+            "CC",\r
+            "CX",\r
+            "HM",\r
+            "NF",\r
+            "NZ",\r
         }\r
-        BA{\r
-            {\r
-                code{"387"}\r
-            }\r
+        054{\r
+            "FJ",\r
+            "NC",\r
+            "PG",\r
+            "SB",\r
+            "VU",\r
         }\r
-        BB{\r
-            {\r
-                code{"1"}\r
-            }\r
+        057{\r
+            "FM",\r
+            "GU",\r
+            "KI",\r
+            "MH",\r
+            "MP",\r
+            "NR",\r
+            "PW",\r
+            "UM",\r
         }\r
-        BD{\r
-            {\r
-                code{"880"}\r
-            }\r
+        061{\r
+            "AS",\r
+            "CK",\r
+            "NU",\r
+            "PF",\r
+            "PN",\r
+            "TK",\r
+            "TO",\r
+            "TV",\r
+            "WF",\r
+            "WS",\r
         }\r
-        BE{\r
-            {\r
-                code{"32"}\r
-            }\r
+        142{\r
+            "145",\r
+            "143",\r
+            "030",\r
+            "034",\r
+            "035",\r
         }\r
-        BF{\r
-            {\r
-                code{"226"}\r
-            }\r
+        143{\r
+            "TM",\r
+            "TJ",\r
+            "KG",\r
+            "KZ",\r
+            "UZ",\r
         }\r
-        BG{\r
-            {\r
-                code{"359"}\r
-            }\r
+        145{\r
+            "AE",\r
+            "AM",\r
+            "AZ",\r
+            "BH",\r
+            "CY",\r
+            "GE",\r
+            "IL",\r
+            "IQ",\r
+            "JO",\r
+            "KW",\r
+            "LB",\r
+            "OM",\r
+            "PS",\r
+            "QA",\r
+            "SA",\r
+            "SY",\r
+            "TR",\r
+            "YE",\r
         }\r
-        BH{\r
-            {\r
-                code{"973"}\r
-            }\r
+        150{\r
+            "154",\r
+            "155",\r
+            "151",\r
+            "039",\r
         }\r
-        BI{\r
-            {\r
-                code{"257"}\r
-            }\r
+        151{\r
+            "BG",\r
+            "BY",\r
+            "CZ",\r
+            "HU",\r
+            "MD",\r
+            "PL",\r
+            "RO",\r
+            "RU",\r
+            "SK",\r
+            "UA",\r
         }\r
-        BJ{\r
-            {\r
-                code{"229"}\r
-            }\r
-        }\r
-        BL{\r
-            {\r
-                code{"590"}\r
-            }\r
-        }\r
-        BM{\r
-            {\r
-                code{"1"}\r
-            }\r
-        }\r
-        BN{\r
-            {\r
-                code{"673"}\r
-            }\r
-        }\r
-        BO{\r
-            {\r
-                code{"591"}\r
-            }\r
-        }\r
-        BQ{\r
-            {\r
-                code{"599"}\r
-            }\r
-        }\r
-        BR{\r
-            {\r
-                code{"55"}\r
-            }\r
-        }\r
-        BS{\r
-            {\r
-                code{"1"}\r
-            }\r
-        }\r
-        BT{\r
-            {\r
-                code{"975"}\r
-            }\r
-        }\r
-        BW{\r
-            {\r
-                code{"267"}\r
-            }\r
-        }\r
-        BY{\r
-            {\r
-                code{"375"}\r
-            }\r
-        }\r
-        BZ{\r
-            {\r
-                code{"501"}\r
-            }\r
-        }\r
-        CA{\r
-            {\r
-                code{"1"}\r
-            }\r
-        }\r
-        CC{\r
-            {\r
-                code{"61"}\r
-            }\r
-        }\r
-        CD{\r
-            {\r
-                code{"243"}\r
-            }\r
-        }\r
-        CF{\r
-            {\r
-                code{"236"}\r
-            }\r
-        }\r
-        CG{\r
-            {\r
-                code{"242"}\r
-            }\r
-        }\r
-        CH{\r
-            {\r
-                code{"41"}\r
-            }\r
-        }\r
-        CI{\r
-            {\r
-                code{"225"}\r
-            }\r
-        }\r
-        CK{\r
-            {\r
-                code{"682"}\r
-            }\r
-        }\r
-        CL{\r
-            {\r
-                code{"56"}\r
-            }\r
-        }\r
-        CM{\r
-            {\r
-                code{"237"}\r
-            }\r
-        }\r
-        CN{\r
-            {\r
-                code{"86"}\r
-            }\r
-        }\r
-        CO{\r
-            {\r
-                code{"57"}\r
-            }\r
-        }\r
-        CR{\r
-            {\r
-                code{"506"}\r
-            }\r
-        }\r
-        CU{\r
-            {\r
-                code{"53"}\r
-            }\r
-        }\r
-        CV{\r
-            {\r
-                code{"238"}\r
-            }\r
-        }\r
-        CW{\r
-            {\r
-                code{"599"}\r
-            }\r
-        }\r
-        CX{\r
-            {\r
-                code{"61"}\r
-            }\r
-        }\r
-        CY{\r
-            {\r
-                code{"357"}\r
-            }\r
-        }\r
-        CZ{\r
-            {\r
-                code{"420"}\r
-            }\r
-        }\r
-        DE{\r
-            {\r
-                code{"49"}\r
-            }\r
-        }\r
-        DJ{\r
-            {\r
-                code{"253"}\r
-            }\r
-        }\r
-        DK{\r
-            {\r
-                code{"45"}\r
-            }\r
-        }\r
-        DM{\r
-            {\r
-                code{"1"}\r
-            }\r
-        }\r
-        DO{\r
-            {\r
-                code{"1"}\r
-            }\r
-        }\r
-        DZ{\r
-            {\r
-                code{"213"}\r
-            }\r
-        }\r
-        EC{\r
-            {\r
-                code{"593"}\r
-            }\r
-        }\r
-        EE{\r
-            {\r
-                code{"372"}\r
-            }\r
-        }\r
-        EG{\r
-            {\r
-                code{"20"}\r
-            }\r
-        }\r
-        EH{\r
-            {\r
-                code{"212"}\r
-            }\r
-        }\r
-        ER{\r
-            {\r
-                code{"291"}\r
-            }\r
-        }\r
-        ES{\r
-            {\r
-                code{"34"}\r
-            }\r
-        }\r
-        ET{\r
-            {\r
-                code{"251"}\r
-            }\r
-        }\r
-        FI{\r
-            {\r
-                code{"358"}\r
-            }\r
-        }\r
-        FJ{\r
-            {\r
-                code{"679"}\r
-            }\r
-        }\r
-        FK{\r
-            {\r
-                code{"500"}\r
-            }\r
-        }\r
-        FM{\r
-            {\r
-                code{"691"}\r
-            }\r
-        }\r
-        FO{\r
-            {\r
-                code{"298"}\r
-            }\r
-        }\r
-        FR{\r
-            {\r
-                code{"33"}\r
-            }\r
-        }\r
-        GA{\r
-            {\r
-                code{"241"}\r
-            }\r
-        }\r
-        GB{\r
-            {\r
-                code{"44"}\r
-            }\r
-        }\r
-        GD{\r
-            {\r
-                code{"1"}\r
-            }\r
-        }\r
-        GE{\r
-            {\r
-                code{"995"}\r
-            }\r
-        }\r
-        GF{\r
-            {\r
-                code{"594"}\r
-            }\r
-        }\r
-        GG{\r
-            {\r
-                code{"44"}\r
-            }\r
-        }\r
-        GH{\r
-            {\r
-                code{"233"}\r
-            }\r
-        }\r
-        GI{\r
-            {\r
-                code{"350"}\r
-            }\r
-        }\r
-        GL{\r
-            {\r
-                code{"299"}\r
-            }\r
-        }\r
-        GM{\r
-            {\r
-                code{"220"}\r
-            }\r
-        }\r
-        GN{\r
-            {\r
-                code{"224"}\r
-            }\r
-        }\r
-        GP{\r
-            {\r
-                code{"590"}\r
-            }\r
-        }\r
-        GQ{\r
-            {\r
-                code{"240"}\r
-            }\r
-        }\r
-        GR{\r
-            {\r
-                code{"30"}\r
-            }\r
-        }\r
-        GS{\r
-            {\r
-                code{"500"}\r
-            }\r
-        }\r
-        GT{\r
-            {\r
-                code{"502"}\r
-            }\r
-        }\r
-        GU{\r
-            {\r
-                code{"1"}\r
-            }\r
-        }\r
-        GW{\r
-            {\r
-                code{"245"}\r
-            }\r
-        }\r
-        GY{\r
-            {\r
-                code{"592"}\r
-            }\r
-        }\r
-        HK{\r
-            {\r
-                code{"852"}\r
-            }\r
-        }\r
-        HN{\r
-            {\r
-                code{"504"}\r
-            }\r
-        }\r
-        HR{\r
-            {\r
-                code{"385"}\r
-            }\r
-        }\r
-        HT{\r
-            {\r
-                code{"509"}\r
-            }\r
-        }\r
-        HU{\r
-            {\r
-                code{"36"}\r
-            }\r
-        }\r
-        ID{\r
-            {\r
-                code{"62"}\r
-            }\r
-        }\r
-        IE{\r
-            {\r
-                code{"353"}\r
-            }\r
-        }\r
-        IL{\r
-            {\r
-                code{"972"}\r
-            }\r
-        }\r
-        IM{\r
-            {\r
-                code{"44"}\r
-            }\r
-        }\r
-        IN{\r
-            {\r
-                code{"91"}\r
-            }\r
-        }\r
-        IO{\r
-            {\r
-                code{"246"}\r
-            }\r
-        }\r
-        IQ{\r
-            {\r
-                code{"964"}\r
-            }\r
-        }\r
-        IR{\r
-            {\r
-                code{"98"}\r
-            }\r
-        }\r
-        IS{\r
-            {\r
-                code{"354"}\r
-            }\r
-        }\r
-        IT{\r
-            {\r
-                code{"39"}\r
-            }\r
-        }\r
-        JE{\r
-            {\r
-                code{"44"}\r
-            }\r
-        }\r
-        JM{\r
-            {\r
-                code{"1"}\r
-            }\r
-        }\r
-        JO{\r
-            {\r
-                code{"962"}\r
-            }\r
-        }\r
-        JP{\r
-            {\r
-                code{"81"}\r
-            }\r
-        }\r
-        KE{\r
-            {\r
-                code{"254"}\r
-            }\r
-        }\r
-        KG{\r
-            {\r
-                code{"996"}\r
-            }\r
-        }\r
-        KH{\r
-            {\r
-                code{"855"}\r
-            }\r
-        }\r
-        KI{\r
-            {\r
-                code{"686"}\r
-            }\r
-        }\r
-        KM{\r
-            {\r
-                code{"269"}\r
-            }\r
-        }\r
-        KN{\r
-            {\r
-                code{"1"}\r
-            }\r
-        }\r
-        KP{\r
-            {\r
-                code{"850"}\r
-            }\r
-        }\r
-        KR{\r
-            {\r
-                code{"82"}\r
-            }\r
-        }\r
-        KW{\r
-            {\r
-                code{"965"}\r
-            }\r
-        }\r
-        KY{\r
-            {\r
-                code{"1"}\r
-            }\r
-        }\r
-        KZ{\r
-            {\r
-                code{"7"}\r
-            }\r
-        }\r
-        LA{\r
-            {\r
-                code{"856"}\r
-            }\r
-        }\r
-        LB{\r
-            {\r
-                code{"961"}\r
-            }\r
-        }\r
-        LC{\r
-            {\r
-                code{"1"}\r
-            }\r
-        }\r
-        LI{\r
-            {\r
-                code{"423"}\r
-            }\r
-        }\r
-        LK{\r
-            {\r
-                code{"94"}\r
-            }\r
-        }\r
-        LR{\r
-            {\r
-                code{"231"}\r
-            }\r
-        }\r
-        LS{\r
-            {\r
-                code{"266"}\r
-            }\r
-        }\r
-        LT{\r
-            {\r
-                code{"370"}\r
-            }\r
-        }\r
-        LU{\r
-            {\r
-                code{"352"}\r
-            }\r
-        }\r
-        LV{\r
-            {\r
-                code{"371"}\r
-            }\r
-        }\r
-        LY{\r
-            {\r
-                code{"218"}\r
-            }\r
-        }\r
-        MA{\r
-            {\r
-                code{"212"}\r
-            }\r
-        }\r
-        MC{\r
-            {\r
-                code{"377"}\r
-            }\r
-        }\r
-        MD{\r
-            {\r
-                code{"373"}\r
-            }\r
-        }\r
-        ME{\r
-            {\r
-                code{"382"}\r
-            }\r
-        }\r
-        MF{\r
-            {\r
-                code{"590"}\r
-            }\r
-        }\r
-        MG{\r
-            {\r
-                code{"261"}\r
-            }\r
-        }\r
-        MH{\r
-            {\r
-                code{"692"}\r
-            }\r
-        }\r
-        MK{\r
-            {\r
-                code{"389"}\r
-            }\r
-        }\r
-        ML{\r
-            {\r
-                code{"223"}\r
-            }\r
-        }\r
-        MM{\r
-            {\r
-                code{"95"}\r
-            }\r
-        }\r
-        MN{\r
-            {\r
-                code{"976"}\r
-            }\r
-        }\r
-        MO{\r
-            {\r
-                code{"853"}\r
-            }\r
-        }\r
-        MP{\r
-            {\r
-                code{"1"}\r
-            }\r
-        }\r
-        MQ{\r
-            {\r
-                code{"596"}\r
-            }\r
-        }\r
-        MR{\r
-            {\r
-                code{"222"}\r
-            }\r
-        }\r
-        MS{\r
-            {\r
-                code{"1"}\r
-            }\r
-        }\r
-        MT{\r
-            {\r
-                code{"356"}\r
-            }\r
-        }\r
-        MU{\r
-            {\r
-                code{"230"}\r
-            }\r
-        }\r
-        MV{\r
-            {\r
-                code{"960"}\r
-            }\r
-        }\r
-        MW{\r
-            {\r
-                code{"265"}\r
-            }\r
-        }\r
-        MX{\r
-            {\r
-                code{"52"}\r
-            }\r
-        }\r
-        MY{\r
-            {\r
-                code{"60"}\r
-            }\r
-        }\r
-        MZ{\r
-            {\r
-                code{"258"}\r
-            }\r
-        }\r
-        NA{\r
-            {\r
-                code{"264"}\r
-            }\r
-        }\r
-        NC{\r
-            {\r
-                code{"687"}\r
-            }\r
-        }\r
-        NE{\r
-            {\r
-                code{"227"}\r
-            }\r
-        }\r
-        NF{\r
-            {\r
-                code{"672"}\r
-            }\r
-        }\r
-        NG{\r
-            {\r
-                code{"234"}\r
-            }\r
-        }\r
-        NI{\r
-            {\r
-                code{"505"}\r
-            }\r
-        }\r
-        NL{\r
-            {\r
-                code{"31"}\r
-            }\r
-        }\r
-        NO{\r
-            {\r
-                code{"47"}\r
-            }\r
-        }\r
-        NP{\r
-            {\r
-                code{"977"}\r
-            }\r
-        }\r
-        NR{\r
-            {\r
-                code{"674"}\r
-            }\r
-        }\r
-        NU{\r
-            {\r
-                code{"683"}\r
-            }\r
-        }\r
-        NZ{\r
-            {\r
-                code{"64"}\r
-            }\r
-        }\r
-        OM{\r
-            {\r
-                code{"968"}\r
-            }\r
-        }\r
-        PA{\r
-            {\r
-                code{"507"}\r
-            }\r
-        }\r
-        PE{\r
-            {\r
-                code{"51"}\r
-            }\r
-        }\r
-        PF{\r
-            {\r
-                code{"689"}\r
-            }\r
-        }\r
-        PG{\r
-            {\r
-                code{"675"}\r
-            }\r
-        }\r
-        PH{\r
-            {\r
-                code{"63"}\r
-            }\r
-        }\r
-        PK{\r
-            {\r
-                code{"92"}\r
-            }\r
-        }\r
-        PL{\r
-            {\r
-                code{"48"}\r
-            }\r
-        }\r
-        PM{\r
-            {\r
-                code{"508"}\r
-            }\r
-        }\r
-        PN{\r
-            {\r
-                code{"870"}\r
-            }\r
-        }\r
-        PR{\r
-            {\r
-                code{"1"}\r
-            }\r
-        }\r
-        PS{\r
-            {\r
-                code%limitedAvailability{"970"}\r
-            }\r
-            {\r
-                code{"972"}\r
-            }\r
-        }\r
-        PT{\r
-            {\r
-                code{"351"}\r
-            }\r
-        }\r
-        PW{\r
-            {\r
-                code{"680"}\r
-            }\r
-        }\r
-        PY{\r
-            {\r
-                code{"595"}\r
-            }\r
-        }\r
-        QA{\r
-            {\r
-                code{"974"}\r
-            }\r
-        }\r
-        RE{\r
-            {\r
-                code{"262"}\r
-            }\r
-        }\r
-        RO{\r
-            {\r
-                code{"40"}\r
-            }\r
-        }\r
-        RS{\r
-            {\r
-                code{"381"}\r
-            }\r
-        }\r
-        RU{\r
-            {\r
-                code{"7"}\r
-            }\r
-        }\r
-        RW{\r
-            {\r
-                code{"250"}\r
-            }\r
-        }\r
-        SA{\r
-            {\r
-                code{"966"}\r
-            }\r
-        }\r
-        SB{\r
-            {\r
-                code{"677"}\r
-            }\r
-        }\r
-        SC{\r
-            {\r
-                code{"248"}\r
-            }\r
-        }\r
-        SD{\r
-            {\r
-                code{"249"}\r
-            }\r
-        }\r
-        SE{\r
-            {\r
-                code{"46"}\r
-            }\r
-        }\r
-        SG{\r
-            {\r
-                code{"65"}\r
-            }\r
-        }\r
-        SH{\r
-            {\r
-                code{"290"}\r
-            }\r
-        }\r
-        SI{\r
-            {\r
-                code{"386"}\r
-            }\r
-        }\r
-        SJ{\r
-            {\r
-                code{"47"}\r
-            }\r
-        }\r
-        SK{\r
-            {\r
-                code{"421"}\r
-            }\r
-        }\r
-        SL{\r
-            {\r
-                code{"232"}\r
-            }\r
-        }\r
-        SM{\r
-            {\r
-                code{"378"}\r
-            }\r
-        }\r
-        SN{\r
-            {\r
-                code{"221"}\r
-            }\r
-        }\r
-        SO{\r
-            {\r
-                code{"252"}\r
-            }\r
-        }\r
-        SR{\r
-            {\r
-                code{"597"}\r
-            }\r
-        }\r
-        SS{\r
-            {\r
-                code{"211"}\r
-            }\r
-        }\r
-        ST{\r
-            {\r
-                code{"239"}\r
-            }\r
-        }\r
-        SV{\r
-            {\r
-                code{"503"}\r
-            }\r
-        }\r
-        SX{\r
-            {\r
-                code{"1"}\r
-            }\r
-        }\r
-        SY{\r
-            {\r
-                code{"963"}\r
-            }\r
-        }\r
-        SZ{\r
-            {\r
-                code{"268"}\r
-            }\r
-        }\r
-        TC{\r
-            {\r
-                code{"1"}\r
-            }\r
-        }\r
-        TD{\r
-            {\r
-                code{"235"}\r
-            }\r
-        }\r
-        TF{\r
-            {\r
-                code{"262"}\r
-            }\r
-        }\r
-        TG{\r
-            {\r
-                code{"228"}\r
-            }\r
-        }\r
-        TH{\r
-            {\r
-                code{"66"}\r
-            }\r
-        }\r
-        TJ{\r
-            {\r
-                code{"992"}\r
-            }\r
-        }\r
-        TK{\r
-            {\r
-                code{"690"}\r
-            }\r
-        }\r
-        TL{\r
-            {\r
-                code{"670"}\r
-            }\r
-        }\r
-        TM{\r
-            {\r
-                code{"993"}\r
-            }\r
-        }\r
-        TN{\r
-            {\r
-                code{"216"}\r
-            }\r
-        }\r
-        TO{\r
-            {\r
-                code{"676"}\r
-            }\r
-        }\r
-        TR{\r
-            {\r
-                code{"90"}\r
-            }\r
-        }\r
-        TT{\r
-            {\r
-                code{"1"}\r
-            }\r
-        }\r
-        TV{\r
-            {\r
-                code{"688"}\r
-            }\r
-        }\r
-        TW{\r
-            {\r
-                code{"886"}\r
-            }\r
-        }\r
-        TZ{\r
-            {\r
-                code{"255"}\r
-            }\r
-        }\r
-        UA{\r
-            {\r
-                code{"380"}\r
-            }\r
-        }\r
-        UG{\r
-            {\r
-                code{"256"}\r
-            }\r
-        }\r
-        UM{\r
-            {\r
-                code{"1"}\r
-            }\r
-        }\r
-        US{\r
-            {\r
-                code{"1"}\r
-            }\r
-        }\r
-        UY{\r
-            {\r
-                code{"598"}\r
-            }\r
-        }\r
-        UZ{\r
-            {\r
-                code{"998"}\r
-            }\r
-        }\r
-        VA{\r
-            {\r
-                code{"39"}\r
-            }\r
-        }\r
-        VC{\r
-            {\r
-                code{"1"}\r
-            }\r
-        }\r
-        VE{\r
-            {\r
-                code{"58"}\r
-            }\r
-        }\r
-        VG{\r
-            {\r
-                code{"1"}\r
-            }\r
-        }\r
-        VI{\r
-            {\r
-                code{"1"}\r
-            }\r
-        }\r
-        VN{\r
-            {\r
-                code{"84"}\r
-            }\r
-        }\r
-        VU{\r
-            {\r
-                code{"678"}\r
-            }\r
-        }\r
-        WF{\r
-            {\r
-                code{"681"}\r
-            }\r
-        }\r
-        WS{\r
-            {\r
-                code{"685"}\r
-            }\r
-        }\r
-        XK{\r
-            {\r
-                code{"377"}\r
-            }\r
-            {\r
-                code{"381"}\r
-            }\r
-            {\r
-                code{"383"}\r
-            }\r
-            {\r
-                code{"386"}\r
-            }\r
-        }\r
-        YE{\r
-            {\r
-                code{"967"}\r
-            }\r
-        }\r
-        YT{\r
-            {\r
-                code{"262"}\r
-            }\r
-        }\r
-        ZA{\r
-            {\r
-                code{"27"}\r
-            }\r
-        }\r
-        ZM{\r
-            {\r
-                code{"260"}\r
-            }\r
-        }\r
-        ZW{\r
-            {\r
-                code{"263"}\r
-            }\r
-        }\r
-    }\r
-    territoryContainment{\r
-        001{\r
-            "019",\r
-            "002",\r
-            "150",\r
-            "142",\r
-            "009",\r
-        }\r
-        002{\r
-            "015",\r
-            "011",\r
-            "017",\r
-            "014",\r
-            "018",\r
-        }\r
-        005{\r
-            "AR",\r
-            "BO",\r
-            "BR",\r
-            "BV",\r
-            "CL",\r
-            "CO",\r
-            "EC",\r
-            "FK",\r
-            "GF",\r
-            "GS",\r
-            "GY",\r
-            "PE",\r
-            "PY",\r
-            "SR",\r
-            "UY",\r
-            "VE",\r
-        }\r
-        009{\r
-            "053",\r
-            "054",\r
-            "057",\r
-            "061",\r
-            "QO",\r
-        }\r
-        011{\r
-            "BF",\r
-            "BJ",\r
-            "CI",\r
-            "CV",\r
-            "GH",\r
-            "GM",\r
-            "GN",\r
-            "GW",\r
-            "LR",\r
-            "ML",\r
-            "MR",\r
-            "NE",\r
-            "NG",\r
-            "SH",\r
-            "SL",\r
-            "SN",\r
-            "TG",\r
-        }\r
-        013{\r
-            "BZ",\r
-            "CR",\r
-            "GT",\r
-            "HN",\r
-            "MX",\r
-            "NI",\r
-            "PA",\r
-            "SV",\r
-        }\r
-        014{\r
-            "BI",\r
-            "DJ",\r
-            "ER",\r
-            "ET",\r
-            "IO",\r
-            "KE",\r
-            "KM",\r
-            "MG",\r
-            "MU",\r
-            "MW",\r
-            "MZ",\r
-            "RE",\r
-            "RW",\r
-            "SC",\r
-            "SO",\r
-            "SS",\r
-            "TZ",\r
-            "UG",\r
-            "YT",\r
-            "ZM",\r
-            "ZW",\r
-        }\r
-        015{\r
-            "DZ",\r
-            "EG",\r
-            "EH",\r
-            "LY",\r
-            "MA",\r
-            "SD",\r
-            "TN",\r
-            "EA",\r
-            "IC",\r
-        }\r
-        017{\r
-            "AO",\r
-            "CD",\r
-            "CF",\r
-            "CG",\r
-            "CM",\r
-            "GA",\r
-            "GQ",\r
-            "ST",\r
-            "TD",\r
-        }\r
-        018{\r
-            "BW",\r
-            "LS",\r
-            "NA",\r
-            "SZ",\r
-            "ZA",\r
-        }\r
-        019{\r
-            "021",\r
-            "013",\r
-            "029",\r
-            "005",\r
-        }\r
-        021{\r
-            "BM",\r
-            "CA",\r
-            "GL",\r
-            "PM",\r
-            "US",\r
-        }\r
-        029{\r
-            "AG",\r
-            "AI",\r
-            "AW",\r
-            "BB",\r
-            "BL",\r
-            "BQ",\r
-            "BS",\r
-            "CU",\r
-            "CW",\r
-            "DM",\r
-            "DO",\r
-            "GD",\r
-            "GP",\r
-            "HT",\r
-            "JM",\r
-            "KN",\r
-            "KY",\r
-            "LC",\r
-            "MF",\r
-            "MQ",\r
-            "MS",\r
-            "PR",\r
-            "SX",\r
-            "TC",\r
-            "TT",\r
-            "VC",\r
-            "VG",\r
-            "VI",\r
-        }\r
-        030{\r
-            "CN",\r
-            "HK",\r
-            "JP",\r
-            "KP",\r
-            "KR",\r
-            "MN",\r
-            "MO",\r
-            "TW",\r
-        }\r
-        034{\r
-            "AF",\r
-            "BD",\r
-            "BT",\r
-            "IN",\r
-            "IR",\r
-            "LK",\r
-            "MV",\r
-            "NP",\r
-            "PK",\r
-        }\r
-        035{\r
-            "BN",\r
-            "ID",\r
-            "KH",\r
-            "LA",\r
-            "MM",\r
-            "MY",\r
-            "PH",\r
-            "SG",\r
-            "TH",\r
-            "TL",\r
-            "VN",\r
-        }\r
-        039{\r
-            "AD",\r
-            "AL",\r
-            "BA",\r
-            "ES",\r
-            "GI",\r
-            "GR",\r
-            "HR",\r
-            "IT",\r
-            "ME",\r
-            "MK",\r
-            "MT",\r
-            "RS",\r
-            "PT",\r
-            "SI",\r
-            "SM",\r
-            "VA",\r
-            "XK",\r
-        }\r
-        053{\r
-            "AU",\r
-            "CC",\r
-            "CX",\r
-            "HM",\r
-            "NF",\r
-            "NZ",\r
-        }\r
-        054{\r
-            "FJ",\r
-            "NC",\r
-            "PG",\r
-            "SB",\r
-            "VU",\r
-        }\r
-        057{\r
-            "FM",\r
-            "GU",\r
-            "KI",\r
-            "MH",\r
-            "MP",\r
-            "NR",\r
-            "PW",\r
-            "UM",\r
-        }\r
-        061{\r
-            "AS",\r
-            "CK",\r
-            "NU",\r
-            "PF",\r
-            "PN",\r
-            "TK",\r
-            "TO",\r
-            "TV",\r
-            "WF",\r
-            "WS",\r
-        }\r
-        142{\r
-            "145",\r
-            "143",\r
-            "030",\r
-            "034",\r
-            "035",\r
-        }\r
-        143{\r
-            "TM",\r
-            "TJ",\r
-            "KG",\r
-            "KZ",\r
-            "UZ",\r
-        }\r
-        145{\r
-            "AE",\r
-            "AM",\r
-            "AZ",\r
-            "BH",\r
-            "CY",\r
-            "GE",\r
-            "IL",\r
-            "IQ",\r
-            "JO",\r
-            "KW",\r
-            "LB",\r
-            "OM",\r
-            "PS",\r
-            "QA",\r
-            "SA",\r
-            "SY",\r
-            "TF",\r
-            "TR",\r
-            "YE",\r
-        }\r
-        150{\r
-            "154",\r
-            "155",\r
-            "151",\r
-            "039",\r
-        }\r
-        151{\r
-            "BG",\r
-            "BY",\r
-            "CZ",\r
-            "HU",\r
-            "MD",\r
-            "PL",\r
-            "RO",\r
-            "RU",\r
-            "SK",\r
-            "UA",\r
-        }\r
-        154{\r
-            "GG",\r
-            "IM",\r
-            "JE",\r
-            "AX",\r
-            "DK",\r
-            "EE",\r
-            "FI",\r
-            "FO",\r
-            "GB",\r
-            "IE",\r
-            "IS",\r
-            "LT",\r
-            "LV",\r
-            "NO",\r
-            "SE",\r
-            "SJ",\r
+        154{\r
+            "GG",\r
+            "IM",\r
+            "JE",\r
+            "AX",\r
+            "DK",\r
+            "EE",\r
+            "FI",\r
+            "FO",\r
+            "GB",\r
+            "IE",\r
+            "IS",\r
+            "LT",\r
+            "LV",\r
+            "NO",\r
+            "SE",\r
+            "SJ",\r
         }\r
         155{\r
             "AT",\r
@@ -26192,12 +25230,268 @@ supplementalData:table(nofallback){
             }\r
         }\r
         grouping{\r
-            "003",\r
-            "202",\r
-            "419",\r
-            "EU",\r
-            "EZ",\r
-            "UN",\r
+            003{\r
+                "021",\r
+                "013",\r
+                "029",\r
+            }\r
+            202{\r
+                "011",\r
+                "017",\r
+                "014",\r
+                "018",\r
+            }\r
+            419{\r
+                "013",\r
+                "029",\r
+                "005",\r
+            }\r
+            EU{\r
+                "AT",\r
+                "BE",\r
+                "CY",\r
+                "CZ",\r
+                "DE",\r
+                "DK",\r
+                "EE",\r
+                "ES",\r
+                "FI",\r
+                "FR",\r
+                "GB",\r
+                "GR",\r
+                "HR",\r
+                "HU",\r
+                "IE",\r
+                "IT",\r
+                "LT",\r
+                "LU",\r
+                "LV",\r
+                "MT",\r
+                "NL",\r
+                "PL",\r
+                "PT",\r
+                "SE",\r
+                "SI",\r
+                "SK",\r
+                "BG",\r
+                "RO",\r
+            }\r
+            EZ{\r
+                "AT",\r
+                "BE",\r
+                "CY",\r
+                "DE",\r
+                "EE",\r
+                "ES",\r
+                "FI",\r
+                "FR",\r
+                "GR",\r
+                "IE",\r
+                "IT",\r
+                "LT",\r
+                "LU",\r
+                "LV",\r
+                "MT",\r
+                "NL",\r
+                "PT",\r
+                "SI",\r
+                "SK",\r
+            }\r
+            UN{\r
+                "AD",\r
+                "AE",\r
+                "AF",\r
+                "AG",\r
+                "AL",\r
+                "AM",\r
+                "AO",\r
+                "AR",\r
+                "AT",\r
+                "AU",\r
+                "AZ",\r
+                "BA",\r
+                "BB",\r
+                "BD",\r
+                "BE",\r
+                "BF",\r
+                "BG",\r
+                "BH",\r
+                "BI",\r
+                "BJ",\r
+                "BN",\r
+                "BO",\r
+                "BR",\r
+                "BS",\r
+                "BT",\r
+                "BW",\r
+                "BY",\r
+                "BZ",\r
+                "CA",\r
+                "CD",\r
+                "CF",\r
+                "CG",\r
+                "CH",\r
+                "CI",\r
+                "CL",\r
+                "CM",\r
+                "CN",\r
+                "CO",\r
+                "CR",\r
+                "CU",\r
+                "CV",\r
+                "CY",\r
+                "CZ",\r
+                "DE",\r
+                "DJ",\r
+                "DK",\r
+                "DM",\r
+                "DO",\r
+                "DZ",\r
+                "EC",\r
+                "EE",\r
+                "EG",\r
+                "ER",\r
+                "ES",\r
+                "ET",\r
+                "FI",\r
+                "FJ",\r
+                "FM",\r
+                "FR",\r
+                "GA",\r
+                "GB",\r
+                "GD",\r
+                "GE",\r
+                "GH",\r
+                "GM",\r
+                "GN",\r
+                "GQ",\r
+                "GR",\r
+                "GT",\r
+                "GW",\r
+                "GY",\r
+                "HN",\r
+                "HR",\r
+                "HT",\r
+                "HU",\r
+                "ID",\r
+                "IE",\r
+                "IL",\r
+                "IN",\r
+                "IQ",\r
+                "IR",\r
+                "IS",\r
+                "IT",\r
+                "JM",\r
+                "JO",\r
+                "JP",\r
+                "KE",\r
+                "KG",\r
+                "KH",\r
+                "KI",\r
+                "KM",\r
+                "KN",\r
+                "KP",\r
+                "KR",\r
+                "KW",\r
+                "KZ",\r
+                "LA",\r
+                "LB",\r
+                "LC",\r
+                "LI",\r
+                "LK",\r
+                "LR",\r
+                "LS",\r
+                "LT",\r
+                "LU",\r
+                "LV",\r
+                "LY",\r
+                "MA",\r
+                "MC",\r
+                "MD",\r
+                "ME",\r
+                "MG",\r
+                "MH",\r
+                "MK",\r
+                "ML",\r
+                "MM",\r
+                "MN",\r
+                "MR",\r
+                "MT",\r
+                "MU",\r
+                "MV",\r
+                "MX",\r
+                "MW",\r
+                "MY",\r
+                "MZ",\r
+                "NA",\r
+                "NE",\r
+                "NG",\r
+                "NI",\r
+                "NL",\r
+                "NO",\r
+                "NR",\r
+                "NP",\r
+                "NZ",\r
+                "OM",\r
+                "PA",\r
+                "PE",\r
+                "PG",\r
+                "PH",\r
+                "PK",\r
+                "PL",\r
+                "PT",\r
+                "PW",\r
+                "PY",\r
+                "QA",\r
+                "RO",\r
+                "RS",\r
+                "RU",\r
+                "RW",\r
+                "SA",\r
+                "SB",\r
+                "SC",\r
+                "SD",\r
+                "SE",\r
+                "SG",\r
+                "SI",\r
+                "SK",\r
+                "SL",\r
+                "SM",\r
+                "SN",\r
+                "SO",\r
+                "SR",\r
+                "SS",\r
+                "ST",\r
+                "SV",\r
+                "SY",\r
+                "SZ",\r
+                "TD",\r
+                "TG",\r
+                "TH",\r
+                "TJ",\r
+                "TL",\r
+                "TM",\r
+                "TN",\r
+                "TO",\r
+                "TR",\r
+                "TT",\r
+                "TV",\r
+                "TZ",\r
+                "UA",\r
+                "UG",\r
+                "US",\r
+                "UY",\r
+                "UZ",\r
+                "VC",\r
+                "VE",\r
+                "VN",\r
+                "VU",\r
+                "WS",\r
+                "YE",\r
+                "ZA",\r
+                "ZM",\r
+                "ZW",\r
+            }\r
         }\r
     }\r
     territoryInfo{\r
@@ -26206,7 +25500,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{49990000}\r
             }\r
             territoryF:intvector{\r
-                57418000,\r
+                57422900,\r
                 49990000,\r
                 52940000,\r
             }\r
@@ -26246,7 +25540,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{48290000}\r
             }\r
             territoryF:intvector{\r
-                61691900,\r
+                61686800,\r
                 49900000,\r
                 56607248,\r
             }\r
@@ -26278,7 +25572,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{49430000}\r
             }\r
             territoryF:intvector{\r
-                60695100,\r
+                60695500,\r
                 49281000,\r
                 57341248,\r
             }\r
@@ -26303,7 +25597,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{48170000}\r
             }\r
             territoryF:intvector{\r
-                59239000,\r
+                59239300,\r
                 49990000,\r
                 54947310,\r
             }\r
@@ -26331,7 +25625,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{50100000}\r
             }\r
             territoryF:intvector{\r
-                60358700,\r
+                60359700,\r
                 49968000,\r
                 56304799,\r
             }\r
@@ -26348,7 +25642,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{48330000}\r
             }\r
             territoryF:intvector{\r
-                60272100,\r
+                60282800,\r
                 49996000,\r
                 56304519,\r
             }\r
@@ -26366,7 +25660,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{49670000}\r
             }\r
             territoryF:intvector{\r
-                61192000,\r
+                61190300,\r
                 49704000,\r
                 57293103,\r
             }\r
@@ -26376,7 +25670,7 @@ supplementalData:table(nofallback){
         }\r
         AQ{\r
             territoryF:intvector{\r
-                57177800,\r
+                57178100,\r
                 49990000,\r
                 52300000,\r
             }\r
@@ -26386,7 +25680,7 @@ supplementalData:table(nofallback){
         }\r
         AR{\r
             cy{\r
-                populationShareF:int{46660000}\r
+                populationShareF:int{46650000}\r
             }\r
             en{\r
                 populationShareF:int{48700000}\r
@@ -26399,7 +25693,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{46470000}\r
             }\r
             territoryF:intvector{\r
-                61911500,\r
+                61920200,\r
                 49979000,\r
                 57442933,\r
             }\r
@@ -26414,7 +25708,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{49990000}\r
             }\r
             territoryF:intvector{\r
-                58711000,\r
+                58658000,\r
                 49970000,\r
                 54515040,\r
             }\r
@@ -26449,7 +25743,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{47370000}\r
             }\r
             territoryF:intvector{\r
-                61434100,\r
+                61439600,\r
                 49980000,\r
                 56875441,\r
             }\r
@@ -26463,7 +25757,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{48190000}\r
             }\r
             territoryF:intvector{\r
-                62123500,\r
+                62124600,\r
                 49990000,\r
                 57232324,\r
             }\r
@@ -26516,7 +25810,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{47240000}\r
             }\r
             territoryF:intvector{\r
-                61166800,\r
+                61171800,\r
                 49998000,\r
                 56996140,\r
             }\r
@@ -26557,7 +25851,7 @@ supplementalData:table(nofallback){
                 writingShareF:int{48500000}\r
             }\r
             territoryF:intvector{\r
-                60438500,\r
+                60446200,\r
                 49980000,\r
                 56385618,\r
             }\r
@@ -26568,7 +25862,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{50100000}\r
             }\r
             territoryF:intvector{\r
-                59491900,\r
+                59524400,\r
                 49997000,\r
                 55292336,\r
             }\r
@@ -26605,7 +25899,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{48500000}\r
             }\r
             territoryF:intvector{\r
-                61686500,\r
+                61687100,\r
                 49577000,\r
                 58157827,\r
             }\r
@@ -26627,7 +25921,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{49550000}\r
             }\r
             territoryF:intvector{\r
-                61526400,\r
+                61528500,\r
                 49990000,\r
                 57114913,\r
             }\r
@@ -26643,6 +25937,12 @@ supplementalData:table(nofallback){
             dyu{\r
                 populationShareF:int{49320000}\r
             }\r
+            ff{\r
+                populationShareF:int{0}\r
+            }\r
+            ff_Adlm{\r
+                populationShareF:int{0}\r
+            }\r
             fr{\r
                 officialStatus{"official"}\r
                 populationShareF:int{49220000}\r
@@ -26651,7 +25951,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{49400000}\r
             }\r
             territoryF:intvector{\r
-                60356800,\r
+                60357800,\r
                 49287000,\r
                 57201075,\r
             }\r
@@ -26671,7 +25971,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{49230000}\r
             }\r
             territoryF:intvector{\r
-                61152400,\r
+                61153100,\r
                 49984000,\r
                 56710151,\r
             }\r
@@ -26688,7 +25988,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{48330000}\r
             }\r
             territoryF:intvector{\r
-                60697700,\r
+                60704400,\r
                 49946000,\r
                 56141094,\r
             }\r
@@ -26710,7 +26010,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{46550000}\r
             }\r
             territoryF:intvector{\r
-                59798500,\r
+                59799000,\r
                 49672000,\r
                 57114668,\r
             }\r
@@ -26724,7 +26024,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{49350000}\r
             }\r
             territoryF:intvector{\r
-                60252900,\r
+                60253300,\r
                 49424000,\r
                 57110388,\r
             }\r
@@ -26749,7 +26049,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{49920000}\r
             }\r
             territoryF:intvector{\r
-                59519800,\r
+                59612700,\r
                 49980000,\r
                 54708640,\r
             }\r
@@ -26767,7 +26067,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{48500000}\r
             }\r
             territoryF:intvector{\r
-                60329100,\r
+                60335400,\r
                 49954000,\r
                 55443593,\r
             }\r
@@ -26795,7 +26095,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{49320000}\r
             }\r
             territoryF:intvector{\r
-                60835000,\r
+                60835500,\r
                 49912000,\r
                 57111382,\r
             }\r
@@ -26810,7 +26110,7 @@ supplementalData:table(nofallback){
             }\r
             territoryF:intvector{\r
                 58418000,\r
-                49990000,\r
+                49960000,\r
                 54200000,\r
             }\r
         }\r
@@ -26844,7 +26144,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{49910000}\r
             }\r
             territoryF:intvector{\r
-                62321900,\r
+                62324000,\r
                 49904000,\r
                 58207353,\r
             }\r
@@ -26861,7 +26161,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{50100000}\r
             }\r
             territoryF:intvector{\r
-                59933900,\r
+                60116000,\r
                 49956000,\r
                 55329988,\r
             }\r
@@ -26881,7 +26181,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{49170000}\r
             }\r
             territoryF:intvector{\r
-                59701100,\r
+                59703000,\r
                 49528000,\r
                 55758288,\r
             }\r
@@ -26891,7 +26191,7 @@ supplementalData:table(nofallback){
         }\r
         BV{\r
             territoryF:intvector{\r
-                54444700,\r
+                54449900,\r
                 49990000,\r
                 50100000,\r
             }\r
@@ -26908,7 +26208,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{49810000}\r
             }\r
             territoryF:intvector{\r
-                60395500,\r
+                60388600,\r
                 49851000,\r
                 56221486,\r
             }\r
@@ -26927,7 +26227,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{49120000}\r
             }\r
             territoryF:intvector{\r
-                61175900,\r
+                61178900,\r
                 49996000,\r
                 56954975,\r
             }\r
@@ -26941,7 +26241,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{49280000}\r
             }\r
             territoryF:intvector{\r
-                59323000,\r
+                59321100,\r
                 49769000,\r
                 55360346,\r
             }\r
@@ -27025,7 +26325,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{45350000}\r
             }\r
             territoryF:intvector{\r
-                62176400,\r
+                62176900,\r
                 49990000,\r
                 57356237,\r
             }\r
@@ -27042,7 +26342,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{49830000}\r
             }\r
             territoryF:intvector{\r
-                57316800,\r
+                57319600,\r
                 49990000,\r
                 52596000,\r
             }\r
@@ -27078,7 +26378,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{49500000}\r
             }\r
             territoryF:intvector{\r
-                60679900,\r
+                60684500,\r
                 49668000,\r
                 57833012,\r
             }\r
@@ -27096,7 +26396,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{49490000}\r
             }\r
             territoryF:intvector{\r
-                59339500,\r
+                59337300,\r
                 49566000,\r
                 56562512,\r
             }\r
@@ -27110,7 +26410,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{48240000}\r
             }\r
             territoryF:intvector{\r
-                60291600,\r
+                60288800,\r
                 49838000,\r
                 56495467,\r
             }\r
@@ -27151,7 +26451,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{47290000}\r
             }\r
             territoryF:intvector{\r
-                61516700,\r
+                61517200,\r
                 49990000,\r
                 56823630,\r
             }\r
@@ -27184,7 +26484,7 @@ supplementalData:table(nofallback){
                 writingShareF:int{48500000}\r
             }\r
             territoryF:intvector{\r
-                60962700,\r
+                60969200,\r
                 49569000,\r
                 57241848,\r
             }\r
@@ -27195,7 +26495,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{49950000}\r
             }\r
             territoryF:intvector{\r
-                58244100,\r
+                58299900,\r
                 49950000,\r
                 53929000,\r
             }\r
@@ -27212,7 +26512,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{49980000}\r
             }\r
             territoryF:intvector{\r
-                61452100,\r
+                61451100,\r
                 49986000,\r
                 57177893,\r
             }\r
@@ -27270,6 +26570,9 @@ supplementalData:table(nofallback){
             ff{\r
                 populationShareF:int{48360000}\r
             }\r
+            ff_Adlm{\r
+                populationShareF:int{0}\r
+            }\r
             fr{\r
                 officialStatus{"official"}\r
                 populationShareF:int{49680000}\r
@@ -27288,7 +26591,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{47320000}\r
             }\r
             maf{\r
-                populationShareF:int{47730000}\r
+                populationShareF:int{47740000}\r
             }\r
             mgo{\r
                 populationShareF:int{47470000}\r
@@ -27306,7 +26609,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{48140000}\r
             }\r
             territoryF:intvector{\r
-                60815500,\r
+                60888600,\r
                 49713000,\r
                 57249949,\r
             }\r
@@ -27378,7 +26681,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{46190000}\r
             }\r
             territoryF:intvector{\r
-                63231200,\r
+                63231600,\r
                 49951000,\r
                 59137930,\r
             }\r
@@ -27416,14 +26719,14 @@ supplementalData:table(nofallback){
                 populationShareF:int{47270000}\r
             }\r
             territoryF:intvector{\r
-                61712500,\r
+                61714000,\r
                 49936000,\r
                 57476985,\r
             }\r
         }\r
         CP{\r
             territoryF:intvector{\r
-                54421100,\r
+                54422600,\r
                 49990000,\r
                 50100000,\r
             }\r
@@ -27437,7 +26740,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{49950000}\r
             }\r
             territoryF:intvector{\r
-                60852000,\r
+                60838500,\r
                 49963000,\r
                 56493026,\r
             }\r
@@ -27448,7 +26751,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{50100000}\r
             }\r
             territoryF:intvector{\r
-                61132900,\r
+                61137000,\r
                 49998000,\r
                 57111474,\r
             }\r
@@ -27462,7 +26765,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{49760000}\r
             }\r
             territoryF:intvector{\r
-                59373400,\r
+                59373500,\r
                 49849000,\r
                 55560899,\r
             }\r
@@ -27481,7 +26784,7 @@ supplementalData:table(nofallback){
             }\r
             territoryF:intvector{\r
                 59312800,\r
-                49990000,\r
+                49960000,\r
                 55149648,\r
             }\r
         }\r
@@ -27491,7 +26794,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{49630000}\r
             }\r
             territoryF:intvector{\r
-                58117200,\r
+                58118300,\r
                 49990000,\r
                 53220500,\r
             }\r
@@ -27514,7 +26817,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{47220000}\r
             }\r
             territoryF:intvector{\r
-                60311900,\r
+                60315900,\r
                 49987000,\r
                 56122155,\r
             }\r
@@ -27541,7 +26844,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{49160000}\r
             }\r
             territoryF:intvector{\r
-                61372600,\r
+                61375700,\r
                 49990000,\r
                 57106747,\r
             }\r
@@ -27624,7 +26927,7 @@ supplementalData:table(nofallback){
                 writingShareF:int{48500000}\r
             }\r
             territoryF:intvector{\r
-                62415000,\r
+                62417100,\r
                 49990000,\r
                 57805940,\r
             }\r
@@ -27641,7 +26944,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{49990000}\r
             }\r
             territoryF:intvector{\r
-                57222300,\r
+                57225000,\r
                 49990000,\r
                 52500000,\r
             }\r
@@ -27662,7 +26965,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{49410000}\r
             }\r
             territoryF:intvector{\r
-                59364000,\r
+                59363200,\r
                 49679000,\r
                 55865267,\r
             }\r
@@ -27693,7 +26996,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{49130000}\r
             }\r
             territoryF:intvector{\r
-                61285500,\r
+                61286800,\r
                 49990000,\r
                 56560595,\r
             }\r
@@ -27704,7 +27007,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{49940000}\r
             }\r
             territoryF:intvector{\r
-                58851000,\r
+                58785000,\r
                 49940000,\r
                 54738970,\r
             }\r
@@ -27718,7 +27021,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{49780000}\r
             }\r
             territoryF:intvector{\r
-                61172600,\r
+                61172400,\r
                 49901000,\r
                 57107342,\r
             }\r
@@ -27743,7 +27046,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{48780000}\r
             }\r
             territoryF:intvector{\r
-                61629300,\r
+                61632900,\r
                 49726000,\r
                 57409694,\r
             }\r
@@ -27754,7 +27057,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{49980000}\r
             }\r
             territoryF:intvector{\r
-                59542000,\r
+                59543500,\r
                 49977000,\r
                 55150000,\r
             }\r
@@ -27772,7 +27075,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{48570000}\r
             }\r
             territoryF:intvector{\r
-                61188500,\r
+                61192600,\r
                 49916000,\r
                 57162909,\r
             }\r
@@ -27792,7 +27095,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{49560000}\r
             }\r
             territoryF:intvector{\r
-                60412000,\r
+                60415600,\r
                 49998000,\r
                 56125158,\r
             }\r
@@ -27815,7 +27118,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{49350000}\r
             }\r
             territoryF:intvector{\r
-                62119900,\r
+                62120100,\r
                 49739000,\r
                 57970411,\r
             }\r
@@ -27851,7 +27154,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{48360000}\r
             }\r
             territoryF:intvector{\r
-                59963100,\r
+                59938200,\r
                 49689000,\r
                 56591892,\r
             }\r
@@ -27891,7 +27194,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{48700000}\r
             }\r
             territoryF:intvector{\r
-                62176900,\r
+                62177400,\r
                 49977000,\r
                 57489582,\r
             }\r
@@ -27917,7 +27220,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{48600000}\r
             }\r
             territoryF:intvector{\r
-                61195800,\r
+                61200200,\r
                 49390000,\r
                 58105350,\r
             }\r
@@ -27962,7 +27265,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{49440000}\r
             }\r
             territoryF:intvector{\r
-                61242400,\r
+                61244000,\r
                 50100000,\r
                 56551837,\r
             }\r
@@ -27987,7 +27290,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{47270000}\r
             }\r
             territoryF:intvector{\r
-                59864700,\r
+                59865200,\r
                 49937000,\r
                 55920938,\r
             }\r
@@ -27998,7 +27301,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{49960000}\r
             }\r
             territoryF:intvector{\r
-                58281800,\r
+                58206400,\r
                 49990000,\r
                 53293100,\r
             }\r
@@ -28095,7 +27398,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{48130000}\r
             }\r
             territoryF:intvector{\r
-                62282600,\r
+                62283600,\r
                 49990000,\r
                 57671062,\r
             }\r
@@ -28109,7 +27412,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{48900000}\r
             }\r
             territoryF:intvector{\r
-                60367500,\r
+                60367300,\r
                 49890000,\r
                 56177226,\r
             }\r
@@ -28164,10 +27467,10 @@ supplementalData:table(nofallback){
                 writingShareF:int{48500000}\r
             }\r
             syl{\r
-                populationShareF:int{47510000}\r
+                populationShareF:int{47500000}\r
             }\r
             territoryF:intvector{\r
-                62288000,\r
+                62291400,\r
                 49990000,\r
                 57647695,\r
             }\r
@@ -28184,7 +27487,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{49960000}\r
             }\r
             territoryF:intvector{\r
-                59159000,\r
+                59160600,\r
                 49960000,\r
                 55111724,\r
             }\r
@@ -28212,7 +27515,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{48900000}\r
             }\r
             territoryF:intvector{\r
-                60393200,\r
+                60397000,\r
                 49997000,\r
                 56492633,\r
             }\r
@@ -28267,6 +27570,12 @@ supplementalData:table(nofallback){
                 officialStatus{"official"}\r
                 populationShareF:int{49210000}\r
             }\r
+            ff{\r
+                populationShareF:int{0}\r
+            }\r
+            ff_Adlm{\r
+                populationShareF:int{0}\r
+            }\r
             gaa{\r
                 officialStatus{"official_regional"}\r
                 populationShareF:int{48280000}\r
@@ -28284,7 +27593,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{46150000}\r
             }\r
             territoryF:intvector{\r
-                61130200,\r
+                61133700,\r
                 49715000,\r
                 57274999,\r
             }\r
@@ -28312,7 +27621,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{49840000}\r
             }\r
             territoryF:intvector{\r
-                59217300,\r
+                59241300,\r
                 50100000,\r
                 54577130,\r
             }\r
@@ -28322,11 +27631,17 @@ supplementalData:table(nofallback){
                 officialStatus{"official"}\r
                 populationShareF:int{49400000}\r
             }\r
+            ff{\r
+                populationShareF:int{0}\r
+            }\r
+            ff_Adlm{\r
+                populationShareF:int{0}\r
+            }\r
             man{\r
                 populationShareF:int{49290000}\r
             }\r
             territoryF:intvector{\r
-                59358200,\r
+                59360200,\r
                 49511000,\r
                 56205136,\r
             }\r
@@ -28335,6 +27650,9 @@ supplementalData:table(nofallback){
             ff{\r
                 populationShareF:int{49260000}\r
             }\r
+            ff_Adlm{\r
+                populationShareF:int{0}\r
+            }\r
             fr{\r
                 officialStatus{"official"}\r
                 populationShareF:int{49290000}\r
@@ -28352,7 +27670,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{49110000}\r
             }\r
             territoryF:intvector{\r
-                60264500,\r
+                60264700,\r
                 49410000,\r
                 57124139,\r
             }\r
@@ -28388,7 +27706,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{44100000}\r
             }\r
             territoryF:intvector{\r
-                60293800,\r
+                60303500,\r
                 49942000,\r
                 55778358,\r
             }\r
@@ -28420,7 +27738,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{46930000}\r
             }\r
             territoryF:intvector{\r
-                61299500,\r
+                61298700,\r
                 49973000,\r
                 57107685,\r
             }\r
@@ -28433,7 +27751,7 @@ supplementalData:table(nofallback){
         }\r
         GS{\r
             territoryF:intvector{\r
-                55889300,\r
+                55899800,\r
                 49990000,\r
                 51200000,\r
             }\r
@@ -28452,7 +27770,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{48700000}\r
             }\r
             territoryF:intvector{\r
-                61138300,\r
+                61137800,\r
                 49759000,\r
                 57154607,\r
             }\r
@@ -28467,12 +27785,18 @@ supplementalData:table(nofallback){
                 populationShareF:int{49910000}\r
             }\r
             territoryF:intvector{\r
-                59488200,\r
+                59579300,\r
                 49990000,\r
                 55167358,\r
             }\r
         }\r
         GW{\r
+            ff{\r
+                populationShareF:int{44100000}\r
+            }\r
+            ff_Adlm{\r
+                populationShareF:int{44100000}\r
+            }\r
             knf{\r
                 populationShareF:int{48260000}\r
             }\r
@@ -28481,7 +27805,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{50100000}\r
             }\r
             territoryF:intvector{\r
-                59307100,\r
+                59313700,\r
                 49553000,\r
                 56179234,\r
             }\r
@@ -28492,7 +27816,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{50100000}\r
             }\r
             territoryF:intvector{\r
-                59636700,\r
+                59628700,\r
                 49918000,\r
                 55737718,\r
             }\r
@@ -28503,7 +27827,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{49510000}\r
             }\r
             territoryF:intvector{\r
-                61453000,\r
+                61454900,\r
                 49935000,\r
                 56719150,\r
             }\r
@@ -28520,7 +27844,7 @@ supplementalData:table(nofallback){
         }\r
         HM{\r
             territoryF:intvector{\r
-                54531600,\r
+                54536300,\r
                 49990000,\r
                 50100000,\r
             }\r
@@ -28538,7 +27862,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{49780000}\r
             }\r
             territoryF:intvector{\r
-                60456800,\r
+                60462000,\r
                 49851000,\r
                 56903874,\r
             }\r
@@ -28556,7 +27880,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{48160000}\r
             }\r
             territoryF:intvector{\r
-                61100200,\r
+                61101300,\r
                 49989000,\r
                 56429210,\r
             }\r
@@ -28572,7 +27896,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{49810000}\r
             }\r
             territoryF:intvector{\r
-                60198800,\r
+                60199300,\r
                 49487000,\r
                 57106467,\r
             }\r
@@ -28604,7 +27928,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{46510000}\r
             }\r
             territoryF:intvector{\r
-                61283600,\r
+                61289000,\r
                 49990000,\r
                 56985085,\r
             }\r
@@ -28615,7 +27939,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{49980000}\r
             }\r
             territoryF:intvector{\r
-                60758300,\r
+                60760400,\r
                 49977000,\r
                 56209859,\r
             }\r
@@ -28734,7 +28058,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{49220000}\r
             }\r
             territoryF:intvector{\r
-                61344800,\r
+                61357200,\r
                 49990000,\r
                 56501110,\r
             }\r
@@ -28773,7 +28097,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{49110000}\r
             }\r
             territoryF:intvector{\r
-                61315600,\r
+                61316500,\r
                 49971000,\r
                 56829971,\r
             }\r
@@ -28794,7 +28118,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{48190000}\r
             }\r
             territoryF:intvector{\r
-                59742800,\r
+                59679200,\r
                 49990000,\r
                 54888150,\r
             }\r
@@ -28805,7 +28129,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{48130000}\r
             }\r
             awa{\r
-                populationShareF:int{48190000}\r
+                populationShareF:int{48180000}\r
                 writingShareF:int{48500000}\r
             }\r
             bfq{\r
@@ -28858,10 +28182,10 @@ supplementalData:table(nofallback){
                 populationShareF:int{46280000}\r
             }\r
             dcc{\r
-                populationShareF:int{47990000}\r
+                populationShareF:int{48100000}\r
             }\r
             doi{\r
-                populationShareF:int{47190000}\r
+                populationShareF:int{47200000}\r
             }\r
             dv{\r
                 populationShareF:int{44400000}\r
@@ -28897,7 +28221,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{48110000}\r
             }\r
             hoc{\r
-                populationShareF:int{46990000}\r
+                populationShareF:int{47100000}\r
             }\r
             hoj{\r
                 populationShareF:int{46820000}\r
@@ -29039,12 +28363,12 @@ supplementalData:table(nofallback){
                 populationShareF:int{48720000}\r
             }\r
             territoryF:intvector{\r
-                62944700,\r
+                62945900,\r
                 49628000,\r
                 59128194,\r
             }\r
             unr{\r
-                populationShareF:int{46950000}\r
+                populationShareF:int{46940000}\r
             }\r
             unx{\r
                 populationShareF:int{46480000}\r
@@ -29074,7 +28398,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{50100000}\r
             }\r
             territoryF:intvector{\r
-                58155600,\r
+                58157500,\r
                 49990000,\r
                 53350000,\r
             }\r
@@ -29105,7 +28429,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{47500000}\r
             }\r
             territoryF:intvector{\r
-                61660700,\r
+                61658800,\r
                 49785000,\r
                 57391921,\r
             }\r
@@ -29176,7 +28500,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{48370000}\r
             }\r
             territoryF:intvector{\r
-                62163100,\r
+                62164500,\r
                 49850000,\r
                 57820216,\r
             }\r
@@ -29193,7 +28517,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{50100000}\r
             }\r
             territoryF:intvector{\r
-                60177300,\r
+                60176200,\r
                 49990000,\r
                 55339747,\r
             }\r
@@ -29259,7 +28583,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{47170000}\r
             }\r
             territoryF:intvector{\r
-                62230700,\r
+                62231100,\r
                 49990000,\r
                 57621378,\r
             }\r
@@ -29273,7 +28597,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{49950000}\r
             }\r
             territoryF:intvector{\r
-                59508000,\r
+                59556900,\r
                 49990000,\r
                 54988400,\r
             }\r
@@ -29287,7 +28611,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{49950000}\r
             }\r
             territoryF:intvector{\r
-                60262000,\r
+                60260600,\r
                 49870000,\r
                 56299056,\r
             }\r
@@ -29301,7 +28625,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{49450000}\r
             }\r
             territoryF:intvector{\r
-                60890500,\r
+                60891000,\r
                 49959000,\r
                 57102481,\r
             }\r
@@ -29319,7 +28643,7 @@ supplementalData:table(nofallback){
                 writingShareF:int{48500000}\r
             }\r
             territoryF:intvector{\r
-                62540500,\r
+                62542900,\r
                 49990000,\r
                 58126451,\r
             }\r
@@ -29393,7 +28717,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{47740000}\r
             }\r
             territoryF:intvector{\r
-                61163400,\r
+                61163100,\r
                 49874000,\r
                 57476157,\r
             }\r
@@ -29408,7 +28732,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{49360000}\r
             }\r
             territoryF:intvector{\r
-                60226400,\r
+                60229700,\r
                 49992000,\r
                 56578912,\r
             }\r
@@ -29425,7 +28749,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{49890000}\r
             }\r
             territoryF:intvector{\r
-                60642100,\r
+                60642500,\r
                 49739000,\r
                 57162045,\r
             }\r
@@ -29440,7 +28764,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{49600000}\r
             }\r
             territoryF:intvector{\r
-                58224000,\r
+                58226000,\r
                 49900000,\r
                 55108145,\r
             }\r
@@ -29455,7 +28779,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{49560000}\r
             }\r
             territoryF:intvector{\r
-                59132300,\r
+                59131300,\r
                 49755000,\r
                 55808080,\r
             }\r
@@ -29496,7 +28820,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{50100000}\r
             }\r
             territoryF:intvector{\r
-                62202700,\r
+                62202900,\r
                 49979000,\r
                 57511813,\r
             }\r
@@ -29507,7 +28831,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{50100000}\r
             }\r
             territoryF:intvector{\r
-                61302500,\r
+                61291500,\r
                 49939000,\r
                 56287542,\r
             }\r
@@ -29539,7 +28863,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{49720000}\r
             }\r
             territoryF:intvector{\r
-                61474300,\r
+                61477600,\r
                 49997000,\r
                 57185567,\r
             }\r
@@ -29579,10 +28903,10 @@ supplementalData:table(nofallback){
                 populationShareF:int{48520000}\r
             }\r
             ku_Arab{\r
-                populationShareF:int{48160000}\r
+                populationShareF:int{48170000}\r
             }\r
             territoryF:intvector{\r
-                60878900,\r
+                60876800,\r
                 49896000,\r
                 56622979,\r
             }\r
@@ -29593,7 +28917,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{49900000}\r
             }\r
             territoryF:intvector{\r
-                59238400,\r
+                59253600,\r
                 49901000,\r
                 55164994,\r
             }\r
@@ -29630,7 +28954,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{49150000}\r
             }\r
             territoryF:intvector{\r
-                61278200,\r
+                61274700,\r
                 49912000,\r
                 57224094,\r
             }\r
@@ -29640,6 +28964,12 @@ supplementalData:table(nofallback){
                 officialStatus{"official"}\r
                 populationShareF:int{49830000}\r
             }\r
+            ff{\r
+                populationShareF:int{0}\r
+            }\r
+            ff_Adlm{\r
+                populationShareF:int{0}\r
+            }\r
             kpe{\r
                 populationShareF:int{49140000}\r
             }\r
@@ -29647,7 +28977,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{47480000}\r
             }\r
             territoryF:intvector{\r
-                59390600,\r
+                59609900,\r
                 49608000,\r
                 56468902,\r
             }\r
@@ -29671,12 +29001,12 @@ supplementalData:table(nofallback){
                 populationShareF:int{49980000}\r
             }\r
             territoryF:intvector{\r
-                59744800,\r
+                59695500,\r
                 49896000,\r
                 56195804,\r
             }\r
             xh{\r
-                populationShareF:int{47990000}\r
+                populationShareF:int{48100000}\r
             }\r
             zu{\r
                 populationShareF:int{49140000}\r
@@ -29700,7 +29030,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{0}\r
             }\r
             territoryF:intvector{\r
-                60906300,\r
+                60912400,\r
                 49997000,\r
                 56282386,\r
             }\r
@@ -29726,7 +29056,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{49160000}\r
             }\r
             territoryF:intvector{\r
-                60643900,\r
+                60627300,\r
                 50100000,\r
                 55594130,\r
             }\r
@@ -29746,7 +29076,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{49380000}\r
             }\r
             territoryF:intvector{\r
-                60534700,\r
+                60539100,\r
                 49998000,\r
                 56194464,\r
             }\r
@@ -29757,7 +29087,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{49740000}\r
             }\r
             territoryF:intvector{\r
-                60631400,\r
+                60644000,\r
                 49895000,\r
                 56665321,\r
             }\r
@@ -29795,7 +29125,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{48870000}\r
             }\r
             territoryF:intvector{\r
-                61300100,\r
+                61298600,\r
                 49671000,\r
                 57339867,\r
             }\r
@@ -29834,7 +29164,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{48300000}\r
             }\r
             territoryF:intvector{\r
-                60200700,\r
+                60200800,\r
                 49990000,\r
                 56347412,\r
             }\r
@@ -29854,7 +29184,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{50100000}\r
             }\r
             territoryF:intvector{\r
-                60108600,\r
+                60110500,\r
                 49985000,\r
                 55642550,\r
             }\r
@@ -29884,7 +29214,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{49900000}\r
             }\r
             territoryF:intvector{\r
-                60398100,\r
+                60397300,\r
                 49645000,\r
                 57250542,\r
             }\r
@@ -29914,7 +29244,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{49250000}\r
             }\r
             territoryF:intvector{\r
-                60315500,\r
+                60309600,\r
                 49974000,\r
                 56210372,\r
             }\r
@@ -29964,7 +29294,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{48590000}\r
             }\r
             territoryF:intvector{\r
-                60409800,\r
+                60410000,\r
                 49334000,\r
                 57178852,\r
             }\r
@@ -29990,7 +29320,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{48640000}\r
             }\r
             territoryF:intvector{\r
-                61330900,\r
+                61328700,\r
                 49927000,\r
                 57551238,\r
             }\r
@@ -30007,7 +29337,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{47130000}\r
             }\r
             territoryF:intvector{\r
-                60384000,\r
+                60397000,\r
                 49974000,\r
                 56306824,\r
             }\r
@@ -30027,7 +29357,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{48500000}\r
             }\r
             territoryF:intvector{\r
-                60735800,\r
+                60717800,\r
                 49956000,\r
                 55601969,\r
             }\r
@@ -30048,7 +29378,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{49970000}\r
             }\r
             territoryF:intvector{\r
-                58682000,\r
+                59124200,\r
                 49970000,\r
                 54522630,\r
             }\r
@@ -30072,11 +29402,14 @@ supplementalData:table(nofallback){
             ff{\r
                 populationShareF:int{48570000}\r
             }\r
+            ff_Adlm{\r
+                populationShareF:int{0}\r
+            }\r
             fr{\r
                 populationShareF:int{49170000}\r
             }\r
             territoryF:intvector{\r
-                60173700,\r
+                60172500,\r
                 49586000,\r
                 56375857,\r
             }\r
@@ -30090,7 +29423,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{49660000}\r
             }\r
             territoryF:intvector{\r
-                57437800,\r
+                58167400,\r
                 49970000,\r
                 53529200,\r
             }\r
@@ -30111,7 +29444,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{50100000}\r
             }\r
             territoryF:intvector{\r
-                60185300,\r
+                60193100,\r
                 49924000,\r
                 55416338,\r
             }\r
@@ -30135,7 +29468,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{48250000}\r
             }\r
             territoryF:intvector{\r
-                60274400,\r
+                60274600,\r
                 49888000,\r
                 56135639,\r
             }\r
@@ -30149,7 +29482,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{49940000}\r
             }\r
             territoryF:intvector{\r
-                59689600,\r
+                59688700,\r
                 49984000,\r
                 55392709,\r
             }\r
@@ -30164,7 +29497,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{49630000}\r
             }\r
             territoryF:intvector{\r
-                60224700,\r
+                60223700,\r
                 49748000,\r
                 57191962,\r
             }\r
@@ -30196,13 +29529,13 @@ supplementalData:table(nofallback){
                 populationShareF:int{47390000}\r
             }\r
             nhw{\r
-                populationShareF:int{47380000}\r
+                populationShareF:int{47390000}\r
             }\r
             sei{\r
                 populationShareF:int{44700000}\r
             }\r
             territoryF:intvector{\r
-                62240600,\r
+                62245800,\r
                 49935000,\r
                 58124575,\r
             }\r
@@ -30240,7 +29573,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{48420000}\r
             }\r
             territoryF:intvector{\r
-                61926100,\r
+                61930800,\r
                 49931000,\r
                 57313820,\r
             }\r
@@ -30278,7 +29611,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{46350000}\r
             }\r
             territoryF:intvector{\r
-                60373900,\r
+                60367300,\r
                 49561000,\r
                 57265737,\r
             }\r
@@ -30319,7 +29652,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{49210000}\r
             }\r
             territoryF:intvector{\r
-                60270200,\r
+                60265100,\r
                 49888000,\r
                 56248478,\r
             }\r
@@ -30333,7 +29666,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{49960000}\r
             }\r
             territoryF:intvector{\r
-                60107700,\r
+                60111100,\r
                 49962000,\r
                 55279070,\r
             }\r
@@ -30345,6 +29678,12 @@ supplementalData:table(nofallback){
             dje{\r
                 populationShareF:int{49170000}\r
             }\r
+            ff{\r
+                populationShareF:int{0}\r
+            }\r
+            ff_Adlm{\r
+                populationShareF:int{0}\r
+            }\r
             fr{\r
                 officialStatus{"official"}\r
                 populationShareF:int{49290000}\r
@@ -30356,7 +29695,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{49410000}\r
             }\r
             territoryF:intvector{\r
-                60216200,\r
+                60218400,\r
                 49287000,\r
                 57192453,\r
             }\r
@@ -30373,14 +29712,14 @@ supplementalData:table(nofallback){
                 populationShareF:int{49760000}\r
             }\r
             territoryF:intvector{\r
-                58117500,\r
+                58118500,\r
                 49990000,\r
                 53221000,\r
             }\r
         }\r
         NG{\r
             amo{\r
-                populationShareF:int{45870000}\r
+                populationShareF:int{45880000}\r
             }\r
             ar{\r
                 populationShareF:int{46710000}\r
@@ -30398,6 +29737,12 @@ supplementalData:table(nofallback){
                 officialStatus{"official"}\r
                 populationShareF:int{49530000}\r
             }\r
+            ff{\r
+                populationShareF:int{0}\r
+            }\r
+            ff_Adlm{\r
+                populationShareF:int{0}\r
+            }\r
             fuv{\r
                 literacyShareF:int{49200000}\r
                 populationShareF:int{48670000}\r
@@ -30424,7 +29769,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{49210000}\r
             }\r
             territoryF:intvector{\r
-                62111800,\r
+                62111900,\r
                 49613000,\r
                 58190632,\r
             }\r
@@ -30443,7 +29788,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{49780000}\r
             }\r
             territoryF:intvector{\r
-                60362200,\r
+                60363800,\r
                 49780000,\r
                 56602595,\r
             }\r
@@ -30486,7 +29831,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{48120000}\r
             }\r
             territoryF:intvector{\r
-                61915200,\r
+                61916100,\r
                 49990000,\r
                 57170847,\r
             }\r
@@ -30511,7 +29856,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{47290000}\r
             }\r
             territoryF:intvector{\r
-                61375900,\r
+                61380000,\r
                 50100000,\r
                 56532005,\r
             }\r
@@ -30589,7 +29934,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{47120000}\r
             }\r
             territoryF:intvector{\r
-                60785500,\r
+                60785900,\r
                 49574000,\r
                 57293843,\r
             }\r
@@ -30655,7 +30000,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{48280000}\r
             }\r
             territoryF:intvector{\r
-                61185700,\r
+                61188600,\r
                 49990000,\r
                 56451033,\r
             }\r
@@ -30672,7 +30017,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{47940000}\r
             }\r
             territoryF:intvector{\r
-                61187900,\r
+                61186600,\r
                 49869000,\r
                 56342439,\r
             }\r
@@ -30686,7 +30031,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{49690000}\r
             }\r
             territoryF:intvector{\r
-                60994300,\r
+                61103900,\r
                 49941000,\r
                 56375314,\r
             }\r
@@ -30707,7 +30052,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{49150000}\r
             }\r
             territoryF:intvector{\r
-                61424600,\r
+                61424400,\r
                 49896000,\r
                 57310367,\r
             }\r
@@ -30741,7 +30086,7 @@ supplementalData:table(nofallback){
                 writingShareF:int{48500000}\r
             }\r
             territoryF:intvector{\r
-                60308400,\r
+                60303300,\r
                 49624000,\r
                 56690970,\r
             }\r
@@ -30770,7 +30115,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{49240000}\r
             }\r
             cps{\r
-                populationShareF:int{47670000}\r
+                populationShareF:int{47660000}\r
             }\r
             en{\r
                 officialStatus{"official"}\r
@@ -30815,7 +30160,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{45960000}\r
             }\r
             territoryF:intvector{\r
-                61874500,\r
+                61875600,\r
                 49954000,\r
                 58104256,\r
             }\r
@@ -30899,7 +30244,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{48910000}\r
             }\r
             territoryF:intvector{\r
-                62105600,\r
+                62105700,\r
                 49549000,\r
                 58204925,\r
             }\r
@@ -30944,7 +30289,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{48130000}\r
             }\r
             territoryF:intvector{\r
-                62111100,\r
+                62112100,\r
                 49997000,\r
                 57384763,\r
             }\r
@@ -30961,7 +30306,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{49920000}\r
             }\r
             territoryF:intvector{\r
-                58215300,\r
+                58261300,\r
                 49990000,\r
                 53553300,\r
             }\r
@@ -30972,7 +30317,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{49850000}\r
             }\r
             territoryF:intvector{\r
-                56240100,\r
+                56242900,\r
                 49990000,\r
                 51540000,\r
             }\r
@@ -30987,7 +30332,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{49870000}\r
             }\r
             territoryF:intvector{\r
-                61127300,\r
+                61121000,\r
                 49903000,\r
                 56335183,\r
             }\r
@@ -31021,7 +30366,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{49960000}\r
             }\r
             territoryF:intvector{\r
-                61311300,\r
+                61313400,\r
                 49954000,\r
                 57108395,\r
             }\r
@@ -31036,7 +30381,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{49740000}\r
             }\r
             territoryF:intvector{\r
-                58301000,\r
+                58291000,\r
                 49920000,\r
                 54214310,\r
             }\r
@@ -31054,7 +30399,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{49800000}\r
             }\r
             territoryF:intvector{\r
-                60680500,\r
+                60683300,\r
                 49939000,\r
                 56694374,\r
             }\r
@@ -31071,7 +30416,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{47280000}\r
             }\r
             territoryF:intvector{\r
-                61341700,\r
+                61340600,\r
                 49963000,\r
                 56231431,\r
             }\r
@@ -31126,7 +30471,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{47120000}\r
             }\r
             territoryF:intvector{\r
-                61474000,\r
+                61481500,\r
                 49977000,\r
                 57215300,\r
             }\r
@@ -31149,7 +30494,7 @@ supplementalData:table(nofallback){
             }\r
             sk{\r
                 officialStatus{"official_regional"}\r
-                populationShareF:int{47850000}\r
+                populationShareF:int{47860000}\r
             }\r
             sq{\r
                 populationShareF:int{49190000}\r
@@ -31164,7 +30509,7 @@ supplementalData:table(nofallback){
                 writingShareF:int{48500000}\r
             }\r
             territoryF:intvector{\r
-                61106600,\r
+                61105500,\r
                 49980000,\r
                 56711102,\r
             }\r
@@ -31236,7 +30581,7 @@ supplementalData:table(nofallback){
             }\r
             krc{\r
                 officialStatus{"official_regional"}\r
-                populationShareF:int{47160000}\r
+                populationShareF:int{47170000}\r
             }\r
             krl{\r
                 populationShareF:int{46820000}\r
@@ -31286,7 +30631,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{45350000}\r
             }\r
             territoryF:intvector{\r
-                62400000,\r
+                62400800,\r
                 49997000,\r
                 58142258,\r
             }\r
@@ -31323,7 +30668,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{49770000}\r
             }\r
             territoryF:intvector{\r
-                60246100,\r
+                60246300,\r
                 49711000,\r
                 57119015,\r
             }\r
@@ -31334,7 +30679,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{50100000}\r
             }\r
             territoryF:intvector{\r
-                62178900,\r
+                62177400,\r
                 49872000,\r
                 57285718,\r
             }\r
@@ -31348,7 +30693,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{48150000}\r
             }\r
             territoryF:intvector{\r
-                59131700,\r
+                59132400,\r
                 49841000,\r
                 55647581,\r
             }\r
@@ -31366,7 +30711,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{49600000}\r
             }\r
             territoryF:intvector{\r
-                59271200,\r
+                59271800,\r
                 49918000,\r
                 54939200,\r
             }\r
@@ -31396,7 +30741,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{47990000}\r
             }\r
             territoryF:intvector{\r
-                61186800,\r
+                61187000,\r
                 49719000,\r
                 57373459,\r
             }\r
@@ -31436,7 +30781,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{49950000}\r
             }\r
             territoryF:intvector{\r
-                61521700,\r
+                61520900,\r
                 49990000,\r
                 56996049,\r
             }\r
@@ -31464,7 +30809,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{48210000}\r
             }\r
             territoryF:intvector{\r
-                61513700,\r
+                61527000,\r
                 49959000,\r
                 56588893,\r
             }\r
@@ -31505,7 +30850,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{49870000}\r
             }\r
             territoryF:intvector{\r
-                60703600,\r
+                60710800,\r
                 49997000,\r
                 56197213,\r
             }\r
@@ -31519,7 +30864,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{49450000}\r
             }\r
             territoryF:intvector{\r
-                58188400,\r
+                58190500,\r
                 50100000,\r
                 53266700,\r
             }\r
@@ -31545,7 +30890,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{49900000}\r
             }\r
             territoryF:intvector{\r
-                61178700,\r
+                61179400,\r
                 49996000,\r
                 56544583,\r
             }\r
@@ -31558,6 +30903,12 @@ supplementalData:table(nofallback){
                 officialStatus{"official"}\r
                 populationShareF:int{49350000}\r
             }\r
+            ff{\r
+                populationShareF:int{0}\r
+            }\r
+            ff_Adlm{\r
+                populationShareF:int{0}\r
+            }\r
             kri{\r
                 populationShareF:int{49950000}\r
             }\r
@@ -31569,7 +30920,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{49260000}\r
             }\r
             territoryF:intvector{\r
-                60117500,\r
+                60115000,\r
                 49433000,\r
                 56616320,\r
             }\r
@@ -31583,7 +30934,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{49890000}\r
             }\r
             territoryF:intvector{\r
-                59208300,\r
+                59205200,\r
                 49960000,\r
                 54335370,\r
             }\r
@@ -31597,7 +30948,7 @@ supplementalData:table(nofallback){
             bsc{\r
                 literacyShareF:int{49100000}\r
                 officialStatus{"official_regional"}\r
-                populationShareF:int{46980000}\r
+                populationShareF:int{46970000}\r
             }\r
             dyo{\r
                 literacyShareF:int{49100000}\r
@@ -31608,6 +30959,9 @@ supplementalData:table(nofallback){
                 officialStatus{"official_regional"}\r
                 populationShareF:int{49210000}\r
             }\r
+            ff_Adlm{\r
+                populationShareF:int{0}\r
+            }\r
             fr{\r
                 literacyShareF:int{50100000}\r
                 officialStatus{"official"}\r
@@ -31642,7 +30996,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{49110000}\r
             }\r
             territoryF:intvector{\r
-                60430700,\r
+                60432400,\r
                 49497000,\r
                 57146685,\r
             }\r
@@ -31673,7 +31027,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{48200000}\r
             }\r
             territoryF:intvector{\r
-                60174700,\r
+                60186600,\r
                 49378000,\r
                 57110314,\r
             }\r
@@ -31688,7 +31042,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{49680000}\r
             }\r
             territoryF:intvector{\r
-                59792800,\r
+                59850800,\r
                 49947000,\r
                 55591919,\r
             }\r
@@ -31708,7 +31062,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{48560000}\r
             }\r
             territoryF:intvector{\r
-                60197500,\r
+                60187400,\r
                 49270000,\r
                 57130261,\r
             }\r
@@ -31719,7 +31073,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{49850000}\r
             }\r
             territoryF:intvector{\r
-                58682000,\r
+                58676000,\r
                 49695000,\r
                 55201025,\r
             }\r
@@ -31730,7 +31084,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{49890000}\r
             }\r
             territoryF:intvector{\r
-                60569000,\r
+                60569900,\r
                 49845000,\r
                 56617201,\r
             }\r
@@ -31807,7 +31161,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{49990000}\r
             }\r
             territoryF:intvector{\r
-                57122300,\r
+                57123700,\r
                 49990000,\r
                 52275000,\r
             }\r
@@ -31833,7 +31187,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{49260000}\r
             }\r
             territoryF:intvector{\r
-                60296400,\r
+                60285600,\r
                 49354000,\r
                 57120760,\r
             }\r
@@ -31844,7 +31198,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{50100000}\r
             }\r
             territoryF:intvector{\r
-                56589600,\r
+                56591700,\r
                 49990000,\r
                 52140000,\r
             }\r
@@ -31862,7 +31216,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{48130000}\r
             }\r
             territoryF:intvector{\r
-                60124300,\r
+                60129400,\r
                 49604000,\r
                 56796506,\r
             }\r
@@ -31903,7 +31257,7 @@ supplementalData:table(nofallback){
                 writingShareF:int{48500000}\r
             }\r
             territoryF:intvector{\r
-                62122900,\r
+                62123400,\r
                 49935000,\r
                 57684141,\r
             }\r
@@ -31931,7 +31285,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{49120000}\r
             }\r
             territoryF:intvector{\r
-                60276700,\r
+                60283800,\r
                 49997000,\r
                 56846856,\r
             }\r
@@ -31963,7 +31317,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{49590000}\r
             }\r
             territoryF:intvector{\r
-                59621100,\r
+                59675300,\r
                 49583000,\r
                 56129136,\r
             }\r
@@ -32005,7 +31359,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{49740000}\r
             }\r
             territoryF:intvector{\r
-                61135900,\r
+                61135400,\r
                 49791000,\r
                 57114038,\r
             }\r
@@ -32085,7 +31439,7 @@ supplementalData:table(nofallback){
                 writingShareF:int{48500000}\r
             }\r
             territoryF:intvector{\r
-                62213300,\r
+                62217300,\r
                 49941000,\r
                 57808452,\r
             }\r
@@ -32112,7 +31466,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{47340000}\r
             }\r
             territoryF:intvector{\r
-                60427800,\r
+                60430100,\r
                 49988000,\r
                 56121821,\r
             }\r
@@ -32134,7 +31488,7 @@ supplementalData:table(nofallback){
         }\r
         TW{\r
             territoryF:intvector{\r
-                62117500,\r
+                62118500,\r
                 49961000,\r
                 57235084,\r
             }\r
@@ -32197,7 +31551,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{49900000}\r
             }\r
             territoryF:intvector{\r
-                61162800,\r
+                61162200,\r
                 49678000,\r
                 57539509,\r
             }\r
@@ -32235,7 +31589,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{48120000}\r
             }\r
             territoryF:intvector{\r
-                61366400,\r
+                61368800,\r
                 49997000,\r
                 57440339,\r
             }\r
@@ -32287,7 +31641,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{48390000}\r
             }\r
             territoryF:intvector{\r
-                60886100,\r
+                60886700,\r
                 49732000,\r
                 57395701,\r
             }\r
@@ -32304,7 +31658,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{50100000}\r
             }\r
             territoryF:intvector{\r
-                57187300,\r
+                57187600,\r
                 49990000,\r
                 52316000,\r
             }\r
@@ -32341,7 +31695,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{47560000}\r
             }\r
             frc{\r
-                populationShareF:int{45840000}\r
+                populationShareF:int{45850000}\r
             }\r
             haw{\r
                 officialStatus{"official_regional"}\r
@@ -32364,7 +31718,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{45120000}\r
             }\r
             nv{\r
-                populationShareF:int{46500000}\r
+                populationShareF:int{46510000}\r
             }\r
             pdc{\r
                 populationShareF:int{46390000}\r
@@ -32373,7 +31727,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{47240000}\r
             }\r
             territoryF:intvector{\r
-                63193600,\r
+                63193900,\r
                 49990000,\r
                 58326626,\r
             }\r
@@ -32393,7 +31747,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{49880000}\r
             }\r
             territoryF:intvector{\r
-                60784100,\r
+                60781500,\r
                 49981000,\r
                 56336015,\r
             }\r
@@ -32406,7 +31760,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{49140000}\r
             }\r
             territoryF:intvector{\r
-                61221700,\r
+                61222600,\r
                 49994000,\r
                 57297489,\r
             }\r
@@ -32431,7 +31785,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{49820000}\r
             }\r
             territoryF:intvector{\r
-                57371300,\r
+                57371900,\r
                 50100000,\r
                 53100000,\r
             }\r
@@ -32442,7 +31796,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{49960000}\r
             }\r
             territoryF:intvector{\r
-                59128100,\r
+                59126600,\r
                 49960000,\r
                 55102089,\r
             }\r
@@ -32453,7 +31807,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{49820000}\r
             }\r
             territoryF:intvector{\r
-                61389400,\r
+                61380700,\r
                 49955000,\r
                 57313040,\r
             }\r
@@ -32475,7 +31829,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{49750000}\r
             }\r
             territoryF:intvector{\r
-                59379200,\r
+                59387200,\r
                 49990000,\r
                 55107268,\r
             }\r
@@ -32486,7 +31840,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{46890000}\r
             }\r
             territoryF:intvector{\r
-                61643900,\r
+                61647400,\r
                 49934000,\r
                 57961602,\r
             }\r
@@ -32495,7 +31849,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{49860000}\r
             }\r
             zh_Hant{\r
-                populationShareF:int{48100000}\r
+                populationShareF:int{48110000}\r
             }\r
         }\r
         VU{\r
@@ -32512,7 +31866,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{49500000}\r
             }\r
             territoryF:intvector{\r
-                58787000,\r
+                58770000,\r
                 49832000,\r
                 55282814,\r
             }\r
@@ -32544,7 +31898,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{50100000}\r
             }\r
             territoryF:intvector{\r
-                59113000,\r
+                59113400,\r
                 49988000,\r
                 55200108,\r
             }\r
@@ -32566,7 +31920,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{48500000}\r
             }\r
             territoryF:intvector{\r
-                60193800,\r
+                60196300,\r
                 49919000,\r
                 56189525,\r
             }\r
@@ -32580,7 +31934,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{48900000}\r
             }\r
             territoryF:intvector{\r
-                60689500,\r
+                60386000,\r
                 49653000,\r
                 57280368,\r
             }\r
@@ -32645,7 +31999,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{45180000}\r
             }\r
             territoryF:intvector{\r
-                61757300,\r
+                61765600,\r
                 49930000,\r
                 57548416,\r
             }\r
@@ -32690,7 +32044,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{49150000}\r
             }\r
             territoryF:intvector{\r
-                60689000,\r
+                60688900,\r
                 49614000,\r
                 57159720,\r
             }\r
@@ -32721,7 +32075,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{49810000}\r
             }\r
             territoryF:intvector{\r
-                60338700,\r
+                60339600,\r
                 49836000,\r
                 57138051,\r
             }\r
@@ -35635,7 +34989,7 @@ supplementalData:table(nofallback){
             86400000,\r
         }\r
         IE:intvector{\r
-            1,\r
+            2,\r
             4,\r
             7,\r
             0,\r
@@ -35842,14 +35196,6 @@ supplementalData:table(nofallback){
             7,\r
             86400000,\r
         }\r
-        MA:intvector{\r
-            7,\r
-            1,\r
-            6,\r
-            0,\r
-            7,\r
-            86400000,\r
-        }\r
         MC:intvector{\r
             2,\r
             4,\r
@@ -36059,7 +35405,7 @@ supplementalData:table(nofallback){
             86400000,\r
         }\r
         PT:intvector{\r
-            2,\r
+            1,\r
             4,\r
             7,\r
             0,\r
@@ -36218,14 +35564,6 @@ supplementalData:table(nofallback){
             1,\r
             86400000,\r
         }\r
-        TN:intvector{\r
-            1,\r
-            1,\r
-            6,\r
-            0,\r
-            7,\r
-            86400000,\r
-        }\r
         TR:intvector{\r
             2,\r
             1,\r
index a8dc591..150a079 100644 (file)
@@ -580,6 +580,10 @@ windowsZones:table(nofallback){
             001{"Pacific/Apia"}\r
             WS{"Pacific/Apia"}\r
         }\r
+        "Sao Tome Standard Time"{\r
+            001{"Africa/Sao_Tome"}\r
+            ST{"Africa/Sao_Tome"}\r
+        }\r
         "Saratov Standard Time"{\r
             001{"Europe/Saratov"}\r
             RU{"Europe/Saratov"}\r
@@ -745,7 +749,6 @@ windowsZones:table(nofallback){
             GQ{"Africa/Malabo"}\r
             NE{"Africa/Niamey"}\r
             NG{"Africa/Lagos"}\r
-            ST{"Africa/Sao_Tome"}\r
             TD{"Africa/Ndjamena"}\r
             TN{"Africa/Tunis"}\r
             ZZ{"Etc/GMT-1"}\r
index 40b73ed..0d9cfb5 100644 (file)
@@ -47,10 +47,10 @@ ar{
             "2000000: <%%spellout-numbering-m< \u0645\u0644\u064A\u0648\u0646[ \u0648 >%spellout-numbering>];",\r
             "1000000000: \u0645\u0644\u064A\u0627\u0631[ \u0648 >%spellout-numbering>];",\r
             "2000000000: <%%spellout-numbering-m< \u0645\u0644\u064A\u0627\u0631[ \u0648 >%spellout-numbering>];",\r
-            "1000000000000: \u0628\u0644\u064A\u0648\u0646[ \u0648 >%spellout-numbering>];",\r
-            "2000000000000: <%%spellout-numbering-m< \u0628\u0644\u064A\u0648\u0646[ \u0648 >%spellout-numbering>];",\r
-            "1000000000000000: \u0628\u0644\u064A\u0627\u0631[ \u0648 >%spellout-numbering>];",\r
-            "2000000000000000: <%%spellout-numbering-m< \u0628\u0644\u064A\u0627\u0631[ \u0648 >%spellout-numbering>];",\r
+            "1000000000000: \u062A\u0631\u0644\u064A\u0648\u0646[ \u0648 >%spellout-numbering>];",\r
+            "2000000000000: <%%spellout-numbering-m< \u062A\u0631\u0644\u064A\u0648\u0646[ \u0648 >%spellout-numbering>];",\r
+            "1000000000000000: \u0643\u0648\u0627\u062F\u0631\u0644\u064A\u0648\u0646[ \u0648 >%spellout-numbering>];",\r
+            "2000000000000000: <%%spellout-numbering-m< \u0643\u0648\u0627\u062F\u0631\u0644\u064A\u0648\u0646[ \u0648 >%spellout-numbering>];",\r
             "1000000000000000000: =#,##0=;",\r
             "%spellout-cardinal-feminine:",\r
             "-x: \u0646\u0627\u0642\u0635 >>;",\r
@@ -88,10 +88,10 @@ ar{
             "2000000: <%%spellout-numbering-m< \u0645\u0644\u064A\u0648\u0646[ \u0648 >%spellout-numbering>];",\r
             "1000000000: \u0645\u0644\u064A\u0627\u0631[ \u0648 >%spellout-numbering>];",\r
             "2000000000: <%%spellout-numbering-m< \u0645\u0644\u064A\u0627\u0631[ \u0648 >%spellout-numbering>];",\r
-            "1000000000000: \u0628\u0644\u064A\u0648\u0646[ \u0648 >%spellout-numbering>];",\r
-            "2000000000000: <%%spellout-numbering-m< \u0628\u0644\u064A\u0648\u0646[ \u0648 >%spellout-numbering>];",\r
-            "1000000000000000: \u0628\u0644\u064A\u0627\u0631[ \u0648 >%spellout-numbering>];",\r
-            "2000000000000000: <%%spellout-numbering-m< \u0628\u0644\u064A\u0627\u0631[ \u0648 >%spellout-numbering>];",\r
+            "1000000000000: \u062A\u0631\u0644\u064A\u0648\u0646[ \u0648 >%spellout-numbering>];",\r
+            "2000000000000: <%%spellout-numbering-m< \u062A\u0631\u0644\u064A\u0648\u0646[ \u0648 >%spellout-numbering>];",\r
+            "1000000000000000: \u0643\u0648\u0627\u062F\u0631\u0644\u064A\u0648\u0646[ \u0648 >%spellout-numbering>];",\r
+            "2000000000000000: <%%spellout-numbering-m< \u0643\u0648\u0627\u062F\u0631\u0644\u064A\u0648\u0646[ \u0648 >%spellout-numbering>];",\r
             "1000000000000000000: =#,##0=;",\r
             "%%spellout-numbering-m:",\r
             "0: \u0635\u0641\u0631;",\r
@@ -127,10 +127,10 @@ ar{
             "2000000: <%%spellout-numbering-m< \u0645\u0644\u064A\u0648\u0646[ \u0648 >%%spellout-numbering-m>];",\r
             "1000000000: \u0645\u0644\u064A\u0627\u0631[ \u0648 >%%spellout-numbering-m>];",\r
             "2000000000: <%%spellout-numbering-m< \u0645\u0644\u064A\u0627\u0631[ \u0648 >%%spellout-numbering-m>];",\r
-            "1000000000000: \u0628\u0644\u064A\u0648\u0646[ \u0648 >%%spellout-numbering-m>];",\r
-            "2000000000000: <%%spellout-numbering-m< \u0628\u0644\u064A\u0648\u0646[ \u0648 >%%spellout-numbering-m>];",\r
-            "1000000000000000: \u0628\u0644\u064A\u0627\u0631[ \u0648 >%%spellout-numbering-m>];",\r
-            "2000000000000000: <%%spellout-numbering-m< \u0628\u0644\u064A\u0627\u0631[ \u0648 >%%spellout-numbering-m>];",\r
+            "1000000000000: \u062A\u0631\u0644\u064A\u0648\u0646[ \u0648 >%%spellout-numbering-m>];",\r
+            "2000000000000: <%%spellout-numbering-m< \u062A\u0631\u0644\u064A\u0648\u0646[ \u0648 >%%spellout-numbering-m>];",\r
+            "1000000000000000: \u0643\u0648\u0627\u062F\u0631\u0644\u064A\u0648\u0646[ \u0648 >%%spellout-numbering-m>];",\r
+            "2000000000000000: <%%spellout-numbering-m< \u0643\u0648\u0627\u062F\u0631\u0644\u064A\u0648\u0646[ \u0648 >%%spellout-numbering-m>];",\r
             "1000000000000000000: =#,##0=;",\r
             "%spellout-cardinal-masculine:",\r
             "-x: \u0646\u0627\u0642\u0635 >>;",\r
@@ -168,10 +168,10 @@ ar{
             "2000000: <%%spellout-numbering-m< \u0645\u0644\u064A\u0648\u0646[ \u0648 >%%spellout-numbering-m>];",\r
             "1000000000: \u0645\u0644\u064A\u0627\u0631[ \u0648 >%%spellout-numbering-m>];",\r
             "2000000000: <%%spellout-numbering-m< \u0645\u0644\u064A\u0627\u0631[ \u0648 >%%spellout-numbering-m>];",\r
-            "1000000000000: \u0628\u0644\u064A\u0648\u0646[ \u0648 >%%spellout-numbering-m>];",\r
-            "2000000000000: <%%spellout-numbering-m< \u0628\u0644\u064A\u0648\u0646[ \u0648 >%%spellout-numbering-m>];",\r
-            "1000000000000000: \u0628\u0644\u064A\u0627\u0631[ \u0648 >%%spellout-numbering-m>];",\r
-            "2000000000000000: <%%spellout-numbering-m< \u0628\u0644\u064A\u0627\u0631[ \u0648 >%%spellout-numbering-m>];",\r
+            "1000000000000: \u062A\u0631\u0644\u064A\u0648\u0646[ \u0648 >%%spellout-numbering-m>];",\r
+            "2000000000000: <%%spellout-numbering-m< \u062A\u0631\u0644\u064A\u0648\u0646[ \u0648 >%%spellout-numbering-m>];",\r
+            "1000000000000000: \u0643\u0648\u0627\u062F\u0631\u0644\u064A\u0648\u0646[ \u0648 >%%spellout-numbering-m>];",\r
+            "2000000000000000: <%%spellout-numbering-m< \u0643\u0648\u0627\u062F\u0631\u0644\u064A\u0648\u0646[ \u0648 >%%spellout-numbering-m>];",\r
             "1000000000000000000: =#,##0=;",\r
             "%%ordinal-ones-feminine:",\r
             "1: \u0627\u0644\u062D\u0627\u062F\u064A\u0629 ;",\r
@@ -221,10 +221,10 @@ ar{
             "2000000: <%spellout-cardinal-feminine< \u0627\u0644\u0623\u0644\u0641[ \u0648 >%spellout-cardinal-feminine>];",\r
             "1000000000: \u0627\u0644\u0645\u0644\u064A\u0627\u0631[ \u0648 >%spellout-cardinal-feminine>];",\r
             "2000000000: <%spellout-cardinal-feminine< \u0645\u0644\u064A\u0627\u0631[ \u0648 >%spellout-cardinal-feminine>];",\r
-            "1000000000000: \u0628\u0644\u064A\u0648\u0646[ \u0648 >%spellout-cardinal-feminine>];",\r
-            "2000000000000: <%spellout-cardinal-feminine< \u0628\u0644\u064A\u0648\u0646[ \u0648 >%spellout-cardinal-feminine>];",\r
-            "1000000000000000: \u0628\u0644\u064A\u0627\u0631[ \u0648 >%spellout-cardinal-feminine>];",\r
-            "2000000000000000: <%spellout-cardinal-feminine< \u0628\u0644\u064A\u0627\u0631[ \u0648 >%spellout-cardinal-feminine>];",\r
+            "1000000000000: \u062A\u0631\u0644\u064A\u0648\u0646[ \u0648 >%spellout-cardinal-feminine>];",\r
+            "2000000000000: <%spellout-cardinal-feminine< \u062A\u0631\u0644\u064A\u0648\u0646[ \u0648 >%spellout-cardinal-feminine>];",\r
+            "1000000000000000: \u0643\u0648\u0627\u062F\u0631\u0644\u064A\u0648\u0646[ \u0648 >%spellout-cardinal-feminine>];",\r
+            "2000000000000000: <%spellout-cardinal-feminine< \u0643\u0648\u0627\u062F\u0631\u0644\u064A\u0648\u0646[ \u0648 >%spellout-cardinal-feminine>];",\r
             "1000000000000000000: =#,##0=;",\r
             "%%ordinal-ones-masculine:",\r
             "1: \u0627\u0644\u062D\u0627\u062F\u064A ;",\r
@@ -274,12 +274,12 @@ ar{
             "2000000: <%%spellout-numbering-m< \u0627\u0644\u0623\u0644\u0641[ \u0648 >%%spellout-numbering-m>];",\r
             "1000000000: \u0627\u0644\u0645\u0644\u064A\u0627\u0631[ \u0648 >%%spellout-numbering-m>];",\r
             "2000000000: <%%spellout-numbering-m< \u0645\u0644\u064A\u0627\u0631[ \u0648 >%%spellout-numbering-m>];",\r
-            "1000000000000: \u0628\u0644\u064A\u0648\u0646[ \u0648 >%%spellout-numbering-m>];",\r
-            "2000000000000: <%%spellout-numbering-m< \u0628\u0644\u064A\u0648\u0646[ \u0648 >%%spellout-numbering-m>];",\r
-            "1000000000000000: \u0628\u0644\u064A\u0627\u0631[ \u0648 >%%spellout-numbering-m>];",\r
-            "2000000000000000: <%%spellout-numbering-m< \u0628\u0644\u064A\u0627\u0631[ \u0648 >%%spellout-numbering-m>];",\r
+            "1000000000000: \u062A\u0631\u0644\u064A\u0648\u0646[ \u0648 >%%spellout-numbering-m>];",\r
+            "2000000000000: <%%spellout-numbering-m< \u062A\u0631\u0644\u064A\u0648\u0646[ \u0648 >%%spellout-numbering-m>];",\r
+            "1000000000000000: \u0643\u0648\u0627\u062F\u0631\u0644\u064A\u0648\u0646[ \u0648 >%%spellout-numbering-m>];",\r
+            "2000000000000000: <%%spellout-numbering-m< \u0643\u0648\u0627\u062F\u0631\u0644\u064A\u0648\u0646[ \u0648 >%%spellout-numbering-m>];",\r
             "1000000000000000000: =#,##0=;",\r
         }\r
     }\r
-    Version{"2.1.27.22"}\r
+    Version{"2.1.41.99"}\r
 }\r
index 825cc12..dfc3d44 100644 (file)
@@ -180,5 +180,5 @@ de_CH{
             "0: =%spellout-ordinal=s;",\r
         }\r
     }\r
-    Version{"2.1.37.8"}\r
+    Version{"2.1.44.50"}\r
 }\r
index b977d9e..d0d1879 100644 (file)
@@ -7,8 +7,6 @@ hu{
             "-x: m\u00EDnusz >>;",\r
             "x.x: =0.0=;",\r
             "0: =%spellout-numbering=;",\r
-            "1100/100: <<\u00ADsz\u00E1z[\u00AD>>];",\r
-            "10000: =%spellout-numbering=;",\r
             "%spellout-numbering:",\r
             "0: =%spellout-cardinal=;",\r
             "%spellout-cardinal:",\r
@@ -37,23 +35,23 @@ hu{
             "90: kilencven[\u00AD>>];",\r
             "100: sz\u00E1z[\u00AD>>];",\r
             "200: <%%spellout-cardinal-initial<\u00ADsz\u00E1z[\u00AD>>];",\r
-            "1000: ezer[ >>];",\r
-            "2000: <%%spellout-cardinal-initial<\u00ADezer[ >>];",\r
-            "1000000: <%%spellout-cardinal-initial< milli\u00F3[ >>];",\r
-            "1000000000: <%%spellout-cardinal-initial< milli\u00E1rd[ >>];",\r
-            "1000000000000: <%%spellout-cardinal-initial< billi\u00F3[ >>];",\r
-            "1000000000000000: <%%spellout-cardinal-initial< billi\u00E1rd[ >>];",\r
+            "1000: ezer[\u00AD>>];",\r
+            "2000: <%%spellout-cardinal-initial<\u00ADezer[\u00AD>>];",\r
+            "1000000: <%%spellout-cardinal-initial<\u00ADmilli\u00F3[\u00AD>>];",\r
+            "1000000000: <%%spellout-cardinal-initial<\u00ADmilli\u00E1rd[\u00AD>>];",\r
+            "1000000000000: <%%spellout-cardinal-initial<\u00ADbilli\u00F3[\u00AD>>];",\r
+            "1000000000000000: <%%spellout-cardinal-initial<\u00ADbilli\u00E1rd[\u00AD>>];",\r
             "1000000000000000000: =#,##0=;",\r
             "%spellout-cardinal-verbose:",\r
             "-x: m\u00EDnusz >>;",\r
             "x.x: << eg\u00E9sz >>;",\r
             "0: =%spellout-cardinal=;",\r
             "100: <<\u00ADsz\u00E1z[\u00AD>>];",\r
-            "1000: <<\u00ADezer[ >>];",\r
-            "1000000: << milli\u00F3[ >>];",\r
-            "1000000000: << milli\u00E1rd[ >>];",\r
-            "1000000000000: << billi\u00F3[ >>];",\r
-            "1000000000000000: << billi\u00E1rd[ >>];",\r
+            "1000: <<\u00ADezer[\u00AD>>];",\r
+            "1000000: <<\u00ADmilli\u00F3[\u00AD>>];",\r
+            "1000000000: <<\u00ADmilli\u00E1rd[\u00AD>>];",\r
+            "1000000000000: <<\u00ADbilli\u00F3[\u00AD>>];",\r
+            "1000000000000000: <<\u00ADbilli\u00E1rd[\u00AD>>];",\r
             "1000000000000000000: =#,##0=;",\r
             "%%spellout-cardinal-initial:",\r
             "1: egy;",\r
@@ -97,13 +95,15 @@ hu{
             "100: sz\u00E1z>%%spellout-ordinal-adik>;",\r
             "200: <%%spellout-cardinal-initial<sz\u00E1z>%%spellout-ordinal-adik>;",\r
             "1000: ezr>>;",\r
-            "2000: <%%spellout-cardinal-initial<ezr>>;",\r
-            "1000000: <%%spellout-cardinal-initial< milliom>%%spellout-ordinal-odik>;",\r
+            "1001: ezer\u00AD>>;",\r
+            "2000: <%%spellout-cardinal-initial<\u00ADezr>>;",\r
+            "2001: <%%spellout-cardinal-initial<\u00ADezer\u00AD>>;",\r
+            "1000000: <%%spellout-cardinal-initial<\u00ADmilliom\u00AD>%%spellout-ordinal-odik>;",\r
             "1000000000: =#,##0=.;",\r
             "%spellout-ordinal-verbose:",\r
             "-x: m\u00EDnusz >>;",\r
             "x.x: =#,##0.#=;",\r
-            "0: nulla;",\r
+            "0: nulladik;",\r
             "1: els\u0151;",\r
             "2: m\u00E1sodik;",\r
             "3: =%%spellout-ordinal-verbose-larger=;",\r
@@ -116,10 +116,11 @@ hu{
             "%%spellout-ordinal-verbose-larger:",\r
             "0: =%%spellout-ordinal-larger=;",\r
             "100: <%spellout-cardinal-verbose<sz\u00E1z>%%spellout-ordinal-verbose-adik>;",\r
-            "1000: <%spellout-cardinal-verbose<ezr>>;",\r
-            "1000000: <%spellout-cardinal-verbose< milliom>%%spellout-ordinal-verbose-odik>;",\r
+            "1000: <%spellout-cardinal-verbose<\u00ADezr>>;",\r
+            "1001: <%spellout-cardinal-verbose<\u00ADezer\u00AD>>;",\r
+            "1000000: <%spellout-cardinal-verbose<\u00ADmilliom\u00AD>%%spellout-ordinal-verbose-odik>;",\r
             "1000000000: =#,##0=.;",\r
         }\r
     }\r
-    Version{"2.1.27.22"}\r
+    Version{"2.1.41.98"}\r
 }\r
index 1dea080..24f4906 100644 (file)
@@ -1,6 +1,6 @@
 # © 2016 and later: Unicode, Inc. and others.\r
 # License & terms of use: http://www.unicode.org/copyright.html#License\r
-RBNF_CLDR_VERSION = 33.1\r
+RBNF_CLDR_VERSION = 34\r
 # A list of txt's to build\r
 # Note:\r
 #\r
index e351719..464fbda 100644 (file)
@@ -146,5 +146,5 @@ sr_Latn{
             "400: <%spellout-cardinal-feminine<sto>%%ordti>;",\r
         }\r
     }\r
-    Version{"2.1.37.8"}\r
+    Version{"2.1.44.50"}\r
 }\r
index a2f0571..fc7d9e8 100644 (file)
@@ -170,5 +170,5 @@ yue_Hans{
             "0: \u7B2C=%spellout-numbering=;",\r
         }\r
     }\r
-    Version{"2.1.37.8"}\r
+    Version{"2.1.44.50"}\r
 }\r
index dac29fe..0515261 100644 (file)
@@ -15,7 +15,7 @@ af{
         018{"Suider-Afrika"}\r
         019{"Amerikas"}\r
         021{"Noordelike Amerika"}\r
-        029{"Karibies"}\r
+        029{"Karibiese streek"}\r
         030{"Oos-Asië"}\r
         034{"Suid-Asië"}\r
         035{"Suidoos-Asië"}\r
@@ -227,7 +227,7 @@ af{
         PW{"Palau"}\r
         PY{"Paraguay"}\r
         QA{"Katar"}\r
-        QO{"Omliggende Oseanië"}\r
+        QO{"Afgeleë Oseanië"}\r
         RE{"Réunion"}\r
         RO{"Roemenië"}\r
         RS{"Serwië"}\r
@@ -310,5 +310,5 @@ af{
         FK{"Falklandeilande (Malvinas)"}\r
         MK{"Macedonië (VJRM)"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.65"}\r
 }\r
index f0f36f9..e3d7c97 100644 (file)
@@ -16,17 +16,17 @@ am{
         019{"አሜሪካ"}\r
         021{"ሰሜናዊ አሜሪካ"}\r
         029{"ካሪቢያን"}\r
-        030{"á\88\9dá\8b\95á\88«á\89£á\8b\8a á\8a¥á\88²ያ"}\r
+        030{"á\88\9dá\88µá\88«á\89\83á\8b\8a á\8a¥á\88µያ"}\r
         034{"ደቡባዊ እሲያ"}\r
         035{"ምዕራባዊ ደቡብ እሲያ"}\r
         039{"ደቡባዊ አውሮፓ"}\r
-        053{"á\8a á\8b\8dá\88µá\89µá\88«á\88\8aያ"}\r
+        053{"á\8a á\8b\8dá\88µá\89µá\88«á\88\8cá\8b¥ያ"}\r
         054{"ሜላኔዥያ"}\r
         057{"የማይክሮኔዥያን ክልል"}\r
         061{"ፖሊኔዥያ"}\r
         142{"እሲያ"}\r
         143{"መካከለኛው እሲያ"}\r
-        145{"á\88\9dá\88µá\88«á\89\83á\8b\8a á\8a¥á\88²ያ"}\r
+        145{"á\88\9dá\8b\95á\88«á\89£á\8b\8a á\8a¥á\88µያ"}\r
         150{"አውሮፓ"}\r
         151{"ምዕራባዊ አውሮፓ"}\r
         154{"ሰሜናዊ አውሮፓ"}\r
@@ -88,9 +88,9 @@ am{
         CU{"ኩባ"}\r
         CV{"ኬፕ ቬርዴ"}\r
         CW{"ኩራሳዎ"}\r
-        CX{"á\8b¨á\8c\88á\8a\93 ደሴት"}\r
+        CX{"á\8a­á\88ªá\88µá\88\9bá\88µ ደሴት"}\r
         CY{"ሳይፕረስ"}\r
-        CZ{"á\89¼á\89½á\8a\92ያ"}\r
+        CZ{"á\89¼á\89ºያ"}\r
         DE{"ጀርመን"}\r
         DG{"ዲዬጎ ጋርሺያ"}\r
         DJ{"ጂቡቲ"}\r
@@ -262,7 +262,7 @@ am{
         TH{"ታይላንድ"}\r
         TJ{"ታጃኪስታን"}\r
         TK{"ቶክላው"}\r
-        TL{"á\88\9dá\88µá\88«á\89\85 á\88\8cá\88µá\89µ"}\r
+        TL{"á\89²á\88\9eá\88­ á\88\8cá\88µá\89´"}\r
         TM{"ቱርክሜኒስታን"}\r
         TN{"ቱኒዚያ"}\r
         TO{"ቶንጋ"}\r
@@ -296,7 +296,7 @@ am{
         ZZ{"ያልታወቀ ክልል"}\r
     }\r
     Countries%short{\r
-        GB{"á\8b©á\8a\93á\8b­á\89µá\8bµ á\8aªá\8a\95á\8c\8dá\8b°á\88\9d"}\r
+        GB{"á\8b©á\8a¬"}\r
         HK{"ሆንግ ኮንግ"}\r
         MO{"ማካኡ"}\r
         PS{"ፍልስጥኤም"}\r
@@ -312,5 +312,5 @@ am{
         MK{"መቄዶንያ (የቀድሞ የዩጎስላቭ መቄዶንያ ሪፐብሊክ)"}\r
         TL{"ምስራቅ ቲሞር"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.65"}\r
 }\r
index 9a917fc..689b9bc 100644 (file)
@@ -262,7 +262,7 @@ ar{
         TH{"تايلاند"}\r
         TJ{"طاجيكستان"}\r
         TK{"توكيلو"}\r
-        TL{"تيمور- ليشتي"}\r
+        TL{"تيمور - ليشتي"}\r
         TM{"تركمانستان"}\r
         TN{"تونس"}\r
         TO{"تونغا"}\r
@@ -312,5 +312,5 @@ ar{
         MK{"مقدونيا- جمهورية مقدونيا اليوغسلافية السابقة"}\r
         TL{"تيمور الشرقية"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.50"}\r
 }\r
index ead1674..c25e823 100644 (file)
@@ -7,7 +7,6 @@ ar_SA{
         EA{"سبتة ومليلية"}\r
         MO{"ماكاو الصينية (منطقة إدارية خاصة)"}\r
         MS{"مونتيسيرات"}\r
-        PM{"سان بيير وميكولون"}\r
         UY{"أوروغواي"}\r
     }\r
     Countries%short{\r
@@ -16,5 +15,5 @@ ar_SA{
     Countries%variant{\r
         CZ{"التشيك"}\r
     }\r
-    Version{"2.1.38.80"}\r
+    Version{"2.1.43.65"}\r
 }\r
index 5d9862a..f318772 100644 (file)
@@ -307,8 +307,9 @@ as{
         CG{"কঙ্গো (প্রজাতন্ত্র)"}\r
         CI{"আইভৰী কোষ্ট"}\r
         CZ{"চেক প্রজাতন্ত্র"}\r
+        FK{"ফকলেণ্ড দ্বীপপুঞ্জ (আইলেছ মালভিনাছ)"}\r
         MK{"মেচিডোনীয়া (FYROM)"}\r
         TL{"পূৱ টিমোৰ"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.94"}\r
 }\r
index 5a0f4f1..6958536 100644 (file)
@@ -310,5 +310,5 @@ ast{
         MK{"Macedonia (ARYDM)"}\r
         TL{"Timor Este"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.91"}\r
 }\r
index abdf5a6..4830979 100644 (file)
@@ -312,5 +312,5 @@ az{
         MK{"Makedoniya (KYRM)"}\r
         TL{"Doğu Timor"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.53"}\r
 }\r
index e52abaf..abe464f 100644 (file)
@@ -302,5 +302,5 @@ az_Cyrl{
         FK{"Фолкленд адалары (Малвин адалары)"}\r
         MK{"Македонија (КЈРМ)"}\r
     }\r
-    Version{"2.1.38.69"}\r
+    Version{"2.1.44.53"}\r
 }\r
index 2641f32..9f9831c 100644 (file)
@@ -311,5 +311,5 @@ be{
         MK{"Македонія (БЮРМ)"}\r
         TL{"Усходні Тымор"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.65"}\r
 }\r
index 8b263e2..24f10dc 100644 (file)
@@ -65,7 +65,7 @@ bg{
         BO{"Боливия"}\r
         BQ{"Карибска Нидерландия"}\r
         BR{"Бразилия"}\r
-        BS{"Бахами"}\r
+        BS{"Бахамски острови"}\r
         BT{"Бутан"}\r
         BV{"остров Буве"}\r
         BW{"Ботсвана"}\r
@@ -110,7 +110,7 @@ bg{
         EZ{"Еврозона"}\r
         FI{"Финландия"}\r
         FJ{"Фиджи"}\r
-        FK{"Фолклендски острови"}\r
+        FK{"Фолкландски острови"}\r
         FM{"Микронезия"}\r
         FO{"Фарьорски острови"}\r
         FR{"Франция"}\r
@@ -305,10 +305,9 @@ bg{
     Countries%variant{\r
         CD{"Конго (ДРК)"}\r
         CG{"Конго (Република)"}\r
-        CI{"Бряг на слоновата кост"}\r
         CZ{"Чешка република"}\r
-        FK{"Фолклендски острови (Малвински острови)"}\r
+        FK{"Фолкландски острови (Малвински острови)"}\r
         MK{"Бивша югославска република Македония"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.94"}\r
 }\r
index 07774f9..d13e071 100644 (file)
@@ -178,7 +178,7 @@ bn{
         LY{"লিবিয়া"}\r
         MA{"মোরক্কো"}\r
         MC{"মোনাকো"}\r
-        MD{"মà§\8bলà§\8dদাভিয়া"}\r
+        MD{"মলডà§\8bভা"}\r
         ME{"মন্টিনিগ্রো"}\r
         MF{"সেন্ট মার্টিন"}\r
         MG{"মাদাগাস্কার"}\r
@@ -312,5 +312,5 @@ bn{
         MK{"ম্যাসিডোনিয়া (FYROM)"}\r
         TL{"পূর্ব তিমুর"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.91"}\r
 }\r
index a92541b..a1c3fb1 100644 (file)
@@ -2,11 +2,10 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 bn_IN{\r
     Countries{\r
-        MD{"মলডোভা"}\r
         UM{"মার্কিন যুক্তরাষ্ট্রের পার্শ্ববর্তী দ্বীপপুঞ্জ"}\r
     }\r
     Countries%variant{\r
         CD{"কঙ্গো (DRC)"}\r
     }\r
-    Version{"2.1.38.69"}\r
+    Version{"2.1.43.65"}\r
 }\r
index 2ab6594..a198a80 100644 (file)
@@ -311,5 +311,5 @@ br{
         MK{"Makedonia (RYKM)"}\r
         TL{"Timor ar Reter"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.91"}\r
 }\r
index ab46f41..cb481d8 100644 (file)
@@ -281,5 +281,5 @@ brx{
         ZW{"ज़ीम्बाब्वे"}\r
         ZZ{"अज्ञात या अवैध प्रदेश"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.41.34"}\r
 }\r
index a9f8aee..42dfc10 100644 (file)
@@ -312,5 +312,5 @@ bs{
         MK{"Makedonija (BJR)"}\r
         TL{"TL"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.88"}\r
 }\r
index 238735d..c404e34 100644 (file)
@@ -308,5 +308,5 @@ bs_Cyrl{
         FK{"Фокландска (Малвинска) острва"}\r
         MK{"Македонија (БЈР)"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.41.34"}\r
 }\r
index d9ad2e4..83f0fbe 100644 (file)
@@ -310,5 +310,5 @@ ca{
         FK{"Illes Malvines (Illes Falkland)"}\r
         MK{"Macedònia (Antiga República Iugoslava de Macedònia)"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.65"}\r
 }\r
index 48bc37c..214f36c 100644 (file)
@@ -322,5 +322,5 @@ ccp{
         MK{"𑄟𑄬𑄥𑄨𑄓𑄮𑄚𑄠(FYROM)"}\r
         TL{"𑄛𑄪𑄉𑄮 𑄖𑄨𑄟𑄪𑄢𑄴"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.50"}\r
 }\r
index da09a77..93d7918 100644 (file)
@@ -308,5 +308,5 @@ ce{
         FK{"Фолклендан гӀайренаш (Мальвинаш)"}\r
         TL{"Тимор-Лесте"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.41.34"}\r
 }\r
index a1d70b8..5ca9d94 100644 (file)
@@ -265,7 +265,7 @@ chr{
         TL{"ᏘᎼᎵ-ᎴᏍᏖ"}\r
         TM{"ᏛᎵᎩᎺᏂᏍᏔᏂ"}\r
         TN{"ᏚᏂᏏᏍᎠ"}\r
-        TO{"á\8f\94á\8f\82á\8eª"}\r
+        TO{"á\8f\99á\8e¾á\8e¦"}\r
         TR{"ᎬᏃ"}\r
         TT{"ᏟᏂᏕᏗ ᎠᎴ ᏙᏆᎪ"}\r
         TV{"ᏚᏩᎷ"}\r
@@ -311,5 +311,5 @@ chr{
         MK{"ᎹᏎᏙᏂᏯ (FYROM)"}\r
         TL{"ᏗᎧᎸᎬᎢ ᏘᎼᎵ"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.2"}\r
 }\r
index 4289f33..4cf2034 100644 (file)
@@ -2,13 +2,43 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 ckb{\r
     Countries{\r
-        039{"ئەورووپای باشووری"}\r
-        143{"ئاسیای ناوەندی"}\r
-        145{"ئاسیای ڕۆژاوا"}\r
+        001{"جیهان"}\r
+        002{"ئەفریقا"}\r
+        003{"ئەمەریکای باکوور"}\r
+        005{"ئەمەریکای باشوور"}\r
+        009{"ئۆقیانووسیا"}\r
+        011{"ڕۆژاوای ئەفریقا"}\r
+        013{"ئەمریکای ناوەڕاست"}\r
+        014{"ڕۆژھەڵاتی ئەفریقا"}\r
+        015{"باکووری ئەفریقا"}\r
+        017{"ناوەڕاستی ئەفریقا"}\r
+        018{"باشووری ئەفریقا"}\r
+        019{"ئەمەریکای باکوور و باشوور"}\r
+        021{"ئەمریکای باکوور"}\r
+        029{"کاریبی"}\r
+        030{"ڕۆژهەڵاتی ئاسیا"}\r
+        034{"باشووری ئاسیا"}\r
+        035{"باشووری ڕۆژھەڵاتی ئاسیا"}\r
+        039{"باشووری ئەورووپا"}\r
+        053{"ئۆسترالیا"}\r
+        054{"میلانێزیا"}\r
+        057{"ناوچەی مایکرۆنیزیا"}\r
+        061{"پۆلینیزیا"}\r
+        142{"ئاسیا"}\r
+        143{"ناوەڕاستی ئاسیا"}\r
+        145{"ڕۆژاوای ئاسیا"}\r
+        150{"ئەورووپا"}\r
+        151{"ڕۆژهەڵاتی ئەورووپا"}\r
+        154{"باکووری ئەورووپا"}\r
+        155{"ڕۆژاوای ئەورووپا"}\r
+        202{"ئەفریقای ژێر سەحرا"}\r
+        419{"ئەمەریکای لاتین"}\r
+        AC{"دوورگەی ئاسینسیۆن"}\r
         AD{"ئاندۆرا"}\r
         AE{"میرنشینە یەکگرتووە عەرەبییەکان"}\r
         AF{"ئەفغانستان"}\r
         AG{"ئانتیگوا و باربودا"}\r
+        AI{"ئانگویلا"}\r
         AL{"ئەڵبانیا"}\r
         AM{"ئەرمەنستان"}\r
         AO{"ئەنگۆلا"}\r
@@ -18,6 +48,7 @@ ckb{
         AT{"نەمسا"}\r
         AU{"ئوسترالیا"}\r
         AW{"ئارووبا"}\r
+        AX{"دوورگەکانی ئالاند"}\r
         AZ{"ئازەربایجان"}\r
         BA{"بۆسنیا و ھەرزەگۆڤینا"}\r
         BB{"باربادۆس"}\r
@@ -28,80 +59,115 @@ ckb{
         BH{"بەحرەین"}\r
         BI{"بوروندی"}\r
         BJ{"بێنین"}\r
+        BL{"سەن بارتێلێمی"}\r
+        BM{"بێرموودا"}\r
+        BN{"بروونای"}\r
         BO{"بۆلیڤیا"}\r
+        BQ{"دوورگە کاریبیەکانی هۆڵەندا"}\r
         BR{"برازیل"}\r
         BS{"بەھاما"}\r
         BT{"بووتان"}\r
+        BV{"دوورگەی بووڤێ"}\r
         BW{"بۆتسوانا"}\r
         BY{"بیلاڕووس"}\r
         BZ{"بەلیز"}\r
-        CA{"کانەدا"}\r
+        CA{"کەنەدا"}\r
+        CC{"دوورگەکانی کیلینگ"}\r
         CD{"کۆنگۆ کینشاسا"}\r
         CF{"کۆماری ئەفریقای ناوەڕاست"}\r
-        CH{"سویسرا"}\r
+        CG{"کۆنگۆ برازاڤیل"}\r
+        CH{"سویسڕا"}\r
         CI{"کۆتدیڤوار"}\r
+        CK{"دوورگەکانی کوک"}\r
         CL{"چیلی"}\r
         CM{"کامیرۆن"}\r
         CN{"چین"}\r
         CO{"کۆلۆمبیا"}\r
+        CP{"دوورگەی کلیپێرتۆن"}\r
         CR{"کۆستاریکا"}\r
         CU{"کووبا"}\r
         CV{"کەیپڤەرد"}\r
+        CW{"کوراچاو"}\r
+        CX{"دوورگەی کریسمس"}\r
         CY{"قیبرس"}\r
         CZ{"کۆماری چیک"}\r
         DE{"ئەڵمانیا"}\r
+        DG{"دیەگۆ گارسیا"}\r
         DJ{"جیبووتی"}\r
         DK{"دانمارک"}\r
         DM{"دۆمینیکا"}\r
+        DO{"کۆماری دۆمینیکا"}\r
         DZ{"جەزایر"}\r
+        EA{"سێئووتا و مێلییا"}\r
         EC{"ئیکوادۆر"}\r
+        EE{"ئیستۆنیا"}\r
         EG{"میسر"}\r
+        EH{"سەحرای ڕۆژاوا"}\r
         ER{"ئەریتریا"}\r
         ES{"ئیسپانیا"}\r
         ET{"ئەتیۆپیا"}\r
+        EU{"یەکێتیی ئەورووپا"}\r
+        EZ{"ناوچەی یۆرۆ"}\r
         FI{"فینلاند"}\r
         FJ{"فیجی"}\r
+        FK{"دوورگەکانی مالڤیناس"}\r
         FM{"مایکرۆنیزیا"}\r
+        FO{"دوورگەکانی فارەو"}\r
         FR{"فەڕەنسا"}\r
         GA{"گابۆن"}\r
         GB{"شانشینی یەکگرتوو"}\r
         GD{"گرینادا"}\r
         GE{"گورجستان"}\r
+        GF{"گیانای فەرەنسا"}\r
+        GG{"گێرنزی"}\r
         GH{"غەنا"}\r
+        GI{"گیبرالتار"}\r
         GL{"گرینلاند"}\r
         GM{"گامبیا"}\r
         GN{"گینێ"}\r
+        GP{"گوادێلۆپ"}\r
+        GQ{"گینێی ئیستوایی"}\r
         GR{"یۆنان"}\r
+        GS{"دوورگەکانی جۆرجیا و ساندویچی باشوور"}\r
         GT{"گواتیمالا"}\r
         GU{"گوام"}\r
         GW{"گینێ بیساو"}\r
         GY{"گویانا"}\r
+        HK{"هۆنگ کۆنگ"}\r
+        HM{"دوورگەکانی هێرد و مەکدانڵد"}\r
         HN{"ھۆندووراس"}\r
         HR{"کرۆواتیا"}\r
         HT{"ھایتی"}\r
-        HU{"مەجارستان"}\r
+        HU{"هەنگاریا"}\r
+        IC{"دوورگەکانی کەناری"}\r
         ID{"ئیندۆنیزیا"}\r
         IE{"ئیرلەند"}\r
         IL{"ئیسرائیل"}\r
+        IM{"دوورگەی مان"}\r
         IN{"ھیندستان"}\r
+        IO{"ھەرێمی بەریتانی لە ئۆقیانووسی ھیند"}\r
         IQ{"عێراق"}\r
         IR{"ئێران"}\r
         IS{"ئایسلەند"}\r
-        IT{"ئیتاڵی"}\r
+        IT{"ئیتالیا"}\r
+        JE{"جێرسی"}\r
         JM{"جامایکا"}\r
         JO{"ئوردن"}\r
         JP{"ژاپۆن"}\r
+        KE{"کینیا"}\r
         KG{"قرغیزستان"}\r
         KH{"کەمبۆدیا"}\r
         KI{"کیریباس"}\r
         KM{"دوورگەکانی کۆمۆر"}\r
-        KN{"سەینت کیتس و نیڤیس"}\r
+        KN{"سەن کیتس و نیڤیس"}\r
         KP{"کۆریای باکوور"}\r
+        KR{"کۆریای باشوور"}\r
         KW{"کوەیت"}\r
+        KY{"دوورگەکانی کایمان"}\r
         KZ{"کازاخستان"}\r
         LA{"لاوس"}\r
         LB{"لوبنان"}\r
-        LC{"سەینت لووسیا"}\r
+        LC{"سەن لووسیا"}\r
         LI{"لیختنشتاین"}\r
         LK{"سریلانکا"}\r
         LR{"لیبەریا"}\r
@@ -114,37 +180,55 @@ ckb{
         MC{"مۆناکۆ"}\r
         MD{"مۆلدۆڤا"}\r
         ME{"مۆنتینیگرۆ"}\r
+        MF{"سەن مارتین"}\r
         MG{"ماداگاسکار"}\r
         MH{"دوورگەکانی مارشاڵ"}\r
+        MK{"ماکەدۆنیا"}\r
         ML{"مالی"}\r
         MM{"میانمار"}\r
         MN{"مەنگۆلیا"}\r
+        MO{"ماکائۆ"}\r
+        MP{"دوورگەکانی ماریانای باکوور"}\r
+        MQ{"مارتینیک"}\r
         MR{"مۆریتانیا"}\r
+        MS{"مۆنتسێرات"}\r
         MT{"ماڵتا"}\r
+        MU{"مووریتیووس"}\r
         MV{"مالدیڤ"}\r
         MW{"مالاوی"}\r
         MX{"مەکسیک"}\r
         MY{"مالیزیا"}\r
         MZ{"مۆزامبیک"}\r
         NA{"نامیبیا"}\r
+        NC{"نیووکالێدۆنیا"}\r
         NE{"نیجەر"}\r
+        NF{"دوورگەی نۆرفۆڵک"}\r
+        NG{"نیجریا"}\r
         NI{"نیکاراگوا"}\r
         NL{"ھۆڵەندا"}\r
         NO{"نۆرویژ"}\r
         NP{"نیپال"}\r
         NR{"نائوروو"}\r
+        NU{"نیووئی"}\r
         NZ{"نیوزیلاند"}\r
         OM{"عومان"}\r
         PA{"پاناما"}\r
-        PE{"پیروو"}\r
+        PE{"پێروو"}\r
+        PF{"پۆلینیسیای فەرەنسا"}\r
         PG{"پاپوا گینێی نوێ"}\r
         PH{"فلیپین"}\r
         PK{"پاکستان"}\r
         PL{"پۆڵەندا"}\r
+        PM{"سەن پیێر و میکێلۆن"}\r
+        PN{"دوورگەکانی پیتکەرن"}\r
+        PR{"پۆرتۆڕیکۆ"}\r
+        PS{"ناوچە فەلەستینیەکان"}\r
         PT{"پورتوگال"}\r
         PW{"پالاو"}\r
         PY{"پاراگوای"}\r
         QA{"قەتەر"}\r
+        QO{"دەرەوەی ئۆقیانووسیا"}\r
+        RE{"ڕییوونیەن"}\r
         RO{"ڕۆمانیا"}\r
         RS{"سربیا"}\r
         RU{"ڕووسیا"}\r
@@ -155,21 +239,30 @@ ckb{
         SD{"سوودان"}\r
         SE{"سوید"}\r
         SG{"سینگاپور"}\r
+        SH{"سەن هێلێنا"}\r
         SI{"سلۆڤێنیا"}\r
+        SJ{"سڤالبارد و یان مایەن"}\r
         SK{"سلۆڤاکیا"}\r
         SL{"سیەرالیۆن"}\r
         SM{"سان مارینۆ"}\r
-        SN{"سÛ\8cÙ\86Û\8cگاÙ\84"}\r
+        SN{"سÛ\8eÙ\86Û\8eگاڵ"}\r
         SO{"سۆمالیا"}\r
         SR{"سورینام"}\r
+        SS{"سوودانی باشوور"}\r
         ST{"ساوتۆمێ و پرینسیپی"}\r
         SV{"ئێلسالڤادۆر"}\r
+        SX{"سینت مارتن"}\r
         SY{"سووریا"}\r
         SZ{"سوازیلاند"}\r
+        TA{"تریستێن دا کوونا"}\r
+        TC{"دوورگەکانی تورکس و کایکۆس"}\r
         TD{"چاد"}\r
+        TF{"هەرێمە باشووریەکانی فەرەنسا"}\r
         TG{"تۆگۆ"}\r
         TH{"تایلەند"}\r
         TJ{"تاجیکستان"}\r
+        TK{"تۆکێلاو"}\r
+        TL{"تیمۆری ڕۆژھەڵات"}\r
         TM{"تورکمانستان"}\r
         TN{"توونس"}\r
         TO{"تۆنگا"}\r
@@ -180,22 +273,38 @@ ckb{
         TZ{"تانزانیا"}\r
         UA{"ئۆکرانیا"}\r
         UG{"ئوگاندا"}\r
+        UM{"دوورگەکانی دەرەوەی ئەمریکا"}\r
+        UN{"نەتەوە یەکگرتووەکان"}\r
         US{"ویلایەتە یەکگرتووەکان"}\r
         UY{"ئوروگوای"}\r
         UZ{"ئوزبەکستان"}\r
         VA{"ڤاتیکان"}\r
         VC{"سەینت ڤینسەنت و گرینادینز"}\r
+        VE{"ڤەنزوێلا"}\r
+        VG{"دوورگەکانی ڤیرجنی بەریتانیا"}\r
+        VI{"دوورگەکانی ڤیرجنی ئەمەریکا"}\r
         VN{"ڤیەتنام"}\r
         VU{"ڤانوواتوو"}\r
+        WF{"والیس و فوتونا"}\r
         WS{"ساموا"}\r
+        XK{"کۆسۆڤۆ"}\r
         YE{"یەمەن"}\r
+        YT{"مایۆت"}\r
         ZA{"ئەفریقای باشوور"}\r
         ZM{"زامبیا"}\r
         ZW{"زیمبابوی"}\r
+        ZZ{"ناوچەی نەناسراو"}\r
+    }\r
+    Countries%short{\r
+        GB{"شانشینی یەکگرتوو"}\r
+        HK{"هۆنگ کۆنگ"}\r
+        MO{"ماکائۆ"}\r
+        PS{"فەلەستین"}\r
+        US{"ویلایەتە یەکگرتووەکان"}\r
     }\r
     Countries%variant{\r
         CD{"کۆماری دیموکراتیکی کۆنگۆ"}\r
         CG{"کۆماری کۆنگۆ"}\r
     }\r
-    Version{"2.1.38.71"}\r
+    Version{"2.1.44.88"}\r
 }\r
index 8f94315..d32114b 100644 (file)
@@ -311,5 +311,5 @@ cs{
         FK{"Falklandské ostrovy (Malvíny)"}\r
         MK{"Makedonie (FYROM)"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.91"}\r
 }\r
index 13f5f25..87830fb 100644 (file)
@@ -133,7 +133,7 @@ cy{
         GU{"Guam"}\r
         GW{"Guiné-Bissau"}\r
         GY{"Guyana"}\r
-        HK{"Hong Kong RhGA Tsieina"}\r
+        HK{"Hong Kong SAR Tseina"}\r
         HM{"Ynys Heard ac Ynysoedd McDonald"}\r
         HN{"Honduras"}\r
         HR{"Croatia"}\r
@@ -312,5 +312,5 @@ cy{
         MK{"Macedonia (CWIM)"}\r
         TL{"Dwyrain Timor"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.91"}\r
 }\r
index e94a7bd..8d4cb7d 100644 (file)
@@ -13,7 +13,7 @@ da{
         015{"Nordafrika"}\r
         017{"Centralafrika"}\r
         018{"Det sydlige Afrika"}\r
-        019{"Amerika"}\r
+        019{"Nord-, Mellem- og Sydamerika"}\r
         021{"Det nordlige Amerika"}\r
         029{"Caribien"}\r
         030{"Østasien"}\r
@@ -31,7 +31,7 @@ da{
         151{"Østeuropa"}\r
         154{"Nordeuropa"}\r
         155{"Vesteuropa"}\r
-        202{"Afrika syd for Sahara"}\r
+        202{"Subsaharisk Afrika"}\r
         419{"Latinamerika"}\r
         AC{"Ascensionøen"}\r
         AD{"Andorra"}\r
@@ -257,7 +257,7 @@ da{
         TA{"Tristan da Cunha"}\r
         TC{"Turks- og Caicosøerne"}\r
         TD{"Tchad"}\r
-        TF{"De franske besiddelser i Det Sydlige Indiske Ocean"}\r
+        TF{"De Franske Besiddelser i Det Sydlige Indiske Ocean"}\r
         TG{"Togo"}\r
         TH{"Thailand"}\r
         TJ{"Tadsjikistan"}\r
@@ -311,5 +311,5 @@ da{
         MK{"Den tidligere jugoslaviske republik Makedonien"}\r
         TL{"Østtimor"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.65"}\r
 }\r
index ec52768..ddabc2b 100644 (file)
@@ -31,6 +31,7 @@ de{
         151{"Osteuropa"}\r
         154{"Nordeuropa"}\r
         155{"Westeuropa"}\r
+        202{"Subsahara-Afrika"}\r
         419{"Lateinamerika"}\r
         AC{"Ascension"}\r
         AD{"Andorra"}\r
@@ -311,5 +312,5 @@ de{
         MK{"Mazedonien (EJR)"}\r
         TL{"Osttimor"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.91"}\r
 }\r
index 4882c7e..e992c9e 100644 (file)
@@ -4,5 +4,5 @@ de_AT{
     Countries{\r
         SJ{"Svalbard und Jan Mayen"}\r
     }\r
-    Version{"2.1.38.39"}\r
+    Version{"2.1.43.65"}\r
 }\r
index b125e08..4f19245 100644 (file)
@@ -12,5 +12,5 @@ de_CH{
         TL{"Osttimor"}\r
         ZW{"Zimbabwe"}\r
     }\r
-    Version{"2.1.39.37"}\r
+    Version{"2.1.44.50"}\r
 }\r
index 60c0b1e..fd65d62 100644 (file)
@@ -307,5 +307,5 @@ dsb{
         MK{"Makedońska (PRJ)"}\r
         TL{"Pódzajtšny Timor"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.41.34"}\r
 }\r
index af6f46d..3228671 100644 (file)
@@ -303,5 +303,5 @@ dz{
         MK{"མ་སེ་ཌོ་ནི་ཡ་ (ཡུ་གོ་སླཱ་བི་ཡ)"}\r
         TL{"ཤར་ཕྱོགས་ཏི་་མོར"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.41.34"}\r
 }\r
index 90ec32b..2ae766c 100644 (file)
@@ -298,5 +298,5 @@ ee{
         MK{"Makedonia (FYROM) nutome"}\r
         TL{"Ɣedzeƒe Timɔ nutome"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.88"}\r
 }\r
index c13e00d..e68f66c 100644 (file)
@@ -31,7 +31,7 @@ el{
         151{"Ανατολική Ευρώπη"}\r
         154{"Βόρεια Ευρώπη"}\r
         155{"Δυτική Ευρώπη"}\r
-        202{"202"}\r
+        202{"Υποσαχάρια Αφρική"}\r
         419{"Λατινική Αμερική"}\r
         AC{"Νήσος Ασενσιόν"}\r
         AD{"Ανδόρα"}\r
@@ -257,7 +257,7 @@ el{
         TA{"Τριστάν ντα Κούνια"}\r
         TC{"Νήσοι Τερκς και Κάικος"}\r
         TD{"Τσαντ"}\r
-        TF{"Î\93αλλικέÏ\82 Ï\80εÏ\81ιοÏ\87έÏ\82 Ï\84οÏ\85 Î½Î¿Ï\84ίοÏ\85 Î·Î¼Î¹Ï\83Ï\86αιÏ\81ίοÏ\85"}\r
+        TF{"Î\93αλλικά Î\9dÏ\8cÏ\84ια Î\95δάÏ\86η"}\r
         TG{"Τόγκο"}\r
         TH{"Ταϊλάνδη"}\r
         TJ{"Τατζικιστάν"}\r
@@ -285,7 +285,7 @@ el{
         VI{"Αμερικανικές Παρθένες Νήσοι"}\r
         VN{"Βιετνάμ"}\r
         VU{"Βανουάτου"}\r
-        WF{"Î\9fυάλις και Φουτούνα"}\r
+        WF{"Î\93ουάλις και Φουτούνα"}\r
         WS{"Σαμόα"}\r
         XK{"Κοσσυφοπέδιο"}\r
         YE{"Υεμένη"}\r
@@ -304,13 +304,12 @@ el{
         US{"ΗΠΑ"}\r
     }\r
     Countries%variant{\r
-        CD{"Κονγκό (DRC)"}\r
+        CD{"Κονγκό (ΛΔΚ)"}\r
         CG{"Κονγκό (Δημοκρατία)"}\r
-        CI{"CI"}\r
         CZ{"Τσεχική Δημοκρατία"}\r
         FK{"Νήσοι Φόκλαντ (Νήσοι Μαλβίνας)"}\r
         MK{"Πρώην Γιουγκοσλαβική Δημοκρατία της Μακεδονίας (ΠΓΔΜ)"}\r
         TL{"Ανατολικό Τιμόρ"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.65"}\r
 }\r
index 46e7c6b..012724d 100644 (file)
@@ -287,6 +287,8 @@ en{
         VU{"Vanuatu"}\r
         WF{"Wallis & Futuna"}\r
         WS{"Samoa"}\r
+        XA{"Pseudo-Accents"}\r
+        XB{"Pseudo-Bidi"}\r
         XK{"Kosovo"}\r
         YE{"Yemen"}\r
         YT{"Mayotte"}\r
@@ -314,5 +316,5 @@ en{
         MK{"Macedonia (FYROM)"}\r
         TL{"East Timor"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.91"}\r
 }\r
index 5171867..87e4356 100644 (file)
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 en_AU{\r
     %%Parent{"en_001"}\r
-    Version{"2.1.38.73"}\r
+    Version{"2.1.44.18"}\r
 }\r
index 79bbbec..c9f5e1b 100644 (file)
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 en_BE{\r
     %%Parent{"en_001"}\r
-    Version{"2.1.38.69"}\r
+    Version{"2.1.44.18"}\r
 }\r
index 257f304..5be6f16 100644 (file)
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 en_CA{\r
     %%Parent{"en_001"}\r
-    Version{"2.1.38.73"}\r
+    Version{"2.1.44.88"}\r
 }\r
index 4f05292..9f4c10c 100644 (file)
@@ -16,5 +16,5 @@ en_GB{
     Countries%short{\r
         US{"US"}\r
     }\r
-    Version{"2.1.38.73"}\r
+    Version{"2.1.44.18"}\r
 }\r
index e057509..422f3b6 100644 (file)
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 en_HK{\r
     %%Parent{"en_001"}\r
-    Version{"2.1.38.69"}\r
+    Version{"2.1.43.65"}\r
 }\r
index 56507ab..1b0d83f 100644 (file)
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 en_IE{\r
     %%Parent{"en_001"}\r
-    Version{"2.1.38.69"}\r
+    Version{"2.1.44.18"}\r
 }\r
index 55ab372..5be3325 100644 (file)
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 en_IN{\r
     %%Parent{"en_001"}\r
-    Version{"2.1.38.73"}\r
+    Version{"2.1.44.18"}\r
 }\r
index 47beda6..2752731 100644 (file)
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 en_JM{\r
     %%Parent{"en_001"}\r
-    Version{"2.1.38.69"}\r
+    Version{"2.1.44.18"}\r
 }\r
index b470846..1e1d59a 100644 (file)
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 en_NZ{\r
     %%Parent{"en_001"}\r
-    Version{"2.1.38.73"}\r
+    Version{"2.1.44.88"}\r
 }\r
index 3c7e040..14f8030 100644 (file)
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 en_ZW{\r
     %%Parent{"en_001"}\r
-    Version{"2.1.38.69"}\r
+    Version{"2.1.44.18"}\r
 }\r
index 5609a28..1690711 100644 (file)
@@ -75,7 +75,7 @@ es{
         CC{"Islas Cocos"}\r
         CD{"República Democrática del Congo"}\r
         CF{"República Centroafricana"}\r
-        CG{"República del Congo"}\r
+        CG{"Congo"}\r
         CH{"Suiza"}\r
         CI{"Côte d’Ivoire"}\r
         CK{"Islas Cook"}\r
@@ -303,7 +303,7 @@ es{
         US{"EE. UU."}\r
     }\r
     Countries%variant{\r
-        CD{"Congo (República Democrática del Congo)"}\r
+        CD{"Congo (RDC)"}\r
         CG{"Congo (República)"}\r
         CI{"Costa de Marfil"}\r
         CZ{"República Checa"}\r
@@ -311,5 +311,5 @@ es{
         MK{"Macedonia (ERYM)"}\r
         TL{"Timor Oriental"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.88"}\r
 }\r
index 1eacab5..9ae3ccb 100644 (file)
@@ -17,6 +17,7 @@ es_419{
         155{"Europa del Oeste"}\r
         AC{"Isla Ascensión"}\r
         BA{"Bosnia-Herzegovina"}\r
+        CG{"República del Congo"}\r
         CI{"Costa de Marfil"}\r
         EZ{"Eurozona"}\r
         GG{"Guernesey"}\r
@@ -30,5 +31,8 @@ es_419{
     Countries%short{\r
         GB{"R. U."}\r
     }\r
-    Version{"2.1.38.39"}\r
+    Countries%variant{\r
+        CD{"Congo (República Democrática del Congo)"}\r
+    }\r
+    Version{"2.1.43.65"}\r
 }\r
index c504b92..71e0e74 100644 (file)
@@ -12,5 +12,5 @@ es_AR{
     Countries%short{\r
         GB{"RU"}\r
     }\r
-    Version{"2.1.38.39"}\r
+    Version{"2.1.43.65"}\r
 }\r
index 99d24df..bb9a79d 100644 (file)
@@ -12,5 +12,5 @@ es_CO{
     Countries%short{\r
         GB{"RU"}\r
     }\r
-    Version{"2.1.38.39"}\r
+    Version{"2.1.43.65"}\r
 }\r
index c583d92..947037d 100644 (file)
@@ -20,6 +20,7 @@ es_MX{
         CI{"Côte d’Ivoire"}\r
         EZ{"zona euro"}\r
         GG{"Guernsey"}\r
+        SA{"Arabia Saudita"}\r
         TA{"Tristán de Acuña"}\r
         TL{"Timor-Leste"}\r
         UM{"Islas menores alejadas de EE. UU."}\r
@@ -29,5 +30,5 @@ es_MX{
     Countries%short{\r
         GB{"RU"}\r
     }\r
-    Version{"2.1.38.73"}\r
+    Version{"2.1.44.5"}\r
 }\r
index 2f00011..6f8705e 100644 (file)
@@ -11,5 +11,5 @@ es_PY{
     Countries%short{\r
         GB{"RU"}\r
     }\r
-    Version{"2.1.38.39"}\r
+    Version{"2.1.43.65"}\r
 }\r
index 47cff7f..a8643c1 100644 (file)
@@ -17,6 +17,7 @@ es_US{
         154{"Europa septentrional"}\r
         155{"Europa occidental"}\r
         AC{"Isla de la Ascensión"}\r
+        BA{"Bosnia y Herzegovina"}\r
         CI{"Côte d’Ivoire"}\r
         EZ{"zona euro"}\r
         GG{"Guernsey"}\r
@@ -32,5 +33,5 @@ es_US{
         CI{"CI"}\r
         TL{"TL"}\r
     }\r
-    Version{"2.1.38.73"}\r
+    Version{"2.1.43.65"}\r
 }\r
index 93c3e61..c68a77d 100644 (file)
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 es_UY{\r
     %%Parent{"es_419"}\r
-    Version{"2.1.38.39"}\r
+    Version{"2.1.44.79"}\r
 }\r
index 15de217..78972e9 100644 (file)
@@ -11,5 +11,5 @@ es_VE{
     Countries%short{\r
         GB{"RU"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.41.45"}\r
 }\r
index 2d7c476..63df0f2 100644 (file)
@@ -312,5 +312,5 @@ et{
         MK{"Makedoonia Vabariik"}\r
         TL{"Timor-Leste"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.91"}\r
 }\r
index 58d0ddb..e243637 100644 (file)
@@ -14,11 +14,11 @@ eu{
         017{"Erdialdeko Afrika"}\r
         018{"Afrika hegoaldea"}\r
         019{"Amerika"}\r
-        021{"Amerika iparraldea"}\r
+        021{"Amerikako iparraldea"}\r
         029{"Karibea"}\r
         030{"Asia ekialdea"}\r
         034{"Asia hegoaldea"}\r
-        035{"Asia hego-ekialdea"}\r
+        035{"Asiako hego-ekialdea"}\r
         039{"Europa hegoaldea"}\r
         053{"Australasia"}\r
         054{"Melanesia"}\r
@@ -48,7 +48,7 @@ eu{
         AT{"Austria"}\r
         AU{"Australia"}\r
         AW{"Aruba"}\r
-        AX{"Aland uharteak"}\r
+        AX{"Åland"}\r
         AZ{"Azerbaijan"}\r
         BA{"Bosnia-Herzegovina"}\r
         BB{"Barbados"}\r
@@ -72,7 +72,7 @@ eu{
         BY{"Bielorrusia"}\r
         BZ{"Belize"}\r
         CA{"Kanada"}\r
-        CC{"Cocos uharteak"}\r
+        CC{"Cocos (Keeling) uharteak"}\r
         CD{"Kongoko Errepublika Demokratikoa"}\r
         CF{"Afrika Erdiko Errepublika"}\r
         CG{"Kongo"}\r
@@ -110,7 +110,7 @@ eu{
         EZ{"Eurogunea"}\r
         FI{"Finlandia"}\r
         FJ{"Fiji"}\r
-        FK{"Malvinak"}\r
+        FK{"Falklandak"}\r
         FM{"Mikronesia"}\r
         FO{"Faroe uharteak"}\r
         FR{"Frantzia"}\r
@@ -222,7 +222,7 @@ eu{
         PM{"Saint-Pierre eta Mikelune"}\r
         PN{"Pitcairn uharteak"}\r
         PR{"Puerto Rico"}\r
-        PS{"Palestinako Lurraldeak"}\r
+        PS{"Palestinar Lurralde Okupatuak"}\r
         PT{"Portugal"}\r
         PW{"Palau"}\r
         PY{"Paraguai"}\r
@@ -305,11 +305,9 @@ eu{
     Countries%variant{\r
         CD{"Kongo (DR)"}\r
         CG{"Kongoko Errepublika"}\r
-        CI{"CI"}\r
         CZ{"Txekiar Errepublika"}\r
-        FK{"Falkland uharteak"}\r
+        FK{"Falklandak (Malvinak)"}\r
         MK{"Mazedoniako Jugoslaviar Errepublika Ohia"}\r
-        TL{"TL"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.65"}\r
 }\r
index 7922a57..e53e89e 100644 (file)
@@ -133,7 +133,7 @@ fa{
         GU{"گوام"}\r
         GW{"گینهٔ بیسائو"}\r
         GY{"گویان"}\r
-        HK{"Ù\87Ù\86Ú¯â\80\8cÚ©Ù\86Ú¯Ø\8c Ù\86احÛ\8cÙ\87Ù\94 Ù\88Û\8cÚ\98Ù\87Ù\94 Ø­Ú©Ù\88Ù\85تی چین"}\r
+        HK{"Ù\87Ù\86Ú¯â\80\8cÚ©Ù\86Ú¯Ø\8c Ù\85Ù\86Ø·Ù\82Û\80 Ù\88Û\8cÚ\98Û\80 Ø§Ø¯Ø§Ø±ی چین"}\r
         HM{"جزیرهٔ هرد و جزایر مک‌دونالد"}\r
         HN{"هندوراس"}\r
         HR{"کرواسی"}\r
@@ -158,7 +158,7 @@ fa{
         KG{"قرقیزستان"}\r
         KH{"کامبوج"}\r
         KI{"کیریباتی"}\r
-        KM{"کومورو"}\r
+        KM{"کومور"}\r
         KN{"سنت کیتس و نویس"}\r
         KP{"کرهٔ شمالی"}\r
         KR{"کرهٔ جنوبی"}\r
@@ -187,7 +187,7 @@ fa{
         ML{"مالی"}\r
         MM{"میانمار (برمه)"}\r
         MN{"مغولستان"}\r
-        MO{"Ù\85اکائÙ\88Ø\8c Ù\86احÛ\8cÙ\87Ù\94 Ù\88Û\8cÚ\98Ù\87Ù\94 Ø­Ú©Ù\88Ù\85تی چین"}\r
+        MO{"Ù\85اکائÙ\88Ø\8c Ù\85Ù\86Ø·Ù\82Û\80 Ù\88Û\8cÚ\98Û\80 Ø§Ø¯Ø§Ø±ی چین"}\r
         MP{"جزایر ماریانای شمالی"}\r
         MQ{"مارتینیک"}\r
         MR{"موریتانی"}\r
@@ -257,7 +257,7 @@ fa{
         TA{"تریستان دا کونا"}\r
         TC{"جزایر تورکس و کایکوس"}\r
         TD{"چاد"}\r
-        TF{"قلمروهای جنوبی فرانسه"}\r
+        TF{"سرزمین‌های جنوب فرانسه"}\r
         TG{"توگو"}\r
         TH{"تایلند"}\r
         TJ{"تاجیکستان"}\r
@@ -307,9 +307,10 @@ fa{
     Countries%variant{\r
         CD{"کنگو (جمهوری دموکراتیک)"}\r
         CG{"کنگو (جمهوری)"}\r
+        CI{"ساحل‌عاج"}\r
         FK{"جزایر فالکلند (ایسلاس مالویناس)"}\r
         MK{"مقدونیه (جمهوری سابقاً یوگسلاو)"}\r
         TL{"تیمور شرقی"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.65"}\r
 }\r
index c14f5f0..3389112 100644 (file)
@@ -8,7 +8,6 @@ fa_AF{
         AO{"انگولا"}\r
         AQ{"انترکتیکا"}\r
         AR{"ارجنتاین"}\r
-        AU{"آسترالیا"}\r
         BA{"بوسنیا و هرزه‌گوینا"}\r
         BD{"بنگله‌دیش"}\r
         BE{"بلجیم"}\r
@@ -24,7 +23,9 @@ fa_AF{
         CO{"کولمبیا"}\r
         CR{"کاستریکا"}\r
         CU{"کیوبا"}\r
+        CZ{"چک"}\r
         DK{"دنمارک"}\r
+        EA{"سئوتا و ملیلا"}\r
         EE{"استونیا"}\r
         ER{"اریتریا"}\r
         ES{"هسپانیه"}\r
@@ -38,6 +39,7 @@ fa_AF{
         GT{"گواتیمالا"}\r
         GW{"گینیا بیسائو"}\r
         GY{"گیانا"}\r
+        HK{"هانگ کانگ، ناحیهٔ ویژهٔ حکومتی چین"}\r
         HN{"هاندوراس"}\r
         HR{"کروشیا"}\r
         HT{"هایتی"}\r
@@ -46,7 +48,6 @@ fa_AF{
         IS{"آیسلند"}\r
         JP{"جاپان"}\r
         KE{"کینیا"}\r
-        KG{"قرغزستان"}\r
         KH{"کمپوچیا"}\r
         KP{"کوریای شمالی"}\r
         KR{"کوریای جنوبی"}\r
@@ -62,7 +63,6 @@ fa_AF{
         MX{"مکسیکو"}\r
         MY{"مالیزیا"}\r
         MZ{"موزمبیق"}\r
-        NE{"نایجر"}\r
         NG{"نیجریا"}\r
         NI{"نیکاراگوا"}\r
         NL{"هالند"}\r
@@ -76,17 +76,16 @@ fa_AF{
         PT{"پرتگال"}\r
         PY{"پاراگوای"}\r
         RO{"رومانیا"}\r
-        RW{"روآندا"}\r
         SE{"سویدن"}\r
         SG{"سینگاپور"}\r
         SI{"سلونیا"}\r
+        SJ{"اسوالبارد و جان ماین"}\r
         SK{"سلواکیا"}\r
         SL{"سیرالیون"}\r
         SN{"سینیگال"}\r
         SO{"سومالیه"}\r
         SV{"السلوادور"}\r
         TJ{"تاجکستان"}\r
-        UA{"اکراین"}\r
         UG{"یوگاندا"}\r
         UY{"یوروگوای"}\r
         VC{"سنت وینسنت و گرنادین‌ها"}\r
@@ -94,5 +93,11 @@ fa_AF{
         XK{"کوسوا"}\r
         ZW{"زیمبابوی"}\r
     }\r
-    Version{"2.1.38.39"}\r
+    Countries%short{\r
+        HK{"هانگ کانگ"}\r
+    }\r
+    Countries%variant{\r
+        CZ{"جمهوری چک"}\r
+    }\r
+    Version{"2.1.43.65"}\r
 }\r
index fc4cea7..a2897d2 100644 (file)
@@ -312,5 +312,5 @@ fi{
         MK{"EJT Makedonia"}\r
         TL{"Timor-Leste"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.91"}\r
 }\r
index f4a56ec..cda0ec0 100644 (file)
@@ -312,5 +312,5 @@ fil{
         MK{"Macedonia (FYROM)"}\r
         TL{"East Timor"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.91"}\r
 }\r
index ac6fa08..13c2ba8 100644 (file)
@@ -306,5 +306,5 @@ fo{
         FK{"Falklandsoyggjar (Islas Malvinas)"}\r
         MK{"Makedónia (FJM)"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.41.34"}\r
 }\r
index 8b365ab..ade2896 100644 (file)
@@ -16,21 +16,21 @@ fr{
         019{"Amériques"}\r
         021{"Amérique septentrionale"}\r
         029{"Caraïbes"}\r
-        030{"Asie orientale"}\r
+        030{"Asie de l’Est"}\r
         034{"Asie du Sud"}\r
         035{"Asie du Sud-Est"}\r
-        039{"Europe méridionale"}\r
+        039{"Europe du Sud"}\r
         053{"Australasie"}\r
         054{"Mélanésie"}\r
         057{"région micronésienne"}\r
         061{"Polynésie"}\r
         142{"Asie"}\r
         143{"Asie centrale"}\r
-        145{"Asie occidentale"}\r
+        145{"Asie de l’Ouest"}\r
         150{"Europe"}\r
         151{"Europe de l’Est"}\r
-        154{"Europe septentrionale"}\r
-        155{"Europe occidentale"}\r
+        154{"Europe du Nord"}\r
+        155{"Europe de l’Ouest"}\r
         202{"Afrique subsaharienne"}\r
         419{"Amérique latine"}\r
         AC{"Île de l’Ascension"}\r
@@ -261,7 +261,7 @@ fr{
         TG{"Togo"}\r
         TH{"Thaïlande"}\r
         TJ{"Tadjikistan"}\r
-        TK{"Tokélaou"}\r
+        TK{"Tokelau"}\r
         TL{"Timor oriental"}\r
         TM{"Turkménistan"}\r
         TN{"Tunisie"}\r
@@ -312,5 +312,5 @@ fr{
         MK{"Macédoine (ARYM)"}\r
         TL{"Timor-Oriental"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.91"}\r
 }\r
index b731710..42f7372 100644 (file)
@@ -5,5 +5,5 @@ fr_BE{
         BN{"Brunei"}\r
         GS{"Îles Géorgie du Sud et Sandwich du Sud"}\r
     }\r
-    Version{"2.1.38.39"}\r
+    Version{"2.1.43.65"}\r
 }\r
index aa3b634..45607b3 100644 (file)
@@ -2,7 +2,12 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 fr_CA{\r
     Countries{\r
+        030{"Asie orientale"}\r
+        039{"Europe méridionale"}\r
+        145{"Asie occidentale"}\r
         151{"Europe orientale"}\r
+        154{"Europe septentrionale"}\r
+        155{"Europe occidentale"}\r
         AC{"île de l’Ascension"}\r
         AX{"îles d’Åland"}\r
         BN{"Brunei"}\r
@@ -26,7 +31,6 @@ fr_CA{
         QO{"Océanie lointaine"}\r
         RE{"la Réunion"}\r
         SX{"Saint-Martin (Pays-Bas)"}\r
-        TK{"Tokelau"}\r
         TL{"Timor-Leste"}\r
         UM{"îles mineures éloignées des États-Unis"}\r
         VA{"Cité du Vatican"}\r
@@ -39,5 +43,5 @@ fr_CA{
         FK{"îles Falkland (Malouines)"}\r
         TL{"Timor oriental"}\r
     }\r
-    Version{"2.1.38.73"}\r
+    Version{"2.1.43.65"}\r
 }\r
index eec01d3..5395e00 100644 (file)
@@ -305,5 +305,5 @@ fy{
         FK{"Falklâneilannen (Islas Malvinas)"}\r
         MK{"Macedonië (FYROM)"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.41.34"}\r
 }\r
index c2887ca..70fe23c 100644 (file)
@@ -3,7 +3,7 @@
 ga{\r
     Countries{\r
         001{"an Domhan"}\r
-        002{"An Afraic"}\r
+        002{"an Afraic"}\r
         003{"Meiriceá Thuaidh"}\r
         005{"Meiriceá Theas"}\r
         009{"an Aigéine"}\r
@@ -11,7 +11,7 @@ ga{
         013{"Meiriceá Láir"}\r
         014{"Oirthear na hAfraice"}\r
         015{"Tuaisceart na hAfraice"}\r
-        017{"An Afraic Láir"}\r
+        017{"an Afraic Láir"}\r
         018{"Deisceart na hAfraice"}\r
         019{"Críocha Mheiriceá"}\r
         021{"Tuaisceart Mheiriceá"}\r
@@ -90,7 +90,7 @@ ga{
         CW{"Curaçao"}\r
         CX{"Oileán na Nollag"}\r
         CY{"an Chipir"}\r
-        CZ{"An tSeicia"}\r
+        CZ{"an tSeicia"}\r
         DE{"an Ghearmáin"}\r
         DG{"Diego Garcia"}\r
         DJ{"Djibouti"}\r
@@ -310,6 +310,7 @@ ga{
         CZ{"Poblacht na Seice"}\r
         FK{"Oileáin Fháclainne (Islas Malvinas)"}\r
         MK{"an Mhacadóin (PIIM)"}\r
+        TL{"TL"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.91"}\r
 }\r
index 4a1734f..b0da94c 100644 (file)
@@ -31,6 +31,7 @@ gd{
         151{"An Roinn-Eòrpa an Ear"}\r
         154{"An Roinn-Eòrpa a Tuath"}\r
         155{"An Roinn-Eòrpa an Iar"}\r
+        202{"Afraga Deas air an t-Sathara"}\r
         419{"Aimeireaga Laidinneach"}\r
         AC{"Eilean na Deasgabhalach"}\r
         AD{"Andorra"}\r
@@ -221,7 +222,7 @@ gd{
         PM{"Saint Pierre agus Miquelon"}\r
         PN{"Eileanan Pheit a’ Chàirn"}\r
         PR{"Porto Rìceo"}\r
-        PS{"Na Ranntairean Palastaineach"}\r
+        PS{"Ùghdarras nam Palastaineach"}\r
         PT{"A’ Phortagail"}\r
         PW{"Palabh"}\r
         PY{"Paraguaidh"}\r
@@ -310,5 +311,5 @@ gd{
         MK{"A’ Mhasadon (FYROM)"}\r
         TL{"Tìomor an Ear"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.91"}\r
 }\r
index 2c0310f..09f153a 100644 (file)
@@ -35,20 +35,20 @@ gl{
         419{"América Latina"}\r
         AC{"Illa de Ascensión"}\r
         AD{"Andorra"}\r
-        AE{"Emiratos Árabes Unidos"}\r
+        AE{"Os Emiratos Árabes Unidos"}\r
         AF{"Afganistán"}\r
-        AG{"Antiga e Barbuda"}\r
+        AG{"Antigua e Barbuda"}\r
         AI{"Anguila"}\r
         AL{"Albania"}\r
         AM{"Armenia"}\r
         AO{"Angola"}\r
-        AQ{"Antártida"}\r
-        AR{"Arxentina"}\r
+        AQ{"A Antártida"}\r
+        AR{"A Arxentina"}\r
         AS{"Samoa Americana"}\r
         AT{"Austria"}\r
         AU{"Australia"}\r
         AW{"Aruba"}\r
-        AX{"Illas Aland"}\r
+        AX{"Illas Åland"}\r
         AZ{"Acerbaixán"}\r
         BA{"Bosnia e Hercegovina"}\r
         BB{"Barbados"}\r
@@ -58,20 +58,20 @@ gl{
         BG{"Bulgaria"}\r
         BH{"Bahrain"}\r
         BI{"Burundi"}\r
-        BJ{"Benin"}\r
-        BL{"Saint-Barthélemy"}\r
-        BM{"Bermudas"}\r
+        BJ{"Benín"}\r
+        BL{"Saint Barthélemy"}\r
+        BM{"Illas Bermudas"}\r
         BN{"Brunei"}\r
         BO{"Bolivia"}\r
         BQ{"Caribe Neerlandés"}\r
-        BR{"Brasil"}\r
+        BR{"Brasil"}\r
         BS{"Bahamas"}\r
         BT{"Bután"}\r
         BV{"Illa Bouvet"}\r
         BW{"Botswana"}\r
-        BY{"Bielorrusia"}\r
+        BY{"Belarús"}\r
         BZ{"Belize"}\r
-        CA{"Canadá"}\r
+        CA{"Canadá"}\r
         CC{"Illas Cocos (Keeling)"}\r
         CD{"República Democrática do Congo"}\r
         CF{"República Centroafricana"}\r
@@ -81,14 +81,14 @@ gl{
         CK{"Illas Cook"}\r
         CL{"Chile"}\r
         CM{"Camerún"}\r
-        CN{"China"}\r
+        CN{"China"}\r
         CO{"Colombia"}\r
         CP{"Illa Clipperton"}\r
         CR{"Costa Rica"}\r
         CU{"Cuba"}\r
         CV{"Cabo Verde"}\r
         CW{"Curaçao"}\r
-        CX{"Illa de Nadal"}\r
+        CX{"Illa Christmas"}\r
         CY{"Chipre"}\r
         CZ{"Chequia"}\r
         DE{"Alemaña"}\r
@@ -102,20 +102,20 @@ gl{
         EC{"Ecuador"}\r
         EE{"Estonia"}\r
         EG{"Exipto"}\r
-        EH{"Sáhara Occidental"}\r
+        EH{"Sáhara Occidental"}\r
         ER{"Eritrea"}\r
         ES{"España"}\r
         ET{"Etiopía"}\r
         EU{"Unión Europea"}\r
         EZ{"Eurozona"}\r
         FI{"Finlandia"}\r
-        FJ{"Fidxi"}\r
+        FJ{"Fixi"}\r
         FK{"Illas Malvinas"}\r
         FM{"Micronesia"}\r
         FO{"Illas Feroe"}\r
         FR{"Francia"}\r
         GA{"Gabón"}\r
-        GB{"Reino Unido"}\r
+        GB{"Reino Unido"}\r
         GD{"Granada"}\r
         GE{"Xeorxia"}\r
         GF{"Güiana Francesa"}\r
@@ -131,7 +131,7 @@ gl{
         GS{"Illas Xeorxia do Sur e Sandwich do Sur"}\r
         GT{"Guatemala"}\r
         GU{"Guam"}\r
-        GW{"Guinea-Bissau"}\r
+        GW{"A Guinea Bissau"}\r
         GY{"Güiana"}\r
         HK{"Hong Kong RAE da China"}\r
         HM{"Illa Heard e Illas McDonald"}\r
@@ -144,7 +144,7 @@ gl{
         IE{"Irlanda"}\r
         IL{"Israel"}\r
         IM{"Illa de Man"}\r
-        IN{"India"}\r
+        IN{"India"}\r
         IO{"Territorio Británico do Océano Índico"}\r
         IQ{"Iraq"}\r
         IR{"Irán"}\r
@@ -153,10 +153,10 @@ gl{
         JE{"Jersey"}\r
         JM{"Xamaica"}\r
         JO{"Xordania"}\r
-        JP{"Xapón"}\r
+        JP{"Xapón"}\r
         KE{"Kenya"}\r
         KG{"Kirguizistán"}\r
-        KH{"Cambodja"}\r
+        KH{"Camboxa"}\r
         KI{"Kiribati"}\r
         KM{"Comores"}\r
         KN{"Saint Kitts e Nevis"}\r
@@ -166,12 +166,12 @@ gl{
         KY{"Illas Caimán"}\r
         KZ{"Casaquistán"}\r
         LA{"Laos"}\r
-        LB{"Líbano"}\r
+        LB{"Líbano"}\r
         LC{"Santa Lucía"}\r
         LI{"Liechtenstein"}\r
         LK{"Sri Lanka"}\r
         LR{"Liberia"}\r
-        LS{"Lesoto"}\r
+        LS{"Lesotho"}\r
         LT{"Lituania"}\r
         LU{"Luxemburgo"}\r
         LV{"Letonia"}\r
@@ -180,7 +180,7 @@ gl{
         MC{"Mónaco"}\r
         MD{"Moldavia"}\r
         ME{"Montenegro"}\r
-        MF{"Saint-Martin"}\r
+        MF{"Saint Martin"}\r
         MG{"Madagascar"}\r
         MH{"Illas Marshall"}\r
         MK{"Macedonia"}\r
@@ -213,19 +213,19 @@ gl{
         NZ{"Nova Zelandia"}\r
         OM{"Omán"}\r
         PA{"Panamá"}\r
-        PE{"Perú"}\r
-        PF{"Polinesia Francesa"}\r
+        PE{"Perú"}\r
+        PF{"Polinesia Francesa"}\r
         PG{"Papúa-Nova Guinea"}\r
         PH{"Filipinas"}\r
         PK{"Paquistán"}\r
         PL{"Polonia"}\r
-        PM{"Saint-Pierre-et-Miquelon"}\r
+        PM{"Saint Pierre et Miquelon"}\r
         PN{"Illas Pitcairn"}\r
         PR{"Porto Rico"}\r
         PS{"Territorios Palestinos"}\r
         PT{"Portugal"}\r
         PW{"Palau"}\r
-        PY{"Paraguai"}\r
+        PY{"Paraguai"}\r
         QA{"Qatar"}\r
         QO{"Territorios afastados de Oceanía"}\r
         RE{"Reunión"}\r
@@ -236,7 +236,7 @@ gl{
         SA{"Arabia Saudita"}\r
         SB{"Illas Salomón"}\r
         SC{"Seychelles"}\r
-        SD{"Sudán"}\r
+        SD{"Sudán"}\r
         SE{"Suecia"}\r
         SG{"Singapur"}\r
         SH{"Santa Helena"}\r
@@ -248,12 +248,12 @@ gl{
         SN{"Senegal"}\r
         SO{"Somalia"}\r
         SR{"Suriname"}\r
-        SS{"Sudán do Sur"}\r
+        SS{"Sudán do Sur"}\r
         ST{"San Tomé e Príncipe"}\r
         SV{"O Salvador"}\r
         SX{"Sint Maarten"}\r
         SY{"Siria"}\r
-        SZ{"Swazilandia"}\r
+        SZ{"Suazilandia"}\r
         TA{"Tristán da Cunha"}\r
         TC{"Illas Turks e Caicos"}\r
         TD{"Chad"}\r
@@ -263,7 +263,7 @@ gl{
         TJ{"Taxiquistán"}\r
         TK{"Tokelau"}\r
         TL{"Timor Leste"}\r
-        TM{"Turcomenistán"}\r
+        TM{"Turkmenistán"}\r
         TN{"Tunisia"}\r
         TO{"Tonga"}\r
         TR{"Turquía"}\r
@@ -273,10 +273,10 @@ gl{
         TZ{"Tanzania"}\r
         UA{"Ucraína"}\r
         UG{"Uganda"}\r
-        UM{"Illas Ultramarinas dos EUA"}\r
+        UM{"Illas Menores Distantes dos Estados Unidos"}\r
         UN{"Nacións Unidas"}\r
-        US{"Estados Unidos de América"}\r
-        UY{"Uruguai"}\r
+        US{"Os Estados Unidos"}\r
+        UY{"Uruguai"}\r
         UZ{"Uzbequistán"}\r
         VA{"Cidade do Vaticano"}\r
         VC{"San Vicente e As Granadinas"}\r
@@ -288,7 +288,7 @@ gl{
         WF{"Wallis e Futuna"}\r
         WS{"Samoa"}\r
         XK{"Kosovo"}\r
-        YE{"Iemen"}\r
+        YE{"Iemen"}\r
         YT{"Mayotte"}\r
         ZA{"Suráfrica"}\r
         ZM{"Zambia"}\r
@@ -312,5 +312,5 @@ gl{
         MK{"Macedonia (ARIM)"}\r
         TL{"TL"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.94"}\r
 }\r
index ad73f16..21dcb9f 100644 (file)
@@ -288,5 +288,5 @@ gsw{
     Countries%variant{\r
         MK{"Mazedoonie (EJRM)"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.41.34"}\r
 }\r
index 72abe8c..37e0e9d 100644 (file)
@@ -297,7 +297,7 @@ gu{
     }\r
     Countries%short{\r
         GB{"યુ.કે."}\r
-        HK{"હોંગ કોંગ"}\r
+        HK{"હોંગકોંગ"}\r
         MO{"મકાઉ"}\r
         PS{"પેલેસ્ટાઇન"}\r
         UN{"યૂએન"}\r
@@ -312,5 +312,5 @@ gu{
         MK{"મેસેડોનિયા (FYROM)"}\r
         TL{"પૂર્વ તિમોર"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.2"}\r
 }\r
index ceafc4d..fcf5694 100644 (file)
@@ -58,7 +58,7 @@ ha{
         DZ{"Aljeriya"}\r
         EC{"Ekwador"}\r
         EE{"Estoniya"}\r
-        EG{"Masar, Misira"}\r
+        EG{"Misira"}\r
         ER{"Eritireya"}\r
         ES{"Sipen"}\r
         ET{"Habasha"}\r
@@ -227,5 +227,5 @@ ha{
         ZM{"Zambiya"}\r
         ZW{"Zimbabuwe"}\r
     }\r
-    Version{"2.1.39.11"}\r
+    Version{"2.1.43.2"}\r
 }\r
index 56154a3..9b94f08 100644 (file)
@@ -23,5 +23,5 @@ haw{
         RU{"Lūkia"}\r
         US{"ʻAmelika Hui Pū ʻIa"}\r
     }\r
-    Version{"2.1.38.69"}\r
+    Version{"2.1.43.94"}\r
 }\r
index ebc145e..08205fa 100644 (file)
@@ -115,7 +115,7 @@ he{
         FO{"איי פארו"}\r
         FR{"צרפת"}\r
         GA{"גבון"}\r
-        GB{"×\94×\9e×\9e×\9c×\9b×\94 ×\94×\9e×\90×\95×\97×\93ת"}\r
+        GB{"×\91ר×\99×\98× ×\99×\94"}\r
         GD{"גרנדה"}\r
         GE{"גאורגיה"}\r
         GF{"גיאנה הצרפתית"}\r
@@ -202,7 +202,7 @@ he{
         NA{"נמיביה"}\r
         NC{"קלדוניה החדשה"}\r
         NE{"ניז׳ר"}\r
-        NF{"×\90×\99י נורפוק"}\r
+        NF{"×\94×\90י נורפוק"}\r
         NG{"ניגריה"}\r
         NI{"ניקרגואה"}\r
         NL{"הולנד"}\r
@@ -310,5 +310,5 @@ he{
         MK{"מקדוניה (הרפובליקה היוגוסלבית לשעבר של מקדוניה)"}\r
         TL{"מזרח טימור"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.94"}\r
 }\r
index b3b0696..43654ea 100644 (file)
@@ -254,7 +254,7 @@ hi{
         SX{"सिंट मार्टिन"}\r
         SY{"सीरिया"}\r
         SZ{"स्वाज़ीलैंड"}\r
-        TA{"तà¥\8dरिसà¥\8dà¤\9fान à¤¡ा कुना"}\r
+        TA{"à¤\9fà¥\8dरिसà¥\8dà¤\9fन à¤¦ा कुना"}\r
         TC{"तुर्क और कैकोज़ द्वीपसमूह"}\r
         TD{"चाड"}\r
         TF{"फ़्रांसीसी दक्षिणी क्षेत्र"}\r
@@ -312,5 +312,5 @@ hi{
         MK{"मकदूनिया (FYROM)"}\r
         TL{"पूर्वी तिमोर"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.50"}\r
 }\r
index 45c7b81..1b47ecf 100644 (file)
@@ -312,5 +312,5 @@ hr{
         MK{"Makedonija (BJRM)"}\r
         TL{"Istočni Timor"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.50"}\r
 }\r
index 07c4ec3..d0cbaa9 100644 (file)
@@ -307,5 +307,5 @@ hsb{
         MK{"Makedonska (FYROM)"}\r
         TL{"Wuchodny Timor"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.41.34"}\r
 }\r
index 32adee2..b5f3e5c 100644 (file)
@@ -112,7 +112,7 @@ hu{
         FJ{"Fidzsi"}\r
         FK{"Falkland-szigetek"}\r
         FM{"Mikronézia"}\r
-        FO{"Feröer-szigetek"}\r
+        FO{"Feröer szigetek"}\r
         FR{"Franciaország"}\r
         GA{"Gabon"}\r
         GB{"Egyesült Királyság"}\r
@@ -283,7 +283,7 @@ hu{
         VE{"Venezuela"}\r
         VG{"Brit Virgin-szigetek"}\r
         VI{"Amerikai Virgin-szigetek"}\r
-        VN{"Vietnam"}\r
+        VN{"Vietnám"}\r
         VU{"Vanuatu"}\r
         WF{"Wallis és Futuna"}\r
         WS{"Szamoa"}\r
@@ -306,11 +306,10 @@ hu{
     Countries%variant{\r
         CD{"Kongó (KDK)"}\r
         CG{"Kongó (Köztársaság)"}\r
-        CI{"CI"}\r
         CZ{"Cseh Köztársaság"}\r
         FK{"Falkland-szigetek (Malvin-szigetek)"}\r
         MK{"Macedónia (MVJK)"}\r
         TL{"Timor-Leste"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.65"}\r
 }\r
index 4c7eaea..af00db4 100644 (file)
@@ -65,7 +65,7 @@ hy{
         BO{"Բոլիվիա"}\r
         BQ{"Կարիբյան Նիդեռլանդներ"}\r
         BR{"Բրազիլիա"}\r
-        BS{"Ô²Õ¡Õ°Õ¡Õ´Õ¡ներ"}\r
+        BS{"Ô²Õ¡Õ°Õ¡Õ´ÕµÕ¡Õ¶ Õ¯Õ²Õ¦Õ«ներ"}\r
         BT{"Բութան"}\r
         BV{"Բուվե կղզի"}\r
         BW{"Բոթսվանա"}\r
@@ -163,7 +163,7 @@ hy{
         KP{"Հյուսիսային Կորեա"}\r
         KR{"Հարավային Կորեա"}\r
         KW{"Քուվեյթ"}\r
-        KY{"Կայման կղզիներ"}\r
+        KY{"Կայմանյան կղզիներ"}\r
         KZ{"Ղազախստան"}\r
         LA{"Լաոս"}\r
         LB{"Լիբանան"}\r
@@ -312,5 +312,5 @@ hy{
         MK{"Մակեդոնիա (ՄՆՀՀ)"}\r
         TL{"Արևելյան Թիմոր"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.50"}\r
 }\r
diff --git a/source/data/region/ia.txt b/source/data/region/ia.txt
new file mode 100644 (file)
index 0000000..b7bcd76
--- /dev/null
@@ -0,0 +1,248 @@
+// © 2016 and later: Unicode, Inc. and others.\r
+// License & terms of use: http://www.unicode.org/copyright.html#License\r
+ia{\r
+    Countries{\r
+        001{"Mundo"}\r
+        002{"Africa"}\r
+        003{"America del Nord"}\r
+        005{"America del Sud"}\r
+        009{"Oceania"}\r
+        011{"Africa occidental"}\r
+        013{"America central"}\r
+        014{"Africa oriental"}\r
+        015{"Africa septentrional"}\r
+        017{"Africa central"}\r
+        018{"Africa meridional"}\r
+        019{"Americas"}\r
+        021{"America septentrional"}\r
+        029{"Caribes"}\r
+        030{"Asia oriental"}\r
+        034{"Asia meridional"}\r
+        035{"Asia del sud-est"}\r
+        039{"Europa meridional"}\r
+        053{"Australasia"}\r
+        054{"Melanesia"}\r
+        057{"Region micronesian"}\r
+        061{"Polynesia"}\r
+        142{"Asia"}\r
+        143{"Asia central"}\r
+        145{"Asia occidental"}\r
+        150{"Europa"}\r
+        151{"Europa oriental"}\r
+        154{"Europa septentrional"}\r
+        155{"Europa occidental"}\r
+        202{"Africa subsaharian"}\r
+        419{"America latin"}\r
+        AD{"Andorra"}\r
+        AE{"Emiratos Arabe Unite"}\r
+        AF{"Afghanistan"}\r
+        AG{"Antigua e Barbuda"}\r
+        AL{"Albania"}\r
+        AM{"Armenia"}\r
+        AO{"Angola"}\r
+        AR{"Argentina"}\r
+        AS{"Samoa american"}\r
+        AT{"Austria"}\r
+        AU{"Australia"}\r
+        AX{"Insulas Åland"}\r
+        AZ{"Azerbaidzhan"}\r
+        BA{"Bosnia e Herzegovina"}\r
+        BD{"Bangladesh"}\r
+        BE{"Belgica"}\r
+        BF{"Burkina Faso"}\r
+        BG{"Bulgaria"}\r
+        BI{"Burundi"}\r
+        BJ{"Benin"}\r
+        BM{"Bermuda"}\r
+        BO{"Bolivia"}\r
+        BR{"Brasil"}\r
+        BS{"Bahamas"}\r
+        BT{"Bhutan"}\r
+        BV{"Insula de Bouvet"}\r
+        BW{"Botswana"}\r
+        BY{"Bielorussia"}\r
+        BZ{"Belize"}\r
+        CA{"Canada"}\r
+        CF{"Republica African Central"}\r
+        CG{"Congo"}\r
+        CH{"Suissa"}\r
+        CK{"Insulas Cook"}\r
+        CL{"Chile"}\r
+        CM{"Camerun"}\r
+        CN{"China"}\r
+        CO{"Colombia"}\r
+        CR{"Costa Rica"}\r
+        CU{"Cuba"}\r
+        CX{"Insula de Natal"}\r
+        CY{"Cypro"}\r
+        CZ{"Chechia"}\r
+        DE{"Germania"}\r
+        DK{"Danmark"}\r
+        DO{"Republica Dominican"}\r
+        DZ{"Algeria"}\r
+        EC{"Ecuador"}\r
+        EE{"Estonia"}\r
+        EG{"Egypto"}\r
+        EH{"Sahara occidental"}\r
+        ER{"Eritrea"}\r
+        ES{"Espania"}\r
+        ET{"Ethiopia"}\r
+        EU{"Union Europee"}\r
+        EZ{"Zona euro"}\r
+        FI{"Finlandia"}\r
+        FM{"Micronesia"}\r
+        FO{"Insulas Feroe"}\r
+        FR{"Francia"}\r
+        GA{"Gabon"}\r
+        GB{"Regno Unite"}\r
+        GE{"Georgia"}\r
+        GF{"Guyana francese"}\r
+        GG{"Guernsey"}\r
+        GH{"Ghana"}\r
+        GI{"Gibraltar"}\r
+        GL{"Groenlandia"}\r
+        GM{"Gambia"}\r
+        GN{"Guinea"}\r
+        GQ{"Guinea equatorial"}\r
+        GR{"Grecia"}\r
+        GT{"Guatemala"}\r
+        GW{"Guinea-Bissau"}\r
+        HN{"Honduras"}\r
+        HR{"Croatia"}\r
+        HT{"Haiti"}\r
+        HU{"Hungaria"}\r
+        ID{"Indonesia"}\r
+        IE{"Irlanda"}\r
+        IL{"Israel"}\r
+        IM{"Insula de Man"}\r
+        IN{"India"}\r
+        IO{"Territorio oceanic britanno-indian"}\r
+        IQ{"Irak"}\r
+        IR{"Iran"}\r
+        IS{"Islanda"}\r
+        IT{"Italia"}\r
+        JE{"Jersey"}\r
+        JO{"Jordania"}\r
+        JP{"Japon"}\r
+        KE{"Kenya"}\r
+        KG{"Kirghizistan"}\r
+        KH{"Cambodgia"}\r
+        KI{"Kiribati"}\r
+        KM{"Comoros"}\r
+        KN{"Sancte Christophoro e Nevis"}\r
+        KP{"Corea del Nord"}\r
+        KR{"Corea del Sud"}\r
+        KY{"Insulas de Caiman"}\r
+        KZ{"Kazakhstan"}\r
+        LB{"Libano"}\r
+        LC{"Sancte Lucia"}\r
+        LI{"Liechtenstein"}\r
+        LK{"Sri Lanka"}\r
+        LR{"Liberia"}\r
+        LS{"Lesotho"}\r
+        LT{"Lituania"}\r
+        LU{"Luxemburg"}\r
+        LV{"Lettonia"}\r
+        LY{"Libya"}\r
+        MA{"Marocco"}\r
+        MC{"Monaco"}\r
+        MD{"Moldavia"}\r
+        ME{"Montenegro"}\r
+        MG{"Madagascar"}\r
+        MH{"Insulas Marshall"}\r
+        MK{"Macedonia"}\r
+        ML{"Mali"}\r
+        MN{"Mongolia"}\r
+        MP{"Insulas Marianna del Nord"}\r
+        MR{"Mauritania"}\r
+        MT{"Malta"}\r
+        MW{"Malawi"}\r
+        MX{"Mexico"}\r
+        MY{"Malaysia"}\r
+        MZ{"Mozambique"}\r
+        NA{"Namibia"}\r
+        NC{"Nove Caledonia"}\r
+        NE{"Niger"}\r
+        NF{"Insula Norfolk"}\r
+        NG{"Nigeria"}\r
+        NI{"Nicaragua"}\r
+        NL{"Nederlandia"}\r
+        NO{"Norvegia"}\r
+        NP{"Nepal"}\r
+        NZ{"Nove Zelanda"}\r
+        OM{"Oman"}\r
+        PA{"Panama"}\r
+        PE{"Peru"}\r
+        PF{"Polynesia francese"}\r
+        PG{"Papua Nove Guinea"}\r
+        PH{"Philippinas"}\r
+        PK{"Pakistan"}\r
+        PL{"Polonia"}\r
+        PM{"St. Pierre e Miquelon"}\r
+        PT{"Portugal"}\r
+        PY{"Paraguay"}\r
+        QO{"Oceania remote"}\r
+        RO{"Romania"}\r
+        RS{"Serbia"}\r
+        RU{"Russia"}\r
+        RW{"Ruanda"}\r
+        SA{"Arabia Saudita"}\r
+        SB{"Insulas Solomon"}\r
+        SC{"Seychelles"}\r
+        SD{"Sudan"}\r
+        SE{"Svedia"}\r
+        SI{"Slovenia"}\r
+        SJ{"Svalbard e Jan Mayen"}\r
+        SK{"Slovachia"}\r
+        SL{"Sierra Leone"}\r
+        SM{"San Marino"}\r
+        SN{"Senegal"}\r
+        SO{"Somalia"}\r
+        SR{"Suriname"}\r
+        SS{"Sudan del Sud"}\r
+        SV{"El Salvador"}\r
+        SY{"Syria"}\r
+        SZ{"Swazilandia"}\r
+        TC{"Insulas Turcos e Caicos"}\r
+        TF{"Territorios meridional francese"}\r
+        TG{"Togo"}\r
+        TH{"Thailandia"}\r
+        TJ{"Tadzhikistan"}\r
+        TK{"Tokelau"}\r
+        TL{"Timor del Est"}\r
+        TM{"Turkmenistan"}\r
+        TN{"Tunisia"}\r
+        TO{"Tonga"}\r
+        TR{"Turchia"}\r
+        TT{"Trinidad e Tobago"}\r
+        TV{"Tuvalu"}\r
+        TW{"Taiwan"}\r
+        TZ{"Tanzania"}\r
+        UA{"Ukraina"}\r
+        UG{"Uganda"}\r
+        UN{"Nationes Unite"}\r
+        US{"Statos Unite"}\r
+        UY{"Uruguay"}\r
+        UZ{"Uzbekistan"}\r
+        VA{"Citate del Vaticano"}\r
+        VC{"Sancte Vincente e le Grenadinas"}\r
+        VE{"Venezuela"}\r
+        VU{"Vanuatu"}\r
+        WS{"Samoa"}\r
+        XK{"Kosovo"}\r
+        YE{"Yemen"}\r
+        ZA{"Sudafrica"}\r
+        ZM{"Zambia"}\r
+        ZW{"Zimbabwe"}\r
+        ZZ{"Region incognite"}\r
+    }\r
+    Countries%short{\r
+        GB{"GB"}\r
+        US{"SUA"}\r
+    }\r
+    Countries%variant{\r
+        CZ{"Republica Chec"}\r
+        MK{"Macedonia (ARYM)"}\r
+    }\r
+    Version{"2.1.44.15"}\r
+}\r
index 93f6e54..318c890 100644 (file)
@@ -310,5 +310,5 @@ id{
         FK{"Kepulauan Malvinas (Falkland)"}\r
         MK{"Makedonia (BRY)"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.20"}\r
 }\r
index 46f8c50..62e33c7 100644 (file)
@@ -11,5 +11,5 @@ ig{
         MV{"Maldivesa"}\r
         NG{"Naịjịrịa"}\r
     }\r
-    Version{"2.1.38.69"}\r
+    Version{"2.1.44.88"}\r
 }\r
index b48b3e3..8cb5f82 100644 (file)
@@ -77,7 +77,7 @@ is{
         CF{"Mið-Afríkulýðveldið"}\r
         CG{"Kongó-Brazzaville"}\r
         CH{"Sviss"}\r
-        CI{"Côte d’Ivoire"}\r
+        CI{"Fílabeinsströndin"}\r
         CK{"Cooks-eyjar"}\r
         CL{"Síle"}\r
         CM{"Kamerún"}\r
@@ -306,10 +306,9 @@ is{
     Countries%variant{\r
         CD{"Kongó (Lýðstjórnarlýðveldið)"}\r
         CG{"Kongó (Lýðveldið)"}\r
-        CI{"Fílabeinsströndin"}\r
         FK{"Falklandseyjar (Malvinas)"}\r
         MK{"Makedónía (Fyrrverandi lýðveldi Júgóslavíu)"}\r
         TL{"Austur-Tímor"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.91"}\r
 }\r
index 76f326f..e67e9dc 100644 (file)
@@ -310,7 +310,6 @@ it{
         CZ{"Repubblica Ceca"}\r
         FK{"Isole Falkland (Isole Malvine)"}\r
         MK{"Ex Repubblica Jugoslava di Macedonia"}\r
-        TL{"Timor Leste"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.86"}\r
 }\r
index c0f5dde..3f1285c 100644 (file)
@@ -312,5 +312,5 @@ ja{
         MK{"マケドニア(旧ユーゴスラビア共和国)"}\r
         TL{"東チモール"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.91"}\r
 }\r
diff --git a/source/data/region/jv.txt b/source/data/region/jv.txt
new file mode 100644 (file)
index 0000000..0a0bbb3
--- /dev/null
@@ -0,0 +1,286 @@
+// © 2016 and later: Unicode, Inc. and others.\r
+// License & terms of use: http://www.unicode.org/copyright.html#License\r
+jv{\r
+    Countries{\r
+        001{"Donya"}\r
+        002{"Afrika"}\r
+        005{"Amérika Kidul"}\r
+        009{"Oséania"}\r
+        011{"Afrika Kulon"}\r
+        013{"Amérika Tengah"}\r
+        014{"Afrika Wétan"}\r
+        018{"Afrika Sisih Kidul"}\r
+        019{"Amérika"}\r
+        021{"Amérika Sisih Lor"}\r
+        029{"Karibia"}\r
+        030{"Asia Wétan"}\r
+        034{"Asia Kidul"}\r
+        035{"Asia Kidul-wétan"}\r
+        039{"Éropah Kidul"}\r
+        053{"Australasia"}\r
+        054{"Melanesia"}\r
+        057{"Daerah Mikronesia"}\r
+        061{"Polinesia"}\r
+        142{"Asia"}\r
+        143{"Asia Tengah"}\r
+        145{"Asia Kulon"}\r
+        150{"Éropah"}\r
+        151{"Éropah Wétan"}\r
+        155{"Éropah Kulon"}\r
+        202{"Afrika Kidule Sahara"}\r
+        419{"Amérika Latin"}\r
+        AC{"Pulo Ascension"}\r
+        AD{"Andora"}\r
+        AE{"Uni Émirat Arab"}\r
+        AF{"Afganistan"}\r
+        AG{"Antigua lan Barbuda"}\r
+        AI{"Anguilla"}\r
+        AL{"Albani"}\r
+        AM{"Arménia"}\r
+        AO{"Angola"}\r
+        AQ{"Antartika"}\r
+        AR{"Argèntina"}\r
+        AS{"Samoa Amerika"}\r
+        AT{"Ostenrik"}\r
+        AU{"Ostrali"}\r
+        AW{"Aruba"}\r
+        AX{"Kapuloan Alan"}\r
+        AZ{"Azerbaijan"}\r
+        BA{"Bosnia lan Hèrségovina"}\r
+        BB{"Barbadhos"}\r
+        BD{"Banggaladésa"}\r
+        BE{"Bèlgi"}\r
+        BF{"Burkina Faso"}\r
+        BG{"Bulgari"}\r
+        BH{"Bahrain"}\r
+        BI{"Burundi"}\r
+        BJ{"Bénin"}\r
+        BM{"Bermuda"}\r
+        BN{"Brunéi"}\r
+        BO{"Bolivia"}\r
+        BQ{"Karibia Walanda"}\r
+        BR{"Brasil"}\r
+        BS{"Bahamas"}\r
+        BT{"Bhutan"}\r
+        BV{"Pulo Bovèt"}\r
+        BW{"Botswana"}\r
+        BY{"Bélarus"}\r
+        BZ{"Bélisé"}\r
+        CA{"Kanada"}\r
+        CD{"Kongo - Kinshasa"}\r
+        CF{"Républik Afrika Tengah"}\r
+        CG{"Kongo - Brassaville"}\r
+        CH{"Switserlan"}\r
+        CI{"Pasisir Gadhing"}\r
+        CK{"Kapuloan Cook"}\r
+        CL{"Cilé"}\r
+        CM{"Kamerun"}\r
+        CN{"Tyongkok"}\r
+        CO{"Kolombia"}\r
+        CP{"Pulo Clipperton"}\r
+        CR{"Kosta Rika"}\r
+        CU{"Kuba"}\r
+        CV{"Pongol Verdé"}\r
+        CW{"Kurasao"}\r
+        CX{"Pulo Natal"}\r
+        CY{"Siprus"}\r
+        CZ{"Céko"}\r
+        DE{"Jérman"}\r
+        DG{"Diego Garcia"}\r
+        DJ{"Jibuti"}\r
+        DK{"Dhènemarken"}\r
+        DM{"Dominika"}\r
+        DO{"Républik Dominika"}\r
+        DZ{"Aljasair"}\r
+        EA{"Séuta lan Melila"}\r
+        EC{"Ékuadhor"}\r
+        EE{"Éstonia"}\r
+        EG{"Mesir"}\r
+        EH{"Sahara Kulon"}\r
+        ER{"Éritréa"}\r
+        ES{"Sepanyol"}\r
+        ET{"Étiopia"}\r
+        EU{"Uni Éropah"}\r
+        EZ{"Zona Éuro"}\r
+        FI{"Finlan"}\r
+        FJ{"Fiji"}\r
+        FK{"Kapuloan Falkland"}\r
+        FO{"Kapuloan Faro"}\r
+        FR{"Prancis"}\r
+        GA{"Gabon"}\r
+        GB{"Karajan Manunggal"}\r
+        GD{"Grénada"}\r
+        GE{"Géorgia"}\r
+        GF{"Guyana Prancis"}\r
+        GG{"Guernsei"}\r
+        GH{"Ghana"}\r
+        GI{"Gibraltar"}\r
+        GM{"Gambia"}\r
+        GP{"Guadélup"}\r
+        GS{"Georgia Kidul lan Kapuloan Sandwich Kidul"}\r
+        GT{"Guatémala"}\r
+        GU{"Guam"}\r
+        GY{"Guyana"}\r
+        HK{"Laladan Administratif Astamiwa Hong Kong"}\r
+        HN{"Honduras"}\r
+        HR{"Kroasia"}\r
+        HT{"Haiti"}\r
+        HU{"Honggari"}\r
+        IC{"Kapuloan Kanari"}\r
+        ID{"Indonésia"}\r
+        IE{"Républik Irlan"}\r
+        IL{"Israèl"}\r
+        IM{"Pulo Man"}\r
+        IO{"Wilayah Inggris nang Segoro Hindia"}\r
+        IQ{"Irak"}\r
+        IR{"Iran"}\r
+        IS{"Èslan"}\r
+        IT{"Itali"}\r
+        JE{"Jersey"}\r
+        JM{"Jamaika"}\r
+        JO{"Yordania"}\r
+        JP{"Jepang"}\r
+        KE{"Kénya"}\r
+        KG{"Kirgistan"}\r
+        KH{"Kamboja"}\r
+        KI{"Kiribati"}\r
+        KM{"Komoro"}\r
+        KR{"Koréa Kidul"}\r
+        KW{"Kuwait"}\r
+        KY{"Kapuloan Kéman"}\r
+        KZ{"Kasakstan"}\r
+        LA{"Laos"}\r
+        LB{"Libanon"}\r
+        LC{"Santa Lusia"}\r
+        LI{"Liktenstén"}\r
+        LK{"Sri Lanka"}\r
+        LR{"Libèria"}\r
+        LS{"Lésotho"}\r
+        LT{"Litowen"}\r
+        LU{"Luksemburg"}\r
+        LV{"Latvia"}\r
+        LY{"Libya"}\r
+        MA{"Maroko"}\r
+        MC{"Monako"}\r
+        MD{"Moldova"}\r
+        ME{"Montenégro"}\r
+        MF{"Santa Martin"}\r
+        MG{"Madagaskar"}\r
+        MH{"Kapuloan Marshall"}\r
+        ML{"Mali"}\r
+        MM{"Myanmar (Burma)"}\r
+        MN{"Mongolia"}\r
+        MO{"Laladan Administratif Astamiwa Makau"}\r
+        MP{"Kapuloan Mariana Lor"}\r
+        MQ{"Martinik"}\r
+        MR{"Mauritania"}\r
+        MS{"Monsérat"}\r
+        MT{"Malta"}\r
+        MU{"Mauritius"}\r
+        MV{"Maladéwa"}\r
+        MW{"Malawi"}\r
+        MX{"Mèksiko"}\r
+        MY{"Malaysia"}\r
+        MZ{"Mosambik"}\r
+        NA{"Namibia"}\r
+        NC{"Kalédonia Anyar"}\r
+        NE{"Nigér"}\r
+        NF{"Pulo Norfolk"}\r
+        NG{"Nigéria"}\r
+        NI{"Nikaragua"}\r
+        NL{"Walanda"}\r
+        NO{"Nurwègen"}\r
+        NP{"Népal"}\r
+        NR{"Nauru"}\r
+        NU{"Niue"}\r
+        OM{"Oman"}\r
+        PA{"Panama"}\r
+        PE{"Peru"}\r
+        PF{"Polinesia Prancis"}\r
+        PG{"Papua Nugini"}\r
+        PH{"Pilipina"}\r
+        PK{"Pakistan"}\r
+        PL{"Polen"}\r
+        PN{"Kapuloan Pitcairn"}\r
+        PR{"Puèrto Riko"}\r
+        PS{"Tlatah Palèstina"}\r
+        PT{"Portugal"}\r
+        PW{"Palau"}\r
+        PY{"Paraguay"}\r
+        QA{"Katar"}\r
+        QO{"Oseania Paling Njaba"}\r
+        RE{"Réunion"}\r
+        RO{"Ruméni"}\r
+        RW{"Rwanda"}\r
+        SA{"Arab Saudi"}\r
+        SB{"Kapuloan Suleman"}\r
+        SC{"Sésèl"}\r
+        SD{"Sudan"}\r
+        SE{"Swèdhen"}\r
+        SG{"Singapura"}\r
+        SI{"Slovénia"}\r
+        SJ{"Svalbard lan Jan Mayen"}\r
+        SK{"Slowak"}\r
+        SL{"Siéra Léoné"}\r
+        SM{"San Marino"}\r
+        SN{"Sénégal"}\r
+        SO{"Somalia"}\r
+        SR{"Suriname"}\r
+        SS{"Sudan Kidul"}\r
+        ST{"Sao Tomé lan Principé"}\r
+        SV{"Èl Salvador"}\r
+        SX{"Sint Martén"}\r
+        SY{"Suriah"}\r
+        SZ{"Swasiland"}\r
+        TA{"Tristan da Cunha"}\r
+        TC{"Turks lan Kapuloan Kaikos"}\r
+        TD{"Chad"}\r
+        TF{"Wilayah Prancis nang Kutub Kidul"}\r
+        TG{"Togo"}\r
+        TH{"Tanah Thai"}\r
+        TJ{"Tajikistan"}\r
+        TK{"Tokelau"}\r
+        TL{"Timor Leste"}\r
+        TM{"Turkménistan"}\r
+        TN{"Tunisia"}\r
+        TO{"Tonga"}\r
+        TR{"Turki"}\r
+        TT{"Trinidad lan Tobago"}\r
+        TV{"Tuvalu"}\r
+        TW{"Taiwan"}\r
+        TZ{"Tansania"}\r
+        UA{"Ukrania"}\r
+        UG{"Uganda"}\r
+        UN{"Pasarékatan Bangsa-Bangsa"}\r
+        US{"Amérika Sarékat"}\r
+        UY{"Uruguay"}\r
+        UZ{"Usbèkistan"}\r
+        VE{"Vénésuéla"}\r
+        VI{"Kapuloan Virgin Amérika"}\r
+        VN{"Viètnam"}\r
+        VU{"Vanuatu"}\r
+        WF{"Wallis lan Futuna"}\r
+        WS{"Samoa"}\r
+        XK{"Kosovo"}\r
+        YE{"Yaman"}\r
+        YT{"Mayotte"}\r
+        ZA{"Afrika Kidul"}\r
+        ZM{"Sambia"}\r
+        ZW{"Simbabwe"}\r
+        ZZ{"Daerah Ora Dikenali"}\r
+    }\r
+    Countries%short{\r
+        GB{"KM"}\r
+        HK{"Hong Kong"}\r
+        PS{"Palèstina"}\r
+        US{"AS"}\r
+    }\r
+    Countries%variant{\r
+        CD{"Républik Dhémokratik Kongo"}\r
+        CG{"Républik Kongo"}\r
+        CZ{"Républik Céko"}\r
+        FK{"Kapuloan Falkland (Islas Malvinas)"}\r
+        TL{"Timor Wétan"}\r
+    }\r
+    Version{"2.1.44.15"}\r
+}\r
index e717e9a..148e4a6 100644 (file)
@@ -38,7 +38,7 @@ ka{
         AE{"არაბთა გაერთიანებული საამიროები"}\r
         AF{"ავღანეთი"}\r
         AG{"ანტიგუა და ბარბუდა"}\r
-        AI{"á\83\90á\83\9cá\83\92á\83\95á\83\98á\83\9aა"}\r
+        AI{"á\83\90á\83\9cá\83\92á\83\98á\83\9aá\83\98ა"}\r
         AL{"ალბანეთი"}\r
         AM{"სომხეთი"}\r
         AO{"ანგოლა"}\r
@@ -133,7 +133,7 @@ ka{
         GU{"გუამი"}\r
         GW{"გვინეა-ბისაუ"}\r
         GY{"გაიანა"}\r
-        HK{"ჰონკონგის სპეციალური ადმინისტრაციული რეგიონი ჩინეთი"}\r
+        HK{"ჰონკონგის სპეციალური ადმინისტრაციული რეგიონი, ჩინეთი"}\r
         HM{"ჰერდი და მაკდონალდის კუნძულები"}\r
         HN{"ჰონდურასი"}\r
         HR{"ხორვატია"}\r
@@ -172,7 +172,7 @@ ka{
         LK{"შრი-ლანკა"}\r
         LR{"ლიბერია"}\r
         LS{"ლესოთო"}\r
-        LT{"á\83\9aá\83\98á\83¢ვა"}\r
+        LT{"á\83\9aá\83\98á\83\94á\83¢á\83£ვა"}\r
         LU{"ლუქსემბურგი"}\r
         LV{"ლატვია"}\r
         LY{"ლიბია"}\r
@@ -187,7 +187,7 @@ ka{
         ML{"მალი"}\r
         MM{"მიანმარი (ბირმა)"}\r
         MN{"მონღოლეთი"}\r
-        MO{"მაკაოს სპეციალური ადმინისტრაციული რეგიონი ჩინეთი"}\r
+        MO{"მაკაოს სპეციალური ადმინისტრაციული რეგიონი, ჩინეთი"}\r
         MP{"ჩრდილოეთ მარიანას კუნძულები"}\r
         MQ{"მარტინიკა"}\r
         MR{"მავრიტანია"}\r
@@ -312,5 +312,5 @@ ka{
         MK{"მაკედონია (ყოფილი იუგოსლავიის რესპუბლიკა მაკედონია)"}\r
         TL{"აღმოსავლეთ ტიმორი"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.50"}\r
 }\r
index 1965a45..77fb5d4 100644 (file)
@@ -227,5 +227,5 @@ kab{
         ZM{"Zambya"}\r
         ZW{"Zimbabwi"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.94"}\r
 }\r
index cdafffd..199f559 100644 (file)
@@ -306,5 +306,5 @@ kea{
         FK{"Ilhas Falkland (Ilhas Malvinas)"}\r
         MK{"Masidónia (FYROM)"}\r
     }\r
-    Version{"2.1.39.11"}\r
+    Version{"2.1.43.65"}\r
 }\r
index d7c0eb1..a4f131c 100644 (file)
@@ -13,7 +13,7 @@ kk{
         015{"Солтүстік Африка"}\r
         017{"Орталық Африка"}\r
         018{"Оңтүстік Африка"}\r
-        019{"СолÑ\82Ò¯Ñ\81Ñ\82Ñ\96к Ð¶Ó\99не Ð\9eÒ£Ñ\82Ò¯Ñ\81Ñ\82Ñ\96к Ð\90меÑ\80ика"}\r
+        019{"Америка"}\r
         021{"Солтүстік Америка (аймақ)"}\r
         029{"Кариб"}\r
         030{"Шығыс Азия"}\r
@@ -227,7 +227,7 @@ kk{
         PW{"Палау"}\r
         PY{"Парагвай"}\r
         QA{"Катар"}\r
-        QO{"Ð\90лÑ\8bÑ\81 Океания"}\r
+        QO{"СÑ\8bÑ\80Ñ\82Ò\9bÑ\8b Океания"}\r
         RE{"Реюньон"}\r
         RO{"Румыния"}\r
         RS{"Сербия"}\r
@@ -306,11 +306,10 @@ kk{
     Countries%variant{\r
         CD{"Конго Демократиялық Республикасы"}\r
         CG{"Конго Республикасы"}\r
-        CI{"Піл Сүйегі жағалауы"}\r
         CZ{"Чех Республикасы"}\r
         FK{"Фолкленд аралдары (Мальвин аралдары)"}\r
         MK{"Македония Республикасы"}\r
         TL{"Шығыс Тимор"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.88"}\r
 }\r
index 8c2cc80..930ba59 100644 (file)
@@ -4,5 +4,5 @@ kl{
     Countries{\r
         GL{"Kalaallit Nunaat"}\r
     }\r
-    Version{"2.1.38.69"}\r
+    Version{"2.1.45.12"}\r
 }\r
index 2880f78..4078780 100644 (file)
@@ -312,5 +312,5 @@ km{
         MK{"ម៉ាសេដ្វាន (អតីត​សាធារណរដ្ឋ​យូហ្គោស្លាវី)"}\r
         TL{"ទីម័រ​ខាង​កើត"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.88"}\r
 }\r
index 86b1ac0..ca3c381 100644 (file)
@@ -31,6 +31,7 @@ kn{
         151{"ಪೂರ್ವ ಯೂರೋಪ್"}\r
         154{"ಉತ್ತರ ಯೂರೋಪ್"}\r
         155{"ಪಶ್ಚಿಮ ಯೂರೋಪ್"}\r
+        202{"ಉಪ-ಸಹಾರನ್ ಆಫ್ರಿಕಾ"}\r
         419{"ಲ್ಯಾಟಿನ್ ಅಮೇರಿಕಾ"}\r
         AC{"ಅಸೆನ್ಶನ್ ದ್ವೀಪ"}\r
         AD{"ಅಂಡೋರಾ"}\r
@@ -237,7 +238,7 @@ kn{
         SC{"ಸೀಶೆಲ್ಲೆಸ್"}\r
         SD{"ಸುಡಾನ್"}\r
         SE{"ಸ್ವೀಡನ್"}\r
-        SG{"ಸಿà²\82à²\97ಾಪà³\81ರà³\8d"}\r
+        SG{"ಸಿಂಗಪುರ್"}\r
         SH{"ಸೇಂಟ್ ಹೆಲೆನಾ"}\r
         SI{"ಸ್ಲೋವೇನಿಯಾ"}\r
         SJ{"ಸ್ವಾಲ್ಬಾರ್ಡ್ ಮತ್ತು ಜಾನ್ ಮೆಯನ್"}\r
@@ -274,7 +275,7 @@ kn{
         UG{"ಉಗಾಂಡಾ"}\r
         UM{"ಯುಎಸ್‌ ಔಟ್‌ಲೇಯಿಂಗ್ ದ್ವೀಪಗಳು"}\r
         UN{"ಸಂಯುಕ್ತ ಸಂಸ್ಥಾನಗಳು"}\r
-        US{"à²\85ಮà³\87ರಿà²\95ಾ à²¸à²\82ಯà³\81à²\95à³\8dತ à²¸à²\82ಸà³\8dಥಾನ"}\r
+        US{"ಯà³\81ನà³\88à²\9fà³\86ಡà³\8d à²¸à³\8dà²\9fà³\87à²\9fà³\8dಸà³\8d"}\r
         UY{"ಉರುಗ್ವೆ"}\r
         UZ{"ಉಜ್ಬೇಕಿಸ್ಥಾನ್"}\r
         VA{"ವ್ಯಾಟಿಕನ್ ಸಿಟಿ"}\r
@@ -307,8 +308,9 @@ kn{
         CG{"ಕಾಂಗೋ (ಗಣರಾಜ್ಯ)"}\r
         CI{"ಐವರಿ ಕೋಸ್ಟ್"}\r
         CZ{"ಜೆಕ್ ಗಣರಾಜ್ಯ"}\r
+        FK{"ಫಾಕ್‌ಲ್ಯಾಂಡ್ ದ್ವೀಪಗಳು (ಇಸ್ಲಾಸ್ ಮಾಲ್ವಿನಸ್)"}\r
         MK{"ಮ್ಯಾಸಿಡೋನಿಯಾ (FYROM)"}\r
         TL{"ಪೂರ್ವ ಟಿಮೋರ್"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.88"}\r
 }\r
index e7884c2..90547be 100644 (file)
@@ -310,6 +310,7 @@ ko{
         CZ{"체코 공화국"}\r
         FK{"포클랜드 제도(말비나스 군도)"}\r
         MK{"마케도니아(FYROM)"}\r
+        TL{"티모르레스테"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.91"}\r
 }\r
index 12cde70..a0a4e63 100644 (file)
@@ -31,6 +31,7 @@ kok{
         151{"उदेंत येवरोप"}\r
         154{"उत्तर येवरोप"}\r
         155{"अस्तंत येवरोप"}\r
+        202{"उप-सहाराई आफ्रिका"}\r
         419{"लॅटीन अमेरिका"}\r
         AC{"असेशन आयलँड"}\r
         AD{"अंडोरा"}\r
@@ -310,5 +311,5 @@ kok{
         MK{"मॅसिडोनिया (FYROM)"}\r
         TL{"ईस्ट तिमूर"}\r
     }\r
-    Version{"2.1.38.69"}\r
+    Version{"2.1.44.88"}\r
 }\r
index 3f162d3..23703a4 100644 (file)
@@ -278,5 +278,5 @@ ks{
         ZW{"زِمبابے"}\r
         ZZ{"نامعلوٗم تہٕ نالَگہار عَلاقہٕ"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.41.34"}\r
 }\r
index 8186bfa..f305fb1 100644 (file)
@@ -305,5 +305,5 @@ ksh{
         FK{"de malleviinesche Enselle"}\r
         MK{"de vörmaals ens jugoßlaawesch jewääse Republik Mazedoonije"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.41.34"}\r
 }\r
diff --git a/source/data/region/ku.txt b/source/data/region/ku.txt
new file mode 100644 (file)
index 0000000..056467c
--- /dev/null
@@ -0,0 +1,270 @@
+// © 2016 and later: Unicode, Inc. and others.\r
+// License & terms of use: http://www.unicode.org/copyright.html#License\r
+ku{\r
+    Countries{\r
+        001{"Cîhan"}\r
+        002{"Afrîka"}\r
+        003{"Amerîkaya Bakur"}\r
+        005{"Amerîkaya Başûr"}\r
+        009{"Okyanûsya"}\r
+        013{"Amerîkaya Navîn"}\r
+        015{"Afrîkaya Bakur"}\r
+        019{"Amerîka"}\r
+        029{"Karîb"}\r
+        053{"Awistralasya"}\r
+        054{"Melanezya"}\r
+        057{"Herêma Mîkronezya"}\r
+        061{"Polînezya"}\r
+        142{"Asya"}\r
+        150{"Ewropa"}\r
+        151{"Ewropaya Rojhilat"}\r
+        155{"Ewropaya Rojava"}\r
+        419{"Amerîkaya Latînî"}\r
+        AD{"Andorra"}\r
+        AE{"Emîrtiyên Erebî yên Yekbûyî"}\r
+        AF{"Efxanistan"}\r
+        AG{"Antîgua û Berbûda"}\r
+        AL{"Albanya"}\r
+        AM{"Ermenistan"}\r
+        AO{"Angola"}\r
+        AQ{"Antarktîka"}\r
+        AR{"Arjentîn"}\r
+        AS{"Samoaya Amerîkanî"}\r
+        AT{"Awistirya"}\r
+        AU{"Awistralya"}\r
+        AW{"Arûba"}\r
+        AZ{"Azerbaycan"}\r
+        BA{"Bosniya û Herzegovîna"}\r
+        BB{"Barbados"}\r
+        BD{"Bangladeş"}\r
+        BE{"Belçîka"}\r
+        BF{"Burkîna Faso"}\r
+        BG{"Bulgaristan"}\r
+        BH{"Behreyn"}\r
+        BI{"Burundî"}\r
+        BJ{"Bênîn"}\r
+        BL{"Saint-Barthélemy"}\r
+        BM{"Bermûda"}\r
+        BN{"Brûney"}\r
+        BO{"Bolîvya"}\r
+        BR{"Brazîl"}\r
+        BS{"Bahama"}\r
+        BT{"Bûtan"}\r
+        BW{"Botswana"}\r
+        BY{"Belarûs"}\r
+        BZ{"Belîze"}\r
+        CA{"Kanada"}\r
+        CD{"Kongo - Kînşasa"}\r
+        CF{"Komara Afrîkaya Navend"}\r
+        CG{"Kongo - Brazzaville"}\r
+        CH{"Swîsre"}\r
+        CI{"Peravê Diranfîl"}\r
+        CK{"Giravên Cook"}\r
+        CL{"Şîle"}\r
+        CM{"Kamerûn"}\r
+        CN{"Çîn"}\r
+        CO{"Kolombiya"}\r
+        CR{"Kosta Rîka"}\r
+        CU{"Kûba"}\r
+        CV{"Kap Verde"}\r
+        CY{"Kîpros"}\r
+        CZ{"Çekya"}\r
+        DE{"Almanya"}\r
+        DJ{"Cîbûtî"}\r
+        DK{"Danîmarka"}\r
+        DM{"Domînîka"}\r
+        DO{"Komara Domînîk"}\r
+        DZ{"Cezayir"}\r
+        EC{"Ekuador"}\r
+        EE{"Estonya"}\r
+        EG{"Misir"}\r
+        EH{"Sahraya Rojava"}\r
+        ER{"Erîtrea"}\r
+        ES{"Spanya"}\r
+        ET{"Etiyopya"}\r
+        EU{"Yekîtiya Ewropayê"}\r
+        FI{"Fînlenda"}\r
+        FJ{"Fîjî"}\r
+        FK{"Giravên Malvîn"}\r
+        FM{"Mîkronezya"}\r
+        FO{"Giravên Feroe"}\r
+        FR{"Fransa"}\r
+        GA{"Gabon"}\r
+        GB{"Keyaniya Yekbûyî"}\r
+        GD{"Grenada"}\r
+        GE{"Gurcistan"}\r
+        GF{"Guyanaya Fransî"}\r
+        GH{"Gana"}\r
+        GI{"Cîbraltar"}\r
+        GL{"Grînlenda"}\r
+        GM{"Gambiya"}\r
+        GN{"Gîne"}\r
+        GP{"Guadeloupe"}\r
+        GQ{"Gîneya Rojbendî"}\r
+        GR{"Yewnanistan"}\r
+        GT{"Guatemala"}\r
+        GU{"Guam"}\r
+        GW{"Gîne-Bissau"}\r
+        GY{"Guyana"}\r
+        HN{"Hondûras"}\r
+        HR{"Kroatya"}\r
+        HT{"Haîtî"}\r
+        HU{"Macaristan"}\r
+        IC{"Giravên Qenariyê"}\r
+        ID{"Îndonezya"}\r
+        IE{"Îrlenda"}\r
+        IL{"Îsraêl"}\r
+        IM{"Girava Man"}\r
+        IN{"Hindistan"}\r
+        IQ{"Iraq"}\r
+        IR{"Îran"}\r
+        IS{"Îslenda"}\r
+        IT{"Îtalya"}\r
+        JM{"Jamaîka"}\r
+        JO{"Urdun"}\r
+        JP{"Japon"}\r
+        KE{"Kenya"}\r
+        KG{"Qirgizistan"}\r
+        KH{"Kamboca"}\r
+        KI{"Kirîbatî"}\r
+        KM{"Komor"}\r
+        KN{"Saint Kitts û Nevîs"}\r
+        KP{"Korêya Bakur"}\r
+        KR{"Korêya Başûr"}\r
+        KW{"Kuweyt"}\r
+        KY{"Giravên Kaymanê"}\r
+        KZ{"Qazaxistan"}\r
+        LA{"Laos"}\r
+        LB{"Libnan"}\r
+        LC{"Saint Lucia"}\r
+        LI{"Liechtenstein"}\r
+        LK{"Srî Lanka"}\r
+        LR{"Lîberya"}\r
+        LS{"Lesoto"}\r
+        LT{"Lîtvanya"}\r
+        LU{"Lûksembûrg"}\r
+        LV{"Letonya"}\r
+        LY{"Lîbya"}\r
+        MA{"Maroko"}\r
+        MC{"Monako"}\r
+        MD{"Moldova"}\r
+        ME{"Montenegro"}\r
+        MF{"MF"}\r
+        MG{"Madagaskar"}\r
+        MH{"Giravên Marşal"}\r
+        MK{"Makedonya"}\r
+        ML{"Malî"}\r
+        MM{"Myanmar (Birmanya)"}\r
+        MN{"Mongolya"}\r
+        MP{"Giravên Bakurê Marianan"}\r
+        MQ{"Martinique"}\r
+        MR{"Morîtanya"}\r
+        MT{"Malta"}\r
+        MU{"Maurîtius"}\r
+        MV{"Maldîv"}\r
+        MW{"Malawî"}\r
+        MX{"Meksîk"}\r
+        MY{"Malezya"}\r
+        MZ{"Mozambîk"}\r
+        NA{"Namîbya"}\r
+        NC{"Kaledonyaya Nû"}\r
+        NE{"Nîjer"}\r
+        NF{"Girava Norfolk"}\r
+        NG{"Nîjerya"}\r
+        NI{"Nîkaragua"}\r
+        NL{"Holenda"}\r
+        NO{"Norwêc"}\r
+        NP{"Nepal"}\r
+        NR{"Naûrû"}\r
+        NU{"Niûe"}\r
+        NZ{"Nû Zelenda"}\r
+        OM{"Oman"}\r
+        PA{"Panama"}\r
+        PE{"Perû"}\r
+        PF{"Polînezyaya Fransî"}\r
+        PG{"Papua Gîneya Nû"}\r
+        PH{"Filîpîn"}\r
+        PK{"Pakistan"}\r
+        PL{"Polonya"}\r
+        PM{"Saint-Pierre û Miquelon"}\r
+        PN{"Giravên Pitcairn"}\r
+        PR{"Porto Rîko"}\r
+        PS{"Xakên filistînî"}\r
+        PT{"Portûgal"}\r
+        PW{"Palau"}\r
+        PY{"Paraguay"}\r
+        QA{"Qeter"}\r
+        RE{"Réunion"}\r
+        RO{"Romanya"}\r
+        RS{"Serbistan"}\r
+        RU{"Rûsya"}\r
+        RW{"Rwanda"}\r
+        SA{"Erebistana Siyûdî"}\r
+        SB{"Giravên Salomon"}\r
+        SC{"Seyşel"}\r
+        SD{"Sûdan"}\r
+        SE{"Swêd"}\r
+        SG{"Singapûr"}\r
+        SI{"Slovenya"}\r
+        SK{"Slovakya"}\r
+        SL{"Sierra Leone"}\r
+        SM{"San Marîno"}\r
+        SN{"Senegal"}\r
+        SO{"Somalya"}\r
+        SR{"Sûrînam"}\r
+        SS{"Sûdana Başûr"}\r
+        ST{"Sao Tome û Prînsîpe"}\r
+        SV{"El Salvador"}\r
+        SY{"Sûrî"}\r
+        SZ{"Swazîlenda"}\r
+        TC{"Giravên Turk û Kaîkos"}\r
+        TD{"Çad"}\r
+        TG{"Togo"}\r
+        TH{"Taylenda"}\r
+        TJ{"Tacîkistan"}\r
+        TK{"Tokelau"}\r
+        TL{"Tîmora-Leste"}\r
+        TM{"Tirkmenistan"}\r
+        TN{"Tûnis"}\r
+        TO{"Tonga"}\r
+        TR{"Tirkiye"}\r
+        TT{"Trînîdad û Tobago"}\r
+        TV{"Tûvalû"}\r
+        TW{"Taywan"}\r
+        TZ{"Tanzanya"}\r
+        UA{"Ûkrayna"}\r
+        UG{"Ûganda"}\r
+        UN{"Neteweyên Yekbûyî"}\r
+        US{"Dewletên Yekbûyî yên Amerîkayê"}\r
+        UY{"Ûrûguay"}\r
+        UZ{"Ûzbêkistan"}\r
+        VA{"Vatîkan"}\r
+        VC{"Saint Vincent û Giravên Grenadîn"}\r
+        VE{"Venezuela"}\r
+        VN{"Viyetnam"}\r
+        VU{"Vanûatû"}\r
+        WF{"Wallis û Futuna"}\r
+        WS{"Samoa"}\r
+        XK{"Kosovo"}\r
+        YE{"Yemen"}\r
+        ZA{"Afrîkaya Başûr"}\r
+        ZM{"Zambiya"}\r
+        ZW{"Zîmbabwe"}\r
+    }\r
+    Countries%short{\r
+        GB{"KY"}\r
+        HK{"Hong Kong"}\r
+        MO{"Makao"}\r
+        PS{"Filistîn"}\r
+        US{"DYA"}\r
+    }\r
+    Countries%variant{\r
+        CD{"Kongo (KDK)"}\r
+        CG{"Kongo (Komar)"}\r
+        CZ{"Komara Çekî"}\r
+        FK{"Giravên Falkland"}\r
+        MK{"MK"}\r
+        TL{"Tîmora Rojhilat"}\r
+    }\r
+    Version{"2.1.44.82"}\r
+}\r
index 8994347..e028e0e 100644 (file)
@@ -4,5 +4,5 @@ kw{
     Countries{\r
         GB{"Rywvaneth Unys"}\r
     }\r
-    Version{"2.1.38.69"}\r
+    Version{"2.1.43.65"}\r
 }\r
index d1d3f7e..094665b 100644 (file)
@@ -31,6 +31,7 @@ ky{
         151{"Чыгыш Европа"}\r
         154{"Түндүк Европа"}\r
         155{"Батыш Европа"}\r
+        202{"Африка өлкөлөрү"}\r
         419{"Латын Америкасы"}\r
         AC{"Вознесение аралы"}\r
         AD{"Андорра"}\r
@@ -85,7 +86,7 @@ ky{
         CP{"Клиппертон аралы"}\r
         CR{"Коста-Рика"}\r
         CU{"Куба"}\r
-        CV{"Ð\9aапе Верде"}\r
+        CV{"Ð\9aабо-Верде"}\r
         CW{"Кюрасао"}\r
         CX{"Рождество аралы"}\r
         CY{"Кипр"}\r
@@ -199,7 +200,7 @@ ky{
         MY{"Малайзия"}\r
         MZ{"Мозамбик"}\r
         NA{"Намибия"}\r
-        NC{"Жаӊы Каледония"}\r
+        NC{"Жаңы Каледония"}\r
         NE{"Нигер"}\r
         NF{"Норфолк аралы"}\r
         NG{"Нигерия"}\r
@@ -209,13 +210,13 @@ ky{
         NP{"Непал"}\r
         NR{"Науру"}\r
         NU{"Ниуэ"}\r
-        NZ{"Жаӊы Зеландия"}\r
+        NZ{"Жаңы Зеландия"}\r
         OM{"Оман"}\r
         PA{"Панама"}\r
         PE{"Перу"}\r
         PF{"Полинезия (франциялык)"}\r
         PG{"Папуа-Жаңы Гвинея"}\r
-        PH{"Филлипин"}\r
+        PH{"Филиппин"}\r
         PK{"Пакистан"}\r
         PL{"Польша"}\r
         PM{"Сен-Пьер жана Микелон"}\r
@@ -274,7 +275,7 @@ ky{
         UG{"Уганда"}\r
         UM{"АКШнын сырткы аралдары"}\r
         UN{"БУ"}\r
-        US{"Ð\90меÑ\80ика Ð\9aоÑ\88мо Ð¨Ñ\82аÑ\82Ñ\82аÑ\80Ñ\8b"}\r
+        US{"Ð\9aоÑ\88мо Ð¨Ñ\82аÑ\82Ñ\82аÑ\80"}\r
         UY{"Уругвай"}\r
         UZ{"Өзбекстан"}\r
         VA{"Ватикан"}\r
@@ -310,5 +311,5 @@ ky{
         MK{"Македония (Мур. Югосл.)"}\r
         TL{"Чыгыш Тимор"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.65"}\r
 }\r
index abcd7bb..a82de0f 100644 (file)
@@ -305,5 +305,5 @@ lb{
         CI{"Elfebeeküst"}\r
         MK{"Mazedonien (EJR)"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.91"}\r
 }\r
index 4f8f23d..0716d4a 100644 (file)
@@ -69,7 +69,7 @@ lo{
         BT{"ພູຖານ"}\r
         BV{"ເກາະບູເວດ"}\r
         BW{"ບອດສະວານາ"}\r
-        BY{"à»\80àº\9aວàº\9aາຣຸສ"}\r
+        BY{"à»\80àº\9aລາຣຸສ"}\r
         BZ{"ເບລີຊ"}\r
         CA{"ແຄນາດາ"}\r
         CC{"ຫມູ່ເກາະໂກໂກສ"}\r
@@ -188,7 +188,7 @@ lo{
         MM{"ມຽນມາ (ເບີມາ)"}\r
         MN{"ມອງໂກເລຍ"}\r
         MO{"ມາກາວ ເຂດປົກຄອງພິເສດ ຈີນ"}\r
-        MP{"ຫມູà»\88à»\80àº\81າະມາà»\81àº\8aວàº\95ອàº\99à»\80ຫàº\99ືອ"}\r
+        MP{"à»\9dູà»\88à»\80àº\81າະມາà»\80ຣàº\8dàº\99າàº\95ອàº\99à»\80à»\9cືອ"}\r
         MQ{"ມາຕິນີກ"}\r
         MR{"ມົວຣິເທເນຍ"}\r
         MS{"ມອນເຊີຣາດ"}\r
@@ -312,5 +312,5 @@ lo{
         MK{"ແມຊິໂດເນຍ (FYROM)"}\r
         TL{"ທິມໍ ຕາເວັນອອກ"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.50"}\r
 }\r
index 4cb2532..cd81be7 100644 (file)
@@ -26,5 +26,5 @@ lrc{
         US{"ڤولاتیا یأکاگئرتە"}\r
         ZZ{"راساگە نادیار"}\r
     }\r
-    Version{"2.1.38.69"}\r
+    Version{"2.1.43.65"}\r
 }\r
index 7d1e222..d5ae983 100644 (file)
@@ -311,5 +311,5 @@ lt{
         FK{"Folklando (Malvinų) Salos"}\r
         MK{"Makedonijos Respublika"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.91"}\r
 }\r
index 19eada4..1c897c4 100644 (file)
@@ -115,7 +115,7 @@ lv{
         FO{"Fēru salas"}\r
         FR{"Francija"}\r
         GA{"Gabona"}\r
-        GB{"Lielbritānija"}\r
+        GB{"Apvienotā Karaliste"}\r
         GD{"Grenāda"}\r
         GE{"Gruzija"}\r
         GF{"Francijas Gviāna"}\r
@@ -296,7 +296,7 @@ lv{
         ZZ{"nezināms reģions"}\r
     }\r
     Countries%short{\r
-        GB{"Lielbritānija"}\r
+        GB{"Apvienotā Karaliste"}\r
         HK{"Honkonga"}\r
         MO{"Makao"}\r
         PS{"Palestīna"}\r
@@ -311,5 +311,5 @@ lv{
         FK{"Folklenda (Malvinu) salas"}\r
         MK{"bijusī Dienvidslāvijas Maķedonijas Republika"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.91"}\r
 }\r
index ec10d71..387ae4e 100644 (file)
@@ -227,5 +227,5 @@ mg{
         ZM{"Zambia"}\r
         ZW{"Zimbaboe"}\r
     }\r
-    Version{"2.1.39.11"}\r
+    Version{"2.1.43.94"}\r
 }\r
diff --git a/source/data/region/mi.txt b/source/data/region/mi.txt
new file mode 100644 (file)
index 0000000..bd17995
--- /dev/null
@@ -0,0 +1,19 @@
+// © 2016 and later: Unicode, Inc. and others.\r
+// License & terms of use: http://www.unicode.org/copyright.html#License\r
+mi{\r
+    Countries{\r
+        BR{"Parahi"}\r
+        CN{"Haina"}\r
+        DE{"Tiamana"}\r
+        FR{"Wīwī"}\r
+        GB{"Hononga o Piritene"}\r
+        IN{"Inia"}\r
+        IT{"Itāria"}\r
+        JP{"Hapani"}\r
+        NZ{"Aotearoa"}\r
+        RU{"Rūhia"}\r
+        US{"Hononga o Amerika"}\r
+        ZZ{"Rohe Tē Mōhiotia"}\r
+    }\r
+    Version{"2.1.44.15"}\r
+}\r
index 943c0b2..d6e9f36 100644 (file)
@@ -312,5 +312,5 @@ mk{
         MK{"Република Македонија"}\r
         TL{"Источен Тимор"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.65"}\r
 }\r
index 2e4f963..7ce0feb 100644 (file)
@@ -31,7 +31,7 @@ ml{
         151{"കിഴക്കൻ യൂറോപ്പ്"}\r
         154{"വടക്കേ യൂറോപ്പ്"}\r
         155{"പശ്ചിമ യൂറോപ്പ്"}\r
-        202{"202"}\r
+        202{"സബ്-സഹാറൻ ആഫ്രിക്ക"}\r
         419{"ലാറ്റിനമേരിക്ക"}\r
         AC{"അസൻഷൻ ദ്വീപ്"}\r
         AD{"അൻഡോറ"}\r
@@ -93,7 +93,7 @@ ml{
         CZ{"ചെക്കിയ"}\r
         DE{"ജർമ്മനി"}\r
         DG{"ഡീഗോ ഗ്രാഷ്യ"}\r
-        DJ{"ദിà´\9cà´¿à´¬àµ\97à´\9fàµ\8dà´\9fി"}\r
+        DJ{"à´\9cà´¿à´¬àµ\82à´¤àµ\8dà´¤ി"}\r
         DK{"ഡെൻമാർക്ക്"}\r
         DM{"ഡൊമിനിക്ക"}\r
         DO{"ഡൊമിനിക്കൻ റിപ്പബ്ലിക്ക്"}\r
@@ -312,5 +312,5 @@ ml{
         MK{"മാസിഡോണിയ (FYROM)"}\r
         TL{"കിഴക്കൻ തിമോർ"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.50"}\r
 }\r
index fe5a5ea..3222271 100644 (file)
@@ -15,12 +15,12 @@ mn{
         018{"Өмнөд Африк тив"}\r
         019{"Америк"}\r
         021{"Хойд Америк тив"}\r
-        029{"Карибын"}\r
+        029{"Карибын тэнгис"}\r
         030{"Зүүн Ази"}\r
         034{"Өмнөд Ази"}\r
         035{"Зүүн өмнөд Ази"}\r
         039{"Өмнөд Европ"}\r
-        053{"Австралиази"}\r
+        053{"Австрализи"}\r
         054{"Меланези"}\r
         057{"Микронезийн бүс"}\r
         061{"Полинези"}\r
@@ -35,7 +35,7 @@ mn{
         419{"Латин Америк"}\r
         AC{"Асенсион арал"}\r
         AD{"Андорра"}\r
-        AE{"Арабын Нэгдсэн Эмират Улс"}\r
+        AE{"Арабын Нэгдсэн Эмирт Улс"}\r
         AF{"Афганистан"}\r
         AG{"Антигуа ба Барбуда"}\r
         AI{"Ангилья"}\r
@@ -68,14 +68,14 @@ mn{
         BS{"Багамын арлууд"}\r
         BT{"Бутан"}\r
         BV{"Буве арал"}\r
-        BW{"Ботсвана"}\r
+        BW{"Ботсван"}\r
         BY{"Беларусь"}\r
-        BZ{"Белиз"}\r
+        BZ{"Белизе"}\r
         CA{"Канад"}\r
         CC{"Кокос (Кийлинг) арлууд"}\r
         CD{"Конго-Киншаса"}\r
         CF{"Төв Африкийн Бүгд Найрамдах Улс"}\r
-        CG{"Конго Браззавиль"}\r
+        CG{"Конго-Браззавиль"}\r
         CH{"Швейцарь"}\r
         CI{"Кот-д’Ивуар"}\r
         CK{"Күүкийн арлууд"}\r
@@ -108,7 +108,7 @@ mn{
         ET{"Этиоп"}\r
         EU{"Европын Холбоо"}\r
         EZ{"Евро бүс"}\r
-        FI{"Финланд"}\r
+        FI{"Финлянд"}\r
         FJ{"Фижи"}\r
         FK{"Фолклендийн арлууд"}\r
         FM{"Микронези"}\r
@@ -128,7 +128,7 @@ mn{
         GP{"Гваделуп"}\r
         GQ{"Экваторын Гвиней"}\r
         GR{"Грек"}\r
-        GS{"Өмнөд Ð\96оÑ\80жиа Ð±Ð° Ó¨Ð¼Ð½Ó©Ð´ Ð¡Ñ\8dндвиÑ\87ийн Ð\90рлууд"}\r
+        GS{"Өмнөд Ð\96оÑ\80жиа Ð±Ð° Ó¨Ð¼Ð½Ó©Ð´ Ð¡Ñ\8dндвиÑ\87ийн Ð°рлууд"}\r
         GT{"Гватемал"}\r
         GU{"Гуам"}\r
         GW{"Гвиней-Бисау"}\r
@@ -193,7 +193,7 @@ mn{
         MR{"Мавритани"}\r
         MS{"Монтсеррат"}\r
         MT{"Мальта"}\r
-        MU{"Маврики"}\r
+        MU{"Маврикий"}\r
         MV{"Мальдив"}\r
         MW{"Малави"}\r
         MX{"Мексик"}\r
@@ -222,7 +222,7 @@ mn{
         PM{"Сент-Пьер ба Микело"}\r
         PN{"Питкэрн арлууд"}\r
         PR{"Пуэрто-Рико"}\r
-        PS{"Палестины нутаг дэвсгэрүүд"}\r
+        PS{"Палестины нутаг дэвсгэр"}\r
         PT{"Португал"}\r
         PW{"Палау"}\r
         PY{"Парагвай"}\r
@@ -249,7 +249,7 @@ mn{
         SO{"Сомали"}\r
         SR{"Суринам"}\r
         SS{"Өмнөд Судан"}\r
-        ST{"Сан-Томе Принсипи"}\r
+        ST{"Сан-Томе Ð±Ð° Ð\9fÑ\80инÑ\81ипи"}\r
         SV{"Эль Сальвадор"}\r
         SX{"Синт Мартен"}\r
         SY{"Сири"}\r
@@ -281,8 +281,8 @@ mn{
         VA{"Ватикан хот улс"}\r
         VC{"Сент-Винсент ба Гренадин"}\r
         VE{"Венесуэл"}\r
-        VG{"Ð\91Ñ\80иÑ\82анийн Ð\92иÑ\80жиний Ð\90рлууд"}\r
-        VI{"Ð\90Ð\9dУ-Ñ\8bн Ð\92иÑ\80жиний Ð\90рлууд"}\r
+        VG{"Ð\91Ñ\80иÑ\82анийн Ð\92иÑ\80жиний Ð°рлууд"}\r
+        VI{"Ð\90Ð\9dУ-Ñ\8bн Ð\92иÑ\80жиний Ð°рлууд"}\r
         VN{"Вьетнам"}\r
         VU{"Вануату"}\r
         WF{"Уоллис ба Футуна"}\r
@@ -309,8 +309,8 @@ mn{
         CI{"Зааны ясан эрэг"}\r
         CZ{"Бүгд Найрамдах Чех Улс"}\r
         FK{"Фолклендийн арлууд (Мальвины арлууд)"}\r
-        MK{"Ð\9cакедон (Ð¥Ñ\83Ñ\83Ñ\87ин Ð®Ð³Ð¾Ñ\81лавÑ\8bн Ð±Ò¯Ñ\80Ñ\8dлдÑ\8dÑ\85үүний Ð\9cакедон)"}\r
+        MK{"Ð\9cакедон (Ð¥Ñ\83Ñ\83Ñ\87ин Ð®Ð\91Ð\9dÐ\9cУ)"}\r
         TL{"Зүүн Тимор"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.94"}\r
 }\r
index b953a35..aed851a 100644 (file)
@@ -311,5 +311,5 @@ mr{
         MK{"मॅसेडोनिया (FYROM)"}\r
         TL{"पूर्व तिमोर"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.65"}\r
 }\r
index b51e3c6..77af4ed 100644 (file)
@@ -59,7 +59,7 @@ ms{
         BH{"Bahrain"}\r
         BI{"Burundi"}\r
         BJ{"Benin"}\r
-        BL{"Saint Barthélemy"}\r
+        BL{"St. Barthelemy"}\r
         BM{"Bermuda"}\r
         BN{"Brunei"}\r
         BO{"Bolivia"}\r
@@ -312,5 +312,5 @@ ms{
         MK{"Macedonia (FYROM)"}\r
         TL{"Timor Timur"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.91"}\r
 }\r
index 72e5c83..2b5c923 100644 (file)
@@ -73,12 +73,12 @@ mt{
         CD{"ir-Repubblika Demokratika tal-Kongo"}\r
         CF{"ir-Repubblika Ċentru-Afrikana"}\r
         CG{"il-Kongo - Brazzaville"}\r
-        CH{"Żvizzera"}\r
+        CH{"l-Iżvizzera"}\r
         CI{"il-Kosta tal-Avorju"}\r
         CK{"Gżejjer Cook"}\r
         CL{"iċ-Ċili"}\r
         CM{"il-Kamerun"}\r
-        CN{"CN"}\r
+        CN{"iċ-Ċina"}\r
         CO{"il-Kolombja"}\r
         CP{"il-Gżira Clipperton"}\r
         CR{"il-Costa Rica"}\r
@@ -287,7 +287,7 @@ mt{
         VU{"Vanuatu"}\r
         WF{"Wallis u Futuna"}\r
         WS{"Samoa"}\r
-        XK{"Kosovo"}\r
+        XK{"il-Kosovo"}\r
         YE{"il-Jemen"}\r
         YT{"Mayotte"}\r
         ZA{"l-Afrika t’Isfel"}\r
@@ -305,8 +305,10 @@ mt{
     Countries%variant{\r
         CD{"Kongo (RDK)"}\r
         CG{"ir-Repubblika tal-Kongo"}\r
+        CZ{"Ir-Repubblika Ċeka"}\r
         FK{"Il-Gżejjer Falkland (il-Gżejjer Malvinas)"}\r
+        MK{"l-Eks Repubblika Jugoslava tal-Maċedonia"}\r
         TL{"Timor tal-Lvant"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.94"}\r
 }\r
index 9b6cdcb..53e77ed 100644 (file)
@@ -42,7 +42,7 @@ my{
         AL{"အယ်လ်ဘေးနီးယား"}\r
         AM{"အာမေးနီးယား"}\r
         AO{"အန်ဂိုလာ"}\r
-        AQ{"á\80¡á\80\94á\80¹တာတိက"}\r
+        AQ{"á\80¡á\80\94á\80ºတာတိက"}\r
         AR{"အာဂျင်တီးနား"}\r
         AS{"အမေရိကန် ဆမိုးအား"}\r
         AT{"ဩစတြီးယား"}\r
@@ -188,7 +188,7 @@ my{
         MM{"မြန်မာ"}\r
         MN{"မွန်ဂိုးလီးယား"}\r
         MO{"မကာအို (တရုတ်ပြည်)"}\r
-        MP{"á\80\90á\80±á\80¬á\80\84်ပိုင်းမာရီအာနာကျွန်းစု"}\r
+        MP{"á\80\99á\80¼á\80±á\80¬á\80\80်ပိုင်းမာရီအာနာကျွန်းစု"}\r
         MQ{"မာတီနိခ်"}\r
         MR{"မော်ရီတေးနီးယား"}\r
         MS{"မောင့်စဲရက်"}\r
@@ -196,7 +196,7 @@ my{
         MU{"မောရစ်ရှ"}\r
         MV{"မော်လ်ဒိုက်"}\r
         MW{"မာလာဝီ"}\r
-        MX{"á\80\99á\80\80á\80¹ကဆီကို"}\r
+        MX{"á\80\99á\80\80á\80ºကဆီကို"}\r
         MY{"မလေးရှား"}\r
         MZ{"မိုဇမ်ဘစ်"}\r
         NA{"နမီးဘီးယား"}\r
@@ -311,5 +311,5 @@ my{
         FK{"ဖော့ကလန် ကျွန်းစု (အီလားစ် မောလ်ဗီနာစ်)"}\r
         MK{"မက်ဆီဒိုးနီးယား (ယခင် ယူဂိုစလားဗီးယား မက်ဆီဒိုးနီးယားပြည်ထောင်စု)"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.88"}\r
 }\r
index 79ab715..4a10f4a 100644 (file)
@@ -307,5 +307,5 @@ mzn{
         MK{"مقدونیه جمهوری"}\r
         TL{"شرقی تیمور"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.41.34"}\r
 }\r
index 1eae94b..fdcca64 100644 (file)
@@ -220,7 +220,7 @@ nb{
         PK{"Pakistan"}\r
         PL{"Polen"}\r
         PM{"Saint-Pierre-et-Miquelon"}\r
-        PN{"Pitcairn"}\r
+        PN{"Pitcairnøyene"}\r
         PR{"Puerto Rico"}\r
         PS{"Det palestinske området"}\r
         PT{"Portugal"}\r
@@ -309,5 +309,5 @@ nb{
         FK{"Falklandsøyene (Islas Malvinas)"}\r
         MK{"Den tidligere jugoslaviske republikk Makedonia"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.2"}\r
 }\r
index bc84bc4..5140dee 100644 (file)
@@ -33,7 +33,7 @@ ne{
         155{"पश्चिमी युरोप"}\r
         202{"उप-साहारा अफ्रिका"}\r
         419{"ल्याटिन अमेरिका"}\r
-        AC{"à¤\8fसà¥\8dà¤\95ेन्सन टापु"}\r
+        AC{"à¤\85सेन्सन टापु"}\r
         AD{"अन्डोर्रा"}\r
         AE{"संयुक्त अरब इमिराट्स"}\r
         AF{"अफगानिस्तान"}\r
@@ -54,12 +54,12 @@ ne{
         BB{"बार्बाडोस"}\r
         BD{"बङ्गलादेश"}\r
         BE{"बेल्जियम"}\r
-        BF{"बर्किना फासो"}\r
+        BF{"बà¥\81रà¥\8dà¤\95िना à¤«à¤¾à¤¸à¥\8b"}\r
         BG{"बुल्गेरिया"}\r
         BH{"बहराइन"}\r
         BI{"बुरूण्डी"}\r
         BJ{"बेनिन"}\r
-        BL{"सà¥\87नà¥\8dà¤\9f à¤¬à¤¾à¤°à¥\8dथालेमी"}\r
+        BL{"सà¥\87नà¥\8dà¤\9f à¤¬à¤¾à¤°à¥\8dथà¥\87लेमी"}\r
         BM{"बर्मुडा"}\r
         BN{"ब्रुनाइ"}\r
         BO{"बोलिभिया"}\r
@@ -74,10 +74,10 @@ ne{
         CA{"क्यानाडा"}\r
         CC{"कोकोस (किलिंग) टापुहरु"}\r
         CD{"कङ्गो - किन्शासा"}\r
-        CF{"à¤\95à¥\87नà¥\8dदà¥\8dरà¥\80य अफ्रिकी गणतन्त्र"}\r
+        CF{"मधà¥\8dय अफ्रिकी गणतन्त्र"}\r
         CG{"कङ्गो ब्राजाभिल"}\r
         CH{"स्विजरल्याण्ड"}\r
-        CI{"à¤\86à¤\87भà¥\8bरà¥\80 à¤\95à¥\8bसà¥\8dà¤\9f"}\r
+        CI{"à¤\95à¥\8bà¤\9f à¤¦à¤¿à¤­à¥\8bर"}\r
         CK{"कुक टापुहरु"}\r
         CL{"चिली"}\r
         CM{"क्यामरून"}\r
@@ -108,14 +108,14 @@ ne{
         ET{"इथियोपिया"}\r
         EU{"युरोपियन युनियन"}\r
         EZ{"युरोजोन"}\r
-        FI{"फिनà¥\8dलà¥\8dयाणà¥\8dड"}\r
+        FI{"फिनल्याण्ड"}\r
         FJ{"फिजी"}\r
         FK{"फकल्याण्ड टापुहरु"}\r
         FM{"माइक्रोनेसिया"}\r
         FO{"फारो टापुहरू"}\r
         FR{"फ्रान्स"}\r
         GA{"गावोन"}\r
-        GB{"बà¥\87लायत"}\r
+        GB{"सà¤\82यà¥\81à¤\95à¥\8dत à¤\85धिराà¤\9cà¥\8dय"}\r
         GD{"ग्रेनाडा"}\r
         GE{"जर्जिया"}\r
         GF{"फ्रान्सेली गायना"}\r
@@ -127,13 +127,13 @@ ne{
         GN{"गिनी"}\r
         GP{"ग्वाडेलुप"}\r
         GQ{"भू-मध्यीय गिनी"}\r
-        GR{"à¤\97à¥\8dरिस"}\r
+        GR{"à¤\97à¥\8dरà¥\80स"}\r
         GS{"दक्षिण जर्जिया र दक्षिण स्यान्डवीच टापुहरू"}\r
         GT{"ग्वाटेमाला"}\r
         GU{"गुवाम"}\r
         GW{"गिनी-बिसाउ"}\r
         GY{"गुयाना"}\r
-        HK{"हà¤\99à¤\95à¤\99 à¤\9aिनियाà¤\81 à¤¸à¤®à¤¾à¤\9cबादà¥\80 à¤¸à¥\8dवायतà¥\8dत क्षेत्र"}\r
+        HK{"हà¤\99à¤\95à¤\99 à¤\9aिनियाà¤\81 à¤µà¤¿à¤¶à¥\87ष à¤ªà¥\8dरशासनिà¤\95 क्षेत्र"}\r
         HM{"हर्ड टापु र म्याकडोनाल्ड टापुहरु"}\r
         HN{"हन्डुरास"}\r
         HR{"क्रोएशिया"}\r
@@ -151,7 +151,7 @@ ne{
         IS{"आइस्ल्याण्ड"}\r
         IT{"इटाली"}\r
         JE{"जर्सी"}\r
-        JM{"à¤\9cमाà¤\87का"}\r
+        JM{"à¤\9cमà¥\88का"}\r
         JO{"जोर्डन"}\r
         JP{"जापान"}\r
         KE{"केन्या"}\r
@@ -168,7 +168,7 @@ ne{
         LA{"लाओस"}\r
         LB{"लेबनन"}\r
         LC{"सेन्ट लुसिया"}\r
-        LI{"लिà¤\8fà¤\96à¤\9fà¥\87नà¥\8dसà¥\8dटाइन"}\r
+        LI{"लिà¤\95à¤\9fà¥\87नà¥\8dसटाइन"}\r
         LK{"श्रीलङ्का"}\r
         LR{"लाइबेरिया"}\r
         LS{"लेसोथो"}\r
@@ -179,7 +179,7 @@ ne{
         MA{"मोरोक्को"}\r
         MC{"मोनाको"}\r
         MD{"माल्डोभा"}\r
-        ME{"मà¥\8bनà¥\8dà¤\9fà¥\87नà¥\87ग्रो"}\r
+        ME{"मà¥\8bनà¥\8dà¤\9fà¥\87निग्रो"}\r
         MF{"सेन्ट मार्टिन"}\r
         MG{"माडागास्कर"}\r
         MH{"मार्शल टापुहरु"}\r
@@ -187,13 +187,13 @@ ne{
         ML{"माली"}\r
         MM{"म्यान्मार (बर्मा)"}\r
         MN{"मङ्गोलिया"}\r
-        MO{"मकाउ चिनियाँ स्वशासित क्षेत्र"}\r
+        MO{"(मकाउ चिनियाँ विशेष प्रशासनिक क्षेत्र"}\r
         MP{"उत्तरी मारिआना टापु"}\r
         MQ{"मार्टिनिक"}\r
         MR{"माउरिटानिया"}\r
         MS{"मोन्टसेर्राट"}\r
         MT{"माल्टा"}\r
-        MU{"माà¤\89रिà¤\9fस"}\r
+        MU{"मà¥\8cरिसियस"}\r
         MV{"माल्दिभ्स"}\r
         MW{"मालावी"}\r
         MX{"मेक्सिको"}\r
@@ -248,7 +248,7 @@ ne{
         SN{"सेनेगल"}\r
         SO{"सोमालिया"}\r
         SR{"सुरिनेम"}\r
-        SS{"दक्षिण सुडान"}\r
+        SS{"दक्षिण सुडान"}\r
         ST{"साओ टोमे र प्रिन्सिप"}\r
         SV{"एल् साल्भाडोर"}\r
         SX{"सिन्ट मार्टेन"}\r
@@ -281,7 +281,7 @@ ne{
         VA{"भेटिकन सिटी"}\r
         VC{"सेन्ट भिन्सेन्ट र ग्रेनाडिन्स"}\r
         VE{"भेनेजुएला"}\r
-        VG{"बà¥\87लायतà¥\80 à¤­à¤°à¥\8dà¤\9cिन à¤\9fापà¥\81हरà¥\81"}\r
+        VG{"बà¥\87लायतà¥\80 à¤­à¤°à¥\8dà¤\9cिन à¤\9fापà¥\81हरà¥\82"}\r
         VI{"संयुक्त राज्य भर्जिन टापुहरु"}\r
         VN{"भिएतनाम"}\r
         VU{"भानुआतु"}\r
@@ -292,11 +292,10 @@ ne{
         YT{"मायोट्ट"}\r
         ZA{"दक्षिण अफ्रिका"}\r
         ZM{"जाम्बिया"}\r
-        ZW{"जिम्बाबे"}\r
+        ZW{"à¤\9cिमà¥\8dबाबवà¥\87"}\r
         ZZ{"अज्ञात क्षेत्र"}\r
     }\r
     Countries%short{\r
-        GB{"बेलायत"}\r
         HK{"हङकङ"}\r
         MO{"मकाउ"}\r
         PS{"प्यालेसटाइन"}\r
@@ -306,11 +305,11 @@ ne{
     Countries%variant{\r
         CD{"कङ्गो (डीआर्‌सी)"}\r
         CG{"कङ्गो (गणतन्त्र)"}\r
-        CI{"CI"}\r
+        CI{"आइभोरी कोस्ट"}\r
         CZ{"चेक गणतन्त्र"}\r
         FK{"फक्ल्याण्ड टापुहरू (इज्लास माल्भिनास)"}\r
         MK{"म्यासेडोनिया (फाइरम)"}\r
         TL{"पृर्वी टीमोर"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.50"}\r
 }\r
index 4c64435..4837b82 100644 (file)
@@ -312,5 +312,5 @@ nl{
         MK{"Macedonië (FYROM)"}\r
         TL{"Democratische Republiek Oost-Timor"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.45.14"}\r
 }\r
index 55459ed..d407f04 100644 (file)
@@ -308,5 +308,5 @@ nn{
         MK{"Den tidlegare jugoslaviske republikken Makedonia"}\r
         TL{"Aust-Timor"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.94"}\r
 }\r
index a7d2701..d27bb8f 100644 (file)
@@ -15,5 +15,5 @@ om{
         RU{"Russia"}\r
         US{"United States"}\r
     }\r
-    Version{"2.1.38.69"}\r
+    Version{"2.1.43.94"}\r
 }\r
index 5246744..5b72fa4 100644 (file)
@@ -125,7 +125,7 @@ or{
         GL{"ଗ୍ରୀନଲ୍ୟାଣ୍ଡ"}\r
         GM{"ଗାମ୍ବିଆ"}\r
         GN{"ଗୁଇନିଆ"}\r
-        GP{"ଗୁଆଡେଲୋପ୍"}\r
+        GP{"ଗୁଆଡେଲୋପ୍"}\r
         GQ{"ଇକ୍ବାଟେରିଆଲ୍ ଗୁଇନିଆ"}\r
         GR{"ଗ୍ରୀସ୍"}\r
         GS{"ଦକ୍ଷିଣ ଜର୍ଜିଆ ଏବଂ ଦକ୍ଷିଣ ସାଣ୍ଡୱିଚ୍ ଦ୍ୱୀପପୁଞ୍ଜ"}\r
@@ -158,7 +158,7 @@ or{
         KG{"କିର୍ଗିଜିସ୍ତାନ"}\r
         KH{"କାମ୍ବୋଡିଆ"}\r
         KI{"କିରିବାଟି"}\r
-        KM{"କୋମୋରସ୍"}\r
+        KM{"କୋମୋରସ୍"}\r
         KN{"ସେଣ୍ଟ କିଟସ୍‌ ଏବଂ ନେଭିସ୍‌"}\r
         KP{"ଉତ୍ତର କୋରିଆ"}\r
         KR{"ଦକ୍ଷିଣ କୋରିଆ"}\r
@@ -178,11 +178,11 @@ or{
         LY{"ଲିବ୍ୟା"}\r
         MA{"ମୋରୋକ୍କୋ"}\r
         MC{"ମୋନାକୋ"}\r
-        MD{"ମାଲଡୋଭା"}\r
+        MD{"ମà­\8bଲଡୋଭା"}\r
         ME{"ମଣ୍ଟେନିଗ୍ରୋ"}\r
         MF{"ସେଣ୍ଟ ମାର୍ଟିନ୍"}\r
         MG{"ମାଡାଗାସ୍କର୍"}\r
-        MH{"ମାର୍ଶାଲ୍ ଦ୍ୱୀପପୁଞ୍ଜ"}\r
+        MH{"ମାର୍ଶାଲ୍ ଦ୍ୱୀପପୁଞ୍ଜ"}\r
         MK{"ମାସେଡୋନିଆ"}\r
         ML{"ମାଲି"}\r
         MM{"ମିଆଁମାର"}\r
@@ -202,7 +202,7 @@ or{
         NA{"ନାମିବିଆ"}\r
         NC{"ନୂତନ କାଲେଡୋନିଆ"}\r
         NE{"ନାଇଜର"}\r
-        NF{"ନର୍ଫକ୍‌ ଦ୍ୱୀପ"}\r
+        NF{"ନର୍ଫକ୍ ଦ୍ଵୀପ"}\r
         NG{"ନାଇଜେରିଆ"}\r
         NI{"ନିକାରାଗୁଆ"}\r
         NL{"ନେଦରଲ୍ୟାଣ୍ଡ"}\r
@@ -271,14 +271,14 @@ or{
         TV{"ତୁଭାଲୁ"}\r
         TW{"ତାଇୱାନ"}\r
         TZ{"ତାଞ୍ଜାନିଆ"}\r
-        UA{"ୟୁକ୍ରେନ୍"}\r
+        UA{"ୟୁକ୍ରେନ୍"}\r
         UG{"ଉଗାଣ୍ଡା"}\r
         UM{"ଯୁକ୍ତରାଷ୍ଟ୍ର ଆଉଟ୍‌ଲାଇଙ୍ଗ ଦ୍ଵୀପପୁଞ୍ଜ"}\r
         UN{"ଜାତିସଂଘ"}\r
         US{"ଯୁକ୍ତ ରାଷ୍ଟ୍ର"}\r
         UY{"ଉରୁଗୁଏ"}\r
         UZ{"ଉଜବେକିସ୍ତାନ"}\r
-        VA{"ଭାଟିକାନ୍ ସିଟି"}\r
+        VA{"ଭାଟିକାନ୍ ସିଟି"}\r
         VC{"ସେଣ୍ଟ ଭିନସେଣ୍ଟ ଏବଂ ଦି ଗ୍ରେନାଡିସ୍"}\r
         VE{"ଭେନେଜୁଏଲା"}\r
         VG{"ବ୍ରିଟିଶ୍‌ ଭର୍ଜିନ୍ ଦ୍ୱୀପପୁଞ୍ଜ"}\r
@@ -299,17 +299,17 @@ or{
         GB{"ୟୁକେ"}\r
         HK{"ହଂ କଂ"}\r
         MO{"ମାକାଉ"}\r
-        PS{"ପାଲେଷ୍ଟାଇନ୍"}\r
+        PS{"ପାଲେଷ୍ଟାଇନ୍"}\r
         US{"ଯୁକ୍ତରାଷ୍ଟ୍ର"}\r
     }\r
     Countries%variant{\r
-        CD{"କଙ୍ଗୋ (DRC)"}\r
+        CD{"କଙ୍ଗୋ (ଡିଆରସି)"}\r
         CG{"କଙ୍ଗୋ (ସାଧାରଣତନ୍ତ୍ର)"}\r
         CI{"ଆଇଭରୀ କୋଷ୍ଟ"}\r
         CZ{"ଚେକ୍‌ ସାଧାରଣତନ୍ତ୍ର"}\r
         FK{"ଫକଲ୍ୟାଣ୍ଡ ଦ୍ୱୀପପୁଞ୍ଜ (ଇସଲାସ୍‌ ମାଲଭିନାସ୍‌)"}\r
-        MK{"ମାସà­\87ଡà­\8bନିà¬\86 (ଫାà¬\87ରମà­\8dâ\80\8c)"}\r
+        MK{"ମାସà­\87ଡà­\8bନିà¬\86 (à¬\8fଫà­\8dâ\80\8câ\80\8cୱାà¬\87à¬\86ରà­\8dâ\80\8câ\80\8cà¬\93à¬\8fମà­\8d)"}\r
         TL{"ପୂର୍ବ ତିମୋର୍‌"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.65"}\r
 }\r
index 3bb1ae6..11a5b97 100644 (file)
@@ -107,7 +107,7 @@ pa{
         ES{"ਸਪੇਨ"}\r
         ET{"ਇਥੋਪੀਆ"}\r
         EU{"ਯੂਰਪੀ ਸੰਘ"}\r
-        EZ{"EZ"}\r
+        EZ{"ਯੂਰੋਜ਼ੋਨ"}\r
         FI{"ਫਿਨਲੈਂਡ"}\r
         FJ{"ਫ਼ਿਜੀ"}\r
         FK{"ਫ਼ਾਕਲੈਂਡ ਟਾਪੂ"}\r
@@ -304,7 +304,7 @@ pa{
         US{"ਯੂ.ਐੱਸ."}\r
     }\r
     Countries%variant{\r
-        CD{"ਕਾਂਗੋ ਲੋਕਤੰਤਰੀ ਗਣਰਾਜ"}\r
+        CD{"ਕਾਂਗੋ (ਡੀਆਰਸੀ)"}\r
         CG{"ਕਾਂਗੋ ਗਣਰਾਜ"}\r
         CI{"ਆਇਵਰੀ ਕੋਸਟ"}\r
         CZ{"ਚੈੱਕ ਗਣਰਾਜ"}\r
@@ -312,5 +312,5 @@ pa{
         MK{"ਮੈਕਡੋਨੀਆ (ਪੂਰਵ ਯੂਗੋਸਲਾਵ ਮੈਕਡੋਨੀਆਈ ਗਣਰਾਜ)"}\r
         TL{"ਪੂਰਬ ਤਿਮੋਰ"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.65"}\r
 }\r
index b274b8e..ec5bd72 100644 (file)
@@ -83,7 +83,7 @@ pl{
         CM{"Kamerun"}\r
         CN{"Chiny"}\r
         CO{"Kolumbia"}\r
-        CP{"Clipperton"}\r
+        CP{"Wyspa Clippertona"}\r
         CR{"Kostaryka"}\r
         CU{"Kuba"}\r
         CV{"Republika Zielonego Przylądka"}\r
@@ -312,5 +312,5 @@ pl{
         MK{"Była Jugosłowiańska Republika Macedonii"}\r
         TL{"Timor-Leste"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.50"}\r
 }\r
index 7bc6dd5..90cbbdd 100644 (file)
Binary files a/source/data/region/pool.res and b/source/data/region/pool.res differ
index 2dba2b7..f09cc92 100644 (file)
@@ -5,35 +5,35 @@ ps{
         001{"نړۍ"}\r
         002{"افريقا"}\r
         003{"شمالی امریکا"}\r
-        005{"جÙ\86Ù\88بÛ\8c Ø§Ù\85رÛ\8cÚ©Ù\87"}\r
+        005{"سÙ\88Ù\8aÙ\84Ù\8a Ø§Ù\85رÙ\8aکا"}\r
         009{"سمندريه"}\r
         011{"لویدیځ افریقا"}\r
         013{"منخنۍ امريکا"}\r
         014{"ختیځ افریقا"}\r
         015{"شمالي افریقا"}\r
         017{"منځنۍ افریقا"}\r
-        018{"جÙ\86Ù\88بÙ\8a Ø§Ù\81رÛ\8cقا"}\r
-        019{"امريکا"}\r
+        018{"سÙ\88Ù\8aÙ\84Ù\8a Ø§Ù\81رÙ\8aقا"}\r
+        019{"امريکې"}\r
         021{"شمالي امریکا"}\r
         029{"کیریبین"}\r
         030{"ختیځ آسیا"}\r
-        034{"سÙ\87Û\8cÙ\84 Ø¢Ø³Û\8cا"}\r
-        035{"سویل ختیځ آسیا"}\r
-        039{"جÙ\86Ù\88بي اروپا"}\r
+        034{"سÙ\88Ù\8aÙ\84Ù\8a Ø¢Ø³Ù\8aا"}\r
+        035{"سويلي ختيځ آسيا"}\r
+        039{"سÙ\88Ù\8aÙ\84ي اروپا"}\r
         053{"آسترالیا"}\r
         054{"ملانشیا"}\r
         057{"د مایکرونیسینین سیمه"}\r
-        061{"پولینیا"}\r
-        142{"اسيا"}\r
-        143{"Ù\85Ù\86Ú\81Ù\86Û\8d Ø§Ø³Û\8cا"}\r
+        061{"پولنيسيا"}\r
+        142{"Ø¢سيا"}\r
+        143{"Ù\85Ù\86Ú\81Ù\86Û\8d Ø¢Ø³Ù\8aا"}\r
         145{"لویدیځ آسیا"}\r
         150{"اروپا"}\r
         151{"ختيځه اروپا"}\r
         154{"شمالي اروپا"}\r
         155{"لویدیځه اروپا"}\r
-        202{"د Ø§Ù\81رÛ\8cÙ\82ا Ø¬Ù\86Ù\88ب-صحرا"}\r
+        202{"سب Ø³Ù\87ارÙ\86 Ø§Ù\81رÙ\8aÙ\82ا"}\r
         419{"لاتیني امریکا"}\r
-        AC{"د ØªÙ\88غÙ\86دÛ\8cÙ\88 ټاپو"}\r
+        AC{"اسÙ\8aÙ\86شاÙ\86 ټاپو"}\r
         AD{"اندورا"}\r
         AE{"متحده عرب امارات"}\r
         AF{"افغانستان"}\r
@@ -43,7 +43,7 @@ ps{
         AM{"ارمنستان"}\r
         AO{"انګولا"}\r
         AQ{"انتارکتیکا"}\r
-        AR{"ارژنټاین"}\r
+        AR{"ارجنټاين"}\r
         AS{"امریکایی سمو"}\r
         AT{"اتریش"}\r
         AU{"آسټرالیا"}\r
@@ -59,22 +59,22 @@ ps{
         BH{"بحرين"}\r
         BI{"بروندي"}\r
         BJ{"بینن"}\r
-        BL{"سینټ بارټیلیټی"}\r
+        BL{"سينټ بارتيلمي"}\r
         BM{"برمودا"}\r
-        BN{"بروني"}\r
+        BN{"برونائي"}\r
         BO{"بولیویا"}\r
         BQ{"کیریبین هالینډ"}\r
         BR{"برازیل"}\r
-        BS{"باهاما"}\r
+        BS{"باهماس"}\r
         BT{"بهوټان"}\r
         BV{"بوویټ ټاپو"}\r
         BW{"بوتسوانه"}\r
         BY{"بیلاروس"}\r
         BZ{"بلیز"}\r
         CA{"کاناډا"}\r
-        CC{"کوکوز (کیبل) ټاپوګانې"}\r
+        CC{"کوکوز (کيلنګ) ټاپوګان"}\r
         CD{"کانګو - کینشاسا"}\r
-        CF{"د مرکزي افریقا جمهوریت"}\r
+        CF{"وسطي افريقا جمهور"}\r
         CG{"کانګو - بروزوییل"}\r
         CH{"سویس"}\r
         CI{"د عاج ساحل"}\r
@@ -87,30 +87,30 @@ ps{
         CR{"کوستاریکا"}\r
         CU{"کیوبا"}\r
         CV{"کیپ ورد"}\r
-        CW{"کوکوکا"}\r
-        CX{"د کریساس ټاپو"}\r
+        CW{"کوراکاو"}\r
+        CX{"د کريسمس ټاپو"}\r
         CY{"قبرس"}\r
         CZ{"چکیا"}\r
         DE{"المان"}\r
         DG{"ډایګو ګارسیا"}\r
-        DJ{"جی بوتي"}\r
+        DJ{"جبوتي"}\r
         DK{"ډنمارک"}\r
         DM{"دومینیکا"}\r
-        DO{"دÙ\88Ù\85Û\8cÙ\86Û\8cÚ©Ù\86 Ø¬Ù\85Ù\87Ù\88رÙ\8aت"}\r
+        DO{"جÙ\85Ù\87Ù\88رÙ\8aÙ\87 Ú\89Ù\88Ù\85Ù\8aÙ\86Ù\8aÚ©Ù\86"}\r
         DZ{"الجزایر"}\r
-        EA{"سئوتا او مالایا"}\r
+        EA{"سيوتا او ماليلا"}\r
         EC{"اکوادور"}\r
         EE{"استونیا"}\r
         EG{"مصر"}\r
-        EH{"لویدیځ صحرا"}\r
+        EH{"لويديځ صحارا"}\r
         ER{"اریتره"}\r
         ES{"هسپانیه"}\r
         ET{"حبشه"}\r
         EU{"اروپايي اتحاديه"}\r
-        EZ{"اروپاسيمه"}\r
+        EZ{"اروپايي سيمه"}\r
         FI{"فنلینډ"}\r
-        FJ{"في جي"}\r
-        FK{"فوکلنډ ټاپو"}\r
+        FJ{"فجي"}\r
+        FK{"فاکلينډ ټاپوګان"}\r
         FM{"میکرونیزیا"}\r
         FO{"فارو ټاپو"}\r
         FR{"فرانسه"}\r
@@ -128,24 +128,24 @@ ps{
         GP{"ګالډیپ"}\r
         GQ{"استوایی ګینه"}\r
         GR{"یونان"}\r
-        GS{"سویل جورجیا او جنوبي سینڈوچ ټاپو"}\r
+        GS{"سويلي جارجيا او سويلي سېنډوچ ټاپوګان"}\r
         GT{"ګواتیمالا"}\r
         GU{"ګوام"}\r
         GW{"ګینه بیسو"}\r
         GY{"ګیانا"}\r
         HK{"هانګ کانګ SAR چین"}\r
-        HM{"HM"}\r
+        HM{"هارډ او ميکډانلډ ټاپوګان"}\r
         HN{"هانډوراس"}\r
-        HR{"کرÙ\88اثÛ\8cا"}\r
+        HR{"کرÙ\88اشÙ\8aا"}\r
         HT{"هایټي"}\r
         HU{"مجارستان"}\r
-        IC{"د کانري ټاپو"}\r
+        IC{"د کناري ټاپوګان"}\r
         ID{"اندونیزیا"}\r
         IE{"ایرلینډ"}\r
         IL{"اسراييل"}\r
         IM{"د آئل آف مین"}\r
         IN{"هند"}\r
-        IO{"د هند سمندر سمندر سیمه"}\r
+        IO{"د بريتانوي هند سمندري سيمه"}\r
         IQ{"عراق"}\r
         IR{"ايران"}\r
         IS{"آیسلینډ"}\r
@@ -165,16 +165,16 @@ ps{
         KW{"کویټ"}\r
         KY{"کیمان ټاپوګان"}\r
         KZ{"قزاقستان"}\r
-        LA{"لاووس"}\r
-        LB{"لېبنان"}\r
+        LA{"لاوس"}\r
+        LB{"لبنان"}\r
         LC{"سینټ لوسیا"}\r
         LI{"لیختن اشتاین"}\r
-        LK{"سريلانکا"}\r
+        LK{"سريلنکا"}\r
         LR{"لایبریا"}\r
         LS{"لسوتو"}\r
         LT{"لیتوانیا"}\r
         LU{"لوګزامبورګ"}\r
-        LV{"لتوني"}\r
+        LV{"ليتهويا"}\r
         LY{"لیبیا"}\r
         MA{"مراکش"}\r
         MC{"موناکو"}\r
@@ -182,13 +182,13 @@ ps{
         ME{"مونټینیګرو"}\r
         MF{"سینټ مارټن"}\r
         MG{"مدګاسکار"}\r
-        MH{"مارشال ټاپو"}\r
+        MH{"مارشل ټاپوګان"}\r
         MK{"مقدونیه"}\r
         ML{"مالي"}\r
-        MM{"ميانامار (برما)"}\r
+        MM{"ميانمار (برما)"}\r
         MN{"مغولستان"}\r
         MO{"مکا سار چین"}\r
-        MP{"شمالي ماریانا ټاپو"}\r
+        MP{"شمالي ماريانا ټاپوګان"}\r
         MQ{"مارټینیک"}\r
         MR{"موریتانیا"}\r
         MS{"مانټیسیرت"}\r
@@ -198,7 +198,7 @@ ps{
         MW{"مالاوي"}\r
         MX{"میکسیکو"}\r
         MY{"مالیزیا"}\r
-        MZ{"موزمبیک"}\r
+        MZ{"موزمبيق"}\r
         NA{"نیمبیا"}\r
         NC{"نوی کالیډونیا"}\r
         NE{"نیجر"}\r
@@ -214,41 +214,41 @@ ps{
         OM{"عمان"}\r
         PA{"پاناما"}\r
         PE{"پیرو"}\r
-        PF{"فرانسوي پولینیا"}\r
-        PG{"پاپ نيو ګيني، د يو هېواد نوم دې"}\r
+        PF{"فرانسوي پولينيسيا"}\r
+        PG{"پاپوا نيو ګيني"}\r
         PH{"فلپين"}\r
         PK{"پاکستان"}\r
         PL{"پولنډ"}\r
         PM{"سینټ پییر او میکولون"}\r
-        PN{"پیټکیرن ټاپو"}\r
+        PN{"پيټکيرن ټاپوګان"}\r
         PR{"پورتو ریکو"}\r
         PS{"فلسطين سيمې"}\r
         PT{"پورتګال"}\r
-        PW{"پلو"}\r
+        PW{"پلاؤ"}\r
         PY{"پاراګوی"}\r
         QA{"قطر"}\r
-        QO{"بÙ\87رÙ\86Û\8c Ø¢Ø³Û\8cا"}\r
+        QO{"بÙ\87رÙ\86Û\8d Ø§Ù\88سÙ\8aاÙ\86Ù\87"}\r
         RE{"ریونین"}\r
         RO{"رومانیا"}\r
-        RS{"صربÛ\8cا"}\r
+        RS{"سربÙ\8aا"}\r
         RU{"روسیه"}\r
         RW{"روندا"}\r
         SA{"سعودي عربستان"}\r
-        SB{"سلیمان ټاپو"}\r
+        SB{"سليمان ټاپوګان"}\r
         SC{"سیچیلیس"}\r
         SD{"سوډان"}\r
         SE{"سویډن"}\r
         SG{"سينگاپور"}\r
         SH{"سینټ هیلینا"}\r
         SI{"سلوانیا"}\r
-        SJ{"سÙ\84Ù\88اÚ\89ر Ø§Ù\88 Ø¬Ø§Ù\86 Ù\85Û\8cÛ\8cن"}\r
+        SJ{"سÙ\88اÙ\84بارد Ø§Ù\88 Ø¬Ø§Ù\86 Ù\85Ù\8aÙ\8aن"}\r
         SK{"سلواکیا"}\r
         SL{"سییرا لیون"}\r
         SM{"سان مارینو"}\r
-        SN{"سÙ\86ګال"}\r
+        SN{"سÙ\8aÙ\86Ù\8aګال"}\r
         SO{"سومالیا"}\r
         SR{"سورینام"}\r
-        SS{"جÙ\86Ù\88بي سوډان"}\r
+        SS{"سÙ\88Ù\8aÙ\84ي سوډان"}\r
         ST{"ساو ټیم او پرنسیپ"}\r
         SV{"سالوېډور"}\r
         SX{"سینټ مارټین"}\r
@@ -258,58 +258,58 @@ ps{
         TC{"د ترکیې او کیکاسو ټاپو"}\r
         TD{"چاډ"}\r
         TF{"د فرانسې جنوبي سیمې"}\r
-        TG{"تلل"}\r
+        TG{"ټوګو"}\r
         TH{"تهايلنډ"}\r
-        TJ{"تاجيکستان"}\r
+        TJ{"تاجکستان"}\r
         TK{"توکیلو"}\r
         TL{"تيمور-ليسټ"}\r
         TM{"تورکمنستان"}\r
         TN{"تونس"}\r
         TO{"تونګا"}\r
-        TR{"تورکيه"}\r
-        TT{"ټرینیاډډ او ټوبوګ"}\r
+        TR{"ترکي"}\r
+        TT{"ټرينيډاډ او ټوباګو"}\r
         TV{"توالیو"}\r
-        TW{"تیوان"}\r
+        TW{"تائيوان"}\r
         TZ{"تنزانیا"}\r
         UA{"اوکراین"}\r
         UG{"یوګانډا"}\r
-        UM{"د متحده ایالاتو ټاپو ټاپوګانې"}\r
+        UM{"د متحده ایالاتو ټاپوګان"}\r
         UN{"ملگري ملتونه"}\r
-        US{"Ù\85تحدÙ\87 Ø§Û\8cالات"}\r
+        US{"Ù\85تحدÙ\87 Ø¢Ù\8aالات"}\r
         UY{"یوروګوی"}\r
         UZ{"اوزبکستان"}\r
         VA{"واتیکان ښار"}\r
         VC{"سینټ ویسنټینټ او ګرینډینز"}\r
         VE{"وینزویلا"}\r
-        VG{"بریتانوی ویګور ټاپو"}\r
-        VI{"د Ù\85تحدÙ\87 Ø§Û\8cاÙ\84اتÙ\88 Ù\88Û\8cÚ«Ù\88ر Ù¼Ø§Ù¾Ù\88"}\r
+        VG{"بریتانوی ویګور ټاپوګان"}\r
+        VI{"د Ù\85تحدÙ\87 Ø¢Ù\8aاÙ\84اتÙ\88 Ù\88رجÙ\86 Ù¼Ø§Ù¾Ù\88ګاÙ\86"}\r
         VN{"وېتنام"}\r
         VU{"واناتو"}\r
         WF{"والیس او فوتونا"}\r
         WS{"ساموا"}\r
         XK{"کوسوو"}\r
         YE{"یمن"}\r
-        YT{"میټوت"}\r
+        YT{"مايوټ"}\r
         ZA{"سویلي افریقا"}\r
         ZM{"زیمبیا"}\r
         ZW{"زیمبابوی"}\r
-        ZZ{"Ù\86اپÛ\90Ú\98Ù\86دÙ\84Û\90 سيمه"}\r
+        ZZ{"Ù\86اÙ\85عÙ\84Ù\88Ù\85Ù\87 سيمه"}\r
     }\r
     Countries%short{\r
         GB{"انګلستان"}\r
         HK{"هانګ کانګ"}\r
-        MO{"ماکو"}\r
+        MO{"مکاو"}\r
         PS{"فلسطين"}\r
-        US{"Ù\85تحدÙ\87 Ø§Û\8cالات"}\r
+        US{"Ù\85تحدÙ\87 Ø¢Ù\8aالات"}\r
     }\r
     Countries%variant{\r
         CD{"کانګو (DRC)"}\r
         CG{"کانګو (جمهوریه)"}\r
         CI{"ایوري ساحل"}\r
-        CZ{"چک جمهوريت"}\r
-        FK{"فاکلینډ ټاپو (آساس مالوناس)"}\r
+        CZ{"جمهوريه چيک"}\r
+        FK{"فاکلينډ ټاپوګان (آيزلز مالويناس)"}\r
         MK{"مقدونیه (FYROM)"}\r
         TL{"ختيځ تيمور"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.94"}\r
 }\r
index c40cce0..9ceb9df 100644 (file)
@@ -31,13 +31,14 @@ pt{
         151{"Europa Oriental"}\r
         154{"Europa Setentrional"}\r
         155{"Europa Ocidental"}\r
+        202{"África Subsaariana"}\r
         419{"América Latina"}\r
         AC{"Ilha de Ascensão"}\r
         AD{"Andorra"}\r
         AE{"Emirados Árabes Unidos"}\r
         AF{"Afeganistão"}\r
         AG{"Antígua e Barbuda"}\r
-        AI{"Anguilla"}\r
+        AI{"Anguila"}\r
         AL{"Albânia"}\r
         AM{"Armênia"}\r
         AO{"Angola"}\r
@@ -74,7 +75,7 @@ pt{
         CC{"Ilhas Cocos (Keeling)"}\r
         CD{"Congo - Kinshasa"}\r
         CF{"República Centro-Africana"}\r
-        CG{"Congo - Brazzaville"}\r
+        CG{"República do Congo"}\r
         CH{"Suíça"}\r
         CI{"Costa do Marfim"}\r
         CK{"Ilhas Cook"}\r
@@ -97,7 +98,7 @@ pt{
         DM{"Dominica"}\r
         DO{"República Dominicana"}\r
         DZ{"Argélia"}\r
-        EA{"Ceuta e Melilha"}\r
+        EA{"Ceuta e Melilla"}\r
         EC{"Equador"}\r
         EE{"Estônia"}\r
         EG{"Egito"}\r
@@ -177,7 +178,7 @@ pt{
         LY{"Líbia"}\r
         MA{"Marrocos"}\r
         MC{"Mônaco"}\r
-        MD{"Moldávia"}\r
+        MD{"Moldova"}\r
         ME{"Montenegro"}\r
         MF{"São Martinho"}\r
         MG{"Madagascar"}\r
@@ -186,7 +187,7 @@ pt{
         ML{"Mali"}\r
         MM{"Mianmar (Birmânia)"}\r
         MN{"Mongólia"}\r
-        MO{"Macau, RAE da China"}\r
+        MO{"RAE de Macau (China)"}\r
         MP{"Ilhas Marianas do Norte"}\r
         MQ{"Martinica"}\r
         MR{"Mauritânia"}\r
@@ -204,7 +205,7 @@ pt{
         NF{"Ilha Norfolk"}\r
         NG{"Nigéria"}\r
         NI{"Nicarágua"}\r
-        NL{"Holanda"}\r
+        NL{"Países Baixos"}\r
         NO{"Noruega"}\r
         NP{"Nepal"}\r
         NR{"Nauru"}\r
@@ -254,7 +255,7 @@ pt{
         SY{"Síria"}\r
         SZ{"Suazilândia"}\r
         TA{"Tristão da Cunha"}\r
-        TC{"Ilhas Turks e Caicos"}\r
+        TC{"Ilhas Turcas e Caicos"}\r
         TD{"Chade"}\r
         TF{"Territórios Franceses do Sul"}\r
         TG{"Togo"}\r
@@ -311,5 +312,5 @@ pt{
         MK{"Macedônia (ARIM)"}\r
         TL{"República Democrática de Timor-Leste"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.65"}\r
 }\r
index f8e1185..858d98d 100644 (file)
@@ -10,7 +10,6 @@ pt_PT{
         039{"Europa do Sul"}\r
         154{"Europa do Norte"}\r
         202{"África subsariana"}\r
-        AI{"Anguila"}\r
         AM{"Arménia"}\r
         AX{"Alanda"}\r
         BD{"Bangladeche"}\r
@@ -26,11 +25,13 @@ pt_PT{
         CZ{"Chéquia"}\r
         DJ{"Jibuti"}\r
         DM{"Domínica"}\r
+        EA{"Ceuta e Melilha"}\r
         EE{"Estónia"}\r
         EH{"Sara Ocidental"}\r
         EZ{"Zona Euro"}\r
-        FK{"Ilhas Falkland"}\r
+        FK{"Ilhas Malvinas (Falkland)"}\r
         FO{"Ilhas Faroé"}\r
+        GG{"Guernesey"}\r
         GL{"Gronelândia"}\r
         GU{"Guame"}\r
         IR{"Irão"}\r
@@ -43,13 +44,14 @@ pt_PT{
         LK{"Sri Lanca"}\r
         LV{"Letónia"}\r
         MC{"Mónaco"}\r
+        MD{"Moldávia"}\r
         MG{"Madagáscar"}\r
         MK{"Macedónia"}\r
+        MO{"Macau, RAE da China"}\r
         MS{"Monserrate"}\r
         MU{"Maurícia"}\r
         MW{"Maláui"}\r
         NC{"Nova Caledónia"}\r
-        NL{"Países Baixos"}\r
         NU{"Niuê"}\r
         PL{"Polónia"}\r
         PS{"Territórios palestinianos"}\r
@@ -59,7 +61,6 @@ pt_PT{
         SM{"São Marinho"}\r
         SV{"Salvador"}\r
         SX{"São Martinho (Sint Maarten)"}\r
-        TC{"Ilhas Turcas e Caicos"}\r
         TJ{"Tajiquistão"}\r
         TK{"Toquelau"}\r
         TM{"Turquemenistão"}\r
@@ -79,8 +80,8 @@ pt_PT{
         CG{"República do Congo"}\r
         CI{"Costa do Marfim"}\r
         CZ{"República Checa"}\r
-        FK{"Ilhas Malvinas"}\r
+        FK{"Ilhas Falkland (Malvinas)"}\r
         MK{"Macedónia (ARJM)"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.9"}\r
 }\r
index 9cf442d..4f19a70 100644 (file)
@@ -193,5 +193,5 @@ qu{
         ZM{"Zambia"}\r
         ZW{"Zimbabue"}\r
     }\r
-    Version{"2.1.38.72"}\r
+    Version{"2.1.43.94"}\r
 }\r
index 06e4072..ea03917 100644 (file)
@@ -1,6 +1,6 @@
 # © 2016 and later: Unicode, Inc. and others.\r
 # License & terms of use: http://www.unicode.org/copyright.html#License\r
-REGION_CLDR_VERSION = 33.1\r
+REGION_CLDR_VERSION = 34\r
 # A list of txt's to build\r
 # Note:\r
 #\r
@@ -87,38 +87,40 @@ REGION_SOURCE = af.txt agq.txt ak.txt am.txt\
  ga.txt gd.txt gl.txt gsw.txt gu.txt\\r
  guz.txt gv.txt ha.txt haw.txt he.txt\\r
  hi.txt hr.txt hsb.txt hu.txt hy.txt\\r
- id.txt ig.txt ii.txt is.txt it.txt\\r
- ja.txt jgo.txt jmc.txt ka.txt kab.txt\\r
- kam.txt kde.txt kea.txt khq.txt ki.txt\\r
- kk.txt kkj.txt kl.txt kln.txt km.txt\\r
- kn.txt ko.txt ko_KP.txt kok.txt ks.txt\\r
- ksb.txt ksf.txt ksh.txt kw.txt ky.txt\\r
- lag.txt lb.txt lg.txt lkt.txt ln.txt\\r
- lo.txt lrc.txt lt.txt lu.txt luo.txt\\r
- luy.txt lv.txt mas.txt mer.txt mfe.txt\\r
- mg.txt mgh.txt mgo.txt mk.txt ml.txt\\r
- mn.txt mr.txt ms.txt mt.txt mua.txt\\r
- my.txt mzn.txt naq.txt nb.txt nd.txt\\r
- nds.txt ne.txt nl.txt nmg.txt nn.txt\\r
- nnh.txt nus.txt nyn.txt om.txt or.txt\\r
- os.txt pa.txt pa_Arab.txt pa_Guru.txt pl.txt\\r
- ps.txt pt.txt pt_AO.txt pt_CH.txt pt_CV.txt\\r
- pt_GQ.txt pt_GW.txt pt_LU.txt pt_MO.txt pt_MZ.txt\\r
- pt_PT.txt pt_ST.txt pt_TL.txt qu.txt rm.txt\\r
- rn.txt ro.txt ro_MD.txt rof.txt ru.txt\\r
- ru_UA.txt rw.txt rwk.txt sah.txt saq.txt\\r
- sbp.txt se.txt se_FI.txt seh.txt ses.txt\\r
+ ia.txt id.txt ig.txt ii.txt is.txt\\r
+ it.txt ja.txt jgo.txt jmc.txt jv.txt\\r
+ ka.txt kab.txt kam.txt kde.txt kea.txt\\r
+ khq.txt ki.txt kk.txt kkj.txt kl.txt\\r
+ kln.txt km.txt kn.txt ko.txt ko_KP.txt\\r
+ kok.txt ks.txt ksb.txt ksf.txt ksh.txt\\r
+ ku.txt kw.txt ky.txt lag.txt lb.txt\\r
+ lg.txt lkt.txt ln.txt lo.txt lrc.txt\\r
+ lt.txt lu.txt luo.txt luy.txt lv.txt\\r
+ mas.txt mer.txt mfe.txt mg.txt mgh.txt\\r
+ mgo.txt mi.txt mk.txt ml.txt mn.txt\\r
+ mr.txt ms.txt mt.txt mua.txt my.txt\\r
+ mzn.txt naq.txt nb.txt nd.txt nds.txt\\r
+ ne.txt nl.txt nmg.txt nn.txt nnh.txt\\r
+ nus.txt nyn.txt om.txt or.txt os.txt\\r
+ pa.txt pa_Arab.txt pa_Guru.txt pl.txt ps.txt\\r
+ pt.txt pt_AO.txt pt_CH.txt pt_CV.txt pt_GQ.txt\\r
+ pt_GW.txt pt_LU.txt pt_MO.txt pt_MZ.txt pt_PT.txt\\r
+ pt_ST.txt pt_TL.txt qu.txt rm.txt rn.txt\\r
+ ro.txt ro_MD.txt rof.txt ru.txt ru_UA.txt\\r
+ rw.txt rwk.txt sah.txt saq.txt sbp.txt\\r
+ sd.txt se.txt se_FI.txt seh.txt ses.txt\\r
  sg.txt shi.txt shi_Latn.txt shi_Tfng.txt si.txt\\r
  sk.txt sl.txt smn.txt sn.txt so.txt\\r
  sq.txt sr.txt sr_Cyrl.txt sr_Cyrl_BA.txt sr_Cyrl_ME.txt\\r
  sr_Cyrl_XK.txt sr_Latn.txt sr_Latn_BA.txt sr_Latn_ME.txt sr_Latn_XK.txt\\r
  sv.txt sw.txt sw_CD.txt sw_KE.txt ta.txt\\r
  te.txt teo.txt tg.txt th.txt ti.txt\\r
- to.txt tr.txt tt.txt twq.txt tzm.txt\\r
- ug.txt uk.txt ur.txt ur_IN.txt uz.txt\\r
- uz_Arab.txt uz_Cyrl.txt uz_Latn.txt vai.txt vai_Latn.txt\\r
- vai_Vaii.txt vi.txt vun.txt wae.txt wo.txt\\r
- xog.txt yav.txt yi.txt yo.txt yo_BJ.txt\\r
- yue.txt yue_Hans.txt yue_Hant.txt zgh.txt zh.txt\\r
- zh_Hans.txt zh_Hant.txt zh_Hant_HK.txt zh_Hant_MO.txt zu.txt\r
+ tk.txt to.txt tr.txt tt.txt twq.txt\\r
+ tzm.txt ug.txt uk.txt ur.txt ur_IN.txt\\r
+ uz.txt uz_Arab.txt uz_Cyrl.txt uz_Latn.txt vai.txt\\r
+ vai_Latn.txt vai_Vaii.txt vi.txt vun.txt wae.txt\\r
+ wo.txt xh.txt xog.txt yav.txt yi.txt\\r
+ yo.txt yo_BJ.txt yue.txt yue_Hans.txt yue_Hant.txt\\r
+ zgh.txt zh.txt zh_Hans.txt zh_Hant.txt zh_Hant_HK.txt\\r
+ zh_Hant_MO.txt zu.txt\r
 \r
index 46bf8ec..246e5fc 100644 (file)
@@ -280,5 +280,5 @@ rm{
         ZW{"Simbabwe"}\r
         ZZ{"Regiun betg encouschenta u nunvalaivla"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.94"}\r
 }\r
index c82c6ba..0171886 100644 (file)
@@ -262,7 +262,7 @@ ro{
         TH{"Thailanda"}\r
         TJ{"Tadjikistan"}\r
         TK{"Tokelau"}\r
-        TL{"Timorul de Est"}\r
+        TL{"Timor-Leste"}\r
         TM{"Turkmenistan"}\r
         TN{"Tunisia"}\r
         TO{"Tonga"}\r
@@ -310,7 +310,7 @@ ro{
         CZ{"Republica Cehă"}\r
         FK{"Insulele Falkland (Insulele Malvine)"}\r
         MK{"Republica Macedonia (FRIM)"}\r
-        TL{"TL"}\r
+        TL{"Timorul de Est"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.94"}\r
 }\r
index 5043a6e..f56ea76 100644 (file)
@@ -4,5 +4,5 @@
  * ICU <specials> source: <path>/common/main/root.xml\r
  */\r
 root{\r
-    Version{"2.1.41.58"}\r
+    Version{"2.1.44.91"}\r
 }\r
index a6048c3..9f665f6 100644 (file)
@@ -31,7 +31,7 @@ ru{
         151{"Восточная Европа"}\r
         154{"Северная Европа"}\r
         155{"Западная Европа"}\r
-        202{"Ð\90Ñ\84Ñ\80ика Ðº Ñ\8eгÑ\83 Ð¾Ñ\82 Ð¡Ð°Ñ\85аÑ\80Ñ\8b"}\r
+        202{"ТÑ\80опиÑ\87еÑ\81каÑ\8f Ð\90Ñ\84Ñ\80ика"}\r
         419{"Латинская Америка"}\r
         AC{"о-в Вознесения"}\r
         AD{"Андорра"}\r
@@ -163,7 +163,7 @@ ru{
         KP{"КНДР"}\r
         KR{"Республика Корея"}\r
         KW{"Кувейт"}\r
-        KY{"Ð\9aаймановÑ\8b Ð¾-ва"}\r
+        KY{"Ð\9eÑ\81Ñ\82Ñ\80ова Ð\9aайман"}\r
         KZ{"Казахстан"}\r
         LA{"Лаос"}\r
         LB{"Ливан"}\r
@@ -281,7 +281,7 @@ ru{
         VA{"Ватикан"}\r
         VC{"Сент-Винсент и Гренадины"}\r
         VE{"Венесуэла"}\r
-        VG{"Ð\92иÑ\80гинÑ\81кие Ð¾-ва (Ð\91Ñ\80иÑ\82анÑ\81кие)"}\r
+        VG{"Ð\92иÑ\80гинÑ\81кие Ð¾-ва (Ð\92еликобÑ\80иÑ\82аниÑ\8f)"}\r
         VI{"Виргинские о-ва (США)"}\r
         VN{"Вьетнам"}\r
         VU{"Вануату"}\r
@@ -306,9 +306,10 @@ ru{
     Countries%variant{\r
         CD{"Конго (ДРК)"}\r
         CG{"Республика Конго"}\r
+        CZ{"Чешская Республика"}\r
         FK{"Фолклендские (Мальвинские) о-ва"}\r
         MK{"Македония (БЮРМ)"}\r
         TL{"Тимор-Лесте"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.45.15"}\r
 }\r
index 63575c8..133eff2 100644 (file)
@@ -13,5 +13,5 @@ ru_UA{
         TL{"Тимор-Лесте"}\r
         UM{"Малые Тихоокеанские Отдаленные Острова США"}\r
     }\r
-    Version{"2.1.38.39"}\r
+    Version{"2.1.43.65"}\r
 }\r
index e55ad6a..4d9e110 100644 (file)
@@ -5,5 +5,5 @@ rw{
         RW{"U Rwanda"}\r
         TO{"Tonga"}\r
     }\r
-    Version{"2.1.38.72"}\r
+    Version{"2.1.44.88"}\r
 }\r
index 45cda7d..0919593 100644 (file)
@@ -31,5 +31,5 @@ sah{
     Countries%short{\r
         US{"АХШ"}\r
     }\r
-    Version{"2.1.38.69"}\r
+    Version{"2.1.43.94"}\r
 }\r
diff --git a/source/data/region/sd.txt b/source/data/region/sd.txt
new file mode 100644 (file)
index 0000000..c5ad531
--- /dev/null
@@ -0,0 +1,315 @@
+// © 2016 and later: Unicode, Inc. and others.\r
+// License & terms of use: http://www.unicode.org/copyright.html#License\r
+sd{\r
+    Countries{\r
+        001{"دنيا"}\r
+        002{"آفريڪا"}\r
+        003{"اتر آمريڪا"}\r
+        005{"ڏکڻ آمريڪا"}\r
+        009{"سامونڊي"}\r
+        011{"اولهه آفريقا"}\r
+        013{"وچ آمريڪا"}\r
+        014{"اوڀر آفريڪا"}\r
+        015{"اترين آفريڪا"}\r
+        017{"وچ آفريڪا"}\r
+        018{"ڏاکڻي آمريڪا"}\r
+        019{"آمريڪا"}\r
+        021{"اترين آمريڪا"}\r
+        029{"ڪيريبين"}\r
+        030{"اوڀر ايشيا"}\r
+        034{"ڏکڻ ايشيا"}\r
+        035{"ڏکڻ اوڀر ايشيا"}\r
+        039{"ڏکڻ يورپ"}\r
+        053{"آسٽریلیشیا"}\r
+        054{"میلانیشیا"}\r
+        057{"مائڪرونيشائي خطو"}\r
+        061{"پولینیشیا"}\r
+        142{"ايشيا"}\r
+        143{"وچ ايشيا"}\r
+        145{"اولهه ايشيا"}\r
+        150{"يورپ"}\r
+        151{"اوڀر يورپ"}\r
+        154{"اترين يورپ"}\r
+        155{"اولهه يورپ"}\r
+        202{"سب-سهارا آفريڪا"}\r
+        419{"لاطيني آمريڪا"}\r
+        AC{"طلوع ٻيٽ"}\r
+        AD{"اندورا"}\r
+        AE{"متحده عرب امارات"}\r
+        AF{"افغانستان"}\r
+        AG{"انٽيگئا و بربودا"}\r
+        AI{"انگويلا"}\r
+        AL{"البانيا"}\r
+        AM{"ارمینیا"}\r
+        AO{"انگولا"}\r
+        AQ{"انٽارڪٽيڪا"}\r
+        AR{"ارجنٽينا"}\r
+        AS{"آمريڪي ساموا"}\r
+        AT{"آشٽريا"}\r
+        AU{"آسٽريليا"}\r
+        AW{"عروبا"}\r
+        AX{"الند ٻيٽ"}\r
+        AZ{"آذربائيجان"}\r
+        BA{"بوسنیا اور هرزیگوینا"}\r
+        BB{"باربڊوس"}\r
+        BD{"بنگلاديش"}\r
+        BE{"بيلجيم"}\r
+        BF{"برڪينا فاسو"}\r
+        BG{"بلغاريا"}\r
+        BH{"بحرين"}\r
+        BI{"برونڊي"}\r
+        BJ{"بينن"}\r
+        BL{"سینٽ برٿلیمی"}\r
+        BM{"برمودا"}\r
+        BN{"برونائي"}\r
+        BO{"بوليويا"}\r
+        BQ{"ڪيريبين نيدرلينڊ"}\r
+        BR{"برازيل"}\r
+        BS{"بهاماس"}\r
+        BT{"ڀوٽان"}\r
+        BV{"بووٽ ٻيٽ"}\r
+        BW{"بوٽسوانا"}\r
+        BY{"بیلارس"}\r
+        BZ{"بيليز"}\r
+        CA{"ڪئناڊا"}\r
+        CC{"ڪوڪوس ٻيٽ"}\r
+        CD{"ڪانگو -ڪنشاسا"}\r
+        CF{"وچ آفريقي جمهوريه"}\r
+        CG{"ڪانگو - برازاویل"}\r
+        CH{"سوئزرلينڊ"}\r
+        CI{"آئيوري ڪنارو"}\r
+        CK{"ڪوڪ ٻيٽ"}\r
+        CL{"چلي"}\r
+        CM{"ڪيمرون"}\r
+        CN{"چين"}\r
+        CO{"ڪولمبيا"}\r
+        CP{"ڪلپرٽن ٻيٽ"}\r
+        CR{"ڪوسٽا رڪا"}\r
+        CU{"ڪيوبا"}\r
+        CV{"ڪيپ وردي"}\r
+        CW{"ڪيوراسائو"}\r
+        CX{"ڪرسمس ٻيٽ"}\r
+        CY{"سائپرس"}\r
+        CZ{"چيڪيا"}\r
+        DE{"جرمني"}\r
+        DG{"ڊئيگو گارسيا"}\r
+        DJ{"ڊجبيوتي"}\r
+        DK{"ڊينمارڪ"}\r
+        DM{"ڊومينيڪا"}\r
+        DO{"ڊومينيڪن جمهوريه"}\r
+        DZ{"الجيريا"}\r
+        EA{"سیوٽا ۽ میلیلا"}\r
+        EC{"ايڪواڊور"}\r
+        EE{"ايسٽونيا"}\r
+        EG{"مصر"}\r
+        EH{"اولهه صحارا"}\r
+        ER{"ايريٽيريا"}\r
+        ES{"اسپين"}\r
+        ET{"ايٿوپيا"}\r
+        EU{"يورپين يونين"}\r
+        EZ{"يورو زون"}\r
+        FI{"فن لينڊ"}\r
+        FJ{"فجي"}\r
+        FK{"فاڪ لينڊ ٻيٽ"}\r
+        FM{"مائڪرونيشيا"}\r
+        FO{"فارو ٻيٽ"}\r
+        FR{"فرانس"}\r
+        GA{"گبون"}\r
+        GB{"برطانيه"}\r
+        GD{"گرينڊا"}\r
+        GE{"جارجيا"}\r
+        GF{"فرانسيسي گيانا"}\r
+        GG{"گورنسي"}\r
+        GH{"گهانا"}\r
+        GI{"جبرالٽر"}\r
+        GL{"گرين لينڊ"}\r
+        GM{"گيمبيا"}\r
+        GN{"گني"}\r
+        GP{"گواڊیلوپ"}\r
+        GQ{"ايڪوٽوريل گائينا"}\r
+        GR{"يونان"}\r
+        GS{"ڏکڻ جارجيا ۽ ڏکڻ سينڊوچ ٻيٽ"}\r
+        GT{"گوئٽي مالا"}\r
+        GU{"گوام"}\r
+        GW{"گني بسائو"}\r
+        GY{"گيانا"}\r
+        HK{"هانگ ڪانگ"}\r
+        HM{"هرڊ ۽ مڪڊونلڊ ٻيٽ"}\r
+        HN{"هنڊورس"}\r
+        HR{"ڪروئيشيا"}\r
+        HT{"هيٽي"}\r
+        HU{"چيڪ جهموريه"}\r
+        IC{"ڪينري ٻيٽ"}\r
+        ID{"انڊونيشيا"}\r
+        IE{"آئرلينڊ"}\r
+        IL{"اسرائيل"}\r
+        IM{"انسانن جو ٻيٽ"}\r
+        IN{"انڊيا"}\r
+        IO{"برطانوي هندي سمنڊ خطو"}\r
+        IQ{"عراق"}\r
+        IR{"ايران"}\r
+        IS{"آئس لينڊ"}\r
+        IT{"اٽلي"}\r
+        JE{"جرسي"}\r
+        JM{"جميڪا"}\r
+        JO{"اردن"}\r
+        JP{"جاپان"}\r
+        KE{"ڪينيا"}\r
+        KG{"ڪرغستان"}\r
+        KH{"ڪمبوڊيا"}\r
+        KI{"ڪرباتي"}\r
+        KM{"ڪوموروس"}\r
+        KN{"سينٽ ڪٽس و نيوس"}\r
+        KP{"اتر ڪوريا"}\r
+        KR{"ڏکڻ ڪوريا"}\r
+        KW{"ڪويت"}\r
+        KY{"ڪي مين ٻيٽ"}\r
+        KZ{"قازقستان"}\r
+        LA{"لائوس"}\r
+        LB{"لبنان"}\r
+        LC{"سينٽ لوسيا"}\r
+        LI{"لچي ٽينسٽين"}\r
+        LK{"سري لنڪا"}\r
+        LR{"لائبیریا"}\r
+        LS{"ليسوٿو"}\r
+        LT{"لٿونيا"}\r
+        LU{"لیگزمبرگ"}\r
+        LV{"لاتويا"}\r
+        LY{"لبيا"}\r
+        MA{"موروڪو"}\r
+        MC{"موناڪو"}\r
+        MD{"مالدووا"}\r
+        ME{"مونٽي نيگرو"}\r
+        MF{"سينٽ مارٽن"}\r
+        MG{"مداگيسڪر"}\r
+        MH{"مارشل ڀيٽ"}\r
+        MK{"ميسي ڊونيا"}\r
+        ML{"مالي"}\r
+        MM{"ميانمار (برما)"}\r
+        MN{"منگوليا"}\r
+        MO{"مڪائو"}\r
+        MP{"اتر مرينا ٻيٽ"}\r
+        MQ{"مارتينڪ"}\r
+        MR{"موريتانيا"}\r
+        MS{"مونٽسراٽ"}\r
+        MT{"مالٽا"}\r
+        MU{"موريشس"}\r
+        MV{"مالديپ"}\r
+        MW{"مالاوي"}\r
+        MX{"ميڪسيڪو"}\r
+        MY{"ملائيشيا"}\r
+        MZ{"موزمبیق"}\r
+        NA{"نيميبيا"}\r
+        NC{"نیو ڪالیڊونیا"}\r
+        NE{"نائيجر"}\r
+        NF{"نورفوڪ ٻيٽ"}\r
+        NG{"نائيجيريا"}\r
+        NI{"نڪراگوا"}\r
+        NL{"نيدرلينڊ"}\r
+        NO{"ناروي"}\r
+        NP{"نيپال"}\r
+        NR{"نائورو"}\r
+        NU{"نووي"}\r
+        NZ{"نيو زيلينڊ"}\r
+        OM{"عمان"}\r
+        PA{"پناما"}\r
+        PE{"پيرو"}\r
+        PF{"فرانسيسي پولينيشيا"}\r
+        PG{"پاپوا نیو گني"}\r
+        PH{"فلپائن"}\r
+        PK{"پاڪستان"}\r
+        PL{"پولينڊ"}\r
+        PM{"سینٽ پیئر و میڪوئیلون"}\r
+        PN{"پٽڪئرن ٻيٽ"}\r
+        PR{"پيوئرٽو ريڪو"}\r
+        PS{"فلسطيني حدون"}\r
+        PT{"پرتگال"}\r
+        PW{"پلائو"}\r
+        PY{"پيراگوءِ"}\r
+        QA{"قطر"}\r
+        QO{"بيروني سامونڊي"}\r
+        RE{"ري يونين"}\r
+        RO{"رومانيا"}\r
+        RS{"سربيا"}\r
+        RU{"روس"}\r
+        RW{"روانڊا"}\r
+        SA{"سعودی عرب"}\r
+        SB{"سولومون ٻيٽَ"}\r
+        SC{"شي شلز"}\r
+        SD{"سوڊان"}\r
+        SE{"سوئيڊن"}\r
+        SG{"سينگاپور"}\r
+        SH{"سينٽ ھيلينا"}\r
+        SI{"سلوینیا"}\r
+        SJ{"سوالبارڊ ۽ جان ماین"}\r
+        SK{"سلوواڪيا"}\r
+        SL{"سيرا ليون"}\r
+        SM{"سین مرینو"}\r
+        SN{"سينيگال"}\r
+        SO{"سوماليا"}\r
+        SR{"سورينام"}\r
+        SS{"ڏکڻ سوڊان"}\r
+        ST{"سائو ٽوم ۽ پرنسپیي"}\r
+        SV{"ال سلواڊور"}\r
+        SX{"سنٽ مارٽن"}\r
+        SY{"شام"}\r
+        SZ{"سوازيلينڊ"}\r
+        TA{"ٽرسٽن دا ڪوها"}\r
+        TC{"ترڪ ۽ ڪيڪوس ٻيٽ"}\r
+        TD{"چاڊ"}\r
+        TF{"فرانسيسي ڏاکڻي علائقا"}\r
+        TG{"توگو"}\r
+        TH{"ٿائيليند"}\r
+        TJ{"تاجڪستان"}\r
+        TK{"ٽوڪلائو"}\r
+        TL{"تيمور ليستي"}\r
+        TM{"ترڪمانستان"}\r
+        TN{"تيونيسيا"}\r
+        TO{"ٽونگا"}\r
+        TR{"ترڪي"}\r
+        TT{"ٽريني ڊيڊ ۽ ٽوباگو ٻيٽ"}\r
+        TV{"توالو"}\r
+        TW{"تائیوان"}\r
+        TZ{"تنزانيا"}\r
+        UA{"يوڪرين"}\r
+        UG{"يوگنڊا"}\r
+        UM{"آمريڪي ٻاهريون ٻيٽ"}\r
+        UN{"اقوام متحده"}\r
+        US{"آمريڪا جون گڏيل رياستون"}\r
+        UY{"يوروگوءِ"}\r
+        UZ{"ازبڪستان"}\r
+        VA{"ويٽڪين سٽي"}\r
+        VC{"سینٽ ونسنت ۽ گریناڊینز"}\r
+        VE{"وينزيلا"}\r
+        VG{"برطانوي ورجن ٻيٽ"}\r
+        VI{"آمريڪي ورجن ٻيٽ"}\r
+        VN{"ويتنام"}\r
+        VU{"وينيٽيو"}\r
+        WF{"والس ۽ فتونا"}\r
+        WS{"سموئا"}\r
+        XK{"ڪوسووو"}\r
+        YE{"يمن"}\r
+        YT{"مياتي"}\r
+        ZA{"ڏکڻ آفريقا"}\r
+        ZM{"زيمبيا"}\r
+        ZW{"زمبابوي"}\r
+        ZZ{"اڻڄاتل خطو"}\r
+    }\r
+    Countries%short{\r
+        GB{"برطانيه"}\r
+        HK{"هانگ ڪانگ"}\r
+        MO{"مڪائو"}\r
+        PS{"فلسطين"}\r
+        US{"يوايس"}\r
+    }\r
+    Countries%variant{\r
+        CD{"ڪانگو"}\r
+        CG{"ڪانگو (جمهوري)"}\r
+        CI{"آئيوري ڪوسٽ"}\r
+        CZ{"چيڪ جهموريو"}\r
+        FK{"فلڪ لينڊ ٻيٽ"}\r
+        MK{"ميڪدونيا"}\r
+        TL{"اوڀر تيمور"}\r
+    }\r
+    Version{"2.1.43.94"}\r
+}\r
index a2e4f1c..4f2df06 100644 (file)
@@ -294,5 +294,5 @@ se{
         PS{"Palestina"}\r
         US{"USA"}\r
     }\r
-    Version{"2.1.38.69"}\r
+    Version{"2.1.43.94"}\r
 }\r
index 42a1c6a..87e2403 100644 (file)
@@ -26,5 +26,5 @@ se_FI{
     Countries%variant{\r
         CI{"Côte d’Ivoire"}\r
     }\r
-    Version{"2.1.38.73"}\r
+    Version{"2.1.44.88"}\r
 }\r
index 9a27dfc..dbf1b78 100644 (file)
@@ -31,6 +31,7 @@ si{
         151{"නැගෙනහිර යුරෝපය"}\r
         154{"උතුරු යුරෝපය"}\r
         155{"බටහිර යුරෝපය"}\r
+        202{"උප-සහරානු අප්‍රිකාව"}\r
         419{"ලතින් ඇමෙරිකාව"}\r
         AC{"ඇසෙන්ෂන් දිවයින"}\r
         AD{"ඇන්ඩෝරාව"}\r
@@ -43,7 +44,7 @@ si{
         AO{"ඇන්ගෝලාව"}\r
         AQ{"ඇන්ටාක්ටිකාව"}\r
         AR{"ආර්ජෙන්ටිනාව"}\r
-        AS{"ඇමරිකානු සැමෝවා"}\r
+        AS{"ඇමරිකානු සැමෝවා"}\r
         AT{"ඔස්ට්‍රියාව"}\r
         AU{"ඕස්ට්‍රේලියාව"}\r
         AW{"අරූබා"}\r
@@ -89,7 +90,7 @@ si{
         CW{"කුරකාවෝ"}\r
         CX{"ක්‍රිස්මස් දූපත"}\r
         CY{"සයිප්‍රසය"}\r
-        CZ{"චà·\99à¶\9aà·\8a à¶¢à¶±à¶»à¶¢à¶º"}\r
+        CZ{"චà·\99චà·\92යà·\8fà·\80"}\r
         DE{"ජර්මනිය"}\r
         DG{"දියාගෝ ගාර්සියා"}\r
         DJ{"ජිබුටි"}\r
@@ -306,9 +307,10 @@ si{
         CD{"කොංගෝව"}\r
         CG{"කොංගෝ (ජනරජය)"}\r
         CI{"අයිවරි කෝස්ට්"}\r
+        CZ{"චෙක් ජනරජය"}\r
         FK{"ෆෝක්ලන්ත දූපත් (අයිලස් මල්වියනාස්)"}\r
         MK{"මැසිඩෝනියාව (FYROM)"}\r
         TL{"නැගෙනහිර ටිමෝරය"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.50"}\r
 }\r
index cabebcd..c124344 100644 (file)
@@ -308,5 +308,5 @@ sk{
         FK{"Falklandy (Malvíny)"}\r
         MK{"Macedónsko (BJRM)"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.65"}\r
 }\r
index d178f7e..e9bf052 100644 (file)
@@ -312,5 +312,5 @@ sl{
         MK{"Makedonija (FYROM)"}\r
         TL{"Vzhodni Timor"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.91"}\r
 }\r
index c00f388..e19029c 100644 (file)
@@ -226,5 +226,5 @@ sn{
         ZM{"Zambia"}\r
         ZW{"Zimbabwe"}\r
     }\r
-    Version{"2.1.39.11"}\r
+    Version{"2.1.43.94"}\r
 }\r
index ee40f9f..d7b588f 100644 (file)
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 so{\r
     Countries{\r
+        001{"Dunida"}\r
+        002{"Afrika"}\r
+        003{"Waqooyi Ameerika"}\r
+        005{"Koonfur Ameerika"}\r
+        009{"Osheeniya"}\r
+        011{"Galbeeka Afrika"}\r
+        013{"Bartamaha Ameerika"}\r
+        014{"Afrikada Bari"}\r
+        015{"Waqooyiga Afrika"}\r
+        017{"Afrikada Dhexe"}\r
+        018{"Afrikada Koonfureed"}\r
+        019{"Ameerikaas"}\r
+        021{"Waqooyiga Ameerika"}\r
+        029{"Karibiyaan"}\r
+        030{"Aasiyada Bari"}\r
+        034{"Aasiyada Koonfureed"}\r
+        035{"Aasiyada Koonfur-galbeed"}\r
+        039{"Yurubta Koonfureed"}\r
+        053{"Austraalaasiya"}\r
+        054{"Melaneesiya"}\r
+        057{"Gobolka Aasiyada yar"}\r
+        061{"Booliyneesiya"}\r
+        142{"Aasiya"}\r
+        143{"Bartamaha Aasiya"}\r
+        145{"Aasiyada Galbeed"}\r
+        150{"Yurub"}\r
+        151{"Yurubta Bari"}\r
+        154{"Yurubta Waqooyi"}\r
+        155{"Yurubta Galbeed"}\r
+        202{"Afrikada ka hooseysa Saxaraha"}\r
+        419{"Laatiin Ameerika"}\r
+        AC{"Jasiiradda Asensiyoon"}\r
         AD{"Andora"}\r
         AE{"Imaaraadka Carabta ee Midoobay"}\r
         AF{"Afgaanistaan"}\r
-        AG{"Antigua iyo Barbuda"}\r
-        AI{"Anguilla"}\r
+        AG{"Antigua & Barbuuda"}\r
+        AI{"Anguula"}\r
         AL{"Albaaniya"}\r
         AM{"Armeeniya"}\r
         AO{"Angoola"}\r
-        AR{"Arjantiin"}\r
+        AQ{"Antaarktika"}\r
+        AR{"Arjentiina"}\r
         AS{"Samowa Ameerika"}\r
         AT{"Awsteriya"}\r
         AU{"Awstaraaliya"}\r
         AW{"Aruba"}\r
-        AZ{"Azerbajaan"}\r
-        BA{"Bosniya Hersigoviina"}\r
+        AX{"Jasiiradda Aland"}\r
+        AZ{"Asarbajan"}\r
+        BA{"Boosniya & Harsegofina"}\r
         BB{"Baarbadoos"}\r
-        BD{"Bangaaladheesh"}\r
+        BD{"Bangladesh"}\r
         BE{"Biljam"}\r
         BF{"Burkiina Faaso"}\r
         BG{"Bulgaariya"}\r
         BH{"Baxreyn"}\r
         BI{"Burundi"}\r
         BJ{"Biniin"}\r
-        BM{"Bermuuda"}\r
+        BL{"St. Baathelemiy"}\r
+        BM{"Barmuuda"}\r
         BN{"Buruneeya"}\r
         BO{"Boliifiya"}\r
-        BR{"Braasiil"}\r
+        BQ{"Karibiyaan Nadarlands"}\r
+        BR{"Baraasiil"}\r
         BS{"Bahaamas"}\r
-        BT{"Bhutan"}\r
+        BT{"Buutan"}\r
+        BV{"Buufet Island"}\r
         BW{"Botuswaana"}\r
         BY{"Belarus"}\r
-        BZ{"Belize"}\r
+        BZ{"Beliis"}\r
         CA{"Kanada"}\r
+        CC{"Jasiiradda Kookoos"}\r
         CD{"Jamhuuriyadda Dimuquraadiga Kongo"}\r
         CF{"Jamhuuriyadda Afrikada Dhexe"}\r
         CG{"Kongo"}\r
         CH{"Swiiserlaand"}\r
-        CI{"Ivory coast"}\r
-        CK{"Jaziiradda Cook"}\r
+        CI{"Ayfori Koost"}\r
+        CK{"Jasiiradda Kook"}\r
         CL{"Jili"}\r
         CM{"Kaameruun"}\r
         CN{"Shiinaha"}\r
         CO{"Kolombiya"}\r
+        CP{"Jasiiradda Kilibarton"}\r
         CR{"Kosta Riika"}\r
         CU{"Kuuba"}\r
-        CV{"Cape Verde Islands"}\r
+        CV{"Jasiiradda Kayb Faarde"}\r
+        CW{"Kurakaaw"}\r
+        CX{"Jasiiradda Kirismas"}\r
         CY{"Qubrus"}\r
-        CZ{"Jamhuuriyadda Jek"}\r
+        CZ{"Jekiya"}\r
         DE{"Jarmal"}\r
+        DG{"Diyeego Karsiya"}\r
         DJ{"Jabuuti"}\r
         DK{"Denmark"}\r
-        DM{"Domeenika"}\r
-        DO{"Jamhuuriyadda Domeenika"}\r
+        DM{"Dominika"}\r
+        DO{"Jamhuuriyaddda Dominika"}\r
         DZ{"Aljeeriya"}\r
+        EA{"Seyuta & Meliila"}\r
         EC{"Ikuwadoor"}\r
         EE{"Estooniya"}\r
         EG{"Masar"}\r
-        ER{"Eretereeya"}\r
+        EH{"Saxaraha Galbeed"}\r
+        ER{"Eritreeya"}\r
         ES{"Isbeyn"}\r
         ET{"Itoobiya"}\r
+        EU{"Midowga Yurub"}\r
+        EZ{"Yurusoon"}\r
         FI{"Finland"}\r
         FJ{"Fiji"}\r
         FK{"Jaziiradaha Fooklaan"}\r
-        FM{"Micronesia"}\r
+        FM{"Mikroneesiya"}\r
+        FO{"Jasiiradda Faroo"}\r
         FR{"Faransiis"}\r
         GA{"Gaaboon"}\r
-        GB{"United Kingdom"}\r
+        GB{"Boqortooyada Midowday"}\r
         GD{"Giriinaada"}\r
         GE{"Joorjiya"}\r
-        GF{"French Guiana"}\r
+        GF{"Faransiis Gini"}\r
+        GG{"Guurnsey"}\r
         GH{"Gaana"}\r
         GI{"Gibraltar"}\r
         GL{"Greenland"}\r
         GM{"Gambiya"}\r
         GN{"Gini"}\r
-        GP{"Guadeloupe"}\r
-        GQ{"Equatorial Guinea"}\r
+        GP{"Guadeluub"}\r
+        GQ{"Ekuwatooriyal Gini"}\r
         GR{"Giriig"}\r
+        GS{"Jasiiradda Joorjiyada Koonfureed & Sandwij"}\r
         GT{"Guwaatamaala"}\r
-        GU{"Guam"}\r
+        GU{"Guaam"}\r
         GW{"Gini-Bisaaw"}\r
         GY{"Guyana"}\r
+        HK{"Hong Kong"}\r
+        HM{"Jasiiradda Haad & MakDonald"}\r
         HN{"Honduras"}\r
         HR{"Korweeshiya"}\r
-        HT{"Hayti"}\r
-        HU{"Hangeri"}\r
+        HT{"Haiti"}\r
+        HU{"Hangari"}\r
+        IC{"Jasiiradda Kanari"}\r
         ID{"Indoneesiya"}\r
         IE{"Ayrlaand"}\r
         IL{"Israaʼiil"}\r
+        IM{"Jasiiradda Isle of Man"}\r
         IN{"Hindiya"}\r
-        IO{"British Indian Ocean Territory"}\r
+        IO{"Dhul xadeedka Badweynta Hindiya ee Biritishka"}\r
         IQ{"Ciraaq"}\r
         IR{"Iiraan"}\r
-        IS{"Iislaand"}\r
+        IS{"Ayslaand"}\r
         IT{"Talyaani"}\r
-        JM{"Jameyka"}\r
+        JE{"Jaarsey"}\r
+        JM{"Jamaaika"}\r
         JO{"Urdun"}\r
         JP{"Jabaan"}\r
-        KE{"Kiiniya"}\r
+        KE{"Kenya"}\r
         KG{"Kirgistaan"}\r
         KH{"Kamboodiya"}\r
         KI{"Kiribati"}\r
         KM{"Komooros"}\r
-        KN{"Saint Kitts and Nevis"}\r
+        KN{"St. Kitts & Nefis"}\r
         KP{"Kuuriyada Waqooyi"}\r
         KR{"Kuuriyada Koonfureed"}\r
         KW{"Kuwayt"}\r
@@ -113,114 +167,127 @@ so{
         KZ{"Kasaakhistaan"}\r
         LA{"Laos"}\r
         LB{"Lubnaan"}\r
-        LC{"Saint Lucia"}\r
-        LI{"Liechtenstein"}\r
+        LC{"St. Lusia"}\r
+        LI{"Liyjtensteyn"}\r
         LK{"Sirilaanka"}\r
         LR{"Laybeeriya"}\r
         LS{"Losooto"}\r
         LT{"Lituweeniya"}\r
         LU{"Luksemboorg"}\r
         LV{"Latfiya"}\r
-        LY{"Liibiya"}\r
-        MA{"Marooko"}\r
+        LY{"Liibya"}\r
+        MA{"Morooko"}\r
         MC{"Moonako"}\r
         MD{"Moldofa"}\r
+        ME{"Moontenegro"}\r
+        MF{"St. Maartin"}\r
         MG{"Madagaskar"}\r
-        MH{"Marshall Islands"}\r
-        MK{"Makadooniya"}\r
+        MH{"Jasiiradda Maarshal"}\r
+        MK{"Masedooniya"}\r
         ML{"Maali"}\r
         MM{"Miyanmar"}\r
         MN{"Mongooliya"}\r
-        MP{"Northern Mariana Islands"}\r
-        MQ{"Martinique"}\r
+        MO{"Makaaw"}\r
+        MP{"Jasiiradda Waqooyiga Mariaana"}\r
+        MQ{"Maartinik"}\r
         MR{"Muritaaniya"}\r
         MS{"Montserrat"}\r
-        MT{"Maalda"}\r
+        MT{"Maalta"}\r
         MU{"Murishiyoos"}\r
         MV{"Maaldiqeen"}\r
         MW{"Malaawi"}\r
         MX{"Meksiko"}\r
         MY{"Malaysia"}\r
-        MZ{"Musambiig"}\r
+        MZ{"Musambiik"}\r
         NA{"Namiibiya"}\r
-        NC{"New Caledonia"}\r
+        NC{"Jasiiradda Niyuu Kaledooniya"}\r
         NE{"Nayjer"}\r
-        NF{"Norfolk Island"}\r
+        NF{"Jasiiradda Noorfolk"}\r
         NG{"Nayjeeriya"}\r
         NI{"Nikaraaguwa"}\r
-        NL{"Netherlands"}\r
+        NL{"Nederlaands"}\r
         NO{"Noorweey"}\r
         NP{"Nebaal"}\r
         NR{"Nauru"}\r
         NU{"Niue"}\r
-        NZ{"Neyuusilaand"}\r
+        NZ{"Niyuusiilaand"}\r
         OM{"Cumaan"}\r
-        PA{"Panama"}\r
-        PE{"Peru"}\r
-        PF{"French Polynesia"}\r
-        PG{"Papua New Guinea"}\r
+        PA{"Baanama"}\r
+        PE{"Beeru"}\r
+        PF{"Booliyneesiya Faransiiska"}\r
+        PG{"Babua Niyuu Gini"}\r
         PH{"Filibiin"}\r
         PK{"Bakistaan"}\r
         PL{"Booland"}\r
         PM{"Saint Pierre and Miquelon"}\r
-        PN{"Pitcairn"}\r
-        PR{"Puerto Rico"}\r
+        PN{"Bitkairn"}\r
+        PR{"Bueerto Riiko"}\r
         PS{"Falastiin Daanka galbeed iyo Qasa"}\r
-        PT{"Bortuqaal"}\r
-        PW{"Palau"}\r
-        PY{"Paraguay"}\r
+        PT{"Bortugaal"}\r
+        PW{"Balaaw"}\r
+        PY{"Baraguaay"}\r
         QA{"Qadar"}\r
+        QO{"Dhulxeebeedka Osheeniya"}\r
         RE{"Réunion"}\r
         RO{"Rumaaniya"}\r
+        RS{"Seerbiya"}\r
         RU{"Ruush"}\r
         RW{"Ruwanda"}\r
         SA{"Sacuudi Carabiya"}\r
-        SB{"Solomon Islands"}\r
+        SB{"Jasiiradda Solomon"}\r
         SC{"Sishelis"}\r
         SD{"Suudaan"}\r
         SE{"Iswidhan"}\r
         SG{"Singaboor"}\r
         SH{"Saint Helena"}\r
-        SI{"Slovenia"}\r
-        SK{"Slovakia"}\r
+        SI{"islofeeniya"}\r
+        SJ{"Jasiiradda Sfaldbaad & Jaan Mayen"}\r
+        SK{"Islofaakiya"}\r
         SL{"Siraaliyoon"}\r
         SM{"San Marino"}\r
         SN{"Sinigaal"}\r
         SO{"Soomaaliya"}\r
-        SR{"Suriname"}\r
-        ST{"São Tomé and Príncipe"}\r
-        SV{"El Salvador"}\r
+        SR{"Surineym"}\r
+        SS{"Koonfur Suudaan"}\r
+        ST{"Sao Tome & Birincibal"}\r
+        SV{"El Salfadoor"}\r
+        SX{"Siint Maarteen"}\r
         SY{"Suuriya"}\r
         SZ{"Iswaasilaand"}\r
-        TC{"Turks and Caicos Islands"}\r
+        TA{"Tiristan da Kunha"}\r
+        TC{"Turks & Kaikos Island"}\r
         TD{"Jaad"}\r
+        TF{"Dhul xadeedka Koonfureed ee Faransiiska"}\r
         TG{"Toogo"}\r
         TH{"Taylaand"}\r
         TJ{"Tajikistan"}\r
-        TK{"Tokelau"}\r
-        TL{"Timorka bari"}\r
+        TK{"Tokelaaw"}\r
+        TL{"Timoor"}\r
         TM{"Turkmenistan"}\r
         TN{"Tuniisiya"}\r
         TO{"Tonga"}\r
         TR{"Turki"}\r
-        TT{"Trinidad and Tobago"}\r
-        TV{"Tuvalu"}\r
+        TT{"Tirinidaad & Tobago"}\r
+        TV{"Tufaalu"}\r
         TW{"Taywaan"}\r
         TZ{"Tansaaniya"}\r
         UA{"Ukrayn"}\r
         UG{"Ugaanda"}\r
+        UM{"Jasiiradaha ka baxsan Maraykanka"}\r
+        UN{"Qaramada Midoobay"}\r
         US{"Maraykanka"}\r
         UY{"Uruguwaay"}\r
         UZ{"Uusbakistaan"}\r
         VA{"Faatikaan"}\r
-        VC{"Saint Vincent and the Grenadines"}\r
+        VC{"St. Finsent & Girenadiins"}\r
         VE{"Fenisuweela"}\r
-        VG{"British Virgin Islands"}\r
-        VI{"U.S. Virgin Islands"}\r
+        VG{"Biritish Farjin Island"}\r
+        VI{"U.S Fargin Island"}\r
         VN{"Fiyetnaam"}\r
-        VU{"Vanuatu"}\r
-        WF{"Wallis and Futuna"}\r
-        WS{"Samoa"}\r
+        VU{"Fanuaatu"}\r
+        WF{"Walis & Futuna"}\r
+        WS{"Samoowa"}\r
+        XK{"Koosofo"}\r
         YE{"Yaman"}\r
         YT{"Mayotte"}\r
         ZA{"Koonfur Afrika"}\r
@@ -228,5 +295,19 @@ so{
         ZW{"Simbaabwe"}\r
         ZZ{"Far aan la aqoon amase aan saxnayn"}\r
     }\r
-    Version{"2.1.38.69"}\r
+    Countries%short{\r
+        GB{"GB"}\r
+        HK{"Hong Kong"}\r
+        MO{"Makaaw"}\r
+        PS{"Falastiin"}\r
+        US{"US"}\r
+    }\r
+    Countries%variant{\r
+        CD{"Jamhuuriyadda Dimuqaadiga Kongo"}\r
+        CG{"Jamhuuriyadda Kongo"}\r
+        CZ{"Jamhuuriyadda Jek"}\r
+        FK{"Jasiiradaha Fookland"}\r
+        TL{"Timoor Bari"}\r
+    }\r
+    Version{"2.1.43.94"}\r
 }\r
index 15eb1a5..148f15d 100644 (file)
@@ -19,7 +19,7 @@ sq{
         030{"Azia Lindore"}\r
         034{"Azia Jugore"}\r
         035{"Azia Juglindore"}\r
-        039{"Europa Jugore"}\r
+        039{"Evropa Jugore"}\r
         053{"Australazia"}\r
         054{"Melanezia"}\r
         057{"Rajoni Mikronezian"}\r
@@ -27,10 +27,10 @@ sq{
         142{"Azi"}\r
         143{"Azia Qendrore"}\r
         145{"Azia Perëndimore"}\r
-        150{"Europë"}\r
-        151{"Europa Lindore"}\r
-        154{"Europa Veriore"}\r
-        155{"Europa Perëndimore"}\r
+        150{"Evropë"}\r
+        151{"Evropa Lindore"}\r
+        154{"Evropa Veriore"}\r
+        155{"Evropa Perëndimore"}\r
         202{"Afrika Subsahariane"}\r
         419{"Amerika Latine"}\r
         AC{"Ishulli Asenshion"}\r
@@ -59,13 +59,13 @@ sq{
         BH{"Bahrejn"}\r
         BI{"Burundi"}\r
         BJ{"Benin"}\r
-        BL{"Shën-Bartolome"}\r
-        BM{"Bermudë"}\r
+        BL{"Sen-Bartelemi"}\r
+        BM{"Bermude"}\r
         BN{"Brunei"}\r
         BO{"Bolivi"}\r
         BQ{"Karaibet holandeze"}\r
         BR{"Brazil"}\r
-        BS{"Bahamas"}\r
+        BS{"Bahama"}\r
         BT{"Butan"}\r
         BV{"Ishulli Bove"}\r
         BW{"Botsvanë"}\r
@@ -87,7 +87,7 @@ sq{
         CR{"Kosta-Rikë"}\r
         CU{"Kubë"}\r
         CV{"Kepi i Gjelbër"}\r
-        CW{"Kuraçao"}\r
+        CW{"Kurasao"}\r
         CX{"Ishulli i Krishtlindjes"}\r
         CY{"Qipro"}\r
         CZ{"Çeki"}\r
@@ -106,8 +106,8 @@ sq{
         ER{"Eritre"}\r
         ES{"Spanjë"}\r
         ET{"Etiopi"}\r
-        EU{"Bashkimi Europian"}\r
-        EZ{"Eurozonë"}\r
+        EU{"Bashkimi Evropian"}\r
+        EZ{"Zona euro"}\r
         FI{"Finlandë"}\r
         FJ{"Fixhi"}\r
         FK{"Ishujt Falkland"}\r
@@ -116,16 +116,16 @@ sq{
         FR{"Francë"}\r
         GA{"Gabon"}\r
         GB{"Mbretëria e Bashkuar"}\r
-        GD{"Grenadë"}\r
+        GD{"Granadë"}\r
         GE{"Gjeorgji"}\r
         GF{"Guajana Franceze"}\r
         GG{"Gernsej"}\r
         GH{"Ganë"}\r
         GI{"Gjibraltar"}\r
-        GL{"Grenlandë"}\r
-        GM{"Gambia"}\r
+        GL{"Grënlandë"}\r
+        GM{"Gambi"}\r
         GN{"Guine"}\r
-        GP{"Guadalupe"}\r
+        GP{"Guadelupë"}\r
         GQ{"Guineja Ekuatoriale"}\r
         GR{"Greqi"}\r
         GS{"Xhorxha Jugore dhe Ishujt Senduiçë të Jugut"}\r
@@ -155,13 +155,13 @@ sq{
         JO{"Jordani"}\r
         JP{"Japoni"}\r
         KE{"Kenia"}\r
-        KG{"Kirgistan"}\r
+        KG{"Kirgizi"}\r
         KH{"Kamboxhia"}\r
         KI{"Kiribati"}\r
         KM{"Komore"}\r
         KN{"Shën-Kits dhe Nevis"}\r
-        KP{"Koreja e Veriut"}\r
-        KR{"Koreja e Jugut"}\r
+        KP{"Kore e Veriut"}\r
+        KR{"Kore e Jugut"}\r
         KW{"Kuvajt"}\r
         KY{"Ishujt Kajman"}\r
         KZ{"Kazakistan"}\r
@@ -180,12 +180,12 @@ sq{
         MC{"Monako"}\r
         MD{"Moldavi"}\r
         ME{"Mal i Zi"}\r
-        MF{"Shën-Martin"}\r
+        MF{"Sen-Marten"}\r
         MG{"Madagaskar"}\r
         MH{"Ishujt Marshall"}\r
         MK{"Maqedoni"}\r
         ML{"Mali"}\r
-        MM{"Mianmar (Burma)"}\r
+        MM{"Mianmar (Burmë)"}\r
         MN{"Mongoli"}\r
         MO{"RPA i Makaos"}\r
         MP{"Ishujt e Marianës Veriore"}\r
@@ -200,7 +200,7 @@ sq{
         MY{"Malajzi"}\r
         MZ{"Mozambik"}\r
         NA{"Namibi"}\r
-        NC{"Kaledonia e Re"}\r
+        NC{"Kaledoni e Re"}\r
         NE{"Niger"}\r
         NF{"Ishulli Norfolk"}\r
         NG{"Nigeri"}\r
@@ -233,17 +233,17 @@ sq{
         RS{"Serbi"}\r
         RU{"Rusi"}\r
         RW{"Ruandë"}\r
-        SA{"Arabia Saudite"}\r
+        SA{"Arabi Saudite"}\r
         SB{"Ishujt Solomon"}\r
         SC{"Sejshelle"}\r
         SD{"Sudan"}\r
         SE{"Suedi"}\r
         SG{"Singapor"}\r
-        SH{"Shën-Helenë"}\r
+        SH{"Shën-Elenë"}\r
         SI{"Slloveni"}\r
         SJ{"Svalbard e Jan-Majen"}\r
         SK{"Sllovaki"}\r
-        SL{"Siera-Leone"}\r
+        SL{"Sierra-Leone"}\r
         SM{"San-Marino"}\r
         SN{"Senegal"}\r
         SO{"Somali"}\r
@@ -253,7 +253,7 @@ sq{
         SV{"Salvador"}\r
         SX{"Sint-Marten"}\r
         SY{"Siri"}\r
-        SZ{"Svazilandë"}\r
+        SZ{"Suazilend"}\r
         TA{"Tristan-da-Kuna"}\r
         TC{"Ishujt Turks dhe Kaikos"}\r
         TD{"Çad"}\r
@@ -274,8 +274,8 @@ sq{
         UA{"Ukrainë"}\r
         UG{"Ugandë"}\r
         UM{"Ishujt Periferikë të SHBA-së"}\r
-        UN{"Kombet e Bashkuara"}\r
-        US{"Shtetet e Bashkuara të Amerikës"}\r
+        UN{"Organizata e Kombeve të Bashkuara"}\r
+        US{"SHBA"}\r
         UY{"Uruguai"}\r
         UZ{"Uzbekistan"}\r
         VA{"Vatikan"}\r
@@ -291,16 +291,16 @@ sq{
         YE{"Jemen"}\r
         YT{"Majotë"}\r
         ZA{"Afrika e Jugut"}\r
-        ZM{"Zambia"}\r
+        ZM{"Zambi"}\r
         ZW{"Zimbabve"}\r
         ZZ{"I panjohur"}\r
     }\r
     Countries%short{\r
-        GB{"Mbretëria e Bashkuar"}\r
+        GB{"MB"}\r
         HK{"Hong-Kong"}\r
         MO{"Makao"}\r
         PS{"Palestinë"}\r
-        UN{"Kombet e Bashkuara"}\r
+        UN{"OKB"}\r
         US{"SHBA"}\r
     }\r
     Countries%variant{\r
@@ -312,5 +312,5 @@ sq{
         MK{"Maqedoni (IRJM)"}\r
         TL{"Timori Lindor"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.50"}\r
 }\r
index cbc3d05..8c8ff70 100644 (file)
@@ -312,5 +312,5 @@ sr{
         MK{"Македонија (БЈРМ)"}\r
         TL{"Источни Тимор"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.94"}\r
 }\r
index ca5b962..8cd4661 100644 (file)
@@ -19,5 +19,5 @@ sr_Cyrl_BA{
     Countries%variant{\r
         MK{"БЈР Македонија"}\r
     }\r
-    Version{"2.1.38.69"}\r
+    Version{"2.1.44.88"}\r
 }\r
index 658d266..29704c7 100644 (file)
@@ -17,5 +17,5 @@ sr_Cyrl_ME{
     Countries%variant{\r
         MK{"БЈР Македонија"}\r
     }\r
-    Version{"2.1.38.69"}\r
+    Version{"2.1.44.88"}\r
 }\r
index 2b2e9ac..a9adf7b 100644 (file)
@@ -313,5 +313,5 @@ sr_Latn{
         MK{"Makedonija (BJRM)"}\r
         TL{"Istočni Timor"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.50"}\r
 }\r
index 1bcc8c6..799749f 100644 (file)
@@ -19,5 +19,5 @@ sr_Latn_BA{
     Countries%variant{\r
         MK{"BJR Makedonija"}\r
     }\r
-    Version{"2.1.38.69"}\r
+    Version{"2.1.44.88"}\r
 }\r
index 023576f..5d46a98 100644 (file)
@@ -17,5 +17,5 @@ sr_Latn_ME{
     Countries%variant{\r
         MK{"BJR Makedonija"}\r
     }\r
-    Version{"2.1.38.69"}\r
+    Version{"2.1.44.88"}\r
 }\r
index 0bc34b8..d16309f 100644 (file)
@@ -31,7 +31,7 @@ sv{
         151{"Östeuropa"}\r
         154{"Nordeuropa"}\r
         155{"Västeuropa"}\r
-        202{"202"}\r
+        202{"Subsahariska Afrika"}\r
         419{"Latinamerika"}\r
         AC{"Ascension"}\r
         AD{"Andorra"}\r
@@ -306,11 +306,9 @@ sv{
     Countries%variant{\r
         CD{"Demokratiska republiken Kongo"}\r
         CG{"Republiken Kongo"}\r
-        CI{"CI"}\r
-        CZ{"CZ"}\r
-        FK{"FK"}\r
+        CI{"Côte d’Ivoire"}\r
         MK{"f.d. jugoslaviska republiken Makedonien"}\r
-        TL{"TL"}\r
+        TL{"Timor-Leste"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.94"}\r
 }\r
index 23372f2..62229ca 100644 (file)
@@ -31,6 +31,7 @@ sw{
         151{"Ulaya ya Mashariki"}\r
         154{"Ulaya ya Kaskazini"}\r
         155{"Ulaya ya Magharibi"}\r
+        202{"Afrika Kusine mwa Jangwa la Sahara"}\r
         419{"Amerika ya Kilatini"}\r
         AC{"Kisiwa cha Ascension"}\r
         AD{"Andorra"}\r
@@ -48,7 +49,7 @@ sw{
         AU{"Australia"}\r
         AW{"Aruba"}\r
         AX{"Visiwa vya Aland"}\r
-        AZ{"Azerbaijan"}\r
+        AZ{"Azerbaijani"}\r
         BA{"Bosnia na Hezegovina"}\r
         BB{"Babadosi"}\r
         BD{"Bangladeshi"}\r
@@ -114,7 +115,7 @@ sw{
         FO{"Visiwa vya Faroe"}\r
         FR{"Ufaransa"}\r
         GA{"Gabon"}\r
-        GB{"Uingereza"}\r
+        GB{"Ufalme wa Muungano"}\r
         GD{"Grenada"}\r
         GE{"Jojia"}\r
         GF{"Guiana ya Ufaransa"}\r
@@ -127,7 +128,7 @@ sw{
         GP{"Guadeloupe"}\r
         GQ{"Guinea ya Ikweta"}\r
         GR{"Ugiriki"}\r
-        GS{"Georgia Kusini na Visiwa vya Sandwich Kusini"}\r
+        GS{"Visiwa vya Georgia Kusini na Sandwich Kusini"}\r
         GT{"Guatemala"}\r
         GU{"Guam"}\r
         GW{"Ginebisau"}\r
@@ -142,12 +143,12 @@ sw{
         ID{"Indonesia"}\r
         IE{"Ayalandi"}\r
         IL{"Israeli"}\r
-        IM{"Isle of Man"}\r
+        IM{"Kisiwa cha Man"}\r
         IN{"India"}\r
         IO{"Eneo la Uingereza katika Bahari Hindi"}\r
         IQ{"Iraki"}\r
         IR{"Iran"}\r
-        IS{"Aislandi"}\r
+        IS{"Aisilandi"}\r
         IT{"Italia"}\r
         JE{"Jersey"}\r
         JM{"Jamaika"}\r
@@ -256,7 +257,7 @@ sw{
         TA{"Tristan da Cunha"}\r
         TC{"Visiwa vya Turks na Caicos"}\r
         TD{"Chad"}\r
-        TF{"Maeneo ya Kusini ya Ufaransa"}\r
+        TF{"Himaya za Kusini za Kifaranza"}\r
         TG{"Togo"}\r
         TH{"Tailandi"}\r
         TJ{"Tajikistani"}\r
@@ -295,7 +296,7 @@ sw{
         ZZ{"Eneo lisilojulikana"}\r
     }\r
     Countries%short{\r
-        GB{"Uingereza"}\r
+        GB{"Ufalme wa Muungano"}\r
         HK{"Hong Kong"}\r
         MO{"Macau"}\r
         PS{"Palestina"}\r
@@ -311,5 +312,5 @@ sw{
         MK{"Macedonia (FYROM)"}\r
         TL{"Timor ya Mashariki"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.65"}\r
 }\r
index be654dd..136a30c 100644 (file)
@@ -32,5 +32,5 @@ sw_CD{
         TL{"Timori ya Mashariki"}\r
         VN{"Vietnamu"}\r
     }\r
-    Version{"2.1.39.11"}\r
+    Version{"2.1.43.65"}\r
 }\r
index 05fd1b6..5ebede1 100644 (file)
@@ -2,32 +2,77 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 sw_KE{\r
     Countries{\r
+        AF{"Afghanistani"}\r
+        AI{"Anguila"}\r
         AQ{"Antaktika"}\r
         AZ{"Azabajani"}\r
+        BJ{"Benini"}\r
+        BT{"Bhutani"}\r
+        BY{"Belarusi"}\r
+        CC{"Visiwa vya Kokos (Keeling)"}\r
+        CD{"Kongo - Kinshasa"}\r
         CI{"Ivorikosti"}\r
-        CX{"Kisiwa cha Christmas"}\r
         CY{"Saiprasi"}\r
+        DK{"Denmaki"}\r
+        EA{"Keuta na Melilla"}\r
+        EC{"Ekwado"}\r
         FM{"Mikronesia"}\r
+        GA{"Gaboni"}\r
+        GL{"Grinilandi"}\r
         GP{"Gwadelupe"}\r
+        GS{"Visiwa vya Jojia ya Kusini na Sandwich ya Kusini"}\r
+        GU{"Guami"}\r
+        HR{"Kroashia"}\r
+        IO{"Himaya ya Uingereza katika Bahari Hindi"}\r
         JO{"Yordani"}\r
+        KY{"Visiwa vya Kaimani"}\r
+        LA{"Laosi"}\r
         LB{"Lebanoni"}\r
-        LI{"Lishtensteni"}\r
+        LI{"Lishenteni"}\r
         LS{"Lesotho"}\r
         LU{"Lasembagi"}\r
         LV{"Lativia"}\r
+        MA{"Moroko"}\r
+        MC{"Monako"}\r
+        MK{"Masedonia"}\r
+        MM{"Myama (Burma)"}\r
+        MO{"Makau SAR China"}\r
+        MQ{"Martiniki"}\r
+        MS{"Montserati"}\r
         MV{"Maldivi"}\r
         NC{"Nyukaledonia"}\r
-        NE{"Nijer"}\r
-        NG{"Nijeria"}\r
+        NE{"Nijeri"}\r
         NO{"Norwe"}\r
         NP{"Nepali"}\r
         OM{"Omani"}\r
         PF{"Polinesia ya Ufaransa"}\r
+        PG{"Papua Guinea Mpya"}\r
+        PL{"Polandi"}\r
         PR{"Puetoriko"}\r
+        PS{"Himaya za Palestina"}\r
+        PY{"Paragwai"}\r
         QA{"Katari"}\r
+        SG{"Singapuri"}\r
+        SR{"Surinamu"}\r
         ST{"Sao Tome na Prinsipe"}\r
+        SY{"Shamu"}\r
         TD{"Chadi"}\r
+        TH{"Thailandi"}\r
+        TM{"Turukimenstani"}\r
+        TW{"Taiwani"}\r
+        UA{"Ukreni"}\r
+        UY{"Urugwai"}\r
+        VA{"Mji wa Vatikani"}\r
+        VG{"Visiwa vya Virgin vya Uingereza"}\r
+        VI{"Visiwa vya Virgin vya Marekani"}\r
         VN{"Vietnamu"}\r
+        YT{"Mayote"}\r
     }\r
-    Version{"2.1.38.39"}\r
+    Countries%short{\r
+        MO{"Makau"}\r
+    }\r
+    Countries%variant{\r
+        MK{"Masedonia (FYROM)"}\r
+    }\r
+    Version{"2.1.43.65"}\r
 }\r
index 5740104..0f52826 100644 (file)
@@ -31,14 +31,14 @@ ta{
         151{"கிழக்கு ஐரோப்பா"}\r
         154{"வடக்கு ஐரோப்பா"}\r
         155{"மேற்கு ஐரோப்பா"}\r
-        202{"à®\9aபà¯\8d-à®\9aஹாரனà¯\8d à®\86பà¯\8dரிக்கா"}\r
+        202{"தà¯\81ணà¯\88 à®\9aஹாரா à®\86பà¯\8dபிரிக்கா"}\r
         419{"லத்தீன் அமெரிக்கா"}\r
         AC{"அஷன்ஷியன் தீவு"}\r
         AD{"அன்டோரா"}\r
         AE{"ஐக்கிய அரபு எமிரேட்ஸ்"}\r
-        AF{"ஆப்கானிஸ்தான்"}\r
+        AF{"à®\86à®\83பà¯\8dà®\95ானிஸà¯\8dதானà¯\8d"}\r
         AG{"ஆண்டிகுவா மற்றும் பார்புடா"}\r
-        AI{"à®\85à®\99à¯\8dà®\95à¯\81யà¯\8dலா"}\r
+        AI{"à®\85à®\99à¯\8dà®\95ியà¯\81லா"}\r
         AL{"அல்பேனியா"}\r
         AM{"அர்மேனியா"}\r
         AO{"அங்கோலா"}\r
@@ -69,7 +69,7 @@ ta{
         BT{"பூடான்"}\r
         BV{"பொவேட் தீவுகள்"}\r
         BW{"போட்ஸ்வானா"}\r
-        BY{"பà¯\86லாரà¯\82ஸà¯\8d"}\r
+        BY{"பெலாரஸ்"}\r
         BZ{"பெலிஸ்"}\r
         CA{"கனடா"}\r
         CC{"கோகோஸ் (கீலிங்) தீவுகள்"}\r
@@ -202,14 +202,14 @@ ta{
         NA{"நமீபியா"}\r
         NC{"நியூ கேலிடோனியா"}\r
         NE{"நைஜர்"}\r
-        NF{"நார்ஃபோக் தீவுகள்"}\r
+        NF{"நார்ஃபோக் தீவு"}\r
         NG{"நைஜீரியா"}\r
         NI{"நிகரகுவா"}\r
         NL{"நெதர்லாந்து"}\r
         NO{"நார்வே"}\r
         NP{"நேபாளம்"}\r
         NR{"நௌரு"}\r
-        NU{"நியà¯\82"}\r
+        NU{"நியà¯\81வà¯\87"}\r
         NZ{"நியூசிலாந்து"}\r
         OM{"ஓமன்"}\r
         PA{"பனாமா"}\r
@@ -268,7 +268,7 @@ ta{
         TO{"டோங்கா"}\r
         TR{"துருக்கி"}\r
         TT{"டிரினிடாட் & டொபாகோ"}\r
-        TV{"தà¯\81வாலà¯\82"}\r
+        TV{"தà¯\81வாலà¯\81"}\r
         TW{"தைவான்"}\r
         TZ{"தான்சானியா"}\r
         UA{"உக்ரைன்"}\r
@@ -312,5 +312,5 @@ ta{
         MK{"மாசிடோனியா (ஃபைரோம்)"}\r
         TL{"கிழக்கு தைமூர்"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.50"}\r
 }\r
index 08504a7..ed07ccf 100644 (file)
@@ -50,7 +50,7 @@ te{
         AW{"అరుబా"}\r
         AX{"ఆలాండ్ దీవులు"}\r
         AZ{"అజర్బైజాన్"}\r
-        BA{"à°¬à±\8bà°¸à±\8dనియా à°®à°°à°¿à°¯à±\81 à°¹à±\86à°°à±\8dà°\9cà±\86à°\97à±\8aà°µà±\80నా"}\r
+        BA{"à°¬à±\8bà°¸à±\8dనియా à°®à°°à°¿à°¯à±\81 à°¹à±\86à°°à±\8dà°\9cà°¿à°\97à±\8bవినా"}\r
         BB{"బార్బడోస్"}\r
         BD{"బంగ్లాదేశ్"}\r
         BE{"బెల్జియం"}\r
@@ -59,7 +59,7 @@ te{
         BH{"బహ్రెయిన్"}\r
         BI{"బురుండి"}\r
         BJ{"బెనిన్"}\r
-        BL{"à°¸à±\86యిà°\82à°\9fà±\8d à°¬à°°à±\8dà°¤à±\87à°²à±\86à°®à±\80"}\r
+        BL{"à°¸à±\86యిà°\82à°\9fà±\8d à°¬à°°à±\8dà°¥à±\86లిమి"}\r
         BM{"బెర్ముడా"}\r
         BN{"బ్రూనే"}\r
         BO{"బొలీవియా"}\r
@@ -67,7 +67,7 @@ te{
         BR{"బ్రెజిల్"}\r
         BS{"బహామాస్"}\r
         BT{"భూటాన్"}\r
-        BV{"à°¬à±\8aà°µà±\86à°\9fà±\8d దీవి"}\r
+        BV{"à°¬à±\81à°µà±\88 దీవి"}\r
         BW{"బోట్స్వానా"}\r
         BY{"బెలారస్"}\r
         BZ{"బెలిజ్"}\r
@@ -87,7 +87,7 @@ te{
         CR{"కోస్టా రికా"}\r
         CU{"క్యూబా"}\r
         CV{"కేప్ వెర్డె"}\r
-        CW{"à°\95à±\81à°°à°¾à°\95à°µో"}\r
+        CW{"à°\95à±\8dà°¯à±\82à°°à°¸ో"}\r
         CX{"క్రిస్మస్ దీవి"}\r
         CY{"సైప్రస్"}\r
         CZ{"చెకియా"}\r
@@ -114,7 +114,7 @@ te{
         FM{"మైక్రోనేషియా"}\r
         FO{"ఫారో దీవులు"}\r
         FR{"ఫ్రాన్స్‌"}\r
-        GA{"à°\97à°¾బన్"}\r
+        GA{"à°\97à±\87బన్"}\r
         GB{"యునైటెడ్ కింగ్‌డమ్"}\r
         GD{"గ్రెనడా"}\r
         GE{"జార్జియా"}\r
@@ -128,21 +128,21 @@ te{
         GP{"గ్వాడెలోప్"}\r
         GQ{"ఈక్వటోరియల్ గినియా"}\r
         GR{"గ్రీస్"}\r
-        GS{"దక్షిణ జార్జియా & దక్షిణ శాండ్విచ్ దీవులు"}\r
+        GS{"దక్షిణ జార్జియా మరియు దక్షిణ శాండ్విచ్ దీవులు"}\r
         GT{"గ్వాటిమాలా"}\r
         GU{"గ్వామ్"}\r
         GW{"గినియా-బిస్సావ్"}\r
         GY{"గయానా"}\r
-        HK{"హాంకాంగ్ ఎస్ఏఆర్ చైనా"}\r
-        HM{"హెర్డ్ & మెక్ డొనాల్డ్ దీవులు"}\r
+        HK{"హాంకాంగ్ ఎస్ఏఆర్"}\r
+        HM{"హెర్డ్ దీవి మరియు మెక్‌డొనాల్డ్ దీవులు"}\r
         HN{"హోండురాస్"}\r
-        HR{"à°\95à±\8dà°°à±\8bయేషియా"}\r
+        HR{"à°\95à±\8dà°°à±\8aయేషియా"}\r
         HT{"హైటి"}\r
         HU{"హంగేరీ"}\r
         IC{"కేనరీ దీవులు"}\r
         ID{"ఇండోనేషియా"}\r
         IE{"ఐర్లాండ్"}\r
-        IL{"à°\87à°\9cà±\8dరాయిల్"}\r
+        IL{"à°\87à°\9cà±\8dరాయà±\86ల్"}\r
         IM{"ఐల్ ఆఫ్ మాన్"}\r
         IN{"భారతదేశం"}\r
         IO{"బ్రిటీష్ హిందూ మహాసముద్ర ప్రాంతం"}\r
@@ -173,19 +173,19 @@ te{
         LR{"లైబీరియా"}\r
         LS{"లెసోతో"}\r
         LT{"లిథువేనియా"}\r
-        LU{"లక్సంబర్గ్"}\r
+        LU{"à°²à°\95à±\8dà°¸à±\86à°\82బరà±\8dà°\97à±\8d"}\r
         LV{"లాత్వియా"}\r
         LY{"లిబియా"}\r
         MA{"మొరాకో"}\r
         MC{"మొనాకో"}\r
         MD{"మోల్డోవా"}\r
-        ME{"à°®à±\8bà°\82à°\9fà±\86à°¨à±\80గ్రో"}\r
+        ME{"మాà°\82à°\9fà±\86à°¨à±\86గ్రో"}\r
         MF{"సెయింట్ మార్టిన్"}\r
         MG{"మడగాస్కర్"}\r
         MH{"మార్షల్ దీవులు"}\r
         MK{"మేసిడోనియా"}\r
         ML{"మాలి"}\r
-        MM{"మయన్మార్ (బర్మా)"}\r
+        MM{"మయన్మార్"}\r
         MN{"మంగోలియా"}\r
         MO{"మకావ్ ఎస్ఏఆర్ చైనా"}\r
         MP{"ఉత్తర మరియానా దీవులు"}\r
@@ -195,7 +195,7 @@ te{
         MT{"మాల్టా"}\r
         MU{"మారిషస్"}\r
         MV{"మాల్దీవులు"}\r
-        MW{"మాలావి"}\r
+        MW{"మలావà±\80"}\r
         MX{"మెక్సికో"}\r
         MY{"మలేషియా"}\r
         MZ{"మొజాంబిక్"}\r
@@ -211,7 +211,7 @@ te{
         NR{"నౌరు"}\r
         NU{"నియూ"}\r
         NZ{"న్యూజిలాండ్"}\r
-        OM{"à°\92మన్"}\r
+        OM{"à°\93మన్"}\r
         PA{"పనామా"}\r
         PE{"పెరూ"}\r
         PF{"ఫ్రెంచ్ పోలినీషియా"}\r
@@ -228,8 +228,8 @@ te{
         PY{"పరాగ్వే"}\r
         QA{"ఖతార్"}\r
         QO{"ఒషీనియా బయటున్నవి"}\r
-        RE{"à°°à°¿యూనియన్"}\r
-        RO{"à°°à±\8bమానియా"}\r
+        RE{"à°°à±\80యూనియన్"}\r
+        RO{"à°°à±\8bà°®à±\87నియా"}\r
         RS{"సెర్బియా"}\r
         RU{"రష్యా"}\r
         RW{"రువాండా"}\r
@@ -241,21 +241,21 @@ te{
         SG{"సింగపూర్"}\r
         SH{"సెయింట్ హెలెనా"}\r
         SI{"స్లోవేనియా"}\r
-        SJ{"స్వాల్‌బార్డ్ & జాన్ మాయెన్"}\r
-        SK{"à°¸à±\8dà°²à±\8bవేకియా"}\r
+        SJ{"స్వాల్‌బార్డ్ మరియు జాన్ మాయెన్"}\r
+        SK{"à°¸à±\8dà°²à±\8aవేకియా"}\r
         SL{"సియెర్రా లియాన్"}\r
         SM{"శాన్ మారినో"}\r
         SN{"సెనెగల్"}\r
         SO{"సోమాలియా"}\r
         SR{"సూరినామ్"}\r
         SS{"దక్షిణ సూడాన్"}\r
-        ST{"సావోటోమ్ & ప్రిన్సిపే"}\r
+        ST{"సావో టోమ్ మరియు ప్రిన్సిపి"}\r
         SV{"ఎల్ సాల్వడోర్"}\r
         SX{"సింట్ మార్టెన్"}\r
         SY{"సిరియా"}\r
         SZ{"స్వాజిల్యాండ్"}\r
         TA{"ట్రిస్టన్ డ కన్హా"}\r
-        TC{"టర్క్స్ & కైకోస్ దీవులు"}\r
+        TC{"టర్క్స్ మరియు కైకోస్ దీవులు"}\r
         TD{"చాద్"}\r
         TF{"ఫ్రెంచ్ దక్షిణ ప్రాంతాలు"}\r
         TG{"టోగో"}\r
@@ -265,7 +265,7 @@ te{
         TL{"టిమోర్-లెస్టె"}\r
         TM{"టర్క్‌మెనిస్తాన్"}\r
         TN{"ట్యునీషియా"}\r
-        TO{"à°\9fà°¾ంగా"}\r
+        TO{"à°\9fà±\8bంగా"}\r
         TR{"టర్కీ"}\r
         TT{"ట్రినిడాడ్ మరియు టొబాగో"}\r
         TV{"టువాలు"}\r
@@ -279,13 +279,13 @@ te{
         UY{"ఉరుగ్వే"}\r
         UZ{"ఉజ్బెకిస్తాన్"}\r
         VA{"వాటికన్ నగరం"}\r
-        VC{"సెయింట్ విన్సెంట్ & గ్రెనడీన్స్"}\r
+        VC{"సెయింట్ విన్సెంట్ మరియు గ్రెనడీన్స్"}\r
         VE{"వెనిజులా"}\r
         VG{"బ్రిటిష్ వర్జిన్ దీవులు"}\r
         VI{"యు.ఎస్. వర్జిన్ దీవులు"}\r
         VN{"వియత్నాం"}\r
         VU{"వనాటు"}\r
-        WF{"వాలిసà±\8d & à°«à±\8dà°¯à±\81à°¤à±\8dà°¯ునా"}\r
+        WF{"వాలà±\8dలిసà±\8d à°®à°°à°¿à°¯à±\81 à°«à±\81à°\9fునా"}\r
         WS{"సమోవా"}\r
         XK{"కొసోవో"}\r
         YE{"యెమెన్"}\r
@@ -309,8 +309,8 @@ te{
         CI{"ఐవరీ కోస్ట్"}\r
         CZ{"చెక్ రిపబ్లిక్"}\r
         FK{"ఫాక్‌ల్యాండ్ దీవులు (ఇస్లాస్ మాల్వినాస్)"}\r
-        MK{"à°®à±\87సిడà±\8bనియా (FYROM)"}\r
+        MK{"à°ªà±\82à°°à±\8dà°µ à°°à°¿à°ªà°¬à±\8dలిà°\95à±\8d à°¯à±\81à°\97à±\8bà°¸à±\8dలావà±\8d à°®à±\87సిడà±\8bనియా"}\r
         TL{"తూర్పు టిమోర్"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.50"}\r
 }\r
index bc9b535..0df779d 100644 (file)
@@ -260,5 +260,5 @@ tg{
         CG{"Конго"}\r
         MK{"Мақдун (ҶСЮМ)"}\r
     }\r
-    Version{"2.1.38.71"}\r
+    Version{"2.1.44.88"}\r
 }\r
index bf9a4cd..7433708 100644 (file)
@@ -282,7 +282,7 @@ th{
         VC{"เซนต์วินเซนต์และเกรนาดีนส์"}\r
         VE{"เวเนซุเอลา"}\r
         VG{"หมู่เกาะบริติชเวอร์จิน"}\r
-        VI{"หมูà¹\88à¹\80à¸\81าะยูà¹\80อสà¹\80วอรà¹\8cà¸\88ิà¸\99"}\r
+        VI{"หมูà¹\88à¹\80à¸\81าะà¹\80วอรà¹\8cà¸\88ิà¸\99à¸\82อà¸\87สหรัà¸\90อà¹\80มริà¸\81า"}\r
         VN{"เวียดนาม"}\r
         VU{"วานูอาตู"}\r
         WF{"วาลลิสและฟุตูนา"}\r
@@ -296,7 +296,7 @@ th{
         ZZ{"ภูมิภาคที่ไม่รู้จัก"}\r
     }\r
     Countries%short{\r
-        GB{"อัà¸\87à¸\81ฤษ"}\r
+        GB{"สหราà¸\8aอาà¸\93าà¸\88ัà¸\81ร"}\r
         HK{"ฮ่องกง"}\r
         MO{"มาเก๊า"}\r
         PS{"ปาเลสไตน์"}\r
@@ -312,5 +312,5 @@ th{
         MK{"มาซิโดเนีย (FYROM)"}\r
         TL{"ติมอร์ตะวันออก"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.89"}\r
 }\r
index 0217b79..26531ca 100644 (file)
@@ -271,5 +271,5 @@ ti{
         CZ{"CZ"}\r
         MK{"መቄዶኒያ"}\r
     }\r
-    Version{"2.1.38.72"}\r
+    Version{"2.1.44.88"}\r
 }\r
diff --git a/source/data/region/tk.txt b/source/data/region/tk.txt
new file mode 100644 (file)
index 0000000..7b4fa6e
--- /dev/null
@@ -0,0 +1,315 @@
+// © 2016 and later: Unicode, Inc. and others.\r
+// License & terms of use: http://www.unicode.org/copyright.html#License\r
+tk{\r
+    Countries{\r
+        001{"Dünýä"}\r
+        002{"Afrika"}\r
+        003{"Demirgazyk Amerika"}\r
+        005{"Günorta Amerika"}\r
+        009{"Okeaniýa"}\r
+        011{"Günbatar Afrika"}\r
+        013{"Orta Amerika"}\r
+        014{"Gündogar Afrika"}\r
+        015{"Demirgazyk Afrika"}\r
+        017{"Orta Afrika"}\r
+        018{"Afrikanyň günorta sebitleri"}\r
+        019{"Amerika"}\r
+        021{"Amerikanyň demirgazyk ýurtlary"}\r
+        029{"Karib basseýni"}\r
+        030{"Gündogar Aziýa"}\r
+        034{"Günorta Aziýa"}\r
+        035{"Günorta-gündogar Aziýa"}\r
+        039{"Günorta Ýewropa"}\r
+        053{"Awstralaziýa"}\r
+        054{"Melaneziýa"}\r
+        057{"Mikroneziýa sebti"}\r
+        061{"Polineziýa"}\r
+        142{"Aziýa"}\r
+        143{"Merkezi Aziýa"}\r
+        145{"Günbatar Aziýa"}\r
+        150{"Ýewropa"}\r
+        151{"Gündogar Ýewropa"}\r
+        154{"Demirgazyk Ýewropa"}\r
+        155{"Günbatar Ýewropa"}\r
+        202{"Saharadan aşakdaky Afrika"}\r
+        419{"Latyn Amerikasy"}\r
+        AC{"Beýgeliş adasy"}\r
+        AD{"Andorra"}\r
+        AE{"Birleşen Arap Emirlikleri"}\r
+        AF{"Owganystan"}\r
+        AG{"Antigua we Barbuda"}\r
+        AI{"Angilýa"}\r
+        AL{"Albaniýa"}\r
+        AM{"Ermenistan"}\r
+        AO{"Angola"}\r
+        AQ{"Antarktika"}\r
+        AR{"Argentina"}\r
+        AS{"Amerikan Samoasy"}\r
+        AT{"Awstriýa"}\r
+        AU{"Awstraliýa"}\r
+        AW{"Aruba"}\r
+        AX{"Aland adalary"}\r
+        AZ{"Azerbaýjan"}\r
+        BA{"Bosniýa we Gersegowina"}\r
+        BB{"Barbados"}\r
+        BD{"Bangladeş"}\r
+        BE{"Belgiýa"}\r
+        BF{"Burkina-Faso"}\r
+        BG{"Bolgariýa"}\r
+        BH{"Bahreýn"}\r
+        BI{"Burundi"}\r
+        BJ{"Benin"}\r
+        BL{"Sen-Bartelemi"}\r
+        BM{"Bermuda"}\r
+        BN{"Bruneý"}\r
+        BO{"Boliwiýa"}\r
+        BQ{"Karib Niderlandlary"}\r
+        BR{"Braziliýa"}\r
+        BS{"Bagama adalary"}\r
+        BT{"Butan"}\r
+        BV{"Buwe adasy"}\r
+        BW{"Botswana"}\r
+        BY{"Belarus"}\r
+        BZ{"Beliz"}\r
+        CA{"Kanada"}\r
+        CC{"Kokos (Kiling) adalary"}\r
+        CD{"Kongo - Kinşasa"}\r
+        CF{"Merkezi Afrika Respublikasy"}\r
+        CG{"Kongo - Brazzawil"}\r
+        CH{"Şweýsariýa"}\r
+        CI{"Kot-d’Iwuar"}\r
+        CK{"Kuk adalary"}\r
+        CL{"Çili"}\r
+        CM{"Kamerun"}\r
+        CN{"Hytaý"}\r
+        CO{"Kolumbiýa"}\r
+        CP{"Klipperton adasy"}\r
+        CR{"Kosta-Rika"}\r
+        CU{"Kuba"}\r
+        CV{"Kabo-Werde"}\r
+        CW{"Kýurasao"}\r
+        CX{"Roždestwo adasy"}\r
+        CY{"Kipr"}\r
+        CZ{"Çehiýa"}\r
+        DE{"Germaniýa"}\r
+        DG{"Diýego-Garsiýa"}\r
+        DJ{"Jibuti"}\r
+        DK{"Daniýa"}\r
+        DM{"Dominika"}\r
+        DO{"Dominikan Respublikasy"}\r
+        DZ{"Alžir"}\r
+        EA{"Seuta we Melilýa"}\r
+        EC{"Ekwador"}\r
+        EE{"Estoniýa"}\r
+        EG{"Müsür"}\r
+        EH{"Günbatar Sahara"}\r
+        ER{"Eritreýa"}\r
+        ES{"Ispaniýa"}\r
+        ET{"Efiopiýa"}\r
+        EU{"Ýewropa Bileleşigi"}\r
+        EZ{"Ýewro sebiti"}\r
+        FI{"Finlýandiýa"}\r
+        FJ{"Fiji"}\r
+        FK{"Folklend adalary"}\r
+        FM{"Mikroneziýa"}\r
+        FO{"Farer adalary"}\r
+        FR{"Fransiýa"}\r
+        GA{"Gabon"}\r
+        GB{"Birleşen Patyşalyk"}\r
+        GD{"Grenada"}\r
+        GE{"Gruziýa"}\r
+        GF{"Fransuz Gwianasy"}\r
+        GG{"Gernsi"}\r
+        GH{"Gana"}\r
+        GI{"Gibraltar"}\r
+        GL{"Grenlandiýa"}\r
+        GM{"Gambiýa"}\r
+        GN{"Gwineýa"}\r
+        GP{"Gwadelupa"}\r
+        GQ{"Ekwatorial Gwineýa"}\r
+        GR{"Gresiýa"}\r
+        GS{"Günorta Georgiýa we Günorta Sendwiç adasy"}\r
+        GT{"Gwatemala"}\r
+        GU{"Guam"}\r
+        GW{"Gwineýa-Bisau"}\r
+        GY{"Gaýana"}\r
+        HK{"Gonkong AAS Hytaý"}\r
+        HM{"Herd we Makdonald adalary"}\r
+        HN{"Gonduras"}\r
+        HR{"Horwatiýa"}\r
+        HT{"Gaiti"}\r
+        HU{"Wengriýa"}\r
+        IC{"Kanar adalary"}\r
+        ID{"Indoneziýa"}\r
+        IE{"Irlandiýa"}\r
+        IL{"Ysraýyl"}\r
+        IM{"Men adasy"}\r
+        IN{"Hindistan"}\r
+        IO{"Britaniýanyň Hindi okeanyndaky territoriýalary"}\r
+        IQ{"Yrak"}\r
+        IR{"Eýran"}\r
+        IS{"Islandiýa"}\r
+        IT{"Italiýa"}\r
+        JE{"Jersi"}\r
+        JM{"Ýamaýka"}\r
+        JO{"Iordaniýa"}\r
+        JP{"Ýaponiýa"}\r
+        KE{"Keniýa"}\r
+        KG{"Gyrgyzystan"}\r
+        KH{"Kamboja"}\r
+        KI{"Kiribati"}\r
+        KM{"Komor adalary"}\r
+        KN{"Sent-Kits we Newis"}\r
+        KP{"Demirgazyk Koreýa"}\r
+        KR{"Günorta Koreýa"}\r
+        KW{"Kuweýt"}\r
+        KY{"Kaýman adalary"}\r
+        KZ{"Gazagystan"}\r
+        LA{"Laos"}\r
+        LB{"Liwan"}\r
+        LC{"Sent-Lýusiýa"}\r
+        LI{"Lihtenşteýn"}\r
+        LK{"Şri-Lanka"}\r
+        LR{"Liberiýa"}\r
+        LS{"Lesoto"}\r
+        LT{"Litwa"}\r
+        LU{"Lýuksemburg"}\r
+        LV{"Latwiýa"}\r
+        LY{"Liwiýa"}\r
+        MA{"Marokko"}\r
+        MC{"Monako"}\r
+        MD{"Moldowa"}\r
+        ME{"Montenegro"}\r
+        MF{"Sen-Marten"}\r
+        MG{"Madagaskar"}\r
+        MH{"Marşall adalary"}\r
+        MK{"Makedoniýa"}\r
+        ML{"Mali"}\r
+        MM{"Mýanma (Burma)"}\r
+        MN{"Mongoliýa"}\r
+        MO{"Makau AAS Hytaý"}\r
+        MP{"Demirgazyk Mariana adalary"}\r
+        MQ{"Martinika"}\r
+        MR{"Mawritaniýa"}\r
+        MS{"Monserrat"}\r
+        MT{"Malta"}\r
+        MU{"Mawrikiý"}\r
+        MV{"Maldiwler"}\r
+        MW{"Malawi"}\r
+        MX{"Meksika"}\r
+        MY{"Malaýziýa"}\r
+        MZ{"Mozambik"}\r
+        NA{"Namibiýa"}\r
+        NC{"Täze Kaledoniýa"}\r
+        NE{"Niger"}\r
+        NF{"Norfolk adasy"}\r
+        NG{"Nigeriýa"}\r
+        NI{"Nikaragua"}\r
+        NL{"Niderlandlar"}\r
+        NO{"Norwegiýa"}\r
+        NP{"Nepal"}\r
+        NR{"Nauru"}\r
+        NU{"Niue"}\r
+        NZ{"Täze Zelandiýa"}\r
+        OM{"Oman"}\r
+        PA{"Panama"}\r
+        PE{"Peru"}\r
+        PF{"Fransuz Polineziýasy"}\r
+        PG{"Papua - Täze Gwineýa"}\r
+        PH{"Filippinler"}\r
+        PK{"Pakistan"}\r
+        PL{"Polşa"}\r
+        PM{"Sen-Pýer we Mikelon"}\r
+        PN{"Pitkern adalary"}\r
+        PR{"Puerto-Riko"}\r
+        PS{"Palestina territoriýasy"}\r
+        PT{"Portugaliýa"}\r
+        PW{"Palau"}\r
+        PY{"Paragwaý"}\r
+        QA{"Katar"}\r
+        QO{"Daşky Okeaniýa"}\r
+        RE{"Reýunýon"}\r
+        RO{"Rumyniýa"}\r
+        RS{"Serbiýa"}\r
+        RU{"Russiýa"}\r
+        RW{"Ruanda"}\r
+        SA{"Saud Arabystany"}\r
+        SB{"Solomon adalary"}\r
+        SC{"Seýşel adalary"}\r
+        SD{"Sudan"}\r
+        SE{"Şwesiýa"}\r
+        SG{"Singapur"}\r
+        SH{"Keramatly Ýelena adasy"}\r
+        SI{"Sloweniýa"}\r
+        SJ{"Şpisbergen we Ýan-Maýen"}\r
+        SK{"Slowakiýa"}\r
+        SL{"Sýerra-Leone"}\r
+        SM{"San-Marino"}\r
+        SN{"Senegal"}\r
+        SO{"Somali"}\r
+        SR{"Surinam"}\r
+        SS{"Günorta Sudan"}\r
+        ST{"San-Tome we Prinsipi"}\r
+        SV{"Salwador"}\r
+        SX{"Sint-Marten"}\r
+        SY{"Siriýa"}\r
+        SZ{"Swazilend"}\r
+        TA{"Tristan-da-Kunýa"}\r
+        TC{"Terks we Kaýkos adalary"}\r
+        TD{"Çad"}\r
+        TF{"Fransuz günorta territoriýalary"}\r
+        TG{"Togo"}\r
+        TH{"Taýland"}\r
+        TJ{"Täjigistan"}\r
+        TK{"Tokelau"}\r
+        TL{"Timor-Leste"}\r
+        TM{"Türkmenistan"}\r
+        TN{"Tunis"}\r
+        TO{"Tonga"}\r
+        TR{"Türkiýe"}\r
+        TT{"Trinidad we Tobago"}\r
+        TV{"Tuwalu"}\r
+        TW{"Taýwan"}\r
+        TZ{"Tanzaniýa"}\r
+        UA{"Ukraina"}\r
+        UG{"Uganda"}\r
+        UM{"ABŞ-nyň daşarky adalary"}\r
+        UN{"Birleşen Milletler Guramasy"}\r
+        US{"Amerikanyň Birleşen Ştatlary"}\r
+        UY{"Urugwaý"}\r
+        UZ{"Özbegistan"}\r
+        VA{"Watikan"}\r
+        VC{"Sent-Winsent we Grenadinler"}\r
+        VE{"Wenesuela"}\r
+        VG{"Britan Wirgin adalary"}\r
+        VI{"ABŞ-nyň Wirgin adalary"}\r
+        VN{"Wýetnam"}\r
+        VU{"Wanuatu"}\r
+        WF{"Uollis we Futuna"}\r
+        WS{"Samoa"}\r
+        XK{"Kosowo"}\r
+        YE{"Ýemen"}\r
+        YT{"Maýotta"}\r
+        ZA{"Günorta Afrika"}\r
+        ZM{"Zambiýa"}\r
+        ZW{"Zimbabwe"}\r
+        ZZ{"Näbelli sebit"}\r
+    }\r
+    Countries%short{\r
+        GB{"Birleşen Patyşalyk"}\r
+        HK{"Gonkong"}\r
+        MO{"Makau"}\r
+        PS{"Palestina"}\r
+        US{"ABŞ"}\r
+    }\r
+    Countries%variant{\r
+        CD{"Kongo (KDR)"}\r
+        CG{"Kongo (Respublika)"}\r
+        CI{"Şirmaýy kenar"}\r
+        CZ{"Çeh Respublikasy"}\r
+        FK{"Folklend (Malwina) adalary"}\r
+        MK{"Makedoniýa (ÖÝR)"}\r
+        TL{"Gündogar Timor"}\r
+    }\r
+    Version{"2.1.43.65"}\r
+}\r
index c64c34e..9cea187 100644 (file)
@@ -184,7 +184,7 @@ to{
         MH{"ʻOtumotu Māsolo"}\r
         MK{"Masetōnia"}\r
         ML{"Māli"}\r
-        MM{"Pema"}\r
+        MM{"Mianimā (Pema)"}\r
         MN{"Mongokōlia"}\r
         MO{"Makau SAR Siaina"}\r
         MP{"ʻOtumotu Maliana tokelau"}\r
@@ -307,5 +307,5 @@ to{
         CZ{"Lepupelika Seki"}\r
         MK{"Masetōnia (FYROM)"}\r
     }\r
-    Version{"2.1.38.39"}\r
+    Version{"2.1.44.88"}\r
 }\r
index 5225da0..f50459e 100644 (file)
@@ -98,7 +98,7 @@ tr{
         DM{"Dominika"}\r
         DO{"Dominik Cumhuriyeti"}\r
         DZ{"Cezayir"}\r
-        EA{"Septe ve Melilla"}\r
+        EA{"Ceuta ve Melilla"}\r
         EC{"Ekvador"}\r
         EE{"Estonya"}\r
         EG{"Mısır"}\r
@@ -311,5 +311,5 @@ tr{
         MK{"Makedonya (EYMC)"}\r
         TL{"Doğu Timor"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.91"}\r
 }\r
index 839c1db..b34a79e 100644 (file)
@@ -252,5 +252,5 @@ tt{
         CD{"Конго (КДР)"}\r
         MK{"Македония (Македония Элекке Югославия Республикасы)"}\r
     }\r
-    Version{"2.1.38.72"}\r
+    Version{"2.1.44.88"}\r
 }\r
index 0ba2409..9d101e3 100644 (file)
@@ -306,5 +306,5 @@ ug{
         FK{"فالكلاند ئاراللىرى (ئىسلاس مالۋىناس)"}\r
         MK{"ماكېدونىيە (سابىق يۇگوسلاۋىيە ماكېدونىيە جۇمھۇرىيىتى)"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.88"}\r
 }\r
index 5bb68ed..649238b 100644 (file)
@@ -12,7 +12,7 @@ uk{
         014{"Східна Африка"}\r
         015{"Північна Африка"}\r
         017{"Центральна Африка"}\r
-        018{"Ð\9fÑ\96вденна Ð\90Ñ\84Ñ\80ика"}\r
+        018{"Ð\9fÑ\96вденний Ñ\80егÑ\96он Ð\90Ñ\84Ñ\80ики"}\r
         019{"Америка"}\r
         021{"Північна Америка (регіон)"}\r
         029{"Карибський басейн"}\r
@@ -48,7 +48,7 @@ uk{
         AT{"Австрія"}\r
         AU{"Австралія"}\r
         AW{"Аруба"}\r
-        AX{"Ð\90ландÑ\81Ñ\8cкÑ\96 Ð¾строви"}\r
+        AX{"Ð\90ландÑ\81Ñ\8cкÑ\96 Ð\9eстрови"}\r
         AZ{"Азербайджан"}\r
         BA{"Боснія і Герцеґовина"}\r
         BB{"Барбадос"}\r
@@ -60,7 +60,7 @@ uk{
         BI{"Бурунді"}\r
         BJ{"Бенін"}\r
         BL{"Сен-Бартельмі"}\r
-        BM{"Ð\91еÑ\80мÑ\83дÑ\81Ñ\8cкÑ\96 Ð¾строви"}\r
+        BM{"Ð\91еÑ\80мÑ\83дÑ\81Ñ\8cкÑ\96 Ð\9eстрови"}\r
         BN{"Бруней"}\r
         BO{"Болівія"}\r
         BQ{"Нідерландські Карибські острови"}\r
@@ -72,12 +72,12 @@ uk{
         BY{"Білорусь"}\r
         BZ{"Беліз"}\r
         CA{"Канада"}\r
-        CC{"Кокосові (Кілінгові) острови"}\r
+        CC{"Кокосові (Кілінґ) Острови"}\r
         CD{"Конго – Кіншаса"}\r
         CF{"Центральноафриканська Республіка"}\r
         CG{"Конго – Браззавіль"}\r
         CH{"Швейцарія"}\r
-        CI{"Кот-дІвуар"}\r
+        CI{"Кот-дʼІвуар"}\r
         CK{"Острови Кука"}\r
         CL{"Чілі"}\r
         CM{"Камерун"}\r
@@ -110,7 +110,7 @@ uk{
         EZ{"Єврозона"}\r
         FI{"Фінляндія"}\r
         FJ{"Фіджі"}\r
-        FK{"ФолклендÑ\81Ñ\8cкÑ\96 Ð¾строви"}\r
+        FK{"ФолклендÑ\81Ñ\8cкÑ\96 Ð\9eстрови"}\r
         FM{"Мікронезія"}\r
         FO{"Фарерські Острови"}\r
         FR{"Франція"}\r
@@ -128,18 +128,18 @@ uk{
         GP{"Ґваделупа"}\r
         GQ{"Екваторіальна Гвінея"}\r
         GR{"Греція"}\r
-        GS{"Ð\9fÑ\96вденна Ð\94жоÑ\80джÑ\96Ñ\8f Ñ\82а Ð\9fÑ\96вденнÑ\96 Ð¡Ð°Ð½Ð´Ð²Ñ\96Ñ\87евÑ\96 Ð¾строви"}\r
+        GS{"Ð\9fÑ\96вденна Ð\94жоÑ\80джÑ\96Ñ\8f Ñ\82а Ð\9fÑ\96вденнÑ\96 Ð¡Ð°Ð½Ð´Ð²Ñ\96Ñ\87евÑ\96 Ð\9eстрови"}\r
         GT{"Ґватемала"}\r
         GU{"Ґуам"}\r
         GW{"Гвінея-Бісау"}\r
         GY{"Ґайана"}\r
         HK{"Гонконг, О.А.Р. Китаю"}\r
-        HM{"оÑ\81Ñ\82Ñ\80Ñ\96в Ð\93еÑ\80д Ñ\96 Ð¾Ñ\81Ñ\82Ñ\80ови Макдоналд"}\r
+        HM{"Ð\9eÑ\81Ñ\82Ñ\80ови Ð\93еÑ\80д Ñ\96 Макдоналд"}\r
         HN{"Гондурас"}\r
         HR{"Хорватія"}\r
         HT{"Гаїті"}\r
         HU{"Угорщина"}\r
-        IC{"Ð\9aанаÑ\80Ñ\81Ñ\8cкÑ\96 Ð¾строви"}\r
+        IC{"Ð\9aанаÑ\80Ñ\81Ñ\8cкÑ\96 Ð\9eстрови"}\r
         ID{"Індонезія"}\r
         IE{"Ірландія"}\r
         IL{"Ізраїль"}\r
@@ -158,12 +158,12 @@ uk{
         KG{"Киргизстан"}\r
         KH{"Камбоджа"}\r
         KI{"Кірібаті"}\r
-        KM{"Коморські острови"}\r
+        KM{"Комори"}\r
         KN{"Сент-Кітс і Невіс"}\r
         KP{"Північна Корея"}\r
         KR{"Південна Корея"}\r
         KW{"Кувейт"}\r
-        KY{"Ð\9aаймановÑ\96 Ð¾строви"}\r
+        KY{"Ð\9aаймановÑ\96 Ð\9eстрови"}\r
         KZ{"Казахстан"}\r
         LA{"Лаос"}\r
         LB{"Ліван"}\r
@@ -241,7 +241,7 @@ uk{
         SG{"Сінгапур"}\r
         SH{"Острів Святої Єлени"}\r
         SI{"Словенія"}\r
-        SJ{"Шпіцберґен і Ян-Майен"}\r
+        SJ{"Шпіцберген та Ян-Маєн"}\r
         SK{"Словаччина"}\r
         SL{"Сьєрра-Леоне"}\r
         SM{"Сан-Маріно"}\r
@@ -308,10 +308,10 @@ uk{
         CG{"Конго (Республіка)"}\r
         CI{"Берег Слонової Кістки"}\r
         CZ{"Чеська Республіка"}\r
-        FK{"ФолклендÑ\81Ñ\8cкÑ\96 (Ð\9cалÑ\8cвÑ\96нÑ\81Ñ\8cкÑ\96) Ð¾строви"}\r
+        FK{"ФолклендÑ\81Ñ\8cкÑ\96 (Ð\9cалÑ\8cвÑ\96нÑ\81Ñ\8cкÑ\96) Ð\9eстрови"}\r
         FM{"Федеративні Штати Мікронезії"}\r
         MK{"Македонія (КЮРМ)"}\r
         TL{"Східний Тимор"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.65"}\r
 }\r
index 9476535..b2ac437 100644 (file)
@@ -31,7 +31,7 @@ ur{
         151{"مشرقی یورپ"}\r
         154{"شمالی یورپ"}\r
         155{"مغربی یورپ"}\r
-        202{"سÙ\8eب صحارن افریقہ"}\r
+        202{"Ø°Û\8cÙ\84Û\8c صحارن افریقہ"}\r
         419{"لاطینی امریکہ"}\r
         AC{"اسینشن آئلینڈ"}\r
         AD{"انڈورا"}\r
@@ -312,5 +312,5 @@ ur{
         MK{"مقدونیہ (FYROM)"}\r
         TL{"مشرقی تیمور"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.3"}\r
 }\r
index ce847b6..ee18217 100644 (file)
@@ -29,5 +29,5 @@ ur_IN{
     Countries%variant{\r
         FK{"جزائر فاکلینڈ (اسلاس مالویناس)"}\r
     }\r
-    Version{"2.1.38.39"}\r
+    Version{"2.1.43.65"}\r
 }\r
index 5bbed28..1bdb9c6 100644 (file)
@@ -312,5 +312,5 @@ uz{
         MK{"Makedoniya (SYRM)"}\r
         TL{"Sharqiy Timor"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.88"}\r
 }\r
index da858eb..946bb57 100644 (file)
@@ -309,5 +309,5 @@ uz_Cyrl{
         MK{"Македония (МСЮР)"}\r
         TL{"Шарқий Тимор"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.2"}\r
 }\r
index ff9caaf..6bbffe3 100644 (file)
@@ -145,7 +145,7 @@ vi{
         IL{"Israel"}\r
         IM{"Đảo Man"}\r
         IN{"Ấn Độ"}\r
-        IO{"Lãnh thá»\95 áº¤n Ä\91á»\99 dương thuộc Anh"}\r
+        IO{"Lãnh thá»\95 áº¤n Ä\90á»\99 Dương thuộc Anh"}\r
         IQ{"Iraq"}\r
         IR{"Iran"}\r
         IS{"Iceland"}\r
@@ -312,5 +312,5 @@ vi{
         MK{"Macedonia (FYROM)"}\r
         TL{"Đông Timor"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.65"}\r
 }\r
index ccaa1f4..f8578c9 100644 (file)
@@ -255,5 +255,5 @@ wo{
         CG{"Réewum Kongo"}\r
         MK{"Maseduwaan (Réewum yugoslawi gu yàgg ga)"}\r
     }\r
-    Version{"2.1.38.71"}\r
+    Version{"2.1.43.94"}\r
 }\r
similarity index 52%
rename from source/data/curr/ff_GN.txt
rename to source/data/region/xh.txt
index 52bc068..c6aff09 100644 (file)
@@ -1,11 +1,8 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
-ff_GN{\r
-    Currencies{\r
-        GNF{\r
-            "FG",\r
-            "GNF",\r
-        }\r
+xh{\r
+    Countries{\r
+        ZA{"eMzantsi Afrika"}\r
     }\r
-    Version{"2.1.38.69"}\r
+    Version{"2.1.44.88"}\r
 }\r
index 69c0462..65d0eab 100644 (file)
@@ -227,5 +227,5 @@ yo{
         ZM{"Orílẹ́ède ṣamibia"}\r
         ZW{"Orílẹ́ède ṣimibabe"}\r
     }\r
-    Version{"2.1.39.11"}\r
+    Version{"2.1.44.88"}\r
 }\r
index 927492b..1fe0834 100644 (file)
@@ -226,5 +226,5 @@ yo_BJ{
         ZM{"Orílɛ́ède shamibia"}\r
         ZW{"Orílɛ́ède shimibabe"}\r
     }\r
-    Version{"2.1.39.11"}\r
+    Version{"2.1.44.53"}\r
 }\r
index fff0f8f..5f7786b 100644 (file)
@@ -31,6 +31,7 @@ yue{
         151{"東歐"}\r
         154{"北歐"}\r
         155{"西歐"}\r
+        202{"撒哈拉以南非洲"}\r
         419{"拉丁美洲"}\r
         AC{"阿森松島"}\r
         AD{"安道爾"}\r
@@ -308,5 +309,5 @@ yue{
         FK{"福克蘭群島 (馬爾維納斯群島)"}\r
         MK{"前南斯拉夫馬其頓共和國"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.91"}\r
 }\r
index 286a6b4..8dff03c 100644 (file)
@@ -32,6 +32,7 @@ yue_Hans{
         151{"东欧"}\r
         154{"北欧"}\r
         155{"西欧"}\r
+        202{"撒哈拉以南非洲"}\r
         419{"拉丁美洲"}\r
         AC{"阿森松岛"}\r
         AD{"安道尔"}\r
@@ -309,5 +310,5 @@ yue_Hans{
         FK{"福克兰群岛 (马尔维纳斯群岛)"}\r
         MK{"前南斯拉夫马其顿共和国"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.91"}\r
 }\r
index 35cdbc4..803d537 100644 (file)
@@ -230,5 +230,5 @@ zgh{
         ZM{"ⵣⴰⵎⴱⵢⴰ"}\r
         ZW{"ⵣⵉⵎⴱⴰⴱⵡⵉ"}\r
     }\r
-    Version{"2.1.39.11"}\r
+    Version{"2.1.43.94"}\r
 }\r
index 8c2bdbc..c108738 100644 (file)
@@ -311,5 +311,5 @@ zh{
         FK{"福克兰群岛(马尔维纳斯群岛)"}\r
         MK{"马其顿(前南斯拉夫马其顿共和国)"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.76"}\r
 }\r
index 2116e60..6966280 100644 (file)
@@ -311,5 +311,5 @@ zh_Hant{
         FK{"福克蘭群島(馬爾維納斯群島)"}\r
         MK{"前南斯拉夫馬其頓共和國"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.91"}\r
 }\r
index b406336..b0e15a1 100644 (file)
@@ -9,7 +9,7 @@ zh_Hant_HK{
         AE{"阿拉伯聯合酋長國"}\r
         AG{"安提瓜和巴布達"}\r
         AW{"阿魯巴"}\r
-        AZ{"塞拜疆"}\r
+        AZ{"塞拜疆"}\r
         BA{"波斯尼亞和黑塞哥維那"}\r
         BB{"巴巴多斯"}\r
         BF{"布基納法索"}\r
@@ -19,13 +19,14 @@ zh_Hant_HK{
         BV{"鮑威特島"}\r
         BW{"博茨瓦納"}\r
         BZ{"伯利茲"}\r
-        CC{"可可斯群島"}\r
+        CC{"科科斯 (基林) 群島"}\r
         CI{"科特迪瓦"}\r
         CP{"克里珀頓島"}\r
         CR{"哥斯達黎加"}\r
         CV{"佛得角"}\r
         CY{"塞浦路斯"}\r
         DJ{"吉布提"}\r
+        DO{"多米尼加共和國"}\r
         EC{"厄瓜多爾"}\r
         ER{"厄立特里亞"}\r
         ET{"埃塞俄比亞"}\r
@@ -42,14 +43,13 @@ zh_Hant_HK{
         HR{"克羅地亞"}\r
         IM{"馬恩島"}\r
         IT{"意大利"}\r
-        KE{"肯"}\r
+        KE{"肯尼亞"}\r
         KM{"科摩羅"}\r
         KN{"聖基茨和尼維斯"}\r
         LA{"老撾"}\r
         LC{"聖盧西亞"}\r
         LI{"列支敦士登"}\r
         LR{"利比里亞"}\r
-        LV{"拉脱維亞"}\r
         ME{"黑山"}\r
         ML{"馬里"}\r
         MR{"毛里塔尼亞"}\r
@@ -98,5 +98,5 @@ zh_Hant_HK{
     Countries%variant{\r
         CI{"象牙海岸"}\r
     }\r
-    Version{"2.1.39.11"}\r
+    Version{"2.1.43.65"}\r
 }\r
index 43c2f1f..953afbf 100644 (file)
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 zh_Hant_MO{\r
     %%Parent{"zh_Hant_HK"}\r
-    Version{"2.1.38.39"}\r
+    Version{"2.1.43.65"}\r
 }\r
index ebd28a1..cb01689 100644 (file)
@@ -312,5 +312,5 @@ zu{
         MK{"i-Macedonia (FYROM)"}\r
         TL{"i-East Timor"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.65"}\r
 }\r
index a60a16d..1318710 100644 (file)
@@ -2589,7 +2589,9 @@ $SCDigit { 出 } 戏 → 齣;
 睑↔瞼;\r
 眬↔矓;\r
 瞩↔矚;\r
+真←眞;\r
 矫↔矯;\r
+研←硏;\r
 硁↔硜;\r
 硖↔硤;\r
 砗↔硨;\r
index 68869b9..517797b 100644 (file)
 $nondigits = [^\u1040-\u1049];\r
 $consonant = [\u1000-\u1021];\r
 $vowelsign = [\u102B-\u1030\u1032];  # Unicode vowel signs except E (1031)\r
+$vowelsAndConsonants = [\u1000-\u102a];\r
 $umedial = [\u103B-\u103E];    # Medial codepoints in Unicode\r
-$vowelmedial = [\u102B-\u1030\u1032\u103B-\u103F];  # Union of vowel signs and medials\r
+$vowelmedial = [\u102B-\u1030\u1032\1u36\u1037\u103A-\u103F];  # Union of vowel signs and medials\r
 $ukinzi = \u1004\u103A\u1039;  # Codepoints representing kinzi in Unicode\r
-# ZAWGYI MYANMAR CONSONANT SIGN MEDIAL RA\r
-# This character has multiple representations in the Zawgyi font.\r
+# Zawgyi medial ra has multiple representations\r
 $zmedialra = [\u103B\u107E-\u1084];\r
+$wspace = [\u0020\u00a0\u1680\u2000-\u200d\u2060\u202f\u205f\u3000\ufeff];\r
 ####\r
 #### STAGE 1: CODEPOINT MAPPING FROM ZAWGYI TO UNICODE\r
 ####\r
@@ -33,14 +34,13 @@ $zmedialra = [\u103B\u107E-\u1084];
 ($consonant) \u103A \u1064 → $ukinzi $1 \u103B;\r
 ($consonant) \u1064 → $ukinzi $1;\r
 \u1064 → $ukinzi;\r
-# Special cases moving base character to right before\r
-($consonant) \u108b → $ukinzi $1 \u102D;\r
+# Special cases moving base character to right before vowel signs\r
+($consonant) \u108B → $ukinzi $1 \u102D;\r
 ($consonant) \u108C → $ukinzi $1 \u102E;\r
 ($consonant) \u108D → $ukinzi $1 \u1036;\r
 # Special cases moving Kinzi block to left\r
 ($consonant) \u103A \u1033 \u108B → $ukinzi $1 \u103B \u102D \u102F;\r
 ($consonant) \u103A \u108b → $ukinzi $1 \u103B \u102D ;\r
-($consonant) \u103A \u108C \u1033 → $ukinzi $1 \u103B \u102E \u102F;\r
 ($consonant) \u103A \u108C → $ukinzi $1 \u103B \u102E ;\r
 ($consonant) \u103A \u108D → $ukinzi $1 \u103B \u1036 ;\r
 ($consonant) \u103A \u108e → $1 \u103B \u102D \u1036 ;\r
@@ -48,37 +48,31 @@ $zmedialra = [\u103B\u107E-\u1084];
 \u108C → $ukinzi \u102E ;\r
 \u108D → $ukinzi \u1036 ;\r
 # Consonants (only the ones that have to change)\r
-\u106A ($vowelsign) \u1038 → \u1025 $1 \u1038 ;  # U sound\r
 \u106A → \u1009 ;  # NYA\r
 \u106B → \u100A ;\r
 \u108F → \u1014 ;\r
 \u1090 → \u101B ;\r
 \u1086 → \u103F ;\r
 # yapin\r
-\u103A → \u103B ;\r
-\u107D → \u103B ;\r
+[\u103A|\u107d] → \u103B ;\r
+# yayit\r
+($zmedialra)+ → \u103C ;\r
 # wasway\r
-\u103C \u108A → \u103D \u103E;  # To avoid duplicate medials\r
+\u103C* \u108A → \u103D \u103E;  # To avoid duplicate medials\r
 \u103C → \u103D ;\r
-\u108A → \u103D \u103E ;\r
 # hatoh\r
-\u103D → \u103E ;\r
-\u1087 → \u103E ;\r
+[\u103D|\u1087] → \u103E ;\r
 \u1088 → \u103E \u102F ;\r
 \u1089 → \u103E \u1030 ;\r
-# asat\r
-\u1039 → \u103A ;\r
 # Vowels\r
 \u1033 → \u102F ;\r
 \u1034 → \u1030 ;\r
-\u105A → \u102B \u103A ;\r
-\u108E → \u102D \u1036 ;\r
-# lDot\r
-# Special cases to move dot to right of base consonant\r
-\u1031 \u1094 ($consonant) \u103D → $1 \u103E \u1031 \u1037 ;\r
-\u1094 → \u1037 ;\r
-\u1095 → \u1037 ;\r
-# Special cases for 1025 vs 1009\r
+# asat\r
+\u1039 → \u103A ;\r
+# lower dot\r
+[\u1094\u1095] → \u1037 ;\r
+# Special cases for 1025 vs 1009;\r
+\u1025 \u1039 → \u1009 \u103a;\r
 \u1025 \u1061 → \u1009 \u1039 \u1001;\r
 \u1025 \u1062 → \u1009 \u1039 \u1002;\r
 \u1025 \u1065 → \u1009 \u1039 \u1005;\r
@@ -87,35 +81,32 @@ $zmedialra = [\u103B\u107E-\u1084];
 \u1025 \u1078 → \u1009 \u1039 \u1015;\r
 \u1025 \u107A → \u1009 \u1039 \u1017;\r
 \u1025 \u1079 → \u1009 \u1039 \u1016;\r
-($consonant) \u103A \u1039 → $1 \u103A \u103B;\r
 # Stacked Consonants\r
+\u105A → \u102B \u103A ;\r
 \u1060 → \u1039 \u1000 ;\r
 \u1061 → \u1039 \u1001 ;\r
 \u1062 → \u1039 \u1002 ;\r
 \u1063 → \u1039 \u1003 ;\r
 \u1065 → \u1039 \u1005 ;\r
-\u1066 → \u1039 \u1006 ;\r
-\u1067 → \u1039 \u1006 ;\r
+[\u1066\u1067] → \u1039 \u1006 ;\r
 \u1068 → \u1039 \u1007 ;\r
 \u1069 → \u1039 \u1008 ;\r
 \u106C → \u1039 \u100B ;\r
 \u106D → \u1039 \u100C ;\r
 \u1070 → \u1039 \u100F ;\r
-\u1071 → \u1039 \u1010 ;\r
-\u1072 → \u1039 \u1010 ;\r
+[\u1071\u1072] → \u1039 \u1010 ;\r
 \u1096 → \u1039 \u1010 \u103D;\r
-\u1073 → \u1039 \u1011 ;\r
-\u1074 → \u1039 \u1011 ;\r
+[\u1073\u1074] → \u1039 \u1011 ;\r
 \u1075 → \u1039 \u1012 ;\r
 \u1076 → \u1039 \u1013 ;\r
 \u1077 → \u1039 \u1014 ;\r
 \u1078 → \u1039 \u1015 ;\r
 \u1079 → \u1039 \u1016 ;\r
 \u107A → \u1039 \u1017 ;\r
-\u107B → \u1039 \u1018 ;\r
-\u1093 → \u1039 \u1018 ;\r
+[\u107B\u1093] → \u1039 \u1018 ;\r
 \u107C → \u1039 \u1019 ;\r
 \u1085 → \u1039 \u101C ;\r
+\u108E → \u102D \u1036 ;\r
 # Pre-defined ligatures\r
 \u106E → \u100D\u1039\u100D ;\r
 \u106F → \u100D\u1039\u100E ;\r
@@ -123,41 +114,59 @@ $zmedialra = [\u103B\u107E-\u1084];
 \u1092 → \u100B\u1039\u100C ;\r
 \u1097 → \u100B\u1039\u100B ;\r
 \u104E → \u104E\u1004\u103A\u1038 ;\r
-# yayit\r
-$zmedialra → \u103C ;\r
 ####\r
-#### STAGE 2: POST REORDERING RULES FOR UNICODE RENDERING\r
-#### Now every codepoint is Unicode.  This starts conversion\r
-#### from semi-visual order to logical order.\r
-####\r
-::Null;\r
+#### STAGE 1.01: Digits 0 and 4 used instead of letters\r
 # Case of MYANMAR digit being used instead of a letter\r
-# Lone digit zero\r
-[$] \u1040 ($nondigits) → \u101D $1;\r
-([\u102b-\u103f]) \u1040 ($nondigits) → $1 \u101d $2;\r
-# Lone digit 4\r
+# Lone digit zero and four at start\r
+::Null;\r
+^ \u1040 ($nondigits) → \u101D $1;\r
 ^ \u1044 ($nondigits) → | \u104E $1 ;\r
+# Lone digit zero or four at end\r
+($nondigits) \u1040 $ → $1 \u101D;\r
+($nondigits) \u1044 $ → $1 \u104e;\r
+# Evowel and dependent vowel signs before 0 or 4 only\r
+#   -> convert to the consonant.\r
+([\u102b-\u103f]) \u1040 ($nondigits) → $1 \u101d $2;\r
 ([\u102b-\u103f]) \u1044 ($nondigits) → $1 \u104E $2;\r
+####\r
+#### STAGE 1.1: Strip spaces immediately before combining characters.\r
+####   Move e-vowel after consonants and medials\r
+####   Now every codepoint is Unicode. This starts conversion\r
+####   from semi-visual order to logical order.\r
+####\r
+::Null;\r
+# Don't remove spaces before E vowel or medial Ra at this stage\r
+($wspace) \u1037 > \u1037 $1;\r
+($wspace+) ([\u102b-\u1030\u1032-\u103b\u103d\u103e]) → $2;\r
+# Remove a duplicate early\r
+\u1037+ → \u1037;\r
+# Move e-vowel after medials and consonants.\r
+\u1031+ $ukinzi ($consonant) > $ukinzi $1 \u1031;\r
+\u1031+ \u1037+ ($consonant) > $1 \u1031 \u1037 ;\r
+\u1031+ \u103c ($consonant) > $1 \u103c \u1031;\r
+# Move medials other than 103c before the 1031. Leave 103c for\r
+# the next consonant.\r
+\u1031+ ($consonant) ([\u103b\u103d\u103e]+) > $1 $2 \u1031;\r
+\u1031+ ($vowelsAndConsonants) > $1 \u1031;\r
+####\r
+#### STAGE 2: POST REORDERING RULES FOR UNICODE RENDERING\r
+####\r
+::Null;\r
+\u103b \u103a > \u103a \u103b;\r
 # Simpler replacements for Zawgyi 1025\r
-\u1025 \u103A → \u1009 \u103A;\r
 \u1025 \u102E → \u1026;\r
 # Asat and dot below reordering, to Unicode NFC.\r
 \u103A\u1037 → \u1037\u103A;\r
 # Reorder some vowel signs\r
 \u1036 ($umedial*) ($vowelsign+) → $1 $2 \u1036 ;\r
 ([\u102B\u102C\u102F\u1030]) ([\u102D\u102E\u1032]) → $2 $1;\r
-# Move ra medial, but not others.\r
+# Move ra medial which precedes consonant, but not other medials.\r
 \u103C ($consonant) → $1 \u103C;\r
-# Replace CA + YA with JHA\r
-\u1005\u103b → \u1008;\r
 ####\r
 #### Stage 3\r
-#### Move \u1031, \u1036, and \u103C after consonants.\r
+#### Move \u1036, and \u103C after consonants.\r
 ::Null;\r
-# 1031 moved after consonant, with and without kinzi or medials\r
-([\u1031]+) $ukinzi ($consonant) → $ukinzi $2 $1;\r
-([\u1031]+) ($consonant) ($umedial+) → $2 $3 $1;\r
-([\u1031]+) ($consonant) } [^\u103B\u103C\u103D\u103E] → $2 $1;\r
+($umedial) \u1039 ($consonant) > \u1039 $2 $1;\r
 \u103C \u103A \u1039 ($consonant) → \u103A \u1039 $1 \u103C;\r
 \u1036 ($umedial+) → $1 \u1036;\r
 ####\r
@@ -174,8 +183,7 @@ $zmedialra → \u103C ;
 # Move vowel sign E \u1031 after medials, but not across consonants\r
 ($umedial*) ([\u1031]+) ($umedial*) → $1 $3 $2;\r
 # Reorder dot below after medials and vowel diacritics\r
-\u1037 ([\u102D-\u1030\u1032\u1036]) → $1 \u1037;\r
-\u1037 ($umedial+) → $1 \u1037;\r
+\u1037 ([\u102D-\u1030\u1032\u1036\u103b-\u103e]+) → $1 \u1037;\r
 # Move vowel signs after medials\r
 ($vowelsign+) ($umedial+) → $2 $1;\r
 # Reorder modifiers and asat\r
@@ -185,32 +193,45 @@ $zmedialra → \u103C ;
 #### Vowel signs after medials, sort medials,\r
 ####\r
 ::Null;\r
-([\u1031]+) ($umedial+) → $2 $1;\r
+# Replace CA + YA with JHA after moving other things beyond the medials.\r
+\u1005 \u103b → \u1008;\r
 # More moving vowel signs after medials\r
-($vowelsign) ($umedial) → $2 $1;\r
+([\u102b-\u1032]) ($umedial) → $2 $1;\r
 # Sort the medials\r
 ([\u103C\u103D\u103E]) \u103B → \u103B $1;\r
 ([\u103D\u103E]) \u103C → \u103C $1;\r
 \u103E\u103D → \u103D\u103E ;\r
-# Move visarga (\u1038) after other signs\r
-\u1038 ([$vowelmedial]) → $1 \u1038;\r
-\u1038 ([\u1036\u1037\u103A]) → $1 \u1038;\r
+# Move visarga after other signs\r
+\u1038 ($vowelmedial) → $1 \u1038;\r
 # Reorder\r
 \u1036 \u102f → \u102f \u1036;\r
 ###\r
 ### Stage 6\r
-### Finish medial sorting, fix conflicting and extra diacritics\r
+### Finish conflicting and extra diacritics. Remove some white space\r
 ###\r
 ::Null;\r
-# Fix duplicate and overlapping modifiers.\r
+# Fix duplicate combiners\r
+\u102D \u102D+ → \u102D;\r
+\u102E \u102E+ → \u102E;\r
 \u102F \u102F+ → \u102F;\r
-\u102F \u1030 → \u102F;\r
-\u102F \u103A → \u102F;\r
-\u102D \u102E → \u102E;\r
+\u1030 \u1030+ → \u1030;\r
+\u1032 \u1032+ → \u1032;\r
 \u1036 \u1036+ → \u1036;\r
+\u1037 \u1037+ → \u1037;\r
+\u1039 \u1039+ → \u1039;\r
+\u103a \u103a+ → \u103a;\r
+\u103b \u103b+ → \u103b;\r
+\u103c \u103c+ → \u103c;\r
+\u103d \u103d+ → \u103d;\r
 \u103e \u103e+ → \u103e; # http://unicode.org/cldr/trac/ticket/10386\r
+# Fix overlapping signs\r
+\u102F [\u1030\u103a] → \u102F;\r
+\u102D \u102E → \u102E;\r
 # Remove space directly before diacritics.\r
-[:WSpace:] ([\u102b-\u1032\u1036-\u103e]) → $1;\r
-# Fix 103B/103A order for asat.\r
-($consonant) \u103B \u103A → $1 \u103A \u103B;\r
+($wspace)+ ([\u102b-\u1032\u1036-\u103e]) → $2;\r
+# Remove ZWSP at start and end\r
+^ \u200b+ → ;\r
+\u200b+ $ → ;\r
+# Fix multiple spaces around ZWSP to single ZWSP.\r
+$wspace* \u200b $wspace* → \u200b;\r
 \r
diff --git a/source/data/translit/my_Zawgyi.txt b/source/data/translit/my_Zawgyi.txt
new file mode 100644 (file)
index 0000000..2bcfde9
--- /dev/null
@@ -0,0 +1,224 @@
+# © 2016 and later: Unicode, Inc. and others.\r
+# License & terms of use: http://www.unicode.org/copyright.html#License\r
+#\r
+# File: my_Zawgyi.txt\r
+# Generated from CLDR\r
+#\r
+\r
+# This transform converts Unicode Burmese text into Zawgyi font encoded\r
+# form. Zawgyi is a popular, non-standard encoding scheme in Myanmar\r
+# that uses the same code range as Myanmar Unicode but assigns different\r
+# characters or glyphs to some codepoints. In addition to character remapping,\r
+# context-based reordering of codepoints is needed to give readable\r
+# output when the output is displayed with a Zawgyi font such as\r
+# ZawgyiOne.ttf or ZawgyiOne2008.ttf.\r
+#\r
+# The transform is done in two main stages:\r
+# (1) Map all Unicode codepoints to their Zawgyi counterparts.\r
+# (2) Perform reordering.\r
+# Modern Burmese digits & Unicode code points.\r
+$nondigits = [^\u1040-\u1049];\r
+$consonant = [\u1000-\u1021];\r
+$narrowconsonant = [\u1001\u1002\u1004\u1005\u1007\u100b-\u100e\u1012\u1013\u1015-\u1017\u1019\u101d\u1020\u1025\u1026\u108f];\r
+$wideconsonant = [\u1000\u1003\u1006\u1009\u100a\u100f\u1010\u1011\u1018\u101c\u101e\u101f\u1021];\r
+$widenya = [\u100a\u106b];\r
+$othernya = [\u1009\u106a];\r
+$vowelsign = [\u102B-\u1030\u1032];\r
+$vowelmedial = [\u102B-\u1030\u1032\u103c-\u103F];\r
+$ukinzi = [\u1004\u101b\u105a]\u103A\u1039;\r
+$medialraZ = [\u103b\u107e-\u1084];\r
+$lowsignZ = [\u102f\u1030\u1037\u103a\u103c\u103d\u1087-\u108a];\r
+$highsignZ = [\u102d\u102e\u1032\u1036\u1039\u103d-\u103e\u1064];\r
+$subscriptitem = [\u1060-\u1063\u1064-\u1068\u106c\u106d\u1070-\u107c\u1085\u1093\u1096];\r
+$vowelsAndConsonants = [\u1000-\u102a];\r
+#### Phase 0: CODEPOINT MAPPING FROM UNICODE TO ZAWGYI\r
+$ukinzi ($consonant) \u103B > $1 \u103A \u1064 ;\r
+$ukinzi ($consonant) \u102D \u1036 > $1 \u108e ;\r
+$ukinzi ($consonant) \u102D > $1 \u108b ;\r
+$ukinzi ($consonant) \u102E > $1 \u108C ;\r
+$ukinzi ($consonant) \u1036 > $1 \u108D ;\r
+$ukinzi ($consonant) \u1031 > $1 \u1031 \u1064 ;\r
+$ukinzi ($consonant) \u103B \u102D \u102F > $1 \u103A \u1033 \u108B ;\r
+$ukinzi ($consonant) \u103B \u102D > $1 \u103A \u108b  ;\r
+$ukinzi ($consonant) \u103B \u102E \u102F > $1 \u103A \u108C \u1033 ;\r
+$ukinzi ($consonant) \u103B \u102E > $1 \u103A \u108C ;\r
+$ukinzi ($consonant) \u103B \u1036 > $1 \u103A \u108D ;\r
+$ukinzi ($consonant) \u103c > $1 \u103b \u1064; # Kinzi + medial ra\r
+$ukinzi \u102D > \u108B ;\r
+$ukinzi \u102E  > \u108C  ;\r
+$ukinzi \u1036 > \u108D  ;\r
+$ukinzi ($consonant) > $1 \u1064 ;\r
+\u1025 ($vowelsign) \u1038  > \u106A $1 \u1038 ;\r
+\u1025 \u102f \u1036  > \u1025 \u1036 \u1033 ;\r
+\u102D \u1036 > \u108E  ;\r
+# Some composed lower output\r
+\u103d \u103e > \u108a ;\r
+\u103e \u102f > \u1088 ;\r
+\u103E \u1030 > \u1089 ;\r
+\u103A > \u1039 ;\r
+\u103B > \u103A ;\r
+\u103C > \u103B ;\r
+\u103D > \u103C ;\r
+\u103E  > \u103D ;\r
+\u103F > \u1086 ;\r
+([\u1019]) \u103e \u1030 > $1 \u103d \u1034;  # A special case with signs.\r
+\u102B \u103A > \u105A ;\r
+\u1039 \u1010 \u103d > \u1096 ; # Very special case\r
+\u1039 \u1000 > \u1060 ;\r
+\u1039 \u1001 > \u1061 ;\r
+\u1039 \u1002 > \u1062 ;\r
+\u1039 \u1003 > \u1063 ;\r
+\u1039 \u1005 > \u1065 ;\r
+\u1039 \u1006 > \u1067 ;\r
+\u1039 \u1007 > \u1068 ;\r
+\u1039 \u1008 > \u1069 ;\r
+\u1039 \u100B > \u106C ;\r
+\u1039 \u100C > \u106D ;\r
+\u1039 \u100D > \u106E ;\r
+\u100d \u1039 \u100E > \u106F ;\r
+\u1039 \u100E > \u106F ;\r
+\u1039 \u100F > \u1070 ;\r
+\u1039 \u1010 > \u1072 ;\r
+\u1039 \u1011 > \u1074 ;\r
+\u1039 \u1012 > \u1075 ;\r
+\u1039 \u1013 > \u1076 ;\r
+\u1039 \u1014 > \u1077 ;\r
+\u1039 \u1015 > \u1078 ;\r
+\u1039 \u1016 > \u1079 ;\r
+\u1039 \u1017 > \u107A ;\r
+\u1039 \u1018 > \u1093 ;\r
+\u1039 \u1019 > \u107C ;\r
+\u1039 \u101C > \u1085 ;\r
+\u100d\u1039\u100D > \u106E ;\r
+\u100F\u1039\u100D > \u1091 ;\r
+\u100B\u1039\u100C > \u1092 ;\r
+\u100B\u1039\u100B > \u1097 ;\r
+\u104E\u1004\u103A\u1038 > \u104E ;\r
+#### PHASE 1: Everything is now in Zawgyi code points. REORDERING RULES.\r
+::Null;\r
+# E Vowel + medial ra. Move the e vowel\r
+($consonant) \u103b \u1031 > \u1031 \u103b $1 ;\r
+($consonant) \u103b > \u103b $1 ;\r
+($consonant) \u103d \u1031 \u1037 > \u1031 $1 \u1094 \u103D ;\r
+($consonant) (\u108a) \u1031 > \u1031 $1 $2 ;\r
+($consonant) ([\u103a\u103d\u103e]+) \u1031 > \u1031 $1 $2 ;\r
+# Ra + kinzi\r
+($consonant) \u1064 \u103b > \u103b $1 \u1064 ;\r
+# E vowel plus medials\r
+($consonant) ([\u103a\u103c-\u103d]) \u1031 > \u1031 $1 $2 ;\r
+# No medials intervening.\r
+($vowelsAndConsonants) \u1031 > \u1031 $1 ;\r
+# Handle Na with lower modifiers.\r
+\u1014 ($subscriptitem) > \u108f $1 ;\r
+\u1014 ($lowsignZ) ($highsignZ) \u1037 > \u108f $1 $2 \u1094;\r
+\u1014 ($highsignZ) ($lowsignZ) \u1037 > \u108f $1 $2 \u1094;\r
+\u1014 ($highsignZ) \u1037 > \u1014 $1 \u1094;\r
+# Two medials\r
+\u103a \u103c > \u107d \u103c;\r
+# a special case\r
+\u1014 \u1032 \u1037 > \u1014 \u1032 \u1094;\r
+\u1014 \u1037 > \u1014 \u1094;\r
+\u1014 \u1032 ($lowsignZ) \u1037 > \u108f $1 \u1032 \u1094;\r
+\u1014 ($highsignZ) ($lowsignZ) > \u108f $1 $2;\r
+\u1014 ($lowsignZ) ($highsignZ) > \u108f $1 $2;\r
+\u1014 ($lowsignZ) \u1037 > \u108f $1 \u1094;\r
+\u1014 ($lowsignZ) > \u108f $1;\r
+# Move 1037 dot to right with other descenders.\r
+($lowsignZ) ($highsignZ*) \u1037 > $1 $2 \u1094;\r
+($nondigits) \u1040 ([\u102B-\u103F]) > $1 \u101D $2;\r
+# Handle lack of 104E ၎ MYANMAR SYMBOL AFOREMENTIONED\r
+($nondigits) \u104e > $1 \u1044;\r
+\u1031 \u1040 ($nondigits) > \u1031 \u101D $1;\r
+\u1009 \u103A > \u1025 \u103A;\r
+\u1025 \u102E > \u1026;\r
+\u1037 \u103A > \u103A \u1037;\r
+([\u102B\u102C\u102F\u1030]) ([\u102D\u102E\u1032]) > $2 $1;\r
+# Medial plus vowel sign U\r
+($medialraZ) ($consonant) \u102f > $1 $2 \u1033;\r
+## Phase 2: Further adjustments\r
+::Null;\r
+# Handle consonant, subscripted consonant, medial ra\r
+($narrowconsonant) ($subscriptitem) ($highsignZ) $medialraZ > \u1083 $1 $2 $3 ;\r
+($wideconsonant) ($subscriptitem) ($highsignZ) $medialraZ > \u1084 $1 $2 ;\r
+($narrowconsonant) ($subscriptitem) $medialraZ > \u1081 $1 $2 ;\r
+($wideconsonant) ($subscriptitem) $medialraZ > \u1082 $1 $2 ;\r
+\u103c \u1094 > \u103c \u1095 ;\r
+# Medial ra variations, context dependent\r
+$medialraZ ($narrowconsonant) \u102d \u103d \u102f > \u107f $1 \u102d \u1087 \u1083 ;\r
+$medialraZ ($wideconsonant) \u102d \u103d \u102f > \u1080 $1 \u102d \u1087 \u1083 ;\r
+$medialraZ ($narrowconsonant) ($lowsignZ) ($highsignZ) > \u1083 $1 $2 $3 ;\r
+$medialraZ ($wideconsonant) ($lowsignZ) ($highsignZ) > \u1084 $1 $2 $3 ;\r
+$medialraZ ($narrowconsonant) ($highsignZ) > \u107f $1 $2 ;\r
+$medialraZ ($wideconsonant) ($highsignZ) > \u1080 $1 $2 ;\r
+$medialraZ ($narrowconsonant) \u1030 > \u103b $1 \u1034 ;\r
+$medialraZ ($wideconsonant) \u1030 > \u107e $1 \u1034 ;\r
+$medialraZ ($narrowconsonant) (\u102f) > \u103b $1 \u1033 ;\r
+$medialraZ ($wideconsonant) (\u102f) > \u107e $1 \u1033 ;\r
+$medialraZ ($narrowconsonant) ($lowsignZ) > \u1081 $1 $2 ;\r
+$medialraZ ($wideconsonant) ($lowsignZ) > \u1082 $1 $2 ;\r
+$medialraZ ($widenya) > \u1082 $1 ;\r
+$medialraZ ($othernya) > \u103b \u106a ;\r
+$medialraZ ($narrowconsonant) > \u103b $1 ;\r
+$medialraZ ($wideconsonant) > \u107e $1 ;\r
+\u1009 ($lowsignZ) > \u106a $1;\r
+\u100A ($lowsignZ)> \u106B $1  ;  ## NYA and NNYA\r
+\u103d \u102d > \u102d \u103d;\r
+\u103a ($highsignZ) \u102f [\u1037\u1094\u1095] > \u103a $1 \u1033 \u1095;\r
+\u103a \u102f [\u1037\u1094\u1095] > \u103a \u1033 \u1095;\r
+\u103a \u102f > \u103a \u1033;\r
+# Kinzi combo\r
+\u1064 \u102e > \u108c ;\r
+##### Phase 3\r
+::Null;\r
+([\u103C\u103D\u103E]+) \u103B > \u103B $1;\r
+([\u103D\u103E]+) \u103C > \u103C $1;\r
+\u103E\u103D > \u103D\u103E ;\r
+\u1037 ([\u102D-\u1030\u1032\u1036]) > $1 \u1037;\r
+($consonant) ([\u102B-\u1032\u1036\u103B-\u103E]) \u103A ($consonant)> $1 \u103A $2 $3;\r
+# Combine vowel and consonant signs\r
+\u103d \u102f > \u1088;\r
+\u1033 \u1094 > \u1033 \u1095; # Wider spacing on lower dot\r
+($medialraZ) ($consonant) ($highsignZ) \u102f > $1 $2 $3 \u1033;\r
+##### Phase 4.  More reorderings of medials\r
+::Null;\r
+([\u103D\u103E]) \u103C > \u103C $1;\r
+\u103E\u103D > \u103D\u103E ;\r
+\u1038 ($vowelmedial) > $1 \u1038;\r
+\u1038 ([\u1036\u1037\u103A]) > $1 \u1038;\r
+\u1036 \u102f > \u102f \u1036;\r
+\u103a ([\u1064\u108b-\u108e]) \u102d \u102f > \u103a $1 \u102d \u1033;\r
+\u103a \u102d \u102f > \u103a \u102d \u1033;\r
+#### Phase 5\r
+::Null;\r
+($consonant) \u103B \u103A > $1 \u103A \u103B;\r
+([\u103C\u103D\u103E]) \u103B > \u103B $1;\r
+([\u103D\u103E]) \u103C > \u103C $1;\r
+\u103E\u103D > \u103D\u103E ;\r
+([\u102D-\u1030\u1032]) \u103A ($consonant) \u103A > $1 $2 \u103A;\r
+\u102D \u103A > \u102D;\r
+\u102E \u103A > \u102E;\r
+\u102F \u103A > \u102F;\r
+\u102D \u102E > \u102E;\r
+\u102F \u1030 > \u102F;\r
+\u102B \u102B+ > \u102B;\r
+\u102C \u102C+ > \u102C;\r
+\u102D \u102D+ > \u102D;\r
+\u102E \u102E+ > \u102E;\r
+\u102F \u102F+ > \u102F;\r
+\u1030 \u1030+ > \u1030;\r
+\u1031 \u1031+ > \u1031;\r
+\u1032 \u1032+ > \u1032;\r
+\u1036 \u1036+ > \u1036;\r
+\u103A \u103A+ > \u103A;\r
+\u103B \u103B+ > \u103B;\r
+\u103C \u103C+ > \u103C;\r
+\u103D \u103D+ > \u103D;\r
+\u103E \u103E+ > \u103E;\r
+# Visually identical orderings - standardize\r
+\u102f \u102D > \u102D \u102f ;\r
+\u102f \u1036 > \u1036 \u102f ;\r
+\u1039 \u1037 > \u1037 \u1039 ;\r
+\u103c \u1032 > \u1032 \u103c ;\r
+\u103c \u102e > \u102e \u103c ;\r
+\u103d \u1088 > \u1088 ;\r
+\r
index 19d04aa..8a4cec4 100644 (file)
@@ -3433,6 +3433,16 @@ root {
             }\r
         }\r
 \r
+        my-t-my-d0-zawgyi {\r
+            alias {"my-Zawgyi"}\r
+        }\r
+        my-Zawgyi {\r
+            file {\r
+                resource:process(transliterator) {"my_Zawgyi.txt"}\r
+                direction {"FORWARD"}\r
+            }\r
+        }\r
+\r
         my-t-my-s0-zawgyi {\r
             alias {"Zawgyi-my"}\r
         }\r
@@ -3956,6 +3966,16 @@ root {
             }\r
         }\r
 \r
+        ug-fonipa-t-ug {\r
+            alias {"ug-ug_FONIPA"}\r
+        }\r
+        ug-ug_FONIPA {\r
+            file {\r
+                resource:process(transliterator) {"ug_ug_FONIPA.txt"}\r
+                direction {"FORWARD"}\r
+            }\r
+        }\r
+\r
         ar-t-und-fonipa {\r
             alias {"und_FONIPA-ar"}\r
         }\r
diff --git a/source/data/translit/ug_ug_FONIPA.txt b/source/data/translit/ug_ug_FONIPA.txt
new file mode 100644 (file)
index 0000000..94a9ff9
--- /dev/null
@@ -0,0 +1,75 @@
+# © 2016 and later: Unicode, Inc. and others.\r
+# License & terms of use: http://www.unicode.org/copyright.html#License\r
+#\r
+# File: ug_ug_FONIPA.txt\r
+# Generated from CLDR\r
+#\r
+\r
+# Uyghur to phonemic transcription\r
+# Alphabet http://learn101.org/uyghur_alphabet.php + youtube video https://youtu.be/dw1DVFgC8x0\r
+# Vowel-consonant harmony in Uyghur. Laura Becker http://home.uni-leipzig.de/lbecker/papers/VowelConsHarmonyUyghur.pdf\r
+# Shadike, Muhetaer & Wasili, Buheliqiguli. (2014). Acoustic Articulatory of Uyghur Phonetics. Applied Mechanics and Materials. 519→520. 762→766. 10.4028/www.scientific.net/AMM.519→520.762.\r
+# https://kuscholarworks.ku.edu/bitstream/handle/1808/5624/EngYakDwy2009_Uyg1full_10.pdf?seque\r
+#\r
+# Originally prepared by Alina Korshunova <alinakor2202@gmail.com>\r
+# as part of her internship at PanLex (panlex.org)\r
+ئ → ʔ;\r
+ا → a;\r
+ە → ‎ɛ;\r
+ب‎ → b;\r
+پ → p;\r
+ت → t;\r
+ج → d\u0361ʒ;\r
+چ → t\u0361ʃ;\r
+خ → x;\r
+د → d;\r
+ر → r;\r
+ز → z;\r
+ژ → ʒ;\r
+س → s;\r
+ش → ʃ;\r
+غ → ʁ;\r
+ف → f;\r
+ق → q;\r
+ك → k;\r
+گ → ɡ;\r
+ڭ → ŋ;\r
+ل → l;\r
+م → m;\r
+ن → n;\r
+ھ → h;\r
+و → o;\r
+ۇ → u;\r
+ۆ → ø;\r
+ۈ → y;\r
+ۋ → w;\r
+ې → e;\r
+ى → i;\r
+ي → j;\r
+# Handle geminated consonants\r
+::Null;\r
+bb → bː;\r
+pp → pː;\r
+tt } [^\u0361] → tː; # make sure not to consume tt\u0361ʃ\r
+d\u0361ʒd\u0361ʒ → d\u0361ʒː;\r
+t\u0361ʃt\u0361ʃ → t\u0361ʃː;\r
+xx → xː;\r
+dd } [^\u0361] → dː; # make sure not to consume dd\u0361ʒ\r
+rr → rː;\r
+zz → zː;\r
+ʒʒ → ʒː;\r
+ss → sː;\r
+ʃʃ → ʃː;\r
+ʁʁ → ʁː;\r
+ff → fː;\r
+qq → qː;\r
+kk → kː;\r
+ɡɡ → ɡː;\r
+ŋŋ → ŋː;\r
+ll → lː;\r
+mm → mː;\r
+nn → nː;\r
+hh → hː;\r
+ww → wː;\r
+jj → jː;\r
+\r
index 8ff0de3..3d81d3c 100644 (file)
@@ -49,6 +49,121 @@ For new script codes see http://www.unicode.org/iso15924/codechanges.html
 \r
 ---------------------------------------------------------------------------- ***\r
 \r
+ICU 63 addition of ICU support of text layout properties InPC, InSC, vo\r
+\r
+* Command-line environment setup\r
+\r
+UNICODE_DATA=~/unidata/uni11/20180609\r
+CLDR_SRC=~/svn.cldr/uni\r
+ICU_ROOT=~/icu/mine\r
+ICU_SRC=$ICU_ROOT/src\r
+ICUDT=icudt62b\r
+ICU4C_DATA_IN=$ICU_SRC/icu4c/source/data/in\r
+ICU4C_UNIDATA=$ICU_SRC/icu4c/source/data/unidata\r
+export LD_LIBRARY_PATH=$ICU_ROOT/dbg/icu4c/lib\r
+\r
+*** Links\r
+\r
+https://unicode-org.atlassian.net/browse/ICU-8966 InPC & InSC\r
+https://unicode-org.atlassian.net/browse/ICU-12850 vo\r
+\r
+*** data files & enums & parser code\r
+\r
+* API additions\r
+- for each of the three new enumerated properties\r
+  + uchar.h: add the enum UProperty constant UCHAR_<long prop name>\r
+  + uchar.h: update UCHAR_INT_LIMIT\r
+  + uchar.h: add the enum U<long prop name>\r
+    with constants U_<short prop name>_<long value name>\r
+  + UProperty.java: add the constant <long prop name>\r
+  + UProperty.java: update INT_LIMIT\r
+  + UCharacter.java: add the interface <long prop name>\r
+    with constants <long value name>\r
+\r
+* process and/or copy files\r
+- $ICU_SRC/tools/unicode$ py/preparseucd.py $UNICODE_DATA $ICU_SRC\r
+  + This writes files (especially ppucd.txt) to the ICU4C unidata and testdata subfolders.\r
+  + It also writes tools/unicode/c/genprops/pnames_data.h with property and value\r
+    names and aliases.\r
+  + For debugging, and tweaking how ppucd.txt is written,\r
+    the tool has an --only_ppucd option:\r
+    py/preparseucd.py $UNICODE_DATA --only_ppucd path/to/ppucd/outputfile\r
+\r
+* preparseucd.py changes\r
+- add new property short names (uppercase) to _prop_and_value_re\r
+  so that ParseUCharHeader() parses the new enum constants\r
+\r
+* build ICU (make install)\r
+  so that the tools build can pick up the new definitions from the installed header files.\r
+\r
+  $ICU_ROOT/dbg/icu4c$ echo;echo; make -j7 install > out.txt 2>&1 ; tail -n 30 out.txt ; date\r
+\r
+* build Unicode tools using CMake+make\r
+\r
+$ICU_SRC/tools/unicode/c/icudefs.txt:\r
+\r
+# Location (--prefix) of where ICU was installed.\r
+set(ICU_INST_DIR /usr/local/google/home/mscherer/icu/mine/inst/icu4c)\r
+# Location of the ICU4C source tree.\r
+set(ICU4C_SRC_DIR /usr/local/google/home/mscherer/icu/mine/src/icu4c)\r
+\r
+  $ICU_ROOT/dbg$\r
+    mkdir -p tools/unicode/c\r
+    cd tools/unicode/c\r
+\r
+  $ICU_ROOT/dbg/tools/unicode/c$\r
+    cmake ../../../../../src/tools/unicode/c\r
+    make\r
+\r
+* generate core properties data files\r
+  $ICU_ROOT/dbg/tools/unicode/c$\r
+    genprops/genprops $ICU_SRC/icu4c\r
+- rebuild ICU (make install) & tools\r
+\r
+* write data for runtime, hardcoded for now\r
+- add genprops/layoutpropsbuilder.cpp with pieces from sibling files\r
+- generate new icu4c/source/common/ulayout_props_data.h\r
+- for each of the three new enumerated properties\r
+  + int property max value\r
+  + small, 8-bit UCPTrie\r
+    (A small 16-bit trie with bit fields for these three properties\r
+    is very nearly the same size as the sum of the three.)\r
+\r
+* wire into C++\r
+- uprops.cpp: #include ulayout_props_data.h\r
+- uprops.cpp: add getInPC() etc. functions\r
+- uprops.cpp: add lines to intProps[], include max values\r
+- uprops.h: add UPropertySource constants\r
+- uprops.cpp: add uprops_addPropertyStarts(src)\r
+- uniset_props.cpp: add to UnicodeSet_initInclusion()\r
+- intltest/ucdtest.cpp: write unit tests\r
+\r
+* update Java data files\r
+- refresh just the pnames.icu file with the new property [value] names, just to be safe\r
+- see $ICU_SRC/icu4c/source/data/icu4j-readme.txt\r
+- mkdir -p /tmp/icu4j/com/ibm/icu/impl/data/$ICUDT\r
+- $ICU_ROOT/dbg/icu4c$ make ICU4J_ROOT=/tmp/icu4j icu4j-data-install\r
+- copy the big-endian Unicode data files to another location,\r
+  separate from the other data files,\r
+  and then refresh ICU4J\r
+    cd $ICU_ROOT/dbg/icu4c/data/out/icu4j\r
+    cp com/ibm/icu/impl/data/$ICUDT/pnames.icu /tmp/icu4j/com/ibm/icu/impl/data/$ICUDT\r
+    jar uvf $ICU_SRC/icu4j/main/shared/data/icudata.jar -C /tmp/icu4j com/ibm/icu/impl/data/$ICUDT\r
+\r
+* wire into Java\r
+- UCharacterProperty.java: add new SRC_INPC etc. constants as in C++\r
+- UCharacterProperty.java: for each new property\r
+  + create a nested class to hold its CodePointTrie\r
+  + initialize it from a string literal\r
+  + paste in the initializer printed by genprops\r
+  + add a new IntProperty object to the intProps[] array\r
+  + use the correct max int value for each property, also printed by genprops\r
+- UCharacterProperty.java: add ulayout_addPropertyStarts(src, set)\r
+- UnicodeSet.java: add to getInclusions()\r
+- UCharacterTest.java: write unit tests\r
+\r
+---------------------------------------------------------------------------- ***\r
+\r
 Unicode 11.0 update for ICU 62\r
 \r
 http://www.unicode.org/versions/Unicode11.0.0/\r
index cc2ddcc..0e375b7 100644 (file)
@@ -4305,7 +4305,7 @@ D7A4..D7AF    >FFFD                     # NA   <reserved-D7A4>..<reserved-D7AF>
 D7C7..D7CA    >FFFD                     # NA   <reserved-D7C7>..<reserved-D7CA>\r
 # D7CB..D7FB  valid                     # 5.2  HANGUL JONGSEONG NIEUN-RIEUL..HANGUL JONGSEONG PHIEUPH-THIEUTH\r
 D7FC..D7FF    >FFFD                     # NA   <reserved-D7FC>..<reserved-D7FF>\r
-D800..DFFF    >FFFD                     # 2.0  <surrogate-D800>..<surrogate-DFFF>\r
+D800..DFFF    >FFFD                     # 2.0  <surrogate-D800>..<surrogate-DFFF>\r
 E000..F8FF    >FFFD                     # 1.1  <private-use-E000>..<private-use-F8FF>\r
 F900          >8C48                     # 1.1  CJK COMPATIBILITY IDEOGRAPH-F900\r
 F901          >66F4                     # 1.1  CJK COMPATIBILITY IDEOGRAPH-F901\r
index da4c466..78f6d60 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 af{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.65"}\r
     durationUnits{\r
         hm{"hh:mm"}\r
         hms{"hh:mm:ss"}\r
@@ -123,6 +123,16 @@ af{
                 one{"{0} dele per miljoen"}\r
                 other{"{0} dele per miljoen"}\r
             }\r
+            percent{\r
+                dnam{"persent"}\r
+                one{"{0} persent"}\r
+                other{"{0} persent"}\r
+            }\r
+            permille{\r
+                dnam{"per mille"}\r
+                one{"{0} per mille"}\r
+                other{"{0} per mille"}\r
+            }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
@@ -147,6 +157,7 @@ af{
             }\r
         }\r
         coordinate{\r
+            dnam{"kardinale rigting"}\r
             east{"{0}O"}\r
             north{"{0}N"}\r
             south{"{0}S"}\r
@@ -193,6 +204,11 @@ af{
                 one{"{0} MB"}\r
                 other{"{0} MB"}\r
             }\r
+            petabyte{\r
+                dnam{"petagrepe"}\r
+                one{"{0} petagreep"}\r
+                other{"{0} petagrepe"}\r
+            }\r
             terabit{\r
                 dnam{"Tb"}\r
                 one{"{0} Tb"}\r
@@ -537,6 +553,11 @@ af{
             }\r
         }\r
         pressure{\r
+            atmosphere{\r
+                dnam{"atmosfere"}\r
+                one{"{0} atmosfeer"}\r
+                other{"{0} atmosfere"}\r
+            }\r
             hectopascal{\r
                 dnam{"hektopascal"}\r
                 one{"{0} hektopascal"}\r
@@ -785,6 +806,13 @@ af{
         compound{\r
             per{"{0}/{1}"}\r
         }\r
+        concentr{\r
+            percent{\r
+                dnam{"%"}\r
+                one{"{0}%"}\r
+                other{"{0}%"}\r
+            }\r
+        }\r
         consumption{\r
             liter-per-100kilometers{\r
                 dnam{"ℓ/100km"}\r
@@ -793,6 +821,7 @@ af{
             }\r
         }\r
         coordinate{\r
+            dnam{"rigting"}\r
             east{"{0}O"}\r
             north{"{0}N"}\r
             south{"{0}S"}\r
@@ -1092,6 +1121,16 @@ af{
                 one{"{0} d.p.m."}\r
                 other{"{0} d.p.m."}\r
             }\r
+            percent{\r
+                dnam{"percent"}\r
+                one{"{0}%"}\r
+                other{"{0}%"}\r
+            }\r
+            permille{\r
+                dnam{"per mille"}\r
+                one{"{0}‰"}\r
+                other{"{0}‰"}\r
+            }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
@@ -1116,6 +1155,7 @@ af{
             }\r
         }\r
         coordinate{\r
+            dnam{"rigting"}\r
             east{"{0}O"}\r
             north{"{0}N"}\r
             south{"{0}S"}\r
@@ -1162,6 +1202,11 @@ af{
                 one{"{0} MB"}\r
                 other{"{0} MB"}\r
             }\r
+            petabyte{\r
+                dnam{"PGrepe"}\r
+                one{"{0} PB"}\r
+                other{"{0} PB"}\r
+            }\r
             terabit{\r
                 dnam{"Tb"}\r
                 one{"{0} Tb"}\r
@@ -1506,6 +1551,11 @@ af{
             }\r
         }\r
         pressure{\r
+            atmosphere{\r
+                dnam{"atm"}\r
+                one{"{0} atm"}\r
+                other{"{0} atm"}\r
+            }\r
             hectopascal{\r
                 dnam{"hPa"}\r
                 one{"{0} hPa"}\r
index 92dd0f3..90376b2 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 am{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.65"}\r
     durationUnits{\r
         hm{"h:mm"}\r
         hms{"h:mm:ss"}\r
@@ -123,6 +123,16 @@ am{
                 one{"{0} ppm"}\r
                 other{"{0} ppm"}\r
             }\r
+            percent{\r
+                dnam{"ፐርሰንት"}\r
+                one{"{0} ፐርሰንት"}\r
+                other{"{0} ፐርሰንት"}\r
+            }\r
+            permille{\r
+                dnam{"በማይል"}\r
+                one{"{0} በማይል"}\r
+                other{"{0}‰"}\r
+            }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
@@ -147,6 +157,7 @@ am{
             }\r
         }\r
         coordinate{\r
+            dnam{"ዓቢይ አቅጣጫ"}\r
             east{"{0}ምስ"}\r
             north{"{0}ሰ"}\r
             south{"{0}ደ"}\r
@@ -193,8 +204,13 @@ am{
                 one{"{0} ሜጋባይት"}\r
                 other{"{0} ሜጋባይት"}\r
             }\r
+            petabyte{\r
+                dnam{"ፔታ ባይት"}\r
+                one{"{0} ፔታ ባይት"}\r
+                other{"{0} ፔታ ባይቶች"}\r
+            }\r
             terabit{\r
-                dnam{"á\89´á\89£"}\r
+                dnam{"á\89´á\88«á\89£á\8b­á\89µá\88µ"}\r
                 one{"{0} ቴባ"}\r
                 other{"{0} ቴባ"}\r
             }\r
@@ -537,6 +553,11 @@ am{
             }\r
         }\r
         pressure{\r
+            atmosphere{\r
+                dnam{"ከባቢ አየር"}\r
+                one{"{0} ከባቢ አየር"}\r
+                other{"{0} ከባቢ አየር"}\r
+            }\r
             hectopascal{\r
                 dnam{"ሄክቶፓስካል"}\r
                 one{"{0} ሄክቶፓስካል"}\r
@@ -785,6 +806,13 @@ am{
         compound{\r
             per{"{0}/{1}"}\r
         }\r
+        concentr{\r
+            percent{\r
+                dnam{"%"}\r
+                one{"{0}%"}\r
+                other{"{0}%"}\r
+            }\r
+        }\r
         consumption{\r
             liter-per-100kilometers{\r
                 dnam{"ሊትር በ100 ኪሎሜትሮች"}\r
@@ -793,6 +821,7 @@ am{
             }\r
         }\r
         coordinate{\r
+            dnam{"አቅጣጫ"}\r
             east{"{0}ምስ"}\r
             north{"{0}ሰ"}\r
             south{"{0}ደ"}\r
@@ -1097,6 +1126,16 @@ am{
                 one{"{0} ppm"}\r
                 other{"{0} ppm"}\r
             }\r
+            percent{\r
+                dnam{"ፐርሰንት"}\r
+                one{"{0}%"}\r
+                other{"{0}%"}\r
+            }\r
+            permille{\r
+                dnam{"በማይል"}\r
+                one{"{0}‰"}\r
+                other{"{0}‰"}\r
+            }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
@@ -1121,6 +1160,7 @@ am{
             }\r
         }\r
         coordinate{\r
+            dnam{"አቅጣጫ"}\r
             east{"{0}ምስ"}\r
             north{"{0}ሰ"}\r
             south{"{0}ደ"}\r
@@ -1167,6 +1207,11 @@ am{
                 one{"{0} ሜጋባይት"}\r
                 other{"{0} ሜጋባይት"}\r
             }\r
+            petabyte{\r
+                dnam{"ፔ ባይት"}\r
+                one{"{0} ፔባ"}\r
+                other{"{0} ፔባ"}\r
+            }\r
             terabit{\r
                 dnam{"ቴባ"}\r
                 one{"{0} ቴባ"}\r
@@ -1511,6 +1556,11 @@ am{
             }\r
         }\r
         pressure{\r
+            atmosphere{\r
+                dnam{"ከባቢ አየር"}\r
+                one{"{0} ከባቢ አየር"}\r
+                other{"{0} ከባቢ አየር"}\r
+            }\r
             hectopascal{\r
                 dnam{"ሄክቶፓስካል"}\r
                 one{"{0} ሄክቶፓስካል"}\r
index bdfa051..630f21b 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 ar{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.50"}\r
     durationUnits{\r
         hm{"h:mm"}\r
         hms{"h:mm:ss"}\r
@@ -203,6 +203,24 @@ ar{
                 two{"{0} جزء في المليون"}\r
                 zero{"{0} جزء في المليون"}\r
             }\r
+            percent{\r
+                dnam{"بالمائة"}\r
+                few{"{0}٪"}\r
+                many{"{0}٪"}\r
+                one{"{0} بالمائة"}\r
+                other{"{0} بالمائة"}\r
+                two{"{0}٪"}\r
+                zero{"{0}٪"}\r
+            }\r
+            permille{\r
+                dnam{"في الألف"}\r
+                few{"{0}‰"}\r
+                many{"{0}‰"}\r
+                one{"{0} في الألف"}\r
+                other{"{0} في الألف"}\r
+                two{"{0}‰"}\r
+                zero{"{0}‰"}\r
+            }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
@@ -321,6 +339,15 @@ ar{
                 two{"{0} ميغابايت"}\r
                 zero{"{0} ميغابايت"}\r
             }\r
+            petabyte{\r
+                dnam{"بيتابايت"}\r
+                few{"{0} بيتابايت"}\r
+                many{"{0} بيتابايت"}\r
+                one{"{0} بيتابايت"}\r
+                other{"{0} بيتابايت"}\r
+                two{"{0} بيتابايت"}\r
+                zero{"{0} بيتابايت"}\r
+            }\r
             terabit{\r
                 dnam{"تيرابت"}\r
                 few{"{0} تيرابت"}\r
@@ -913,6 +940,15 @@ ar{
             }\r
         }\r
         pressure{\r
+            atmosphere{\r
+                dnam{"وحدة الضغط الجوي"}\r
+                few{"{0} ض.ج"}\r
+                many{"{0} ض.ج"}\r
+                one{"{0} ضغط جوي"}\r
+                other{"{0} ضغط جوي"}\r
+                two{"{0} ض.ج"}\r
+                zero{"{0} ض.ج"}\r
+            }\r
             hectopascal{\r
                 dnam{"هكتوباسكال"}\r
                 few{"{0} هكتوباسكال"}\r
@@ -1349,6 +1385,17 @@ ar{
         compound{\r
             per{"{0}/{1}"}\r
         }\r
+        concentr{\r
+            percent{\r
+                dnam{"٪"}\r
+                few{"{0}٪"}\r
+                many{"{0}٪"}\r
+                one{"{0}٪"}\r
+                other{"{0}٪"}\r
+                two{"{0}٪"}\r
+                zero{"{0}٪"}\r
+            }\r
+        }\r
         consumption{\r
             liter-per-100kilometers{\r
                 dnam{"ل/١٠٠كم"}\r
@@ -1361,6 +1408,7 @@ ar{
             }\r
         }\r
         coordinate{\r
+            dnam{"اتجاه"}\r
             east{"{0} شرق"}\r
             north{"{0} شمال"}\r
             south{"{0} ج"}\r
@@ -1886,6 +1934,24 @@ ar{
                 two{"{0} جزء/مليون"}\r
                 zero{"{0} جزء/مليون"}\r
             }\r
+            percent{\r
+                dnam{"بالمائة"}\r
+                few{"{0}٪"}\r
+                many{"{0}٪"}\r
+                one{"{0}٪"}\r
+                other{"{0}٪"}\r
+                two{"{0}٪"}\r
+                zero{"{0}٪"}\r
+            }\r
+            permille{\r
+                dnam{"في الألف"}\r
+                few{"{0}‰"}\r
+                many{"{0}‰"}\r
+                one{"{0}‰"}\r
+                other{"{0}‰"}\r
+                two{"{0}‰"}\r
+                zero{"{0}‰"}\r
+            }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
@@ -1926,6 +1992,7 @@ ar{
             }\r
         }\r
         coordinate{\r
+            dnam{"اتجاه"}\r
             east{"{0} شرق"}\r
             north{"{0} شمال"}\r
             south{"{0} ج"}\r
@@ -2004,6 +2071,15 @@ ar{
                 two{"{0} ميغابايت"}\r
                 zero{"{0} ميغابايت"}\r
             }\r
+            petabyte{\r
+                dnam{"بيتابايت"}\r
+                few{"{0} بيتابايت"}\r
+                many{"{0} بيتابايت"}\r
+                one{"{0} بيتابايت"}\r
+                other{"{0} بيتابايت"}\r
+                two{"{0} بيتابايت"}\r
+                zero{"{0} بيتابايت"}\r
+            }\r
             terabit{\r
                 dnam{"تيرابت"}\r
                 few{"{0} تيرابت"}\r
@@ -2596,6 +2672,15 @@ ar{
             }\r
         }\r
         pressure{\r
+            atmosphere{\r
+                dnam{"ض.ج"}\r
+                few{"{0} ض.ج"}\r
+                many{"{0} ض.ج"}\r
+                one{"{0} ض.ج"}\r
+                other{"{0} ض.ج"}\r
+                two{"{0} ض.ج"}\r
+                zero{"{0} ض.ج"}\r
+            }\r
             hectopascal{\r
                 dnam{"هكتوباسكال"}\r
                 few{"{0} هكتوباسكال"}\r
index 8e331b0..e954827 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 as{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.94"}\r
     durationUnits{\r
         hm{"h:mm"}\r
         hms{"h:mm:ss"}\r
@@ -123,6 +123,16 @@ as{
                 one{"প্ৰতি মিলিয়নত {0} ভাগ"}\r
                 other{"প্ৰতি মিলিয়নত {0} ভাগ"}\r
             }\r
+            percent{\r
+                dnam{"%"}\r
+                one{"{0} শতাংশ"}\r
+                other{"{0} শতাংশ"}\r
+            }\r
+            permille{\r
+                dnam{"প্ৰতিমাইল"}\r
+                one{"{0} প্ৰতিমাইল"}\r
+                other{"{0} প্ৰতিমাইল"}\r
+            }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
@@ -147,6 +157,7 @@ as{
             }\r
         }\r
         coordinate{\r
+            dnam{"প্ৰধান দিক্-নিৰ্দেশনা"}\r
             east{"{0} পূব"}\r
             north{"{0} উত্তৰ"}\r
             south{"{0} দক্ষিণ"}\r
@@ -193,6 +204,11 @@ as{
                 one{"{0} মেগাবাইট"}\r
                 other{"{0} মেগাবাইট"}\r
             }\r
+            petabyte{\r
+                dnam{"পেটাবাইট"}\r
+                one{"{0} পেটাবাইট"}\r
+                other{"{0} পেটাবাইট"}\r
+            }\r
             terabit{\r
                 dnam{"টেৰাবিট"}\r
                 one{"{0} টেৰাবিট"}\r
@@ -537,6 +553,11 @@ as{
             }\r
         }\r
         pressure{\r
+            atmosphere{\r
+                dnam{"বতৰ"}\r
+                one{"{0} বতৰ"}\r
+                other{"{0} atm"}\r
+            }\r
             hectopascal{\r
                 dnam{"হেক্টোপাছকল"}\r
                 one{"{0} হেক্টোপাছকল"}\r
@@ -739,6 +760,13 @@ as{
         compound{\r
             per{"{0}/{1}"}\r
         }\r
+        concentr{\r
+            percent{\r
+                dnam{"%"}\r
+                one{"{0}%"}\r
+                other{"{0}%"}\r
+            }\r
+        }\r
         consumption{\r
             liter-per-100kilometers{\r
                 dnam{"ল/১০০ ক.ম."}\r
@@ -747,6 +775,7 @@ as{
             }\r
         }\r
         coordinate{\r
+            dnam{"দিক্-নিৰ্দেশনা"}\r
             east{"{0} পূঃ"}\r
             north{"{0} উঃ"}\r
             south{"{0} দঃ"}\r
@@ -966,6 +995,16 @@ as{
                 one{"{0} ppm"}\r
                 other{"{0} ppm"}\r
             }\r
+            percent{\r
+                dnam{"শতাংশ"}\r
+                one{"{0}%"}\r
+                other{"{0}%"}\r
+            }\r
+            permille{\r
+                dnam{"প্ৰতিমাইল"}\r
+                one{"{0}‰"}\r
+                other{"{0}‰"}\r
+            }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
@@ -990,6 +1029,7 @@ as{
             }\r
         }\r
         coordinate{\r
+            dnam{"দিক্-নিৰ্দেশনা"}\r
             east{"{0} পূঃ"}\r
             north{"{0} উঃ"}\r
             south{"{0} দঃ"}\r
@@ -1036,6 +1076,11 @@ as{
                 one{"{0} মেঃ বাঃ"}\r
                 other{"{0} মেঃ বাঃ"}\r
             }\r
+            petabyte{\r
+                dnam{"PByte"}\r
+                one{"{0} PB"}\r
+                other{"{0} PB"}\r
+            }\r
             terabit{\r
                 dnam{"টেৰাবিট"}\r
                 one{"{0} টেঃ বিঃ"}\r
@@ -1380,6 +1425,11 @@ as{
             }\r
         }\r
         pressure{\r
+            atmosphere{\r
+                dnam{"atm"}\r
+                one{"{0} atm"}\r
+                other{"{0} atm"}\r
+            }\r
             hectopascal{\r
                 dnam{"hPa"}\r
                 one{"{0} hPa"}\r
index 03c6fc0..8f64b17 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 ast{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.91"}\r
     durationUnits{\r
         hm{"h:mm"}\r
         hms{"h:mm:ss"}\r
@@ -1111,8 +1111,8 @@ ast{
             }\r
             fathom{\r
                 dnam{"fathom"}\r
-                one{"{0}fm"}\r
-                other{"{0}fm"}\r
+                one{"{0}fth"}\r
+                other{"{0}fth"}\r
             }\r
             foot{\r
                 dnam{"ft"}\r
@@ -1854,8 +1854,8 @@ ast{
             }\r
             fathom{\r
                 dnam{"fathoms"}\r
-                one{"{0} ftm"}\r
-                other{"{0} ftm"}\r
+                one{"{0} fth"}\r
+                other{"{0} fth"}\r
             }\r
             foot{\r
                 dnam{"pies"}\r
index 3c6ed74..dfc2b07 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 az{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.53"}\r
     durationUnits{\r
         hm{"h:mm"}\r
         hms{"h:mm:ss"}\r
@@ -123,6 +123,16 @@ az{
                 one{"milyonda {0} hissəcik"}\r
                 other{"milyonda {0} hissəcik"}\r
             }\r
+            percent{\r
+                dnam{"faiz"}\r
+                one{"{0} faiz"}\r
+                other{"{0} faiz"}\r
+            }\r
+            permille{\r
+                dnam{"promil"}\r
+                one{"{0} promil"}\r
+                other{"{0} promil"}\r
+            }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
@@ -147,6 +157,7 @@ az{
             }\r
         }\r
         coordinate{\r
+            dnam{"kardinal istiqamət"}\r
             east{"{0}E"}\r
             north{"{0}N"}\r
             south{"{0}S"}\r
@@ -193,6 +204,11 @@ az{
                 one{"{0} meqabayt"}\r
                 other{"{0} meqabayt"}\r
             }\r
+            petabyte{\r
+                dnam{"petabayt"}\r
+                one{"{0} petabayt"}\r
+                other{"{0} petabayt"}\r
+            }\r
             terabit{\r
                 dnam{"terabit"}\r
                 one{"{0} terabit"}\r
@@ -542,6 +558,11 @@ az{
             }\r
         }\r
         pressure{\r
+            atmosphere{\r
+                dnam{"atmosfer"}\r
+                one{"{0} atmosfer"}\r
+                other{"{0} atmosfer"}\r
+            }\r
             hectopascal{\r
                 dnam{"hektopaskal"}\r
                 one{"{0} hektopaskal"}\r
@@ -790,6 +811,13 @@ az{
         compound{\r
             per{"{0}/{1}"}\r
         }\r
+        concentr{\r
+            percent{\r
+                dnam{"%"}\r
+                one{"{0}%"}\r
+                other{"{0}%"}\r
+            }\r
+        }\r
         consumption{\r
             liter-per-100kilometers{\r
                 dnam{"l/100km"}\r
@@ -798,6 +826,7 @@ az{
             }\r
         }\r
         coordinate{\r
+            dnam{"istiqamət"}\r
             east{"{0}E"}\r
             north{"{0}N"}\r
             south{"{0}S"}\r
@@ -1100,6 +1129,16 @@ az{
                 one{"{0} hs/mln"}\r
                 other{"{0} hs/mln"}\r
             }\r
+            percent{\r
+                dnam{"faiz"}\r
+                one{"{0}%"}\r
+                other{"{0}%"}\r
+            }\r
+            permille{\r
+                dnam{"promil"}\r
+                one{"{0}‰"}\r
+                other{"{0}‰"}\r
+            }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
@@ -1124,6 +1163,7 @@ az{
             }\r
         }\r
         coordinate{\r
+            dnam{"istiqamət"}\r
             east{"{0}E"}\r
             north{"{0}N"}\r
             south{"{0}S"}\r
@@ -1170,6 +1210,11 @@ az{
                 one{"{0} MB"}\r
                 other{"{0} MB"}\r
             }\r
+            petabyte{\r
+                dnam{"PBayt"}\r
+                one{"{0} PB"}\r
+                other{"{0} PB"}\r
+            }\r
             terabit{\r
                 dnam{"Tb"}\r
                 one{"{0} Tb"}\r
@@ -1519,6 +1564,11 @@ az{
             }\r
         }\r
         pressure{\r
+            atmosphere{\r
+                dnam{"atm"}\r
+                one{"{0} atm"}\r
+                other{"{0} atm"}\r
+            }\r
             hectopascal{\r
                 dnam{"hektopaskal"}\r
                 one{"{0} hPa"}\r
index 92831f6..68bc942 100644 (file)
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 az_Cyrl{\r
     %%Parent{"root"}\r
-    Version{"2.1.38.69"}\r
+    Version{"2.1.44.53"}\r
 }\r
index e1b5a11..bd55497 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 be{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.65"}\r
     durationUnits{\r
         hm{"hh:mm"}\r
         hms{"hh:mm:ss"}\r
@@ -163,6 +163,20 @@ be{
                 one{"{0} частка на мільён"}\r
                 other{"{0} часткі на мільён"}\r
             }\r
+            percent{\r
+                dnam{"працэнтаў"}\r
+                few{"{0}%"}\r
+                many{"{0}%"}\r
+                one{"{0} працэнт"}\r
+                other{"{0}%"}\r
+            }\r
+            permille{\r
+                dnam{"праміле"}\r
+                few{"{0}‰"}\r
+                many{"{0}‰"}\r
+                one{"{0}‰"}\r
+                other{"{0}‰"}\r
+            }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
@@ -195,6 +209,7 @@ be{
             }\r
         }\r
         coordinate{\r
+            dnam{"кірунак свету"}\r
             east{"{0} У"}\r
             north{"{0} Пн"}\r
             south{"{0} Пд"}\r
@@ -257,6 +272,13 @@ be{
                 one{"{0} МБ"}\r
                 other{"{0} МБ"}\r
             }\r
+            petabyte{\r
+                dnam{"петабайты"}\r
+                few{"{0} ПБ"}\r
+                many{"{0} ПБ"}\r
+                one{"{0} ПБ"}\r
+                other{"{0} ПБ"}\r
+            }\r
             terabit{\r
                 dnam{"тэрабіты"}\r
                 few{"{0} Тбіт"}\r
@@ -725,6 +747,13 @@ be{
             }\r
         }\r
         pressure{\r
+            atmosphere{\r
+                dnam{"атмасферы"}\r
+                few{"{0} атм"}\r
+                many{"{0} атм"}\r
+                one{"{0} атм"}\r
+                other{"{0} атм"}\r
+            }\r
             hectopascal{\r
                 dnam{"гектапаскалі"}\r
                 few{"{0} гПа"}\r
@@ -1001,6 +1030,15 @@ be{
         compound{\r
             per{"{0}/{1}"}\r
         }\r
+        concentr{\r
+            percent{\r
+                dnam{"%"}\r
+                few{"{0}%"}\r
+                many{"{0}%"}\r
+                one{"{0}%"}\r
+                other{"{0}%"}\r
+            }\r
+        }\r
         consumption{\r
             liter-per-100kilometers{\r
                 dnam{"л/100 км"}\r
@@ -1011,6 +1049,7 @@ be{
             }\r
         }\r
         coordinate{\r
+            dnam{"кірунак"}\r
             east{"{0} У"}\r
             north{"{0} Пн"}\r
             south{"{0} Пд"}\r
@@ -1304,6 +1343,20 @@ be{
                 one{"{0} ppm"}\r
                 other{"{0} ppm"}\r
             }\r
+            percent{\r
+                dnam{"%"}\r
+                few{"{0}%"}\r
+                many{"{0}%"}\r
+                one{"{0}%"}\r
+                other{"{0}%"}\r
+            }\r
+            permille{\r
+                dnam{"праміле"}\r
+                few{"{0}‰"}\r
+                many{"{0}‰"}\r
+                one{"{0}‰"}\r
+                other{"{0}‰"}\r
+            }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
@@ -1336,6 +1389,7 @@ be{
             }\r
         }\r
         coordinate{\r
+            dnam{"кірунак"}\r
             east{"{0} У"}\r
             north{"{0} Пн"}\r
             south{"{0} Пд"}\r
@@ -1398,6 +1452,13 @@ be{
                 one{"{0} МБ"}\r
                 other{"{0} МБ"}\r
             }\r
+            petabyte{\r
+                dnam{"ПБайт"}\r
+                few{"{0} ПБ"}\r
+                many{"{0} ПБ"}\r
+                one{"{0} ПБ"}\r
+                other{"{0} ПБ"}\r
+            }\r
             terabit{\r
                 dnam{"Тбіт"}\r
                 few{"{0} Тбіт"}\r
@@ -1866,6 +1927,13 @@ be{
             }\r
         }\r
         pressure{\r
+            atmosphere{\r
+                dnam{"атм"}\r
+                few{"{0} атм"}\r
+                many{"{0} атм"}\r
+                one{"{0} атм"}\r
+                other{"{0} атм"}\r
+            }\r
             hectopascal{\r
                 dnam{"гПа"}\r
                 few{"{0} гПа"}\r
index 9932e84..134176a 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 bg{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.94"}\r
     durationUnits{\r
         hm{"h:mm"}\r
         hms{"h:mm:ss"}\r
@@ -123,6 +123,16 @@ bg{
                 one{"{0} ppm"}\r
                 other{"{0} ppm"}\r
             }\r
+            percent{\r
+                dnam{"процент"}\r
+                one{"{0} процент"}\r
+                other{"{0} процента"}\r
+            }\r
+            permille{\r
+                dnam{"промил"}\r
+                one{"{0} промил"}\r
+                other{"{0} промила"}\r
+            }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
@@ -147,6 +157,7 @@ bg{
             }\r
         }\r
         coordinate{\r
+            dnam{"основна посока"}\r
             east{"{0}И"}\r
             north{"{0}С"}\r
             south{"{0}Ю"}\r
@@ -193,6 +204,11 @@ bg{
                 one{"{0} мегабайт"}\r
                 other{"{0} мегабайта"}\r
             }\r
+            petabyte{\r
+                dnam{"петабайти"}\r
+                one{"{0} петабайт"}\r
+                other{"{0} петабайта"}\r
+            }\r
             terabit{\r
                 dnam{"терабитове"}\r
                 one{"{0} терабит"}\r
@@ -537,6 +553,11 @@ bg{
             }\r
         }\r
         pressure{\r
+            atmosphere{\r
+                dnam{"атмосфери"}\r
+                one{"{0} атмосфера"}\r
+                other{"{0} атмосфери"}\r
+            }\r
             hectopascal{\r
                 dnam{"хектопаскали"}\r
                 one{"{0} хектопаскал"}\r
@@ -785,6 +806,13 @@ bg{
         compound{\r
             per{"{0}/{1}"}\r
         }\r
+        concentr{\r
+            percent{\r
+                dnam{"%"}\r
+                one{"{0}%"}\r
+                other{"{0}%"}\r
+            }\r
+        }\r
         consumption{\r
             liter-per-100kilometers{\r
                 dnam{"l/100 km"}\r
@@ -793,6 +821,7 @@ bg{
             }\r
         }\r
         coordinate{\r
+            dnam{"посока"}\r
             east{"{0}И"}\r
             north{"{0}С"}\r
             south{"{0}Ю"}\r
@@ -810,9 +839,9 @@ bg{
                 other{"{0} ч"}\r
             }\r
             millisecond{\r
-                dnam{"ms"}\r
-                one{"{0} ms"}\r
-                other{"{0} ms"}\r
+                dnam{"мсек"}\r
+                one{"{0} мсек"}\r
+                other{"{0} мсек"}\r
             }\r
             minute{\r
                 dnam{"мин"}\r
@@ -820,9 +849,9 @@ bg{
                 other{"{0} мин"}\r
             }\r
             month{\r
-                dnam{"м"}\r
-                one{"{0} м"}\r
-                other{"{0} м"}\r
+                dnam{"мес."}\r
+                one{"{0} мес."}\r
+                other{"{0} мес."}\r
             }\r
             second{\r
                 dnam{"с"}\r
@@ -1092,6 +1121,16 @@ bg{
                 one{"{0} ppm"}\r
                 other{"{0} ppm"}\r
             }\r
+            percent{\r
+                dnam{"процент"}\r
+                one{"{0}%"}\r
+                other{"{0}%"}\r
+            }\r
+            permille{\r
+                dnam{"промил"}\r
+                one{"{0}‰"}\r
+                other{"{0}‰"}\r
+            }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
@@ -1116,6 +1155,7 @@ bg{
             }\r
         }\r
         coordinate{\r
+            dnam{"посока"}\r
             east{"{0}И"}\r
             north{"{0}С"}\r
             south{"{0}Ю"}\r
@@ -1162,6 +1202,11 @@ bg{
                 one{"{0} MB"}\r
                 other{"{0} MB"}\r
             }\r
+            petabyte{\r
+                dnam{"PByte"}\r
+                one{"{0} PB"}\r
+                other{"{0} PB"}\r
+            }\r
             terabit{\r
                 dnam{"Tb"}\r
                 one{"{0} Tb"}\r
@@ -1189,7 +1234,7 @@ bg{
                 dnam{"часове"}\r
                 one{"{0} ч"}\r
                 other{"{0} ч"}\r
-                per{"{0}/h"}\r
+                per{"{0}/ч"}\r
             }\r
             microsecond{\r
                 dnam{"μs"}\r
@@ -1198,8 +1243,8 @@ bg{
             }\r
             millisecond{\r
                 dnam{"милисекунди"}\r
-                one{"{0} ms"}\r
-                other{"{0} ms"}\r
+                one{"{0} мсек"}\r
+                other{"{0} мсек"}\r
             }\r
             minute{\r
                 dnam{"мин"}\r
@@ -1220,9 +1265,9 @@ bg{
             }\r
             second{\r
                 dnam{"секунди"}\r
-                one{"{0} с"}\r
-                other{"{0} с"}\r
-                per{"{0}/с"}\r
+                one{"{0} сек"}\r
+                other{"{0} сек"}\r
+                per{"{0}/сек"}\r
             }\r
             week{\r
                 dnam{"седмици"}\r
@@ -1232,8 +1277,8 @@ bg{
             }\r
             year{\r
                 dnam{"години"}\r
-                one{"{0} г"}\r
-                other{"{0} г"}\r
+                one{"{0} год."}\r
+                other{"{0} год."}\r
                 per{"{0}/год."}\r
             }\r
         }\r
@@ -1506,6 +1551,11 @@ bg{
             }\r
         }\r
         pressure{\r
+            atmosphere{\r
+                dnam{"atm"}\r
+                one{"{0} atm"}\r
+                other{"{0} atm"}\r
+            }\r
             hectopascal{\r
                 dnam{"hPa"}\r
                 one{"{0} hPa"}\r
index 61d4455..ae86696 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 bn{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.91"}\r
     durationUnits{\r
         hm{"h:mm"}\r
         hms{"h:mm:ss"}\r
@@ -123,6 +123,16 @@ bn{
                 one{"{0} ভাগ, প্রতি মিলিয়নে"}\r
                 other{"{0} ভাগ, প্রতি মিলিয়নে"}\r
             }\r
+            percent{\r
+                dnam{"শতাংশ"}\r
+                one{"{0}শতাংশ"}\r
+                other{"{0}শতাংশ"}\r
+            }\r
+            permille{\r
+                dnam{"প্রতিমাইল"}\r
+                one{"{0} প্রতিমাইল"}\r
+                other{"{0}প্রতিমাইল"}\r
+            }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
@@ -147,6 +157,7 @@ bn{
             }\r
         }\r
         coordinate{\r
+            dnam{"প্রধান দিকনির্দেশ"}\r
             east{"{0} পূর্ব"}\r
             north{"{0} উত্তর"}\r
             south{"{0} দক্ষিণ"}\r
@@ -193,6 +204,11 @@ bn{
                 one{"{0} মেগাবাইট"}\r
                 other{"{0} মেগাবাইট"}\r
             }\r
+            petabyte{\r
+                dnam{"পেটাবাইটস"}\r
+                one{"{0} পেটাবাইটস"}\r
+                other{"{0} পেটাবাইটস"}\r
+            }\r
             terabit{\r
                 dnam{"টেরাবিট"}\r
                 one{"{0} টেরাবিট"}\r
@@ -363,8 +379,8 @@ bn{
             }\r
             fathom{\r
                 dnam{"fm"}\r
-                one{"{0} fm"}\r
-                other{"{0} fm"}\r
+                one{"{0} fth"}\r
+                other{"{0} fth"}\r
             }\r
             foot{\r
                 dnam{"ফুট"}\r
@@ -552,6 +568,11 @@ bn{
             }\r
         }\r
         pressure{\r
+            atmosphere{\r
+                dnam{"atm"}\r
+                one{"{0} atm"}\r
+                other{"{0} atm"}\r
+            }\r
             hectopascal{\r
                 dnam{"হেক্টোপাসকল"}\r
                 one{"{0} হেক্টোপাসকল"}\r
@@ -806,6 +827,13 @@ bn{
         compound{\r
             per{"{0}/{1}"}\r
         }\r
+        concentr{\r
+            percent{\r
+                dnam{"শতাংশ"}\r
+                one{"{0}%"}\r
+                other{"{0}%"}\r
+            }\r
+        }\r
         consumption{\r
             liter-per-100kilometers{\r
                 dnam{"L/100km"}\r
@@ -814,6 +842,7 @@ bn{
             }\r
         }\r
         coordinate{\r
+            dnam{"দিকনির্দেশ"}\r
             east{"{0}পূ"}\r
             north{"{0}উ"}\r
             south{"{0}দ"}\r
@@ -902,8 +931,8 @@ bn{
             }\r
             fathom{\r
                 dnam{"fm"}\r
-                one{"{0} ftm"}\r
-                other{"{0} ftm"}\r
+                one{"{0} fth"}\r
+                other{"{0} fth"}\r
             }\r
             foot{\r
                 dnam{"ফুট"}\r
@@ -1268,6 +1297,16 @@ bn{
                 one{"{0} ppm"}\r
                 other{"{0} ppm"}\r
             }\r
+            percent{\r
+                dnam{"শতাংশ"}\r
+                one{"{0}%"}\r
+                other{"{0}%"}\r
+            }\r
+            permille{\r
+                dnam{"প্রতিমাইল"}\r
+                one{"{0}‰"}\r
+                other{"{0}‰"}\r
+            }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
@@ -1292,6 +1331,7 @@ bn{
             }\r
         }\r
         coordinate{\r
+            dnam{"দিকনির্দেশ"}\r
             east{"{0}পূ"}\r
             north{"{0} উ"}\r
             south{"{0} দ"}\r
@@ -1338,6 +1378,11 @@ bn{
                 one{"{0} MB"}\r
                 other{"{0} MB"}\r
             }\r
+            petabyte{\r
+                dnam{"PByte"}\r
+                one{"{0} PB"}\r
+                other{"{0} PB"}\r
+            }\r
             terabit{\r
                 dnam{"Tbit"}\r
                 one{"{0} Tb"}\r
@@ -1508,8 +1553,8 @@ bn{
             }\r
             fathom{\r
                 dnam{"fm"}\r
-                one{"{0} ftm"}\r
-                other{"{0} ftm"}\r
+                one{"{0} fth"}\r
+                other{"{0} fth"}\r
             }\r
             foot{\r
                 dnam{"ফুট"}\r
@@ -1697,6 +1742,11 @@ bn{
             }\r
         }\r
         pressure{\r
+            atmosphere{\r
+                dnam{"atm"}\r
+                one{"{0} atm"}\r
+                other{"{0} atm"}\r
+            }\r
             hectopascal{\r
                 dnam{"hPa"}\r
                 one{"{0} hPa"}\r
index 806cf46..d7e8c49 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 br{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.91"}\r
     durationUnits{\r
         hm{"h:mm"}\r
         hms{"h:mm:ss"}\r
@@ -1282,11 +1282,11 @@ br{
             }\r
             fathom{\r
                 dnam{"fm"}\r
-                few{"{0} fm"}\r
-                many{"{0} fm"}\r
-                one{"{0} fm"}\r
-                other{"{0} fm"}\r
-                two{"{0} fm"}\r
+                few{"{0} fth"}\r
+                many{"{0} fth"}\r
+                one{"{0} fth"}\r
+                other{"{0} fth"}\r
+                two{"{0} fth"}\r
             }\r
             foot{\r
                 dnam{"′"}\r
@@ -2219,11 +2219,11 @@ br{
             }\r
             fathom{\r
                 dnam{"fm"}\r
-                few{"{0} fm"}\r
-                many{"{0} fm"}\r
-                one{"{0} fm"}\r
-                other{"{0} fm"}\r
-                two{"{0} fm"}\r
+                few{"{0} fth"}\r
+                many{"{0} fth"}\r
+                one{"{0} fth"}\r
+                other{"{0} fth"}\r
+                two{"{0} fth"}\r
             }\r
             foot{\r
                 dnam{"ft"}\r
index 0fc63c8..e9a8051 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 brx{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.41.34"}\r
     units{\r
         duration{\r
             day{\r
index f32f9fc..15fefaa 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 bs{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.88"}\r
     durationUnits{\r
         hm{"h:mm"}\r
         hms{"h:mm:ss"}\r
@@ -143,6 +143,18 @@ bs{
                 one{"{0} dio na milion"}\r
                 other{"{0} dijelova na milion"}\r
             }\r
+            percent{\r
+                dnam{"procenat"}\r
+                few{"{0} procenta"}\r
+                one{"{0} procenat"}\r
+                other{"{0} procenata"}\r
+            }\r
+            permille{\r
+                dnam{"promil"}\r
+                few{"{0} promila"}\r
+                one{"{0} promil"}\r
+                other{"{0} promila"}\r
+            }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
@@ -171,6 +183,7 @@ bs{
             }\r
         }\r
         coordinate{\r
+            dnam{"glavni pravac"}\r
             east{"{0} istok"}\r
             north{"{0} sjever"}\r
             south{"{0} jug"}\r
@@ -225,6 +238,12 @@ bs{
                 one{"{0} megabajta"}\r
                 other{"{0} megabajta"}\r
             }\r
+            petabyte{\r
+                dnam{"petabajti"}\r
+                few{"{0} petabajta"}\r
+                one{"{0} petabajt"}\r
+                other{"{0} petabajta"}\r
+            }\r
             terabit{\r
                 dnam{"terabiti"}\r
                 few{"{0} terabita"}\r
@@ -631,6 +650,12 @@ bs{
             }\r
         }\r
         pressure{\r
+            atmosphere{\r
+                dnam{"atmosfere"}\r
+                few{"{0} atmosfere"}\r
+                one{"{0} atmosfera"}\r
+                other{"{0} atmosfera"}\r
+            }\r
             hectopascal{\r
                 dnam{"hektopaskali"}\r
                 few{"{0} hektopaskala"}\r
@@ -870,6 +895,14 @@ bs{
         compound{\r
             per{"{0}/{1}"}\r
         }\r
+        concentr{\r
+            percent{\r
+                dnam{"%"}\r
+                few{"{0}%"}\r
+                one{"{0}%"}\r
+                other{"{0}%"}\r
+            }\r
+        }\r
         consumption{\r
             liter-per-100kilometers{\r
                 dnam{"L/100 km"}\r
@@ -879,6 +912,7 @@ bs{
             }\r
         }\r
         coordinate{\r
+            dnam{"pravac"}\r
             east{"{0}I"}\r
             north{"{0}S"}\r
             south{"{0}J"}\r
@@ -1135,6 +1169,18 @@ bs{
                 one{"{0} ppm"}\r
                 other{"{0} ppm"}\r
             }\r
+            percent{\r
+                dnam{"%"}\r
+                few{"{0}%"}\r
+                one{"{0}%"}\r
+                other{"{0}%"}\r
+            }\r
+            permille{\r
+                dnam{"‰"}\r
+                few{"{0}‰"}\r
+                one{"{0}‰"}\r
+                other{"{0}‰"}\r
+            }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
@@ -1163,6 +1209,7 @@ bs{
             }\r
         }\r
         coordinate{\r
+            dnam{"pravac"}\r
             east{"{0} I"}\r
             north{"{0} S"}\r
             south{"{0} J"}\r
@@ -1217,6 +1264,12 @@ bs{
                 one{"{0} MB"}\r
                 other{"{0} MB"}\r
             }\r
+            petabyte{\r
+                dnam{"PB"}\r
+                few{"{0} PB"}\r
+                one{"{0} PB"}\r
+                other{"{0} PB"}\r
+            }\r
             terabit{\r
                 dnam{"Tb"}\r
                 few{"{0} Tb"}\r
@@ -1623,6 +1676,12 @@ bs{
             }\r
         }\r
         pressure{\r
+            atmosphere{\r
+                dnam{"atm"}\r
+                few{"{0} atm"}\r
+                one{"{0} atm"}\r
+                other{"{0} atm"}\r
+            }\r
             hectopascal{\r
                 dnam{"hPa"}\r
                 few{"{0} hPa"}\r
index 9ac371d..ef7a814 100644 (file)
@@ -2,7 +2,7 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 bs_Cyrl{\r
     %%Parent{"root"}\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.41.34"}\r
     units{\r
         duration{\r
             day{\r
index 87cb678..684969e 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 ca{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.65"}\r
     durationUnits{\r
         hm{"h:mm"}\r
         hms{"h:mm:ss"}\r
@@ -37,7 +37,7 @@ ca{
                 other{"{0} graus"}\r
             }\r
             radian{\r
-                dnam{"radiant"}\r
+                dnam{"radiants"}\r
                 one{"{0} radiant"}\r
                 other{"{0} radiants"}\r
             }\r
@@ -123,6 +123,16 @@ ca{
                 one{"{0} part per milió"}\r
                 other{"{0} parts per milió"}\r
             }\r
+            percent{\r
+                dnam{"per cent"}\r
+                one{"{0} per cent"}\r
+                other{"{0} per cent"}\r
+            }\r
+            permille{\r
+                dnam{"per mil"}\r
+                one{"{0} per mil"}\r
+                other{"{0} per mil"}\r
+            }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
@@ -147,14 +157,15 @@ ca{
             }\r
         }\r
         coordinate{\r
-            east{"{0}E"}\r
-            north{"{0}N"}\r
-            south{"{0}S"}\r
-            west{"{0}O"}\r
+            dnam{"punt cardinal"}\r
+            east{"{0} est"}\r
+            north{"{0} nord"}\r
+            south{"{0} sud"}\r
+            west{"{0} oest"}\r
         }\r
         digital{\r
             bit{\r
-                dnam{"bit"}\r
+                dnam{"bits"}\r
                 one{"{0} bit"}\r
                 other{"{0} bits"}\r
             }\r
@@ -184,15 +195,20 @@ ca{
                 other{"{0} quilobytes"}\r
             }\r
             megabit{\r
-                dnam{"megabit"}\r
+                dnam{"megabits"}\r
                 one{"{0} megabit"}\r
                 other{"{0} megabits"}\r
             }\r
             megabyte{\r
-                dnam{"megabyte"}\r
+                dnam{"megabytes"}\r
                 one{"{0} megabyte"}\r
                 other{"{0} megabytes"}\r
             }\r
+            petabyte{\r
+                dnam{"petabytes"}\r
+                one{"{0} petabyte"}\r
+                other{"{0} petabytes"}\r
+            }\r
             terabit{\r
                 dnam{"terabits"}\r
                 one{"{0} terabit"}\r
@@ -223,7 +239,7 @@ ca{
                 per{"{0} per hora"}\r
             }\r
             microsecond{\r
-                dnam{"microsegon"}\r
+                dnam{"microsegons"}\r
                 one{"{0} microsegon"}\r
                 other{"{0} microsegons"}\r
             }\r
@@ -270,12 +286,12 @@ ca{
         }\r
         electric{\r
             ampere{\r
-                dnam{"ampere"}\r
+                dnam{"amperes"}\r
                 one{"{0} ampere"}\r
                 other{"{0} amperes"}\r
             }\r
             milliampere{\r
-                dnam{"mil·liampere"}\r
+                dnam{"mil·liamperes"}\r
                 one{"{0} mil·liampere"}\r
                 other{"{0} mil·liamperes"}\r
             }\r
@@ -285,7 +301,7 @@ ca{
                 other{"{0} ohms"}\r
             }\r
             volt{\r
-                dnam{"volt"}\r
+                dnam{"volts"}\r
                 one{"{0} volt"}\r
                 other{"{0} volts"}\r
             }\r
@@ -445,23 +461,23 @@ ca{
             lux{\r
                 dnam{"lux"}\r
                 one{"{0} lux"}\r
-                other{"{0} lux"}\r
+                other{"{0} luxs"}\r
             }\r
         }\r
         mass{\r
             carat{\r
-                dnam{"quirat"}\r
+                dnam{"quirats"}\r
                 one{"{0} quirat"}\r
                 other{"{0} quirats"}\r
             }\r
             gram{\r
-                dnam{"gram"}\r
+                dnam{"grams"}\r
                 one{"{0} gram"}\r
                 other{"{0} grams"}\r
                 per{"{0} per gram"}\r
             }\r
             kilogram{\r
-                dnam{"quilogram"}\r
+                dnam{"quilograms"}\r
                 one{"{0} quilogram"}\r
                 other{"{0} quilograms"}\r
                 per{"{0} per quilogram"}\r
@@ -477,23 +493,23 @@ ca{
                 other{"{0} micrograms"}\r
             }\r
             milligram{\r
-                dnam{"mil·ligram"}\r
+                dnam{"mil·ligrams"}\r
                 one{"{0} mil·ligram"}\r
                 other{"{0} mil·ligrams"}\r
             }\r
             ounce{\r
-                dnam{"unça"}\r
+                dnam{"unces"}\r
                 one{"{0} unça"}\r
                 other{"{0} unces"}\r
                 per{"{0} per unça"}\r
             }\r
             ounce-troy{\r
-                dnam{"unça troy"}\r
+                dnam{"unces troy"}\r
                 one{"{0} unça troy"}\r
                 other{"{0} unces troy"}\r
             }\r
             pound{\r
-                dnam{"lliura"}\r
+                dnam{"lliures"}\r
                 one{"{0} lliura"}\r
                 other{"{0} lliures"}\r
                 per{"{0} per lliura"}\r
@@ -526,9 +542,9 @@ ca{
                 other{"{0} megawatts"}\r
             }\r
             milliwatt{\r
-                dnam{"miliwatts"}\r
-                one{"{0} miliwatt"}\r
-                other{"{0} miliwatts"}\r
+                dnam{"mil·liwatts"}\r
+                one{"{0} mil·liwatt"}\r
+                other{"{0} mil·liwatts"}\r
             }\r
             watt{\r
                 dnam{"watts"}\r
@@ -537,6 +553,11 @@ ca{
             }\r
         }\r
         pressure{\r
+            atmosphere{\r
+                dnam{"atmosferes"}\r
+                one{"{0} atmosfera"}\r
+                other{"{0} atmosferes"}\r
+            }\r
             hectopascal{\r
                 dnam{"hectopascals"}\r
                 one{"{0} hectopascal"}\r
@@ -683,7 +704,7 @@ ca{
             }\r
             gallon-imperial{\r
                 dnam{"galons imperials"}\r
-                one{"{0} galons imperials"}\r
+                one{"{0} galó imperial"}\r
                 other{"{0} galons imperials"}\r
                 per{"{0} per galó imperial"}\r
             }\r
@@ -795,6 +816,13 @@ ca{
         compound{\r
             per{"{0}/{1}"}\r
         }\r
+        concentr{\r
+            percent{\r
+                dnam{"%"}\r
+                one{"{0} %"}\r
+                other{"{0} %"}\r
+            }\r
+        }\r
         consumption{\r
             liter-per-100kilometers{\r
                 dnam{"l/100 km"}\r
@@ -803,6 +831,7 @@ ca{
             }\r
         }\r
         coordinate{\r
+            dnam{"punt"}\r
             east{"{0}E"}\r
             north{"{0}N"}\r
             south{"{0}S"}\r
@@ -867,8 +896,8 @@ ca{
             }\r
             week{\r
                 dnam{"setm."}\r
-                one{"{0} s"}\r
-                other{"{0} s"}\r
+                one{"{0} setm."}\r
+                other{"{0} setm."}\r
                 per{"{0}/setm."}\r
             }\r
             year{\r
@@ -1150,14 +1179,14 @@ ca{
         }\r
         angle{\r
             arc-minute{\r
-                dnam{"´"}\r
-                one{"{0} min"}\r
-                other{"{0} min"}\r
+                dnam{"arcmin"}\r
+                one{"{0} arcmin"}\r
+                other{"{0} arcmin"}\r
             }\r
             arc-second{\r
-                dnam{"segons"}\r
-                one{"{0} s"}\r
-                other{"{0} s"}\r
+                dnam{"arcsec"}\r
+                one{"{0} arcsec"}\r
+                other{"{0} arcsec"}\r
             }\r
             degree{\r
                 dnam{"º"}\r
@@ -1165,7 +1194,7 @@ ca{
                 other{"{0}°"}\r
             }\r
             radian{\r
-                dnam{"radiant"}\r
+                dnam{"rad"}\r
                 one{"{0} rad"}\r
                 other{"{0} rad"}\r
             }\r
@@ -1251,6 +1280,16 @@ ca{
                 one{"{0} ppm"}\r
                 other{"{0} ppm"}\r
             }\r
+            percent{\r
+                dnam{"per cent"}\r
+                one{"{0} %"}\r
+                other{"{0} %"}\r
+            }\r
+            permille{\r
+                dnam{"per mil"}\r
+                one{"{0} ‰"}\r
+                other{"{0} ‰"}\r
+            }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
@@ -1275,6 +1314,7 @@ ca{
             }\r
         }\r
         coordinate{\r
+            dnam{"punt"}\r
             east{"{0}E"}\r
             north{"{0}N"}\r
             south{"{0}S"}\r
@@ -1321,6 +1361,11 @@ ca{
                 one{"{0} MB"}\r
                 other{"{0} MB"}\r
             }\r
+            petabyte{\r
+                dnam{"PB"}\r
+                one{"{0} PB"}\r
+                other{"{0} PB"}\r
+            }\r
             terabit{\r
                 dnam{"Tb"}\r
                 one{"{0} Tb"}\r
@@ -1497,8 +1542,8 @@ ca{
             }\r
             inch{\r
                 dnam{"polzades"}\r
-                one{"{0} polz."}\r
-                other{"{0} polz."}\r
+                one{"{0} in"}\r
+                other{"{0} in"}\r
                 per{"{0}/in"}\r
             }\r
             kilometer{\r
@@ -1544,9 +1589,9 @@ ca{
                 other{"{0} nm"}\r
             }\r
             nautical-mile{\r
-                dnam{"nmi"}\r
-                one{"{0} nmi"}\r
-                other{"{0} nmi"}\r
+                dnam{"NM"}\r
+                one{"{0} NM"}\r
+                other{"{0} NM"}\r
             }\r
             parsec{\r
                 dnam{"parsecs"}\r
@@ -1583,7 +1628,7 @@ ca{
                 other{"{0} ct"}\r
             }\r
             gram{\r
-                dnam{"gram"}\r
+                dnam{"grams"}\r
                 one{"{0} g"}\r
                 other{"{0} g"}\r
                 per{"{0}/g"}\r
@@ -1596,7 +1641,7 @@ ca{
             }\r
             metric-ton{\r
                 dnam{"t mètriques"}\r
-                one{"{0} t mètrica"}\r
+                one{"{0} t mètr."}\r
                 other{"{0} t mètr."}\r
             }\r
             microgram{\r
@@ -1665,6 +1710,11 @@ ca{
             }\r
         }\r
         pressure{\r
+            atmosphere{\r
+                dnam{"atm"}\r
+                one{"{0} atm"}\r
+                other{"{0} atm"}\r
+            }\r
             hectopascal{\r
                 dnam{"hPa"}\r
                 one{"{0} hPa"}\r
@@ -1681,9 +1731,9 @@ ca{
                 other{"{0} mbar"}\r
             }\r
             millimeter-of-mercury{\r
-                dnam{"mm Hg"}\r
-                one{"{0} mm Hg"}\r
-                other{"{0} mm Hg"}\r
+                dnam{"mmHg"}\r
+                one{"{0} mmHg"}\r
+                other{"{0} mmHg"}\r
             }\r
             pound-per-square-inch{\r
                 dnam{"psi"}\r
index ed2ccc1..fca6a70 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 ccp{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.50"}\r
     durationUnits{\r
         hm{"h:mm"}\r
         hms{"h:mm:ss"}\r
index 193b0ee..db47bd6 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 ce{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.41.34"}\r
     durationUnits{\r
         hm{"h:mm"}\r
         hms{"h:mm:ss"}\r
index 0f05002..147b4e0 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 chr{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.2"}\r
     durationUnits{\r
         hm{"h:mm"}\r
         hms{"h:mm:ss"}\r
@@ -10,9 +10,9 @@ chr{
     units{\r
         acceleration{\r
             g-force{\r
-                dnam{"ᎠᏓᎾᏌᏁᏍᎩ ᎦᏌᏙᏯᏍᏗ"}\r
-                one{"{0} ᎠᏓᎾᏌᏁᏍᎩ ᎦᏌᏙᏯᏍᏗ"}\r
-                other{"{0} ᎠᏓᎾᏌᏁᏍᎩ ᎦᏌᏙᏯᏍᏗ"}\r
+                dnam{"ᎠᏓᎾᏌᏁᏍᎩ-ᎦᏌᏙᏯᏍᏗ"}\r
+                one{"{0} ᎠᏓᎾᏌᏁᏍᎩ-ᎦᏌᏙᏯᏍᏗ"}\r
+                other{"{0} ᎠᏓᎾᏌᏁᏍᎩ-ᎦᏌᏙᏯᏍᏗ"}\r
             }\r
             meter-per-second-squared{\r
                 dnam{"ᏗᏟᎶᏗ ᎠᏎᏢ ᎢᏳᏓᎵ ᏅᎩ ᏧᏅᏏᎩ"}\r
@@ -123,6 +123,16 @@ chr{
                 one{"{0} ᎤᏙᏢᏒ ᎢᏳᏆᏗᏅᏛ ᎢᏳᏓᎵ"}\r
                 other{"{0} ᏚᏙᏢᏒ ᎢᏳᏆᏗᏅᏛ ᎢᏳᏓᎵ"}\r
             }\r
+            percent{\r
+                dnam{"ᏓᎬᏩᎶᏛ"}\r
+                one{"{0} ᏓᎬᏩᎶᏛ"}\r
+                other{"{0} ᏓᎬᏩᎶᏛ"}\r
+            }\r
+            permille{\r
+                dnam{"ᏈᎻᎴ"}\r
+                one{"{0} ᏈᎻᎴ"}\r
+                other{"{0} ᏈᎻᎴ"}\r
+            }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
@@ -147,6 +157,7 @@ chr{
             }\r
         }\r
         coordinate{\r
+            dnam{"ᏅᎩ ᏫᏂᏚᏳᎪᏛᎢ"}\r
             east{"{0} ᏗᎧᎸᎬ"}\r
             north{"{0} ᏧᏴᏢ"}\r
             south{"{0} ᏧᎦᏄᏮ"}\r
@@ -193,6 +204,11 @@ chr{
                 one{"{0} ᎺᎦ ᎠᏍᎦᎳ"}\r
                 other{"{0} ᎺᎦ ᏗᏓᏍᎦᎵᎩ"}\r
             }\r
+            petabyte{\r
+                dnam{"ᏇᏔ ᏗᏓᏍᎦᎵᎩ"}\r
+                one{"{0} ᏇᏔ ᏗᏓᏍᎦᎵᎩ"}\r
+                other{"{0} ᏇᏔ ᏗᏓᏍᎦᎵᎩ"}\r
+            }\r
             terabit{\r
                 dnam{"ᏕᎳ ᎤᏍᎦᎵᏨ"}\r
                 one{"ᏕᎳ ᎤᏍᎦᎳ"}\r
@@ -507,7 +523,7 @@ chr{
         power{\r
             gigawatt{\r
                 dnam{"ᎩᎦᏩᏗ"}\r
-                one{"{0} ᎩᎦ ᏩᏗ"}\r
+                one{"{0} ᎩᎦᏩᏗ"}\r
                 other{"{0} ᎩᎦᏩᏗ"}\r
             }\r
             horsepower{\r
@@ -537,6 +553,11 @@ chr{
             }\r
         }\r
         pressure{\r
+            atmosphere{\r
+                dnam{"ᏗᎦᏃᎴᏍᎬ"}\r
+                one{"{0} ᎦᏃᎴᏍᎬ"}\r
+                other{"{0} ᏗᎦᏃᎴᏍᎬ"}\r
+            }\r
             hectopascal{\r
                 dnam{"ᎮᏔ ᏗᏆᏌᎵ"}\r
                 one{"{0} ᎮᏔ ᏆᏌᎵ"}\r
@@ -739,14 +760,22 @@ chr{
         compound{\r
             per{"{0}/{1}"}\r
         }\r
+        concentr{\r
+            percent{\r
+                dnam{"%"}\r
+                one{"{0}%"}\r
+                other{"{0}%"}\r
+            }\r
+        }\r
         consumption{\r
             liter-per-100kilometers{\r
                 dnam{"L/100km"}\r
-                one{"{0} L/100km"}\r
-                other{"{0} L/100km"}\r
+                one{"{0}L/100km"}\r
+                other{"{0}L/100km"}\r
             }\r
         }\r
         coordinate{\r
+            dnam{"ᏫᏚᏳᎪᏛ"}\r
             east{"{0}Ꮧ"}\r
             north{"{0}ᏧᏴ"}\r
             south{"{0}ᏧᎦ"}\r
@@ -755,8 +784,8 @@ chr{
         duration{\r
             day{\r
                 dnam{"ᎢᎦ"}\r
-                one{"{0}Ꭲ"}\r
-                other{"{0}Ꭲ"}\r
+                one{"{0}Ꭲ"}\r
+                other{"{0}Ꭲ"}\r
             }\r
             hour{\r
                 dnam{"ᏑᏟᎶᏓ"}\r
@@ -764,9 +793,9 @@ chr{
                 other{"{0}Ꮡ"}\r
             }\r
             millisecond{\r
-                dnam{"msec"}\r
-                one{"{0}ms"}\r
-                other{"{0}ms"}\r
+                dnam{"ᏌᎠ"}\r
+                one{"{0}ᏌᎠ"}\r
+                other{"{0}ᏌᎠ"}\r
             }\r
             minute{\r
                 dnam{"ᎢᏯᏔ"}\r
@@ -780,8 +809,8 @@ chr{
             }\r
             second{\r
                 dnam{"ᎠᏎᏢ"}\r
-                one{"{0}s"}\r
-                other{"{0}s"}\r
+                one{"{0}ᎠᏎ"}\r
+                other{"{0}ᎠᏎ"}\r
             }\r
             week{\r
                 dnam{"ᏒᎾ"}\r
@@ -796,24 +825,24 @@ chr{
         }\r
         length{\r
             centimeter{\r
-                dnam{"cm"}\r
-                one{"{0}cm"}\r
-                other{"{0}cm"}\r
+                dnam{"ᏧᎠ"}\r
+                one{"{0}ᏧᎠ"}\r
+                other{"{0}ᏧᎠ"}\r
             }\r
             kilometer{\r
-                dnam{"km"}\r
-                one{"{0}km"}\r
-                other{"{0}km"}\r
+                dnam{"ᎠᏗ"}\r
+                one{"{0}ᎠᏗ"}\r
+                other{"{0}ᎠᏗ"}\r
             }\r
             meter{\r
-                dnam{"ᎠᏟᎶᏍᏗ"}\r
-                one{"{0}m"}\r
-                other{"{0}m"}\r
+                dnam{"ᎠᏟ"}\r
+                one{"{0}ᎠᏟ"}\r
+                other{"{0}ᎠᏟ"}\r
             }\r
             millimeter{\r
-                dnam{"mm"}\r
-                one{"{0}mm"}\r
-                other{"{0}mm"}\r
+                dnam{"ᏌᎢᎠ"}\r
+                one{"{0}ᏌᎢᎠ"}\r
+                other{"{0}ᏌᎢᎠ"}\r
             }\r
         }\r
         mass{\r
@@ -831,8 +860,8 @@ chr{
         speed{\r
             kilometer-per-hour{\r
                 dnam{"km/hr"}\r
-                one{"{0}kph"}\r
-                other{"{0}kph"}\r
+                one{"{0}km/h"}\r
+                other{"{0}km/h"}\r
             }\r
         }\r
         temperature{\r
@@ -857,7 +886,7 @@ chr{
     unitsShort{\r
         acceleration{\r
             g-force{\r
-                dnam{"ᎠᏓᎾᏌᏁᏍᎩ ᎦᏌᏙᏯᏍᏗ"}\r
+                dnam{"ᎠᏓᎾᏌᏁᏍᎩ-ᎦᏌᏙᏯᏍᏗ"}\r
                 one{"{0} G"}\r
                 other{"{0} G"}\r
             }\r
@@ -897,13 +926,13 @@ chr{
         area{\r
             acre{\r
                 dnam{"ᎢᏧᏟᎶᏓ"}\r
-                one{"{0} ac"}\r
-                other{"{0} ac"}\r
+                one{"{0} ᏑᏟᎶ"}\r
+                other{"{0} ᏑᏟᎶ"}\r
             }\r
             hectare{\r
                 dnam{"ᎮᏔ ᎢᏳᏟᎶᏛ"}\r
-                one{"{0} ha"}\r
-                other{"{0} ha"}\r
+                one{"{0} ᎨᏑ"}\r
+                other{"{0} ᎨᏑ"}\r
             }\r
             square-centimeter{\r
                 dnam{"cm²"}\r
@@ -913,11 +942,11 @@ chr{
             }\r
             square-foot{\r
                 dnam{"ᏅᎩ ᏧᏅᏏᏱ ᎢᏗᎳᏏᏗ"}\r
-                one{"{0} ft²"}\r
-                other{"{0} ft²"}\r
+                one{"{0} sq ft"}\r
+                other{"{0} sq ft"}\r
             }\r
             square-inch{\r
-                dnam{"á\8f\85á\8e© á\8f§á\8f\85á\8f\8fá\8f³ á\8e¢á\8f\97á\8f\8fá\8f\94á\8f\97á\8f\8dá\8f\97"}\r
+                dnam{"á\8e¢á\8f\97á\8f\8fá\8f\94á\8f\97á\8f\8dá\8f\97²"}\r
                 one{"{0} in²"}\r
                 other{"{0} in²"}\r
                 per{"{0}/in²"}\r
@@ -929,19 +958,19 @@ chr{
                 per{"{0}/km²"}\r
             }\r
             square-meter{\r
-                dnam{"á\8f\85á\8e© á\8f§á\8f\85á\8f\8fá\8f± á\8f\97á\8f\9fá\8e¶á\8f\8dá\8f\97"}\r
+                dnam{"á\8f\97á\8f\9fá\8e¶á\8f\8dá\8f\97²"}\r
                 one{"{0} m²"}\r
                 other{"{0} m²"}\r
                 per{"{0}/m²"}\r
             }\r
             square-mile{\r
                 dnam{"ᏅᎩ ᏧᏅᏏᏱ ᎢᏳᏟᎶᏓ"}\r
-                one{"{0} sq mi"}\r
-                other{"{0} sq mi"}\r
+                one{"{0} ᏅᏧᎢ"}\r
+                other{"{0} ᏅᏧᎢ"}\r
                 per{"{0}/mi²"}\r
             }\r
             square-yard{\r
-                dnam{"á\8f\85á\8e© á\8f§á\8f\85á\8f\8fá\8f± á\8f\97á\8f¯á\8f¯á\8f\97"}\r
+                dnam{"á\8f\97á\8f¯á\8f¯á\8f\97²"}\r
                 one{"{0} yd²"}\r
                 other{"{0} yd²"}\r
             }\r
@@ -970,6 +999,16 @@ chr{
                 one{"{0} ppm"}\r
                 other{"{0} ppm"}\r
             }\r
+            percent{\r
+                dnam{"ᏓᎬᏩᎶᏛ"}\r
+                one{"{0}%"}\r
+                other{"{0}%"}\r
+            }\r
+            permille{\r
+                dnam{"ᏈᎻᎴ"}\r
+                one{"{0}‰"}\r
+                other{"{0}‰"}\r
+            }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
@@ -994,6 +1033,7 @@ chr{
             }\r
         }\r
         coordinate{\r
+            dnam{"ᏫᏚᏳᎪᏛ"}\r
             east{"{0} Ꮧ"}\r
             north{"{0} ᏧᏴ"}\r
             south{"{0} ᏧᎦ"}\r
@@ -1040,6 +1080,11 @@ chr{
                 one{"{0} MB"}\r
                 other{"{0} MB"}\r
             }\r
+            petabyte{\r
+                dnam{"PByte"}\r
+                one{"{0} PB"}\r
+                other{"{0} PB"}\r
+            }\r
             terabit{\r
                 dnam{"ᏕᎳ ᎤᏍᎦᎳ"}\r
                 one{"{0} Tb"}\r
@@ -1053,20 +1098,20 @@ chr{
         }\r
         duration{\r
             century{\r
-                dnam{"c"}\r
-                one{"{0} c"}\r
-                other{"{0} c"}\r
+                dnam{"ᏍᏧ"}\r
+                one{"{0} ᏍᏧ"}\r
+                other{"{0} ᏍᏧ"}\r
             }\r
             day{\r
                 dnam{"ᎯᎸᏍᎩ ᏧᏒᎯᏓ"}\r
                 one{"{0} ᎢᎦ"}\r
                 other{"{0} ᏧᏒᎯᏓ"}\r
-                per{"{0}/Ꭲ"}\r
+                per{"{0}/Ꭲ"}\r
             }\r
             hour{\r
                 dnam{"ᎢᏳᏟᎶᏓ"}\r
                 one{"{0} ᏑᏟ"}\r
-                other{"{0} á\8e¢á\8f³Ꮯ"}\r
+                other{"{0} á\8f\91Ꮯ"}\r
                 per{"{0}/Ꮡ"}\r
             }\r
             microsecond{\r
@@ -1076,8 +1121,8 @@ chr{
             }\r
             millisecond{\r
                 dnam{"ᏌᏉ ᎢᏯᎦᎨᎵᏁᎢ ᏗᏎᏢ"}\r
-                one{"{0} ms"}\r
-                other{"{0} ms"}\r
+                one{"{0} ᏌᎠ"}\r
+                other{"{0} ᏌᎠ"}\r
             }\r
             minute{\r
                 dnam{"ᎢᏯᏔᏬᏍᏔᏅ"}\r
@@ -1093,14 +1138,14 @@ chr{
             }\r
             nanosecond{\r
                 dnam{"ᎾᏃᏗᏎᏢ"}\r
-                one{"{0} ns"}\r
-                other{"{0} ns"}\r
+                one{"{0} ᎾᏃ"}\r
+                other{"{0} ᎾᏃ"}\r
             }\r
             second{\r
                 dnam{"ᏓᏓᎾ"}\r
                 one{"{0} ᎠᏎᏢ"}\r
                 other{"{0} ᎠᏎᏢ"}\r
-                per{"{0}/s"}\r
+                per{"{0}/ᎠᏎ"}\r
             }\r
             week{\r
                 dnam{"ᎢᏳᎾᏙᏓᏆᏍᏗ"}\r
@@ -1193,49 +1238,49 @@ chr{
         }\r
         length{\r
             astronomical-unit{\r
-                dnam{"au"}\r
-                one{"{0} au"}\r
-                other{"{0} au"}\r
+                dnam{"ᎡᎨ"}\r
+                one{"{0} ᎡᎨ"}\r
+                other{"{0} ᎡᎨ"}\r
             }\r
             centimeter{\r
-                dnam{"cm"}\r
-                one{"{0} cm"}\r
-                other{"{0} cm"}\r
-                per{"{0}/cm"}\r
+                dnam{"ᏧᎠ"}\r
+                one{"{0} ᏧᎠ"}\r
+                other{"{0} ᏧᎠ"}\r
+                per{"{0}/ᏧᎠ"}\r
             }\r
             decimeter{\r
-                dnam{"dm"}\r
-                one{"{0} dm"}\r
-                other{"{0} dm"}\r
+                dnam{"ᏌᏟ"}\r
+                one{"{0} ᏌᏟ"}\r
+                other{"{0} ᏌᏟ"}\r
             }\r
             foot{\r
                 dnam{"ᎢᏗᎳᏏᏗ"}\r
-                one{"{0} ft"}\r
-                other{"{0} ft"}\r
-                per{"{0}/ft"}\r
+                one{"{0} ᎢᏗᎳ"}\r
+                other{"{0} ᎢᏗᎳ"}\r
+                per{"{0}/ᎢᏗᎳ"}\r
             }\r
             inch{\r
                 dnam{"ᎢᏗᏏᏔᏗᏍᏗ"}\r
-                one{"{0} in"}\r
-                other{"{0} in"}\r
-                per{"{0}/in"}\r
+                one{"{0} ᎢᏏᏔ"}\r
+                other{"{0} ᎢᏏᏔ"}\r
+                per{"{0}/ᎢᏏᏔ"}\r
             }\r
             kilometer{\r
-                dnam{"km"}\r
-                one{"{0} km"}\r
-                other{"{0} km"}\r
-                per{"{0}/km"}\r
+                dnam{"ᎠᏗ"}\r
+                one{"{0} ᎠᏗ"}\r
+                other{"{0} ᎠᏗ"}\r
+                per{"{0}/ᎠᏗ"}\r
             }\r
             light-year{\r
                 dnam{"ᏗᏨᏍᏗ ᏧᏕᏘ"}\r
-                one{"{0} ly"}\r
-                other{"{0} ly"}\r
+                one{"{0} ᏗᏧ"}\r
+                other{"{0} ᏗᏧ"}\r
             }\r
             meter{\r
-                dnam{"á\8f\97á\8f\9fá\8e¶á\8f\8dá\8f\97"}\r
-                one{"{0} m"}\r
-                other{"{0} m"}\r
-                per{"{0}/m"}\r
+                dnam{"á\8e á\8f\9f"}\r
+                one{"{0} ᎠᏟ"}\r
+                other{"{0} ᎠᏟ"}\r
+                per{"{0}/ᎠᏟ"}\r
             }\r
             micrometer{\r
                 dnam{"µm"}\r
@@ -1244,38 +1289,38 @@ chr{
             }\r
             mile{\r
                 dnam{"ᎢᏳᏟᎶᏓ"}\r
-                one{"{0} mi"}\r
-                other{"{0} mi"}\r
+                one{"{0} ᎢᏳ"}\r
+                other{"{0} ᎢᏳ"}\r
             }\r
             mile-scandinavian{\r
-                dnam{"smi"}\r
-                one{"{0} smi"}\r
-                other{"{0} smi"}\r
+                dnam{"ᏍᏑ"}\r
+                one{"{0} ᏍᏑ"}\r
+                other{"{0} ᏍᏑ"}\r
             }\r
             millimeter{\r
-                dnam{"mm"}\r
-                one{"{0} mm"}\r
-                other{"{0} mm"}\r
+                dnam{"ᏌᎢᎠ"}\r
+                one{"{0} ᏌᎢᎠ"}\r
+                other{"{0} ᏌᎢᎠ"}\r
             }\r
             nanometer{\r
-                dnam{"nm"}\r
-                one{"{0} nm"}\r
-                other{"{0} nm"}\r
+                dnam{"ᎾᎠ"}\r
+                one{"{0} ᎾᎠ"}\r
+                other{"{0} ᎾᎠ"}\r
             }\r
             nautical-mile{\r
-                dnam{"nmi"}\r
-                one{"{0} nmi"}\r
-                other{"{0} nmi"}\r
+                dnam{"ᎠᎺᎢ"}\r
+                one{"{0} ᎠᎺᎢ"}\r
+                other{"{0} ᎠᎺᎢ"}\r
             }\r
             parsec{\r
                 dnam{"ᎢᏯᏆᏎᎦ"}\r
-                one{"{0} pc"}\r
-                other{"{0} pc"}\r
+                one{"{0} ᎢᏆ"}\r
+                other{"{0} ᎢᏆ"}\r
             }\r
             picometer{\r
-                dnam{"pm"}\r
-                one{"{0} pm"}\r
-                other{"{0} pm"}\r
+                dnam{"ᏇᎢᎠ"}\r
+                one{"{0} ᏇᎢᎠ"}\r
+                other{"{0} ᏇᎢᎠ"}\r
             }\r
             point{\r
                 dnam{"ᏧᏓᏓᏟ"}\r
@@ -1284,8 +1329,8 @@ chr{
             }\r
             yard{\r
                 dnam{"ᎢᏯᏯᏗ"}\r
-                one{"{0} yd"}\r
-                other{"{0} yd"}\r
+                one{"{0} ᏯᏗ"}\r
+                other{"{0} ᏯᏗ"}\r
             }\r
         }\r
         light{\r
@@ -1384,13 +1429,18 @@ chr{
             }\r
         }\r
         pressure{\r
+            atmosphere{\r
+                dnam{"atm"}\r
+                one{"{0} atm"}\r
+                other{"{0} atm"}\r
+            }\r
             hectopascal{\r
                 dnam{"hPa"}\r
                 one{"{0} hPa"}\r
                 other{"{0} hPa"}\r
             }\r
             inch-hg{\r
-                dnam{"in Hg"}\r
+                dnam{"inHg"}\r
                 one{"{0} inHg"}\r
                 other{"{0} inHg"}\r
             }\r
@@ -1400,9 +1450,9 @@ chr{
                 other{"{0} mbar"}\r
             }\r
             millimeter-of-mercury{\r
-                dnam{"mm Hg"}\r
-                one{"{0} mm Hg"}\r
-                other{"{0} mm Hg"}\r
+                dnam{"mmHg"}\r
+                one{"{0} mmHg"}\r
+                other{"{0} mmHg"}\r
             }\r
             pound-per-square-inch{\r
                 dnam{"psi"}\r
@@ -1413,8 +1463,8 @@ chr{
         speed{\r
             kilometer-per-hour{\r
                 dnam{"km/ᏑᏟᎶᏓ"}\r
-                one{"{0} kph"}\r
-                other{"{0} kph"}\r
+                one{"{0} km/h"}\r
+                other{"{0} km/h"}\r
             }\r
             knot{\r
                 dnam{"kn"}\r
@@ -1428,8 +1478,8 @@ chr{
             }\r
             mile-per-hour{\r
                 dnam{"ᎢᏧᏟᎶᏓ/ᏑᏟᎶᏛ"}\r
-                one{"{0} mi/h"}\r
-                other{"{0} mi/h"}\r
+                one{"{0} mph"}\r
+                other{"{0} mph"}\r
             }\r
         }\r
         temperature{\r
@@ -1472,12 +1522,12 @@ chr{
                 per{"{0}/cm³"}\r
             }\r
             cubic-foot{\r
-                dnam{"á\8f\85á\8e© á\8f§á\8f\85á\8f\8fá\8f¯ á\8e¢á\8f\97á\8e³á\8f\8fá\8f\97"}\r
+                dnam{"á\8e¢á\8f\97á\8e³á\8f\8fá\8f\97³"}\r
                 one{"{0} ft³"}\r
                 other{"{0} ft³"}\r
             }\r
             cubic-inch{\r
-                dnam{"á\8f\85á\8e© á\8f§á\8f\85á\8f\8fá\8f¯ á\8e¢á\8f\97á\8f\8fá\8f\94á\8f\97á\8f\8dá\8f\97"}\r
+                dnam{"á\8e¢á\8f\97á\8f\8fá\8f\94á\8f\97á\8f\8dá\8f\97³"}\r
                 one{"{0} in³"}\r
                 other{"{0} in³"}\r
             }\r
@@ -1498,7 +1548,7 @@ chr{
                 other{"{0} mi³"}\r
             }\r
             cubic-yard{\r
-                dnam{"á\8f\85á\8e© á\8f§á\8f\85á\8f\8fá\8f¯ á\8e¢á\8f¯á\8f¯á\8f\97"}\r
+                dnam{"á\8e¢á\8f¯á\8f¯á\8f\97³"}\r
                 one{"{0} yd³"}\r
                 other{"{0} yd³"}\r
             }\r
index e2239e9..e7b733d 100644 (file)
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 ckb{\r
-    Version{"2.1.38.71"}\r
+    Version{"2.1.44.88"}\r
 }\r
index 9d6ab18..0a7d54d 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 cs{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.91"}\r
     durationUnits{\r
         hm{"h:mm"}\r
         hms{"h:mm:ss"}\r
@@ -163,6 +163,20 @@ cs{
                 one{"{0} díl z milionu"}\r
                 other{"{0} dílů z milionu"}\r
             }\r
+            percent{\r
+                dnam{"procenta"}\r
+                few{"{0} procenta"}\r
+                many{"{0} procenta"}\r
+                one{"{0} procento"}\r
+                other{"{0} procent"}\r
+            }\r
+            permille{\r
+                dnam{"promile"}\r
+                few{"{0} promile"}\r
+                many{"{0} promile"}\r
+                one{"{0} promile"}\r
+                other{"{0} promile"}\r
+            }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
@@ -195,6 +209,7 @@ cs{
             }\r
         }\r
         coordinate{\r
+            dnam{"světová strana"}\r
             east{"{0} východní délky"}\r
             north{"{0} severní šířky"}\r
             south{"{0} jižní šířky"}\r
@@ -257,6 +272,13 @@ cs{
                 one{"{0} megabajt"}\r
                 other{"{0} megabajtů"}\r
             }\r
+            petabyte{\r
+                dnam{"petabajty"}\r
+                few{"{0} petabajty"}\r
+                many{"{0} petabajtu"}\r
+                one{"{0} petabajt"}\r
+                other{"{0} petabajtů"}\r
+            }\r
             terabit{\r
                 dnam{"terabity"}\r
                 few{"{0} terabity"}\r
@@ -746,6 +768,13 @@ cs{
             }\r
         }\r
         pressure{\r
+            atmosphere{\r
+                dnam{"atmosféry"}\r
+                few{"{0} atmosféry"}\r
+                many{"{0} atmosféry"}\r
+                one{"{0} atmosféra"}\r
+                other{"{0} atmosfér"}\r
+            }\r
             hectopascal{\r
                 dnam{"hektopascaly"}\r
                 few{"{0} hektopascaly"}\r
@@ -1181,6 +1210,13 @@ cs{
                 one{"{0} ppm"}\r
                 other{"{0} ppm"}\r
             }\r
+            percent{\r
+                dnam{"%"}\r
+                few{"{0} %"}\r
+                many{"{0} %"}\r
+                one{"{0} %"}\r
+                other{"{0} %"}\r
+            }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
@@ -1209,6 +1245,7 @@ cs{
             }\r
         }\r
         coordinate{\r
+            dnam{"směr"}\r
             east{"{0}E"}\r
             north{"{0}N"}\r
             south{"{0}S"}\r
@@ -1501,10 +1538,10 @@ cs{
             }\r
             fathom{\r
                 dnam{"fm"}\r
-                few{"{0} fm"}\r
-                many{"{0} fm"}\r
-                one{"{0} fm"}\r
-                other{"{0} fm"}\r
+                few{"{0} fth"}\r
+                many{"{0} fth"}\r
+                one{"{0} fth"}\r
+                other{"{0} fth"}\r
             }\r
             foot{\r
                 dnam{"ft"}\r
@@ -2190,6 +2227,20 @@ cs{
                 one{"{0} ppm"}\r
                 other{"{0} ppm"}\r
             }\r
+            percent{\r
+                dnam{"%"}\r
+                few{"{0} %"}\r
+                many{"{0} %"}\r
+                one{"{0} %"}\r
+                other{"{0} %"}\r
+            }\r
+            permille{\r
+                dnam{"‰"}\r
+                few{"{0} ‰"}\r
+                many{"{0} ‰"}\r
+                one{"{0} ‰"}\r
+                other{"{0} ‰"}\r
+            }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
@@ -2222,6 +2273,7 @@ cs{
             }\r
         }\r
         coordinate{\r
+            dnam{"směr"}\r
             east{"{0} v. d."}\r
             north{"{0} s. š."}\r
             south{"{0} j. š."}\r
@@ -2284,6 +2336,13 @@ cs{
                 one{"{0} MB"}\r
                 other{"{0} MB"}\r
             }\r
+            petabyte{\r
+                dnam{"PB"}\r
+                few{"{0} PB"}\r
+                many{"{0} PB"}\r
+                one{"{0} PB"}\r
+                other{"{0} PB"}\r
+            }\r
             terabit{\r
                 dnam{"Tb"}\r
                 few{"{0} Tb"}\r
@@ -2514,10 +2573,10 @@ cs{
             }\r
             fathom{\r
                 dnam{"fm"}\r
-                few{"{0} fm"}\r
-                many{"{0} fm"}\r
-                one{"{0} fm"}\r
-                other{"{0} fm"}\r
+                few{"{0} fth"}\r
+                many{"{0} fth"}\r
+                one{"{0} fth"}\r
+                other{"{0} fth"}\r
             }\r
             foot{\r
                 dnam{"ft"}\r
@@ -2773,6 +2832,13 @@ cs{
             }\r
         }\r
         pressure{\r
+            atmosphere{\r
+                dnam{"atm"}\r
+                few{"{0} atm"}\r
+                many{"{0} atm"}\r
+                one{"{0} atm"}\r
+                other{"{0} atm"}\r
+            }\r
             hectopascal{\r
                 dnam{"hPa"}\r
                 few{"{0} hPa"}\r
index 5597fd2..e52dfe6 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 cy{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.91"}\r
     durationUnits{\r
         hm{"h:mm"}\r
         hms{"h:mm:ss"}\r
@@ -203,6 +203,24 @@ cy{
                 two{"{0} rhan pob miliwn"}\r
                 zero{"{0} rhan pob miliwn"}\r
             }\r
+            percent{\r
+                dnam{"y cant"}\r
+                few{"{0}%"}\r
+                many{"{0}%"}\r
+                one{"{0} y cant"}\r
+                other{"{0} y cant"}\r
+                two{"{0}%"}\r
+                zero{"{0}%"}\r
+            }\r
+            permille{\r
+                dnam{"permille"}\r
+                few{"{0}‰"}\r
+                many{"{0}‰"}\r
+                one{"{0} permille"}\r
+                other{"{0} permille"}\r
+                two{"{0}‰"}\r
+                zero{"{0}‰"}\r
+            }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
@@ -243,6 +261,7 @@ cy{
             }\r
         }\r
         coordinate{\r
+            dnam{"cyfeiriad cardinal"}\r
             east{"{0} i’r dwyrain"}\r
             north{"{0} i’r gogledd"}\r
             south{"{0} i’r de"}\r
@@ -321,6 +340,15 @@ cy{
                 two{"{0} fegabeit"}\r
                 zero{"{0} megabeit"}\r
             }\r
+            petabyte{\r
+                dnam{"petabyte"}\r
+                few{"{0} PB"}\r
+                many{"{0} PB"}\r
+                one{"{0} petabyte"}\r
+                other{"{0} petabyte"}\r
+                two{"{0} PB"}\r
+                zero{"{0} PB"}\r
+            }\r
             terabit{\r
                 dnam{"teradidau"}\r
                 few{"{0} teradid"}\r
@@ -940,6 +968,15 @@ cy{
             }\r
         }\r
         pressure{\r
+            atmosphere{\r
+                dnam{"atmosfferau"}\r
+                few{"{0} atm"}\r
+                many{"{0} atm"}\r
+                one{"{0} atmosffer"}\r
+                other{"{0} atmosffer"}\r
+                two{"{0} atm"}\r
+                zero{"{0} atm"}\r
+            }\r
             hectopascal{\r
                 dnam{"hectopascalau"}\r
                 few{"{0} hectopascal"}\r
@@ -1411,6 +1448,17 @@ cy{
         compound{\r
             per{"{0}/{1}"}\r
         }\r
+        concentr{\r
+            percent{\r
+                dnam{"%"}\r
+                few{"{0}%"}\r
+                many{"{0}%"}\r
+                one{"{0}%"}\r
+                other{"{0}%"}\r
+                two{"{0}%"}\r
+                zero{"{0}%"}\r
+            }\r
+        }\r
         consumption{\r
             liter-per-100kilometers{\r
                 dnam{"L/100km"}\r
@@ -1432,6 +1480,7 @@ cy{
             }\r
         }\r
         coordinate{\r
+            dnam{"cyfeiriad"}\r
             east{"{0}dn"}\r
             north{"{0}g"}\r
             south{"{0}d"}\r
@@ -1746,12 +1795,12 @@ cy{
             }\r
             fathom{\r
                 dnam{"gwrhydau"}\r
-                few{"{0}fm"}\r
-                many{"{0}fm"}\r
-                one{"{0}fm"}\r
-                other{"{0}fm"}\r
-                two{"{0}fm"}\r
-                zero{"{0}fm"}\r
+                few{"{0}fth"}\r
+                many{"{0}fth"}\r
+                one{"{0}fth"}\r
+                other{"{0}fth"}\r
+                two{"{0}fth"}\r
+                zero{"{0}fth"}\r
             }\r
             foot{\r
                 dnam{"troedfedd"}\r
@@ -2456,6 +2505,24 @@ cy{
                 two{"{0} ppm"}\r
                 zero{"{0} ppm"}\r
             }\r
+            percent{\r
+                dnam{"y cant"}\r
+                few{"{0}%"}\r
+                many{"{0}%"}\r
+                one{"{0}%"}\r
+                other{"{0}%"}\r
+                two{"{0}%"}\r
+                zero{"{0}%"}\r
+            }\r
+            permille{\r
+                dnam{"permille"}\r
+                few{"{0}‰"}\r
+                many{"{0}‰"}\r
+                one{"{0}‰"}\r
+                other{"{0}‰"}\r
+                two{"{0}‰"}\r
+                zero{"{0}‰"}\r
+            }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
@@ -2496,6 +2563,7 @@ cy{
             }\r
         }\r
         coordinate{\r
+            dnam{"cyfeiriad"}\r
             east{"{0} dn"}\r
             north{"{0} g"}\r
             south{"{0} d"}\r
@@ -2574,6 +2642,15 @@ cy{
                 two{"{0} MB"}\r
                 zero{"{0} MB"}\r
             }\r
+            petabyte{\r
+                dnam{"PByte"}\r
+                few{"{0} PB"}\r
+                many{"{0} PB"}\r
+                one{"{0} PB"}\r
+                other{"{0} PB"}\r
+                two{"{0} PB"}\r
+                zero{"{0} PB"}\r
+            }\r
             terabit{\r
                 dnam{"Tb"}\r
                 few{"{0} Tb"}\r
@@ -3187,6 +3264,15 @@ cy{
             }\r
         }\r
         pressure{\r
+            atmosphere{\r
+                dnam{"atm"}\r
+                few{"{0} atm"}\r
+                many{"{0} atm"}\r
+                one{"{0} atm"}\r
+                other{"{0} atm"}\r
+                two{"{0} atm"}\r
+                zero{"{0} atm"}\r
+            }\r
             hectopascal{\r
                 dnam{"hPa"}\r
                 few{"{0} hPa"}\r
index 8943e2a..1afff6b 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 da{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.65"}\r
     durationUnits{\r
         hm{"h.mm"}\r
         hms{"h.mm.ss"}\r
@@ -123,6 +123,16 @@ da{
                 one{"{0} parts per million"}\r
                 other{"{0} parts per million"}\r
             }\r
+            percent{\r
+                dnam{"procent"}\r
+                one{"{0} procent"}\r
+                other{"{0} procent"}\r
+            }\r
+            permille{\r
+                dnam{"promille"}\r
+                one{"{0} promille"}\r
+                other{"{0} promille"}\r
+            }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
@@ -147,6 +157,7 @@ da{
             }\r
         }\r
         coordinate{\r
+            dnam{"kompasretning"}\r
             east{"{0} øst"}\r
             north{"{0} nord"}\r
             south{"{0} syd"}\r
@@ -159,9 +170,9 @@ da{
                 other{"{0} bit"}\r
             }\r
             byte{\r
-                dnam{"byte"}\r
+                dnam{"bytes"}\r
                 one{"{0} byte"}\r
-                other{"{0} byte"}\r
+                other{"{0} bytes"}\r
             }\r
             gigabit{\r
                 dnam{"gigabit"}\r
@@ -169,9 +180,9 @@ da{
                 other{"{0} gigabit"}\r
             }\r
             gigabyte{\r
-                dnam{"gigabyte"}\r
+                dnam{"gigabytes"}\r
                 one{"{0} gigabyte"}\r
-                other{"{0} GB"}\r
+                other{"{0} gigabytes"}\r
             }\r
             kilobit{\r
                 dnam{"kilobit"}\r
@@ -179,9 +190,9 @@ da{
                 other{"{0} kilobit"}\r
             }\r
             kilobyte{\r
-                dnam{"kilobyte"}\r
+                dnam{"kilobytes"}\r
                 one{"{0} kilobyte"}\r
-                other{"{0} kilobyte"}\r
+                other{"{0} kilobytes"}\r
             }\r
             megabit{\r
                 dnam{"megabit"}\r
@@ -189,9 +200,14 @@ da{
                 other{"{0} megabit"}\r
             }\r
             megabyte{\r
-                dnam{"megabyte"}\r
+                dnam{"megabytes"}\r
                 one{"{0} megabyte"}\r
-                other{"{0} megabyte"}\r
+                other{"{0} megabytes"}\r
+            }\r
+            petabyte{\r
+                dnam{"petabytes"}\r
+                one{"{0} petabyte"}\r
+                other{"{0} petabytes"}\r
             }\r
             terabit{\r
                 dnam{"terabit"}\r
@@ -199,9 +215,9 @@ da{
                 other{"{0} terabit"}\r
             }\r
             terabyte{\r
-                dnam{"terabyte"}\r
+                dnam{"terabytes"}\r
                 one{"{0} terabyte"}\r
-                other{"{0} terabyte"}\r
+                other{"{0} terabytes"}\r
             }\r
         }\r
         duration{\r
@@ -537,6 +553,11 @@ da{
             }\r
         }\r
         pressure{\r
+            atmosphere{\r
+                dnam{"atmosfære"}\r
+                one{"{0} atmosfære"}\r
+                other{"{0} atmosfære"}\r
+            }\r
             hectopascal{\r
                 dnam{"hektopascal"}\r
                 one{"{0} hektopascal"}\r
@@ -785,6 +806,13 @@ da{
         compound{\r
             per{"{0}/{1}"}\r
         }\r
+        concentr{\r
+            percent{\r
+                dnam{"%"}\r
+                one{"{0} %"}\r
+                other{"{0} %"}\r
+            }\r
+        }\r
         consumption{\r
             liter-per-100kilometers{\r
                 dnam{"l/100 km"}\r
@@ -793,6 +821,7 @@ da{
             }\r
         }\r
         coordinate{\r
+            dnam{"retning"}\r
             east{"{0}Ø"}\r
             north{"{0}N"}\r
             south{"{0}S"}\r
@@ -1072,12 +1101,12 @@ da{
         }\r
         angle{\r
             arc-minute{\r
-                dnam{"bueminutter"}\r
+                dnam{"buemin."}\r
                 one{"{0}′"}\r
                 other{"{0}′"}\r
             }\r
             arc-second{\r
-                dnam{"buesekunder"}\r
+                dnam{"buesek."}\r
                 one{"{0}″"}\r
                 other{"{0}″"}\r
             }\r
@@ -1155,8 +1184,8 @@ da{
         concentr{\r
             karat{\r
                 dnam{"karat"}\r
-                one{"{0} kt"}\r
-                other{"{0} kt"}\r
+                one{"{0} kt."}\r
+                other{"{0} kt."}\r
             }\r
             milligram-per-deciliter{\r
                 dnam{"mg/dl"}\r
@@ -1173,6 +1202,16 @@ da{
                 one{"{0} ppm"}\r
                 other{"{0} ppm"}\r
             }\r
+            percent{\r
+                dnam{"pct."}\r
+                one{"{0} pct."}\r
+                other{"{0} pct."}\r
+            }\r
+            permille{\r
+                dnam{"‰"}\r
+                one{"{0} ‰"}\r
+                other{"{0} ‰"}\r
+            }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
@@ -1197,6 +1236,7 @@ da{
             }\r
         }\r
         coordinate{\r
+            dnam{"retning"}\r
             east{"{0}Ø"}\r
             north{"{0}N"}\r
             south{"{0}S"}\r
@@ -1224,9 +1264,9 @@ da{
                 other{"{0} GB"}\r
             }\r
             kilobit{\r
-                dnam{"kb"}\r
-                one{"{0} kb"}\r
-                other{"{0} kb"}\r
+                dnam{"kbit"}\r
+                one{"{0} kbit"}\r
+                other{"{0} kbit"}\r
             }\r
             kilobyte{\r
                 dnam{"kB"}\r
@@ -1234,19 +1274,24 @@ da{
                 other{"{0} kB"}\r
             }\r
             megabit{\r
-                dnam{"Mb"}\r
-                one{"{0} Mb"}\r
-                other{"{0} Mb"}\r
+                dnam{"Mbit"}\r
+                one{"{0} Mbit"}\r
+                other{"{0} Mbit"}\r
             }\r
             megabyte{\r
                 dnam{"MB"}\r
                 one{"{0} MB"}\r
                 other{"{0} MB"}\r
             }\r
+            petabyte{\r
+                dnam{"PB"}\r
+                one{"{0} PB"}\r
+                other{"{0} PB"}\r
+            }\r
             terabit{\r
-                dnam{"Tb"}\r
-                one{"{0} Tb"}\r
-                other{"{0} Tb"}\r
+                dnam{"Tbit"}\r
+                one{"{0} Tbit"}\r
+                other{"{0} Tbit"}\r
             }\r
             terabyte{\r
                 dnam{"TB"}\r
@@ -1587,6 +1632,11 @@ da{
             }\r
         }\r
         pressure{\r
+            atmosphere{\r
+                dnam{"atm"}\r
+                one{"{0} atm"}\r
+                other{"{0} atm"}\r
+            }\r
             hectopascal{\r
                 dnam{"hPa"}\r
                 one{"{0} hPa"}\r
index a12babf..bc858df 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 de{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.91"}\r
     durationUnits{\r
         hm{"h:mm"}\r
         hms{"h:mm:ss"}\r
@@ -123,6 +123,16 @@ de{
                 one{"{0} Parts per million"}\r
                 other{"{0} Parts per million"}\r
             }\r
+            percent{\r
+                dnam{"Prozent"}\r
+                one{"{0} Prozent"}\r
+                other{"{0} Prozent"}\r
+            }\r
+            permille{\r
+                dnam{"Promille"}\r
+                one{"{0} Promille"}\r
+                other{"{0} Promille"}\r
+            }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
@@ -147,6 +157,7 @@ de{
             }\r
         }\r
         coordinate{\r
+            dnam{"Himmelsrichtung"}\r
             east{"{0} Ost"}\r
             north{"{0} Nord"}\r
             south{"{0} Süd"}\r
@@ -193,6 +204,11 @@ de{
                 one{"{0} Megabyte"}\r
                 other{"{0} Megabytes"}\r
             }\r
+            petabyte{\r
+                dnam{"Petabytes"}\r
+                one{"{0} Petabyte"}\r
+                other{"{0} Petabytes"}\r
+            }\r
             terabit{\r
                 dnam{"Terabits"}\r
                 one{"{0} Terabit"}\r
@@ -552,6 +568,11 @@ de{
             }\r
         }\r
         pressure{\r
+            atmosphere{\r
+                dnam{"Atmosphären"}\r
+                one{"{0} Atmosphäre"}\r
+                other{"{0} Atmosphären"}\r
+            }\r
             hectopascal{\r
                 dnam{"Hektopascal"}\r
                 one{"{0} Hektopascal"}\r
@@ -833,6 +854,11 @@ de{
                 one{"{0} kt"}\r
                 other{"{0} kt"}\r
             }\r
+            percent{\r
+                dnam{"%"}\r
+                one{"{0} %"}\r
+                other{"{0} %"}\r
+            }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
@@ -850,6 +876,7 @@ de{
             }\r
         }\r
         coordinate{\r
+            dnam{"NOSW"}\r
             east{"{0}O"}\r
             north{"{0} N"}\r
             south{"{0} S"}\r
@@ -1040,8 +1067,8 @@ de{
             }\r
             fathom{\r
                 dnam{"Faden"}\r
-                one{"{0} fm"}\r
-                other{"{0} fm"}\r
+                one{"{0} fth"}\r
+                other{"{0} fth"}\r
             }\r
             foot{\r
                 dnam{"ft"}\r
@@ -1494,6 +1521,16 @@ de{
                 one{"{0} ppm"}\r
                 other{"{0} ppm"}\r
             }\r
+            percent{\r
+                dnam{"%"}\r
+                one{"{0} %"}\r
+                other{"{0} %"}\r
+            }\r
+            permille{\r
+                dnam{"‰"}\r
+                one{"{0} ‰"}\r
+                other{"{0} ‰"}\r
+            }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
@@ -1518,6 +1555,7 @@ de{
             }\r
         }\r
         coordinate{\r
+            dnam{"Richtung"}\r
             east{"{0} O"}\r
             north{"{0} N"}\r
             south{"{0} S"}\r
@@ -1564,6 +1602,11 @@ de{
                 one{"{0} MB"}\r
                 other{"{0} MB"}\r
             }\r
+            petabyte{\r
+                dnam{"PB"}\r
+                one{"{0} PB"}\r
+                other{"{0} PB"}\r
+            }\r
             terabit{\r
                 dnam{"Tb"}\r
                 one{"{0} Tb"}\r
@@ -1734,8 +1777,8 @@ de{
             }\r
             fathom{\r
                 dnam{"Faden"}\r
-                one{"{0} fm"}\r
-                other{"{0} fm"}\r
+                one{"{0} fth"}\r
+                other{"{0} fth"}\r
             }\r
             foot{\r
                 dnam{"Fuß"}\r
@@ -1923,6 +1966,11 @@ de{
             }\r
         }\r
         pressure{\r
+            atmosphere{\r
+                dnam{"atm"}\r
+                one{"{0} atm"}\r
+                other{"{0} atm"}\r
+            }\r
             hectopascal{\r
                 dnam{"hPa"}\r
                 one{"{0} hPa"}\r
index 7ab5fb6..93a6252 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 de_CH{\r
-    Version{"2.1.39.37"}\r
+    Version{"2.1.44.50"}\r
     units{\r
         area{\r
             square-foot{\r
@@ -30,6 +30,7 @@ de_CH{
                 other{"{0} Kubikfuss"}\r
             }\r
             gallon-imperial{\r
+                one{"{0} gal Imp."}\r
                 other{"{0} gal Imp."}\r
                 per{"{0}/gal Imp."}\r
             }\r
index 843ebe4..1cad283 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 dsb{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.41.34"}\r
     durationUnits{\r
         hm{"h:mm"}\r
         hms{"h:mm:ss"}\r
index 86b791b..7f13311 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 dz{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.41.34"}\r
     units{\r
         duration{\r
             day{\r
index 531a902..9b06d21 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 ee{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.88"}\r
     units{\r
         duration{\r
             day{\r
index 01415f5..6110778 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 el{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.65"}\r
     durationUnits{\r
         hm{"h:mm"}\r
         hms{"h:mm:ss"}\r
@@ -123,6 +123,16 @@ el{
                 one{"{0} μέρος ανά εκατομμύριο"}\r
                 other{"{0} μέρη ανά εκατομμύριο"}\r
             }\r
+            percent{\r
+                dnam{"τοις εκατό"}\r
+                one{"{0} τοις εκατό"}\r
+                other{"{0} τοις εκατό"}\r
+            }\r
+            permille{\r
+                dnam{"τοις χιλίοις"}\r
+                one{"{0} τοις χιλίοις"}\r
+                other{"{0} τοις χιλίοις"}\r
+            }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
@@ -147,10 +157,11 @@ el{
             }\r
         }\r
         coordinate{\r
-            east{"{0} Α"}\r
-            north{"{0} Β"}\r
-            south{"{0} Ν"}\r
-            west{"{0} Δ"}\r
+            dnam{"σημεία ορίζοντα"}\r
+            east{"{0} ανατολικά"}\r
+            north{"{0} βόρεια"}\r
+            south{"{0} νότια"}\r
+            west{"{0} δυτικά"}\r
         }\r
         digital{\r
             bit{\r
@@ -193,6 +204,11 @@ el{
                 one{"{0} megabyte"}\r
                 other{"{0} megabyte"}\r
             }\r
+            petabyte{\r
+                dnam{"petabyte"}\r
+                one{"{0} petabyte"}\r
+                other{"{0} petabyte"}\r
+            }\r
             terabit{\r
                 dnam{"terabit"}\r
                 one{"{0} terabit"}\r
@@ -443,9 +459,9 @@ el{
         }\r
         light{\r
             lux{\r
-                dnam{"lux"}\r
-                one{"{0} lux"}\r
-                other{"{0} lux"}\r
+                dnam{"λουξ"}\r
+                one{"{0} λουξ"}\r
+                other{"{0} λουξ"}\r
             }\r
         }\r
         mass{\r
@@ -537,6 +553,11 @@ el{
             }\r
         }\r
         pressure{\r
+            atmosphere{\r
+                dnam{"ατμόσφαιρες"}\r
+                one{"{0} ατμόσφαιρα"}\r
+                other{"{0} ατμόσφαιρες"}\r
+            }\r
             hectopascal{\r
                 dnam{"εκτοπασκάλ"}\r
                 one{"{0} εκτοπασκάλ"}\r
@@ -682,7 +703,7 @@ el{
                 per{"{0} ανά γαλόνι"}\r
             }\r
             gallon-imperial{\r
-                dnam{"Î\91γγλοσαξονικά γαλόνια"}\r
+                dnam{"αγγλοσαξονικά γαλόνια"}\r
                 one{"{0} αγγλοσαξονικό γαλόνι"}\r
                 other{"{0} αγγλοσαξονικά γαλόνια"}\r
                 per{"{0} ανά αγγλοσαξονικό γαλόνι"}\r
@@ -785,6 +806,13 @@ el{
         compound{\r
             per{"{0}/{1}"}\r
         }\r
+        concentr{\r
+            percent{\r
+                dnam{"%"}\r
+                one{"{0}%"}\r
+                other{"{0}%"}\r
+            }\r
+        }\r
         consumption{\r
             liter-per-100kilometers{\r
                 dnam{"λ/100 χλμ"}\r
@@ -793,6 +821,7 @@ el{
             }\r
         }\r
         coordinate{\r
+            dnam{"σημεία"}\r
             east{"{0} Α"}\r
             north{"{0} Β"}\r
             south{"{0} Ν"}\r
@@ -1094,6 +1123,16 @@ el{
                 one{"{0} ppm"}\r
                 other{"{0} ppm"}\r
             }\r
+            percent{\r
+                dnam{"τοις εκατό"}\r
+                one{"{0}%"}\r
+                other{"{0}%"}\r
+            }\r
+            permille{\r
+                dnam{"τοις χιλίοις"}\r
+                one{"{0}‰"}\r
+                other{"{0}‰"}\r
+            }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
@@ -1118,6 +1157,7 @@ el{
             }\r
         }\r
         coordinate{\r
+            dnam{"σημείο"}\r
             east{"{0} Α"}\r
             north{"{0} Β"}\r
             south{"{0} Ν"}\r
@@ -1164,6 +1204,11 @@ el{
                 one{"{0} MB"}\r
                 other{"{0} MB"}\r
             }\r
+            petabyte{\r
+                dnam{"PByte"}\r
+                one{"{0} PB"}\r
+                other{"{0} PB"}\r
+            }\r
             terabit{\r
                 dnam{"Tb"}\r
                 one{"{0} Tb"}\r
@@ -1414,9 +1459,9 @@ el{
         }\r
         light{\r
             lux{\r
-                dnam{"lux"}\r
-                one{"{0} lux"}\r
-                other{"{0} lux"}\r
+                dnam{"λουξ"}\r
+                one{"{0} λουξ"}\r
+                other{"{0} λουξ"}\r
             }\r
         }\r
         mass{\r
@@ -1508,6 +1553,11 @@ el{
             }\r
         }\r
         pressure{\r
+            atmosphere{\r
+                dnam{"atm"}\r
+                one{"{0} atm"}\r
+                other{"{0} atm"}\r
+            }\r
             hectopascal{\r
                 dnam{"hPa"}\r
                 one{"{0} hPa"}\r
index a908e32..5f5f5ac 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 en{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.91"}\r
     units{\r
         acceleration{\r
             g-force{\r
@@ -118,6 +118,16 @@ en{
                 one{"{0} part per million"}\r
                 other{"{0} parts per million"}\r
             }\r
+            percent{\r
+                dnam{"percent"}\r
+                one{"{0} percent"}\r
+                other{"{0} percent"}\r
+            }\r
+            permille{\r
+                dnam{"permille"}\r
+                one{"{0} permille"}\r
+                other{"{0} permille"}\r
+            }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
@@ -142,6 +152,7 @@ en{
             }\r
         }\r
         coordinate{\r
+            dnam{"cardinal direction"}\r
             east{"{0} east"}\r
             north{"{0} north"}\r
             south{"{0} south"}\r
@@ -188,6 +199,11 @@ en{
                 one{"{0} megabyte"}\r
                 other{"{0} megabytes"}\r
             }\r
+            petabyte{\r
+                dnam{"petabytes"}\r
+                one{"{0} petabyte"}\r
+                other{"{0} petabytes"}\r
+            }\r
             terabit{\r
                 dnam{"terabits"}\r
                 one{"{0} terabit"}\r
@@ -547,6 +563,11 @@ en{
             }\r
         }\r
         pressure{\r
+            atmosphere{\r
+                dnam{"atmospheres"}\r
+                one{"{0} atmosphere"}\r
+                other{"{0} atmospheres"}\r
+            }\r
             hectopascal{\r
                 dnam{"hectopascals"}\r
                 one{"{0} hectopascal"}\r
@@ -844,6 +865,16 @@ en{
                 one{"{0}ppm"}\r
                 other{"{0}ppm"}\r
             }\r
+            percent{\r
+                dnam{"%"}\r
+                one{"{0}%"}\r
+                other{"{0}%"}\r
+            }\r
+            permille{\r
+                dnam{"‰"}\r
+                one{"{0}‰"}\r
+                other{"{0}‰"}\r
+            }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
@@ -914,6 +945,11 @@ en{
                 one{"{0}MB"}\r
                 other{"{0}MB"}\r
             }\r
+            petabyte{\r
+                dnam{"PByte"}\r
+                one{"{0}PB"}\r
+                other{"{0}PB"}\r
+            }\r
             terabit{\r
                 dnam{"Tbit"}\r
                 one{"{0}Tb"}\r
@@ -1071,8 +1107,8 @@ en{
             }\r
             fathom{\r
                 dnam{"fathom"}\r
-                one{"{0}fm"}\r
-                other{"{0}fm"}\r
+                one{"{0}fth"}\r
+                other{"{0}fth"}\r
             }\r
             foot{\r
                 dnam{"ft"}\r
@@ -1252,6 +1288,11 @@ en{
             }\r
         }\r
         pressure{\r
+            atmosphere{\r
+                dnam{"atm"}\r
+                one{"{0}atm"}\r
+                other{"{0}atm"}\r
+            }\r
             hectopascal{\r
                 dnam{"hPa"}\r
                 one{"{0}hPa"}\r
@@ -1566,6 +1607,16 @@ en{
                 one{"{0} ppm"}\r
                 other{"{0} ppm"}\r
             }\r
+            percent{\r
+                dnam{"percent"}\r
+                one{"{0}%"}\r
+                other{"{0}%"}\r
+            }\r
+            permille{\r
+                dnam{"permille"}\r
+                one{"{0}‰"}\r
+                other{"{0}‰"}\r
+            }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
@@ -1590,6 +1641,7 @@ en{
             }\r
         }\r
         coordinate{\r
+            dnam{"direction"}\r
             east{"{0} E"}\r
             north{"{0} N"}\r
             south{"{0} S"}\r
@@ -1636,6 +1688,11 @@ en{
                 one{"{0} MB"}\r
                 other{"{0} MB"}\r
             }\r
+            petabyte{\r
+                dnam{"PByte"}\r
+                one{"{0} PB"}\r
+                other{"{0} PB"}\r
+            }\r
             terabit{\r
                 dnam{"Tbit"}\r
                 one{"{0} Tb"}\r
@@ -1806,8 +1863,8 @@ en{
             }\r
             fathom{\r
                 dnam{"fathoms"}\r
-                one{"{0} ftm"}\r
-                other{"{0} ftm"}\r
+                one{"{0} fth"}\r
+                other{"{0} fth"}\r
             }\r
             foot{\r
                 dnam{"feet"}\r
@@ -1995,6 +2052,11 @@ en{
             }\r
         }\r
         pressure{\r
+            atmosphere{\r
+                dnam{"atm"}\r
+                one{"{0} atm"}\r
+                other{"{0} atm"}\r
+            }\r
             hectopascal{\r
                 dnam{"hPa"}\r
                 one{"{0} hPa"}\r
index ac60a26..1761452 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 en_001{\r
-    Version{"2.1.38.69"}\r
+    Version{"2.1.44.18"}\r
     units{\r
         acceleration{\r
             meter-per-second-squared{\r
@@ -266,6 +266,11 @@ en_001{
                 other{"{0}lb"}\r
             }\r
         }\r
+        speed{\r
+            kilometer-per-hour{\r
+                dnam{"km/h"}\r
+            }\r
+        }\r
         temperature{\r
             celsius{\r
                 one{"{0}°"}\r
@@ -452,7 +457,7 @@ en_001{
             megaliter{\r
                 dnam{"Ml"}\r
                 one{"{0} Ml"}\r
-                other{"{0} MLl"}\r
+                other{"{0} Ml"}\r
             }\r
             milliliter{\r
                 dnam{"ml"}\r
index 41e700c..eaa93c5 100644 (file)
@@ -2,8 +2,20 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 en_AU{\r
     %%Parent{"en_001"}\r
-    Version{"2.1.38.73"}\r
+    Version{"2.1.44.18"}\r
     units{\r
+        concentr{\r
+            percent{\r
+                dnam{"per cent"}\r
+                one{"{0} per cent"}\r
+                other{"{0} per cent"}\r
+            }\r
+            permille{\r
+                dnam{"per mill"}\r
+                one{"{0} per mill"}\r
+                other{"{0} per mill"}\r
+            }\r
+        }\r
         energy{\r
             kilowatt-hour{\r
                 dnam{"kilowatt hours"}\r
@@ -12,12 +24,6 @@ en_AU{
             }\r
         }\r
         length{\r
-            centimeter{\r
-                other{"{0} centimetres"}\r
-            }\r
-            decimeter{\r
-                other{"{0} decimetres"}\r
-            }\r
             kilometer{\r
                 dnam{"kilometre"}\r
             }\r
@@ -31,6 +37,9 @@ en_AU{
                 one{"tonne"}\r
                 other{"{0} tonnes"}\r
             }\r
+            stone{\r
+                one{"{0} stone"}\r
+            }\r
         }\r
         temperature{\r
             generic{\r
@@ -84,7 +93,6 @@ en_AU{
         }\r
         speed{\r
             kilometer-per-hour{\r
-                dnam{"km/h"}\r
                 one{"{0} km/h"}\r
                 other{"{0} km/h"}\r
             }\r
@@ -164,6 +172,12 @@ en_AU{
                 one{"{0} mmol/L"}\r
                 other{"{0} mmol/L"}\r
             }\r
+            percent{\r
+                dnam{"per cent"}\r
+            }\r
+            permille{\r
+                dnam{"per mill"}\r
+            }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
@@ -237,10 +251,6 @@ en_AU{
                 one{"{0} AU"}\r
                 other{"{0} AU"}\r
             }\r
-            fathom{\r
-                one{"{0} fm"}\r
-                other{"{0} fm"}\r
-            }\r
             light-year{\r
                 one{"{0} l.y."}\r
                 other{"{0} l.y."}\r
@@ -251,9 +261,6 @@ en_AU{
                 one{"{0} CM"}\r
                 other{"{0} CM"}\r
             }\r
-            pound{\r
-                other{"{0} lb"}\r
-            }\r
         }\r
         pressure{\r
             millibar{\r
@@ -263,10 +270,6 @@ en_AU{
             }\r
         }\r
         speed{\r
-            kilometer-per-hour{\r
-                one{"{0} km/h"}\r
-                other{"{0} km/h"}\r
-            }\r
             meter-per-second{\r
                 dnam{"metres/sec."}\r
                 one{"{0} m/s."}\r
@@ -292,6 +295,9 @@ en_AU{
                 one{"{0} cL"}\r
                 other{"{0} cL"}\r
             }\r
+            cubic-centimeter{\r
+                one{"{0} cm³"}\r
+            }\r
             deciliter{\r
                 dnam{"dL"}\r
                 one{"{0} dL"}\r
index 79bbbec..c9f5e1b 100644 (file)
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 en_BE{\r
     %%Parent{"en_001"}\r
-    Version{"2.1.38.69"}\r
+    Version{"2.1.44.18"}\r
 }\r
index 05b8d7e..1a9ffe7 100644 (file)
@@ -2,7 +2,7 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 en_CA{\r
     %%Parent{"en_001"}\r
-    Version{"2.1.38.73"}\r
+    Version{"2.1.44.88"}\r
     units{\r
         concentr{\r
             karat{\r
@@ -105,11 +105,6 @@ en_CA{
             }\r
         }\r
         speed{\r
-            kilometer-per-hour{\r
-                dnam{"km/h"}\r
-                one{"{0}km/h"}\r
-                other{"{0}km/h"}\r
-            }\r
             mile-per-hour{\r
                 dnam{"mi./hr."}\r
             }\r
@@ -397,10 +392,6 @@ en_CA{
             }\r
         }\r
         speed{\r
-            kilometer-per-hour{\r
-                one{"{0} km/h"}\r
-                other{"{0} km/h"}\r
-            }\r
             knot{\r
                 dnam{"kn."}\r
                 one{"{0} kn."}\r
index 9d397f2..cceab2f 100644 (file)
@@ -2,33 +2,28 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 en_GB{\r
     %%Parent{"en_001"}\r
-    Version{"2.1.38.73"}\r
+    Version{"2.1.44.18"}\r
     units{\r
-        speed{\r
-            kilometer-per-hour{\r
-                one{"{0} kilometre per hour"}\r
+        concentr{\r
+            percent{\r
+                dnam{"per cent"}\r
+                one{"{0} per cent"}\r
+                other{"{0} per cent"}\r
             }\r
-        }\r
-    }\r
-    unitsNarrow{\r
-        duration{\r
-            hour{\r
-                per{"{0}/h"}\r
-            }\r
-            second{\r
-                per{"{0}/s"}\r
+            permille{\r
+                dnam{"per mille"}\r
+                one{"{0} per mille"}\r
+                other{"{0} per mille"}\r
             }\r
         }\r
     }\r
     unitsShort{\r
-        mass{\r
-            stone{\r
-                other{"{0} st"}\r
+        concentr{\r
+            percent{\r
+                dnam{"per cent"}\r
             }\r
-        }\r
-        volume{\r
-            megaliter{\r
-                other{"{0} Ml"}\r
+            permille{\r
+                dnam{"per mille"}\r
             }\r
         }\r
     }\r
index e057509..422f3b6 100644 (file)
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 en_HK{\r
     %%Parent{"en_001"}\r
-    Version{"2.1.38.69"}\r
+    Version{"2.1.43.65"}\r
 }\r
index 56507ab..1b0d83f 100644 (file)
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 en_IE{\r
     %%Parent{"en_001"}\r
-    Version{"2.1.38.69"}\r
+    Version{"2.1.44.18"}\r
 }\r
index 55ab372..d24f735 100644 (file)
@@ -2,5 +2,21 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 en_IN{\r
     %%Parent{"en_001"}\r
-    Version{"2.1.38.73"}\r
+    Version{"2.1.44.18"}\r
+    unitsNarrow{\r
+        speed{\r
+            kilometer-per-hour{\r
+                one{"{0}kph"}\r
+                other{"{0}kph"}\r
+            }\r
+        }\r
+    }\r
+    unitsShort{\r
+        speed{\r
+            kilometer-per-hour{\r
+                one{"{0} kph"}\r
+                other{"{0} kph"}\r
+            }\r
+        }\r
+    }\r
 }\r
index 47beda6..2752731 100644 (file)
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 en_JM{\r
     %%Parent{"en_001"}\r
-    Version{"2.1.38.69"}\r
+    Version{"2.1.44.18"}\r
 }\r
index b470846..1e1d59a 100644 (file)
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 en_NZ{\r
     %%Parent{"en_001"}\r
-    Version{"2.1.38.73"}\r
+    Version{"2.1.44.88"}\r
 }\r
index 3c7e040..14f8030 100644 (file)
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 en_ZW{\r
     %%Parent{"en_001"}\r
-    Version{"2.1.38.69"}\r
+    Version{"2.1.44.18"}\r
 }\r
index c901e5a..b772d57 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 es{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.88"}\r
     durationUnits{\r
         hm{"h:mm"}\r
         hms{"h:mm:ss"}\r
@@ -123,6 +123,16 @@ es{
                 one{"{0} parte por millón"}\r
                 other{"{0} partes por millón"}\r
             }\r
+            percent{\r
+                dnam{"por ciento"}\r
+                one{"{0} por ciento"}\r
+                other{"{0} por ciento"}\r
+            }\r
+            permille{\r
+                dnam{"por mil"}\r
+                one{"{0} por mil"}\r
+                other{"{0} por mil"}\r
+            }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
@@ -147,6 +157,7 @@ es{
             }\r
         }\r
         coordinate{\r
+            dnam{"punto cardinal"}\r
             east{"{0} E"}\r
             north{"{0} N"}\r
             south{"{0} S"}\r
@@ -193,6 +204,11 @@ es{
                 one{"{0} megabyte"}\r
                 other{"{0} megabytes"}\r
             }\r
+            petabyte{\r
+                dnam{"petabytes"}\r
+                one{"{0} petabyte"}\r
+                other{"{0} petabytes"}\r
+            }\r
             terabit{\r
                 dnam{"terabits"}\r
                 one{"{0} terabit"}\r
@@ -537,6 +553,11 @@ es{
             }\r
         }\r
         pressure{\r
+            atmosphere{\r
+                dnam{"atmósferas"}\r
+                one{"{0} atmósfera"}\r
+                other{"{0} atmósferas"}\r
+            }\r
             hectopascal{\r
                 dnam{"hectopascales"}\r
                 one{"{0} hectopascal"}\r
@@ -785,6 +806,13 @@ es{
         compound{\r
             per{"{0}/{1}"}\r
         }\r
+        concentr{\r
+            percent{\r
+                dnam{"%"}\r
+                one{"{0} %"}\r
+                other{"{0} %"}\r
+            }\r
+        }\r
         consumption{\r
             liter-per-100kilometers{\r
                 dnam{"l/100km"}\r
@@ -793,6 +821,7 @@ es{
             }\r
         }\r
         coordinate{\r
+            dnam{"punto"}\r
             east{"{0}E"}\r
             north{"{0}N"}\r
             south{"{0}S"}\r
@@ -1192,6 +1221,16 @@ es{
                 one{"{0} ppm"}\r
                 other{"{0} ppm"}\r
             }\r
+            percent{\r
+                dnam{"por ciento"}\r
+                one{"{0} %"}\r
+                other{"{0} %"}\r
+            }\r
+            permille{\r
+                dnam{"por mil"}\r
+                one{"{0} ‰"}\r
+                other{"{0} ‰"}\r
+            }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
@@ -1216,6 +1255,7 @@ es{
             }\r
         }\r
         coordinate{\r
+            dnam{"punto"}\r
             east{"{0} E"}\r
             north{"{0} N"}\r
             south{"{0} S"}\r
@@ -1262,6 +1302,11 @@ es{
                 one{"{0} MB"}\r
                 other{"{0} MB"}\r
             }\r
+            petabyte{\r
+                dnam{"PB"}\r
+                one{"{0} PB"}\r
+                other{"{0} PB"}\r
+            }\r
             terabit{\r
                 dnam{"Tb"}\r
                 one{"{0} Tb"}\r
@@ -1606,6 +1651,11 @@ es{
             }\r
         }\r
         pressure{\r
+            atmosphere{\r
+                dnam{"atm"}\r
+                one{"{0} atm"}\r
+                other{"{0} atm"}\r
+            }\r
             hectopascal{\r
                 dnam{"hPa"}\r
                 one{"{0} hPa"}\r
index 5acac2d..d4670b4 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 es_419{\r
-    Version{"2.1.38.39"}\r
+    Version{"2.1.43.65"}\r
     units{\r
         angle{\r
             revolution{\r
@@ -57,9 +57,9 @@ es_419{
                 other{"{0} kilojules"}\r
             }\r
             kilowatt-hour{\r
-                dnam{"kilowatts-horas"}\r
+                dnam{"kilowatts-hora"}\r
                 one{"{0} kilowatt-hora"}\r
-                other{"{0} kilowatts-horas"}\r
+                other{"{0} kilowatts-hora"}\r
             }\r
         }\r
         frequency{\r
@@ -83,6 +83,11 @@ es_419{
                 other{"{0} megahertz"}\r
             }\r
         }\r
+        length{\r
+            mile-scandinavian{\r
+                dnam{"milla escandinava"}\r
+            }\r
+        }\r
         mass{\r
             stone{\r
                 dnam{"stones"}\r
@@ -131,7 +136,7 @@ es_419{
         }\r
         volume{\r
             acre-foot{\r
-                dnam{"acre pie"}\r
+                dnam{"acre-pies"}\r
                 one{"{0} acre pie"}\r
                 other{"{0} acres pies"}\r
             }\r
@@ -221,6 +226,11 @@ es_419{
                 other{"{0}kn"}\r
             }\r
         }\r
+        volume{\r
+            cup{\r
+                one{"{0} tza."}\r
+            }\r
+        }\r
     }\r
     unitsShort{\r
         acceleration{\r
@@ -296,6 +306,9 @@ es_419{
             parsec{\r
                 dnam{"parsecs"}\r
             }\r
+            point{\r
+                dnam{"pto."}\r
+            }\r
             yard{\r
                 dnam{"yardas"}\r
             }\r
index 32863f5..e2b47a5 100644 (file)
@@ -2,7 +2,7 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 es_AR{\r
     %%Parent{"es_419"}\r
-    Version{"2.1.38.39"}\r
+    Version{"2.1.43.65"}\r
     units{\r
         duration{\r
             year{\r
index b6347a0..25ca259 100644 (file)
@@ -2,7 +2,7 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 es_CO{\r
     %%Parent{"es_419"}\r
-    Version{"2.1.38.39"}\r
+    Version{"2.1.43.65"}\r
     units{\r
         duration{\r
             month{\r
index bbfb54b..a6f231d 100644 (file)
@@ -2,7 +2,7 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 es_MX{\r
     %%Parent{"es_419"}\r
-    Version{"2.1.38.73"}\r
+    Version{"2.1.44.5"}\r
     units{\r
         angle{\r
             arc-minute{\r
@@ -46,7 +46,6 @@ es_MX{
         }\r
         energy{\r
             kilowatt-hour{\r
-                dnam{"kilowatt-hora"}\r
                 one{"kilowatt-hora"}\r
                 other{"{0} kilowatts-hora"}\r
             }\r
@@ -102,6 +101,11 @@ es_MX{
                 dnam{"lux"}\r
             }\r
         }\r
+        mass{\r
+            microgram{\r
+                other{"{0} microgramos"}\r
+            }\r
+        }\r
         power{\r
             gigawatt{\r
                 dnam{"gigavatios"}\r
@@ -109,7 +113,7 @@ es_MX{
                 other{"{0} gigavatios"}\r
             }\r
             horsepower{\r
-                one{"{0} caballo de vapor"}\r
+                one{"{0} caballo de fuerza"}\r
             }\r
             kilowatt{\r
                 dnam{"kilovatios"}\r
@@ -141,7 +145,6 @@ es_MX{
         }\r
         volume{\r
             acre-foot{\r
-                dnam{"acre-pies"}\r
                 one{"{0} acre-pie"}\r
                 other{"{0} acre-pies"}\r
             }\r
@@ -181,6 +184,12 @@ es_MX{
                 other{"{0}a"}\r
             }\r
         }\r
+        temperature{\r
+            celsius{\r
+                one{"{0} °C"}\r
+                other{"{0} °C"}\r
+            }\r
+        }\r
     }\r
     unitsShort{\r
         acceleration{\r
@@ -202,6 +211,19 @@ es_MX{
                 dnam{"º"}\r
             }\r
         }\r
+        concentr{\r
+            karat{\r
+                dnam{"kt"}\r
+                one{"{0} kt"}\r
+                other{"{0} kt"}\r
+            }\r
+            percent{\r
+                dnam{"%"}\r
+            }\r
+            permille{\r
+                dnam{"‰"}\r
+            }\r
+        }\r
         consumption{\r
             mile-per-gallon-imperial{\r
                 dnam{"mpg Imp."}\r
@@ -245,6 +267,11 @@ es_MX{
                 per{"{0}/a"}\r
             }\r
         }\r
+        electric{\r
+            volt{\r
+                dnam{"V"}\r
+            }\r
+        }\r
         length{\r
             astronomical-unit{\r
                 dnam{"au"}\r
@@ -252,7 +279,7 @@ es_MX{
                 other{"{0} au"}\r
             }\r
             light-year{\r
-                dnam{"al"}\r
+                dnam{"a. l."}\r
                 one{"{0} a. l."}\r
                 other{"{0} a. l."}\r
             }\r
@@ -300,6 +327,11 @@ es_MX{
                 dnam{"km/hora"}\r
             }\r
         }\r
+        temperature{\r
+            celsius{\r
+                one{"{0} °C"}\r
+            }\r
+        }\r
         volume{\r
             cup{\r
                 dnam{"tza."}\r
index e8adcf9..ef718ae 100644 (file)
@@ -2,7 +2,7 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 es_PY{\r
     %%Parent{"es_419"}\r
-    Version{"2.1.38.39"}\r
+    Version{"2.1.43.65"}\r
     units{\r
         duration{\r
             year{\r
index a79fe5d..53d1e49 100644 (file)
@@ -2,7 +2,7 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 es_US{\r
     %%Parent{"es_419"}\r
-    Version{"2.1.38.73"}\r
+    Version{"2.1.43.65"}\r
     units{\r
         angle{\r
             revolution{\r
index 93c3e61..c68a77d 100644 (file)
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 es_UY{\r
     %%Parent{"es_419"}\r
-    Version{"2.1.38.39"}\r
+    Version{"2.1.44.79"}\r
 }\r
index abcf16d..4a4cf89 100644 (file)
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 es_VE{\r
     %%Parent{"es_419"}\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.41.45"}\r
 }\r
index 37c8ee0..82aec79 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 et{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.91"}\r
     durationUnits{\r
         hm{"h:mm"}\r
         hms{"h:mm:ss"}\r
@@ -123,6 +123,16 @@ et{
                 one{"{0} osa miljoni kohta"}\r
                 other{"{0} osa miljoni kohta"}\r
             }\r
+            percent{\r
+                dnam{"protsent"}\r
+                one{"{0} protsent"}\r
+                other{"{0} protsenti"}\r
+            }\r
+            permille{\r
+                dnam{"promill"}\r
+                one{"{0} promill"}\r
+                other{"{0} promilli"}\r
+            }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
@@ -147,6 +157,7 @@ et{
             }\r
         }\r
         coordinate{\r
+            dnam{"põhiilmakaar"}\r
             east{"{0} idapikkust"}\r
             north{"{0} põhjalaiust"}\r
             south{"{0} lõunalaiust"}\r
@@ -193,6 +204,11 @@ et{
                 one{"{0} megabait"}\r
                 other{"{0} megabaiti"}\r
             }\r
+            petabyte{\r
+                dnam{"petabaidid"}\r
+                one{"{0} petabait"}\r
+                other{"{0} petabaiti"}\r
+            }\r
             terabit{\r
                 dnam{"terabitid"}\r
                 one{"{0} terabitt"}\r
@@ -552,6 +568,11 @@ et{
             }\r
         }\r
         pressure{\r
+            atmosphere{\r
+                dnam{"atmosfäärid"}\r
+                one{"{0} atmosfäär"}\r
+                other{"{0} atmosfääri"}\r
+            }\r
             hectopascal{\r
                 dnam{"hektopaskalid"}\r
                 one{"{0} hektopaskal"}\r
@@ -816,6 +837,11 @@ et{
                 one{"{0} kt"}\r
                 other{"{0} kt"}\r
             }\r
+            percent{\r
+                dnam{"%"}\r
+                one{"{0}%"}\r
+                other{"{0}%"}\r
+            }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
@@ -825,6 +851,7 @@ et{
             }\r
         }\r
         coordinate{\r
+            dnam{"ilmakaar"}\r
             east{"{0} E"}\r
             north{"{0} N"}\r
             south{"{0} S"}\r
@@ -914,8 +941,8 @@ et{
             }\r
             fathom{\r
                 dnam{"süllad"}\r
-                one{"{0} fm"}\r
-                other{"{0} fm"}\r
+                one{"{0} fth"}\r
+                other{"{0} fth"}\r
             }\r
             foot{\r
                 dnam{"ft"}\r
@@ -1280,6 +1307,16 @@ et{
                 one{"{0} ppm"}\r
                 other{"{0} ppm"}\r
             }\r
+            percent{\r
+                dnam{"%"}\r
+                one{"{0}%"}\r
+                other{"{0}%"}\r
+            }\r
+            permille{\r
+                dnam{"‰"}\r
+                one{"{0}‰"}\r
+                other{"{0}‰"}\r
+            }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
@@ -1304,6 +1341,7 @@ et{
             }\r
         }\r
         coordinate{\r
+            dnam{"ilmakaar"}\r
             east{"{0} ip"}\r
             north{"{0} pl"}\r
             south{"{0} ll"}\r
@@ -1350,6 +1388,11 @@ et{
                 one{"{0} MB"}\r
                 other{"{0} MB"}\r
             }\r
+            petabyte{\r
+                dnam{"PB"}\r
+                one{"{0} PB"}\r
+                other{"{0} PB"}\r
+            }\r
             terabit{\r
                 dnam{"Tb"}\r
                 one{"{0} Tb"}\r
@@ -1520,8 +1563,8 @@ et{
             }\r
             fathom{\r
                 dnam{"süllad"}\r
-                one{"{0} fm"}\r
-                other{"{0} fm"}\r
+                one{"{0} fth"}\r
+                other{"{0} fth"}\r
             }\r
             foot{\r
                 dnam{"ft"}\r
@@ -1709,6 +1752,11 @@ et{
             }\r
         }\r
         pressure{\r
+            atmosphere{\r
+                dnam{"atm"}\r
+                one{"{0} atm"}\r
+                other{"{0} atm"}\r
+            }\r
             hectopascal{\r
                 dnam{"hPa"}\r
                 one{"{0} hPa"}\r
index d6748e2..1ed1784 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 eu{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.65"}\r
     durationUnits{\r
         hm{"h:mm"}\r
         hms{"h:mm:ss"}\r
@@ -123,6 +123,16 @@ eu{
                 one{"{0} zati milioi bakoitzeko"}\r
                 other{"{0} zati milioi bakoitzeko"}\r
             }\r
+            percent{\r
+                dnam{"%"}\r
+                one{"% {0}"}\r
+                other{"% {0}"}\r
+            }\r
+            permille{\r
+                dnam{"‰"}\r
+                one{"‰ {0}"}\r
+                other{"‰ {0}"}\r
+            }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
@@ -147,6 +157,7 @@ eu{
             }\r
         }\r
         coordinate{\r
+            dnam{"puntu kardinala"}\r
             east{"{0} E"}\r
             north{"{0} I"}\r
             south{"{0} H"}\r
@@ -193,6 +204,11 @@ eu{
                 one{"{0} megabyte"}\r
                 other{"{0} megabyte"}\r
             }\r
+            petabyte{\r
+                dnam{"PB"}\r
+                one{"{0} PB"}\r
+                other{"{0} PB"}\r
+            }\r
             terabit{\r
                 dnam{"terabit-ak"}\r
                 one{"{0} terabit"}\r
@@ -537,6 +553,11 @@ eu{
             }\r
         }\r
         pressure{\r
+            atmosphere{\r
+                dnam{"atm"}\r
+                one{"{0} atm"}\r
+                other{"{0} atm"}\r
+            }\r
             hectopascal{\r
                 dnam{"hektopascalak"}\r
                 one{"{0} hektopascal"}\r
@@ -785,6 +806,13 @@ eu{
         compound{\r
             per{"{0}/{1}"}\r
         }\r
+        concentr{\r
+            percent{\r
+                dnam{"%"}\r
+                one{"% {0}"}\r
+                other{"% {0}"}\r
+            }\r
+        }\r
         consumption{\r
             liter-per-100kilometers{\r
                 dnam{"l/100 km"}\r
@@ -793,6 +821,7 @@ eu{
             }\r
         }\r
         coordinate{\r
+            dnam{"norabidea"}\r
             east{"{0} E"}\r
             north{"{0} I"}\r
             south{"{0} H"}\r
@@ -1092,6 +1121,16 @@ eu{
                 one{"{0} ppm"}\r
                 other{"{0} ppm"}\r
             }\r
+            percent{\r
+                dnam{"%"}\r
+                one{"% {0}"}\r
+                other{"% {0}"}\r
+            }\r
+            permille{\r
+                dnam{"‰"}\r
+                one{"‰ {0}"}\r
+                other{"‰ {0}"}\r
+            }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
@@ -1116,6 +1155,7 @@ eu{
             }\r
         }\r
         coordinate{\r
+            dnam{"norabidea"}\r
             east{"{0} E"}\r
             north{"{0} I"}\r
             south{"{0} H"}\r
@@ -1162,6 +1202,11 @@ eu{
                 one{"{0} MB"}\r
                 other{"{0} MB"}\r
             }\r
+            petabyte{\r
+                dnam{"PB"}\r
+                one{"{0} PB"}\r
+                other{"{0} PB"}\r
+            }\r
             terabit{\r
                 dnam{"Tb"}\r
                 one{"{0} Tb"}\r
@@ -1506,6 +1551,11 @@ eu{
             }\r
         }\r
         pressure{\r
+            atmosphere{\r
+                dnam{"atm"}\r
+                one{"{0} atm"}\r
+                other{"{0} atm"}\r
+            }\r
             hectopascal{\r
                 dnam{"hPa"}\r
                 one{"{0} hPa"}\r
index 87084f3..2d76f8d 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 fa{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.65"}\r
     durationUnits{\r
         hm{"h:mm"}\r
         hms{"h:mm:ss"}\r
@@ -123,6 +123,16 @@ fa{
                 one{"{0} بخش در میلیون"}\r
                 other{"{0} بخش در میلیون"}\r
             }\r
+            percent{\r
+                dnam{"درصد"}\r
+                one{"{0} درصد"}\r
+                other{"{0} درصد"}\r
+            }\r
+            permille{\r
+                dnam{"هزارم"}\r
+                one{"{0} هزارم"}\r
+                other{"{0} هزارم"}\r
+            }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
@@ -147,6 +157,7 @@ fa{
             }\r
         }\r
         coordinate{\r
+            dnam{"جهت اصلی"}\r
             east{"{0} شرقی"}\r
             north{"{0} شمالی"}\r
             south{"{0} جنوبی"}\r
@@ -193,6 +204,11 @@ fa{
                 one{"{0} مگابایت"}\r
                 other{"{0} مگابایت"}\r
             }\r
+            petabyte{\r
+                dnam{"پتابایت"}\r
+                one{"{0} پتابایت"}\r
+                other{"{0} پتابایت"}\r
+            }\r
             terabit{\r
                 dnam{"ترابیت"}\r
                 one{"{0} ترابیت"}\r
@@ -537,6 +553,11 @@ fa{
             }\r
         }\r
         pressure{\r
+            atmosphere{\r
+                dnam{"اتمسفر"}\r
+                one{"{0} اتمسفر"}\r
+                other{"{0} اتمسفر"}\r
+            }\r
             hectopascal{\r
                 dnam{"هکتوپاسکال"}\r
                 one{"{0} هکتوپاسکال"}\r
@@ -800,6 +821,13 @@ fa{
         compound{\r
             per{"{0}/{1}"}\r
         }\r
+        concentr{\r
+            percent{\r
+                dnam{"٪"}\r
+                one{"{0}٪"}\r
+                other{"{0}٪"}\r
+            }\r
+        }\r
         consumption{\r
             liter-per-100kilometers{\r
                 dnam{"لیتر/۱۰۰ کیلومتر"}\r
@@ -808,6 +836,7 @@ fa{
             }\r
         }\r
         coordinate{\r
+            dnam{"جهت"}\r
             east{"{0} شرقی"}\r
             north{"{0} شمالی"}\r
             south{"{0} جنوبی"}\r
@@ -1248,6 +1277,16 @@ fa{
                 one{"{0} ppm"}\r
                 other{"{0} ppm"}\r
             }\r
+            percent{\r
+                dnam{"درصد"}\r
+                one{"{0}٪"}\r
+                other{"{0}٪"}\r
+            }\r
+            permille{\r
+                dnam{"هزارم"}\r
+                one{"{0}‰"}\r
+                other{"{0}‰"}\r
+            }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
@@ -1272,6 +1311,7 @@ fa{
             }\r
         }\r
         coordinate{\r
+            dnam{"جهت"}\r
             east{"{0} شرقی"}\r
             north{"{0} شمالی"}\r
             south{"{0} جنوبی"}\r
@@ -1318,6 +1358,11 @@ fa{
                 one{"{0} مگابایت"}\r
                 other{"{0} مگابایت"}\r
             }\r
+            petabyte{\r
+                dnam{"پتابایت"}\r
+                one{"{0} پتابایت"}\r
+                other{"{0} پتابایت"}\r
+            }\r
             terabit{\r
                 dnam{"ترابیت"}\r
                 one{"{0} ترابیت"}\r
@@ -1662,6 +1707,11 @@ fa{
             }\r
         }\r
         pressure{\r
+            atmosphere{\r
+                dnam{"اتمسفر"}\r
+                one{"{0} atm"}\r
+                other{"{0} atm"}\r
+            }\r
             hectopascal{\r
                 dnam{"هکتوپاسکال"}\r
                 one{"{0}‎ hPa"}\r
index 3bf0f92..de4b953 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 fi{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.91"}\r
     durationUnits{\r
         hm{"h.mm"}\r
         hms{"h.mm.ss"}\r
@@ -123,6 +123,16 @@ fi{
                 one{"{0} ppm"}\r
                 other{"{0} ppm"}\r
             }\r
+            percent{\r
+                dnam{"prosentit"}\r
+                one{"{0} prosentti"}\r
+                other{"{0} prosenttia"}\r
+            }\r
+            permille{\r
+                dnam{"promillet"}\r
+                one{"{0} promille"}\r
+                other{"{0} promillea"}\r
+            }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
@@ -147,6 +157,7 @@ fi{
             }\r
         }\r
         coordinate{\r
+            dnam{"pääilmansuunta"}\r
             east{"{0}I"}\r
             north{"{0}P"}\r
             south{"{0}E"}\r
@@ -193,6 +204,11 @@ fi{
                 one{"{0} megatavu"}\r
                 other{"{0} megatavua"}\r
             }\r
+            petabyte{\r
+                dnam{"petatavut"}\r
+                one{"{0} petatavu"}\r
+                other{"{0} petatavua"}\r
+            }\r
             terabit{\r
                 dnam{"terabitit"}\r
                 one{"{0} terabitti"}\r
@@ -552,6 +568,11 @@ fi{
             }\r
         }\r
         pressure{\r
+            atmosphere{\r
+                dnam{"normaali-ilmakehät"}\r
+                one{"{0} normaali-ilmakehä"}\r
+                other{"{0} normaali-ilmakehää"}\r
+            }\r
             hectopascal{\r
                 dnam{"hehtopascalit"}\r
                 one{"{0} hehtopascal"}\r
@@ -871,6 +892,11 @@ fi{
                 one{"{0}ppm"}\r
                 other{"{0}ppm"}\r
             }\r
+            percent{\r
+                dnam{"%"}\r
+                one{"{0} %"}\r
+                other{"{0} %"}\r
+            }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
@@ -895,6 +921,7 @@ fi{
             }\r
         }\r
         coordinate{\r
+            dnam{"suunta"}\r
             east{"{0}I"}\r
             north{"{0}P"}\r
             south{"{0}E"}\r
@@ -941,6 +968,11 @@ fi{
                 one{"{0}Mt"}\r
                 other{"{0}Mt"}\r
             }\r
+            petabyte{\r
+                dnam{"Pt"}\r
+                one{"{0}Pt"}\r
+                other{"{0}Pt"}\r
+            }\r
             terabit{\r
                 dnam{"Tb"}\r
                 one{"{0}Tb"}\r
@@ -1111,8 +1143,8 @@ fi{
             }\r
             fathom{\r
                 dnam{"fm"}\r
-                one{"{0}fm"}\r
-                other{"{0}fm"}\r
+                one{"{0}fth"}\r
+                other{"{0}fth"}\r
             }\r
             foot{\r
                 dnam{"ft"}\r
@@ -1614,6 +1646,16 @@ fi{
                 one{"{0} ppm"}\r
                 other{"{0} ppm"}\r
             }\r
+            percent{\r
+                dnam{"%"}\r
+                one{"{0} %"}\r
+                other{"{0} %"}\r
+            }\r
+            permille{\r
+                dnam{"‰"}\r
+                one{"{0} ‰"}\r
+                other{"{0} ‰"}\r
+            }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
@@ -1638,6 +1680,7 @@ fi{
             }\r
         }\r
         coordinate{\r
+            dnam{"ilmansuunta"}\r
             east{"{0}I"}\r
             north{"{0}P"}\r
             south{"{0}E"}\r
@@ -1684,6 +1727,11 @@ fi{
                 one{"{0} Mt"}\r
                 other{"{0} Mt"}\r
             }\r
+            petabyte{\r
+                dnam{"Pt"}\r
+                one{"{0} Pt"}\r
+                other{"{0} Pt"}\r
+            }\r
             terabit{\r
                 dnam{"Tb"}\r
                 one{"{0} Tb"}\r
@@ -1854,8 +1902,8 @@ fi{
             }\r
             fathom{\r
                 dnam{"fm"}\r
-                one{"{0} fm"}\r
-                other{"{0} fm"}\r
+                one{"{0} fth"}\r
+                other{"{0} fth"}\r
             }\r
             foot{\r
                 dnam{"ft"}\r
@@ -2043,6 +2091,11 @@ fi{
             }\r
         }\r
         pressure{\r
+            atmosphere{\r
+                dnam{"atm"}\r
+                one{"{0} atm"}\r
+                other{"{0} atm"}\r
+            }\r
             hectopascal{\r
                 dnam{"hPa"}\r
                 one{"{0} hPa"}\r
index 242b0ab..1c7fa13 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 fil{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.91"}\r
     durationUnits{\r
         hm{"h:mm"}\r
         hms{"h:mm:ss"}\r
@@ -123,6 +123,16 @@ fil{
                 one{"{0} part per million"}\r
                 other{"{0} parts per million"}\r
             }\r
+            percent{\r
+                dnam{"porsyento"}\r
+                one{"{0} porsyento"}\r
+                other{"{0} na porsyento"}\r
+            }\r
+            permille{\r
+                dnam{"permille"}\r
+                one{"{0} permille"}\r
+                other{"{0} na permille"}\r
+            }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
@@ -147,6 +157,7 @@ fil{
             }\r
         }\r
         coordinate{\r
+            dnam{"cardinal direction"}\r
             east{"{0}S"}\r
             north{"{0}H"}\r
             south{"{0}T"}\r
@@ -193,6 +204,11 @@ fil{
                 one{"{0} megabyte"}\r
                 other{"{0} na megabyte"}\r
             }\r
+            petabyte{\r
+                dnam{"petabytes"}\r
+                one{"{0} petabyte"}\r
+                other{"{0} petabytes"}\r
+            }\r
             terabit{\r
                 dnam{"terabits"}\r
                 one{"{0} terabit"}\r
@@ -552,6 +568,11 @@ fil{
             }\r
         }\r
         pressure{\r
+            atmosphere{\r
+                dnam{"atmospheres"}\r
+                one{"{0} atmosphere"}\r
+                other{"{0} atmospheres"}\r
+            }\r
             hectopascal{\r
                 dnam{"hectopascals"}\r
                 one{"{0} hectopascal"}\r
@@ -806,6 +827,13 @@ fil{
         compound{\r
             per{"{0}/{1}"}\r
         }\r
+        concentr{\r
+            percent{\r
+                dnam{"%"}\r
+                one{"{0}%"}\r
+                other{"{0}%"}\r
+            }\r
+        }\r
         consumption{\r
             liter-per-100kilometers{\r
                 dnam{"L/100km"}\r
@@ -814,6 +842,7 @@ fil{
             }\r
         }\r
         coordinate{\r
+            dnam{"direction"}\r
             east{"{0}S"}\r
             north{"{0}H"}\r
             south{"{0}T"}\r
@@ -902,8 +931,8 @@ fil{
             }\r
             fathom{\r
                 dnam{"fathom"}\r
-                one{"{0}fm"}\r
-                other{"{0}fm"}\r
+                one{"{0}fth"}\r
+                other{"{0}fth"}\r
             }\r
             foot{\r
                 dnam{"ft"}\r
@@ -1268,6 +1297,16 @@ fil{
                 one{"{0} ppm"}\r
                 other{"{0} ppm"}\r
             }\r
+            percent{\r
+                dnam{"%"}\r
+                one{"{0}%"}\r
+                other{"{0}%"}\r
+            }\r
+            permille{\r
+                dnam{"‰"}\r
+                one{"{0}‰"}\r
+                other{"{0}‰"}\r
+            }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
@@ -1292,6 +1331,7 @@ fil{
             }\r
         }\r
         coordinate{\r
+            dnam{"direction"}\r
             east{"{0}S"}\r
             north{"{0}H"}\r
             south{"{0}T"}\r
@@ -1338,6 +1378,11 @@ fil{
                 one{"{0} MB"}\r
                 other{"{0} MB"}\r
             }\r
+            petabyte{\r
+                dnam{"PByte"}\r
+                one{"{0} PB"}\r
+                other{"{0} PB"}\r
+            }\r
             terabit{\r
                 dnam{"Tbit"}\r
                 one{"{0} Tb"}\r
@@ -1508,8 +1553,8 @@ fil{
             }\r
             fathom{\r
                 dnam{"fathoms"}\r
-                one{"{0} ftm"}\r
-                other{"{0} ftm"}\r
+                one{"{0} fth"}\r
+                other{"{0} fth"}\r
             }\r
             foot{\r
                 dnam{"talampakan"}\r
@@ -1697,6 +1742,11 @@ fil{
             }\r
         }\r
         pressure{\r
+            atmosphere{\r
+                dnam{"atm"}\r
+                one{"{0} atm"}\r
+                other{"{0} atm"}\r
+            }\r
             hectopascal{\r
                 dnam{"hPa"}\r
                 one{"{0} hPa"}\r
index 64707e6..5f5d379 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 fo{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.41.34"}\r
     durationUnits{\r
         hm{"h:mm"}\r
         hms{"h:mm:ss"}\r
index 06c288b..72c0d16 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 fr{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.91"}\r
     durationUnits{\r
         hm{"h:mm"}\r
         hms{"h:mm:ss"}\r
@@ -10,93 +10,93 @@ fr{
     units{\r
         acceleration{\r
             g-force{\r
-                dnam{"fois la gravitation terrestre"}\r
-                one{"{0} fois la gravitation terrestre"}\r
-                other{"{0} fois la gravitation terrestre"}\r
+                dnam{"accélération de pesanteur terrestre"}\r
+                one{"{0} fois l’accélération de pesanteur terrestre"}\r
+                other{"{0} fois l’accélération de pesanteur terrestre"}\r
             }\r
             meter-per-second-squared{\r
                 dnam{"mètres par seconde carrée"}\r
-                one{"{0} mètre par seconde carrée"}\r
-                other{"{0} mètres par seconde carrée"}\r
+                one{"{0} mètre par seconde carrée"}\r
+                other{"{0} mètres par seconde carrée"}\r
             }\r
         }\r
         angle{\r
             arc-minute{\r
                 dnam{"minutes d’arc"}\r
-                one{"{0} minute d’arc"}\r
-                other{"{0} minutes d’arc"}\r
+                one{"{0} minute d’arc"}\r
+                other{"{0} minutes d’arc"}\r
             }\r
             arc-second{\r
                 dnam{"secondes d’arc"}\r
-                one{"{0} seconde d’arc"}\r
-                other{"{0} secondes d’arc"}\r
+                one{"{0} seconde d’arc"}\r
+                other{"{0} secondes d’arc"}\r
             }\r
             degree{\r
                 dnam{"degrés"}\r
-                one{"{0} degré"}\r
-                other{"{0} degrés"}\r
+                one{"{0} degré"}\r
+                other{"{0} degrés"}\r
             }\r
             radian{\r
                 dnam{"radians"}\r
-                one{"{0} radian"}\r
-                other{"{0} radians"}\r
+                one{"{0} radian"}\r
+                other{"{0} radians"}\r
             }\r
             revolution{\r
                 dnam{"tour"}\r
-                one{"{0} tour"}\r
-                other{"{0} tours"}\r
+                one{"{0} tour"}\r
+                other{"{0} tours"}\r
             }\r
         }\r
         area{\r
             acre{\r
                 dnam{"acres anglo-saxonnes"}\r
-                one{"{0} acre anglo-saxonne"}\r
-                other{"{0} acres anglo-saxonnes"}\r
+                one{"{0} acre anglo-saxonne"}\r
+                other{"{0} acres anglo-saxonnes"}\r
             }\r
             hectare{\r
                 dnam{"hectares"}\r
-                one{"{0} hectare"}\r
-                other{"{0} hectares"}\r
+                one{"{0} hectare"}\r
+                other{"{0} hectares"}\r
             }\r
             square-centimeter{\r
                 dnam{"centimètres carrés"}\r
-                one{"{0} centimètre carré"}\r
-                other{"{0} centimètres carrés"}\r
+                one{"{0} centimètre carré"}\r
+                other{"{0} centimètres carrés"}\r
                 per{"{0} par centimètre carré"}\r
             }\r
             square-foot{\r
                 dnam{"pieds carrés"}\r
-                one{"{0} pied carré"}\r
-                other{"{0} pieds carrés"}\r
+                one{"{0} pied carré"}\r
+                other{"{0} pieds carrés"}\r
             }\r
             square-inch{\r
                 dnam{"pouces carrés"}\r
-                one{"{0} pouce carré"}\r
-                other{"{0} pouces carrés"}\r
+                one{"{0} pouce carré"}\r
+                other{"{0} pouces carrés"}\r
                 per{"{0} par pouce carré"}\r
             }\r
             square-kilometer{\r
                 dnam{"kilomètres carrés"}\r
-                one{"{0} kilomètre carré"}\r
-                other{"{0} kilomètres carrés"}\r
+                one{"{0} kilomètre carré"}\r
+                other{"{0} kilomètres carrés"}\r
                 per{"{0}/km²"}\r
             }\r
             square-meter{\r
                 dnam{"mètres carrés"}\r
-                one{"{0} mètre carré"}\r
-                other{"{0} mètres carrés"}\r
+                one{"{0} mètre carré"}\r
+                other{"{0} mètres carrés"}\r
                 per{"{0} par mètre carré"}\r
             }\r
             square-mile{\r
                 dnam{"milles carrés"}\r
-                one{"{0} mille carré"}\r
-                other{"{0} milles carrés"}\r
+                one{"{0} mille carré"}\r
+                other{"{0} milles carrés"}\r
                 per{"{0}/mi²"}\r
             }\r
             square-yard{\r
                 dnam{"yards carrés"}\r
-                one{"{0} yard carré"}\r
-                other{"{0} yards carrés"}\r
+                one{"{0} yard carré"}\r
+                other{"{0} yards carrés"}\r
             }\r
         }\r
         compound{\r
@@ -105,23 +105,33 @@ fr{
         concentr{\r
             karat{\r
                 dnam{"carats"}\r
-                one{"{0} carat"}\r
-                other{"{0} carats"}\r
+                one{"{0} carat"}\r
+                other{"{0} carats"}\r
             }\r
             milligram-per-deciliter{\r
                 dnam{"milligrammes par décilitre"}\r
-                one{"{0} milligramme par décilitre"}\r
-                other{"{0} milligrammes par décilitre"}\r
+                one{"{0} milligramme par décilitre"}\r
+                other{"{0} milligrammes par décilitre"}\r
             }\r
             millimole-per-liter{\r
                 dnam{"millimoles par litre"}\r
-                one{"{0} millimole par litre"}\r
-                other{"{0} millimoles par litre"}\r
+                one{"{0} millimole par litre"}\r
+                other{"{0} millimoles par litre"}\r
             }\r
             part-per-million{\r
                 dnam{"parts par million"}\r
-                one{"{0} part par million"}\r
-                other{"{0} parts par million"}\r
+                one{"{0} part par million"}\r
+                other{"{0} parts par million"}\r
+            }\r
+            percent{\r
+                dnam{"pour cent"}\r
+                one{"{0} pour cent"}\r
+                other{"{0}%"}\r
+            }\r
+            permille{\r
+                dnam{"pour mille"}\r
+                one{"{0} pour mille"}\r
+                other{"{0} pour mille"}\r
             }\r
         }\r
         consumption{\r
@@ -137,71 +147,77 @@ fr{
             }\r
             mile-per-gallon{\r
                 dnam{"miles par gallon"}\r
-                one{"{0} mile par gallon"}\r
-                other{"{0} miles par gallon"}\r
+                one{"{0} mile par gallon"}\r
+                other{"{0} miles par gallon"}\r
             }\r
             mile-per-gallon-imperial{\r
                 dnam{"miles par gallon impérial"}\r
-                one{"{0} mile par gallon impérial"}\r
-                other{"{0} miles par gallon impérial"}\r
+                one{"{0} mile par gallon impérial"}\r
+                other{"{0} miles par gallon impérial"}\r
             }\r
         }\r
         coordinate{\r
-            east{"{0} est"}\r
-            north{"{0} nord"}\r
-            south{"{0} sud"}\r
-            west{"{0} ouest"}\r
+            dnam{"direction"}\r
+            east{"{0} est"}\r
+            north{"{0} nord"}\r
+            south{"{0} sud"}\r
+            west{"{0} ouest"}\r
         }\r
         digital{\r
             bit{\r
                 dnam{"bits"}\r
-                one{"{0} bit"}\r
-                other{"{0} bits"}\r
+                one{"{0} bit"}\r
+                other{"{0} bits"}\r
             }\r
             byte{\r
                 dnam{"octets"}\r
-                one{"{0} octet"}\r
-                other{"{0} octets"}\r
+                one{"{0} octet"}\r
+                other{"{0} octets"}\r
             }\r
             gigabit{\r
                 dnam{"gigabits"}\r
-                one{"{0} gigabit"}\r
-                other{"{0} gigabits"}\r
+                one{"{0} gigabit"}\r
+                other{"{0} gigabits"}\r
             }\r
             gigabyte{\r
                 dnam{"gigaoctets"}\r
-                one{"{0} gigaoctet"}\r
-                other{"{0} gigaoctets"}\r
+                one{"{0} gigaoctet"}\r
+                other{"{0} gigaoctets"}\r
             }\r
             kilobit{\r
                 dnam{"kilobits"}\r
-                one{"{0} kilobit"}\r
-                other{"{0} kilobits"}\r
+                one{"{0} kilobit"}\r
+                other{"{0} kilobits"}\r
             }\r
             kilobyte{\r
                 dnam{"kilooctets"}\r
-                one{"{0} kilooctet"}\r
-                other{"{0} kilooctets"}\r
+                one{"{0} kilooctet"}\r
+                other{"{0} kilooctets"}\r
             }\r
             megabit{\r
                 dnam{"mégabits"}\r
-                one{"{0} mégabit"}\r
-                other{"{0} mégabits"}\r
+                one{"{0} mégabit"}\r
+                other{"{0} mégabits"}\r
             }\r
             megabyte{\r
                 dnam{"mégaoctets"}\r
-                one{"{0} mégaoctet"}\r
-                other{"{0} mégaoctets"}\r
+                one{"{0} mégaoctet"}\r
+                other{"{0} mégaoctets"}\r
+            }\r
+            petabyte{\r
+                dnam{"pétaoctets"}\r
+                one{"{0} pétaoctet"}\r
+                other{"{0} pétaoctets"}\r
             }\r
             terabit{\r
                 dnam{"térabits"}\r
-                one{"{0} térabit"}\r
-                other{"{0} térabits"}\r
+                one{"{0} térabit"}\r
+                other{"{0} térabits"}\r
             }\r
             terabyte{\r
                 dnam{"téraoctets"}\r
-                one{"{0} téraoctet"}\r
-                other{"{0} téraoctets"}\r
+                one{"{0} téraoctet"}\r
+                other{"{0} téraoctets"}\r
             }\r
         }\r
         duration{\r
@@ -212,25 +228,25 @@ fr{
             }\r
             day{\r
                 dnam{"jours"}\r
-                one{"{0} jour"}\r
-                other{"{0} jours"}\r
+                one{"{0} jour"}\r
+                other{"{0} jours"}\r
                 per{"{0} par jour"}\r
             }\r
             hour{\r
                 dnam{"heures"}\r
-                one{"{0} heure"}\r
-                other{"{0} heures"}\r
+                one{"{0} heure"}\r
+                other{"{0} heures"}\r
                 per{"{0} par heure"}\r
             }\r
             microsecond{\r
                 dnam{"microsecondes"}\r
-                one{"{0} microseconde"}\r
-                other{"{0} microsecondes"}\r
+                one{"{0} microseconde"}\r
+                other{"{0} microsecondes"}\r
             }\r
             millisecond{\r
                 dnam{"millisecondes"}\r
-                one{"{0} milliseconde"}\r
-                other{"{0} millisecondes"}\r
+                one{"{0} milliseconde"}\r
+                other{"{0} millisecondes"}\r
             }\r
             minute{\r
                 dnam{"minutes"}\r
@@ -240,30 +256,30 @@ fr{
             }\r
             month{\r
                 dnam{"mois"}\r
-                one{"{0} mois"}\r
-                other{"{0} mois"}\r
+                one{"{0} mois"}\r
+                other{"{0} mois"}\r
                 per{"{0} par mois"}\r
             }\r
             nanosecond{\r
                 dnam{"nanosecondes"}\r
-                one{"{0} nanoseconde"}\r
-                other{"{0} nanosecondes"}\r
+                one{"{0} nanoseconde"}\r
+                other{"{0} nanosecondes"}\r
             }\r
             second{\r
                 dnam{"secondes"}\r
-                one{"{0} seconde"}\r
-                other{"{0} secondes"}\r
+                one{"{0} seconde"}\r
+                other{"{0} secondes"}\r
                 per{"{0} par seconde"}\r
             }\r
             week{\r
                 dnam{"semaines"}\r
-                one{"{0} semaine"}\r
-                other{"{0} semaines"}\r
+                one{"{0} semaine"}\r
+                other{"{0} semaines"}\r
                 per{"{0} par semaine"}\r
             }\r
             year{\r
                 dnam{"ans"}\r
-                one{"{0} an"}\r
+                one{"{0} an"}\r
                 other{"{0} ans"}\r
                 per{"{0} par an"}\r
             }\r
@@ -272,94 +288,94 @@ fr{
             ampere{\r
                 dnam{"ampères"}\r
                 one{"{0} ampère"}\r
-                other{"{0} ampères"}\r
+                other{"{0} ampères"}\r
             }\r
             milliampere{\r
                 dnam{"milliampères"}\r
-                one{"{0} milliampère"}\r
-                other{"{0} milliampères"}\r
+                one{"{0} milliampère"}\r
+                other{"{0} milliampères"}\r
             }\r
             ohm{\r
                 dnam{"ohms"}\r
-                one{"{0} ohm"}\r
-                other{"{0} ohms"}\r
+                one{"{0} ohm"}\r
+                other{"{0} ohms"}\r
             }\r
             volt{\r
                 dnam{"volts"}\r
-                one{"{0} volt"}\r
-                other{"{0} volts"}\r
+                one{"{0} volt"}\r
+                other{"{0} volts"}\r
             }\r
         }\r
         energy{\r
             calorie{\r
                 dnam{"calories"}\r
-                one{"{0} calorie"}\r
-                other{"{0} calories"}\r
+                one{"{0} calorie"}\r
+                other{"{0} calories"}\r
             }\r
             foodcalorie{\r
                 dnam{"kilocalories"}\r
-                one{"{0} kilocalorie"}\r
-                other{"{0} kilocalories"}\r
+                one{"{0} kilocalorie"}\r
+                other{"{0} kilocalories"}\r
             }\r
             joule{\r
                 dnam{"joules"}\r
-                one{"{0} joule"}\r
-                other{"{0} joules"}\r
+                one{"{0} joule"}\r
+                other{"{0} joules"}\r
             }\r
             kilocalorie{\r
                 dnam{"kilocalories"}\r
-                one{"{0} kilocalorie"}\r
-                other{"{0} kilocalories"}\r
+                one{"{0} kilocalorie"}\r
+                other{"{0} kilocalories"}\r
             }\r
             kilojoule{\r
                 dnam{"kilojoules"}\r
-                one{"{0} kilojoule"}\r
-                other{"{0} kilojoules"}\r
+                one{"{0} kilojoule"}\r
+                other{"{0} kilojoules"}\r
             }\r
             kilowatt-hour{\r
                 dnam{"kilowattheures"}\r
-                one{"{0} kilowattheure"}\r
-                other{"{0} kilowattheures"}\r
+                one{"{0} kilowattheure"}\r
+                other{"{0} kilowattheures"}\r
             }\r
         }\r
         frequency{\r
             gigahertz{\r
                 dnam{"gigahertz"}\r
-                one{"{0} gigahertz"}\r
-                other{"{0} gigahertz"}\r
+                one{"{0} gigahertz"}\r
+                other{"{0} gigahertz"}\r
             }\r
             hertz{\r
                 dnam{"hertz"}\r
-                one{"{0} hertz"}\r
-                other{"{0} hertz"}\r
+                one{"{0} hertz"}\r
+                other{"{0} hertz"}\r
             }\r
             kilohertz{\r
                 dnam{"kilohertz"}\r
-                one{"{0} kilohertz"}\r
-                other{"{0} kilohertz"}\r
+                one{"{0} kilohertz"}\r
+                other{"{0} kilohertz"}\r
             }\r
             megahertz{\r
                 dnam{"mégahertz"}\r
-                one{"{0} mégahertz"}\r
-                other{"{0} mégahertz"}\r
+                one{"{0} mégahertz"}\r
+                other{"{0} mégahertz"}\r
             }\r
         }\r
         length{\r
             astronomical-unit{\r
                 dnam{"unités astronomiques"}\r
-                one{"{0} unité astronomique"}\r
-                other{"{0} unités astronomiques"}\r
+                one{"{0} unité astronomique"}\r
+                other{"{0} unités astronomiques"}\r
             }\r
             centimeter{\r
                 dnam{"centimètres"}\r
-                one{"{0} centimètre"}\r
-                other{"{0} centimètres"}\r
+                one{"{0} centimètre"}\r
+                other{"{0} centimètres"}\r
                 per{"{0} par centimètre"}\r
             }\r
             decimeter{\r
                 dnam{"décimètres"}\r
-                one{"{0} décimètre"}\r
-                other{"{0} décimètres"}\r
+                one{"{0} décimètre"}\r
+                other{"{0} décimètres"}\r
             }\r
             fathom{\r
                 dnam{"brasses"}\r
@@ -368,7 +384,7 @@ fr{
             }\r
             foot{\r
                 dnam{"pieds"}\r
-                one{"{0} pied"}\r
+                one{"{0} pied"}\r
                 other{"{0} pieds"}\r
                 per{"{0} par pied"}\r
             }\r
@@ -379,107 +395,107 @@ fr{
             }\r
             inch{\r
                 dnam{"pouces"}\r
-                one{"{0} pouce"}\r
-                other{"{0} pouces"}\r
+                one{"{0} pouce"}\r
+                other{"{0} pouces"}\r
                 per{"{0} par pouce"}\r
             }\r
             kilometer{\r
                 dnam{"kilomètres"}\r
-                one{"{0} kilomètre"}\r
-                other{"{0} kilomètres"}\r
+                one{"{0} kilomètre"}\r
+                other{"{0} kilomètres"}\r
                 per{"{0} par kilomètre"}\r
             }\r
             light-year{\r
                 dnam{"années-lumière"}\r
-                one{"{0} année-lumière"}\r
-                other{"{0} années-lumière"}\r
+                one{"{0} année-lumière"}\r
+                other{"{0} années-lumière"}\r
             }\r
             meter{\r
                 dnam{"mètres"}\r
-                one{"{0} mètre"}\r
-                other{"{0} mètres"}\r
+                one{"{0} mètre"}\r
+                other{"{0} mètres"}\r
                 per{"{0} par mètre"}\r
             }\r
             micrometer{\r
                 dnam{"micromètres"}\r
-                one{"{0} micromètre"}\r
-                other{"{0} micromètres"}\r
+                one{"{0} micromètre"}\r
+                other{"{0} micromètres"}\r
             }\r
             mile{\r
                 dnam{"miles"}\r
-                one{"{0} mile"}\r
-                other{"{0} miles"}\r
+                one{"{0} mile"}\r
+                other{"{0} miles"}\r
             }\r
             mile-scandinavian{\r
                 dnam{"milles scandinaves"}\r
-                one{"{0} mille scandinave"}\r
-                other{"{0} milles scandinaves"}\r
+                one{"{0} mille scandinave"}\r
+                other{"{0} milles scandinaves"}\r
             }\r
             millimeter{\r
                 dnam{"millimètres"}\r
-                one{"{0} millimètre"}\r
-                other{"{0} millimètres"}\r
+                one{"{0} millimètre"}\r
+                other{"{0} millimètres"}\r
             }\r
             nanometer{\r
                 dnam{"nanomètres"}\r
-                one{"{0} nanomètre"}\r
-                other{"{0} nanomètres"}\r
+                one{"{0} nanomètre"}\r
+                other{"{0} nanomètres"}\r
             }\r
             nautical-mile{\r
                 dnam{"milles marins"}\r
-                one{"{0} mille marin"}\r
-                other{"{0} milles marins"}\r
+                one{"{0} mille marin"}\r
+                other{"{0} milles marins"}\r
             }\r
             parsec{\r
                 dnam{"parsecs"}\r
-                one{"{0} parsec"}\r
-                other{"{0} parsecs"}\r
+                one{"{0} parsec"}\r
+                other{"{0} parsecs"}\r
             }\r
             picometer{\r
                 dnam{"picomètres"}\r
-                one{"{0} picomètre"}\r
-                other{"{0} picomètres"}\r
+                one{"{0} picomètre"}\r
+                other{"{0} picomètres"}\r
             }\r
             point{\r
                 dnam{"points"}\r
-                one{"{0} point"}\r
-                other{"{0} points"}\r
+                one{"{0} point"}\r
+                other{"{0} points"}\r
             }\r
             yard{\r
                 dnam{"yards"}\r
-                one{"{0} yard"}\r
-                other{"{0} yards"}\r
+                one{"{0} yard"}\r
+                other{"{0} yards"}\r
             }\r
         }\r
         light{\r
             lux{\r
                 dnam{"lux"}\r
-                one{"{0} lux"}\r
-                other{"{0} lux"}\r
+                one{"{0} lux"}\r
+                other{"{0} lux"}\r
             }\r
         }\r
         mass{\r
             carat{\r
                 dnam{"carats"}\r
-                one{"{0} carat"}\r
-                other{"{0} carats"}\r
+                one{"{0} carat"}\r
+                other{"{0} carats"}\r
             }\r
             gram{\r
                 dnam{"grammes"}\r
-                one{"{0} gramme"}\r
-                other{"{0} grammes"}\r
+                one{"{0} gramme"}\r
+                other{"{0} grammes"}\r
                 per{"{0} par gramme"}\r
             }\r
             kilogram{\r
                 dnam{"kilogrammes"}\r
-                one{"{0} kilogramme"}\r
-                other{"{0} kilogrammes"}\r
+                one{"{0} kilogramme"}\r
+                other{"{0} kilogrammes"}\r
                 per{"{0} par kg"}\r
             }\r
             metric-ton{\r
                 dnam{"tonnes"}\r
-                one{"{0} tonne"}\r
-                other{"{0} tonnes"}\r
+                one{"{0} tonne"}\r
+                other{"{0} tonnes"}\r
             }\r
             microgram{\r
                 dnam{"microgrammes"}\r
@@ -488,24 +504,24 @@ fr{
             }\r
             milligram{\r
                 dnam{"milligrammes"}\r
-                one{"{0} milligramme"}\r
-                other{"{0} milligrammes"}\r
+                one{"{0} milligramme"}\r
+                other{"{0} milligrammes"}\r
             }\r
             ounce{\r
                 dnam{"onces"}\r
-                one{"{0} once"}\r
-                other{"{0} onces"}\r
+                one{"{0} once"}\r
+                other{"{0} onces"}\r
                 per{"{0} par once"}\r
             }\r
             ounce-troy{\r
                 dnam{"onces troy"}\r
-                one{"{0} once troy"}\r
-                other{"{0} onces troy"}\r
+                one{"{0} once troy"}\r
+                other{"{0} onces troy"}\r
             }\r
             pound{\r
                 dnam{"livres"}\r
-                one{"{0} livre"}\r
-                other{"{0} livres"}\r
+                one{"{0} livre"}\r
+                other{"{0} livres"}\r
                 per{"{0} par livre"}\r
             }\r
             stone{\r
@@ -515,57 +531,62 @@ fr{
             }\r
             ton{\r
                 dnam{"tonnes courtes"}\r
-                one{"{0} tonne courte"}\r
-                other{"{0} tonnes courtes"}\r
+                one{"{0} tonne courte"}\r
+                other{"{0} tonnes courtes"}\r
             }\r
         }\r
         power{\r
             gigawatt{\r
                 dnam{"gigawatts"}\r
-                one{"{0} gigawatt"}\r
-                other{"{0} gigawatts"}\r
+                one{"{0} gigawatt"}\r
+                other{"{0} gigawatts"}\r
             }\r
             horsepower{\r
                 dnam{"chevaux-vapeur"}\r
-                one{"{0} cheval-vapeur"}\r
-                other{"{0} chevaux-vapeur"}\r
+                one{"{0} cheval-vapeur"}\r
+                other{"{0} chevaux-vapeur"}\r
             }\r
             kilowatt{\r
                 dnam{"kilowatts"}\r
-                one{"{0} kilowatt"}\r
-                other{"{0} kilowatts"}\r
+                one{"{0} kilowatt"}\r
+                other{"{0} kilowatts"}\r
             }\r
             megawatt{\r
                 dnam{"mégawatts"}\r
-                one{"{0} mégawatt"}\r
-                other{"{0} mégawatts"}\r
+                one{"{0} mégawatt"}\r
+                other{"{0} mégawatts"}\r
             }\r
             milliwatt{\r
                 dnam{"milliwatts"}\r
-                one{"{0} milliwatt"}\r
-                other{"{0} milliwatts"}\r
+                one{"{0} milliwatt"}\r
+                other{"{0} milliwatts"}\r
             }\r
             watt{\r
                 dnam{"watts"}\r
-                one{"{0} watt"}\r
-                other{"{0} watts"}\r
+                one{"{0} watt"}\r
+                other{"{0} watts"}\r
             }\r
         }\r
         pressure{\r
+            atmosphere{\r
+                dnam{"atmosphères"}\r
+                one{"{0} atmosphère"}\r
+                other{"{0} atmosphères"}\r
+            }\r
             hectopascal{\r
                 dnam{"hectopascals"}\r
-                one{"{0} hectopascal"}\r
-                other{"{0} hectopascals"}\r
+                one{"{0} hectopascal"}\r
+                other{"{0} hectopascals"}\r
             }\r
             inch-hg{\r
                 dnam{"pouces de mercure"}\r
-                one{"{0} pouce de mercure"}\r
-                other{"{0} pouces de mercure"}\r
+                one{"{0} pouce de mercure"}\r
+                other{"{0} pouces de mercure"}\r
             }\r
             millibar{\r
                 dnam{"millibars"}\r
-                one{"{0} millibar"}\r
-                other{"{0} millibars"}\r
+                one{"{0} millibar"}\r
+                other{"{0} millibars"}\r
             }\r
             millimeter-of-mercury{\r
                 dnam{"millimètres de mercure"}\r
@@ -581,40 +602,40 @@ fr{
         speed{\r
             kilometer-per-hour{\r
                 dnam{"kilomètres par heure"}\r
-                one{"{0} kilomètre par heure"}\r
-                other{"{0} kilomètres par heure"}\r
+                one{"{0} kilomètre par heure"}\r
+                other{"{0} kilomètres par heure"}\r
             }\r
             knot{\r
                 dnam{"nœuds"}\r
-                one{"{0} nœud"}\r
-                other{"{0} nœuds"}\r
+                one{"{0} nœud"}\r
+                other{"{0} nœuds"}\r
             }\r
             meter-per-second{\r
                 dnam{"mètres par seconde"}\r
-                one{"{0} mètre par seconde"}\r
-                other{"{0} mètres par seconde"}\r
+                one{"{0} mètre par seconde"}\r
+                other{"{0} mètres par seconde"}\r
             }\r
             mile-per-hour{\r
                 dnam{"miles par heure"}\r
-                one{"{0} mile par heure"}\r
-                other{"{0} miles par heure"}\r
+                one{"{0} mile par heure"}\r
+                other{"{0} miles par heure"}\r
             }\r
         }\r
         temperature{\r
             celsius{\r
                 dnam{"degrés Celsius"}\r
-                one{"{0} degré Celsius"}\r
-                other{"{0} degrés Celsius"}\r
+                one{"{0} degré Celsius"}\r
+                other{"{0} degrés Celsius"}\r
             }\r
             fahrenheit{\r
                 dnam{"degrés Fahrenheit"}\r
-                one{"{0} degré Fahrenheit"}\r
-                other{"{0} degrés Fahrenheit"}\r
+                one{"{0} degré Fahrenheit"}\r
+                other{"{0} degrés Fahrenheit"}\r
             }\r
             generic{\r
                 dnam{"degrés"}\r
-                one{"{0} degré"}\r
-                other{"{0} degrés"}\r
+                one{"{0} degré"}\r
+                other{"{0} degrés"}\r
             }\r
             kelvin{\r
                 dnam{"kelvins"}\r
@@ -635,40 +656,40 @@ fr{
             }\r
             cubic-centimeter{\r
                 dnam{"centimètres cubes"}\r
-                one{"{0} centimètre cube"}\r
-                other{"{0} centimètres cubes"}\r
+                one{"{0} centimètre cube"}\r
+                other{"{0} centimètres cubes"}\r
                 per{"{0} par centimètre cube"}\r
             }\r
             cubic-foot{\r
                 dnam{"pieds cubes"}\r
-                one{"{0} pied cube"}\r
-                other{"{0} pieds cubes"}\r
+                one{"{0} pied cube"}\r
+                other{"{0} pieds cubes"}\r
             }\r
             cubic-inch{\r
                 dnam{"pouces cubes"}\r
-                one{"{0} pouce cube"}\r
-                other{"{0} pouces cubes"}\r
+                one{"{0} pouce cube"}\r
+                other{"{0} pouces cubes"}\r
             }\r
             cubic-kilometer{\r
                 dnam{"kilomètres cubes"}\r
-                one{"{0} kilomètre cube"}\r
-                other{"{0} kilomètres cubes"}\r
+                one{"{0} kilomètre cube"}\r
+                other{"{0} kilomètres cubes"}\r
             }\r
             cubic-meter{\r
                 dnam{"mètres cubes"}\r
-                one{"{0} mètre cube"}\r
-                other{"{0} mètres cubes"}\r
+                one{"{0} mètre cube"}\r
+                other{"{0} mètres cubes"}\r
                 per{"{0} par mètre cube"}\r
             }\r
             cubic-mile{\r
                 dnam{"milles cubes"}\r
-                one{"{0} mille cube"}\r
-                other{"{0} milles cubes"}\r
+                one{"{0} mille cube"}\r
+                other{"{0} milles cubes"}\r
             }\r
             cubic-yard{\r
                 dnam{"yards cubes"}\r
-                one{"{0} yard cube"}\r
-                other{"{0} yards cubes"}\r
+                one{"{0} yard cube"}\r
+                other{"{0} yards cubes"}\r
             }\r
             cup{\r
                 dnam{"tasses"}\r
@@ -704,19 +725,19 @@ fr{
             }\r
             hectoliter{\r
                 dnam{"hectolitres"}\r
-                one{"{0} hectolitre"}\r
-                other{"{0} hectolitres"}\r
+                one{"{0} hectolitre"}\r
+                other{"{0} hectolitres"}\r
             }\r
             liter{\r
                 dnam{"litres"}\r
-                one{"{0} litre"}\r
-                other{"{0} litres"}\r
+                one{"{0} litre"}\r
+                other{"{0} litres"}\r
                 per{"{0} par litre"}\r
             }\r
             megaliter{\r
                 dnam{"mégalitres"}\r
-                one{"{0} mégalitre"}\r
-                other{"{0} mégalitres"}\r
+                one{"{0} mégalitre"}\r
+                other{"{0} mégalitres"}\r
             }\r
             milliliter{\r
                 dnam{"millilitres"}\r
@@ -813,6 +834,13 @@ fr{
         compound{\r
             per{"{0}/{1}"}\r
         }\r
+        concentr{\r
+            percent{\r
+                dnam{"%"}\r
+                one{"{0}%"}\r
+                other{"{0}%"}\r
+            }\r
+        }\r
         consumption{\r
             liter-per-100kilometers{\r
                 dnam{"l/100km"}\r
@@ -827,6 +855,7 @@ fr{
             }\r
         }\r
         coordinate{\r
+            dnam{"direction"}\r
             east{"{0}E"}\r
             north{"{0}N"}\r
             south{"{0}S"}\r
@@ -862,14 +891,14 @@ fr{
             }\r
             minute{\r
                 dnam{"min"}\r
-                one{"{0} min"}\r
-                other{"{0} min"}\r
+                one{"{0}min"}\r
+                other{"{0}min"}\r
                 per{"{0}/min"}\r
             }\r
             month{\r
                 dnam{"m."}\r
-                one{"{0} m."}\r
-                other{"{0} m."}\r
+                one{"{0}m."}\r
+                other{"{0}m."}\r
                 per{"{0}/m."}\r
             }\r
             nanosecond{\r
@@ -885,8 +914,8 @@ fr{
             }\r
             week{\r
                 dnam{"sem."}\r
-                one{"{0} sem."}\r
-                other{"{0} sem."}\r
+                one{"{0}sem."}\r
+                other{"{0}sem."}\r
                 per{"{0}/sem."}\r
             }\r
             year{\r
@@ -915,8 +944,8 @@ fr{
             }\r
             fathom{\r
                 dnam{"fm"}\r
-                one{"{0} fm"}\r
-                other{"{0} fm"}\r
+                one{"{0} fth"}\r
+                other{"{0} fth"}\r
             }\r
             foot{\r
                 dnam{"pi"}\r
@@ -1208,7 +1237,7 @@ fr{
             liter{\r
                 dnam{"l"}\r
                 one{"{0}l"}\r
-                other{"{0} l"}\r
+                other{"{0}l"}\r
             }\r
             megaliter{\r
                 dnam{"Ml"}\r
@@ -1225,14 +1254,14 @@ fr{
     unitsShort{\r
         acceleration{\r
             g-force{\r
-                dnam{"G"}\r
-                one{"{0} G"}\r
-                other{"{0} G"}\r
+                dnam{"force g"}\r
+                one{"{0} force g"}\r
+                other{"{0} force g"}\r
             }\r
             meter-per-second-squared{\r
                 dnam{"m/s²"}\r
-                one{"{0} m/s²"}\r
-                other{"{0} m/s²"}\r
+                one{"{0}m/s²"}\r
+                other{"{0}m/s²"}\r
             }\r
         }\r
         angle{\r
@@ -1253,65 +1282,65 @@ fr{
             }\r
             radian{\r
                 dnam{"rad"}\r
-                one{"{0} rad"}\r
-                other{"{0} rad"}\r
+                one{"{0}rad"}\r
+                other{"{0}rad"}\r
             }\r
             revolution{\r
                 dnam{"tr"}\r
-                one{"{0} tr"}\r
-                other{"{0} tr"}\r
+                one{"{0}tr"}\r
+                other{"{0}tr"}\r
             }\r
         }\r
         area{\r
             acre{\r
                 dnam{"ac"}\r
-                one{"{0} ac"}\r
-                other{"{0} ac"}\r
+                one{"{0}ac"}\r
+                other{"{0}ac"}\r
             }\r
             hectare{\r
                 dnam{"ha"}\r
-                one{"{0} ha"}\r
-                other{"{0} ha"}\r
+                one{"{0}ha"}\r
+                other{"{0}ha"}\r
             }\r
             square-centimeter{\r
                 dnam{"cm²"}\r
-                one{"{0} cm²"}\r
-                other{"{0} cm²"}\r
+                one{"{0}cm²"}\r
+                other{"{0}cm²"}\r
                 per{"{0}/cm²"}\r
             }\r
             square-foot{\r
                 dnam{"pi²"}\r
-                one{"{0} pi²"}\r
-                other{"{0} pi²"}\r
+                one{"{0}pi²"}\r
+                other{"{0}pi²"}\r
             }\r
             square-inch{\r
                 dnam{"po²"}\r
-                one{"{0} po²"}\r
-                other{"{0} po²"}\r
+                one{"{0}po²"}\r
+                other{"{0}po²"}\r
                 per{"{0}/po²"}\r
             }\r
             square-kilometer{\r
                 dnam{"km²"}\r
-                one{"{0} km²"}\r
-                other{"{0} km²"}\r
+                one{"{0}km²"}\r
+                other{"{0}km²"}\r
                 per{"{0}/km²"}\r
             }\r
             square-meter{\r
                 dnam{"m²"}\r
-                one{"{0} m²"}\r
-                other{"{0} m²"}\r
+                one{"{0}m²"}\r
+                other{"{0}m²"}\r
                 per{"{0}/m²"}\r
             }\r
             square-mile{\r
                 dnam{"mi²"}\r
-                one{"{0} mi²"}\r
-                other{"{0} mi²"}\r
+                one{"{0}mi²"}\r
+                other{"{0}mi²"}\r
                 per{"{0}/mi²"}\r
             }\r
             square-yard{\r
                 dnam{"yd²"}\r
-                one{"{0} yd²"}\r
-                other{"{0} yd²"}\r
+                one{"{0}yd²"}\r
+                other{"{0}yd²"}\r
             }\r
         }\r
         compound{\r
@@ -1320,271 +1349,287 @@ fr{
         concentr{\r
             karat{\r
                 dnam{"ct"}\r
-                one{"{0} ct"}\r
-                other{"{0} ct"}\r
+                one{"{0}ct"}\r
+                other{"{0}ct"}\r
             }\r
             milligram-per-deciliter{\r
                 dnam{"mg/dl"}\r
-                one{"{0} mg/dl"}\r
-                other{"{0} mg/dl"}\r
+                one{"{0}mg/dl"}\r
+                other{"{0}mg/dl"}\r
             }\r
             millimole-per-liter{\r
                 dnam{"mmol/l"}\r
-                one{"{0} mmol/l"}\r
-                other{"{0} mmol/l"}\r
+                one{"{0}mmol/l"}\r
+                other{"{0}mmol/l"}\r
             }\r
             part-per-million{\r
                 dnam{"ppm"}\r
-                one{"{0} ppm"}\r
-                other{"{0} ppm"}\r
+                one{"{0} ppm"}\r
+                other{"{0} ppm"}\r
+            }\r
+            percent{\r
+                dnam{"%"}\r
+                one{"{0} %"}\r
+                other{"{0} %"}\r
+            }\r
+            permille{\r
+                dnam{"‰"}\r
+                one{"{0} ‰"}\r
+                other{"{0} ‰"}\r
             }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
                 dnam{"l/100 km"}\r
-                one{"{0} l/100 km"}\r
-                other{"{0} l/100 km"}\r
+                one{"{0} l/100 km"}\r
+                other{"{0} l/100 km"}\r
             }\r
             liter-per-kilometer{\r
                 dnam{"l/km"}\r
-                one{"{0} l/km"}\r
-                other{"{0} l/km"}\r
+                one{"{0}l/km"}\r
+                other{"{0}l/km"}\r
             }\r
             mile-per-gallon{\r
                 dnam{"mi/gal"}\r
-                one{"{0} mi/gal"}\r
-                other{"{0} mi/gal"}\r
+                one{"{0}mi/gal"}\r
+                other{"{0}mi/gal"}\r
             }\r
             mile-per-gallon-imperial{\r
                 dnam{"mi/gal imp."}\r
-                one{"{0} mi/gal imp."}\r
-                other{"{0} mi/gal imp."}\r
+                one{"{0} mi/gal imp."}\r
+                other{"{0} mi/gal imp."}\r
             }\r
         }\r
         coordinate{\r
-            east{"{0} E"}\r
-            north{"{0} N"}\r
-            south{"{0} S"}\r
-            west{"{0} O"}\r
+            dnam{"direction"}\r
+            east{"{0} E"}\r
+            north{"{0} N"}\r
+            south{"{0} S"}\r
+            west{"{0} O"}\r
         }\r
         digital{\r
             bit{\r
                 dnam{"bit"}\r
-                one{"{0} bit"}\r
-                other{"{0} bit"}\r
+                one{"{0}bit"}\r
+                other{"{0}bit"}\r
             }\r
             byte{\r
                 dnam{"octet"}\r
-                one{"{0} octet"}\r
-                other{"{0} octet"}\r
+                one{"{0} o"}\r
+                other{"{0} o"}\r
             }\r
             gigabit{\r
                 dnam{"Gbit"}\r
-                one{"{0} Gb"}\r
-                other{"{0} Gb"}\r
+                one{"{0} Gbit"}\r
+                other{"{0} Gbit"}\r
             }\r
             gigabyte{\r
                 dnam{"Go"}\r
-                one{"{0} Go"}\r
-                other{"{0} Go"}\r
+                one{"{0}Go"}\r
+                other{"{0}Go"}\r
             }\r
             kilobit{\r
                 dnam{"kbit"}\r
-                one{"{0} kb"}\r
-                other{"{0} kb"}\r
+                one{"{0} kbit"}\r
+                other{"{0} kbit"}\r
             }\r
             kilobyte{\r
                 dnam{"ko"}\r
-                one{"{0} ko"}\r
-                other{"{0} ko"}\r
+                one{"{0}ko"}\r
+                other{"{0}ko"}\r
             }\r
             megabit{\r
                 dnam{"Mbit"}\r
-                one{"{0} Mb"}\r
-                other{"{0} Mb"}\r
+                one{"{0} Mbit"}\r
+                other{"{0} Mbit"}\r
             }\r
             megabyte{\r
                 dnam{"Mo"}\r
-                one{"{0} Mo"}\r
-                other{"{0} Mo"}\r
+                one{"{0} Mo"}\r
+                other{"{0} Mo"}\r
+            }\r
+            petabyte{\r
+                dnam{"Po"}\r
+                one{"{0} Po"}\r
+                other{"{0} Po"}\r
             }\r
             terabit{\r
                 dnam{"Tbit"}\r
-                one{"{0} Tb"}\r
+                one{"{0} Tbit"}\r
                 other{"{0} Tb"}\r
             }\r
             terabyte{\r
                 dnam{"To"}\r
-                one{"{0} To"}\r
-                other{"{0} To"}\r
+                one{"{0}To"}\r
+                other{"{0}To"}\r
             }\r
         }\r
         duration{\r
             century{\r
-                dnam{"si"}\r
-                one{"{0} si"}\r
-                other{"{0} si"}\r
+                dnam{"siècles"}\r
+                one{"{0} siècle"}\r
+                other{"{0} siècles"}\r
             }\r
             day{\r
                 dnam{"j"}\r
-                one{"{0} j"}\r
-                other{"{0} j"}\r
+                one{"{0}j"}\r
+                other{"{0}j"}\r
                 per{"{0}/j"}\r
             }\r
             hour{\r
                 dnam{"h"}\r
-                one{"{0} h"}\r
-                other{"{0} h"}\r
+                one{"{0}h"}\r
+                other{"{0}h"}\r
                 per{"{0}/h"}\r
             }\r
             microsecond{\r
                 dnam{"μs"}\r
-                one{"{0} μs"}\r
-                other{"{0} μs"}\r
+                one{"{0}μs"}\r
+                other{"{0}μs"}\r
             }\r
             millisecond{\r
                 dnam{"ms"}\r
-                one{"{0} ms"}\r
-                other{"{0} ms"}\r
+                one{"{0}ms"}\r
+                other{"{0}ms"}\r
             }\r
             minute{\r
                 dnam{"min"}\r
-                one{"{0} min"}\r
-                other{"{0} min"}\r
+                one{"{0} min"}\r
+                other{"{0} min"}\r
                 per{"{0}/min"}\r
             }\r
             month{\r
                 dnam{"m."}\r
-                one{"{0} m."}\r
-                other{"{0} m."}\r
+                one{"{0}m."}\r
+                other{"{0}m."}\r
                 per{"{0}/m."}\r
             }\r
             nanosecond{\r
                 dnam{"ns"}\r
-                one{"{0} ns"}\r
-                other{"{0} ns"}\r
+                one{"{0}ns"}\r
+                other{"{0}ns"}\r
             }\r
             second{\r
                 dnam{"s"}\r
-                one{"{0} s"}\r
-                other{"{0} s"}\r
+                one{"{0}s"}\r
+                other{"{0}s"}\r
                 per{"{0}/s"}\r
             }\r
             week{\r
                 dnam{"sem."}\r
-                one{"{0} sem."}\r
-                other{"{0} sem."}\r
+                one{"{0}sem."}\r
+                other{"{0}sem."}\r
                 per{"{0}/sem."}\r
             }\r
             year{\r
                 dnam{"ans"}\r
-                one{"{0} an"}\r
-                other{"{0} ans"}\r
+                one{"{0} an"}\r
+                other{"{0} ans"}\r
                 per{"{0}/an"}\r
             }\r
         }\r
         electric{\r
             ampere{\r
                 dnam{"A"}\r
-                one{"{0} A"}\r
-                other{"{0} A"}\r
+                one{"{0}A"}\r
+                other{"{0}A"}\r
             }\r
             milliampere{\r
                 dnam{"mA"}\r
-                one{"{0} mA"}\r
-                other{"{0} mA"}\r
+                one{"{0}mA"}\r
+                other{"{0}mA"}\r
             }\r
             ohm{\r
                 dnam{"Ω"}\r
-                one{"{0} Ω"}\r
-                other{"{0} Ω"}\r
+                one{"{0}Ω"}\r
+                other{"{0}Ω"}\r
             }\r
             volt{\r
                 dnam{"V"}\r
-                one{"{0} V"}\r
-                other{"{0} V"}\r
+                one{"{0}V"}\r
+                other{"{0}V"}\r
             }\r
         }\r
         energy{\r
             calorie{\r
                 dnam{"cal"}\r
-                one{"{0} cal"}\r
-                other{"{0} cal"}\r
+                one{"{0}cal"}\r
+                other{"{0}cal"}\r
             }\r
             foodcalorie{\r
                 dnam{"kcal"}\r
-                one{"{0} kcal"}\r
-                other{"{0} kcal"}\r
+                one{"{0}kcal"}\r
+                other{"{0}kcal"}\r
             }\r
             joule{\r
                 dnam{"J"}\r
-                one{"{0} J"}\r
-                other{"{0} J"}\r
+                one{"{0}J"}\r
+                other{"{0}J"}\r
             }\r
             kilocalorie{\r
                 dnam{"kcal"}\r
-                one{"{0} kcal"}\r
-                other{"{0} kcal"}\r
+                one{"{0}kcal"}\r
+                other{"{0}kcal"}\r
             }\r
             kilojoule{\r
                 dnam{"kJ"}\r
-                one{"{0} kJ"}\r
-                other{"{0} kJ"}\r
+                one{"{0}kJ"}\r
+                other{"{0}kJ"}\r
             }\r
             kilowatt-hour{\r
                 dnam{"kWh"}\r
-                one{"{0} kWh"}\r
-                other{"{0} kWh"}\r
+                one{"{0}kWh"}\r
+                other{"{0}kWh"}\r
             }\r
         }\r
         frequency{\r
             gigahertz{\r
                 dnam{"GHz"}\r
-                one{"{0} GHz"}\r
-                other{"{0} GHz"}\r
+                one{"{0}GHz"}\r
+                other{"{0}GHz"}\r
             }\r
             hertz{\r
                 dnam{"Hz"}\r
-                one{"{0} Hz"}\r
-                other{"{0} Hz"}\r
+                one{"{0}Hz"}\r
+                other{"{0}Hz"}\r
             }\r
             kilohertz{\r
                 dnam{"kHz"}\r
-                one{"{0} kHz"}\r
-                other{"{0} kHz"}\r
+                one{"{0}kHz"}\r
+                other{"{0}kHz"}\r
             }\r
             megahertz{\r
                 dnam{"MHz"}\r
-                one{"{0} MHz"}\r
-                other{"{0} MHz"}\r
+                one{"{0}MHz"}\r
+                other{"{0}MHz"}\r
             }\r
         }\r
         length{\r
             astronomical-unit{\r
                 dnam{"ua"}\r
-                one{"{0} ua"}\r
-                other{"{0} ua"}\r
+                one{"{0}ua"}\r
+                other{"{0}ua"}\r
             }\r
             centimeter{\r
                 dnam{"cm"}\r
-                one{"{0} cm"}\r
-                other{"{0} cm"}\r
+                one{"{0}cm"}\r
+                other{"{0}cm"}\r
                 per{"{0}/cm"}\r
             }\r
             decimeter{\r
                 dnam{"dm"}\r
-                one{"{0} dm"}\r
-                other{"{0} dm"}\r
+                one{"{0}dm"}\r
+                other{"{0}dm"}\r
             }\r
             fathom{\r
                 dnam{"fm"}\r
-                one{"{0} fm"}\r
-                other{"{0} fm"}\r
+                one{"{0} fth"}\r
+                other{"{0} fth"}\r
             }\r
             foot{\r
                 dnam{"pi"}\r
-                one{"{0} pi"}\r
-                other{"{0} pi"}\r
+                one{"{0}pi"}\r
+                other{"{0}pi"}\r
                 per{"{0}/pi"}\r
             }\r
             furlong{\r
@@ -1594,133 +1639,133 @@ fr{
             }\r
             inch{\r
                 dnam{"po"}\r
-                one{"{0} po"}\r
-                other{"{0} po"}\r
+                one{"{0}po"}\r
+                other{"{0}po"}\r
                 per{"{0}/po"}\r
             }\r
             kilometer{\r
                 dnam{"km"}\r
-                one{"{0} km"}\r
-                other{"{0} km"}\r
+                one{"{0}km"}\r
+                other{"{0}km"}\r
                 per{"{0}/km"}\r
             }\r
             light-year{\r
                 dnam{"al"}\r
-                one{"{0} al"}\r
-                other{"{0} al"}\r
+                one{"{0}al"}\r
+                other{"{0}al"}\r
             }\r
             meter{\r
                 dnam{"m"}\r
-                one{"{0} m"}\r
-                other{"{0} m"}\r
+                one{"{0}m"}\r
+                other{"{0}m"}\r
                 per{"{0}/m"}\r
             }\r
             micrometer{\r
                 dnam{"µm"}\r
-                one{"{0} µm"}\r
-                other{"{0} µm"}\r
+                one{"{0}µm"}\r
+                other{"{0}µm"}\r
             }\r
             mile{\r
                 dnam{"mi"}\r
-                one{"{0} mi"}\r
-                other{"{0} mi"}\r
+                one{"{0}mi"}\r
+                other{"{0}mi"}\r
             }\r
             mile-scandinavian{\r
                 dnam{"smi"}\r
-                one{"{0} smi"}\r
-                other{"{0} smi"}\r
+                one{"{0}smi"}\r
+                other{"{0}smi"}\r
             }\r
             millimeter{\r
                 dnam{"mm"}\r
-                one{"{0} mm"}\r
-                other{"{0} mm"}\r
+                one{"{0}mm"}\r
+                other{"{0}mm"}\r
             }\r
             nanometer{\r
                 dnam{"nm"}\r
-                one{"{0} nm"}\r
-                other{"{0} nm"}\r
+                one{"{0}nm"}\r
+                other{"{0}nm"}\r
             }\r
             nautical-mile{\r
                 dnam{"nmi"}\r
-                one{"{0} nmi"}\r
-                other{"{0} nmi"}\r
+                one{"{0}nmi"}\r
+                other{"{0}nmi"}\r
             }\r
             parsec{\r
                 dnam{"pc"}\r
-                one{"{0} pc"}\r
-                other{"{0} pc"}\r
+                one{"{0}pc"}\r
+                other{"{0}pc"}\r
             }\r
             picometer{\r
                 dnam{"pm"}\r
-                one{"{0} pm"}\r
-                other{"{0} pm"}\r
+                one{"{0}pm"}\r
+                other{"{0}pm"}\r
             }\r
             point{\r
                 dnam{"points"}\r
-                one{"{0} pt"}\r
-                other{"{0} pt"}\r
+                one{"{0}pt"}\r
+                other{"{0}pt"}\r
             }\r
             yard{\r
                 dnam{"yd"}\r
-                one{"{0} yd"}\r
-                other{"{0} yd"}\r
+                one{"{0}yd"}\r
+                other{"{0}yd"}\r
             }\r
         }\r
         light{\r
             lux{\r
                 dnam{"lx"}\r
-                one{"{0} lx"}\r
-                other{"{0} lx"}\r
+                one{"{0}lx"}\r
+                other{"{0}lx"}\r
             }\r
         }\r
         mass{\r
             carat{\r
                 dnam{"ct"}\r
-                one{"{0} ct"}\r
-                other{"{0} ct"}\r
+                one{"{0}ct"}\r
+                other{"{0}ct"}\r
             }\r
             gram{\r
                 dnam{"g"}\r
-                one{"{0} g"}\r
-                other{"{0} g"}\r
+                one{"{0}g"}\r
+                other{"{0}g"}\r
                 per{"{0}/g"}\r
             }\r
             kilogram{\r
                 dnam{"kg"}\r
-                one{"{0} kg"}\r
-                other{"{0} kg"}\r
+                one{"{0}kg"}\r
+                other{"{0}kg"}\r
                 per{"{0}/kg"}\r
             }\r
             metric-ton{\r
                 dnam{"t"}\r
-                one{"{0} t"}\r
-                other{"{0} t"}\r
+                one{"{0}t"}\r
+                other{"{0}t"}\r
             }\r
             microgram{\r
                 dnam{"µg"}\r
-                one{"{0} µg"}\r
-                other{"{0} µg"}\r
+                one{"{0}µg"}\r
+                other{"{0}µg"}\r
             }\r
             milligram{\r
                 dnam{"mg"}\r
-                one{"{0} mg"}\r
-                other{"{0} mg"}\r
+                one{"{0}mg"}\r
+                other{"{0}mg"}\r
             }\r
             ounce{\r
                 dnam{"oz"}\r
-                one{"{0} oz"}\r
-                other{"{0} oz"}\r
+                one{"{0}oz"}\r
+                other{"{0}oz"}\r
                 per{"{0}/oz"}\r
             }\r
             ounce-troy{\r
                 dnam{"oz t"}\r
-                one{"{0} oz t"}\r
-                other{"{0} oz t"}\r
+                one{"{0} oz t"}\r
+                other{"{0} oz t"}\r
             }\r
             pound{\r
                 dnam{"lb"}\r
-                one{"{0} lb"}\r
-                other{"{0} lb"}\r
+                one{"{0}lb"}\r
+                other{"{0}lb"}\r
                 per{"{0}/lb"}\r
             }\r
             stone{\r
@@ -1730,101 +1775,106 @@ fr{
             }\r
             ton{\r
                 dnam{"sh tn"}\r
-                one{"{0} sh tn"}\r
-                other{"{0} sh tn"}\r
+                one{"{0} sh tn"}\r
+                other{"{0} sh tn"}\r
             }\r
         }\r
         power{\r
             gigawatt{\r
                 dnam{"GW"}\r
-                one{"{0} GW"}\r
-                other{"{0} GW"}\r
+                one{"{0}GW"}\r
+                other{"{0}GW"}\r
             }\r
             horsepower{\r
                 dnam{"ch"}\r
-                one{"{0} ch"}\r
-                other{"{0} ch"}\r
+                one{"{0}ch"}\r
+                other{"{0}ch"}\r
             }\r
             kilowatt{\r
                 dnam{"kW"}\r
-                one{"{0} kW"}\r
-                other{"{0} kW"}\r
+                one{"{0}kW"}\r
+                other{"{0}kW"}\r
             }\r
             megawatt{\r
                 dnam{"MW"}\r
-                one{"{0} MW"}\r
-                other{"{0} MW"}\r
+                one{"{0}MW"}\r
+                other{"{0}MW"}\r
             }\r
             milliwatt{\r
                 dnam{"mW"}\r
-                one{"{0} mW"}\r
-                other{"{0} mW"}\r
+                one{"{0}mW"}\r
+                other{"{0}mW"}\r
             }\r
             watt{\r
                 dnam{"W"}\r
-                one{"{0} W"}\r
-                other{"{0} W"}\r
+                one{"{0}W"}\r
+                other{"{0}W"}\r
             }\r
         }\r
         pressure{\r
+            atmosphere{\r
+                dnam{"atm"}\r
+                one{"{0} atm"}\r
+                other{"{0} atm"}\r
+            }\r
             hectopascal{\r
                 dnam{"hPa"}\r
-                one{"{0} hPa"}\r
-                other{"{0} hPa"}\r
+                one{"{0}hPa"}\r
+                other{"{0}hPa"}\r
             }\r
             inch-hg{\r
                 dnam{"inHg"}\r
-                one{"{0} inHg"}\r
-                other{"{0} inHg"}\r
+                one{"{0}inHg"}\r
+                other{"{0}inHg"}\r
             }\r
             millibar{\r
                 dnam{"mbar"}\r
-                one{"{0} mbar"}\r
-                other{"{0} mbar"}\r
+                one{"{0}mbar"}\r
+                other{"{0}mbar"}\r
             }\r
             millimeter-of-mercury{\r
                 dnam{"mmHg"}\r
-                one{"{0} mmHg"}\r
-                other{"{0} mmHg"}\r
+                one{"{0}mmHg"}\r
+                other{"{0}mmHg"}\r
             }\r
             pound-per-square-inch{\r
                 dnam{"lb/po²"}\r
-                one{"{0} lb/po²"}\r
-                other{"{0} lb/po²"}\r
+                one{"{0}lb/po²"}\r
+                other{"{0}lb/po²"}\r
             }\r
         }\r
         speed{\r
             kilometer-per-hour{\r
                 dnam{"km/h"}\r
-                one{"{0} km/h"}\r
-                other{"{0} km/h"}\r
+                one{"{0}km/h"}\r
+                other{"{0}km/h"}\r
             }\r
             knot{\r
                 dnam{"nd"}\r
-                one{"{0} nd"}\r
-                other{"{0} nd"}\r
+                one{"{0}nd"}\r
+                other{"{0}nd"}\r
             }\r
             meter-per-second{\r
                 dnam{"m/s"}\r
-                one{"{0} m/s"}\r
-                other{"{0} m/s"}\r
+                one{"{0}m/s"}\r
+                other{"{0}m/s"}\r
             }\r
             mile-per-hour{\r
                 dnam{"mi/h"}\r
-                one{"{0} mi/h"}\r
-                other{"{0} mi/h"}\r
+                one{"{0}mi/h"}\r
+                other{"{0}mi/h"}\r
             }\r
         }\r
         temperature{\r
             celsius{\r
                 dnam{"°C"}\r
-                one{"{0} °C"}\r
-                other{"{0} °C"}\r
+                one{"{0}°C"}\r
+                other{"{0}°C"}\r
             }\r
             fahrenheit{\r
                 dnam{"°F"}\r
-                one{"{0} °F"}\r
-                other{"{0} °F"}\r
+                one{"{0}°F"}\r
+                other{"{0}°F"}\r
             }\r
             generic{\r
                 dnam{"°"}\r
@@ -1833,8 +1883,8 @@ fr{
             }\r
             kelvin{\r
                 dnam{"K"}\r
-                one{"{0} K"}\r
-                other{"{0} K"}\r
+                one{"{0}K"}\r
+                other{"{0}K"}\r
             }\r
         }\r
         volume{\r
@@ -1850,40 +1900,40 @@ fr{
             }\r
             cubic-centimeter{\r
                 dnam{"cm³"}\r
-                one{"{0} cm³"}\r
-                other{"{0} cm³"}\r
+                one{"{0}cm³"}\r
+                other{"{0}cm³"}\r
                 per{"{0}/cm³"}\r
             }\r
             cubic-foot{\r
                 dnam{"pi³"}\r
-                one{"{0} pi³"}\r
-                other{"{0} pi³"}\r
+                one{"{0}pi³"}\r
+                other{"{0}pi³"}\r
             }\r
             cubic-inch{\r
                 dnam{"po³"}\r
-                one{"{0} po³"}\r
-                other{"{0} po³"}\r
+                one{"{0}po³"}\r
+                other{"{0}po³"}\r
             }\r
             cubic-kilometer{\r
                 dnam{"km³"}\r
-                one{"{0} km³"}\r
-                other{"{0} km³"}\r
+                one{"{0}km³"}\r
+                other{"{0}km³"}\r
             }\r
             cubic-meter{\r
                 dnam{"m³"}\r
-                one{"{0} m³"}\r
-                other{"{0} m³"}\r
+                one{"{0}m³"}\r
+                other{"{0}m³"}\r
                 per{"{0}/m³"}\r
             }\r
             cubic-mile{\r
                 dnam{"mi³"}\r
-                one{"{0} mi³"}\r
-                other{"{0} mi³"}\r
+                one{"{0}mi³"}\r
+                other{"{0}mi³"}\r
             }\r
             cubic-yard{\r
                 dnam{"yd³"}\r
-                one{"{0} yd³"}\r
-                other{"{0} yd³"}\r
+                one{"{0}yd³"}\r
+                other{"{0}yd³"}\r
             }\r
             cup{\r
                 dnam{"tasses"}\r
@@ -1919,19 +1969,19 @@ fr{
             }\r
             hectoliter{\r
                 dnam{"hl"}\r
-                one{"{0} hl"}\r
-                other{"{0} hl"}\r
+                one{"{0}hl"}\r
+                other{"{0}hl"}\r
             }\r
             liter{\r
                 dnam{"l"}\r
-                one{"{0} l"}\r
-                other{"{0} l"}\r
+                one{"{0}l"}\r
+                other{"{0}l"}\r
                 per{"{0}/l"}\r
             }\r
             megaliter{\r
                 dnam{"Ml"}\r
-                one{"{0} Ml"}\r
-                other{"{0} Ml"}\r
+                one{"{0}Ml"}\r
+                other{"{0}Ml"}\r
             }\r
             milliliter{\r
                 dnam{"ml"}\r
index 91e91ba..c6e417a 100644 (file)
@@ -1,18 +1,36 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 fr_CA{\r
-    Version{"2.1.38.73"}\r
+    Version{"2.1.43.65"}\r
     units{\r
         acceleration{\r
             g-force{\r
                 dnam{"force G"}\r
+                one{"{0} fois la gravitation terrestre"}\r
+                other{"{0} fois la gravitation terrestre"}\r
+            }\r
+            meter-per-second-squared{\r
+                one{"{0} mètre par seconde carrée"}\r
+                other{"{0} mètres par seconde carrée"}\r
             }\r
         }\r
         angle{\r
+            arc-minute{\r
+                one{"{0} minute d’angle"}\r
+                other{"{0} minutes d’angle"}\r
+            }\r
             arc-second{\r
                 one{"{0} seconde d’angle"}\r
                 other{"{0} secondes d’angle"}\r
             }\r
+            degree{\r
+                one{"{0} degré"}\r
+                other{"{0} degrés"}\r
+            }\r
+            radian{\r
+                one{"{0} radian"}\r
+                other{"{0} radians"}\r
+            }\r
         }\r
         area{\r
             acre{\r
@@ -20,7 +38,33 @@ fr_CA{
                 one{"{0} acre"}\r
                 other{"{0} acres"}\r
             }\r
+            hectare{\r
+                one{"{0} hectare"}\r
+                other{"{0} hectares"}\r
+            }\r
+            square-centimeter{\r
+                one{"{0} centimètre carré"}\r
+                other{"{0} centimètres carrés"}\r
+            }\r
+            square-foot{\r
+                one{"{0} pied carré"}\r
+                other{"{0} pieds carrés"}\r
+            }\r
+            square-inch{\r
+                one{"{0} pouce carré"}\r
+                other{"{0} pouces carrés"}\r
+            }\r
+            square-kilometer{\r
+                one{"{0} kilomètre carré"}\r
+                other{"{0} kilomètres carrés"}\r
+            }\r
+            square-meter{\r
+                one{"{0} mètre carré"}\r
+                other{"{0} mètres carrés"}\r
+            }\r
             square-mile{\r
+                one{"{0} mille carré"}\r
+                other{"{0} milles carrés"}\r
                 per{"{0} par mille carré"}\r
             }\r
             square-yard{\r
@@ -35,6 +79,13 @@ fr_CA{
                 one{"{0} partie par million"}\r
                 other{"{0} parties par million"}\r
             }\r
+            percent{\r
+                other{"{0} pour cent"}\r
+            }\r
+            permille{\r
+                one{"{0} pour mille"}\r
+                other{"{0} pour mille"}\r
+            }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
@@ -53,34 +104,256 @@ fr_CA{
                 other{"{0} milles au gallon impérial"}\r
             }\r
         }\r
+        coordinate{\r
+            dnam{"point cardinal"}\r
+            west{"{0} ouest"}\r
+        }\r
+        digital{\r
+            bit{\r
+                one{"{0} bit"}\r
+                other{"{0} bits"}\r
+            }\r
+            byte{\r
+                one{"{0} octet"}\r
+                other{"{0} octets"}\r
+            }\r
+            gigabit{\r
+                one{"{0} gigabit"}\r
+                other{"{0} gigabits"}\r
+            }\r
+            gigabyte{\r
+                one{"{0} gigaoctet"}\r
+                other{"{0} gigaoctets"}\r
+            }\r
+            kilobit{\r
+                one{"{0} kilobit"}\r
+                other{"{0} kilobits"}\r
+            }\r
+            kilobyte{\r
+                one{"{0} kilooctet"}\r
+                other{"{0} kilooctets"}\r
+            }\r
+            megabit{\r
+                one{"{0} mégabit"}\r
+                other{"{0} mégabits"}\r
+            }\r
+            megabyte{\r
+                one{"{0} mégaoctet"}\r
+                other{"{0} mégaoctets"}\r
+            }\r
+            terabit{\r
+                one{"{0} térabit"}\r
+                other{"{0} térabits"}\r
+            }\r
+            terabyte{\r
+                one{"{0} téraoctet"}\r
+                other{"{0} téraoctets"}\r
+            }\r
+        }\r
         duration{\r
             second{\r
                 per{"{0} à la seconde"}\r
             }\r
+            year{\r
+                one{"{0} an"}\r
+                other{"{0} ans"}\r
+            }\r
+        }\r
+        electric{\r
+            ampere{\r
+                one{"{0} ampère"}\r
+                other{"{0} ampères"}\r
+            }\r
+            milliampere{\r
+                one{"{0} milliampère"}\r
+                other{"{0} milliampères"}\r
+            }\r
+            ohm{\r
+                one{"{0} ohm"}\r
+                other{"{0} ohms"}\r
+            }\r
+            volt{\r
+                one{"{0} volt"}\r
+                other{"{0} volts"}\r
+            }\r
+        }\r
+        energy{\r
+            calorie{\r
+                one{"{0} calorie"}\r
+                other{"{0} calories"}\r
+            }\r
+            foodcalorie{\r
+                one{"{0} kilocalorie"}\r
+                other{"{0} kilocalories"}\r
+            }\r
+            joule{\r
+                one{"{0} joule"}\r
+                other{"{0} joules"}\r
+            }\r
+            kilocalorie{\r
+                one{"{0} kilocalorie"}\r
+                other{"{0} kilocalories"}\r
+            }\r
+            kilojoule{\r
+                one{"{0} kilojoule"}\r
+                other{"{0} kilojoules"}\r
+            }\r
+            kilowatt-hour{\r
+                one{"{0} kilowattheure"}\r
+                other{"{0} kilowattheures"}\r
+            }\r
+        }\r
+        frequency{\r
+            gigahertz{\r
+                one{"{0} gigahertz"}\r
+                other{"{0} gigahertz"}\r
+            }\r
+            hertz{\r
+                one{"{0} hertz"}\r
+                other{"{0} hertz"}\r
+            }\r
+            kilohertz{\r
+                one{"{0} kilohertz"}\r
+                other{"{0} kilohertz"}\r
+            }\r
+            megahertz{\r
+                one{"{0} mégahertz"}\r
+                other{"{0} mégahertz"}\r
+            }\r
         }\r
         length{\r
+            astronomical-unit{\r
+                one{"{0} unité astronomique"}\r
+                other{"{0} unités astronomiques"}\r
+            }\r
+            centimeter{\r
+                one{"{0} centimètre"}\r
+                other{"{0} centimètres"}\r
+            }\r
+            foot{\r
+                one{"{0} pied"}\r
+                other{"{0} pieds"}\r
+            }\r
+            inch{\r
+                one{"{0} pouce"}\r
+                other{"{0} pouces"}\r
+            }\r
+            light-year{\r
+                one{"{0} année-lumière"}\r
+                other{"{0} années-lumière"}\r
+            }\r
+            micrometer{\r
+                one{"{0} micromètre"}\r
+                other{"{0} micromètres"}\r
+            }\r
             mile{\r
                 dnam{"mille"}\r
                 one{"{0} mille"}\r
                 other{"{0} milles"}\r
             }\r
+            millimeter{\r
+                one{"{0} millimètre"}\r
+                other{"{0} millimètres"}\r
+            }\r
+            nanometer{\r
+                one{"{0} nanomètre"}\r
+                other{"{0} nanomètres"}\r
+            }\r
+            nautical-mile{\r
+                one{"{0} mille marin"}\r
+                other{"{0} milles marins"}\r
+            }\r
+            parsec{\r
+                one{"{0} parsec"}\r
+                other{"{0} parsecs"}\r
+            }\r
+            picometer{\r
+                one{"{0} picomètre"}\r
+                other{"{0} picomètres"}\r
+            }\r
             yard{\r
                 dnam{"verges"}\r
                 one{"{0} verge"}\r
                 other{"{0} verges"}\r
             }\r
         }\r
+        light{\r
+            lux{\r
+                one{"{0} lux"}\r
+                other{"{0} lux"}\r
+            }\r
+        }\r
         mass{\r
+            carat{\r
+                one{"{0} carat"}\r
+                other{"{0} carats"}\r
+            }\r
             kilogram{\r
+                one{"{0} kilogramme"}\r
+                other{"{0} kilogrammes"}\r
                 per{"{0} par kilogramme"}\r
             }\r
+            metric-ton{\r
+                one{"{0} tonne"}\r
+                other{"{0} tonnes"}\r
+            }\r
             stone{\r
                 other{"{0} stone"}\r
             }\r
+            ton{\r
+                one{"{0} tonne courte"}\r
+                other{"{0} tonnes courtes"}\r
+            }\r
+        }\r
+        power{\r
+            gigawatt{\r
+                one{"{0} gigawatt"}\r
+                other{"{0} gigawatts"}\r
+            }\r
+            horsepower{\r
+                one{"{0} cheval-vapeur"}\r
+                other{"{0} chevaux-vapeur"}\r
+            }\r
+            kilowatt{\r
+                one{"{0} kilowatt"}\r
+                other{"{0} kilowatts"}\r
+            }\r
+            megawatt{\r
+                one{"{0} mégawatt"}\r
+                other{"{0} mégawatts"}\r
+            }\r
+            milliwatt{\r
+                one{"{0} milliwatt"}\r
+                other{"{0} milliwatts"}\r
+            }\r
+            watt{\r
+                one{"{0} watt"}\r
+                other{"{0} watts"}\r
+            }\r
+        }\r
+        pressure{\r
+            atmosphere{\r
+                one{"{0} atmosphère"}\r
+                other{"{0} atmosphères"}\r
+            }\r
+            inch-hg{\r
+                one{"{0} pouce de mercure"}\r
+                other{"{0} pouces de mercure"}\r
+            }\r
+            millibar{\r
+                one{"{0} millibar"}\r
+                other{"{0} millibars"}\r
+            }\r
         }\r
         speed{\r
             kilometer-per-hour{\r
                 dnam{"kilomètres à l’heure"}\r
+                one{"{0} kilomètre par heure"}\r
+                other{"{0} kilomètres par heure"}\r
+            }\r
+            meter-per-second{\r
+                one{"{0} mètre par seconde"}\r
+                other{"{0} mètres par seconde"}\r
             }\r
             mile-per-hour{\r
                 dnam{"milles à l’heure"}\r
@@ -89,6 +362,14 @@ fr_CA{
             }\r
         }\r
         temperature{\r
+            celsius{\r
+                one{"{0} degré Celsius"}\r
+                other{"{0} degrés Celsius"}\r
+            }\r
+            fahrenheit{\r
+                one{"{0} degré Fahrenheit"}\r
+                other{"{0} degrés Fahrenheit"}\r
+            }\r
             generic{\r
                 dnam{"°"}\r
                 one{"{0}°"}\r
@@ -96,6 +377,14 @@ fr_CA{
             }\r
         }\r
         volume{\r
+            cubic-kilometer{\r
+                one{"{0} kilomètre cube"}\r
+                other{"{0} kilomètres cubes"}\r
+            }\r
+            cubic-mile{\r
+                one{"{0} mille cube"}\r
+                other{"{0} milles cubes"}\r
+            }\r
             cubic-yard{\r
                 dnam{"verges cubes"}\r
                 one{"{0} verge cube"}\r
@@ -104,6 +393,10 @@ fr_CA{
             gallon-imperial{\r
                 dnam{"gallon impérial"}\r
             }\r
+            hectoliter{\r
+                one{"{0} hectolitre"}\r
+                other{"{0} hectolitres"}\r
+            }\r
             pint{\r
                 dnam{"chopine"}\r
                 one{"{0} chopine"}\r
@@ -128,6 +421,12 @@ fr_CA{
                 other{"{0}m/s²"}\r
             }\r
         }\r
+        concentr{\r
+            percent{\r
+                one{"{0} %"}\r
+                other{"{0} %"}\r
+            }\r
+        }\r
         consumption{\r
             liter-per-100kilometers{\r
                 dnam{"L/100 km"}\r
@@ -145,9 +444,13 @@ fr_CA{
                 other{"{0}µs"}\r
             }\r
             minute{\r
+                one{"{0}m"}\r
+                other{"{0}m"}\r
                 per{"{0}/m"}\r
             }\r
             month{\r
+                one{"{0}m"}\r
+                other{"{0}m"}\r
                 per{"{0}/m"}\r
             }\r
             nanosecond{\r
@@ -155,6 +458,9 @@ fr_CA{
                 other{"{0}ns"}\r
             }\r
             week{\r
+                dnam{"sem"}\r
+                one{"{0}sem"}\r
+                other{"{0}sem"}\r
                 per{"{0}/sem"}\r
             }\r
         }\r
@@ -268,11 +574,56 @@ fr_CA{
         }\r
     }\r
     unitsShort{\r
+        acceleration{\r
+            g-force{\r
+                dnam{"G"}\r
+                one{"{0} G"}\r
+                other{"{0} G"}\r
+            }\r
+            meter-per-second-squared{\r
+                one{"{0} m/s²"}\r
+                other{"{0} m/s²"}\r
+            }\r
+        }\r
+        angle{\r
+            radian{\r
+                one{"{0} rad"}\r
+                other{"{0} rad"}\r
+            }\r
+        }\r
         area{\r
+            acre{\r
+                one{"{0} ac"}\r
+                other{"{0} ac"}\r
+            }\r
+            hectare{\r
+                one{"{0} ha"}\r
+                other{"{0} ha"}\r
+            }\r
+            square-centimeter{\r
+                one{"{0} cm²"}\r
+                other{"{0} cm²"}\r
+            }\r
             square-foot{\r
                 one{"{0} pi²"}\r
                 other{"{0} pi²"}\r
             }\r
+            square-inch{\r
+                one{"{0} po²"}\r
+                other{"{0} po²"}\r
+            }\r
+            square-kilometer{\r
+                one{"{0} km²"}\r
+                other{"{0} km²"}\r
+            }\r
+            square-meter{\r
+                one{"{0} m²"}\r
+                other{"{0} m²"}\r
+            }\r
+            square-mile{\r
+                one{"{0} mi²"}\r
+                other{"{0} mi²"}\r
+            }\r
             square-yard{\r
                 dnam{"vg²"}\r
                 one{"{0} vg²"}\r
@@ -283,6 +634,14 @@ fr_CA{
             karat{\r
                 dnam{"carats"}\r
             }\r
+            percent{\r
+                one{"{0} %"}\r
+                other{"{0} %"}\r
+            }\r
+            permille{\r
+                one{"{0} ‰"}\r
+                other{"{0} ‰"}\r
+            }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
@@ -295,6 +654,10 @@ fr_CA{
                 one{"{0} L/km"}\r
                 other{"{0} L/km"}\r
             }\r
+            mile-per-gallon{\r
+                one{"{0} mi/gal"}\r
+                other{"{0} mi/gal"}\r
+            }\r
             mile-per-gallon-imperial{\r
                 dnam{"mi/gal Imp"}\r
                 one{"{0} mi/gal Imp"}\r
@@ -302,14 +665,129 @@ fr_CA{
             }\r
         }\r
         digital{\r
+            bit{\r
+                one{"{0} bit"}\r
+                other{"{0} bit"}\r
+            }\r
+            byte{\r
+                one{"{0} octet"}\r
+                other{"{0} octet"}\r
+            }\r
             gigabit{\r
                 dnam{"Gb"}\r
+                one{"{0} Gb"}\r
+                other{"{0} Gb"}\r
+            }\r
+            gigabyte{\r
+                one{"{0} Go"}\r
+                other{"{0} Go"}\r
             }\r
             kilobit{\r
                 dnam{"kb"}\r
+                one{"{0} kb"}\r
+                other{"{0} kb"}\r
+            }\r
+            kilobyte{\r
+                one{"{0} ko"}\r
+                other{"{0} ko"}\r
             }\r
             megabit{\r
                 dnam{"Mb"}\r
+                one{"{0} Mb"}\r
+                other{"{0} Mb"}\r
+            }\r
+            megabyte{\r
+                one{"{0} Mo"}\r
+                other{"{0} Mo"}\r
+            }\r
+            terabit{\r
+                dnam{"Tb"}\r
+                one{"{0} Tb"}\r
+                other{"{0} Tb"}\r
+            }\r
+            terabyte{\r
+                one{"{0} To"}\r
+                other{"{0} To"}\r
+            }\r
+        }\r
+        duration{\r
+            microsecond{\r
+                one{"{0} μs"}\r
+                other{"{0} μs"}\r
+            }\r
+            nanosecond{\r
+                one{"{0} ns"}\r
+                other{"{0} ns"}\r
+            }\r
+            second{\r
+                one{"{0} s"}\r
+                other{"{0} s"}\r
+            }\r
+            year{\r
+                one{"{0} an"}\r
+                other{"{0} ans"}\r
+            }\r
+        }\r
+        electric{\r
+            ampere{\r
+                one{"{0} A"}\r
+                other{"{0} A"}\r
+            }\r
+            milliampere{\r
+                one{"{0} mA"}\r
+                other{"{0} mA"}\r
+            }\r
+            ohm{\r
+                one{"{0} Ω"}\r
+                other{"{0} Ω"}\r
+            }\r
+            volt{\r
+                one{"{0} V"}\r
+                other{"{0} V"}\r
+            }\r
+        }\r
+        energy{\r
+            calorie{\r
+                one{"{0} cal"}\r
+                other{"{0} cal"}\r
+            }\r
+            foodcalorie{\r
+                one{"{0} kcal"}\r
+                other{"{0} kcal"}\r
+            }\r
+            joule{\r
+                one{"{0} J"}\r
+                other{"{0} J"}\r
+            }\r
+            kilocalorie{\r
+                one{"{0} kcal"}\r
+                other{"{0} kcal"}\r
+            }\r
+            kilojoule{\r
+                one{"{0} kJ"}\r
+                other{"{0} kJ"}\r
+            }\r
+            kilowatt-hour{\r
+                one{"{0} kWh"}\r
+                other{"{0} kWh"}\r
+            }\r
+        }\r
+        frequency{\r
+            gigahertz{\r
+                one{"{0} GHz"}\r
+                other{"{0} GHz"}\r
+            }\r
+            hertz{\r
+                one{"{0} Hz"}\r
+                other{"{0} Hz"}\r
+            }\r
+            kilohertz{\r
+                one{"{0} kHz"}\r
+                other{"{0} kHz"}\r
+            }\r
+            megahertz{\r
+                one{"{0} MHz"}\r
+                other{"{0} MHz"}\r
             }\r
         }\r
         length{\r
@@ -317,35 +795,156 @@ fr_CA{
                 one{"{0} ua"}\r
                 other{"{0} ua"}\r
             }\r
+            centimeter{\r
+                one{"{0} cm"}\r
+                other{"{0} cm"}\r
+            }\r
+            decimeter{\r
+                one{"{0} dm"}\r
+                other{"{0} dm"}\r
+            }\r
             foot{\r
                 one{"{0} pi"}\r
                 other{"{0} pi"}\r
             }\r
+            inch{\r
+                one{"{0} po"}\r
+                other{"{0} po"}\r
+            }\r
+            light-year{\r
+                one{"{0} al"}\r
+                other{"{0} al"}\r
+            }\r
+            micrometer{\r
+                one{"{0} µm"}\r
+                other{"{0} µm"}\r
+            }\r
+            mile{\r
+                one{"{0} mi"}\r
+                other{"{0} mi"}\r
+            }\r
+            millimeter{\r
+                one{"{0} mm"}\r
+                other{"{0} mm"}\r
+            }\r
+            nanometer{\r
+                one{"{0} nm"}\r
+                other{"{0} nm"}\r
+            }\r
             nautical-mile{\r
                 dnam{"NM"}\r
                 one{"{0} NM"}\r
                 other{"{0} NM"}\r
             }\r
+            parsec{\r
+                one{"{0} pc"}\r
+                other{"{0} pc"}\r
+            }\r
+            picometer{\r
+                one{"{0} pm"}\r
+                other{"{0} pm"}\r
+            }\r
             yard{\r
                 dnam{"vg"}\r
                 one{"{0} vg"}\r
                 other{"{0} vg"}\r
             }\r
         }\r
+        light{\r
+            lux{\r
+                one{"{0} lx"}\r
+                other{"{0} lx"}\r
+            }\r
+        }\r
         mass{\r
+            gram{\r
+                one{"{0} g"}\r
+                other{"{0} g"}\r
+            }\r
+            milligram{\r
+                one{"{0} mg"}\r
+                other{"{0} mg"}\r
+            }\r
             ton{\r
                 dnam{"tc"}\r
                 one{"{0} tc"}\r
                 other{"{0} tc"}\r
             }\r
         }\r
+        power{\r
+            gigawatt{\r
+                one{"{0} GW"}\r
+                other{"{0} GW"}\r
+            }\r
+            horsepower{\r
+                one{"{0} ch"}\r
+                other{"{0} ch"}\r
+            }\r
+            kilowatt{\r
+                one{"{0} kW"}\r
+                other{"{0} kW"}\r
+            }\r
+            megawatt{\r
+                one{"{0} MW"}\r
+                other{"{0} MW"}\r
+            }\r
+            milliwatt{\r
+                one{"{0} mW"}\r
+                other{"{0} mW"}\r
+            }\r
+            watt{\r
+                one{"{0} W"}\r
+                other{"{0} W"}\r
+            }\r
+        }\r
         pressure{\r
+            inch-hg{\r
+                dnam{"po Hg"}\r
+                one{"{0} po Hg"}\r
+                other{"{0} po Hg"}\r
+            }\r
+            millibar{\r
+                one{"{0} mbar"}\r
+                other{"{0} mbar"}\r
+            }\r
+            millimeter-of-mercury{\r
+                dnam{"mm Hg"}\r
+                one{"{0} mm Hg"}\r
+                other{"{0} mm Hg"}\r
+            }\r
             pound-per-square-inch{\r
                 dnam{"psi"}\r
                 one{"{0} psi"}\r
                 other{"{0} psi"}\r
             }\r
         }\r
+        speed{\r
+            meter-per-second{\r
+                one{"{0} m/s"}\r
+                other{"{0} m/s"}\r
+            }\r
+            mile-per-hour{\r
+                one{"{0} mi/h"}\r
+                other{"{0} mi/h"}\r
+            }\r
+        }\r
+        temperature{\r
+            celsius{\r
+                one{"{0} °C"}\r
+                other{"{0} °C"}\r
+            }\r
+            fahrenheit{\r
+                one{"{0} °F"}\r
+                other{"{0} °F"}\r
+            }\r
+            generic{\r
+                one{"{0}°"}\r
+            }\r
+            kelvin{\r
+                one{"{0} K"}\r
+                other{"{0} K"}\r
+            }\r
+        }\r
         volume{\r
             centiliter{\r
                 dnam{"cL"}\r
@@ -356,6 +955,14 @@ fr_CA{
                 one{"{0} pi³"}\r
                 other{"{0} pi³"}\r
             }\r
+            cubic-inch{\r
+                one{"{0} po³"}\r
+                other{"{0} po³"}\r
+            }\r
+            cubic-kilometer{\r
+                one{"{0} km³"}\r
+                other{"{0} km³"}\r
+            }\r
             cubic-yard{\r
                 dnam{"vg³"}\r
                 one{"{0} vg³"}\r
index 6a0c33f..01deace 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 fy{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.41.34"}\r
     durationUnits{\r
         hm{"h:mm"}\r
         hms{"h:mm:ss"}\r
index 289cea1..18086b0 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 ga{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.91"}\r
     durationUnits{\r
         hm{"h:mm"}\r
         hms{"h:mm:ss"}\r
@@ -183,6 +183,22 @@ ga{
                 other{"{0} sa mhilliún"}\r
                 two{"{0} sa mhilliún"}\r
             }\r
+            percent{\r
+                dnam{"faoin gcéad"}\r
+                few{"{0}%"}\r
+                many{"{0}%"}\r
+                one{"{0} faoin gcéad"}\r
+                other{"{0} faoin gcéad"}\r
+                two{"{0}%"}\r
+            }\r
+            permille{\r
+                dnam{"faoin míle"}\r
+                few{"{0}‰"}\r
+                many{"{0}‰"}\r
+                one{"{0} faoin míle"}\r
+                other{"{0} faoin míle"}\r
+                two{"{0}‰"}\r
+            }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
@@ -219,6 +235,7 @@ ga{
             }\r
         }\r
         coordinate{\r
+            dnam{"treo chairdinéil"}\r
             east{"{0}O"}\r
             north{"{0}T"}\r
             south{"{0}D"}\r
@@ -289,6 +306,14 @@ ga{
                 other{"{0} meigibheart"}\r
                 two{"{0} mheigibheart"}\r
             }\r
+            petabyte{\r
+                dnam{"peitibheart"}\r
+                few{"{0} PB"}\r
+                many{"{0} PB"}\r
+                one{"{0} peitibheart"}\r
+                other{"{0} petabytes"}\r
+                two{"{0} PB"}\r
+            }\r
             terabit{\r
                 dnam{"teirighiotáin"}\r
                 few{"{0} theirighiotán"}\r
@@ -843,6 +868,14 @@ ga{
             }\r
         }\r
         pressure{\r
+            atmosphere{\r
+                dnam{"atmaisféar"}\r
+                few{"{0} atm"}\r
+                many{"{0} atm"}\r
+                one{"{0} atmaisféar"}\r
+                other{"{0} atmaisféar"}\r
+                two{"{0} atm"}\r
+            }\r
             hectopascal{\r
                 dnam{"heicteapascail"}\r
                 few{"{0} heicteapascal"}\r
@@ -1336,6 +1369,14 @@ ga{
                 other{"{0}/milliún"}\r
                 two{"{0}/milliún"}\r
             }\r
+            percent{\r
+                dnam{"%"}\r
+                few{"{0}%"}\r
+                many{"{0}%"}\r
+                one{"{0}%"}\r
+                other{"{0}%"}\r
+                two{"{0}%"}\r
+            }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
@@ -1372,6 +1413,7 @@ ga{
             }\r
         }\r
         coordinate{\r
+            dnam{"treo"}\r
             east{"{0}O"}\r
             north{"{0}T"}\r
             south{"{0}D"}\r
@@ -1702,11 +1744,11 @@ ga{
             }\r
             fathom{\r
                 dnam{"feá"}\r
-                few{"{0} fm"}\r
-                many{"{0} fm"}\r
-                one{"{0} fm"}\r
-                other{"{0} fm"}\r
-                two{"{0} fm"}\r
+                few{"{0} fth"}\r
+                many{"{0} fth"}\r
+                one{"{0} fth"}\r
+                other{"{0} fth"}\r
+                two{"{0} fth"}\r
             }\r
             foot{\r
                 dnam{"tr"}\r
@@ -2489,6 +2531,22 @@ ga{
                 other{"{0}/milliún"}\r
                 two{"{0}/milliún"}\r
             }\r
+            percent{\r
+                dnam{"faoin gcéad"}\r
+                few{"{0}%"}\r
+                many{"{0}%"}\r
+                one{"{0}%"}\r
+                other{"{0}%"}\r
+                two{"{0}%"}\r
+            }\r
+            permille{\r
+                dnam{"faoin míle"}\r
+                few{"{0}‰"}\r
+                many{"{0}‰"}\r
+                one{"{0}‰"}\r
+                other{"{0}‰"}\r
+                two{"{0}‰"}\r
+            }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
@@ -2525,6 +2583,7 @@ ga{
             }\r
         }\r
         coordinate{\r
+            dnam{"treo"}\r
             east{"{0}O"}\r
             north{"{0}T"}\r
             south{"{0}D"}\r
@@ -2595,6 +2654,14 @@ ga{
                 other{"{0} MB"}\r
                 two{"{0} MB"}\r
             }\r
+            petabyte{\r
+                dnam{"PBheart"}\r
+                few{"{0} PB"}\r
+                many{"{0} PB"}\r
+                one{"{0} PB"}\r
+                other{"{0} PB"}\r
+                two{"{0} PB"}\r
+            }\r
             terabit{\r
                 dnam{"Tb"}\r
                 few{"{0} Tb"}\r
@@ -2855,11 +2922,11 @@ ga{
             }\r
             fathom{\r
                 dnam{"feánna"}\r
-                few{"{0} fm"}\r
-                many{"{0} fm"}\r
-                one{"{0} fm"}\r
-                other{"{0} fm"}\r
-                two{"{0} fm"}\r
+                few{"{0} fth"}\r
+                many{"{0} fth"}\r
+                one{"{0} fth"}\r
+                other{"{0} fth"}\r
+                two{"{0} fth"}\r
             }\r
             foot{\r
                 dnam{"troithe"}\r
@@ -3149,6 +3216,14 @@ ga{
             }\r
         }\r
         pressure{\r
+            atmosphere{\r
+                dnam{"atm"}\r
+                few{"{0} atm"}\r
+                many{"{0} atm"}\r
+                one{"{0} atm"}\r
+                other{"{0} atm"}\r
+                two{"{0} atm"}\r
+            }\r
             hectopascal{\r
                 dnam{"hPa"}\r
                 few{"{0} hPa"}\r
index d56e97f..26fbd4e 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 gd{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.91"}\r
     durationUnits{\r
         hm{"h:mm"}\r
         hms{"h:mm:ss"}\r
@@ -163,6 +163,20 @@ gd{
                 other{"{0} pàirt sa mhillean"}\r
                 two{"{0} phàirt sa mhillean"}\r
             }\r
+            percent{\r
+                dnam{"sa cheud"}\r
+                few{"{0} sa cheud"}\r
+                one{"{0} sa cheud"}\r
+                other{"{0} sa cheud"}\r
+                two{"{0} sa cheud"}\r
+            }\r
+            permille{\r
+                dnam{"sa mhìle"}\r
+                few{"{0} sa mhìle"}\r
+                one{"{0} sa mhìle"}\r
+                other{"{0} sa mhìle"}\r
+                two{"{0} sa mhìle"}\r
+            }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
@@ -195,6 +209,7 @@ gd{
             }\r
         }\r
         coordinate{\r
+            dnam{"comhair combaist"}\r
             east{"{0}E"}\r
             north{"{0}T"}\r
             south{"{0}D"}\r
@@ -257,6 +272,13 @@ gd{
                 other{"{0} meaga-baidht"}\r
                 two{"{0} mheaga-baidht"}\r
             }\r
+            petabyte{\r
+                dnam{"peta-baidht"}\r
+                few{"{0} peta-baidht"}\r
+                one{"{0} pheta-baidht"}\r
+                other{"{0} peta-baidht"}\r
+                two{"{0} pheta-baidht"}\r
+            }\r
             terabit{\r
                 dnam{"tera-biod"}\r
                 few{"{0} tera-biodan"}\r
@@ -746,6 +768,13 @@ gd{
             }\r
         }\r
         pressure{\r
+            atmosphere{\r
+                dnam{"brùthadh-àile"}\r
+                few{"{0} brùthadh-àile"}\r
+                one{"{0} bhrùthadh-àile"}\r
+                other{"{0} brùthadh-àile"}\r
+                two{"{0} bhrùthadh-àile"}\r
+            }\r
             hectopascal{\r
                 dnam{"heacta pascal"}\r
                 few{"{0} heacta pascal"}\r
@@ -1181,6 +1210,20 @@ gd{
                 other{"{0}ppm"}\r
                 two{"{0}ppm"}\r
             }\r
+            percent{\r
+                dnam{"%"}\r
+                few{"{0}%"}\r
+                one{"{0}%"}\r
+                other{"{0}%"}\r
+                two{"{0}%"}\r
+            }\r
+            permille{\r
+                dnam{"‰"}\r
+                few{"{0}‰"}\r
+                one{"{0}‰"}\r
+                other{"{0}‰"}\r
+                two{"{0}‰"}\r
+            }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
@@ -1213,6 +1256,7 @@ gd{
             }\r
         }\r
         coordinate{\r
+            dnam{"comhair"}\r
             east{"{0}E"}\r
             north{"{0}T"}\r
             south{"{0}D"}\r
@@ -1275,6 +1319,13 @@ gd{
                 other{"{0}MB"}\r
                 two{"{0}MB"}\r
             }\r
+            petabyte{\r
+                dnam{"PB"}\r
+                few{"{0}PB"}\r
+                one{"{0}PB"}\r
+                other{"{0}PB"}\r
+                two{"{0}PB"}\r
+            }\r
             terabit{\r
                 dnam{"Tb"}\r
                 few{"{0}Tb"}\r
@@ -1505,10 +1556,10 @@ gd{
             }\r
             fathom{\r
                 dnam{"aitheamh"}\r
-                few{"{0}fm"}\r
-                one{"{0}fm"}\r
-                other{"{0}fm"}\r
-                two{"{0}fm"}\r
+                few{"{0}fth"}\r
+                one{"{0}fth"}\r
+                other{"{0}fth"}\r
+                two{"{0}fth"}\r
             }\r
             foot{\r
                 dnam{"troigh"}\r
@@ -1764,6 +1815,13 @@ gd{
             }\r
         }\r
         pressure{\r
+            atmosphere{\r
+                dnam{"atm"}\r
+                few{"{0}atm"}\r
+                one{"{0}atm"}\r
+                other{"{0}atm"}\r
+                two{"{0}atm"}\r
+            }\r
             hectopascal{\r
                 dnam{"hPa"}\r
                 few{"{0}hPa"}\r
@@ -2199,6 +2257,20 @@ gd{
                 other{"{0} ppm"}\r
                 two{"{0} ppm"}\r
             }\r
+            percent{\r
+                dnam{"sa cheud"}\r
+                few{"{0}%"}\r
+                one{"{0}%"}\r
+                other{"{0}%"}\r
+                two{"{0}%"}\r
+            }\r
+            permille{\r
+                dnam{"sa mhìle"}\r
+                few{"{0}‰"}\r
+                one{"{0}‰"}\r
+                other{"{0}‰"}\r
+                two{"{0}‰"}\r
+            }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
@@ -2231,6 +2303,7 @@ gd{
             }\r
         }\r
         coordinate{\r
+            dnam{"comhair"}\r
             east{"{0}E"}\r
             north{"{0}T"}\r
             south{"{0}D"}\r
@@ -2293,6 +2366,13 @@ gd{
                 other{"{0} MB"}\r
                 two{"{0} MB"}\r
             }\r
+            petabyte{\r
+                dnam{"PB"}\r
+                few{"{0} PB"}\r
+                one{"{0} PB"}\r
+                other{"{0} PB"}\r
+                two{"{0} PB"}\r
+            }\r
             terabit{\r
                 dnam{"Tb"}\r
                 few{"{0} Tb"}\r
@@ -2782,6 +2862,13 @@ gd{
             }\r
         }\r
         pressure{\r
+            atmosphere{\r
+                dnam{"àile"}\r
+                few{"{0} àile"}\r
+                one{"{0} àile"}\r
+                other{"{0} àile"}\r
+                two{"{0} àile"}\r
+            }\r
             hectopascal{\r
                 dnam{"hPa"}\r
                 few{"{0} hPa"}\r
index 4d37769..ec3bf8b 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 gl{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.94"}\r
     durationUnits{\r
         hm{"h:mm"}\r
         hms{"h:mm:ss"}\r
@@ -123,6 +123,16 @@ gl{
                 one{"{0} parte por millón"}\r
                 other{"{0} partes por millón"}\r
             }\r
+            percent{\r
+                dnam{"tanto por cento"}\r
+                one{"{0} %"}\r
+                other{"{0} %"}\r
+            }\r
+            permille{\r
+                dnam{"tanto por mil"}\r
+                one{"{0} ‰"}\r
+                other{"{0} ‰"}\r
+            }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
@@ -147,6 +157,7 @@ gl{
             }\r
         }\r
         coordinate{\r
+            dnam{"punto cardinal"}\r
             east{"{0} L"}\r
             north{"{0} N"}\r
             south{"{0} S"}\r
@@ -193,6 +204,11 @@ gl{
                 one{"{0} megabyte"}\r
                 other{"{0} megabytes"}\r
             }\r
+            petabyte{\r
+                dnam{"petabytes"}\r
+                one{"{0} petabyte"}\r
+                other{"{0} petabytes"}\r
+            }\r
             terabit{\r
                 dnam{"terabits"}\r
                 one{"{0} terabit"}\r
@@ -537,6 +553,11 @@ gl{
             }\r
         }\r
         pressure{\r
+            atmosphere{\r
+                dnam{"atmosferas"}\r
+                one{"{0} atmosfera"}\r
+                other{"{0} atmosferas"}\r
+            }\r
             hectopascal{\r
                 dnam{"hectopascais"}\r
                 one{"{0} hectopascal"}\r
@@ -745,6 +766,13 @@ gl{
         compound{\r
             per{"{0}/{1}"}\r
         }\r
+        concentr{\r
+            percent{\r
+                dnam{"%"}\r
+                one{"{0} %"}\r
+                other{"{0} %"}\r
+            }\r
+        }\r
         consumption{\r
             liter-per-100kilometers{\r
                 dnam{"l/100 km"}\r
@@ -753,6 +781,7 @@ gl{
             }\r
         }\r
         coordinate{\r
+            dnam{"dirección"}\r
             east{"{0} L"}\r
             north{"{0} N"}\r
             south{"{0} S"}\r
@@ -976,6 +1005,16 @@ gl{
                 one{"{0} ppm"}\r
                 other{"{0} ppm"}\r
             }\r
+            percent{\r
+                dnam{"%"}\r
+                one{"{0} %"}\r
+                other{"{0} %"}\r
+            }\r
+            permille{\r
+                dnam{"‰"}\r
+                one{"{0} ‰"}\r
+                other{"{0} ‰"}\r
+            }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
@@ -1000,6 +1039,7 @@ gl{
             }\r
         }\r
         coordinate{\r
+            dnam{"dirección"}\r
             east{"{0} L"}\r
             north{"{0} N"}\r
             south{"{0} S"}\r
@@ -1046,6 +1086,11 @@ gl{
                 one{"{0} MB"}\r
                 other{"{0} MB"}\r
             }\r
+            petabyte{\r
+                dnam{"PB"}\r
+                one{"{0} PB"}\r
+                other{"{0} PB"}\r
+            }\r
             terabit{\r
                 dnam{"Tb"}\r
                 one{"{0} Tb"}\r
@@ -1390,6 +1435,11 @@ gl{
             }\r
         }\r
         pressure{\r
+            atmosphere{\r
+                dnam{"atm"}\r
+                one{"{0} atm"}\r
+                other{"{0} atm"}\r
+            }\r
             hectopascal{\r
                 dnam{"hPa"}\r
                 one{"{0} hPa"}\r
index fbd0de3..2431520 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 gsw{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.41.34"}\r
     durationUnits{\r
         hm{"h:mm"}\r
         hms{"h:mm:ss"}\r
index aa0bb00..f9b2cec 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 gu{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.2"}\r
     durationUnits{\r
         hm{"h:mm"}\r
         hms{"h:mm:ss"}\r
@@ -123,6 +123,16 @@ gu{
                 one{"{0} કણ પ્રતિ મિલિયન"}\r
                 other{"{0} કણ પ્રતિ મિલિયન"}\r
             }\r
+            percent{\r
+                dnam{"ટકા"}\r
+                one{"{0} ટકા"}\r
+                other{"{0} ટકા"}\r
+            }\r
+            permille{\r
+                dnam{"પ્રતિમાઈલ"}\r
+                one{"{0} પ્રતિમાઈલ"}\r
+                other{"{0} પ્રતિમાઈલ"}\r
+            }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
@@ -147,6 +157,7 @@ gu{
             }\r
         }\r
         coordinate{\r
+            dnam{"મુખ્ય દિશા"}\r
             east{"{0}પૂર્વ"}\r
             north{"{0}ઉત્તર"}\r
             south{"{0}દક્ષિણ"}\r
@@ -193,6 +204,11 @@ gu{
                 one{"{0} મેગાબાઇટ"}\r
                 other{"{0} મેગાબાઇટ"}\r
             }\r
+            petabyte{\r
+                dnam{"પેટાબાઈટ્સ"}\r
+                one{"{0} પેટાબાઈટ"}\r
+                other{"{0} પેટાબાઈટ્સ"}\r
+            }\r
             terabit{\r
                 dnam{"ટેરાબિટ"}\r
                 one{"{0} ટેરાબિટ"}\r
@@ -542,6 +558,11 @@ gu{
             }\r
         }\r
         pressure{\r
+            atmosphere{\r
+                dnam{"વાતાવરણ"}\r
+                one{"{0} વાતાવરણ"}\r
+                other{"{0} વાતાવરણ"}\r
+            }\r
             hectopascal{\r
                 dnam{"હેક્ટૉપાસ્કલ"}\r
                 one{"{0} હેક્ટૉપાસ્કલ"}\r
@@ -791,6 +812,13 @@ gu{
         compound{\r
             per{"{0}/{1}"}\r
         }\r
+        concentr{\r
+            percent{\r
+                dnam{"%"}\r
+                one{"{0}%"}\r
+                other{"{0}%"}\r
+            }\r
+        }\r
         consumption{\r
             liter-per-100kilometers{\r
                 dnam{"લિ/100 કિમી"}\r
@@ -799,6 +827,7 @@ gu{
             }\r
         }\r
         coordinate{\r
+            dnam{"દિશા"}\r
             east{"{0}પૂ"}\r
             north{"{0}ઉ"}\r
             south{"{0}દ"}\r
@@ -1049,8 +1078,8 @@ gu{
             }\r
             radian{\r
                 dnam{"સમત્રિજ્યાકોણ"}\r
-                one{"{0} rad"}\r
-                other{"{0} rad"}\r
+                one{"{0} સમત્રિજ્યાકોણ"}\r
+                other{"{0} સમત્રિજ્યાકોણ"}\r
             }\r
             revolution{\r
                 dnam{"ક્રાંતિ"}\r
@@ -1131,8 +1160,18 @@ gu{
             }\r
             part-per-million{\r
                 dnam{"કણ/મિલિયન"}\r
-                one{"{0} ppm"}\r
-                other{"{0} ppm"}\r
+                one{"{0} પીપીએમ"}\r
+                other{"{0} પીપીએમ"}\r
+            }\r
+            percent{\r
+                dnam{"ટકા"}\r
+                one{"{0}%"}\r
+                other{"{0}%"}\r
+            }\r
+            permille{\r
+                dnam{"પ્રતિમાઈલ"}\r
+                one{"{0}‰"}\r
+                other{"{0}‰"}\r
             }\r
         }\r
         consumption{\r
@@ -1158,6 +1197,7 @@ gu{
             }\r
         }\r
         coordinate{\r
+            dnam{"દિશા"}\r
             east{"{0}પૂ"}\r
             north{"{0}ઉ"}\r
             south{"{0}દ"}\r
@@ -1204,6 +1244,11 @@ gu{
                 one{"{0} MB"}\r
                 other{"{0} MB"}\r
             }\r
+            petabyte{\r
+                dnam{"પીબાઈટ"}\r
+                one{"{0} પીબી"}\r
+                other{"{0} પીબી"}\r
+            }\r
             terabit{\r
                 dnam{"Tb"}\r
                 one{"{0} Tb"}\r
@@ -1553,6 +1598,11 @@ gu{
             }\r
         }\r
         pressure{\r
+            atmosphere{\r
+                dnam{"atm"}\r
+                one{"{0} atm"}\r
+                other{"{0} atm"}\r
+            }\r
             hectopascal{\r
                 dnam{"hPa"}\r
                 one{"{0} hPa"}\r
index d7a0572..dd7d622 100644 (file)
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 ha{\r
-    Version{"2.1.39.11"}\r
+    Version{"2.1.43.2"}\r
 }\r
index 7384ce8..c34237f 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 haw{\r
-    Version{"2.1.38.69"}\r
+    Version{"2.1.43.94"}\r
     units{\r
         duration{\r
             day{\r
index 6476a4e..e0869bd 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 he{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.94"}\r
     durationUnits{\r
         hm{"h:mm"}\r
         hms{"h:mm:ss"}\r
@@ -163,6 +163,20 @@ he{
                 other{"{0} חלקים למיליון"}\r
                 two{"{0} חלקים למיליון"}\r
             }\r
+            percent{\r
+                dnam{"אחוז"}\r
+                many{"{0} אחוז"}\r
+                one{"{0} אחוז"}\r
+                other{"{0} אחוז"}\r
+                two{"{0} אחוז"}\r
+            }\r
+            permille{\r
+                dnam{"פרומיל"}\r
+                many{"{0} פרומיל"}\r
+                one{"{0} פרומיל"}\r
+                other{"{0} פרומיל"}\r
+                two{"{0} פרומיל"}\r
+            }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
@@ -195,6 +209,7 @@ he{
             }\r
         }\r
         coordinate{\r
+            dnam{"רוחות השמיים"}\r
             east{"{0} מזרח"}\r
             north{"{0} צפון"}\r
             south{"{0} דרום"}\r
@@ -203,20 +218,20 @@ he{
         digital{\r
             bit{\r
                 dnam{"ביט"}\r
-                many{"{0} סיביות"}\r
+                many{"ביט {0}"}\r
                 one{"ביט {0}"}\r
-                other{"{0} סיביות"}\r
-                two{"{0} סיביות"}\r
+                other{"ביט {0}"}\r
+                two{"ביט {0}"}\r
             }\r
             byte{\r
                 dnam{"בייט"}\r
                 many{"{0} בייט"}\r
-                one{"בית {0}"}\r
+                one{"{0} בייט"}\r
                 other{"{0} בייט"}\r
                 two{"{0} בייט"}\r
             }\r
             gigabit{\r
-                dnam{"×\92×\99×\92×\94ס×\99×\91×\99×\95ת"}\r
+                dnam{"×\92×\99×\92×\94×\91×\99×\98"}\r
                 many{"{0} גיגהביט"}\r
                 one{"{0} גיגהביט"}\r
                 other{"{0} גיגהביט"}\r
@@ -231,10 +246,10 @@ he{
             }\r
             kilobit{\r
                 dnam{"קילוביט"}\r
-                many{"{0} ×§×\99×\9c×\95ס×\99×\91×\99×\95ת"}\r
-                one{"{0} ×§×\99×\9c×\95ס×\99×\91×\99ת"}\r
-                other{"{0} ×§×\99×\9c×\95ס×\99×\91×\99×\95ת"}\r
-                two{"{0} ×§×\99×\9c×\95ס×\99×\91×\99×\95ת"}\r
+                many{"{0} ×§×\99×\9c×\95×\91×\99×\98"}\r
+                one{"{0} ×§×\99×\9c×\95×\91×\99×\98"}\r
+                other{"{0} ×§×\99×\9c×\95×\91×\99×\98"}\r
+                two{"{0} ×§×\99×\9c×\95×\91×\99×\98"}\r
             }\r
             kilobyte{\r
                 dnam{"קילו-בייט"}\r
@@ -244,11 +259,11 @@ he{
                 two{"{0} קילו-בייט"}\r
             }\r
             megabit{\r
-                dnam{"מגהביט"}\r
-                many{"{0} מגה-סיביות"}\r
+                dnam{"מגה-ביט"}\r
+                many{"מגה-ביט {0}"}\r
                 one{"מגה-ביט {0}"}\r
-                other{"{0} מגה-סיביות"}\r
-                two{"{0} מגה-סיביות"}\r
+                other{"מגה-ביט {0}"}\r
+                two{"מגה-ביט {0}"}\r
             }\r
             megabyte{\r
                 dnam{"מגה-בייט"}\r
@@ -257,19 +272,26 @@ he{
                 other{"{0} מגה-בייט"}\r
                 two{"{0} מגה-בייט"}\r
             }\r
+            petabyte{\r
+                dnam{"פטה-בייט"}\r
+                many{"{0} פטה-בייט"}\r
+                one{"{0} פטה-בייט"}\r
+                other{"{0} פטה-בייט"}\r
+                two{"{0} פטה-בייט"}\r
+            }\r
             terabit{\r
                 dnam{"טרה-ביט"}\r
-                many{"{0} טרה-סיביות"}\r
+                many{"טרה-ביט {0}"}\r
                 one{"טרה-ביט {0}"}\r
-                other{"{0} טרה-סיביות"}\r
-                two{"{0} טרה-סיביות"}\r
+                other{"טרה-ביט {0}"}\r
+                two{"טרה-ביט {0}"}\r
             }\r
             terabyte{\r
                 dnam{"טרה-בייט"}\r
-                many{"{0} טרה-בתים"}\r
+                many{"טרה-בייט {0}"}\r
                 one{"טרה-בייט {0}"}\r
-                other{"{0} טרה-בתים"}\r
-                two{"{0} טרה-בתים"}\r
+                other{"טרה-בייט {0}"}\r
+                two{"טרה-בייט {0}"}\r
             }\r
         }\r
         duration{\r
@@ -732,6 +754,13 @@ he{
             }\r
         }\r
         pressure{\r
+            atmosphere{\r
+                dnam{"אטמוספרות"}\r
+                many{"{0} אטמוספרה"}\r
+                one{"{0} אטמוספרה"}\r
+                other{"{0} אטמוספרות"}\r
+                two{"{0} אטמוספרה"}\r
+            }\r
             hectopascal{\r
                 dnam{"הקטופסקל"}\r
                 many{"{0} הקטופסקל"}\r
@@ -1082,6 +1111,15 @@ he{
         compound{\r
             per{"{0}/{1}"}\r
         }\r
+        concentr{\r
+            percent{\r
+                dnam{"%"}\r
+                many{"{0}%"}\r
+                one{"{0}%"}\r
+                other{"{0}%"}\r
+                two{"{0}%"}\r
+            }\r
+        }\r
         consumption{\r
             liter-per-100kilometers{\r
                 dnam{"ל׳/100ק״מ"}\r
@@ -1099,6 +1137,7 @@ he{
             }\r
         }\r
         coordinate{\r
+            dnam{"כיוון"}\r
             east{"{0} מז׳"}\r
             north{"{0} צפ׳"}\r
             south{"{0} דר׳"}\r
@@ -1206,11 +1245,11 @@ he{
             }\r
             year{\r
                 dnam{"ש׳"}\r
-                many{"{0} שנים"}\r
-                one{"שנה {0}"}\r
-                other{"{0} שנים"}\r
+                many{"{0} ש"}\r
+                one{"ש {0}"}\r
+                other{"{0} ש"}\r
                 per{"{0}/שנה"}\r
-                two{"{0} שנים"}\r
+                two{"{0} ש"}\r
             }\r
         }\r
         length{\r
@@ -1724,6 +1763,20 @@ he{
                 other{"{0} ppm"}\r
                 two{"{0} ppm"}\r
             }\r
+            percent{\r
+                dnam{"%"}\r
+                many{"{0}%"}\r
+                one{"{0}%"}\r
+                other{"{0}%"}\r
+                two{"{0}%"}\r
+            }\r
+            permille{\r
+                dnam{"‰"}\r
+                many{"{0}‰"}\r
+                one{"{0}‰"}\r
+                other{"{0}‰"}\r
+                two{"{0}‰"}\r
+            }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
@@ -1756,6 +1809,7 @@ he{
             }\r
         }\r
         coordinate{\r
+            dnam{"כיוון"}\r
             east{"{0} מז׳"}\r
             north{"{0} צפ׳"}\r
             south{"{0} דר׳"}\r
@@ -1764,10 +1818,10 @@ he{
         digital{\r
             bit{\r
                 dnam{"ביט"}\r
-                many{"{0} סיביות"}\r
+                many{"ביט {0}"}\r
                 one{"ביט {0}"}\r
-                other{"{0} סיביות"}\r
-                two{"{0} סיביות"}\r
+                other{"ביט {0}"}\r
+                two{"ביט {0}"}\r
             }\r
             byte{\r
                 dnam{"בייט"}\r
@@ -1818,6 +1872,13 @@ he{
                 other{"{0} MB"}\r
                 two{"{0} MB"}\r
             }\r
+            petabyte{\r
+                dnam{"PB"}\r
+                many{"{0} PB"}\r
+                one{"{0} PB"}\r
+                other{"{0} PB"}\r
+                two{"{0} PB"}\r
+            }\r
             terabit{\r
                 dnam{"Tb"}\r
                 many{"{0} Tb"}\r
@@ -2136,10 +2197,10 @@ he{
             }\r
             picometer{\r
                 dnam{"פ״מ"}\r
-                many{"{0} פיקומטר"}\r
+                many{"פ“מ {0}"}\r
                 one{"פ“מ {0}"}\r
-                other{"{0} פיקומטר"}\r
-                two{"{0} פיקומטר"}\r
+                other{"פ“מ {0}"}\r
+                two{"פ“מ {0}"}\r
             }\r
             point{\r
                 dnam{"נקודות"}\r
@@ -2293,6 +2354,13 @@ he{
             }\r
         }\r
         pressure{\r
+            atmosphere{\r
+                dnam{"atm"}\r
+                many{"{0} atm"}\r
+                one{"{0} atm"}\r
+                other{"{0} atm"}\r
+                two{"{0} atm"}\r
+            }\r
             hectopascal{\r
                 dnam{"hPa"}\r
                 many{"{0} hPa"}\r
index f19c8d8..25ac5a8 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 hi{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.50"}\r
     durationUnits{\r
         hm{"h:mm"}\r
         hms{"h:mm:ss"}\r
@@ -15,7 +15,7 @@ hi{
                 other{"{0} गु–बल"}\r
             }\r
             meter-per-second-squared{\r
-                dnam{"मीटर प्रति सेकंड वर्ग"}\r
+                dnam{"मीटर/से²"}\r
                 one{"{0} मीटर प्रति सेकंड वर्ग"}\r
                 other{"{0} मीटर प्रति सेकंड वर्ग"}\r
             }\r
@@ -123,6 +123,16 @@ hi{
                 one{"{0} ppm"}\r
                 other{"{0} हिस्सा प्रति दस लाख"}\r
             }\r
+            percent{\r
+                dnam{"प्रतिशत"}\r
+                one{"{0} प्रतिशत"}\r
+                other{"{0} प्रतिशत"}\r
+            }\r
+            permille{\r
+                dnam{"प्रति हज़ार"}\r
+                one{"{0} प्रति हज़ार"}\r
+                other{"{0} प्रति हज़ार"}\r
+            }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
@@ -147,6 +157,7 @@ hi{
             }\r
         }\r
         coordinate{\r
+            dnam{"प्रधान दिशा"}\r
             east{"{0}E"}\r
             north{"{0}N"}\r
             south{"{0}S"}\r
@@ -193,6 +204,11 @@ hi{
                 one{"{0} मेगाबाइट"}\r
                 other{"{0} मेगाबाइट"}\r
             }\r
+            petabyte{\r
+                dnam{"पेटाबाइट"}\r
+                one{"{0} पेटाबाइट"}\r
+                other{"{0} पेटाबाइट"}\r
+            }\r
             terabit{\r
                 dnam{"टेराबिट"}\r
                 one{"{0} टेराबिट"}\r
@@ -537,6 +553,11 @@ hi{
             }\r
         }\r
         pressure{\r
+            atmosphere{\r
+                dnam{"वायुमण्डलीय दबाव"}\r
+                one{"{0} वायुमंडलीय दबाव"}\r
+                other{"{0} वायुमंडलीय दबाव"}\r
+            }\r
             hectopascal{\r
                 dnam{"हैक्टोपास्कल"}\r
                 one{"{0} हैक्टोपास्कल"}\r
@@ -786,6 +807,13 @@ hi{
         compound{\r
             per{"{0}/{1}"}\r
         }\r
+        concentr{\r
+            percent{\r
+                dnam{"%"}\r
+                one{"{0}%"}\r
+                other{"{0}%"}\r
+            }\r
+        }\r
         consumption{\r
             liter-per-100kilometers{\r
                 dnam{"ली॰/100 कि॰मी॰"}\r
@@ -794,6 +822,7 @@ hi{
             }\r
         }\r
         coordinate{\r
+            dnam{"दिशा"}\r
             east{"{0}E"}\r
             north{"{0}N"}\r
             south{"{0}S"}\r
@@ -981,8 +1010,8 @@ hi{
         acceleration{\r
             g-force{\r
                 dnam{"गु–बल"}\r
-                one{"{0} गु॰"}\r
-                other{"{0} गु॰"}\r
+                one{"{0} G"}\r
+                other{"{0} G"}\r
             }\r
             meter-per-second-squared{\r
                 dnam{"मीटर/से²"}\r
@@ -1093,6 +1122,16 @@ hi{
                 one{"{0} ppm"}\r
                 other{"{0} ppm"}\r
             }\r
+            percent{\r
+                dnam{"प्रतिशत"}\r
+                one{"{0}%"}\r
+                other{"{0}%"}\r
+            }\r
+            permille{\r
+                dnam{"प्रति हज़ार"}\r
+                one{"{0}‰"}\r
+                other{"{0}‰"}\r
+            }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
@@ -1117,6 +1156,7 @@ hi{
             }\r
         }\r
         coordinate{\r
+            dnam{"दिशा"}\r
             east{"{0}E"}\r
             north{"{0}N"}\r
             south{"{0}S"}\r
@@ -1163,6 +1203,11 @@ hi{
                 one{"{0} MB"}\r
                 other{"{0} MB"}\r
             }\r
+            petabyte{\r
+                dnam{"पेटाबाइट"}\r
+                one{"{0} PB"}\r
+                other{"{0} PB"}\r
+            }\r
             terabit{\r
                 dnam{"Tb"}\r
                 one{"{0} Tb"}\r
@@ -1453,8 +1498,8 @@ hi{
             }\r
             ounce{\r
                 dnam{"औंस"}\r
-                one{"{0} à¤\94à¤\82॰"}\r
-                other{"{0} à¤\94à¤\82॰"}\r
+                one{"{0} à¤\94à¤\82स"}\r
+                other{"{0} à¤\94à¤\82स"}\r
                 per{"{0}/औंस"}\r
             }\r
             ounce-troy{\r
@@ -1507,6 +1552,11 @@ hi{
             }\r
         }\r
         pressure{\r
+            atmosphere{\r
+                dnam{"atm"}\r
+                one{"{0} atm"}\r
+                other{"{0} atm"}\r
+            }\r
             hectopascal{\r
                 dnam{"hPa"}\r
                 one{"{0} hPa"}\r
@@ -1536,8 +1586,8 @@ hi{
         speed{\r
             kilometer-per-hour{\r
                 dnam{"कि॰मी॰/घं॰"}\r
-                one{"{0} कि॰मी॰ प्रति घं॰"}\r
-                other{"{0} कि॰मी॰ प्रति घं॰"}\r
+                one{"{0} कि॰मी॰/घं॰"}\r
+                other{"{0} कि॰मी॰/घं॰"}\r
             }\r
             knot{\r
                 dnam{"नॉट"}\r
@@ -1545,7 +1595,7 @@ hi{
                 other{"{0} नॉट"}\r
             }\r
             meter-per-second{\r
-                dnam{"मà¥\80॰/सà¥\87॰"}\r
+                dnam{"मà¥\80à¤\9fर/सà¥\87॰"}\r
                 one{"{0} मी॰/से॰"}\r
                 other{"{0} मी॰/से॰"}\r
             }\r
@@ -1563,8 +1613,8 @@ hi{
             }\r
             fahrenheit{\r
                 dnam{"डिग्री फ़ेरनहाइट"}\r
-                one{"{0}°फà¥\87रन॰"}\r
-                other{"{0}°फà¥\87रन॰"}\r
+                one{"{0}°फ़à¥\87रन"}\r
+                other{"{0}°फ़à¥\87रन"}\r
             }\r
             generic{\r
                 dnam{"°"}\r
index bebcd51..68d6b0f 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 hr{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.50"}\r
     durationUnits{\r
         hm{"h:mm"}\r
         hms{"h:mm:ss"}\r
@@ -143,6 +143,18 @@ hr{
                 one{"{0} dio na milijun"}\r
                 other{"{0} dijelova na milijun"}\r
             }\r
+            percent{\r
+                dnam{"postotak"}\r
+                few{"{0} posto"}\r
+                one{"{0} posto"}\r
+                other{"{0} posto"}\r
+            }\r
+            permille{\r
+                dnam{"promil"}\r
+                few{"{0} promila"}\r
+                one{"{0} promil"}\r
+                other{"{0} promila"}\r
+            }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
@@ -171,6 +183,7 @@ hr{
             }\r
         }\r
         coordinate{\r
+            dnam{"kardinalni smjer"}\r
             east{"{0}I"}\r
             north{"{0}S"}\r
             south{"{0}J"}\r
@@ -225,6 +238,12 @@ hr{
                 one{"{0} megabajt"}\r
                 other{"{0} megabajta"}\r
             }\r
+            petabyte{\r
+                dnam{"petabajti"}\r
+                few{"{0} petabajta"}\r
+                one{"{0} petabajt"}\r
+                other{"{0} petabajta"}\r
+            }\r
             terabit{\r
                 dnam{"terabiti"}\r
                 few{"{0} terabita"}\r
@@ -649,6 +668,12 @@ hr{
             }\r
         }\r
         pressure{\r
+            atmosphere{\r
+                dnam{"atmosfere"}\r
+                few{"{0} atmosfere"}\r
+                one{"{0} atmosfera"}\r
+                other{"{0} atmosfera"}\r
+            }\r
             hectopascal{\r
                 dnam{"hektopaskali"}\r
                 few{"{0} hektopaskala"}\r
@@ -981,6 +1006,18 @@ hr{
                 one{"{0} kt"}\r
                 other{"{0} kt"}\r
             }\r
+            millimole-per-liter{\r
+                dnam{"mmol/l"}\r
+                few{"{0} mmol/l"}\r
+                one{"{0} mmol/l"}\r
+                other{"{0} mmol/l"}\r
+            }\r
+            percent{\r
+                dnam{"%"}\r
+                few{"{0} %"}\r
+                one{"{0} %"}\r
+                other{"{0} %"}\r
+            }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
@@ -1001,6 +1038,7 @@ hr{
             }\r
         }\r
         coordinate{\r
+            dnam{"smjer"}\r
             east{"{0}I"}\r
             north{"{0}S"}\r
             south{"{0}J"}\r
@@ -1706,6 +1744,18 @@ hr{
                 one{"{0} ppm"}\r
                 other{"{0} ppm"}\r
             }\r
+            percent{\r
+                dnam{"%"}\r
+                few{"{0} %"}\r
+                one{"{0} %"}\r
+                other{"{0} %"}\r
+            }\r
+            permille{\r
+                dnam{"‰"}\r
+                few{"{0} ‰"}\r
+                one{"{0} ‰"}\r
+                other{"{0} ‰"}\r
+            }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
@@ -1734,6 +1784,7 @@ hr{
             }\r
         }\r
         coordinate{\r
+            dnam{"smjer"}\r
             east{"{0}I"}\r
             north{"{0}S"}\r
             south{"{0}J"}\r
@@ -1788,6 +1839,12 @@ hr{
                 one{"{0} MB"}\r
                 other{"{0} MB"}\r
             }\r
+            petabyte{\r
+                dnam{"PB"}\r
+                few{"{0} PB"}\r
+                one{"{0} PB"}\r
+                other{"{0} PB"}\r
+            }\r
             terabit{\r
                 dnam{"Tb"}\r
                 few{"{0} Tb"}\r
@@ -2212,6 +2269,12 @@ hr{
             }\r
         }\r
         pressure{\r
+            atmosphere{\r
+                dnam{"atm"}\r
+                few{"{0} atm"}\r
+                one{"{0} atm"}\r
+                other{"{0} atm"}\r
+            }\r
             hectopascal{\r
                 dnam{"hPa"}\r
                 few{"{0} hPa"}\r
index c055211..a512660 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 hsb{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.41.34"}\r
     durationUnits{\r
         hm{"h:mm"}\r
         hms{"h:mm:ss"}\r
index 43f98ab..e76213c 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 hu{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.65"}\r
     durationUnits{\r
         hm{"h:mm"}\r
         hms{"h:mm:ss"}\r
@@ -123,6 +123,16 @@ hu{
                 one{"{0} részecske/millió"}\r
                 other{"{0} részecske/millió"}\r
             }\r
+            percent{\r
+                dnam{"százalék"}\r
+                one{"{0} százalék"}\r
+                other{"{0} százalék"}\r
+            }\r
+            permille{\r
+                dnam{"ezrelék"}\r
+                one{"{0} ezrelék"}\r
+                other{"{0} ezrelék"}\r
+            }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
@@ -147,6 +157,7 @@ hu{
             }\r
         }\r
         coordinate{\r
+            dnam{"kardinális irány"}\r
             east{"{0} K"}\r
             north{"{0} É"}\r
             south{"{0} D"}\r
@@ -193,6 +204,11 @@ hu{
                 one{"{0} megabájt"}\r
                 other{"{0} megabájt"}\r
             }\r
+            petabyte{\r
+                dnam{"petabájt"}\r
+                one{"{0} petabájt"}\r
+                other{"{0} petabájt"}\r
+            }\r
             terabit{\r
                 dnam{"terabit"}\r
                 one{"{0} terabit"}\r
@@ -537,6 +553,11 @@ hu{
             }\r
         }\r
         pressure{\r
+            atmosphere{\r
+                dnam{"atmoszféra"}\r
+                one{"{0} atmoszféra"}\r
+                other{"{0} atmoszféra"}\r
+            }\r
             hectopascal{\r
                 dnam{"hektopascal"}\r
                 one{"{0} hektopascal"}\r
@@ -785,6 +806,13 @@ hu{
         compound{\r
             per{"{0}/{1}"}\r
         }\r
+        concentr{\r
+            percent{\r
+                dnam{"%"}\r
+                one{"{0}%"}\r
+                other{"{0}%"}\r
+            }\r
+        }\r
         consumption{\r
             liter-per-100kilometers{\r
                 dnam{"l/100 km"}\r
@@ -793,6 +821,7 @@ hu{
             }\r
         }\r
         coordinate{\r
+            dnam{"irány"}\r
             east{"{0} K"}\r
             north{"{0} É"}\r
             south{"{0} D"}\r
@@ -1157,6 +1186,16 @@ hu{
                 one{"{0} ppm"}\r
                 other{"{0} ppm"}\r
             }\r
+            percent{\r
+                dnam{"százalék"}\r
+                one{"{0}%"}\r
+                other{"{0}%"}\r
+            }\r
+            permille{\r
+                dnam{"ezrelék"}\r
+                one{"{0}‰"}\r
+                other{"{0}‰"}\r
+            }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
@@ -1181,6 +1220,7 @@ hu{
             }\r
         }\r
         coordinate{\r
+            dnam{"irány"}\r
             east{"{0} K"}\r
             north{"{0} É"}\r
             south{"{0} D"}\r
@@ -1227,6 +1267,11 @@ hu{
                 one{"{0} MB"}\r
                 other{"{0} MB"}\r
             }\r
+            petabyte{\r
+                dnam{"PB"}\r
+                one{"{0} PB"}\r
+                other{"{0} PB"}\r
+            }\r
             terabit{\r
                 dnam{"Tb"}\r
                 one{"{0} Tb"}\r
@@ -1571,6 +1616,11 @@ hu{
             }\r
         }\r
         pressure{\r
+            atmosphere{\r
+                dnam{"atm"}\r
+                one{"{0} atm"}\r
+                other{"{0} atm"}\r
+            }\r
             hectopascal{\r
                 dnam{"hPa"}\r
                 one{"{0} hPa"}\r
index 3c95a8b..67796df 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 hy{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.50"}\r
     durationUnits{\r
         hm{"h:mm"}\r
         hms{"h:mm:ss"}\r
@@ -123,6 +123,16 @@ hy{
                 one{"{0} մասնիկ միլիոնի վրա"}\r
                 other{"{0} մասնիկ միլիոնի վրա"}\r
             }\r
+            percent{\r
+                dnam{"տոկոս"}\r
+                one{"{0} տոկոս"}\r
+                other{"{0} տոկոս"}\r
+            }\r
+            permille{\r
+                dnam{"պրոմիլ"}\r
+                one{"{0} պրոմիլ"}\r
+                other{"{0} պրոմիլ"}\r
+            }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
@@ -147,6 +157,7 @@ hy{
             }\r
         }\r
         coordinate{\r
+            dnam{"ուղղություն"}\r
             east{"արևելյան երկարության {0}"}\r
             north{"հյուսիսային լայնության {0}"}\r
             south{"հարավային լայնության {0}"}\r
@@ -193,6 +204,11 @@ hy{
                 one{"{0} մեգաբայթ"}\r
                 other{"{0} մեգաբայթ"}\r
             }\r
+            petabyte{\r
+                dnam{"պետաբայթ"}\r
+                one{"{0} պետաբայթ"}\r
+                other{"{0} պետաբայթ"}\r
+            }\r
             terabit{\r
                 dnam{"տերաբիթեր"}\r
                 one{"{0} տերաբիթ"}\r
@@ -537,6 +553,11 @@ hy{
             }\r
         }\r
         pressure{\r
+            atmosphere{\r
+                dnam{"մթնոլորտներ"}\r
+                one{"{0} մթնոլորտ"}\r
+                other{"{0} մթնոլորտ"}\r
+            }\r
             hectopascal{\r
                 dnam{"հեկտոպասկալ"}\r
                 one{"{0} հեկտոպասկալ"}\r
@@ -785,6 +806,13 @@ hy{
         compound{\r
             per{"{0}/{1}"}\r
         }\r
+        concentr{\r
+            percent{\r
+                dnam{"%"}\r
+                one{"{0}%"}\r
+                other{"{0}%"}\r
+            }\r
+        }\r
         consumption{\r
             liter-per-100kilometers{\r
                 dnam{"լ/100 կմ"}\r
@@ -793,6 +821,7 @@ hy{
             }\r
         }\r
         coordinate{\r
+            dnam{"ուղղ․"}\r
             east{"{0} ավ․ ե․"}\r
             north{"{0} հս․ լ․"}\r
             south{"{0} հվ․ լ․"}\r
@@ -1092,6 +1121,16 @@ hy{
                 one{"{0} մասնիկ/միլիոն"}\r
                 other{"{0} մասնիկ/միլիոն"}\r
             }\r
+            percent{\r
+                dnam{"տոկոս"}\r
+                one{"{0}%"}\r
+                other{"{0}%"}\r
+            }\r
+            permille{\r
+                dnam{"պրոմիլ"}\r
+                one{"{0}‰"}\r
+                other{"{0}‰"}\r
+            }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
@@ -1116,6 +1155,7 @@ hy{
             }\r
         }\r
         coordinate{\r
+            dnam{"ուղղություն"}\r
             east{"{0} ավ․ ե․"}\r
             north{"{0} հս․ լ․"}\r
             south{"{0} հվ․ լ․"}\r
@@ -1162,6 +1202,11 @@ hy{
                 one{"{0} ՄԲ"}\r
                 other{"{0} ՄԲ"}\r
             }\r
+            petabyte{\r
+                dnam{"պետաբայթ"}\r
+                one{"{0} ՊԲ"}\r
+                other{"{0} ՊԲ"}\r
+            }\r
             terabit{\r
                 dnam{"Տբիթ"}\r
                 one{"{0} Տբիթ"}\r
@@ -1506,6 +1551,11 @@ hy{
             }\r
         }\r
         pressure{\r
+            atmosphere{\r
+                dnam{"մթն"}\r
+                one{"{0} մթն"}\r
+                other{"{0} մթն"}\r
+            }\r
             hectopascal{\r
                 dnam{"հՊա"}\r
                 one{"{0} հՊա"}\r
diff --git a/source/data/unit/ia.txt b/source/data/unit/ia.txt
new file mode 100644 (file)
index 0000000..fe1cd6f
--- /dev/null
@@ -0,0 +1,1053 @@
+// © 2016 and later: Unicode, Inc. and others.\r
+// License & terms of use: http://www.unicode.org/copyright.html#License\r
+ia{\r
+    Version{"2.1.44.15"}\r
+    durationUnits{\r
+        hm{"hh:mm"}\r
+        hms{"hh:mm:ss"}\r
+        ms{"mm:ss"}\r
+    }\r
+    units{\r
+        acceleration{\r
+            g-force{\r
+                dnam{"fortia g"}\r
+            }\r
+            meter-per-second-squared{\r
+                dnam{"metros per secunda quadrate"}\r
+            }\r
+        }\r
+        angle{\r
+            arc-minute{\r
+                dnam{"minutas de arco"}\r
+            }\r
+            arc-second{\r
+                dnam{"secundas de arco"}\r
+            }\r
+            degree{\r
+                dnam{"grados"}\r
+            }\r
+            radian{\r
+                dnam{"radianos"}\r
+            }\r
+            revolution{\r
+                dnam{"revolutiones"}\r
+            }\r
+        }\r
+        area{\r
+            acre{\r
+                dnam{"acres"}\r
+            }\r
+            hectare{\r
+                dnam{"hectares"}\r
+            }\r
+            square-centimeter{\r
+                dnam{"centimetros quadrate"}\r
+                per{"{0} per centimetro quadrate"}\r
+            }\r
+            square-foot{\r
+                dnam{"pedes quadrate"}\r
+            }\r
+            square-inch{\r
+                dnam{"pollices quadrate"}\r
+                per{"{0} per pollice quadrate"}\r
+            }\r
+            square-kilometer{\r
+                dnam{"kilometros quadrate"}\r
+                per{"{0} per kilometro quadrate"}\r
+            }\r
+            square-meter{\r
+                dnam{"metros quadrate"}\r
+                per{"{0} per metro quadrate"}\r
+            }\r
+            square-mile{\r
+                dnam{"millias quadrate"}\r
+                per{"{0} per millia quadrate"}\r
+            }\r
+            square-yard{\r
+                dnam{"yards quadrate"}\r
+            }\r
+        }\r
+        compound{\r
+            per{"{0} per {1}"}\r
+        }\r
+        concentr{\r
+            karat{\r
+                dnam{"carates"}\r
+            }\r
+            milligram-per-deciliter{\r
+                dnam{"milligrammas per decilitro"}\r
+            }\r
+            millimole-per-liter{\r
+                dnam{"millimoles per litro"}\r
+            }\r
+            part-per-million{\r
+                dnam{"partes per million"}\r
+            }\r
+            percent{\r
+                dnam{"per cento"}\r
+            }\r
+            permille{\r
+                dnam{"per mille"}\r
+            }\r
+        }\r
+        consumption{\r
+            liter-per-100kilometers{\r
+                dnam{"litros per 100 kilometros"}\r
+            }\r
+            liter-per-kilometer{\r
+                dnam{"litros per kilometro"}\r
+            }\r
+            mile-per-gallon{\r
+                dnam{"millias per gallon"}\r
+            }\r
+            mile-per-gallon-imperial{\r
+                dnam{"millias per gallon imperial"}\r
+            }\r
+        }\r
+        coordinate{\r
+            dnam{"direction cardinal"}\r
+            east{"{0} est"}\r
+            north{"{0} nord"}\r
+            south{"{0} sud"}\r
+            west{"{0} west"}\r
+        }\r
+        digital{\r
+            bit{\r
+                dnam{"bits"}\r
+            }\r
+            byte{\r
+                dnam{"bytes"}\r
+            }\r
+            gigabit{\r
+                dnam{"gigabits"}\r
+            }\r
+            gigabyte{\r
+                dnam{"gigabytes"}\r
+            }\r
+            kilobit{\r
+                dnam{"kilobits"}\r
+            }\r
+            kilobyte{\r
+                dnam{"kilobytes"}\r
+            }\r
+            megabit{\r
+                dnam{"megabits"}\r
+            }\r
+            megabyte{\r
+                dnam{"megabytes"}\r
+            }\r
+            petabyte{\r
+                dnam{"petabytes"}\r
+            }\r
+            terabit{\r
+                dnam{"terabits"}\r
+            }\r
+            terabyte{\r
+                dnam{"terabytes"}\r
+            }\r
+        }\r
+        duration{\r
+            century{\r
+                dnam{"seculos"}\r
+            }\r
+            day{\r
+                dnam{"dies"}\r
+                per{"{0} per die"}\r
+            }\r
+            hour{\r
+                dnam{"horas"}\r
+                per{"{0} per hora"}\r
+            }\r
+            microsecond{\r
+                dnam{"microsecundas"}\r
+            }\r
+            millisecond{\r
+                dnam{"millisecundas"}\r
+            }\r
+            minute{\r
+                dnam{"minutas"}\r
+                per{"{0} per minuta"}\r
+            }\r
+            month{\r
+                dnam{"menses"}\r
+                per{"{0} per mense"}\r
+            }\r
+            nanosecond{\r
+                dnam{"nanosecundas"}\r
+            }\r
+            second{\r
+                dnam{"secundas"}\r
+                per{"{0} per secunda"}\r
+            }\r
+            week{\r
+                dnam{"septimanas"}\r
+                per{"{0} per septimana"}\r
+            }\r
+            year{\r
+                dnam{"annos"}\r
+                per{"{0} per anno"}\r
+            }\r
+        }\r
+        electric{\r
+            ampere{\r
+                dnam{"amperes"}\r
+            }\r
+            milliampere{\r
+                dnam{"milliamperes"}\r
+            }\r
+            ohm{\r
+                dnam{"ohms"}\r
+            }\r
+            volt{\r
+                dnam{"volts"}\r
+            }\r
+        }\r
+        energy{\r
+            calorie{\r
+                dnam{"calorias"}\r
+            }\r
+            foodcalorie{\r
+                dnam{"kilocalorias"}\r
+            }\r
+            joule{\r
+                dnam{"joules"}\r
+            }\r
+            kilocalorie{\r
+                dnam{"kilocalorias"}\r
+            }\r
+            kilojoule{\r
+                dnam{"kilojoules"}\r
+            }\r
+            kilowatt-hour{\r
+                dnam{"kilowatthoras"}\r
+            }\r
+        }\r
+        frequency{\r
+            gigahertz{\r
+                dnam{"gigahertz"}\r
+            }\r
+            hertz{\r
+                dnam{"hertz"}\r
+            }\r
+            kilohertz{\r
+                dnam{"kilohertz"}\r
+            }\r
+            megahertz{\r
+                dnam{"megahertz"}\r
+            }\r
+        }\r
+        length{\r
+            astronomical-unit{\r
+                dnam{"unitates astronomic"}\r
+            }\r
+            centimeter{\r
+                dnam{"centimetros"}\r
+                per{"{0} per centimetro"}\r
+            }\r
+            decimeter{\r
+                dnam{"decimetros"}\r
+            }\r
+            foot{\r
+                dnam{"pedes"}\r
+                per{"{0} per pede"}\r
+            }\r
+            inch{\r
+                dnam{"pollices"}\r
+                per{"{0} per pollice"}\r
+            }\r
+            kilometer{\r
+                dnam{"kilometros"}\r
+                per{"{0} per kilometro"}\r
+            }\r
+            light-year{\r
+                dnam{"annos lumine"}\r
+            }\r
+            meter{\r
+                dnam{"metros"}\r
+                per{"{0} per metro"}\r
+            }\r
+            micrometer{\r
+                dnam{"micrometros"}\r
+            }\r
+            mile{\r
+                dnam{"millias"}\r
+            }\r
+            mile-scandinavian{\r
+                dnam{"millias scandinave"}\r
+            }\r
+            millimeter{\r
+                dnam{"millimetros"}\r
+            }\r
+            nanometer{\r
+                dnam{"nanometros"}\r
+            }\r
+            nautical-mile{\r
+                dnam{"millias nautic"}\r
+            }\r
+            parsec{\r
+                dnam{"parsecs"}\r
+            }\r
+            picometer{\r
+                dnam{"picometros"}\r
+            }\r
+            point{\r
+                dnam{"punctos"}\r
+            }\r
+            yard{\r
+                dnam{"yards"}\r
+            }\r
+        }\r
+        light{\r
+            lux{\r
+                dnam{"lux"}\r
+            }\r
+        }\r
+        mass{\r
+            carat{\r
+                dnam{"carates"}\r
+            }\r
+            gram{\r
+                dnam{"grammas"}\r
+                per{"{0} per gramma"}\r
+            }\r
+            kilogram{\r
+                dnam{"kilogrammas"}\r
+                per{"{0} per kilogramma"}\r
+            }\r
+            metric-ton{\r
+                dnam{"tonnas"}\r
+            }\r
+            microgram{\r
+                dnam{"microgrammas"}\r
+            }\r
+            milligram{\r
+                dnam{"milligrammas"}\r
+            }\r
+            ounce{\r
+                dnam{"uncias"}\r
+                per{"{0} per uncia"}\r
+            }\r
+            ounce-troy{\r
+                dnam{"uncias troy"}\r
+            }\r
+            pound{\r
+                dnam{"libras"}\r
+                per{"{0} per libra"}\r
+            }\r
+            ton{\r
+                dnam{"tonnas curte"}\r
+            }\r
+        }\r
+        power{\r
+            gigawatt{\r
+                dnam{"gigawatts"}\r
+            }\r
+            horsepower{\r
+                dnam{"cavallos-vapor"}\r
+            }\r
+            kilowatt{\r
+                dnam{"kilowatts"}\r
+            }\r
+            megawatt{\r
+                dnam{"megawatts"}\r
+            }\r
+            milliwatt{\r
+                dnam{"milliwatts"}\r
+            }\r
+            watt{\r
+                dnam{"watts"}\r
+            }\r
+        }\r
+        pressure{\r
+            atmosphere{\r
+                dnam{"atmospheras"}\r
+            }\r
+            hectopascal{\r
+                dnam{"hectopascales"}\r
+            }\r
+            inch-hg{\r
+                dnam{"pollices de mercurio"}\r
+            }\r
+            millibar{\r
+                dnam{"millibares"}\r
+            }\r
+            millimeter-of-mercury{\r
+                dnam{"milimetros de mercurio"}\r
+            }\r
+            pound-per-square-inch{\r
+                dnam{"libras per pollice quadrate"}\r
+            }\r
+        }\r
+        speed{\r
+            kilometer-per-hour{\r
+                dnam{"kilometros per hora"}\r
+            }\r
+            knot{\r
+                dnam{"nodos"}\r
+            }\r
+            meter-per-second{\r
+                dnam{"metros per secunda"}\r
+            }\r
+            mile-per-hour{\r
+                dnam{"millias per hora"}\r
+            }\r
+        }\r
+        temperature{\r
+            celsius{\r
+                dnam{"grados Celcius"}\r
+            }\r
+            fahrenheit{\r
+                dnam{"grados Fahrenheit"}\r
+            }\r
+            generic{\r
+                dnam{"grados"}\r
+            }\r
+            kelvin{\r
+                dnam{"kelvin"}\r
+            }\r
+        }\r
+        volume{\r
+            acre-foot{\r
+                dnam{"acre-pedes"}\r
+            }\r
+            centiliter{\r
+                dnam{"centilitros"}\r
+            }\r
+            cubic-centimeter{\r
+                dnam{"centimetros cubic"}\r
+                per{"{0} per centimetro cubic"}\r
+            }\r
+            cubic-foot{\r
+                dnam{"pedes cubic"}\r
+            }\r
+            cubic-inch{\r
+                dnam{"inches cubic"}\r
+            }\r
+            cubic-kilometer{\r
+                dnam{"kilometros cubic"}\r
+            }\r
+            cubic-meter{\r
+                dnam{"metros cubic"}\r
+                per{"{0} per metro cubic"}\r
+            }\r
+            cubic-mile{\r
+                dnam{"millias cubic"}\r
+            }\r
+            cubic-yard{\r
+                dnam{"yards cubic"}\r
+            }\r
+            cup{\r
+                dnam{"tassas"}\r
+            }\r
+            cup-metric{\r
+                dnam{"tassas metric"}\r
+            }\r
+            deciliter{\r
+                dnam{"decilitros"}\r
+            }\r
+            fluid-ounce{\r
+                dnam{"uncias liquide"}\r
+            }\r
+            gallon{\r
+                dnam{"gallones"}\r
+                per{"{0} per gallon"}\r
+            }\r
+            gallon-imperial{\r
+                dnam{"gallones imp."}\r
+                per{"{0} per gallon imp."}\r
+            }\r
+            hectoliter{\r
+                dnam{"hectolitros"}\r
+            }\r
+            liter{\r
+                dnam{"litros"}\r
+                per{"{0} per litro"}\r
+            }\r
+            megaliter{\r
+                dnam{"megalitros"}\r
+            }\r
+            milliliter{\r
+                dnam{"millilitros"}\r
+            }\r
+            pint{\r
+                dnam{"pintas"}\r
+            }\r
+            pint-metric{\r
+                dnam{"pintas metric"}\r
+            }\r
+            quart{\r
+                dnam{"quartos"}\r
+            }\r
+            tablespoon{\r
+                dnam{"coclearatas a suppa"}\r
+            }\r
+            teaspoon{\r
+                dnam{"coclearatas a the"}\r
+            }\r
+        }\r
+    }\r
+    unitsNarrow{\r
+        compound{\r
+            per{"{0}/{1}"}\r
+        }\r
+        concentr{\r
+            percent{\r
+                dnam{"%"}\r
+            }\r
+        }\r
+        consumption{\r
+            liter-per-100kilometers{\r
+                dnam{"L/100km"}\r
+            }\r
+        }\r
+        coordinate{\r
+            dnam{"dir."}\r
+            east{"{0}E"}\r
+            north{"{0}N"}\r
+            south{"{0}S"}\r
+            west{"{0}W"}\r
+        }\r
+        duration{\r
+            day{\r
+                dnam{"die"}\r
+            }\r
+            hour{\r
+                dnam{"hora"}\r
+            }\r
+            millisecond{\r
+                dnam{"millisec"}\r
+            }\r
+            minute{\r
+                dnam{"min"}\r
+            }\r
+            month{\r
+                dnam{"mense"}\r
+            }\r
+            second{\r
+                dnam{"s"}\r
+            }\r
+            week{\r
+                dnam{"sept."}\r
+            }\r
+            year{\r
+                dnam{"an"}\r
+            }\r
+        }\r
+        length{\r
+            centimeter{\r
+                dnam{"cm"}\r
+            }\r
+            kilometer{\r
+                dnam{"km"}\r
+            }\r
+            meter{\r
+                dnam{"m"}\r
+            }\r
+            millimeter{\r
+                dnam{"mm"}\r
+            }\r
+        }\r
+        mass{\r
+            gram{\r
+                dnam{"g"}\r
+            }\r
+            kilogram{\r
+                dnam{"kg"}\r
+            }\r
+        }\r
+        speed{\r
+            kilometer-per-hour{\r
+                dnam{"km/h"}\r
+            }\r
+        }\r
+        temperature{\r
+            celsius{\r
+                dnam{"°C"}\r
+            }\r
+        }\r
+        volume{\r
+            liter{\r
+                dnam{"L"}\r
+            }\r
+        }\r
+    }\r
+    unitsShort{\r
+        acceleration{\r
+            g-force{\r
+                dnam{"fortia g"}\r
+            }\r
+            meter-per-second-squared{\r
+                dnam{"m/s²"}\r
+            }\r
+        }\r
+        angle{\r
+            arc-minute{\r
+                dnam{"′"}\r
+            }\r
+            arc-second{\r
+                dnam{"″"}\r
+            }\r
+            degree{\r
+                dnam{"°"}\r
+            }\r
+            radian{\r
+                dnam{"rad"}\r
+            }\r
+            revolution{\r
+                dnam{"rev"}\r
+            }\r
+        }\r
+        area{\r
+            acre{\r
+                dnam{"ac"}\r
+            }\r
+            hectare{\r
+                dnam{"ha"}\r
+            }\r
+            square-centimeter{\r
+                dnam{"cm²"}\r
+                per{"{0}/cm²"}\r
+            }\r
+            square-foot{\r
+                dnam{"ft²"}\r
+            }\r
+            square-inch{\r
+                dnam{"in²"}\r
+                per{"{0}/in²"}\r
+            }\r
+            square-kilometer{\r
+                dnam{"km²"}\r
+                per{"{0}/km²"}\r
+            }\r
+            square-meter{\r
+                dnam{"m²"}\r
+                per{"{0}/m²"}\r
+            }\r
+            square-mile{\r
+                dnam{"mi²"}\r
+                per{"{0}/mi²"}\r
+            }\r
+            square-yard{\r
+                dnam{"yd²"}\r
+            }\r
+        }\r
+        compound{\r
+            per{"{0}/{1}"}\r
+        }\r
+        concentr{\r
+            karat{\r
+                dnam{"kt"}\r
+            }\r
+            milligram-per-deciliter{\r
+                dnam{"mg/dL"}\r
+            }\r
+            millimole-per-liter{\r
+                dnam{"mmol/L"}\r
+            }\r
+            part-per-million{\r
+                dnam{"ppm"}\r
+            }\r
+            percent{\r
+                dnam{"%"}\r
+            }\r
+            permille{\r
+                dnam{"‰"}\r
+            }\r
+        }\r
+        consumption{\r
+            liter-per-100kilometers{\r
+                dnam{"L/100km"}\r
+            }\r
+            liter-per-kilometer{\r
+                dnam{"L/km"}\r
+            }\r
+            mile-per-gallon{\r
+                dnam{"mi/gal"}\r
+            }\r
+            mile-per-gallon-imperial{\r
+                dnam{"mi/gal imp."}\r
+            }\r
+        }\r
+        coordinate{\r
+            dnam{"direction"}\r
+            east{"{0} E"}\r
+            north{"{0} N"}\r
+            south{"{0} S"}\r
+            west{"{0} W"}\r
+        }\r
+        digital{\r
+            bit{\r
+                dnam{"b"}\r
+            }\r
+            byte{\r
+                dnam{"B"}\r
+            }\r
+            gigabit{\r
+                dnam{"Gb"}\r
+            }\r
+            gigabyte{\r
+                dnam{"GB"}\r
+            }\r
+            kilobit{\r
+                dnam{"kb"}\r
+            }\r
+            kilobyte{\r
+                dnam{"kB"}\r
+            }\r
+            megabit{\r
+                dnam{"Mb"}\r
+            }\r
+            megabyte{\r
+                dnam{"MB"}\r
+            }\r
+            petabyte{\r
+                dnam{"PB"}\r
+            }\r
+            terabit{\r
+                dnam{"Tb"}\r
+            }\r
+            terabyte{\r
+                dnam{"TB"}\r
+            }\r
+        }\r
+        duration{\r
+            century{\r
+                dnam{"scl"}\r
+            }\r
+            day{\r
+                dnam{"dies"}\r
+                per{"{0}/d"}\r
+            }\r
+            hour{\r
+                dnam{"horas"}\r
+                per{"{0}/h"}\r
+            }\r
+            microsecond{\r
+                dnam{"μs"}\r
+            }\r
+            millisecond{\r
+                dnam{"millisec"}\r
+            }\r
+            minute{\r
+                dnam{"min"}\r
+                per{"{0}/min"}\r
+            }\r
+            month{\r
+                dnam{"menses"}\r
+                per{"{0}/m"}\r
+            }\r
+            nanosecond{\r
+                dnam{"ns"}\r
+            }\r
+            second{\r
+                dnam{"sec"}\r
+                per{"{0}/s"}\r
+            }\r
+            week{\r
+                dnam{"septimanas"}\r
+                per{"{0}/sept"}\r
+            }\r
+            year{\r
+                dnam{"annos"}\r
+                per{"{0}/an"}\r
+            }\r
+        }\r
+        electric{\r
+            ampere{\r
+                dnam{"A"}\r
+            }\r
+            milliampere{\r
+                dnam{"mA"}\r
+            }\r
+            ohm{\r
+                dnam{"Ω"}\r
+            }\r
+            volt{\r
+                dnam{"V"}\r
+            }\r
+        }\r
+        energy{\r
+            calorie{\r
+                dnam{"cal"}\r
+            }\r
+            foodcalorie{\r
+                dnam{"kcal"}\r
+            }\r
+            joule{\r
+                dnam{"J"}\r
+            }\r
+            kilocalorie{\r
+                dnam{"kcal"}\r
+            }\r
+            kilojoule{\r
+                dnam{"kJ"}\r
+            }\r
+            kilowatt-hour{\r
+                dnam{"kWh"}\r
+            }\r
+        }\r
+        frequency{\r
+            gigahertz{\r
+                dnam{"GHz"}\r
+            }\r
+            hertz{\r
+                dnam{"Hz"}\r
+            }\r
+            kilohertz{\r
+                dnam{"kHz"}\r
+            }\r
+            megahertz{\r
+                dnam{"MHz"}\r
+            }\r
+        }\r
+        length{\r
+            astronomical-unit{\r
+                dnam{"ua"}\r
+            }\r
+            centimeter{\r
+                dnam{"cm"}\r
+                per{"{0}/cm"}\r
+            }\r
+            decimeter{\r
+                dnam{"dm"}\r
+            }\r
+            foot{\r
+                dnam{"ft"}\r
+                per{"{0}/ft"}\r
+            }\r
+            inch{\r
+                dnam{"in"}\r
+                per{"{0}/in"}\r
+            }\r
+            kilometer{\r
+                dnam{"km"}\r
+                per{"{0}/km"}\r
+            }\r
+            light-year{\r
+                dnam{"al"}\r
+            }\r
+            meter{\r
+                dnam{"m"}\r
+                per{"{0}/m"}\r
+            }\r
+            micrometer{\r
+                dnam{"µm"}\r
+            }\r
+            mile{\r
+                dnam{"mi"}\r
+            }\r
+            mile-scandinavian{\r
+                dnam{"smi"}\r
+            }\r
+            millimeter{\r
+                dnam{"mm"}\r
+            }\r
+            nanometer{\r
+                dnam{"nm"}\r
+            }\r
+            nautical-mile{\r
+                dnam{"nmi"}\r
+            }\r
+            parsec{\r
+                dnam{"pc"}\r
+            }\r
+            picometer{\r
+                dnam{"pm"}\r
+            }\r
+            point{\r
+                dnam{"pt"}\r
+            }\r
+            yard{\r
+                dnam{"yd"}\r
+            }\r
+        }\r
+        light{\r
+            lux{\r
+                dnam{"lx"}\r
+            }\r
+        }\r
+        mass{\r
+            carat{\r
+                dnam{"ct"}\r
+            }\r
+            gram{\r
+                dnam{"g"}\r
+                per{"{0}/g"}\r
+            }\r
+            kilogram{\r
+                dnam{"kg"}\r
+                per{"{0}/kg"}\r
+            }\r
+            metric-ton{\r
+                dnam{"t"}\r
+            }\r
+            microgram{\r
+                dnam{"µg"}\r
+            }\r
+            milligram{\r
+                dnam{"mg"}\r
+            }\r
+            ounce{\r
+                dnam{"oz"}\r
+                per{"{0}/oz"}\r
+            }\r
+            ounce-troy{\r
+                dnam{"oz t"}\r
+            }\r
+            pound{\r
+                dnam{"lb"}\r
+                per{"{0}/lb"}\r
+            }\r
+            ton{\r
+                dnam{"tn"}\r
+            }\r
+        }\r
+        power{\r
+            gigawatt{\r
+                dnam{"GW"}\r
+            }\r
+            horsepower{\r
+                dnam{"cv"}\r
+            }\r
+            kilowatt{\r
+                dnam{"kW"}\r
+            }\r
+            megawatt{\r
+                dnam{"MW"}\r
+            }\r
+            milliwatt{\r
+                dnam{"mW"}\r
+            }\r
+            watt{\r
+                dnam{"W"}\r
+            }\r
+        }\r
+        pressure{\r
+            atmosphere{\r
+                dnam{"atm"}\r
+            }\r
+            hectopascal{\r
+                dnam{"hPa"}\r
+            }\r
+            inch-hg{\r
+                dnam{"inHg"}\r
+            }\r
+            millibar{\r
+                dnam{"mbar"}\r
+            }\r
+            millimeter-of-mercury{\r
+                dnam{"mm Hg"}\r
+            }\r
+            pound-per-square-inch{\r
+                dnam{"lb/in²"}\r
+            }\r
+        }\r
+        speed{\r
+            kilometer-per-hour{\r
+                dnam{"km/h"}\r
+            }\r
+            knot{\r
+                dnam{"kn"}\r
+            }\r
+            meter-per-second{\r
+                dnam{"m/s"}\r
+            }\r
+            mile-per-hour{\r
+                dnam{"mi/h"}\r
+            }\r
+        }\r
+        temperature{\r
+            celsius{\r
+                dnam{"°C"}\r
+            }\r
+            fahrenheit{\r
+                dnam{"°F"}\r
+            }\r
+            generic{\r
+                dnam{"°"}\r
+            }\r
+            kelvin{\r
+                dnam{"K"}\r
+            }\r
+        }\r
+        volume{\r
+            acre-foot{\r
+                dnam{"ac pd"}\r
+            }\r
+            centiliter{\r
+                dnam{"cL"}\r
+            }\r
+            cubic-centimeter{\r
+                dnam{"cm³"}\r
+                per{"{0}/cm³"}\r
+            }\r
+            cubic-foot{\r
+                dnam{"pd³"}\r
+            }\r
+            cubic-inch{\r
+                dnam{"in³"}\r
+            }\r
+            cubic-kilometer{\r
+                dnam{"km³"}\r
+            }\r
+            cubic-meter{\r
+                dnam{"m³"}\r
+                per{"{0}/m³"}\r
+            }\r
+            cubic-mile{\r
+                dnam{"mi³"}\r
+            }\r
+            cubic-yard{\r
+                dnam{"yd³"}\r
+            }\r
+            cup{\r
+                dnam{"tas"}\r
+            }\r
+            cup-metric{\r
+                dnam{"tasm"}\r
+            }\r
+            deciliter{\r
+                dnam{"dL"}\r
+            }\r
+            fluid-ounce{\r
+                dnam{"oz liq"}\r
+            }\r
+            gallon{\r
+                dnam{"gal"}\r
+                per{"{0}/gal"}\r
+            }\r
+            gallon-imperial{\r
+                dnam{"gal imp"}\r
+                per{"{0}/gal imp"}\r
+            }\r
+            hectoliter{\r
+                dnam{"hL"}\r
+            }\r
+            liter{\r
+                dnam{"L"}\r
+                per{"{0}/L"}\r
+            }\r
+            megaliter{\r
+                dnam{"ML"}\r
+            }\r
+            milliliter{\r
+                dnam{"mL"}\r
+            }\r
+            pint{\r
+                dnam{"pt"}\r
+            }\r
+            pint-metric{\r
+                dnam{"ptm"}\r
+            }\r
+            quart{\r
+                dnam{"qt"}\r
+            }\r
+            tablespoon{\r
+                dnam{"cocl. a suppa"}\r
+            }\r
+            teaspoon{\r
+                dnam{"cocl. a the"}\r
+            }\r
+        }\r
+    }\r
+}\r
index 2bb5e6d..40d3422 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 id{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.20"}\r
     durationUnits{\r
         hm{"h.mm"}\r
         hms{"h.mm.ss"}\r
@@ -103,6 +103,14 @@ id{
                 dnam{"bagian per juta"}\r
                 other{"{0} bagian per juta"}\r
             }\r
+            percent{\r
+                dnam{"persen"}\r
+                other{"{0} persen"}\r
+            }\r
+            permille{\r
+                dnam{"permil"}\r
+                other{"{0} permil"}\r
+            }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
@@ -123,6 +131,7 @@ id{
             }\r
         }\r
         coordinate{\r
+            dnam{"arah mata angin"}\r
             east{"{0}T"}\r
             north{"{0}U"}\r
             south{"{0}S"}\r
@@ -161,6 +170,10 @@ id{
                 dnam{"megabyte"}\r
                 other{"{0} megabyte"}\r
             }\r
+            petabyte{\r
+                dnam{"petabyte"}\r
+                other{"{0} petabyte"}\r
+            }\r
             terabit{\r
                 dnam{"terabit"}\r
                 other{"{0} terabit"}\r
@@ -455,6 +468,10 @@ id{
             }\r
         }\r
         pressure{\r
+            atmosphere{\r
+                dnam{"atmosfer"}\r
+                other{"{0} atmosfer"}\r
+            }\r
             hectopascal{\r
                 dnam{"hektopaskal"}\r
                 other{"{0} hektopaskal"}\r
@@ -661,6 +678,12 @@ id{
         compound{\r
             per{"{0}/{1}"}\r
         }\r
+        concentr{\r
+            percent{\r
+                dnam{"%"}\r
+                other{"{0}%"}\r
+            }\r
+        }\r
         consumption{\r
             liter-per-100kilometers{\r
                 dnam{"L/100km"}\r
@@ -668,6 +691,7 @@ id{
             }\r
         }\r
         coordinate{\r
+            dnam{"arah"}\r
             east{"{0}T"}\r
             north{"{0}U"}\r
             south{"{0}S"}\r
@@ -1041,6 +1065,14 @@ id{
                 dnam{"bagian/juta"}\r
                 other{"{0} ppm"}\r
             }\r
+            percent{\r
+                dnam{"persen"}\r
+                other{"{0}%"}\r
+            }\r
+            permille{\r
+                dnam{"permil"}\r
+                other{"{0}‰"}\r
+            }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
@@ -1061,6 +1093,7 @@ id{
             }\r
         }\r
         coordinate{\r
+            dnam{"arah"}\r
             east{"{0}T"}\r
             north{"{0}U"}\r
             south{"{0}S"}\r
@@ -1099,6 +1132,10 @@ id{
                 dnam{"MByte"}\r
                 other{"{0} MB"}\r
             }\r
+            petabyte{\r
+                dnam{"PByte"}\r
+                other{"{0} PB"}\r
+            }\r
             terabit{\r
                 dnam{"Tbit"}\r
                 other{"{0} Tb"}\r
@@ -1393,6 +1430,10 @@ id{
             }\r
         }\r
         pressure{\r
+            atmosphere{\r
+                dnam{"atm"}\r
+                other{"{0} atm"}\r
+            }\r
             hectopascal{\r
                 dnam{"hPa"}\r
                 other{"{0} hPa"}\r
index 4ac2604..bb5bc66 100644 (file)
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 ig{\r
-    Version{"2.1.38.69"}\r
+    Version{"2.1.44.88"}\r
 }\r
index 8ae659f..c4d00d1 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 is{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.91"}\r
     durationUnits{\r
         hm{"h:mm"}\r
         hms{"h:mm:ss"}\r
@@ -123,6 +123,16 @@ is{
                 one{"{0} milljónarhluti"}\r
                 other{"{0} milljónarhlutar"}\r
             }\r
+            percent{\r
+                dnam{"prósent"}\r
+                one{"{0} prósent"}\r
+                other{"{0} prósent"}\r
+            }\r
+            permille{\r
+                dnam{"prómill"}\r
+                one{"{0} prómill"}\r
+                other{"{0} prómill"}\r
+            }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
@@ -147,6 +157,7 @@ is{
             }\r
         }\r
         coordinate{\r
+            dnam{"höfuðátt"}\r
             east{"{0} austur"}\r
             north{"{0} norður"}\r
             south{"{0} suður"}\r
@@ -193,6 +204,11 @@ is{
                 one{"{0} megabæti"}\r
                 other{"{0} megabæti"}\r
             }\r
+            petabyte{\r
+                dnam{"petabæt"}\r
+                one{"{0} petabæt"}\r
+                other{"{0} petabæt"}\r
+            }\r
             terabit{\r
                 dnam{"terabitar"}\r
                 one{"{0} terabiti"}\r
@@ -552,6 +568,11 @@ is{
             }\r
         }\r
         pressure{\r
+            atmosphere{\r
+                dnam{"loftþyngdir"}\r
+                one{"{0} loftþyngd"}\r
+                other{"{0} loftþyngdir"}\r
+            }\r
             hectopascal{\r
                 dnam{"hektópasköl"}\r
                 one{"{0} hektópaskal"}\r
@@ -798,6 +819,13 @@ is{
         compound{\r
             per{"{0}/{1}"}\r
         }\r
+        concentr{\r
+            percent{\r
+                dnam{"%"}\r
+                one{"{0}%"}\r
+                other{"{0}%"}\r
+            }\r
+        }\r
         consumption{\r
             liter-per-100kilometers{\r
                 dnam{"l/100km"}\r
@@ -806,6 +834,7 @@ is{
             }\r
         }\r
         coordinate{\r
+            dnam{"átt"}\r
             east{"{0}A"}\r
             north{"{0}N"}\r
             south{"{0}S"}\r
@@ -894,8 +923,8 @@ is{
             }\r
             fathom{\r
                 dnam{"faðmur"}\r
-                one{"{0}fm"}\r
-                other{"{0}fm"}\r
+                one{"{0}fth"}\r
+                other{"{0}fth"}\r
             }\r
             foot{\r
                 dnam{"fet"}\r
@@ -1260,6 +1289,16 @@ is{
                 one{"{0} ppm"}\r
                 other{"{0} ppm"}\r
             }\r
+            percent{\r
+                dnam{"prósent"}\r
+                one{"{0}%"}\r
+                other{"{0} %"}\r
+            }\r
+            permille{\r
+                dnam{"prómill"}\r
+                one{"{0}‰"}\r
+                other{"{0}‰"}\r
+            }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
@@ -1284,6 +1323,7 @@ is{
             }\r
         }\r
         coordinate{\r
+            dnam{"átt"}\r
             east{"{0} A"}\r
             north{"{0} N"}\r
             south{"{0} S"}\r
@@ -1330,6 +1370,11 @@ is{
                 one{"{0} MB"}\r
                 other{"{0} MB"}\r
             }\r
+            petabyte{\r
+                dnam{"Pbæt"}\r
+                one{"{0} PB"}\r
+                other{"{0} PB"}\r
+            }\r
             terabit{\r
                 dnam{"Tb"}\r
                 one{"{0} Tb"}\r
@@ -1500,8 +1545,8 @@ is{
             }\r
             fathom{\r
                 dnam{"faðmar"}\r
-                one{"{0} ftm"}\r
-                other{"{0} ftm"}\r
+                one{"{0} fth"}\r
+                other{"{0} fth"}\r
             }\r
             foot{\r
                 dnam{"fet"}\r
@@ -1689,6 +1734,11 @@ is{
             }\r
         }\r
         pressure{\r
+            atmosphere{\r
+                dnam{"atm"}\r
+                one{"{0} atm"}\r
+                other{"{0} atm"}\r
+            }\r
             hectopascal{\r
                 dnam{"hPa"}\r
                 one{"{0} hPa"}\r
index 9abe161..94b32dd 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 it{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.86"}\r
     durationUnits{\r
         hm{"h:mm"}\r
         hms{"h:mm:ss"}\r
@@ -123,6 +123,16 @@ it{
                 one{"{0} parte per milione"}\r
                 other{"{0} parti per milione"}\r
             }\r
+            percent{\r
+                dnam{"percentuale"}\r
+                one{"{0} percento"}\r
+                other{"{0} percento"}\r
+            }\r
+            permille{\r
+                dnam{"permille"}\r
+                one{"{0}‰"}\r
+                other{"{0}‰"}\r
+            }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
@@ -147,6 +157,7 @@ it{
             }\r
         }\r
         coordinate{\r
+            dnam{"punti cardinali"}\r
             east{"{0}E"}\r
             north{"{0}N"}\r
             south{"{0}S"}\r
@@ -193,6 +204,11 @@ it{
                 one{"{0} megabyte"}\r
                 other{"{0} megabyte"}\r
             }\r
+            petabyte{\r
+                dnam{"petabyte"}\r
+                one{"{0} petabyte"}\r
+                other{"{0} petabyte"}\r
+            }\r
             terabit{\r
                 dnam{"terabit"}\r
                 one{"{0} terabit"}\r
@@ -537,6 +553,11 @@ it{
             }\r
         }\r
         pressure{\r
+            atmosphere{\r
+                dnam{"atmosfere"}\r
+                one{"{0} atmosfera"}\r
+                other{"{0} atmosfere"}\r
+            }\r
             hectopascal{\r
                 dnam{"ettopascal"}\r
                 one{"{0} ettopascal"}\r
@@ -790,6 +811,13 @@ it{
         compound{\r
             per{"{0}/{1}"}\r
         }\r
+        concentr{\r
+            percent{\r
+                dnam{"%"}\r
+                one{"{0}%"}\r
+                other{"{0}%"}\r
+            }\r
+        }\r
         consumption{\r
             liter-per-100kilometers{\r
                 dnam{"L/100km"}\r
@@ -798,6 +826,7 @@ it{
             }\r
         }\r
         coordinate{\r
+            dnam{"punto"}\r
             east{"{0}E"}\r
             north{"{0}N"}\r
             south{"{0}S"}\r
@@ -826,8 +855,8 @@ it{
             }\r
             month{\r
                 dnam{"mese"}\r
-                one{"{0}mese"}\r
-                other{"{0}mesi"}\r
+                one{"{0} mese"}\r
+                other{"{0} mesi"}\r
             }\r
             second{\r
                 dnam{"s"}\r
@@ -1098,6 +1127,16 @@ it{
                 one{"{0} ppm"}\r
                 other{"{0} ppm"}\r
             }\r
+            percent{\r
+                dnam{"percento"}\r
+                one{"{0}%"}\r
+                other{"{0}%"}\r
+            }\r
+            permille{\r
+                dnam{"‰"}\r
+                one{"{0}‰"}\r
+                other{"{0}‰"}\r
+            }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
@@ -1122,6 +1161,7 @@ it{
             }\r
         }\r
         coordinate{\r
+            dnam{"punto"}\r
             east{"{0}E"}\r
             north{"{0}N"}\r
             south{"{0}S"}\r
@@ -1168,6 +1208,11 @@ it{
                 one{"{0} MB"}\r
                 other{"{0} MB"}\r
             }\r
+            petabyte{\r
+                dnam{"PByte"}\r
+                one{"{0} PB"}\r
+                other{"{0} PB"}\r
+            }\r
             terabit{\r
                 dnam{"Tb"}\r
                 one{"{0} Tb"}\r
@@ -1512,6 +1557,11 @@ it{
             }\r
         }\r
         pressure{\r
+            atmosphere{\r
+                dnam{"atm"}\r
+                one{"{0} atm"}\r
+                other{"{0} atm"}\r
+            }\r
             hectopascal{\r
                 dnam{"hPa"}\r
                 one{"{0} hPa"}\r
index cf33a22..e0e1efc 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 ja{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.91"}\r
     durationUnits{\r
         hm{"h:mm"}\r
         hms{"h:mm:ss"}\r
@@ -103,6 +103,14 @@ ja{
                 dnam{"ppm"}\r
                 other{"{0} ppm"}\r
             }\r
+            percent{\r
+                dnam{"パーセント"}\r
+                other{"{0} パーセント"}\r
+            }\r
+            permille{\r
+                dnam{"パーミル"}\r
+                other{"{0} パーミル"}\r
+            }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
@@ -123,6 +131,7 @@ ja{
             }\r
         }\r
         coordinate{\r
+            dnam{"方位"}\r
             east{"東経{0}"}\r
             north{"北緯{0}"}\r
             south{"南緯{0}"}\r
@@ -161,6 +170,10 @@ ja{
                 dnam{"メガバイト"}\r
                 other{"{0} メガバイト"}\r
             }\r
+            petabyte{\r
+                dnam{"ペタバイト"}\r
+                other{"{0} ペタバイト"}\r
+            }\r
             terabit{\r
                 dnam{"テラビット"}\r
                 other{"{0} テラビット"}\r
@@ -455,6 +468,10 @@ ja{
             }\r
         }\r
         pressure{\r
+            atmosphere{\r
+                dnam{"気圧"}\r
+                other{"{0} 気圧"}\r
+            }\r
             hectopascal{\r
                 dnam{"ヘクトパスカル"}\r
                 other{"{0} ヘクトパスカル"}\r
@@ -681,6 +698,10 @@ ja{
             karat{\r
                 other{"{0}K"}\r
             }\r
+            percent{\r
+                dnam{"%"}\r
+                other{"{0}%"}\r
+            }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
@@ -695,6 +716,7 @@ ja{
             }\r
         }\r
         coordinate{\r
+            dnam{"方位"}\r
             east{"{0}E"}\r
             north{"{0}N"}\r
             south{"{0}S"}\r
@@ -739,12 +761,12 @@ ja{
             }\r
             day{\r
                 dnam{"日"}\r
-                other{"{0}"}\r
+                other{"{0}d"}\r
                 per{"{0}/日"}\r
             }\r
             hour{\r
                 dnam{"時間"}\r
-                other{"{0}時間"}\r
+                other{"{0}h"}\r
                 per{"{0}/時間"}\r
             }\r
             microsecond{\r
@@ -757,7 +779,7 @@ ja{
             }\r
             minute{\r
                 dnam{"分"}\r
-                other{"{0}"}\r
+                other{"{0}m"}\r
                 per{"{0}/分"}\r
             }\r
             month{\r
@@ -771,7 +793,7 @@ ja{
             }\r
             second{\r
                 dnam{"秒"}\r
-                other{"{0}"}\r
+                other{"{0}s"}\r
                 per{"{0}/秒"}\r
             }\r
             week{\r
@@ -849,7 +871,7 @@ ja{
             }\r
             fathom{\r
                 dnam{"fm"}\r
-                other{"{0}fm"}\r
+                other{"{0}fth"}\r
             }\r
             foot{\r
                 dnam{"フィート"}\r
@@ -1214,6 +1236,14 @@ ja{
                 dnam{"ppm"}\r
                 other{"{0} ppm"}\r
             }\r
+            percent{\r
+                dnam{"パーセント"}\r
+                other{"{0}%"}\r
+            }\r
+            permille{\r
+                dnam{"パーミル"}\r
+                other{"{0}‰"}\r
+            }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
@@ -1234,6 +1264,7 @@ ja{
             }\r
         }\r
         coordinate{\r
+            dnam{"方位"}\r
             east{"東経{0}"}\r
             north{"北緯{0}"}\r
             south{"南緯{0}"}\r
@@ -1272,6 +1303,10 @@ ja{
                 dnam{"MB"}\r
                 other{"{0} MB"}\r
             }\r
+            petabyte{\r
+                dnam{"ペタバイト"}\r
+                other{"{0} PB"}\r
+            }\r
             terabit{\r
                 dnam{"テラビット"}\r
                 other{"{0} Tb"}\r
@@ -1412,7 +1447,7 @@ ja{
             }\r
             fathom{\r
                 dnam{"ファゾム"}\r
-                other{"{0} fm"}\r
+                other{"{0} fth"}\r
             }\r
             foot{\r
                 dnam{"フィート"}\r
@@ -1566,6 +1601,10 @@ ja{
             }\r
         }\r
         pressure{\r
+            atmosphere{\r
+                dnam{"気圧"}\r
+                other{"{0} atm"}\r
+            }\r
             hectopascal{\r
                 dnam{"hPa"}\r
                 other{"{0} hPa"}\r
diff --git a/source/data/unit/jv.txt b/source/data/unit/jv.txt
new file mode 100644 (file)
index 0000000..8c929ba
--- /dev/null
@@ -0,0 +1,1342 @@
+// © 2016 and later: Unicode, Inc. and others.\r
+// License & terms of use: http://www.unicode.org/copyright.html#License\r
+jv{\r
+    Version{"2.1.44.15"}\r
+    durationUnits{\r
+        hm{"h:mm"}\r
+        hms{"h:mm:ss"}\r
+        ms{"m:ss"}\r
+    }\r
+    units{\r
+        acceleration{\r
+            g-force{\r
+                dnam{"tenaga-g"}\r
+                other{"{0} tenaga-g"}\r
+            }\r
+            meter-per-second-squared{\r
+                dnam{"meter saben detik kuadrat"}\r
+                other{"{0} meter saben detik kuadrat"}\r
+            }\r
+        }\r
+        angle{\r
+            arc-minute{\r
+                dnam{"menit saka busur"}\r
+                other{"{0} menit saka busur"}\r
+            }\r
+            arc-second{\r
+                dnam{"detik saka busur"}\r
+                other{"{0} detik saka busur"}\r
+            }\r
+            degree{\r
+                dnam{"derajat"}\r
+                other{"{0} derajat"}\r
+            }\r
+            radian{\r
+                dnam{"radian"}\r
+                other{"{0} radian"}\r
+            }\r
+            revolution{\r
+                dnam{"revolusi"}\r
+                other{"{0} revolusi"}\r
+            }\r
+        }\r
+        area{\r
+            acre{\r
+                dnam{"are"}\r
+                other{"{0} are"}\r
+            }\r
+            hectare{\r
+                dnam{"hektar"}\r
+                other{"{0} hektar"}\r
+            }\r
+            square-centimeter{\r
+                dnam{"sentimeter persegi"}\r
+                other{"{0} sentimeter persegi"}\r
+                per{"{0} saben sentimeter persegi"}\r
+            }\r
+            square-foot{\r
+                dnam{"kaki persegi"}\r
+                other{"{0} kaki persegi"}\r
+            }\r
+            square-inch{\r
+                dnam{"inci persegi"}\r
+                other{"{0} inci persegi"}\r
+                per{"{0} saben inci persegi"}\r
+            }\r
+            square-kilometer{\r
+                dnam{"kilometer persegi"}\r
+                other{"{0} kilometer persegi"}\r
+                per{"{0} saben kilometer persegi"}\r
+            }\r
+            square-meter{\r
+                dnam{"meter persegi"}\r
+                other{"{0} meter persegi"}\r
+                per{"{0} saben meter persegi"}\r
+            }\r
+            square-mile{\r
+                dnam{"mil persegi"}\r
+                other{"{0} mil persegi"}\r
+                per{"{0} saben mil persegi"}\r
+            }\r
+            square-yard{\r
+                dnam{"yard persegi"}\r
+                other{"{0} yard persegi"}\r
+            }\r
+        }\r
+        compound{\r
+            per{"{0} saben {1}"}\r
+        }\r
+        concentr{\r
+            karat{\r
+                dnam{"karat"}\r
+                other{"{0} karat"}\r
+            }\r
+            milligram-per-deciliter{\r
+                dnam{"miligram saben desiliter"}\r
+                other{"{0} miligram saben desiliter"}\r
+            }\r
+            millimole-per-liter{\r
+                dnam{"milimol saben liter"}\r
+                other{"{0} milimol saben liter"}\r
+            }\r
+            part-per-million{\r
+                dnam{"bagean saben yuta"}\r
+                other{"{0} bagean saben yuta"}\r
+            }\r
+            percent{\r
+                dnam{"persen"}\r
+                other{"{0} persen"}\r
+            }\r
+            permille{\r
+                dnam{"permil"}\r
+                other{"{0} permil"}\r
+            }\r
+        }\r
+        consumption{\r
+            liter-per-100kilometers{\r
+                dnam{"liter saben 100 kilometer"}\r
+                other{"{0} liter saben 100 kilometer"}\r
+            }\r
+            liter-per-kilometer{\r
+                dnam{"liter saben kilometer"}\r
+                other{"{0} liter saben kilometer"}\r
+            }\r
+            mile-per-gallon{\r
+                dnam{"mil saben galon"}\r
+                other{"{0} mil saben galon"}\r
+            }\r
+            mile-per-gallon-imperial{\r
+                dnam{"mil saben galon inggris"}\r
+                other{"{0} mil saben galon inggris"}\r
+            }\r
+        }\r
+        coordinate{\r
+            dnam{"arah kardinal"}\r
+            east{"{0} wetan"}\r
+            north{"{0} lor"}\r
+            south{"{0} kidul"}\r
+            west{"{0} kulon"}\r
+        }\r
+        digital{\r
+            bit{\r
+                dnam{"bit"}\r
+                other{"{0} bit"}\r
+            }\r
+            byte{\r
+                dnam{"bite"}\r
+                other{"{0} bite"}\r
+            }\r
+            gigabit{\r
+                dnam{"gigabit"}\r
+                other{"{0} gigabit"}\r
+            }\r
+            gigabyte{\r
+                dnam{"gigabite"}\r
+                other{"{0} gigabite"}\r
+            }\r
+            kilobit{\r
+                dnam{"kilobit"}\r
+                other{"{0} kilobit"}\r
+            }\r
+            kilobyte{\r
+                dnam{"kilobite"}\r
+                other{"{0} kilobite"}\r
+            }\r
+            megabit{\r
+                dnam{"megabit"}\r
+                other{"{0} megabit"}\r
+            }\r
+            megabyte{\r
+                dnam{"megabite"}\r
+                other{"{0} megabite"}\r
+            }\r
+            petabyte{\r
+                dnam{"petabite"}\r
+                other{"{0} petabite"}\r
+            }\r
+            terabit{\r
+                dnam{"terabit"}\r
+                other{"{0} terabit"}\r
+            }\r
+            terabyte{\r
+                dnam{"terabite"}\r
+                other{"{0} terabite"}\r
+            }\r
+        }\r
+        duration{\r
+            century{\r
+                dnam{"abad"}\r
+                other{"{0} abad"}\r
+            }\r
+            day{\r
+                dnam{"dino"}\r
+                other{"{0} dino"}\r
+                per{"{0} saben dino"}\r
+            }\r
+            hour{\r
+                dnam{"jam"}\r
+                other{"{0} jam"}\r
+                per{"{0} saben jam"}\r
+            }\r
+            microsecond{\r
+                dnam{"mikrodetik"}\r
+                other{"{0} mikrodetik"}\r
+            }\r
+            millisecond{\r
+                dnam{"milidetik"}\r
+                other{"{0} milidetik"}\r
+            }\r
+            minute{\r
+                dnam{"menit"}\r
+                other{"{0} menit"}\r
+                per{"{0} saben menit"}\r
+            }\r
+            month{\r
+                dnam{"sasi"}\r
+                other{"{0} sasi"}\r
+                per{"{0} saben sasi"}\r
+            }\r
+            nanosecond{\r
+                dnam{"nanodetik"}\r
+                other{"{0} nanodetik"}\r
+            }\r
+            second{\r
+                dnam{"detik"}\r
+                other{"{0} detik"}\r
+                per{"{0} saben detik"}\r
+            }\r
+            week{\r
+                dnam{"pekan"}\r
+                other{"{0} pekan"}\r
+                per{"{0} saben pekan"}\r
+            }\r
+            year{\r
+                dnam{"taun"}\r
+                other{"{0} taun"}\r
+                per{"{0} saben taun"}\r
+            }\r
+        }\r
+        electric{\r
+            ampere{\r
+                dnam{"amper"}\r
+                other{"{0} amper"}\r
+            }\r
+            milliampere{\r
+                dnam{"miliamper"}\r
+                other{"{0} miliamper"}\r
+            }\r
+            ohm{\r
+                dnam{"ohm"}\r
+                other{"{0} ohm"}\r
+            }\r
+            volt{\r
+                dnam{"volt"}\r
+                other{"{0} volt"}\r
+            }\r
+        }\r
+        energy{\r
+            calorie{\r
+                dnam{"kalori"}\r
+                other{"{0} kalori"}\r
+            }\r
+            foodcalorie{\r
+                dnam{"Kalori"}\r
+                other{"{0} Kalori"}\r
+            }\r
+            joule{\r
+                dnam{"jol"}\r
+                other{"{0} jol"}\r
+            }\r
+            kilocalorie{\r
+                dnam{"kilokalori"}\r
+                other{"{0} kilokalori"}\r
+            }\r
+            kilojoule{\r
+                dnam{"kilojol"}\r
+                other{"{0} kilojol"}\r
+            }\r
+            kilowatt-hour{\r
+                dnam{"kilowatt-jam"}\r
+                other{"{0} kilowatt-jam"}\r
+            }\r
+        }\r
+        frequency{\r
+            gigahertz{\r
+                dnam{"gigahet"}\r
+                other{"{0} gigahet"}\r
+            }\r
+            hertz{\r
+                dnam{"het"}\r
+                other{"{0} het"}\r
+            }\r
+            kilohertz{\r
+                dnam{"kilohet"}\r
+                other{"{0} kilohet"}\r
+            }\r
+            megahertz{\r
+                dnam{"megahet"}\r
+                other{"{0} megahet"}\r
+            }\r
+        }\r
+        length{\r
+            astronomical-unit{\r
+                dnam{"unit astronomi"}\r
+                other{"{0} unit astronomi"}\r
+            }\r
+            centimeter{\r
+                dnam{"sentimeter"}\r
+                other{"{0} sentimeter"}\r
+                per{"{0} saben sentimeter"}\r
+            }\r
+            decimeter{\r
+                dnam{"desimeter"}\r
+                other{"{0} desimeter"}\r
+            }\r
+            foot{\r
+                dnam{"kaki"}\r
+                other{"{0} kaki"}\r
+                per{"{0} saben kaki"}\r
+            }\r
+            inch{\r
+                dnam{"inci"}\r
+                other{"{0} inci"}\r
+                per{"{0} saben inci"}\r
+            }\r
+            kilometer{\r
+                dnam{"kilometer"}\r
+                other{"{0} kilometer"}\r
+                per{"{0} saben kilometer"}\r
+            }\r
+            light-year{\r
+                dnam{"taun cahya"}\r
+                other{"{0} taun cahya"}\r
+            }\r
+            meter{\r
+                dnam{"meter"}\r
+                other{"{0} meter"}\r
+                per{"{0} saben meter"}\r
+            }\r
+            micrometer{\r
+                dnam{"mikrometer"}\r
+                other{"{0} mikrometer"}\r
+            }\r
+            mile{\r
+                dnam{"mil"}\r
+                other{"{0} mil"}\r
+            }\r
+            mile-scandinavian{\r
+                dnam{"mil-skandinavia"}\r
+                other{"{0} mil-skandinavia"}\r
+            }\r
+            millimeter{\r
+                dnam{"milimeter"}\r
+                other{"{0} milimeter"}\r
+            }\r
+            nanometer{\r
+                dnam{"nanometer"}\r
+                other{"{0} nanometer"}\r
+            }\r
+            nautical-mile{\r
+                dnam{"mil segoro"}\r
+                other{"{0} mil segoro"}\r
+            }\r
+            parsec{\r
+                dnam{"parsek"}\r
+                other{"{0} parsek"}\r
+            }\r
+            picometer{\r
+                dnam{"pikometer"}\r
+                other{"{0} pikometer"}\r
+            }\r
+            point{\r
+                dnam{"poin"}\r
+                other{"{0} poin"}\r
+            }\r
+            yard{\r
+                dnam{"yard"}\r
+                other{"{0} yard"}\r
+            }\r
+        }\r
+        light{\r
+            lux{\r
+                dnam{"luk"}\r
+                other{"{0} luk"}\r
+            }\r
+        }\r
+        mass{\r
+            carat{\r
+                dnam{"karat"}\r
+                other{"{0} karat"}\r
+            }\r
+            gram{\r
+                dnam{"gram"}\r
+                other{"{0} gram"}\r
+                per{"{0} saben gram"}\r
+            }\r
+            kilogram{\r
+                dnam{"kilogram"}\r
+                other{"{0} kilogram"}\r
+                per{"{0} saben kilogram"}\r
+            }\r
+            metric-ton{\r
+                dnam{"metrik ton"}\r
+                other{"{0} metrik ton"}\r
+            }\r
+            microgram{\r
+                dnam{"mikrogram"}\r
+                other{"{0} mikrogram"}\r
+            }\r
+            milligram{\r
+                dnam{"miligram"}\r
+                other{"{0} miligram"}\r
+            }\r
+            ounce{\r
+                dnam{"ons"}\r
+                other{"{0} ons"}\r
+                per{"{0} saben ons"}\r
+            }\r
+            ounce-troy{\r
+                dnam{"troy ons"}\r
+                other{"{0} troy ons"}\r
+            }\r
+            pound{\r
+                dnam{"pon"}\r
+                other{"{0} pon"}\r
+                per{"{0} saben pon"}\r
+            }\r
+            ton{\r
+                dnam{"ton"}\r
+                other{"{0} ton"}\r
+            }\r
+        }\r
+        power{\r
+            gigawatt{\r
+                dnam{"gigawatt"}\r
+                other{"{0} gigawatt"}\r
+            }\r
+            horsepower{\r
+                dnam{"tenogo jaran"}\r
+                other{"{0} tenogo jaran"}\r
+            }\r
+            kilowatt{\r
+                dnam{"kilowatt"}\r
+                other{"{0} kilowatt"}\r
+            }\r
+            megawatt{\r
+                dnam{"megawatt"}\r
+                other{"{0} megawatt"}\r
+            }\r
+            milliwatt{\r
+                dnam{"miliwatt"}\r
+                other{"{0} miliwatt"}\r
+            }\r
+            watt{\r
+                dnam{"watt"}\r
+                other{"{0} watt"}\r
+            }\r
+        }\r
+        pressure{\r
+            atmosphere{\r
+                dnam{"atmosfer"}\r
+                other{"{0} atmosfer"}\r
+            }\r
+            hectopascal{\r
+                dnam{"hektopaskal"}\r
+                other{"{0} hektopaskal"}\r
+            }\r
+            inch-hg{\r
+                dnam{"inci saka raksa"}\r
+                other{"{0} inci saka raksa"}\r
+            }\r
+            millibar{\r
+                dnam{"milibar"}\r
+                other{"{0} milibar"}\r
+            }\r
+            millimeter-of-mercury{\r
+                dnam{"milimeter saka raksa"}\r
+                other{"{0} milimeter saka raksa"}\r
+            }\r
+            pound-per-square-inch{\r
+                dnam{"pon saben inci kuadrat"}\r
+                other{"{0} pon saben inci kuadrat"}\r
+            }\r
+        }\r
+        speed{\r
+            kilometer-per-hour{\r
+                dnam{"kilometer saben jam"}\r
+                other{"{0} kilometer saben jam"}\r
+            }\r
+            knot{\r
+                dnam{"knot"}\r
+                other{"{0} knot"}\r
+            }\r
+            meter-per-second{\r
+                dnam{"meter saben detik"}\r
+                other{"{0} meter saben detik"}\r
+            }\r
+            mile-per-hour{\r
+                dnam{"mil saben jam"}\r
+                other{"{0} mil saben jam"}\r
+            }\r
+        }\r
+        temperature{\r
+            celsius{\r
+                dnam{"derajat celsius"}\r
+                other{"{0} derajat celsius"}\r
+            }\r
+            fahrenheit{\r
+                dnam{"derajat Fahrenhet"}\r
+                other{"{0} derajat Fahrenhet"}\r
+            }\r
+            generic{\r
+                dnam{"°"}\r
+                other{"{0}°"}\r
+            }\r
+            kelvin{\r
+                dnam{"kelvin"}\r
+                other{"{0} kelvin"}\r
+            }\r
+        }\r
+        volume{\r
+            acre-foot{\r
+                dnam{"are-kaki"}\r
+                other{"{0} are-kaki"}\r
+            }\r
+            centiliter{\r
+                dnam{"sentiliter"}\r
+                other{"{0} sentiliter"}\r
+            }\r
+            cubic-centimeter{\r
+                dnam{"sentimeter kubik"}\r
+                other{"{0} sentimeter kubik"}\r
+                per{"{0} saben sentimeter kubik"}\r
+            }\r
+            cubic-foot{\r
+                dnam{"kaki kubik"}\r
+                other{"{0} kaki kubik"}\r
+            }\r
+            cubic-inch{\r
+                dnam{"inci kubik"}\r
+                other{"{0} inci kubik"}\r
+            }\r
+            cubic-kilometer{\r
+                dnam{"kilometer kubik"}\r
+                other{"{0} kilometer kubik"}\r
+            }\r
+            cubic-meter{\r
+                dnam{"meter kubik"}\r
+                other{"{0} meter kubik"}\r
+                per{"{0} saben meter kubik"}\r
+            }\r
+            cubic-mile{\r
+                dnam{"mil kubik"}\r
+                other{"{0} mil kubik"}\r
+            }\r
+            cubic-yard{\r
+                dnam{"yard kubik"}\r
+                other{"{0} yard kubik"}\r
+            }\r
+            cup{\r
+                dnam{"kup"}\r
+                other{"{0} kup"}\r
+            }\r
+            cup-metric{\r
+                dnam{"metrik kup"}\r
+                other{"{0} metrik kup"}\r
+            }\r
+            deciliter{\r
+                dnam{"desiliter"}\r
+                other{"{0} desiliter"}\r
+            }\r
+            fluid-ounce{\r
+                dnam{"ons banyu"}\r
+                other{"{0} ons banyu"}\r
+            }\r
+            gallon{\r
+                dnam{"galon"}\r
+                other{"{0} galon"}\r
+                per{"{0} saben galon"}\r
+            }\r
+            gallon-imperial{\r
+                dnam{"galon inggris"}\r
+                other{"{0} galon inggris"}\r
+                per{"{0} saben galon inggris"}\r
+            }\r
+            hectoliter{\r
+                dnam{"hektoliter"}\r
+                other{"{0} hektoliter"}\r
+            }\r
+            liter{\r
+                dnam{"liter"}\r
+                other{"{0} liter"}\r
+                per{"{0} saben liter"}\r
+            }\r
+            megaliter{\r
+                dnam{"megaliter"}\r
+                other{"{0} megaliter"}\r
+            }\r
+            milliliter{\r
+                dnam{"mililiter"}\r
+                other{"{0} mililiter"}\r
+            }\r
+            pint{\r
+                dnam{"pin"}\r
+                other{"{0} pin"}\r
+            }\r
+            pint-metric{\r
+                dnam{"metrik pin"}\r
+                other{"{0} metrik pin"}\r
+            }\r
+            quart{\r
+                dnam{"seprapat galon"}\r
+                other{"{0} seprapat galon"}\r
+            }\r
+            tablespoon{\r
+                dnam{"sendok mangan"}\r
+                other{"{0} sendok mangan"}\r
+            }\r
+            teaspoon{\r
+                dnam{"sendok teh"}\r
+                other{"{0} sendok teh"}\r
+            }\r
+        }\r
+    }\r
+    unitsNarrow{\r
+        compound{\r
+            per{"{0}/{1}"}\r
+        }\r
+        concentr{\r
+            percent{\r
+                dnam{"%"}\r
+                other{"{0}%"}\r
+            }\r
+        }\r
+        consumption{\r
+            liter-per-100kilometers{\r
+                dnam{"L/100 km"}\r
+                other{"{0} L/100 km"}\r
+            }\r
+        }\r
+        coordinate{\r
+            dnam{"arah"}\r
+            east{"{0} wetan"}\r
+            north{"{0} lor"}\r
+            south{"{0} kidul"}\r
+            west{"{0} kulon"}\r
+        }\r
+        duration{\r
+            day{\r
+                dnam{"dino"}\r
+                other{"{0} dino"}\r
+            }\r
+            hour{\r
+                dnam{"jam"}\r
+                other{"{0}j"}\r
+            }\r
+            millisecond{\r
+                dnam{"md"}\r
+                other{"{0} md"}\r
+            }\r
+            minute{\r
+                dnam{"mnt"}\r
+                other{"{0} mnt"}\r
+            }\r
+            month{\r
+                dnam{"sasi"}\r
+                other{"{0} sasi"}\r
+            }\r
+            second{\r
+                dnam{"dtk"}\r
+                other{"{0} dtk"}\r
+            }\r
+            week{\r
+                dnam{"pekan"}\r
+                other{"{0} pekan"}\r
+            }\r
+            year{\r
+                dnam{"taun"}\r
+                other{"{0} taun"}\r
+            }\r
+        }\r
+        length{\r
+            centimeter{\r
+                dnam{"cm"}\r
+                other{"{0} cm"}\r
+            }\r
+            kilometer{\r
+                dnam{"km"}\r
+                other{"{0} km"}\r
+            }\r
+            meter{\r
+                dnam{"m"}\r
+                other{"{0} m"}\r
+            }\r
+            millimeter{\r
+                dnam{"mm"}\r
+                other{"{0} mm"}\r
+            }\r
+        }\r
+        mass{\r
+            gram{\r
+                dnam{"gram"}\r
+                other{"{0} g"}\r
+            }\r
+            kilogram{\r
+                dnam{"kg"}\r
+                other{"{0} kg"}\r
+            }\r
+        }\r
+        speed{\r
+            kilometer-per-hour{\r
+                dnam{"km/jam"}\r
+                other{"{0} km/jam"}\r
+            }\r
+        }\r
+        temperature{\r
+            celsius{\r
+                dnam{"°C"}\r
+                other{"{0}°C"}\r
+            }\r
+        }\r
+        volume{\r
+            liter{\r
+                dnam{"liter"}\r
+                other{"{0} L"}\r
+            }\r
+        }\r
+    }\r
+    unitsShort{\r
+        acceleration{\r
+            g-force{\r
+                dnam{"tenaga-g"}\r
+                other{"{0} G"}\r
+            }\r
+            meter-per-second-squared{\r
+                dnam{"meter/detik²"}\r
+                other{"{0} meter/detik²"}\r
+            }\r
+        }\r
+        angle{\r
+            arc-minute{\r
+                dnam{"menit saka busur"}\r
+                other{"{0} menit saka busur"}\r
+            }\r
+            arc-second{\r
+                dnam{"detik saka busur"}\r
+                other{"{0} detik saka busur"}\r
+            }\r
+            degree{\r
+                dnam{"derajat"}\r
+                other{"{0}°"}\r
+            }\r
+            radian{\r
+                dnam{"rad"}\r
+                other{"{0} rad"}\r
+            }\r
+            revolution{\r
+                dnam{"rev"}\r
+                other{"{0} rev"}\r
+            }\r
+        }\r
+        area{\r
+            acre{\r
+                dnam{"are"}\r
+                other{"{0} are"}\r
+            }\r
+            hectare{\r
+                dnam{"hektar"}\r
+                other{"{0} ha"}\r
+            }\r
+            square-centimeter{\r
+                dnam{"cm²"}\r
+                other{"{0} cm²"}\r
+                per{"{0}/cm²"}\r
+            }\r
+            square-foot{\r
+                dnam{"kaki persegi"}\r
+                other{"{0} kaki persegi"}\r
+            }\r
+            square-inch{\r
+                dnam{"inci²"}\r
+                other{"{0} inci²"}\r
+                per{"{0}/inci²"}\r
+            }\r
+            square-kilometer{\r
+                dnam{"km²"}\r
+                other{"{0} km²"}\r
+                per{"{0}/km²"}\r
+            }\r
+            square-meter{\r
+                dnam{"m²"}\r
+                other{"{0} m²"}\r
+                per{"{0}/m²"}\r
+            }\r
+            square-mile{\r
+                dnam{"mil²"}\r
+                other{"{0} mil²"}\r
+                per{"{0}/mil²"}\r
+            }\r
+            square-yard{\r
+                dnam{"yard²"}\r
+                other{"{0} yard²"}\r
+            }\r
+        }\r
+        compound{\r
+            per{"{0}/{1}"}\r
+        }\r
+        concentr{\r
+            karat{\r
+                dnam{"karat"}\r
+                other{"{0} kt"}\r
+            }\r
+            milligram-per-deciliter{\r
+                dnam{"mg/dL"}\r
+                other{"{0} mg/dL"}\r
+            }\r
+            millimole-per-liter{\r
+                dnam{"mmol/L"}\r
+                other{"{0} mmol/L"}\r
+            }\r
+            part-per-million{\r
+                dnam{"bagean/yuta"}\r
+                other{"{0} bagean saben yuta"}\r
+            }\r
+            percent{\r
+                dnam{"persen"}\r
+                other{"{0}%"}\r
+            }\r
+            permille{\r
+                dnam{"permil"}\r
+                other{"{0}‰"}\r
+            }\r
+        }\r
+        consumption{\r
+            liter-per-100kilometers{\r
+                dnam{"L/100 km"}\r
+                other{"{0} L/100 km"}\r
+            }\r
+            liter-per-kilometer{\r
+                dnam{"liter/km"}\r
+                other{"{0} L/km"}\r
+            }\r
+            mile-per-gallon{\r
+                dnam{"mil/galon"}\r
+                other{"{0} mpg"}\r
+            }\r
+            mile-per-gallon-imperial{\r
+                dnam{"mil/galon inggris"}\r
+                other{"{0} mpg inggris"}\r
+            }\r
+        }\r
+        coordinate{\r
+            dnam{"arah"}\r
+            east{"{0} wetan"}\r
+            north{"{0} lor"}\r
+            south{"{0} kidul"}\r
+            west{"{0} kulon"}\r
+        }\r
+        digital{\r
+            bit{\r
+                dnam{"bit"}\r
+                other{"{0} bit"}\r
+            }\r
+            byte{\r
+                dnam{"bite"}\r
+                other{"{0} bite"}\r
+            }\r
+            gigabit{\r
+                dnam{"Gbit"}\r
+                other{"{0} Gb"}\r
+            }\r
+            gigabyte{\r
+                dnam{"GBite"}\r
+                other{"{0} GB"}\r
+            }\r
+            kilobit{\r
+                dnam{"kbit"}\r
+                other{"{0} kb"}\r
+            }\r
+            kilobyte{\r
+                dnam{"kBite"}\r
+                other{"{0} kB"}\r
+            }\r
+            megabit{\r
+                dnam{"Mbit"}\r
+                other{"{0} Mb"}\r
+            }\r
+            megabyte{\r
+                dnam{"MBite"}\r
+                other{"{0} MB"}\r
+            }\r
+            petabyte{\r
+                dnam{"PBite"}\r
+                other{"{0} PB"}\r
+            }\r
+            terabit{\r
+                dnam{"Tbit"}\r
+                other{"{0} Tb"}\r
+            }\r
+            terabyte{\r
+                dnam{"TBite"}\r
+                other{"{0} TB"}\r
+            }\r
+        }\r
+        duration{\r
+            century{\r
+                dnam{"abad"}\r
+                other{"{0} abad"}\r
+            }\r
+            day{\r
+                dnam{"dino"}\r
+                other{"{0} dino"}\r
+                per{"{0}/dino"}\r
+            }\r
+            hour{\r
+                dnam{"jam"}\r
+                other{"{0} jam"}\r
+                per{"{0}/jam"}\r
+            }\r
+            microsecond{\r
+                dnam{"μdtk"}\r
+                other{"{0} μd"}\r
+            }\r
+            millisecond{\r
+                dnam{"milidtk"}\r
+                other{"{0} md"}\r
+            }\r
+            minute{\r
+                dnam{"mnt"}\r
+                other{"{0} mnt"}\r
+                per{"{0}/mnt"}\r
+            }\r
+            month{\r
+                dnam{"sasi"}\r
+                other{"{0} sasi"}\r
+                per{"{0}/sasi"}\r
+            }\r
+            nanosecond{\r
+                dnam{"nanodtk"}\r
+                other{"{0} nd"}\r
+            }\r
+            second{\r
+                dnam{"dtk"}\r
+                other{"{0} dtk"}\r
+                per{"{0}/dtk"}\r
+            }\r
+            week{\r
+                dnam{"pekan"}\r
+                other{"{0} pekan"}\r
+                per{"{0}/pekan"}\r
+            }\r
+            year{\r
+                dnam{"taun"}\r
+                other{"{0} taun"}\r
+                per{"{0}/taun"}\r
+            }\r
+        }\r
+        electric{\r
+            ampere{\r
+                dnam{"amper"}\r
+                other{"{0} A"}\r
+            }\r
+            milliampere{\r
+                dnam{"miliamper"}\r
+                other{"{0} mA"}\r
+            }\r
+            ohm{\r
+                dnam{"ohm"}\r
+                other{"{0} Ω"}\r
+            }\r
+            volt{\r
+                dnam{"volt"}\r
+                other{"{0} V"}\r
+            }\r
+        }\r
+        energy{\r
+            calorie{\r
+                dnam{"kal"}\r
+                other{"{0} kal"}\r
+            }\r
+            foodcalorie{\r
+                dnam{"Kal"}\r
+                other{"{0} Kal"}\r
+            }\r
+            joule{\r
+                dnam{"jol"}\r
+                other{"{0} J"}\r
+            }\r
+            kilocalorie{\r
+                dnam{"kkal"}\r
+                other{"{0} kkal"}\r
+            }\r
+            kilojoule{\r
+                dnam{"kilojol"}\r
+                other{"{0} kJ"}\r
+            }\r
+            kilowatt-hour{\r
+                dnam{"kW-jam"}\r
+                other{"{0} kW-jam"}\r
+            }\r
+        }\r
+        frequency{\r
+            gigahertz{\r
+                dnam{"GHz"}\r
+                other{"{0} GHz"}\r
+            }\r
+            hertz{\r
+                dnam{"Hz"}\r
+                other{"{0} Hz"}\r
+            }\r
+            kilohertz{\r
+                dnam{"kHz"}\r
+                other{"{0} kHz"}\r
+            }\r
+            megahertz{\r
+                dnam{"MHz"}\r
+                other{"{0} MHz"}\r
+            }\r
+        }\r
+        length{\r
+            astronomical-unit{\r
+                dnam{"ua"}\r
+                other{"{0} ua"}\r
+            }\r
+            centimeter{\r
+                dnam{"cm"}\r
+                other{"{0} cm"}\r
+                per{"{0}/cm"}\r
+            }\r
+            decimeter{\r
+                dnam{"dm"}\r
+                other{"{0} dm"}\r
+            }\r
+            foot{\r
+                dnam{"kaki"}\r
+                other{"{0} kaki"}\r
+                per{"{0}/kaki"}\r
+            }\r
+            inch{\r
+                dnam{"inci"}\r
+                other{"{0} in"}\r
+                per{"{0}/in"}\r
+            }\r
+            kilometer{\r
+                dnam{"km"}\r
+                other{"{0} km"}\r
+                per{"{0}/km"}\r
+            }\r
+            light-year{\r
+                dnam{"taun cahya"}\r
+                other{"{0} tc"}\r
+            }\r
+            meter{\r
+                dnam{"m"}\r
+                other{"{0} m"}\r
+                per{"{0}/m"}\r
+            }\r
+            micrometer{\r
+                dnam{"µmeter"}\r
+                other{"{0} µm"}\r
+            }\r
+            mile{\r
+                dnam{"mil"}\r
+                other{"{0} mil"}\r
+            }\r
+            mile-scandinavian{\r
+                dnam{"mil-skandinavia"}\r
+                other{"{0} mil-skandinavia"}\r
+            }\r
+            millimeter{\r
+                dnam{"mm"}\r
+                other{"{0} mm"}\r
+            }\r
+            nanometer{\r
+                dnam{"nm"}\r
+                other{"{0} nm"}\r
+            }\r
+            nautical-mile{\r
+                dnam{"mil segoro"}\r
+                other{"{0} mil segoro"}\r
+            }\r
+            parsec{\r
+                dnam{"parsek"}\r
+                other{"{0} ps"}\r
+            }\r
+            picometer{\r
+                dnam{"pm"}\r
+                other{"{0} pm"}\r
+            }\r
+            point{\r
+                dnam{"poin"}\r
+                other{"{0} p"}\r
+            }\r
+            yard{\r
+                dnam{"yard"}\r
+                other{"{0} yard"}\r
+            }\r
+        }\r
+        light{\r
+            lux{\r
+                dnam{"luk"}\r
+                other{"{0} luk"}\r
+            }\r
+        }\r
+        mass{\r
+            carat{\r
+                dnam{"karat"}\r
+                other{"{0} karat"}\r
+            }\r
+            gram{\r
+                dnam{"gram"}\r
+                other{"{0} g"}\r
+                per{"{0}/g"}\r
+            }\r
+            kilogram{\r
+                dnam{"kg"}\r
+                other{"{0} kg"}\r
+                per{"{0}/kg"}\r
+            }\r
+            metric-ton{\r
+                dnam{"metrik ton"}\r
+                other{"{0} metrik ton"}\r
+            }\r
+            microgram{\r
+                dnam{"mikrogram"}\r
+                other{"{0} mikrogram"}\r
+            }\r
+            milligram{\r
+                dnam{"mg"}\r
+                other{"{0} mg"}\r
+            }\r
+            ounce{\r
+                dnam{"ons"}\r
+                other{"{0} ons"}\r
+                per{"{0}/ons"}\r
+            }\r
+            ounce-troy{\r
+                dnam{"troy ons"}\r
+                other{"{0} troy ons"}\r
+            }\r
+            pound{\r
+                dnam{"pon"}\r
+                other{"{0} pon"}\r
+                per{"{0}/pon"}\r
+            }\r
+            ton{\r
+                dnam{"ton"}\r
+                other{"{0} ton"}\r
+            }\r
+        }\r
+        power{\r
+            gigawatt{\r
+                dnam{"GW"}\r
+                other{"{0} GW"}\r
+            }\r
+            horsepower{\r
+                dnam{"tenogo jaran"}\r
+                other{"{0} tenogo jaran"}\r
+            }\r
+            kilowatt{\r
+                dnam{"kW"}\r
+                other{"{0} kW"}\r
+            }\r
+            megawatt{\r
+                dnam{"MW"}\r
+                other{"{0} MW"}\r
+            }\r
+            milliwatt{\r
+                dnam{"mW"}\r
+                other{"{0} mW"}\r
+            }\r
+            watt{\r
+                dnam{"watt"}\r
+                other{"{0} W"}\r
+            }\r
+        }\r
+        pressure{\r
+            atmosphere{\r
+                dnam{"atm"}\r
+                other{"{0} atm"}\r
+            }\r
+            hectopascal{\r
+                dnam{"hPa"}\r
+                other{"{0} hPa"}\r
+            }\r
+            inch-hg{\r
+                dnam{"inHg"}\r
+                other{"{0} inHg"}\r
+            }\r
+            millibar{\r
+                dnam{"mbar"}\r
+                other{"{0} mbar"}\r
+            }\r
+            millimeter-of-mercury{\r
+                dnam{"mm Hg"}\r
+                other{"{0} mm Hg"}\r
+            }\r
+            pound-per-square-inch{\r
+                dnam{"psi"}\r
+                other{"{0} psi"}\r
+            }\r
+        }\r
+        speed{\r
+            kilometer-per-hour{\r
+                dnam{"km/jam"}\r
+                other{"{0} km/jam"}\r
+            }\r
+            knot{\r
+                dnam{"knot"}\r
+                other{"{0} knot"}\r
+            }\r
+            meter-per-second{\r
+                dnam{"meter/dtk"}\r
+                other{"{0} m/dtk"}\r
+            }\r
+            mile-per-hour{\r
+                dnam{"mil/jam"}\r
+                other{"{0} mil/jam"}\r
+            }\r
+        }\r
+        temperature{\r
+            celsius{\r
+                dnam{"°C"}\r
+                other{"{0}°C"}\r
+            }\r
+            fahrenheit{\r
+                dnam{"°F"}\r
+                other{"{0}°F"}\r
+            }\r
+            generic{\r
+                dnam{"°"}\r
+                other{"{0}°"}\r
+            }\r
+            kelvin{\r
+                dnam{"K"}\r
+                other{"{0} K"}\r
+            }\r
+        }\r
+        volume{\r
+            acre-foot{\r
+                dnam{"are-kaki"}\r
+                other{"{0} are-kaki"}\r
+            }\r
+            centiliter{\r
+                dnam{"sentiliter"}\r
+                other{"{0} sentiliter"}\r
+            }\r
+            cubic-centimeter{\r
+                dnam{"cm³"}\r
+                other{"{0} cm³"}\r
+                per{"{0}/cm³"}\r
+            }\r
+            cubic-foot{\r
+                dnam{"kaki³"}\r
+                other{"{0} kaki³"}\r
+            }\r
+            cubic-inch{\r
+                dnam{"inci³"}\r
+                other{"{0} inci³"}\r
+            }\r
+            cubic-kilometer{\r
+                dnam{"km³"}\r
+                other{"{0} km³"}\r
+            }\r
+            cubic-meter{\r
+                dnam{"m³"}\r
+                other{"{0} m³"}\r
+                per{"{0}/m³"}\r
+            }\r
+            cubic-mile{\r
+                dnam{"mil³"}\r
+                other{"{0} mil³"}\r
+            }\r
+            cubic-yard{\r
+                dnam{"yard³"}\r
+                other{"{0} yard³"}\r
+            }\r
+            cup{\r
+                dnam{"kup"}\r
+                other{"{0} kup"}\r
+            }\r
+            cup-metric{\r
+                dnam{"metrik kup"}\r
+                other{"{0} metrik kup"}\r
+            }\r
+            deciliter{\r
+                dnam{"dL"}\r
+                other{"{0} dL"}\r
+            }\r
+            fluid-ounce{\r
+                dnam{"ons banyu"}\r
+                other{"{0} ons banyu"}\r
+            }\r
+            gallon{\r
+                dnam{"galon"}\r
+                other{"{0} galon"}\r
+                per{"{0}/galon"}\r
+            }\r
+            gallon-imperial{\r
+                dnam{"galon inggris"}\r
+                other{"{0} galon inggris"}\r
+                per{"{0}/galon inggris"}\r
+            }\r
+            hectoliter{\r
+                dnam{"hL"}\r
+                other{"{0} hL"}\r
+            }\r
+            liter{\r
+                dnam{"liter"}\r
+                other{"{0} L"}\r
+                per{"{0}/L"}\r
+            }\r
+            megaliter{\r
+                dnam{"ML"}\r
+                other{"{0} ML"}\r
+            }\r
+            milliliter{\r
+                dnam{"mL"}\r
+                other{"{0} mL"}\r
+            }\r
+            pint{\r
+                dnam{"pin"}\r
+                other{"{0} pin"}\r
+            }\r
+            pint-metric{\r
+                dnam{"metrik pin"}\r
+                other{"{0} metrik pin"}\r
+            }\r
+            quart{\r
+                dnam{"seprapat galon"}\r
+                other{"{0} seprapat galon"}\r
+            }\r
+            tablespoon{\r
+                dnam{"sdk mgn"}\r
+                other{"{0} sdk mgn"}\r
+            }\r
+            teaspoon{\r
+                dnam{"sdk teh"}\r
+                other{"{0} sdk teh"}\r
+            }\r
+        }\r
+    }\r
+}\r
index 1c0382e..2aa4649 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 ka{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.50"}\r
     durationUnits{\r
         hm{"h:mm"}\r
         hms{"h:mm:ss"}\r
@@ -123,6 +123,16 @@ ka{
                 one{"{0} ნაწილი მილიონზე"}\r
                 other{"{0} ნაწილი მილიონზე"}\r
             }\r
+            percent{\r
+                dnam{"პროცენტი"}\r
+                one{"{0} პროცენტი"}\r
+                other{"{0} პროცენტი"}\r
+            }\r
+            permille{\r
+                dnam{"პრომილე"}\r
+                one{"{0} პრომილე"}\r
+                other{"{0} პრომილე"}\r
+            }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
@@ -147,6 +157,7 @@ ka{
             }\r
         }\r
         coordinate{\r
+            dnam{"კარდინალური მიმართულება"}\r
             east{"{0} აღმოსავლეთით"}\r
             north{"{0} ჩრდილოეთით"}\r
             south{"{0} სამხრეთით"}\r
@@ -193,6 +204,11 @@ ka{
                 one{"{0} მეგაბაიტი"}\r
                 other{"{0} მეგაბაიტი"}\r
             }\r
+            petabyte{\r
+                dnam{"პბაიტი"}\r
+                one{"{0} პბაიტი"}\r
+                other{"{0} პეტაბაიტი"}\r
+            }\r
             terabit{\r
                 dnam{"ტერაბიტი"}\r
                 one{"{0} ტერაბიტი"}\r
@@ -537,6 +553,11 @@ ka{
             }\r
         }\r
         pressure{\r
+            atmosphere{\r
+                dnam{"ატმოსფეროები"}\r
+                one{"{0} ატმოსფერო"}\r
+                other{"{0} ატმოსფერო"}\r
+            }\r
             hectopascal{\r
                 dnam{"ჰექტოპასკალი"}\r
                 one{"{0} ჰექტოპასკალი"}\r
@@ -785,6 +806,13 @@ ka{
         compound{\r
             per{"{0}/{1}"}\r
         }\r
+        concentr{\r
+            percent{\r
+                dnam{"%"}\r
+                one{"{0}%"}\r
+                other{"{0}%"}\r
+            }\r
+        }\r
         consumption{\r
             liter-per-100kilometers{\r
                 dnam{"ლ/100კმ"}\r
@@ -793,6 +821,7 @@ ka{
             }\r
         }\r
         coordinate{\r
+            dnam{"მიმართულება"}\r
             east{"{0}აღმ."}\r
             north{"{0}ჩრდ."}\r
             south{"{0} სამხრ."}\r
@@ -1092,6 +1121,16 @@ ka{
                 one{"{0} ppm"}\r
                 other{"{0} ppm"}\r
             }\r
+            percent{\r
+                dnam{"%"}\r
+                one{"{0}%"}\r
+                other{"{0}%"}\r
+            }\r
+            permille{\r
+                dnam{"‰"}\r
+                one{"{0}‰"}\r
+                other{"{0}‰"}\r
+            }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
@@ -1116,6 +1155,7 @@ ka{
             }\r
         }\r
         coordinate{\r
+            dnam{"მიმართულება"}\r
             east{"{0}აღმ."}\r
             north{"{0}ჩრდ."}\r
             south{"{0} სამხრ."}\r
@@ -1162,6 +1202,11 @@ ka{
                 one{"{0} მბაიტი"}\r
                 other{"{0} მბაიტი"}\r
             }\r
+            petabyte{\r
+                dnam{"პბაიტი"}\r
+                one{"{0} პბაიტი"}\r
+                other{"{0} პბაიტი"}\r
+            }\r
             terabit{\r
                 dnam{"ტბიტი"}\r
                 one{"{0} ტბიტი"}\r
@@ -1506,6 +1551,11 @@ ka{
             }\r
         }\r
         pressure{\r
+            atmosphere{\r
+                dnam{"ატმ."}\r
+                one{"{0} ატმ."}\r
+                other{"{0} ატმ."}\r
+            }\r
             hectopascal{\r
                 dnam{"ჰპა"}\r
                 one{"{0} ჰპა"}\r
index a82c375..6f837e6 100644 (file)
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 kab{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.94"}\r
 }\r
index c497974..ec1a34d 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 kea{\r
-    Version{"2.1.39.11"}\r
+    Version{"2.1.43.65"}\r
     durationUnits{\r
         hm{"h:mm"}\r
         hms{"h:mm:ss"}\r
index ec0f59e..1b7758c 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 kk{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.88"}\r
     durationUnits{\r
         hm{"h:mm"}\r
         hms{"h:mm:ss"}\r
@@ -123,6 +123,16 @@ kk{
                 one{"{0} миллиондық үлес"}\r
                 other{"{0} миллиондық үлес"}\r
             }\r
+            percent{\r
+                dnam{"пайыз"}\r
+                one{"{0} пайыз"}\r
+                other{"{0} пайыз"}\r
+            }\r
+            permille{\r
+                dnam{"промилле"}\r
+                one{"{0} промилле"}\r
+                other{"{0} промилле"}\r
+            }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
@@ -147,10 +157,11 @@ kk{
             }\r
         }\r
         coordinate{\r
-            east{"{0} Ш"}\r
-            north{"{0} С"}\r
-            south{"{0} О"}\r
-            west{"{0} Б"}\r
+            dnam{"негізгі бағыт"}\r
+            east{"{0} шығыс"}\r
+            north{"{0} солтүстік"}\r
+            south{"{0} оңтүстік"}\r
+            west{"{0} батыс"}\r
         }\r
         digital{\r
             bit{\r
@@ -193,6 +204,11 @@ kk{
                 one{"{0} мегабайт"}\r
                 other{"{0} мегабайт"}\r
             }\r
+            petabyte{\r
+                dnam{"петабайт"}\r
+                one{"{0} петабайт"}\r
+                other{"{0} петабайт"}\r
+            }\r
             terabit{\r
                 dnam{"терабит"}\r
                 one{"{0} терабит"}\r
@@ -537,6 +553,11 @@ kk{
             }\r
         }\r
         pressure{\r
+            atmosphere{\r
+                dnam{"атмосфера"}\r
+                one{"{0} атмосфера"}\r
+                other{"{0} атмосфера"}\r
+            }\r
             hectopascal{\r
                 dnam{"гектопаскаль"}\r
                 one{"{0} гектопаскаль"}\r
@@ -785,6 +806,13 @@ kk{
         compound{\r
             per{"{0}/{1}"}\r
         }\r
+        concentr{\r
+            percent{\r
+                dnam{"%"}\r
+                one{"{0}%"}\r
+                other{"{0}%"}\r
+            }\r
+        }\r
         consumption{\r
             liter-per-100kilometers{\r
                 dnam{"л/100 км"}\r
@@ -793,6 +821,7 @@ kk{
             }\r
         }\r
         coordinate{\r
+            dnam{"бағыт"}\r
             east{"{0} Ш"}\r
             north{"{0} С"}\r
             south{"{0} О"}\r
@@ -864,7 +893,7 @@ kk{
                 other{"{0} ly"}\r
             }\r
             meter{\r
-                dnam{"метр"}\r
+                dnam{"м"}\r
                 one{"{0} м"}\r
                 other{"{0} м"}\r
             }\r
@@ -1092,6 +1121,16 @@ kk{
                 one{"{0} ppm"}\r
                 other{"{0} ppm"}\r
             }\r
+            percent{\r
+                dnam{"пайыз"}\r
+                one{"{0}%"}\r
+                other{"{0}%"}\r
+            }\r
+            permille{\r
+                dnam{"промилле"}\r
+                one{"{0}‰"}\r
+                other{"{0}‰"}\r
+            }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
@@ -1116,6 +1155,7 @@ kk{
             }\r
         }\r
         coordinate{\r
+            dnam{"бағыт"}\r
             east{"{0} Ш"}\r
             north{"{0} С"}\r
             south{"{0} О"}\r
@@ -1162,6 +1202,11 @@ kk{
                 one{"{0} MБ"}\r
                 other{"{0} MБ"}\r
             }\r
+            petabyte{\r
+                dnam{"Пбайт"}\r
+                one{"{0} ПБ"}\r
+                other{"{0} ПБ"}\r
+            }\r
             terabit{\r
                 dnam{"Тбит"}\r
                 one{"{0} Tб"}\r
@@ -1354,7 +1399,7 @@ kk{
                 other{"{0} ж. ж."}\r
             }\r
             meter{\r
-                dnam{"метр"}\r
+                dnam{"м"}\r
                 one{"{0} м"}\r
                 other{"{0} м"}\r
                 per{"{0}/м"}\r
@@ -1506,13 +1551,18 @@ kk{
             }\r
         }\r
         pressure{\r
+            atmosphere{\r
+                dnam{"атм"}\r
+                one{"{0} атм"}\r
+                other{"{0} атм"}\r
+            }\r
             hectopascal{\r
                 dnam{"гектопаскаль"}\r
                 one{"{0} гПа"}\r
                 other{"{0} гПа"}\r
             }\r
             inch-hg{\r
-                dnam{"in Hg"}\r
+                dnam{"сынап бағаны дюймі"}\r
                 one{"{0} inHg"}\r
                 other{"{0} inHg"}\r
             }\r
index 42dc826..cb9d29f 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 kl{\r
-    Version{"2.1.38.69"}\r
+    Version{"2.1.45.12"}\r
     durationUnits{\r
         hm{"h:mm"}\r
         hms{"h:mm:ss"}\r
@@ -11,8 +11,8 @@ kl{
         length{\r
             fathom{\r
                 dnam{"fm"}\r
-                one{"{0} fm"}\r
-                other{"{0} fm"}\r
+                one{"{0} fth"}\r
+                other{"{0} fth"}\r
             }\r
             furlong{\r
                 dnam{"fur"}\r
@@ -39,8 +39,8 @@ kl{
         length{\r
             fathom{\r
                 dnam{"fm"}\r
-                one{"{0} fm"}\r
-                other{"{0} fm"}\r
+                one{"{0} fth"}\r
+                other{"{0} fth"}\r
             }\r
             furlong{\r
                 dnam{"fur"}\r
@@ -93,8 +93,8 @@ kl{
         length{\r
             fathom{\r
                 dnam{"fm"}\r
-                one{"{0} fm"}\r
-                other{"{0} fm"}\r
+                one{"{0} fth"}\r
+                other{"{0} fth"}\r
             }\r
             furlong{\r
                 dnam{"fur"}\r
index 7c90cc2..f36a37d 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 km{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.88"}\r
     durationUnits{\r
         hm{"h:mm"}\r
         hms{"h:mm:ss"}\r
@@ -103,6 +103,14 @@ km{
                 dnam{"ផ្នែកក្នុងមួយលាន"}\r
                 other{"{0} ផ្នែកក្នុងមួយលាន"}\r
             }\r
+            percent{\r
+                dnam{"ភាគរយ"}\r
+                other{"{0} ភាគរយ"}\r
+            }\r
+            permille{\r
+                dnam{"‰"}\r
+                other{"{0}‰"}\r
+            }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
@@ -123,6 +131,7 @@ km{
             }\r
         }\r
         coordinate{\r
+            dnam{"ទិសទាំងបួន"}\r
             east{"{0}កើត"}\r
             north{"{0}ជើង"}\r
             south{"{0}ត្បូង"}\r
@@ -161,6 +170,10 @@ km{
                 dnam{"មេហ្គាបៃ"}\r
                 other{"{0} មេហ្គាបៃ"}\r
             }\r
+            petabyte{\r
+                dnam{"PB"}\r
+                other{"{0} PB"}\r
+            }\r
             terabit{\r
                 dnam{"តេរ៉ាប៊ីត"}\r
                 other{"{0} តេរ៉ាប៊ីត"}\r
@@ -443,6 +456,10 @@ km{
             }\r
         }\r
         pressure{\r
+            atmosphere{\r
+                dnam{"បរិយាកាស"}\r
+                other{"បរិយាកាស {0}"}\r
+            }\r
             hectopascal{\r
                 dnam{"ហិចតូប៉ាស្កាល់"}\r
                 other{"{0} ហិចតូប៉ាស្កាល់"}\r
@@ -644,6 +661,12 @@ km{
         compound{\r
             per{"{0}/{1}"}\r
         }\r
+        concentr{\r
+            percent{\r
+                dnam{"%"}\r
+                other{"{0}%"}\r
+            }\r
+        }\r
         consumption{\r
             liter-per-100kilometers{\r
                 dnam{"L/100km"}\r
@@ -651,6 +674,7 @@ km{
             }\r
         }\r
         coordinate{\r
+            dnam{"ទិស"}\r
             east{"{0}កើត"}\r
             north{"{0}ជើង"}\r
             south{"{0}ត្បូង"}\r
@@ -894,6 +918,14 @@ km{
                 dnam{"ppm"}\r
                 other{"{0} ppm"}\r
             }\r
+            percent{\r
+                dnam{"ភាគរយ"}\r
+                other{"{0}%"}\r
+            }\r
+            permille{\r
+                dnam{"‰"}\r
+                other{"{0}‰"}\r
+            }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
@@ -914,6 +946,7 @@ km{
             }\r
         }\r
         coordinate{\r
+            dnam{"ទិស"}\r
             east{"{0}កើត"}\r
             north{"{0}ជើង"}\r
             south{"{0}ត្បូង"}\r
@@ -952,6 +985,10 @@ km{
                 dnam{"MB"}\r
                 other{"{0} MB"}\r
             }\r
+            petabyte{\r
+                dnam{"PB"}\r
+                other{"{0} PB"}\r
+            }\r
             terabit{\r
                 dnam{"Tb"}\r
                 other{"{0} Tb"}\r
@@ -1234,6 +1271,10 @@ km{
             }\r
         }\r
         pressure{\r
+            atmosphere{\r
+                dnam{"atm"}\r
+                other{"{0} atm"}\r
+            }\r
             hectopascal{\r
                 dnam{"hPa"}\r
                 other{"{0} hPa"}\r
index e44aed6..ac0eea6 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 kn{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.88"}\r
     durationUnits{\r
         hm{"h:mm"}\r
         hms{"h:mm:ss"}\r
@@ -123,6 +123,16 @@ kn{
                 one{"{0} ಪ್ರತಿ ಮಿಲಿಯನ್ ಭಾಗ"}\r
                 other{"{0} ಪ್ರತಿ ಮಿಲಿಯನ್ ಭಾಗಗಳು"}\r
             }\r
+            percent{\r
+                dnam{"ಶೇಕಡಾ"}\r
+                one{"{0} ಶೇಕಡಾ"}\r
+                other{"{0} ಶೇಕಡಾ"}\r
+            }\r
+            permille{\r
+                dnam{"ಪ್ರತಿ ಸಾವಿರಕ್ಕೆ"}\r
+                one{"{0} ಪ್ರತಿ ಸಾವಿರಕ್ಕೆ"}\r
+                other{"{0} ಪ್ರತಿ ಸಾವಿರಕ್ಕೆ"}\r
+            }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
@@ -147,7 +157,8 @@ kn{
             }\r
         }\r
         coordinate{\r
-            east{"{0}ಪೂ"}\r
+            dnam{"ಕಾರ್ಡಿನಲ್ ನಿರ್ದೇಶನ"}\r
+            east{"{0} ಪೂರ್ವ"}\r
             north{"{0}ಉತ್ತರ"}\r
             south{"{0}ದಕ್ಷಿಣ"}\r
             west{"{0}ಪಶ್ಚಿಮ"}\r
@@ -193,6 +204,11 @@ kn{
                 one{"{0} ಮೆಗಾಬೈಟ್‌"}\r
                 other{"{0} ಮೆಗಾಬೈಟ್‌ಗಳು"}\r
             }\r
+            petabyte{\r
+                dnam{"ಪೆಟಾಬೈಟ್‌ಗಳು"}\r
+                one{"{0} ಪೆಟಾಬೈಟ್‌"}\r
+                other{"{0} ಪೆಟಾಬೈಟ್‌ಗಳು"}\r
+            }\r
             terabit{\r
                 dnam{"ಟೆರಾಬಿಟ್‌ಗಳು"}\r
                 one{"{0} ಟೆರಾಬಿಟ್‌"}\r
@@ -257,7 +273,7 @@ kn{
             }\r
             week{\r
                 dnam{"ವಾರಗಳು"}\r
-                one{"{0} ವಾರಗಳು"}\r
+                one{"{0} ವಾರ"}\r
                 other{"{0} ವಾರಗಳು"}\r
                 per{"{0} ಪ್ರತಿ ವಾರಕ್ಕೆ"}\r
             }\r
@@ -542,6 +558,11 @@ kn{
             }\r
         }\r
         pressure{\r
+            atmosphere{\r
+                dnam{"ವಾತಾವರಣಗಳು"}\r
+                one{"{0} ವಾತಾವರಣ"}\r
+                other{"{0} ವಾತಾವರಣಗಳು"}\r
+            }\r
             hectopascal{\r
                 dnam{"ಹೆಕ್ಟೋಪ್ಯಾಸ್ಕಲ್‌ಗಳು"}\r
                 one{"{0} ಹೆಕ್ಟೋಪ್ಯಾಸ್ಕಲ್"}\r
@@ -790,6 +811,13 @@ kn{
         compound{\r
             per{"{0}/{1}"}\r
         }\r
+        concentr{\r
+            percent{\r
+                dnam{"%"}\r
+                one{"{0}%"}\r
+                other{"{0}%"}\r
+            }\r
+        }\r
         consumption{\r
             liter-per-100kilometers{\r
                 dnam{"ಲೀ/100ಕಿ.ಮೀ"}\r
@@ -798,6 +826,7 @@ kn{
             }\r
         }\r
         coordinate{\r
+            dnam{"ದಿಕ್ಕು"}\r
             east{"{0}ಪೂ"}\r
             north{"{0}ಉ"}\r
             south{"{0}ದ"}\r
@@ -1158,6 +1187,16 @@ kn{
                 one{"{0} ಭಾಪ್ರಮಿ"}\r
                 other{"{0} ಭಾಪ್ರಮಿ"}\r
             }\r
+            percent{\r
+                dnam{"ಶೇಕಡಾ"}\r
+                one{"{0}%"}\r
+                other{"{0}%"}\r
+            }\r
+            permille{\r
+                dnam{"ಪ್ರತಿ ಸಾವಿರಕ್ಕೆ"}\r
+                one{"{0}‰"}\r
+                other{"{0}‰"}\r
+            }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
@@ -1182,6 +1221,7 @@ kn{
             }\r
         }\r
         coordinate{\r
+            dnam{"ದಿಕ್ಕು"}\r
             east{"{0}ಪೂ"}\r
             north{"{0}ಉ"}\r
             south{"{0}ದ"}\r
@@ -1228,6 +1268,11 @@ kn{
                 one{"{0} ಮೆ.ಬೈ."}\r
                 other{"{0} ಮೆ.ಬೈ."}\r
             }\r
+            petabyte{\r
+                dnam{"ಪೆಬೈ"}\r
+                one{"{0} ಪೆಬೈ"}\r
+                other{"{0} ಪೆಬೈ"}\r
+            }\r
             terabit{\r
                 dnam{"ಟೆ.ಬಿ."}\r
                 one{"{0} ಟೆ.ಬಿ."}\r
@@ -1577,6 +1622,11 @@ kn{
             }\r
         }\r
         pressure{\r
+            atmosphere{\r
+                dnam{"ವಾತಾವರಣಗಳು"}\r
+                one{"{0} ವಾತಾವರಣ"}\r
+                other{"{0} ವಾತಾವರಣ"}\r
+            }\r
             hectopascal{\r
                 dnam{"ಹೆ.ಪ್ಯಾ."}\r
                 one{"{0} ಹೆ.ಪ್ಯಾ"}\r
index 2bcf9ce..6d3ff74 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 ko{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.91"}\r
     durationUnits{\r
         hm{"h:mm"}\r
         hms{"h:mm:ss"}\r
@@ -103,6 +103,14 @@ ko{
                 dnam{"ppm"}\r
                 other{"{0}ppm"}\r
             }\r
+            percent{\r
+                dnam{"%"}\r
+                other{"{0}%"}\r
+            }\r
+            permille{\r
+                dnam{"‰"}\r
+                other{"{0}‰"}\r
+            }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
@@ -123,6 +131,7 @@ ko{
             }\r
         }\r
         coordinate{\r
+            dnam{"방향"}\r
             east{"동경 {0}"}\r
             north{"북위 {0}"}\r
             south{"남위 {0}"}\r
@@ -161,6 +170,10 @@ ko{
                 dnam{"메가바이트"}\r
                 other{"{0}메가바이트"}\r
             }\r
+            petabyte{\r
+                dnam{"페타바이트"}\r
+                other{"{0}페타바이트"}\r
+            }\r
             terabit{\r
                 dnam{"테라비트"}\r
                 other{"{0}테라비트"}\r
@@ -455,6 +468,10 @@ ko{
             }\r
         }\r
         pressure{\r
+            atmosphere{\r
+                dnam{"atm"}\r
+                other{"{0}atm"}\r
+            }\r
             hectopascal{\r
                 dnam{"헥토파스칼"}\r
                 other{"{0}헥토파스칼"}\r
@@ -661,6 +678,12 @@ ko{
         compound{\r
             per{"{0}/{1}"}\r
         }\r
+        concentr{\r
+            percent{\r
+                dnam{"%"}\r
+                other{"{0}%"}\r
+            }\r
+        }\r
         consumption{\r
             liter-per-100kilometers{\r
                 dnam{"L/100km"}\r
@@ -668,6 +691,7 @@ ko{
             }\r
         }\r
         coordinate{\r
+            dnam{"쪽"}\r
             east{"{0}E"}\r
             north{"{0}N"}\r
             south{"{0}S"}\r
@@ -742,7 +766,7 @@ ko{
             }\r
             fathom{\r
                 dnam{"fm"}\r
-                other{"{0}fm"}\r
+                other{"{0}fth"}\r
             }\r
             foot{\r
                 dnam{"ft"}\r
@@ -1041,6 +1065,14 @@ ko{
                 dnam{"ppm"}\r
                 other{"{0}ppm"}\r
             }\r
+            percent{\r
+                dnam{"%"}\r
+                other{"{0}%"}\r
+            }\r
+            permille{\r
+                dnam{"‰"}\r
+                other{"{0}‰"}\r
+            }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
@@ -1061,6 +1093,7 @@ ko{
             }\r
         }\r
         coordinate{\r
+            dnam{"쪽"}\r
             east{"{0}E"}\r
             north{"{0}N"}\r
             south{"{0}S"}\r
@@ -1099,6 +1132,10 @@ ko{
                 dnam{"MB"}\r
                 other{"{0}MB"}\r
             }\r
+            petabyte{\r
+                dnam{"PB"}\r
+                other{"{0}PB"}\r
+            }\r
             terabit{\r
                 dnam{"Tb"}\r
                 other{"{0}Tb"}\r
@@ -1239,7 +1276,7 @@ ko{
             }\r
             fathom{\r
                 dnam{"fm"}\r
-                other{"{0}fm"}\r
+                other{"{0}fth"}\r
             }\r
             foot{\r
                 dnam{"ft"}\r
@@ -1393,6 +1430,10 @@ ko{
             }\r
         }\r
         pressure{\r
+            atmosphere{\r
+                dnam{"atm"}\r
+                other{"{0}atm"}\r
+            }\r
             hectopascal{\r
                 dnam{"hPa"}\r
                 other{"{0}hPa"}\r
index 79c306f..15856f9 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 kok{\r
-    Version{"2.1.38.69"}\r
+    Version{"2.1.44.88"}\r
     durationUnits{\r
         hm{"h:mm"}\r
         hms{"h:mm:ss"}\r
index a71071b..056fe2e 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 ks{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.41.34"}\r
     units{\r
         duration{\r
             day{\r
index 1982881..58a9807 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 ksh{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.41.34"}\r
     durationUnits{\r
         hm{"h:mm"}\r
         hms{"h:mm:ss"}\r
diff --git a/source/data/unit/ku.txt b/source/data/unit/ku.txt
new file mode 100644 (file)
index 0000000..83492b8
--- /dev/null
@@ -0,0 +1,152 @@
+// © 2016 and later: Unicode, Inc. and others.\r
+// License & terms of use: http://www.unicode.org/copyright.html#License\r
+ku{\r
+    Version{"2.1.44.82"}\r
+    units{\r
+        coordinate{\r
+            east{"{0} rojhilat"}\r
+            north{"{0} bakur"}\r
+            south{"{0} başûr"}\r
+            west{"{0} rojava"}\r
+        }\r
+        duration{\r
+            day{\r
+                dnam{"roj"}\r
+                one{"{0} roj"}\r
+                other{"{0} roj"}\r
+                per{"{0}/roj"}\r
+            }\r
+            hour{\r
+                dnam{"saet"}\r
+                one{"{0} saet"}\r
+                other{"{0} saet"}\r
+                per{"{0}/st"}\r
+            }\r
+            minute{\r
+                dnam{"deqîqe"}\r
+                one{"{0} deqîqe"}\r
+                other{"{0} deqîqe"}\r
+                per{"{0}/d"}\r
+            }\r
+            month{\r
+                dnam{"meh"}\r
+                one{"{0} meh"}\r
+                other{"{0} meh"}\r
+                per{"{0}/meh"}\r
+            }\r
+            second{\r
+                dnam{"sanî"}\r
+                one{"{0} saniye"}\r
+                other{"{0} saniye"}\r
+                per{"{0}/s"}\r
+            }\r
+            week{\r
+                dnam{"hefte"}\r
+                one{"{0} hefte"}\r
+                other{"{0} hefte"}\r
+                per{"{0}/hefte"}\r
+            }\r
+            year{\r
+                dnam{"sal"}\r
+                one{"{0} sal"}\r
+                other{"{0} sal"}\r
+            }\r
+        }\r
+    }\r
+    unitsNarrow{\r
+        coordinate{\r
+            east{"{0}Rh"}\r
+            north{"{0}Bk"}\r
+            south{"{0}Bş"}\r
+            west{"{0}Ra"}\r
+        }\r
+        duration{\r
+            day{\r
+                dnam{"roj"}\r
+                one{"{0}r"}\r
+                other{"{0}r"}\r
+            }\r
+            hour{\r
+                dnam{"saet"}\r
+                one{"{0}st"}\r
+                other{"{0}st"}\r
+            }\r
+            minute{\r
+                dnam{"d"}\r
+                one{"{0}d"}\r
+                other{"{0}d"}\r
+            }\r
+            month{\r
+                dnam{"meh"}\r
+                one{"{0}m"}\r
+                other{"{0}m"}\r
+            }\r
+            second{\r
+                dnam{"s"}\r
+                one{"{0}s"}\r
+                other{"{0}s"}\r
+            }\r
+            week{\r
+                one{"{0}hf"}\r
+                other{"{0}hf"}\r
+            }\r
+            year{\r
+                dnam{"sl"}\r
+                one{"{0}sl"}\r
+                other{"{0}sl"}\r
+            }\r
+        }\r
+    }\r
+    unitsShort{\r
+        coordinate{\r
+            east{"{0} Rh"}\r
+            north{"{0} Bk"}\r
+            south{"{0} Bş"}\r
+            west{"{0} Ra"}\r
+        }\r
+        duration{\r
+            day{\r
+                dnam{"roj"}\r
+                one{"{0} roj"}\r
+                other{"{0} roj"}\r
+                per{"{0}/r"}\r
+            }\r
+            hour{\r
+                dnam{"saet"}\r
+                one{"{0} st"}\r
+                other{"{0} st"}\r
+                per{"{0}/st"}\r
+            }\r
+            minute{\r
+                dnam{"d"}\r
+                one{"{0} d"}\r
+                other{"{0} d"}\r
+                per{"{0}/d"}\r
+            }\r
+            month{\r
+                dnam{"meh"}\r
+                one{"{0} m"}\r
+                other{"{0} m"}\r
+                per{"{0}/m"}\r
+            }\r
+            second{\r
+                dnam{"s"}\r
+                one{"{0} s"}\r
+                other{"{0} s"}\r
+                per{"{0}/s"}\r
+            }\r
+            week{\r
+                dnam{"hf"}\r
+                one{"{0} hf"}\r
+                other{"{0} hf"}\r
+                per{"{0}/hf"}\r
+            }\r
+            year{\r
+                dnam{"sal"}\r
+                one{"{0} sal"}\r
+                other{"{0} sal"}\r
+                per{"{0}/sal"}\r
+            }\r
+        }\r
+    }\r
+}\r
index dd763ab..9fa7cdd 100644 (file)
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 kw{\r
-    Version{"2.1.38.69"}\r
+    Version{"2.1.43.65"}\r
 }\r
index 462f7d8..dd9aa40 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 ky{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.65"}\r
     durationUnits{\r
         hm{"h:mm"}\r
         hms{"h:mm:ss"}\r
@@ -123,6 +123,16 @@ ky{
                 one{"миллионго {0} бөлүк"}\r
                 other{"миллионго {0} бөлүк"}\r
             }\r
+            percent{\r
+                dnam{"пайыз"}\r
+                one{"{0} пайыз"}\r
+                other{"{0} пайыз"}\r
+            }\r
+            permille{\r
+                dnam{"промилле"}\r
+                one{"{0} промилле"}\r
+                other{"{0} промилле"}\r
+            }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
@@ -147,6 +157,7 @@ ky{
             }\r
         }\r
         coordinate{\r
+            dnam{"негизги багыт"}\r
             east{"{0}Ч"}\r
             north{"{0}Тн"}\r
             south{"{0}Тш"}\r
@@ -193,6 +204,11 @@ ky{
                 one{"{0} мегабайт"}\r
                 other{"{0} мегабайт"}\r
             }\r
+            petabyte{\r
+                dnam{"петабайт"}\r
+                one{"{0} петабайт"}\r
+                other{"{0} ПТБ"}\r
+            }\r
             terabit{\r
                 dnam{"терабит"}\r
                 one{"{0} терабит"}\r
@@ -537,6 +553,11 @@ ky{
             }\r
         }\r
         pressure{\r
+            atmosphere{\r
+                dnam{"атмосфера"}\r
+                one{"{0} атмосфера"}\r
+                other{"{0} атм"}\r
+            }\r
             hectopascal{\r
                 dnam{"гектопаскаль"}\r
                 one{"{0} гектопаскаль"}\r
@@ -785,6 +806,13 @@ ky{
         compound{\r
             per{"{1}/{0}"}\r
         }\r
+        concentr{\r
+            percent{\r
+                dnam{"%"}\r
+                one{"{0}%"}\r
+                other{"{0}%"}\r
+            }\r
+        }\r
         consumption{\r
             liter-per-100kilometers{\r
                 dnam{"100 км/л"}\r
@@ -793,6 +821,7 @@ ky{
             }\r
         }\r
         coordinate{\r
+            dnam{"багыт"}\r
             east{"{0}Ч"}\r
             north{"{0}Тн"}\r
             south{"{0}Тш"}\r
@@ -1092,6 +1121,16 @@ ky{
                 one{"{0} ppm"}\r
                 other{"{0} ppm"}\r
             }\r
+            percent{\r
+                dnam{"пайыз"}\r
+                one{"{0}%"}\r
+                other{"{0}%"}\r
+            }\r
+            permille{\r
+                dnam{"промилле"}\r
+                one{"{0}‰"}\r
+                other{"{0}‰"}\r
+            }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
@@ -1116,6 +1155,7 @@ ky{
             }\r
         }\r
         coordinate{\r
+            dnam{"багыт"}\r
             east{"{0}Ч"}\r
             north{"{0}Тн"}\r
             south{"{0}Тш"}\r
@@ -1162,6 +1202,11 @@ ky{
                 one{"{0} МБ"}\r
                 other{"{0} МБ"}\r
             }\r
+            petabyte{\r
+                dnam{"ПТб"}\r
+                one{"{0} Птб"}\r
+                other{"{0} Птб"}\r
+            }\r
             terabit{\r
                 dnam{"Тбит"}\r
                 one{"{0} Тб"}\r
@@ -1506,6 +1551,11 @@ ky{
             }\r
         }\r
         pressure{\r
+            atmosphere{\r
+                dnam{"атм"}\r
+                one{"{0} атм"}\r
+                other{"{0} атмс"}\r
+            }\r
             hectopascal{\r
                 dnam{"гПа"}\r
                 one{"{0} гПа"}\r
index 3f39fd4..34fc4d5 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 lb{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.91"}\r
     durationUnits{\r
         hm{"h:mm"}\r
         hms{"h:mm:ss"}\r
@@ -764,8 +764,8 @@ lb{
             }\r
             fathom{\r
                 dnam{"fm"}\r
-                one{"{0} fm"}\r
-                other{"{0} fm"}\r
+                one{"{0} fth"}\r
+                other{"{0} fth"}\r
             }\r
             foot{\r
                 one{"{0} ft"}\r
@@ -1337,8 +1337,8 @@ lb{
             }\r
             fathom{\r
                 dnam{"fm"}\r
-                one{"{0} fm"}\r
-                other{"{0} fm"}\r
+                one{"{0} fth"}\r
+                other{"{0} fth"}\r
             }\r
             foot{\r
                 dnam{"ft"}\r
index 3b69289..d63cdf7 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 lo{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.50"}\r
     durationUnits{\r
         hm{"h:mm"}\r
         hms{"h:mm:ss"}\r
@@ -103,6 +103,14 @@ lo{
                 dnam{"ພາດຕໍ່ລ້ານ"}\r
                 other{"{0} ພາດຕໍ່ລ້ານ"}\r
             }\r
+            percent{\r
+                dnam{"ເປີເຊັນ"}\r
+                other{"{0} ເປີເຊັນ"}\r
+            }\r
+            permille{\r
+                dnam{"ຕໍ່ພັນ"}\r
+                other{"{0} ຕໍ່ພັນ"}\r
+            }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
@@ -123,6 +131,7 @@ lo{
             }\r
         }\r
         coordinate{\r
+            dnam{"ທິດທາງຕາມລຳດັບ"}\r
             east{"{0}E"}\r
             north{"{0}N"}\r
             south{"{0}S"}\r
@@ -161,6 +170,10 @@ lo{
                 dnam{"MB"}\r
                 other{"{0} MB"}\r
             }\r
+            petabyte{\r
+                dnam{"ເພຕາໄບຕ໌"}\r
+                other{"{0} ເພຕາໄບຕ໌"}\r
+            }\r
             terabit{\r
                 dnam{"Tb"}\r
                 other{"{0} Tb"}\r
@@ -443,6 +456,10 @@ lo{
             }\r
         }\r
         pressure{\r
+            atmosphere{\r
+                dnam{"atmospheres"}\r
+                other{"{0} atmospheres"}\r
+            }\r
             hectopascal{\r
                 dnam{"hectopascals"}\r
                 other{"{0} hectopascals"}\r
@@ -641,6 +658,12 @@ lo{
         compound{\r
             per{"{0}/{1}"}\r
         }\r
+        concentr{\r
+            percent{\r
+                dnam{"%"}\r
+                other{"{0}%"}\r
+            }\r
+        }\r
         consumption{\r
             liter-per-100kilometers{\r
                 dnam{"ລ/ 100 ກມ"}\r
@@ -648,6 +671,7 @@ lo{
             }\r
         }\r
         coordinate{\r
+            dnam{"ທິດທາງ"}\r
             east{"{0}E"}\r
             north{"{0}N"}\r
             south{"{0}S"}\r
@@ -901,6 +925,14 @@ lo{
                 dnam{"ພາດ/ລ້ານ"}\r
                 other{"{0} ppm"}\r
             }\r
+            percent{\r
+                dnam{"ເປີເຊັນ"}\r
+                other{"{0}%"}\r
+            }\r
+            permille{\r
+                dnam{"ຕໍ່ພັນ"}\r
+                other{"{0}‰"}\r
+            }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
@@ -921,6 +953,7 @@ lo{
             }\r
         }\r
         coordinate{\r
+            dnam{"ທິດທາງ"}\r
             east{"{0}E"}\r
             north{"{0}N"}\r
             south{"{0}S"}\r
@@ -959,6 +992,10 @@ lo{
                 dnam{"MB"}\r
                 other{"{0} MB"}\r
             }\r
+            petabyte{\r
+                dnam{"PByte"}\r
+                other{"{0} PB"}\r
+            }\r
             terabit{\r
                 dnam{"Tb"}\r
                 other{"{0} Tb"}\r
@@ -1241,6 +1278,10 @@ lo{
             }\r
         }\r
         pressure{\r
+            atmosphere{\r
+                dnam{"atm"}\r
+                other{"{0} atm"}\r
+            }\r
             hectopascal{\r
                 dnam{"hPA"}\r
                 other{"{0} hPA"}\r
index 54b285f..054545c 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 lrc{\r
-    Version{"2.1.38.69"}\r
+    Version{"2.1.43.65"}\r
     durationUnits{\r
         hm{"h:mm"}\r
         hms{"h:mm:ss"}\r
index 05c6c44..fbe22a9 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 lt{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.91"}\r
     durationUnits{\r
         hm{"hh:mm"}\r
         hms{"hh:mm:ss"}\r
@@ -18,8 +18,8 @@ lt{
             }\r
             meter-per-second-squared{\r
                 dnam{"metrai per kvadratinę sekundę"}\r
-                few{"{0} metrai per kvadratinę sekundę"}\r
-                many{"{0} metro per kvadratinę sekundę"}\r
+                few{"{0} m/s²"}\r
+                many{"{0} m/s²"}\r
                 one{"{0} metras per kvadratinę sekundę"}\r
                 other{"{0} metrų per kvadratinę sekundę"}\r
             }\r
@@ -163,6 +163,20 @@ lt{
                 one{"{0} milijoninė dalis"}\r
                 other{"{0} milijoninių dalių"}\r
             }\r
+            percent{\r
+                dnam{"procentas"}\r
+                few{"{0} %"}\r
+                many{"{0} %"}\r
+                one{"{0} procentas"}\r
+                other{"{0} procentas"}\r
+            }\r
+            permille{\r
+                dnam{"promilė"}\r
+                few{"{0} ‰"}\r
+                many{"{0} ‰"}\r
+                one{"{0} promilė"}\r
+                other{"{0} promilė"}\r
+            }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
@@ -195,6 +209,7 @@ lt{
             }\r
         }\r
         coordinate{\r
+            dnam{"pagrindinė kryptis"}\r
             east{"{0} rytų"}\r
             north{"{0} šiaurės"}\r
             south{"{0} pietų"}\r
@@ -257,6 +272,13 @@ lt{
                 one{"{0} megabaitas"}\r
                 other{"{0} megabaitų"}\r
             }\r
+            petabyte{\r
+                dnam{"pentabaitai"}\r
+                few{"{0} PB"}\r
+                many{"{0} PB"}\r
+                one{"{0} pentabaitas"}\r
+                other{"{0} pentabaitų"}\r
+            }\r
             terabit{\r
                 dnam{"terabitai"}\r
                 few{"{0} terabitai"}\r
@@ -490,7 +512,7 @@ lt{
                 few{"{0} fadomai"}\r
                 many{"{0} fadomo"}\r
                 one{"{0} fadomas"}\r
-                other{"{0} ftm"}\r
+                other{"{0} fth"}\r
             }\r
             foot{\r
                 dnam{"pėdos"}\r
@@ -746,6 +768,13 @@ lt{
             }\r
         }\r
         pressure{\r
+            atmosphere{\r
+                dnam{"atmosferos"}\r
+                few{"{0} atmosferos"}\r
+                many{"{0} atmosferos"}\r
+                one{"{0} atmosfera"}\r
+                other{"{0} atmosferų"}\r
+            }\r
             hectopascal{\r
                 dnam{"hektopaskaliai"}\r
                 few{"{0} hektopaskaliai"}\r
@@ -1103,6 +1132,15 @@ lt{
         compound{\r
             per{"{0}/{1}"}\r
         }\r
+        concentr{\r
+            percent{\r
+                dnam{"%"}\r
+                few{"{0} %"}\r
+                many{"{0} %"}\r
+                one{"{0} %"}\r
+                other{"{0} %"}\r
+            }\r
+        }\r
         consumption{\r
             liter-per-100kilometers{\r
                 dnam{"l/100 km"}\r
@@ -1119,6 +1157,7 @@ lt{
             }\r
         }\r
         coordinate{\r
+            dnam{"kryptis"}\r
             east{"{0} R"}\r
             north{"{0} Š"}\r
             south{"{0} P"}\r
@@ -1227,11 +1266,11 @@ lt{
                 other{"{0} dm"}\r
             }\r
             fathom{\r
-                dnam{"ftm"}\r
-                few{"{0} ftm"}\r
-                many{"{0} ftm"}\r
-                one{"{0} ftm"}\r
-                other{"{0} ftm"}\r
+                dnam{"fth"}\r
+                few{"{0} fth"}\r
+                many{"{0} fth"}\r
+                one{"{0} fth"}\r
+                other{"{0} fth"}\r
             }\r
             foot{\r
                 dnam{"pėda"}\r
@@ -1675,6 +1714,20 @@ lt{
                 one{"{0} ppm"}\r
                 other{"{0} ppm"}\r
             }\r
+            percent{\r
+                dnam{"procentas"}\r
+                few{"{0} %"}\r
+                many{"{0} %"}\r
+                one{"{0} %"}\r
+                other{"{0} %"}\r
+            }\r
+            permille{\r
+                dnam{"promilė"}\r
+                few{"{0} ‰"}\r
+                many{"{0} ‰"}\r
+                one{"{0} ‰"}\r
+                other{"{0} ‰"}\r
+            }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
@@ -1707,6 +1760,7 @@ lt{
             }\r
         }\r
         coordinate{\r
+            dnam{"kryptis"}\r
             east{"{0} R"}\r
             north{"{0} Š"}\r
             south{"{0} P"}\r
@@ -1769,6 +1823,13 @@ lt{
                 one{"{0} MB"}\r
                 other{"{0} MB"}\r
             }\r
+            petabyte{\r
+                dnam{"Petabaitas"}\r
+                few{"{0} PB"}\r
+                many{"{0} PB"}\r
+                one{"{0} PB"}\r
+                other{"{0} PB"}\r
+            }\r
             terabit{\r
                 dnam{"Tb"}\r
                 few{"{0} Tb"}\r
@@ -1998,11 +2059,11 @@ lt{
                 other{"{0} dm"}\r
             }\r
             fathom{\r
-                dnam{"ftm"}\r
-                few{"{0} ftm"}\r
-                many{"{0} ftm"}\r
-                one{"{0} ftm"}\r
-                other{"{0} ftm"}\r
+                dnam{"fth"}\r
+                few{"{0} fth"}\r
+                many{"{0} fth"}\r
+                one{"{0} fth"}\r
+                other{"{0} fth"}\r
             }\r
             foot{\r
                 dnam{"pėda"}\r
@@ -2258,6 +2319,13 @@ lt{
             }\r
         }\r
         pressure{\r
+            atmosphere{\r
+                dnam{"atm"}\r
+                few{"{0} atm"}\r
+                many{"{0} atm"}\r
+                one{"{0} atm"}\r
+                other{"{0} atm"}\r
+            }\r
             hectopascal{\r
                 dnam{"hPa"}\r
                 few{"{0} hPa"}\r
index 44f51ef..3dd3538 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 lv{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.91"}\r
     durationUnits{\r
         hm{"h:mm"}\r
         hms{"h:mm:ss"}\r
@@ -143,6 +143,18 @@ lv{
                 other{"{0} miljonās daļas"}\r
                 zero{"{0} miljono daļu"}\r
             }\r
+            percent{\r
+                dnam{"procents"}\r
+                one{"{0} procents"}\r
+                other{"{0} procents"}\r
+                zero{"{0}%"}\r
+            }\r
+            permille{\r
+                dnam{"promile"}\r
+                one{"{0} promile"}\r
+                other{"{0} promile"}\r
+                zero{"{0}‰"}\r
+            }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
@@ -171,6 +183,7 @@ lv{
             }\r
         }\r
         coordinate{\r
+            dnam{"debespuse"}\r
             east{"{0}A"}\r
             north{"{0}Z"}\r
             south{"{0}D"}\r
@@ -225,6 +238,12 @@ lv{
                 other{"{0} megabaits"}\r
                 zero{"{0} megabaitu"}\r
             }\r
+            petabyte{\r
+                dnam{"petabaiti"}\r
+                one{"{0} petabaitu"}\r
+                other{"{0} petabaiti"}\r
+                zero{"{0} PB"}\r
+            }\r
             terabit{\r
                 dnam{"terabiti"}\r
                 one{"{0} terabits"}\r
@@ -649,6 +668,12 @@ lv{
             }\r
         }\r
         pressure{\r
+            atmosphere{\r
+                dnam{"atmosfēras"}\r
+                one{"{0} atmosfēra"}\r
+                other{"{0} atmosfēras"}\r
+                zero{"{0} atm"}\r
+            }\r
             hectopascal{\r
                 dnam{"hektopaskāli"}\r
                 one{"{0} hektopaskāls"}\r
@@ -951,6 +976,14 @@ lv{
         compound{\r
             per{"{0}/{1}"}\r
         }\r
+        concentr{\r
+            percent{\r
+                dnam{"procents"}\r
+                one{"{0}%"}\r
+                other{"{0}%"}\r
+                zero{"{0}%"}\r
+            }\r
+        }\r
         consumption{\r
             liter-per-100kilometers{\r
                 dnam{"l/100 km"}\r
@@ -960,6 +993,7 @@ lv{
             }\r
         }\r
         coordinate{\r
+            dnam{"debespuse"}\r
             east{"{0}A"}\r
             north{"{0}Z"}\r
             south{"{0}D"}\r
@@ -1062,9 +1096,9 @@ lv{
             }\r
             fathom{\r
                 dnam{"fatomi"}\r
-                one{"{0} fm"}\r
-                other{"{0} fm"}\r
-                zero{"{0} fm"}\r
+                one{"{0} fth"}\r
+                other{"{0} fth"}\r
+                zero{"{0} fth"}\r
             }\r
             foot{\r
                 dnam{"pēdas"}\r
@@ -1495,6 +1529,18 @@ lv{
                 other{"{0} ppm"}\r
                 zero{"{0} ppm"}\r
             }\r
+            percent{\r
+                dnam{"procents"}\r
+                one{"{0}%"}\r
+                other{"{0}%"}\r
+                zero{"{0}%"}\r
+            }\r
+            permille{\r
+                dnam{"promile"}\r
+                one{"{0}‰"}\r
+                other{"{0}‰"}\r
+                zero{"{0}‰"}\r
+            }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
@@ -1523,6 +1569,7 @@ lv{
             }\r
         }\r
         coordinate{\r
+            dnam{"debespuse"}\r
             east{"{0}A"}\r
             north{"{0}Z"}\r
             south{"{0}D"}\r
@@ -1577,6 +1624,12 @@ lv{
                 other{"{0} MB"}\r
                 zero{"{0} MB"}\r
             }\r
+            petabyte{\r
+                dnam{"PB"}\r
+                one{"{0} PB"}\r
+                other{"{0} PB"}\r
+                zero{"{0} PB"}\r
+            }\r
             terabit{\r
                 dnam{"Tb"}\r
                 one{"{0} Tb"}\r
@@ -2001,6 +2054,12 @@ lv{
             }\r
         }\r
         pressure{\r
+            atmosphere{\r
+                dnam{"atm"}\r
+                one{"{0} atm"}\r
+                other{"{0} atm"}\r
+                zero{"{0} atm"}\r
+            }\r
             hectopascal{\r
                 dnam{"hPa"}\r
                 one{"{0} hPa"}\r
index cb14071..96b4157 100644 (file)
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 mg{\r
-    Version{"2.1.39.11"}\r
+    Version{"2.1.43.94"}\r
 }\r
diff --git a/source/data/unit/mi.txt b/source/data/unit/mi.txt
new file mode 100644 (file)
index 0000000..f588f7a
--- /dev/null
@@ -0,0 +1,10 @@
+// © 2016 and later: Unicode, Inc. and others.\r
+// License & terms of use: http://www.unicode.org/copyright.html#License\r
+mi{\r
+    Version{"2.1.44.15"}\r
+    durationUnits{\r
+        hm{"h:mm"}\r
+        hms{"h:mm:ss"}\r
+        ms{"m:ss"}\r
+    }\r
+}\r
index 8ffed67..92fa59e 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 mk{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.65"}\r
     durationUnits{\r
         hm{"h:mm"}\r
         hms{"h:mm:ss"}\r
@@ -79,13 +79,13 @@ mk{
                 dnam{"квадратни километри"}\r
                 one{"{0} квадратен километар"}\r
                 other{"{0} квадратни километри"}\r
-                per{"{0}/km²"}\r
+                per{"{0} по квадратен километар"}\r
             }\r
             square-meter{\r
                 dnam{"квадратни метри"}\r
                 one{"{0} квадратен метар"}\r
                 other{"{0} квадратни метри"}\r
-                per{"{0} Ð¿Ð¾ Ð¼ÐµÑ\82аÑ\80 ÐºÐ²Ð°Ð´Ñ\80аÑ\82ен"}\r
+                per{"{0} Ð¿Ð¾ ÐºÐ²Ð°Ð´Ñ\80аÑ\82ен Ð¼ÐµÑ\82аÑ\80"}\r
             }\r
             square-mile{\r
                 dnam{"квадратни милји"}\r
@@ -104,7 +104,7 @@ mk{
         }\r
         concentr{\r
             karat{\r
-                dnam{"карат"}\r
+                dnam{"карати"}\r
                 one{"{0} карат"}\r
                 other{"{0} карати"}\r
             }\r
@@ -123,6 +123,16 @@ mk{
                 one{"{0} ppm"}\r
                 other{"{0} ppm"}\r
             }\r
+            percent{\r
+                dnam{"процент"}\r
+                one{"{0} процент"}\r
+                other{"{0} проценти"}\r
+            }\r
+            permille{\r
+                dnam{"промил"}\r
+                one{"{0} промили"}\r
+                other{"{0} промили"}\r
+            }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
@@ -147,10 +157,11 @@ mk{
             }\r
         }\r
         coordinate{\r
+            dnam{"насока"}\r
             east{"{0} исток"}\r
-            north{"{0}С"}\r
-            south{"{0}Ј"}\r
-            west{"{0}З"}\r
+            north{"{0} север"}\r
+            south{"{0} југ"}\r
+            west{"{0} запад"}\r
         }\r
         digital{\r
             bit{\r
@@ -193,6 +204,11 @@ mk{
                 one{"{0} мегабајт"}\r
                 other{"{0} мегабајти"}\r
             }\r
+            petabyte{\r
+                dnam{"петабајти"}\r
+                one{"{0} петабајт"}\r
+                other{"{0} петабајти"}\r
+            }\r
             terabit{\r
                 dnam{"терабитови"}\r
                 one{"{0} терабит"}\r
@@ -552,6 +568,11 @@ mk{
             }\r
         }\r
         pressure{\r
+            atmosphere{\r
+                dnam{"атмосфери"}\r
+                one{"{0} атмосфера"}\r
+                other{"{0} атмосфери"}\r
+            }\r
             hectopascal{\r
                 dnam{"хектопаскали"}\r
                 one{"{0} хектопаскал"}\r
@@ -830,6 +851,11 @@ mk{
                 one{"{0} кт"}\r
                 other{"{0} кт"}\r
             }\r
+            percent{\r
+                dnam{"%"}\r
+                one{"{0} %"}\r
+                other{"{0} %"}\r
+            }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
@@ -847,6 +873,7 @@ mk{
             }\r
         }\r
         coordinate{\r
+            dnam{"насока"}\r
             east{"{0}И"}\r
             north{"{0}С"}\r
             south{"{0}Ј"}\r
@@ -1427,6 +1454,16 @@ mk{
                 one{"{0} ppm"}\r
                 other{"{0} ppm"}\r
             }\r
+            percent{\r
+                dnam{"процент"}\r
+                one{"{0} %"}\r
+                other{"{0} %"}\r
+            }\r
+            permille{\r
+                dnam{"промили"}\r
+                one{"{0} ‰"}\r
+                other{"{0} ‰"}\r
+            }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
@@ -1451,6 +1488,7 @@ mk{
             }\r
         }\r
         coordinate{\r
+            dnam{"насока"}\r
             east{"{0}И"}\r
             north{"{0}С"}\r
             south{"{0}Ј"}\r
@@ -1497,6 +1535,11 @@ mk{
                 one{"{0} MB"}\r
                 other{"{0} MB"}\r
             }\r
+            petabyte{\r
+                dnam{"PB"}\r
+                one{"{0} PB"}\r
+                other{"{0} PB"}\r
+            }\r
             terabit{\r
                 dnam{"Tbit"}\r
                 one{"{0} Tb"}\r
@@ -1856,6 +1899,11 @@ mk{
             }\r
         }\r
         pressure{\r
+            atmosphere{\r
+                dnam{"атм"}\r
+                one{"{0} атм"}\r
+                other{"{0} атм"}\r
+            }\r
             hectopascal{\r
                 dnam{"hPa"}\r
                 one{"{0} hPa"}\r
index 90aeada..39c8435 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 ml{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.50"}\r
     durationUnits{\r
         hm{"h:mm"}\r
         hms{"h:mm:ss"}\r
@@ -123,6 +123,14 @@ ml{
                 one{"പാർട്ട് / മില്ല്യൺ"}\r
                 other{"{0} പാർട്‌സ് / മില്ല്യൺ"}\r
             }\r
+            percent{\r
+                dnam{"%"}\r
+                one{"{0}%"}\r
+                other{"{0}%"}\r
+            }\r
+            permille{\r
+                dnam{"പ്രതിമില്ലി"}\r
+            }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
@@ -193,6 +201,10 @@ ml{
                 one{"{0} മെഗാബൈറ്റ്"}\r
                 other{"{0} മെഗാബൈറ്റ്"}\r
             }\r
+            petabyte{\r
+                one{"{0} പെറ്റാബൈറ്റ്"}\r
+                other{"{0} പെറ്റാബൈറ്റ്"}\r
+            }\r
             terabit{\r
                 dnam{"ടെറാബിറ്റ്"}\r
                 one{"{0} ടെറാബിറ്റ്"}\r
@@ -552,6 +564,11 @@ ml{
             }\r
         }\r
         pressure{\r
+            atmosphere{\r
+                dnam{"അറ്റ്‌മോസ്‌ഫിയർ"}\r
+                one{"{0} അറ്റ്‌മോസ്‌ഫിയർ"}\r
+                other{"{0} അറ്റ്‌മോസ്‌ഫിയർ"}\r
+            }\r
             hectopascal{\r
                 dnam{"ഹെക്‌ടോപാസ്‌ക്കൽ"}\r
                 one{"{0} ഹെക്‌ടോപാസ്‌ക്കൽ"}\r
@@ -806,6 +823,13 @@ ml{
         compound{\r
             per{"{0}/{1}"}\r
         }\r
+        concentr{\r
+            percent{\r
+                dnam{"%"}\r
+                one{"{0}%"}\r
+                other{"{0}%"}\r
+            }\r
+        }\r
         consumption{\r
             liter-per-100kilometers{\r
                 dnam{"ലി./100 കി.മീ."}\r
@@ -814,6 +838,7 @@ ml{
             }\r
         }\r
         coordinate{\r
+            dnam{"ദിശ"}\r
             east{"{0}കി."}\r
             north{"{0}വ."}\r
             south{"{0}തെ."}\r
@@ -884,6 +909,11 @@ ml{
             }\r
         }\r
         length{\r
+            astronomical-unit{\r
+                dnam{"ജ്യോ.യൂ."}\r
+                one{"{0}ജ്യോ.യൂ"}\r
+                other{"{0}ജ്യോ.യൂ"}\r
+            }\r
             centimeter{\r
                 dnam{"സെ.മീ."}\r
                 one{"{0} സെ.മീ."}\r
@@ -959,6 +989,11 @@ ml{
                 one{"{0} നാ.മീ."}\r
                 other{"{0} നാ.മീ."}\r
             }\r
+            nautical-mile{\r
+                dnam{"നോ.മൈ."}\r
+                one{"{0}ന.മൈ."}\r
+                other{"{0}ന.മൈ."}\r
+            }\r
             parsec{\r
                 dnam{"പാർസെക്"}\r
                 one{"{0} പാ.സെ."}\r
@@ -1019,6 +1054,9 @@ ml{
                 other{"{0} ഔ"}\r
                 per{"{0}/ഔ."}\r
             }\r
+            ounce-troy{\r
+                dnam{"ട്രോ.ഔ."}\r
+            }\r
             pound{\r
                 dnam{"പൗ"}\r
                 one{"{0} പൗ"}\r
@@ -1071,6 +1109,9 @@ ml{
                 one{"{0}മിമീ.മെ."}\r
                 other{"{0}മിമീ.മെ."}\r
             }\r
+            pound-per-square-inch{\r
+                dnam{"പിഎസ്ഐ"}\r
+            }\r
         }\r
         speed{\r
             kilometer-per-hour{\r
@@ -1248,6 +1289,16 @@ ml{
                 one{"{0} പാ.പെ.മി."}\r
                 other{"{0} പാ.പെ.മി."}\r
             }\r
+            percent{\r
+                dnam{"%"}\r
+                one{"{0}%"}\r
+                other{"{0}%"}\r
+            }\r
+            permille{\r
+                dnam{"‰"}\r
+                one{"{0}‰"}\r
+                other{"{0}‰"}\r
+            }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
@@ -1272,10 +1323,11 @@ ml{
             }\r
         }\r
         coordinate{\r
-            east{"{0}കി."}\r
-            north{"{0}വ."}\r
-            south{"{0}തെ."}\r
-            west{"{0}പ."}\r
+            dnam{"ദിശ"}\r
+            east{"{0} കി."}\r
+            north{"{0} വ."}\r
+            south{"{0} തെ."}\r
+            west{"{0} പ."}\r
         }\r
         digital{\r
             bit{\r
@@ -1318,6 +1370,10 @@ ml{
                 one{"{0} മെ.ബൈ."}\r
                 other{"{0} മെ.ബൈ."}\r
             }\r
+            petabyte{\r
+                one{"{0} PB"}\r
+                other{"{0} PB"}\r
+            }\r
             terabit{\r
                 dnam{"ടെ.ബിറ്റ്"}\r
                 one{"{0} ടെ.ബി."}\r
@@ -1677,6 +1733,11 @@ ml{
             }\r
         }\r
         pressure{\r
+            atmosphere{\r
+                dnam{"atm"}\r
+                one{"{0} atm"}\r
+                other{"{0} atm"}\r
+            }\r
             hectopascal{\r
                 dnam{"ഹെ.പാ."}\r
                 one{"{0} ഹെ.പാ."}\r
index f67e764..9282b50 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 mn{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.94"}\r
     durationUnits{\r
         hm{"hh:mm"}\r
         hms{"hh:mm:ss"}\r
@@ -123,6 +123,14 @@ mn{
                 one{"{0} хэсэг/саяд"}\r
                 other{"{0} хэсэг/саяд"}\r
             }\r
+            percent{\r
+                dnam{"хувь"}\r
+                one{"{0} хувь"}\r
+                other{"{0} хувь"}\r
+            }\r
+            permille{\r
+                dnam{"‰"}\r
+            }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
@@ -193,6 +201,11 @@ mn{
                 one{"{0} мегабайт"}\r
                 other{"{0} мегабайт"}\r
             }\r
+            petabyte{\r
+                dnam{"петабайт"}\r
+                one{"{0} петабайт"}\r
+                other{"{0} петабайт"}\r
+            }\r
             terabit{\r
                 dnam{"терабит"}\r
                 one{"{0} терабит"}\r
@@ -537,6 +550,11 @@ mn{
             }\r
         }\r
         pressure{\r
+            atmosphere{\r
+                dnam{"уур амьсгал"}\r
+                one{"{0} уур амьсгал"}\r
+                other{"{0} уур амьсгал"}\r
+            }\r
             hectopascal{\r
                 dnam{"гектопаскал"}\r
                 one{"{0} гектопаскал"}\r
@@ -785,6 +803,13 @@ mn{
         compound{\r
             per{"{0}/{1}"}\r
         }\r
+        concentr{\r
+            percent{\r
+                dnam{"%"}\r
+                one{"{0}%"}\r
+                other{"{0}%"}\r
+            }\r
+        }\r
         consumption{\r
             liter-per-100kilometers{\r
                 dnam{"л/100км"}\r
@@ -793,6 +818,7 @@ mn{
             }\r
         }\r
         coordinate{\r
+            dnam{"чиглэл"}\r
             east{"{0}Зүүн"}\r
             north{"{0}Умард"}\r
             south{"{0}Өмнөд"}\r
@@ -1092,6 +1118,16 @@ mn{
                 one{"{0} ppm"}\r
                 other{"{0} ppm"}\r
             }\r
+            percent{\r
+                dnam{"хувь"}\r
+                one{"{0}%"}\r
+                other{"{0}%"}\r
+            }\r
+            permille{\r
+                dnam{"‰"}\r
+                one{"{0}‰"}\r
+                other{"{0}‰"}\r
+            }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
@@ -1116,6 +1152,7 @@ mn{
             }\r
         }\r
         coordinate{\r
+            dnam{"чиглэл"}\r
             east{"{0}Зүүн"}\r
             north{"{0}Умард"}\r
             south{"{0}Өмнөд"}\r
@@ -1162,6 +1199,11 @@ mn{
                 one{"{0} МБ"}\r
                 other{"{0} МБ"}\r
             }\r
+            petabyte{\r
+                dnam{"ПБайт"}\r
+                one{"{0} ПБ"}\r
+                other{"{0} ПБ"}\r
+            }\r
             terabit{\r
                 dnam{"Тбит"}\r
                 one{"{0} Тб"}\r
@@ -1506,6 +1548,11 @@ mn{
             }\r
         }\r
         pressure{\r
+            atmosphere{\r
+                dnam{"atm"}\r
+                one{"{0} atm"}\r
+                other{"{0} atm"}\r
+            }\r
             hectopascal{\r
                 dnam{"гПа"}\r
                 one{"{0} гПа"}\r
index 6dfa980..516a31b 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 mr{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.65"}\r
     durationUnits{\r
         hm{"h:mm"}\r
         hms{"h:mm:ss"}\r
@@ -123,6 +123,16 @@ mr{
                 one{"{0} भाग प्रति दशलक्ष"}\r
                 other{"{0} भाग प्रति दशलक्ष"}\r
             }\r
+            percent{\r
+                dnam{"टक्के"}\r
+                one{"{0} टक्के"}\r
+                other{"{0} टक्के"}\r
+            }\r
+            permille{\r
+                dnam{"प्रतिमैल"}\r
+                one{"{0} प्रतिमैल"}\r
+                other{"{0} प्रतिमैल"}\r
+            }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
@@ -147,6 +157,7 @@ mr{
             }\r
         }\r
         coordinate{\r
+            dnam{"मुख्य दिशा"}\r
             east{"{0} पूर्व"}\r
             north{"{0} उत्तर"}\r
             south{"{0} दक्षिण"}\r
@@ -193,6 +204,11 @@ mr{
                 one{"{0} मेगाबाइट"}\r
                 other{"{0} मेगाबाइट"}\r
             }\r
+            petabyte{\r
+                dnam{"पेटाबाइट्स"}\r
+                one{"{0} पेटाबाइट"}\r
+                other{"{0} पेटाबाइट्स"}\r
+            }\r
             terabit{\r
                 dnam{"टेराबिट"}\r
                 one{"{0} टेराबिट"}\r
@@ -542,6 +558,11 @@ mr{
             }\r
         }\r
         pressure{\r
+            atmosphere{\r
+                dnam{"वातावरण"}\r
+                one{"{0} वातावरण"}\r
+                other{"{0} वातावरण"}\r
+            }\r
             hectopascal{\r
                 dnam{"हेक्टोपास्कल"}\r
                 one{"{0} हेक्टोपास्कल"}\r
@@ -795,6 +816,13 @@ mr{
         compound{\r
             per{"{0}/{1}"}\r
         }\r
+        concentr{\r
+            percent{\r
+                dnam{"%"}\r
+                one{"{0}%"}\r
+                other{"{0}%"}\r
+            }\r
+        }\r
         consumption{\r
             liter-per-100kilometers{\r
                 dnam{"ली/100किमी"}\r
@@ -803,6 +831,7 @@ mr{
             }\r
         }\r
         coordinate{\r
+            dnam{"दिशा"}\r
             east{"{0}पू"}\r
             north{"{0}उ"}\r
             south{"{0}द"}\r
@@ -1207,6 +1236,16 @@ mr{
                 one{"{0} ppm"}\r
                 other{"{0} ppm"}\r
             }\r
+            percent{\r
+                dnam{"टक्के"}\r
+                one{"{0}%"}\r
+                other{"{0}%"}\r
+            }\r
+            permille{\r
+                dnam{"प्रतिमैल"}\r
+                one{"{0}‰"}\r
+                other{"{0}‰"}\r
+            }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
@@ -1231,6 +1270,7 @@ mr{
             }\r
         }\r
         coordinate{\r
+            dnam{"दिशा"}\r
             east{"{0}पू"}\r
             north{"{0}उ"}\r
             south{"{0}द"}\r
@@ -1277,6 +1317,11 @@ mr{
                 one{"{0} MB"}\r
                 other{"{0} MB"}\r
             }\r
+            petabyte{\r
+                dnam{"PByte"}\r
+                one{"{0} PB"}\r
+                other{"{0} PB"}\r
+            }\r
             terabit{\r
                 dnam{"Tbit"}\r
                 one{"{0} Tb"}\r
@@ -1626,6 +1671,11 @@ mr{
             }\r
         }\r
         pressure{\r
+            atmosphere{\r
+                dnam{"atm"}\r
+                one{"{0} atm"}\r
+                other{"{0} atm"}\r
+            }\r
             hectopascal{\r
                 dnam{"hPa"}\r
                 one{"{0} hPa"}\r
index a08d1ae..aef81f3 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 ms{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.91"}\r
     durationUnits{\r
         hm{"h:mm"}\r
         hms{"h:mm:ss"}\r
@@ -103,6 +103,14 @@ ms{
                 dnam{"bahagian setiap juta"}\r
                 other{"{0} bahagian setiap juta"}\r
             }\r
+            percent{\r
+                dnam{"peratus"}\r
+                other{"{0} peratus"}\r
+            }\r
+            permille{\r
+                dnam{"per seribu"}\r
+                other{"{0} per seribu"}\r
+            }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
@@ -123,6 +131,7 @@ ms{
             }\r
         }\r
         coordinate{\r
+            dnam{"arah mata angin"}\r
             east{"{0} timur"}\r
             north{"{0} utara"}\r
             south{"{0} selatan"}\r
@@ -161,6 +170,10 @@ ms{
                 dnam{"megabait"}\r
                 other{"{0} megabait"}\r
             }\r
+            petabyte{\r
+                dnam{"petabait"}\r
+                other{"{0} petabait"}\r
+            }\r
             terabit{\r
                 dnam{"terabit"}\r
                 other{"{0} terabit"}\r
@@ -455,6 +468,10 @@ ms{
             }\r
         }\r
         pressure{\r
+            atmosphere{\r
+                dnam{"atmosfera"}\r
+                other{"{0} atmosfera"}\r
+            }\r
             hectopascal{\r
                 dnam{"hektopascal"}\r
                 other{"{0} hektopascal"}\r
@@ -661,6 +678,12 @@ ms{
         compound{\r
             per{"{0}/{1}"}\r
         }\r
+        concentr{\r
+            percent{\r
+                dnam{"%"}\r
+                other{"{0}%"}\r
+            }\r
+        }\r
         consumption{\r
             liter-per-100kilometers{\r
                 dnam{"L/100km"}\r
@@ -668,6 +691,7 @@ ms{
             }\r
         }\r
         coordinate{\r
+            dnam{"arah"}\r
             east{"{0}E"}\r
             north{"{0}N"}\r
             south{"{0}S"}\r
@@ -742,7 +766,7 @@ ms{
             }\r
             fathom{\r
                 dnam{"fathom"}\r
-                other{"{0} fm"}\r
+                other{"{0} fth"}\r
             }\r
             foot{\r
                 dnam{"ka"}\r
@@ -1041,6 +1065,14 @@ ms{
                 dnam{"ppm"}\r
                 other{"{0} ppm"}\r
             }\r
+            percent{\r
+                dnam{"peratus"}\r
+                other{"{0}%"}\r
+            }\r
+            permille{\r
+                dnam{"per seribu"}\r
+                other{"{0}‰"}\r
+            }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
@@ -1061,6 +1093,7 @@ ms{
             }\r
         }\r
         coordinate{\r
+            dnam{"arah"}\r
             east{"{0}E"}\r
             north{"{0}N"}\r
             south{"{0}S"}\r
@@ -1099,6 +1132,10 @@ ms{
                 dnam{"MBait"}\r
                 other{"{0} MB"}\r
             }\r
+            petabyte{\r
+                dnam{"PB"}\r
+                other{"{0} PB"}\r
+            }\r
             terabit{\r
                 dnam{"Tbit"}\r
                 other{"{0} Tb"}\r
@@ -1239,7 +1276,7 @@ ms{
             }\r
             fathom{\r
                 dnam{"fathom"}\r
-                other{"{0} ftm"}\r
+                other{"{0} fth"}\r
             }\r
             foot{\r
                 dnam{"kaki"}\r
@@ -1393,6 +1430,10 @@ ms{
             }\r
         }\r
         pressure{\r
+            atmosphere{\r
+                dnam{"atm"}\r
+                other{"{0} atm"}\r
+            }\r
             hectopascal{\r
                 dnam{"hPa"}\r
                 other{"{0} hPa"}\r
index bc626e4..eaeb71f 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 mt{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.94"}\r
     units{\r
         angle{\r
             arc-minute{\r
index a92efd7..12ea676 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 my{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.88"}\r
     durationUnits{\r
         hm{"h:mm"}\r
         hms{"h:mm:ss"}\r
@@ -103,6 +103,14 @@ my{
                 dnam{"တစ်သန်းပုံ တစ်ပုံ"}\r
                 other{"တစ်သန်းပုံ {0} ပုံ"}\r
             }\r
+            percent{\r
+                dnam{"ရာခိုင်နှုန်း"}\r
+                other{"{0} ရာခိုင်နှုန်း"}\r
+            }\r
+            permille{\r
+                dnam{"ထောင်လီစိတ်"}\r
+                other{"{0} ထောင်လီစိတ်"}\r
+            }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
@@ -123,6 +131,7 @@ my{
             }\r
         }\r
         coordinate{\r
+            dnam{"အရပ် လေးမျက်နှာ"}\r
             east{"{0} အရှေ့"}\r
             north{"{0} မြောက်"}\r
             south{"{0} တောင်"}\r
@@ -161,6 +170,10 @@ my{
                 dnam{"မီဂါဘိုက်"}\r
                 other{"{0} မီဂါဘိုက်"}\r
             }\r
+            petabyte{\r
+                dnam{"ပက်တာဘိုက်"}\r
+                other{"{0} ပက်တာဘိုက်"}\r
+            }\r
             terabit{\r
                 dnam{"တယ်ရာဘစ်"}\r
                 other{"{0} တယ်ရာဘစ်"}\r
@@ -287,8 +300,8 @@ my{
         }\r
         length{\r
             astronomical-unit{\r
-                dnam{"á\80\94á\80\80á\80¹á\80\81á\80\90á\80¹á\80\90á\80\97á\80±á\80\92á\80\9aá\80°á\80\94á\80\85á\80º"}\r
-                other{"{0} á\80\94á\80\80á\80¹á\80\81á\80\90á\80¹á\80\90á\80\97á\80±á\80\92á\80\9aá\80°á\80\94á\80\85á\80º"}\r
+                dnam{"á\80\94á\80\80á\80ºá\80\81á\80\90á\80ºá\80\90á\80\97á\80\92á\80±á\80\9aá\80°á\80\94á\80\88"}\r
+                other{"{0} á\80\94á\80\80á\80ºá\80\81á\80\90á\80ºá\80\90á\80\97á\80\92á\80±á\80\9aá\80°á\80\94á\80\88"}\r
             }\r
             centimeter{\r
                 dnam{"စင်တီမီတာ"}\r
@@ -443,6 +456,10 @@ my{
             }\r
         }\r
         pressure{\r
+            atmosphere{\r
+                dnam{"ကမ္ဘာ့လေထု"}\r
+                other{"{0} ကမ္ဘာ့လေထု"}\r
+            }\r
             hectopascal{\r
                 dnam{"ဟက်တိုပါစကယ်"}\r
                 other{"{0} ဟက်တိုပါစကယ်"}\r
@@ -644,6 +661,12 @@ my{
         compound{\r
             per{"{0}/{1}"}\r
         }\r
+        concentr{\r
+            percent{\r
+                dnam{"%"}\r
+                other{"{0}%"}\r
+            }\r
+        }\r
         consumption{\r
             liter-per-100kilometers{\r
                 dnam{"L/100km"}\r
@@ -651,6 +674,7 @@ my{
             }\r
         }\r
         coordinate{\r
+            dnam{"လမ်းကြောင်း"}\r
             east{"{0}E"}\r
             north{"{0}N"}\r
             south{"{0}S"}\r
@@ -894,6 +918,14 @@ my{
                 dnam{"တစ်သန်းပုံ တစ်ပုံ"}\r
                 other{"{0} ppm"}\r
             }\r
+            percent{\r
+                dnam{"%"}\r
+                other{"{0}%"}\r
+            }\r
+            permille{\r
+                dnam{"‰"}\r
+                other{"{0}‰"}\r
+            }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
@@ -914,6 +946,7 @@ my{
             }\r
         }\r
         coordinate{\r
+            dnam{"လမ်းကြောင်း"}\r
             east{"{0} E"}\r
             north{"{0} N"}\r
             south{"{0} S"}\r
@@ -952,6 +985,10 @@ my{
                 dnam{"မီဂါဘိုက်"}\r
                 other{"{0} MB"}\r
             }\r
+            petabyte{\r
+                dnam{"PB"}\r
+                other{"{0} PB"}\r
+            }\r
             terabit{\r
                 dnam{"တယ်ရာဘစ်"}\r
                 other{"{0} Tb"}\r
@@ -1078,7 +1115,7 @@ my{
         }\r
         length{\r
             astronomical-unit{\r
-                dnam{"á\80\94á\80\80á\80¹á\80\81á\80\90á\80¹á\80\90á\80\97á\80±á\80\92á\80\9aá\80°á\80\94á\80\85á\80º"}\r
+                dnam{"á\80\94á\80\80á\80ºá\80\81á\80\90á\80ºá\80\90á\80\97á\80\92á\80±á\80\9aá\80°á\80\94á\80\88"}\r
                 other{"{0} au"}\r
             }\r
             centimeter{\r
@@ -1234,6 +1271,10 @@ my{
             }\r
         }\r
         pressure{\r
+            atmosphere{\r
+                dnam{"atm"}\r
+                other{"{0} atm"}\r
+            }\r
             hectopascal{\r
                 dnam{"hPa"}\r
                 other{"{0} hPa"}\r
@@ -1352,8 +1393,8 @@ my{
                 per{"{0}/gal US"}\r
             }\r
             gallon-imperial{\r
-                dnam{"á\80\9aá\80°á\80\80á\80±á\80\82ါလံ"}\r
-                other{"{0} á\80\9aá\80°á\80\80á\80±á\80\82ါလံ"}\r
+                dnam{"á\80\9aá\80°á\80\80á\80\82á\80±ါလံ"}\r
+                other{"{0} á\80\9aá\80°á\80\80á\80\82á\80±ါလံ"}\r
                 per{"{0}/gal Imp."}\r
             }\r
             hectoliter{\r
index e8c1fef..9729fb2 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 mzn{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.41.34"}\r
     durationUnits{\r
         hm{"h:mm"}\r
         hms{"h:mm:ss"}\r
index a31c21b..2ceb655 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 nb{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.2"}\r
     durationUnits{\r
         hm{"h:mm"}\r
         hms{"h:mm:ss"}\r
@@ -123,6 +123,16 @@ nb{
                 one{"{0} del per million"}\r
                 other{"{0} deler per million"}\r
             }\r
+            percent{\r
+                dnam{"prosent"}\r
+                one{"{0} prosent"}\r
+                other{"{0} prosent"}\r
+            }\r
+            permille{\r
+                dnam{"promille"}\r
+                one{"{0} promille"}\r
+                other{"{0} promille"}\r
+            }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
@@ -147,6 +157,7 @@ nb{
             }\r
         }\r
         coordinate{\r
+            dnam{"himmelretning"}\r
             east{"{0} øst"}\r
             north{"{0} nord"}\r
             south{"{0} sør"}\r
@@ -193,6 +204,11 @@ nb{
                 one{"{0} megabyte"}\r
                 other{"{0} megabyte"}\r
             }\r
+            petabyte{\r
+                dnam{"petabyte"}\r
+                one{"{0} petabyte"}\r
+                other{"{0} petabyte"}\r
+            }\r
             terabit{\r
                 dnam{"terabit"}\r
                 one{"{0} terabit"}\r
@@ -537,6 +553,11 @@ nb{
             }\r
         }\r
         pressure{\r
+            atmosphere{\r
+                dnam{"atmosfærer"}\r
+                one{"{0} atmosfære"}\r
+                other{"{0} atmosfærer"}\r
+            }\r
             hectopascal{\r
                 dnam{"hektopascal"}\r
                 one{"{0} hektopascal"}\r
@@ -791,6 +812,13 @@ nb{
         compound{\r
             per{"{0}/{1}"}\r
         }\r
+        concentr{\r
+            percent{\r
+                dnam{"%"}\r
+                one{"{0} %"}\r
+                other{"{0} %"}\r
+            }\r
+        }\r
         consumption{\r
             liter-per-100kilometers{\r
                 dnam{"l/100km"}\r
@@ -799,6 +827,7 @@ nb{
             }\r
         }\r
         coordinate{\r
+            dnam{"retning"}\r
             east{"{0}Ø"}\r
             north{"{0}N"}\r
             south{"{0}S"}\r
@@ -1214,6 +1243,16 @@ nb{
                 one{"{0} ppm"}\r
                 other{"{0} ppm"}\r
             }\r
+            percent{\r
+                dnam{"prosent"}\r
+                one{"{0} %"}\r
+                other{"{0} %"}\r
+            }\r
+            permille{\r
+                dnam{"promille"}\r
+                one{"{0} ‰"}\r
+                other{"{0} ‰"}\r
+            }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
@@ -1238,6 +1277,7 @@ nb{
             }\r
         }\r
         coordinate{\r
+            dnam{"retning"}\r
             east{"{0} Ø"}\r
             north{"{0} N"}\r
             south{"{0} S"}\r
@@ -1284,6 +1324,11 @@ nb{
                 one{"{0} MB"}\r
                 other{"{0} MB"}\r
             }\r
+            petabyte{\r
+                dnam{"PB"}\r
+                one{"{0} PB"}\r
+                other{"{0} PB"}\r
+            }\r
             terabit{\r
                 dnam{"Tb"}\r
                 one{"{0} Tb"}\r
@@ -1628,6 +1673,11 @@ nb{
             }\r
         }\r
         pressure{\r
+            atmosphere{\r
+                dnam{"atm"}\r
+                one{"{0} atm"}\r
+                other{"{0} atm"}\r
+            }\r
             hectopascal{\r
                 dnam{"hPa"}\r
                 one{"{0} hPa"}\r
index 878592a..ced70e4 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 ne{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.50"}\r
     durationUnits{\r
         hm{"h:mm"}\r
         hms{"h:mm:ss"}\r
@@ -123,6 +123,16 @@ ne{
                 one{"{0} ppm"}\r
                 other{"{0} ppm"}\r
             }\r
+            percent{\r
+                dnam{"प्रतिशत"}\r
+                one{"{0} प्रतिशत"}\r
+                other{"{0} प्रतिशत"}\r
+            }\r
+            permille{\r
+                dnam{"प्रति मिल"}\r
+                one{"{0} प्रति मिल"}\r
+                other{"{0} प्रति मिल"}\r
+            }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
@@ -147,6 +157,7 @@ ne{
             }\r
         }\r
         coordinate{\r
+            dnam{"मुख्य दिशा"}\r
             east{"{0}पूर्व"}\r
             north{"{0}उत्तर"}\r
             south{"{0}दक्षिण"}\r
@@ -193,6 +204,11 @@ ne{
                 one{"{0}मेगाबाइट"}\r
                 other{"{0}मेगाबाइट"}\r
             }\r
+            petabyte{\r
+                dnam{"पिटाबाइटहरू"}\r
+                one{"{0} पिटाबाइट"}\r
+                other{"{0} पिटाबाइटहरू"}\r
+            }\r
             terabit{\r
                 dnam{"टेराबिट"}\r
                 one{"{0}टेराबिट"}\r
@@ -537,6 +553,11 @@ ne{
             }\r
         }\r
         pressure{\r
+            atmosphere{\r
+                dnam{"वायुमण्डल"}\r
+                one{"{0} वायुमण्डल"}\r
+                other{"{0} वायुमण्डलहरू"}\r
+            }\r
             hectopascal{\r
                 dnam{"हेक्टो पास्कल"}\r
                 one{"{0} हेक्टो पास्कल"}\r
@@ -785,6 +806,13 @@ ne{
         compound{\r
             per{"{0}प्रति {1}"}\r
         }\r
+        concentr{\r
+            percent{\r
+                dnam{"प्रतिशत"}\r
+                one{"{0}प्रतिशत"}\r
+                other{"{0}प्रतिशत"}\r
+            }\r
+        }\r
         consumption{\r
             liter-per-100kilometers{\r
                 dnam{"लि./१००कि.मि."}\r
@@ -793,6 +821,7 @@ ne{
             }\r
         }\r
         coordinate{\r
+            dnam{"दिशा"}\r
             east{"{0}पूर्व"}\r
             north{"{0}उत्तर"}\r
             south{"{0}दक्षिण"}\r
@@ -1094,6 +1123,16 @@ ne{
                 one{"{0} ppm"}\r
                 other{"{0} ppm"}\r
             }\r
+            percent{\r
+                dnam{"प्रतिशत"}\r
+                one{"{0}प्रतिशत"}\r
+                other{"{0}प्रतिशत"}\r
+            }\r
+            permille{\r
+                dnam{"प्रति मिल"}\r
+                one{"{0}प्रति मिल"}\r
+                other{"{0}प्रतिशत १"}\r
+            }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
@@ -1118,6 +1157,7 @@ ne{
             }\r
         }\r
         coordinate{\r
+            dnam{"दिशा"}\r
             east{"{0}पूर्व"}\r
             north{"{0}उत्तर"}\r
             south{"{0}दक्षिण"}\r
@@ -1164,6 +1204,11 @@ ne{
                 one{"{0} MB"}\r
                 other{"{0} MB"}\r
             }\r
+            petabyte{\r
+                dnam{"पिटाबाइट"}\r
+                one{"{0} पिटा"}\r
+                other{"{0} पिटा"}\r
+            }\r
             terabit{\r
                 dnam{"Tb"}\r
                 one{"{0} Tb"}\r
@@ -1508,6 +1553,11 @@ ne{
             }\r
         }\r
         pressure{\r
+            atmosphere{\r
+                dnam{"वायु"}\r
+                one{"{0} वायु"}\r
+                other{"{0} वायु"}\r
+            }\r
             hectopascal{\r
                 dnam{"हेक्टो पास्कल"}\r
                 one{"{0}hPa"}\r
index 797ee06..e658c88 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 nl{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.45.14"}\r
     durationUnits{\r
         hm{"h:mm"}\r
         hms{"h:mm:ss"}\r
@@ -123,6 +123,16 @@ nl{
                 one{"{0} ppm"}\r
                 other{"{0} ppm"}\r
             }\r
+            percent{\r
+                dnam{"procent"}\r
+                one{"{0} procent"}\r
+                other{"{0} procent"}\r
+            }\r
+            permille{\r
+                dnam{"promille"}\r
+                one{"{0} promille"}\r
+                other{"{0} promille"}\r
+            }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
@@ -147,6 +157,7 @@ nl{
             }\r
         }\r
         coordinate{\r
+            dnam{"windstreek"}\r
             east{"{0} oosterlengte"}\r
             north{"{0} noorderbreedte"}\r
             south{"{0} zuiderbreedte"}\r
@@ -193,6 +204,11 @@ nl{
                 one{"{0} megabyte"}\r
                 other{"{0} megabyte"}\r
             }\r
+            petabyte{\r
+                dnam{"petabyte"}\r
+                one{"{0} petabyte"}\r
+                other{"{0} petabyte"}\r
+            }\r
             terabit{\r
                 dnam{"terabit"}\r
                 one{"{0} terabit"}\r
@@ -552,6 +568,11 @@ nl{
             }\r
         }\r
         pressure{\r
+            atmosphere{\r
+                dnam{"atmosfeer"}\r
+                one{"{0} atmosfeer"}\r
+                other{"{0} atmosfeer"}\r
+            }\r
             hectopascal{\r
                 dnam{"hectopascal"}\r
                 one{"{0} hectopascal"}\r
@@ -852,9 +873,35 @@ nl{
         }\r
         concentr{\r
             karat{\r
+                dnam{"K"}\r
                 one{"{0} K"}\r
                 other{"{0} K"}\r
             }\r
+            milligram-per-deciliter{\r
+                dnam{"mg/dl"}\r
+                one{"{0} mg/dl"}\r
+                other{"{0} mg/dl"}\r
+            }\r
+            millimole-per-liter{\r
+                dnam{"millimol/liter"}\r
+                one{"{0} mmol/l"}\r
+                other{"{0} mmol/l"}\r
+            }\r
+            part-per-million{\r
+                dnam{"ppm"}\r
+                one{"{0} ppm"}\r
+                other{"{0} ppm"}\r
+            }\r
+            percent{\r
+                dnam{"%"}\r
+                one{"{0}%"}\r
+                other{"{0}%"}\r
+            }\r
+            permille{\r
+                dnam{"promille"}\r
+                one{"{0}‰"}\r
+                other{"{0}‰"}\r
+            }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
@@ -872,8 +919,14 @@ nl{
                 one{"{0} mpg"}\r
                 other{"{0} mpg"}\r
             }\r
+            mile-per-gallon-imperial{\r
+                dnam{"mijl/imp. gal"}\r
+                one{"{0} m/gUK"}\r
+                other{"{0} m/gUK"}\r
+            }\r
         }\r
         coordinate{\r
+            dnam{"windstreek"}\r
             east{"{0} OL"}\r
             north{"{0} NB"}\r
             south{"{0} ZB"}\r
@@ -920,6 +973,11 @@ nl{
                 one{"{0} MB"}\r
                 other{"{0} MB"}\r
             }\r
+            petabyte{\r
+                dnam{"PB"}\r
+                one{"{0} PB"}\r
+                other{"{0} PB"}\r
+            }\r
             terabit{\r
                 dnam{"Tb"}\r
                 one{"{0} Tb"}\r
@@ -1090,8 +1148,8 @@ nl{
             }\r
             fathom{\r
                 dnam{"fm"}\r
-                one{"{0} fm"}\r
-                other{"{0} fm"}\r
+                one{"{0} fth"}\r
+                other{"{0} fth"}\r
             }\r
             foot{\r
                 dnam{"ft"}\r
@@ -1279,6 +1337,11 @@ nl{
             }\r
         }\r
         pressure{\r
+            atmosphere{\r
+                dnam{"atm"}\r
+                one{"{0} atm"}\r
+                other{"{0} atm"}\r
+            }\r
             hectopascal{\r
                 dnam{"hPa"}\r
                 one{"{0} hPa"}\r
@@ -1598,6 +1661,16 @@ nl{
                 one{"{0} ppm"}\r
                 other{"{0} ppm"}\r
             }\r
+            percent{\r
+                dnam{"procent"}\r
+                one{"{0}%"}\r
+                other{"{0}%"}\r
+            }\r
+            permille{\r
+                dnam{"promille"}\r
+                one{"{0}‰"}\r
+                other{"{0}‰"}\r
+            }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
@@ -1622,6 +1695,7 @@ nl{
             }\r
         }\r
         coordinate{\r
+            dnam{"windstreek"}\r
             east{"{0} OL"}\r
             north{"{0} NB"}\r
             south{"{0} ZB"}\r
@@ -1668,6 +1742,11 @@ nl{
                 one{"{0} MB"}\r
                 other{"{0} MB"}\r
             }\r
+            petabyte{\r
+                dnam{"PB"}\r
+                one{"{0} PB"}\r
+                other{"{0} PB"}\r
+            }\r
             terabit{\r
                 dnam{"Tb"}\r
                 one{"{0} Tb"}\r
@@ -1838,8 +1917,8 @@ nl{
             }\r
             fathom{\r
                 dnam{"fm"}\r
-                one{"{0} fm"}\r
-                other{"{0} fm"}\r
+                one{"{0} fth"}\r
+                other{"{0} fth"}\r
             }\r
             foot{\r
                 dnam{"ft"}\r
@@ -2027,6 +2106,11 @@ nl{
             }\r
         }\r
         pressure{\r
+            atmosphere{\r
+                dnam{"atm"}\r
+                one{"{0} atm"}\r
+                other{"{0} atm"}\r
+            }\r
             hectopascal{\r
                 dnam{"hPa"}\r
                 one{"{0} hPa"}\r
index 5f1ea96..fe1fd76 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 nn{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.94"}\r
     durationUnits{\r
         hm{"h:mm"}\r
         hms{"h:mm:ss"}\r
index f4d19eb..3bb175f 100644 (file)
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 om{\r
-    Version{"2.1.38.69"}\r
+    Version{"2.1.43.94"}\r
 }\r
index c290a6d..0048958 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 or{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.65"}\r
     durationUnits{\r
         hm{"h:mm"}\r
         hms{"h:mm:ss"}\r
@@ -123,6 +123,16 @@ or{
                 one{"{0} ଅଂଶ ପ୍ରତି ନିୟୁତ"}\r
                 other{"{0} ଅଂଶ ପ୍ରତି ନିୟୁତ"}\r
             }\r
+            percent{\r
+                dnam{"ଶତକଡ଼ା"}\r
+                one{"{0} ଶତକଡ଼ା"}\r
+                other{"{0} ଶତକଡ଼ା"}\r
+            }\r
+            permille{\r
+                dnam{"ପରମିଲ"}\r
+                one{"{0} ପରମିଲ"}\r
+                other{"{0} ପରମିଲ"}\r
+            }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
@@ -147,6 +157,7 @@ or{
             }\r
         }\r
         coordinate{\r
+            dnam{"ପ୍ରଧାନ ଦିଶା"}\r
             east{"{0} ପୂର୍ବ"}\r
             north{"{0} ଉତ୍ତର"}\r
             south{"{0} ଦକ୍ଷିଣ"}\r
@@ -193,6 +204,11 @@ or{
                 one{"{0} ମେଗାବାଇଟ୍"}\r
                 other{"{0} ମେଗାବାଇଟ୍"}\r
             }\r
+            petabyte{\r
+                dnam{"PB"}\r
+                one{"{0} PB"}\r
+                other{"{0} PB"}\r
+            }\r
             terabit{\r
                 dnam{"ଟେରାବିଟ୍"}\r
                 one{"{0} ଟେରାବିଟ୍"}\r
@@ -537,6 +553,11 @@ or{
             }\r
         }\r
         pressure{\r
+            atmosphere{\r
+                dnam{"ଆଟମୋସ୍ପିଅର"}\r
+                one{"{0} ଆଟମୋସ୍ପିଅର"}\r
+                other{"{0} ଆଟମୋସ୍ପିଅର"}\r
+            }\r
             hectopascal{\r
                 dnam{"ହେକ୍ଟୋପାସ୍କେଲ୍"}\r
                 one{"{0} ହେକ୍ଟୋପାସ୍କେଲ୍"}\r
@@ -739,6 +760,13 @@ or{
         compound{\r
             per{"{0}/{1}"}\r
         }\r
+        concentr{\r
+            percent{\r
+                dnam{"%"}\r
+                one{"{0}%"}\r
+                other{"{0}%"}\r
+            }\r
+        }\r
         consumption{\r
             liter-per-100kilometers{\r
                 dnam{"ଲି/100କିମି"}\r
@@ -747,6 +775,7 @@ or{
             }\r
         }\r
         coordinate{\r
+            dnam{"ଦିଗ"}\r
             east{"{0} ପୂ"}\r
             north{"{0}ଉ"}\r
             south{"{0} ଦ"}\r
@@ -966,6 +995,16 @@ or{
                 one{"{0} ପିପିଏମ୍"}\r
                 other{"{0} ପିପିଏମ୍"}\r
             }\r
+            percent{\r
+                dnam{"ଶତକଡ଼ା"}\r
+                one{"{0}%"}\r
+                other{"{0}%"}\r
+            }\r
+            permille{\r
+                dnam{"ପରମିଲ"}\r
+                one{"{0}‰"}\r
+                other{"{0}‰"}\r
+            }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
@@ -990,6 +1029,7 @@ or{
             }\r
         }\r
         coordinate{\r
+            dnam{"ଦିଗ"}\r
             east{"{0} ପୂ"}\r
             north{"{0} ଉ"}\r
             south{"{0} ଦ"}\r
@@ -1036,6 +1076,11 @@ or{
                 one{"{0} MB"}\r
                 other{"{0} MB"}\r
             }\r
+            petabyte{\r
+                dnam{"PByte"}\r
+                one{"{0} PB"}\r
+                other{"{0} PB"}\r
+            }\r
             terabit{\r
                 dnam{"ଟିବିଟ୍"}\r
                 one{"{0} Tb"}\r
@@ -1380,6 +1425,11 @@ or{
             }\r
         }\r
         pressure{\r
+            atmosphere{\r
+                dnam{"atm"}\r
+                one{"{0} atm"}\r
+                other{"{0} atm"}\r
+            }\r
             hectopascal{\r
                 dnam{"hPa"}\r
                 one{"{0} hPa"}\r
index ce5d67f..742a335 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 pa{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.65"}\r
     durationUnits{\r
         hm{"h:mm"}\r
         hms{"h:mm:ss"}\r
@@ -123,6 +123,16 @@ pa{
                 one{"{0} ਹਿੱਸਾ ਪ੍ਰਤੀ ਮਿਲੀਅਨ"}\r
                 other{"{0} ਹਿੱਸੇ ਪ੍ਰਤੀ ਮਿਲੀਅਨ"}\r
             }\r
+            percent{\r
+                dnam{"ਪ੍ਰਤੀਸ਼ਤ"}\r
+                one{"{0} ਪ੍ਰਤੀਸ਼ਤ"}\r
+                other{"{0} ਪ੍ਰਤੀਸ਼ਤ"}\r
+            }\r
+            permille{\r
+                dnam{"ਪਰਮਾਈਲ"}\r
+                one{"{0} ਪਰਮਾਈਲ"}\r
+                other{"{0} ਪਰਮਾਈਲ"}\r
+            }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
@@ -147,6 +157,7 @@ pa{
             }\r
         }\r
         coordinate{\r
+            dnam{"ਮੁੱਖ ਦਿਸ਼ਾ"}\r
             east{"{0}ਪੂ"}\r
             north{"{0}ਉ"}\r
             south{"{0}ਦੱ"}\r
@@ -193,6 +204,11 @@ pa{
                 one{"{0} ਮੈਗਾਬਾਇਟ"}\r
                 other{"{0} ਮੈਗਾਬਾਇਟ"}\r
             }\r
+            petabyte{\r
+                dnam{"ਪੈਟਾਬਾਇਟ"}\r
+                one{"{0} ਪੈਟਾਬਾਇਟ"}\r
+                other{"{0} ਪੈਟਾਬਾਇਟ"}\r
+            }\r
             terabit{\r
                 dnam{"ਟੇਰਾਬਿਟ"}\r
                 one{"{0} ਟੇਰਾਬਿਟ"}\r
@@ -552,6 +568,11 @@ pa{
             }\r
         }\r
         pressure{\r
+            atmosphere{\r
+                dnam{"ਵਾਯੂਮੰਡਲ"}\r
+                one{"{0} ਵਾਯੂਮੰਡਲ"}\r
+                other{"{0} ਵਾਯੂਮੰਡਲ"}\r
+            }\r
             hectopascal{\r
                 dnam{"ਹੈਕਟੋਪਾਸਕਲ"}\r
                 one{"{0} ਹੈਕਟੋਪਾਸਕਲ"}\r
@@ -830,6 +851,11 @@ pa{
                 one{"{0} ਕੇਰਟ"}\r
                 other{"{0} ਕੇਰਟ"}\r
             }\r
+            percent{\r
+                dnam{"ਪ੍ਰਤੀਸ਼ਤ"}\r
+                one{"{0}%"}\r
+                other{"{0}%"}\r
+            }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
@@ -847,6 +873,7 @@ pa{
             }\r
         }\r
         coordinate{\r
+            dnam{"ਦਿਸ਼ਾ"}\r
             east{"{0}ਪੂ"}\r
             north{"{0}ਉ"}\r
             south{"{0}ਦੱ"}\r
@@ -1441,6 +1468,16 @@ pa{
                 one{"{0} ppm"}\r
                 other{"{0} ppm"}\r
             }\r
+            percent{\r
+                dnam{"ਪ੍ਰਤੀਸ਼ਤ"}\r
+                one{"{0}%"}\r
+                other{"{0}%"}\r
+            }\r
+            permille{\r
+                dnam{"ਪਰਮਾਈਲ"}\r
+                one{"{0}‰"}\r
+                other{"{0}‰"}\r
+            }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
@@ -1465,6 +1502,7 @@ pa{
             }\r
         }\r
         coordinate{\r
+            dnam{"ਦਿਸ਼ਾ"}\r
             east{"{0}ਪੂ"}\r
             north{"{0}ਉ"}\r
             south{"{0}ਦੱ"}\r
@@ -1511,6 +1549,11 @@ pa{
                 one{"{0} MB"}\r
                 other{"{0} MB"}\r
             }\r
+            petabyte{\r
+                dnam{"ਪੈਟਾਬਾਇਟ"}\r
+                one{"{0} PB"}\r
+                other{"{0} PB"}\r
+            }\r
             terabit{\r
                 dnam{"ਟੇਰਾਬਿਟ"}\r
                 one{"{0} Tb"}\r
@@ -1870,6 +1913,11 @@ pa{
             }\r
         }\r
         pressure{\r
+            atmosphere{\r
+                dnam{"ਵਾ. ਮੰ."}\r
+                one{"{0} ਵਾ. ਮੰ."}\r
+                other{"{0} ਵਾ. ਮੰ."}\r
+            }\r
             hectopascal{\r
                 dnam{"ਹੈ.ਪਾ."}\r
                 one{"{0} ਹੈ.ਪਾ."}\r
index 55a0c77..07e34a2 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 pl{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.50"}\r
     durationUnits{\r
         hm{"h:mm"}\r
         hms{"h:mm:ss"}\r
@@ -163,6 +163,20 @@ pl{
                 one{"{0} część na milion"}\r
                 other{"{0} części na milion"}\r
             }\r
+            percent{\r
+                dnam{"procent"}\r
+                few{"{0} procent"}\r
+                many{"{0} procent"}\r
+                one{"{0} procent"}\r
+                other{"{0} procent"}\r
+            }\r
+            permille{\r
+                dnam{"promil"}\r
+                few{"{0} promile"}\r
+                many{"{0} promili"}\r
+                one{"{0} promil"}\r
+                other{"{0} promila"}\r
+            }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
@@ -195,6 +209,7 @@ pl{
             }\r
         }\r
         coordinate{\r
+            dnam{"kierunek świata"}\r
             east{"{0}E"}\r
             north{"{0}N"}\r
             south{"{0}S"}\r
@@ -257,6 +272,13 @@ pl{
                 one{"{0} megabajt"}\r
                 other{"{0} megabajta"}\r
             }\r
+            petabyte{\r
+                dnam{"PB"}\r
+                few{"{0} PB"}\r
+                many{"{0} PB"}\r
+                one{"{0} PB"}\r
+                other{"{0} PB"}\r
+            }\r
             terabit{\r
                 dnam{"terabity"}\r
                 few{"{0} terabity"}\r
@@ -725,6 +747,13 @@ pl{
             }\r
         }\r
         pressure{\r
+            atmosphere{\r
+                dnam{"atm"}\r
+                few{"{0} atm"}\r
+                many{"{0} atm"}\r
+                one{"{0} atm"}\r
+                other{"{0} atm"}\r
+            }\r
             hectopascal{\r
                 dnam{"hektopaskale"}\r
                 few{"{0} hektopaskale"}\r
@@ -1067,6 +1096,15 @@ pl{
         compound{\r
             per{"{0}/{1}"}\r
         }\r
+        concentr{\r
+            percent{\r
+                dnam{"%"}\r
+                few{"{0}%"}\r
+                many{"{0}%"}\r
+                one{"{0}%"}\r
+                other{"{0}%"}\r
+            }\r
+        }\r
         consumption{\r
             liter-per-100kilometers{\r
                 dnam{"l/100 km"}\r
@@ -1077,6 +1115,7 @@ pl{
             }\r
         }\r
         coordinate{\r
+            dnam{"kierunek"}\r
             east{"{0}E"}\r
             north{"{0}N"}\r
             south{"{0}S"}\r
@@ -1562,6 +1601,20 @@ pl{
                 one{"{0} ppm"}\r
                 other{"{0} ppm"}\r
             }\r
+            percent{\r
+                dnam{"procent"}\r
+                few{"{0}%"}\r
+                many{"{0}%"}\r
+                one{"{0}%"}\r
+                other{"{0}%"}\r
+            }\r
+            permille{\r
+                dnam{"promil"}\r
+                few{"{0}‰"}\r
+                many{"{0}‰"}\r
+                one{"{0}‰"}\r
+                other{"{0}‰"}\r
+            }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
@@ -1594,6 +1647,7 @@ pl{
             }\r
         }\r
         coordinate{\r
+            dnam{"kierunek"}\r
             east{"{0}E"}\r
             north{"{0}N"}\r
             south{"{0}S"}\r
@@ -1656,6 +1710,13 @@ pl{
                 one{"{0} MB"}\r
                 other{"{0} MB"}\r
             }\r
+            petabyte{\r
+                dnam{"PB"}\r
+                few{"{0} PB"}\r
+                many{"{0} PB"}\r
+                one{"{0} PB"}\r
+                other{"{0} PB"}\r
+            }\r
             terabit{\r
                 dnam{"Tb"}\r
                 few{"{0} Tb"}\r
@@ -1790,17 +1851,17 @@ pl{
         energy{\r
             calorie{\r
                 dnam{"cal"}\r
-                few{"{0} kal"}\r
-                many{"{0} kal"}\r
-                one{"{0} kal"}\r
-                other{"{0} kal"}\r
+                few{"{0} cal"}\r
+                many{"{0} cal"}\r
+                one{"{0} cal"}\r
+                other{"{0} cal"}\r
             }\r
             foodcalorie{\r
-                dnam{"kal"}\r
-                few{"{0} kal"}\r
-                many{"{0} kal"}\r
-                one{"{0} kal"}\r
-                other{"{0} kal"}\r
+                dnam{"cal"}\r
+                few{"{0} cal"}\r
+                many{"{0} cal"}\r
+                one{"{0} cal"}\r
+                other{"{0} cal"}\r
             }\r
             joule{\r
                 dnam{"J"}\r
@@ -2124,6 +2185,13 @@ pl{
             }\r
         }\r
         pressure{\r
+            atmosphere{\r
+                dnam{"atm"}\r
+                few{"{0} atm"}\r
+                many{"{0} atm"}\r
+                one{"{0} atm"}\r
+                other{"{0} atm"}\r
+            }\r
             hectopascal{\r
                 dnam{"hPa"}\r
                 few{"{0} hPa"}\r
index 02953a1..32cdecb 100644 (file)
Binary files a/source/data/unit/pool.res and b/source/data/unit/pool.res differ
index 9ccbb88..624ac56 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 ps{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.94"}\r
     durationUnits{\r
         hm{"h:mm"}\r
         hms{"h:mm:ss"}\r
@@ -10,9 +10,9 @@ ps{
     units{\r
         acceleration{\r
             g-force{\r
-                dnam{"g-force"}\r
-                one{"{0} g-force"}\r
-                other{"{0} g-force"}\r
+                dnam{"د جاذبې قوه"}\r
+                one{"{0} د جاذبې قوه"}\r
+                other{"{0} د جاذبې قوه"}\r
             }\r
             meter-per-second-squared{\r
                 dnam{"meters per second squared"}\r
@@ -22,64 +22,64 @@ ps{
         }\r
         angle{\r
             arc-minute{\r
-                dnam{"آرشیف"}\r
-                one{"{0}"}\r
-                other{"{0}"}\r
+                dnam{"آرکمنټس"}\r
+                one{"{0} آرکمنټ"}\r
+                other{"{0} آرکمنټس"}\r
             }\r
             arc-second{\r
-                dnam{"آرکیسیفسونه"}\r
-                one{"{0}"}\r
-                other{"{0}"}\r
+                dnam{"آرک ثانيې"}\r
+                one{"{0} آرک ثانيه"}\r
+                other{"{0} آرک ثانيې"}\r
             }\r
             degree{\r
-                dnam{"درجو"}\r
-                one{"{0}°"}\r
-                other{"{0}°"}\r
+                dnam{"درجې"}\r
+                one{"{0} درجې"}\r
+                other{"{0} درجې"}\r
             }\r
             radian{\r
                 dnam{"رادیان"}\r
-                one{"{0} rad"}\r
-                other{"{0} rad"}\r
+                one{"{0} راديان"}\r
+                other{"{0} راديان"}\r
             }\r
             revolution{\r
                 dnam{"انقلاب"}\r
-                one{"{0} rev"}\r
-                other{"{0} rev"}\r
+                one{"{0} انقلاب"}\r
+                other{"{0} انقلاب"}\r
             }\r
         }\r
         area{\r
             acre{\r
-                dnam{"acres"}\r
-                one{"{0} acre"}\r
-                other{"{0} acres"}\r
+                dnam{"ايکړز"}\r
+                one{"{0} ايکړ"}\r
+                other{"{0} ايکړز"}\r
             }\r
             hectare{\r
-                dnam{"hectares"}\r
-                one{"{0} hectare"}\r
-                other{"{0} hectares"}\r
+                dnam{"هيکترې"}\r
+                one{"{0} هيکتر"}\r
+                other{"{0} هيکترې"}\r
             }\r
             square-centimeter{\r
-                dnam{"square centimeters"}\r
-                one{"{0} square centimeter"}\r
-                other{"{0} square centimeters"}\r
-                per{"{0} per square centimeter"}\r
+                dnam{"مربع سنتي متر"}\r
+                one{"{0} مربع سنتي متر"}\r
+                other{"{0} مربع سنتي متر"}\r
+                per{"{0} في مربع سنتي متر"}\r
             }\r
             square-foot{\r
-                dnam{"square feet"}\r
-                one{"{0} square foot"}\r
-                other{"{0} square feet"}\r
+                dnam{"مربع فټ"}\r
+                one{"{0} مربع فټ"}\r
+                other{"{0} مربع فټ"}\r
             }\r
             square-inch{\r
-                dnam{"square inches"}\r
-                one{"{0} square inch"}\r
-                other{"{0} square inches"}\r
-                per{"{0} per square inch"}\r
+                dnam{"مربع انچ"}\r
+                one{"{0} مربع انچ"}\r
+                other{"{0} مربع انچ"}\r
+                per{"{0} في مربع انچ"}\r
             }\r
             square-kilometer{\r
-                dnam{"square kilometers"}\r
-                one{"{0} square kilometer"}\r
-                other{"{0} square kilometers"}\r
-                per{"{0} per square kilometer"}\r
+                dnam{"مربع کيلو متره"}\r
+                one{"{0} مربع کيلو متر"}\r
+                other{"{0} مربع کيلو متره"}\r
+                per{"{0} في مربع کيلو متر"}\r
             }\r
             square-meter{\r
                 dnam{"square meters"}\r
@@ -88,120 +88,136 @@ ps{
                 per{"{0} per square meter"}\r
             }\r
             square-mile{\r
-                dnam{"square miles"}\r
-                one{"{0} square mile"}\r
-                other{"{0} square miles"}\r
-                per{"{0} per square mile"}\r
+                dnam{"مربع ميل"}\r
+                one{"{0} مربع ميل"}\r
+                other{"{0} مربع ميل"}\r
+                per{"{0} في مربع ميل"}\r
             }\r
             square-yard{\r
-                dnam{"square yards"}\r
-                one{"{0} square yard"}\r
-                other{"{0} square yards"}\r
+                dnam{"مربع ګر"}\r
+                one{"{0} مربع ګز"}\r
+                other{"{0} مربع ګز"}\r
             }\r
         }\r
         compound{\r
-            per{"{0}/{1}"}\r
+            per{"{0}في {1}"}\r
         }\r
         concentr{\r
             karat{\r
-                dnam{"کارات"}\r
-                one{"{0} kt"}\r
-                other{"{0} kt"}\r
+                dnam{"قيراط"}\r
+                one{"{0} قيراط"}\r
+                other{"{0} قيراط"}\r
             }\r
             milligram-per-deciliter{\r
-                dnam{"mg/dL"}\r
-                one{"{0} mg/dL"}\r
-                other{"{0} mg/dL"}\r
+                dnam{"ملي ګرام في ډيسي ليټر"}\r
+                one{"{0} ملي ګرام في ډيسي ليټر"}\r
+                other{"{0} ملي ګرام في ډيسي ليټر"}\r
             }\r
             millimole-per-liter{\r
-                dnam{"mmol/L"}\r
-                one{"{0} mmol/L"}\r
-                other{"{0} mmol/L"}\r
+                dnam{"ملي مولز في ليټر"}\r
+                one{"{0} ملي مول في ليټر"}\r
+                other{"{0} ملي مول في ليټر"}\r
             }\r
             part-per-million{\r
-                dnam{"ppm"}\r
-                one{"{0} ppm"}\r
-                other{"{0} ppm"}\r
+                dnam{"پاړتس في مليون"}\r
+                one{"{0} پارټ في مليون"}\r
+                other{"{0} پارټس في مليون"}\r
+            }\r
+            percent{\r
+                dnam{"سلنه"}\r
+                one{"{0} سلنه"}\r
+                other{"{0} سلنه"}\r
+            }\r
+            permille{\r
+                dnam{"في ميل"}\r
+                one{"{0} في ميل"}\r
+                other{"{0} في ميل"}\r
             }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
-                dnam{"L/100km"}\r
-                one{"{0} L/100km"}\r
-                other{"{0} L/100km"}\r
+                dnam{"ليټرز في ۱۰۰ کيلو مترز"}\r
+                one{"{0} ليټر في ۱۰۰ کلو ميترز"}\r
+                other{"{0} ليټرز في ۱۰۰ کيلو مترز"}\r
             }\r
             liter-per-kilometer{\r
-                dnam{"L/km"}\r
-                one{"{0} L/km"}\r
-                other{"{0} L/km"}\r
+                dnam{"ليټرز في کيلو متر"}\r
+                one{"{0} ليټر في کيلو متر"}\r
+                other{"{0} ليټرز في کيلو متر"}\r
             }\r
             mile-per-gallon{\r
-                dnam{"mpg US"}\r
-                one{"{0} mpg US"}\r
-                other{"{0} mpg US"}\r
+                dnam{"ميلز في ګيلن"}\r
+                one{"{0} ميل في ګيلن"}\r
+                other{"{0} ميلز في ګيلن"}\r
             }\r
             mile-per-gallon-imperial{\r
-                dnam{"mpg Imp."}\r
-                one{"{0} mpg Imp."}\r
-                other{"{0} mpg Imp."}\r
+                dnam{"ميلز في ايمپيريل ګيلن"}\r
+                one{"{0} ميل في ايمپيريل ګيلن"}\r
+                other{"{0} ميلز في ايمپيريل ګيلن"}\r
             }\r
         }\r
         coordinate{\r
+            dnam{"کارډنل اړخ"}\r
             east{"{0} ختيځ"}\r
             north{"{0} شمال"}\r
-            south{"{0} Ø¬Ù\86Ù\88ب"}\r
+            south{"{0} Ø³Ù\88Ù\8aÙ\84"}\r
             west{"{0} لوېديځ"}\r
         }\r
         digital{\r
             bit{\r
-                dnam{"bits"}\r
-                one{"{0} bit"}\r
-                other{"{0} bits"}\r
+                dnam{"بټس"}\r
+                one{"{0} بټ"}\r
+                other{"{0} بټس"}\r
             }\r
             byte{\r
-                dnam{"bytes"}\r
-                one{"{0} byte"}\r
-                other{"{0} bytes"}\r
+                dnam{"بايټس"}\r
+                one{"{0} بايټ"}\r
+                other{"{0} بايټس"}\r
             }\r
             gigabit{\r
-                dnam{"gigabits"}\r
-                one{"{0} gigabit"}\r
-                other{"{0} gigabits"}\r
+                dnam{"ګيګا بټس"}\r
+                one{"{0} ګيګا بټ"}\r
+                other{"{0} ګيګا بټس"}\r
             }\r
             gigabyte{\r
-                dnam{"gigabytes"}\r
-                one{"{0} gigabyte"}\r
-                other{"{0} gigabytes"}\r
+                dnam{"ګيګا بايټس"}\r
+                one{"{0} ګيګا بايټس"}\r
+                other{"{0} ګيګا بايټس"}\r
             }\r
             kilobit{\r
-                dnam{"kilobits"}\r
-                one{"{0} kilobit"}\r
-                other{"{0} kilobits"}\r
+                dnam{"کيلو بټس"}\r
+                one{"{0} کيلو بټ"}\r
+                other{"{0} کيلو بټس"}\r
             }\r
             kilobyte{\r
-                dnam{"kilobytes"}\r
-                one{"{0} kilobyte"}\r
-                other{"{0} kilobytes"}\r
+                dnam{"کيلو بايټس"}\r
+                one{"{0} کيلو بايټ"}\r
+                other{"{0} کيلو بايټس"}\r
             }\r
             megabit{\r
-                dnam{"megabits"}\r
-                one{"{0} megabit"}\r
-                other{"{0} megabits"}\r
+                dnam{"ميګا بټس"}\r
+                one{"{0} ميګا بټ"}\r
+                other{"{0} ميګا بټس"}\r
             }\r
             megabyte{\r
-                dnam{"megabytes"}\r
-                one{"{0} megabyte"}\r
-                other{"{0} megabytes"}\r
+                dnam{"ميګا بايټس"}\r
+                one{"{0} ميګا بايټ"}\r
+                other{"{0} ميګا بايټس"}\r
+            }\r
+            petabyte{\r
+                dnam{"پيټا بايټس"}\r
+                one{"{0} پيټا بايټ"}\r
+                other{"{0} پيټا بايټس"}\r
             }\r
             terabit{\r
-                dnam{"terabits"}\r
-                one{"{0} terabit"}\r
-                other{"{0} terabits"}\r
+                dnam{"ټرا بايټس"}\r
+                one{"{0} ټرا بايټ"}\r
+                other{"{0} ټرا بايټس"}\r
             }\r
             terabyte{\r
-                dnam{"terabytes"}\r
-                one{"{0} terabyte"}\r
-                other{"{0} terabytes"}\r
+                dnam{"ټيرا بايټس"}\r
+                one{"{0} ټيرا بايټ"}\r
+                other{"{0} ټيرا بايټس"}\r
             }\r
         }\r
         duration{\r
@@ -223,7 +239,7 @@ ps{
                 per{"{0}/h"}\r
             }\r
             microsecond{\r
-                dnam{"μs"}\r
+                dnam{"مايکرو ثانيه"}\r
                 one{"{0} μs"}\r
                 other{"{0} μs"}\r
             }\r
@@ -245,7 +261,7 @@ ps{
                 per{"{0}/m"}\r
             }\r
             nanosecond{\r
-                dnam{"ns"}\r
+                dnam{"نينو ثانيه"}\r
                 one{"{0} ns"}\r
                 other{"{0} ns"}\r
             }\r
@@ -270,155 +286,155 @@ ps{
         }\r
         electric{\r
             ampere{\r
-                dnam{"amperes"}\r
-                one{"{0} ampere"}\r
-                other{"{0} amperes"}\r
+                dnam{"ايمپيرز"}\r
+                one{"{0} ايمپير"}\r
+                other{"{0} ايمپيرز"}\r
             }\r
             milliampere{\r
-                dnam{"milliamperes"}\r
-                one{"{0} milliampere"}\r
-                other{"{0} milliamperes"}\r
+                dnam{"ملي ايمپيرز"}\r
+                one{"{0} ملي ايمپير"}\r
+                other{"{0} ملي ايمپيرز"}\r
             }\r
             ohm{\r
-                dnam{"ohms"}\r
-                one{"{0} ohm"}\r
-                other{"{0} ohms"}\r
+                dnam{"اوهمز"}\r
+                one{"{0} اوهم"}\r
+                other{"{0} اوهمز"}\r
             }\r
             volt{\r
-                dnam{"volts"}\r
-                one{"{0} volt"}\r
-                other{"{0} volts"}\r
+                dnam{"وولټس"}\r
+                one{"{0} وولټ"}\r
+                other{"{0} وولټس"}\r
             }\r
         }\r
         energy{\r
             calorie{\r
-                dnam{"calories"}\r
-                one{"{0} calorie"}\r
-                other{"{0} calories"}\r
+                dnam{"کيلريز"}\r
+                one{"{0} کيلري"}\r
+                other{"{0} کيلريز"}\r
             }\r
             foodcalorie{\r
-                dnam{"Calories"}\r
-                one{"{0} Calorie"}\r
-                other{"{0} Calories"}\r
+                dnam{"کيلريز"}\r
+                one{"{0} کيلري"}\r
+                other{"{0} کيلريز"}\r
             }\r
             joule{\r
-                dnam{"joules"}\r
-                one{"{0} joule"}\r
-                other{"{0} joules"}\r
+                dnam{"جولز"}\r
+                one{"{0} جول"}\r
+                other{"{0} جولز"}\r
             }\r
             kilocalorie{\r
-                dnam{"kilocalories"}\r
-                one{"{0} kilocalorie"}\r
-                other{"{0} kilocalories"}\r
+                dnam{"کيلو کيلريز"}\r
+                one{"{0} کيلو کيلري"}\r
+                other{"{0} کيلو کيلريز"}\r
             }\r
             kilojoule{\r
-                dnam{"kilojoules"}\r
-                one{"{0} kilojoule"}\r
-                other{"{0} kilojoules"}\r
+                dnam{"کيلو جولز"}\r
+                one{"{0} کيلو جول"}\r
+                other{"{0} کيلو جولز"}\r
             }\r
             kilowatt-hour{\r
-                dnam{"kilowatt-hours"}\r
-                one{"{0} kilowatt hour"}\r
-                other{"{0} kilowatt-hours"}\r
+                dnam{"کيلو واټ ساعته"}\r
+                one{"{0} کيلو واټ ساعت"}\r
+                other{"{0} کيلو واټ ساعته"}\r
             }\r
         }\r
         frequency{\r
             gigahertz{\r
-                dnam{"gigahertz"}\r
-                one{"{0} gigahertz"}\r
-                other{"{0} gigahertz"}\r
+                dnam{"ګيګا هرټز"}\r
+                one{"{0} ګيګا هرټز"}\r
+                other{"{0} ګيګا هرټز"}\r
             }\r
             hertz{\r
-                dnam{"hertz"}\r
-                one{"{0} hertz"}\r
-                other{"{0} hertz"}\r
+                dnam{"هرټز"}\r
+                one{"{0} هرټز"}\r
+                other{"{0} هرټز"}\r
             }\r
             kilohertz{\r
-                dnam{"kilohertz"}\r
-                one{"{0} kilohertz"}\r
-                other{"{0} kilohertz"}\r
+                dnam{"کيلو هرټز"}\r
+                one{"{0} کيلو هرټز"}\r
+                other{"{0} کيلو هرټز"}\r
             }\r
             megahertz{\r
-                dnam{"megahertz"}\r
-                one{"{0} megahertz"}\r
-                other{"{0} megahertz"}\r
+                dnam{"ميګا هرټز"}\r
+                one{"{0} ميګا هرټز"}\r
+                other{"{0} ميګا هرټز"}\r
             }\r
         }\r
         length{\r
             astronomical-unit{\r
-                dnam{"astronomical units"}\r
-                one{"{0} astronomical unit"}\r
-                other{"{0} astronomical units"}\r
+                dnam{"فلکي احدې"}\r
+                one{"{0} فلکي احد"}\r
+                other{"{0} فلکي احدې"}\r
             }\r
             centimeter{\r
-                dnam{"centimeters"}\r
-                one{"{0} centimeter"}\r
-                other{"{0} centimeters"}\r
-                per{"{0} per centimeter"}\r
+                dnam{"سنتي متره"}\r
+                one{"{0} سنتي متر"}\r
+                other{"{0} سنتي متره"}\r
+                per{"{0} هر سنتي متر"}\r
             }\r
             decimeter{\r
-                dnam{"dm"}\r
-                one{"{0} decimeter"}\r
-                other{"{0} decimeters"}\r
+                dnam{"ډيسي متره"}\r
+                one{"{0} ډيسي متر"}\r
+                other{"{0} ډيسي متره"}\r
             }\r
             foot{\r
-                dnam{"feet"}\r
-                one{"{0} foot"}\r
-                other{"{0} feet"}\r
-                per{"{0}/ft"}\r
+                dnam{"فټه"}\r
+                one{"{0} فټ"}\r
+                other{"{0} فټه"}\r
+                per{"{0}هر فټ"}\r
             }\r
             inch{\r
-                dnam{"inches"}\r
-                one{"{0} inch"}\r
-                other{"{0} inches"}\r
-                per{"{0} per inch"}\r
+                dnam{"انچې"}\r
+                one{"{0} انچ"}\r
+                other{"{0} انچې"}\r
+                per{"{0} هر انچ"}\r
             }\r
             kilometer{\r
-                dnam{"کيلومترونه"}\r
+                dnam{"کيلو ميتره"}\r
                 one{"{0} کيلومتر"}\r
                 other{"{0} کيلومتره"}\r
-                per{"{0}/km"}\r
+                per{"{0}هر کيلو ميتر"}\r
             }\r
             light-year{\r
-                dnam{"light years"}\r
-                one{"{0} light year"}\r
-                other{"{0} light years"}\r
+                dnam{"نوري کالونه"}\r
+                one{"{0} نوري کال"}\r
+                other{"{0} نوري کالونه"}\r
             }\r
             meter{\r
-                dnam{"متر"}\r
-                one{"{0} m"}\r
-                other{"{0} m"}\r
-                per{"{0}/m"}\r
+                dnam{"متره"}\r
+                one{"{0} متر"}\r
+                other{"{0} متره"}\r
+                per{"{0}هر متر"}\r
             }\r
             micrometer{\r
-                dnam{"micrometers"}\r
-                one{"{0} micrometer"}\r
-                other{"{0} micrometers"}\r
+                dnam{"مايکرو متره"}\r
+                one{"{0} مايکرو متر"}\r
+                other{"{0} مايکرو متره"}\r
             }\r
             mile{\r
-                dnam{"miles"}\r
-                one{"{0} mile"}\r
-                other{"{0} miles"}\r
+                dnam{"ميلونه"}\r
+                one{"{0} ميل"}\r
+                other{"{0} ميلونه"}\r
             }\r
             mile-scandinavian{\r
-                dnam{"smi"}\r
-                one{"{0} smi"}\r
-                other{"{0} smi"}\r
+                dnam{"سکېنډنيوين ميل"}\r
+                one{"{0} سکېنډنيوين ميل"}\r
+                other{"{0} سکېنډنيوين ميلونه"}\r
             }\r
             millimeter{\r
-                dnam{"millimeters"}\r
-                one{"{0} millimeter"}\r
-                other{"{0} millimeters"}\r
+                dnam{"ملي متره"}\r
+                one{"{0} ملي متر"}\r
+                other{"{0} ملي متره"}\r
             }\r
             nanometer{\r
-                dnam{"nanometers"}\r
-                one{"{0} nanometer"}\r
-                other{"{0} nanometers"}\r
+                dnam{"نينو متره"}\r
+                one{"{0} نينو متر"}\r
+                other{"{0} نينو متره"}\r
             }\r
             nautical-mile{\r
-                dnam{"nmi"}\r
-                one{"{0} nmi"}\r
-                other{"{0} nmi"}\r
+                dnam{"بحري ميلونه"}\r
+                one{"{0} بحري ميل"}\r
+                other{"{0} بحري ميلونه"}\r
             }\r
             parsec{\r
                 dnam{"parsecs"}\r
@@ -426,9 +442,9 @@ ps{
                 other{"{0} parsecs"}\r
             }\r
             picometer{\r
-                dnam{"picometers"}\r
-                one{"{0} picometer"}\r
-                other{"{0} picometers"}\r
+                dnam{"پيکو متره"}\r
+                one{"{0} پيکو متر"}\r
+                other{"{0} پيکو متره"}\r
             }\r
             point{\r
                 dnam{"pt"}\r
@@ -436,165 +452,170 @@ ps{
                 other{"{0} pt"}\r
             }\r
             yard{\r
-                dnam{"yards"}\r
-                one{"{0} yard"}\r
-                other{"{0} yards"}\r
+                dnam{"ګز"}\r
+                one{"{0} ګز"}\r
+                other{"{0} ګزه"}\r
             }\r
         }\r
         light{\r
             lux{\r
-                dnam{"lx"}\r
-                one{"{0} lx"}\r
-                other{"{0} lx"}\r
+                dnam{"lux"}\r
+                one{"{0} lux"}\r
+                other{"{0} lux"}\r
             }\r
         }\r
         mass{\r
             carat{\r
-                dnam{"carats"}\r
-                one{"{0} carat"}\r
-                other{"{0} carats"}\r
+                dnam{"قيراط"}\r
+                one{"{0} قيراط"}\r
+                other{"{0} قيراط"}\r
             }\r
             gram{\r
-                dnam{"grams"}\r
-                one{"{0} gram"}\r
-                other{"{0} grams"}\r
-                per{"{0} per gram"}\r
+                dnam{"ګرامز"}\r
+                one{"{0} ګرام"}\r
+                other{"{0} ګرامز"}\r
+                per{"{0} في ګرام"}\r
             }\r
             kilogram{\r
-                dnam{"kilograms"}\r
-                one{"{0} kilogram"}\r
-                other{"{0} kilograms"}\r
-                per{"{0} per kilogram"}\r
+                dnam{"کيلو ګرامز"}\r
+                one{"{0} کيلو ګرام"}\r
+                other{"{0} کيلو ګرامز"}\r
+                per{"{0} في کيلو ګرام"}\r
             }\r
             metric-ton{\r
-                dnam{"metric tons"}\r
-                one{"{0} metric ton"}\r
-                other{"{0} metric tons"}\r
+                dnam{"ميټرک ټنز"}\r
+                one{"{0} ميټرک ټن"}\r
+                other{"{0} ميټرک ټنز"}\r
             }\r
             microgram{\r
-                dnam{"micrograms"}\r
-                one{"{0} microgram"}\r
-                other{"{0} micrograms"}\r
+                dnam{"مايکرو ګرامز"}\r
+                one{"{0} مايکرو ګرام"}\r
+                other{"{0} مايکرو ګرامز"}\r
             }\r
             milligram{\r
-                dnam{"milligrams"}\r
-                one{"{0} milligram"}\r
-                other{"{0} milligrams"}\r
+                dnam{"ملي ګرامز"}\r
+                one{"{0} ملي ګرام"}\r
+                other{"{0} ملي ګرامز"}\r
             }\r
             ounce{\r
-                dnam{"ounces"}\r
-                one{"{0} ounce"}\r
-                other{"{0} ounces"}\r
-                per{"{0} per ounce"}\r
+                dnam{"اونسز"}\r
+                one{"{0} اونس"}\r
+                other{"{0} اونسز"}\r
+                per{"{0} في اونس"}\r
             }\r
             ounce-troy{\r
-                dnam{"troy ounces"}\r
-                one{"{0} troy ounce"}\r
-                other{"{0} troy ounces"}\r
+                dnam{"ټروي اونسز"}\r
+                one{"{0} ټروي اونس"}\r
+                other{"{0} ټروي اونسز"}\r
             }\r
             pound{\r
-                dnam{"pounds"}\r
-                one{"{0} pound"}\r
-                other{"{0} pounds"}\r
-                per{"{0} per pound"}\r
+                dnam{"پاونډز"}\r
+                one{"{0} پاونډ"}\r
+                other{"{0} پاونډز"}\r
+                per{"{0} في پاونډ"}\r
             }\r
             ton{\r
-                dnam{"tons"}\r
-                one{"{0} ton"}\r
-                other{"{0} tons"}\r
+                dnam{"ټنز"}\r
+                one{"{0} ټن"}\r
+                other{"{0} ټنز"}\r
             }\r
         }\r
         power{\r
             gigawatt{\r
-                dnam{"gigawatts"}\r
-                one{"{0} gigawatt"}\r
-                other{"{0} gigawatts"}\r
+                dnam{"ګيګا واټس"}\r
+                one{"{0} ګيګا واټ"}\r
+                other{"{0} ګيګا واټس"}\r
             }\r
             horsepower{\r
-                dnam{"horsepower"}\r
-                one{"{0} horsepower"}\r
-                other{"{0} horsepower"}\r
+                dnam{"هارس پاور"}\r
+                one{"{0} هارس پاور"}\r
+                other{"{0} هارس پاور"}\r
             }\r
             kilowatt{\r
-                dnam{"kilowatts"}\r
-                one{"{0} kilowatt"}\r
-                other{"{0} kilowatts"}\r
+                dnam{"کيلو واټس"}\r
+                one{"{0} کيلو واټ"}\r
+                other{"{0} کيلو واټس"}\r
             }\r
             megawatt{\r
-                dnam{"megawatts"}\r
-                one{"{0} megawatt"}\r
-                other{"{0} megawatts"}\r
+                dnam{"ميګا واټس"}\r
+                one{"{0} ميګا واټ"}\r
+                other{"{0} ميګا واټس"}\r
             }\r
             milliwatt{\r
-                dnam{"milliwatts"}\r
-                one{"{0} milliwatt"}\r
-                other{"{0} milliwatts"}\r
+                dnam{"ملي واټس"}\r
+                one{"{0} ملي واټ"}\r
+                other{"{0} ملي واټس"}\r
             }\r
             watt{\r
-                dnam{"watts"}\r
-                one{"{0} watt"}\r
-                other{"{0} watts"}\r
+                dnam{"واټس"}\r
+                one{"{0} واټ"}\r
+                other{"{0} واټس"}\r
             }\r
         }\r
         pressure{\r
+            atmosphere{\r
+                dnam{"اتموسفيرز"}\r
+                one{"{0} اتموسفير"}\r
+                other{"{0} اتموسفيرز"}\r
+            }\r
             hectopascal{\r
-                dnam{"hectopascals"}\r
-                one{"{0} hectopascal"}\r
-                other{"{0} hectopascals"}\r
+                dnam{"هيکټو پاسکلز"}\r
+                one{"{0} هيکټو پاسکل"}\r
+                other{"{0} هيکټو پاسکلز"}\r
             }\r
             inch-hg{\r
-                dnam{"inches of mercury"}\r
-                one{"{0} inch of mercury"}\r
-                other{"{0} inches of mercury"}\r
+                dnam{"د پارې انچې"}\r
+                one{"{0} د پارې انچ"}\r
+                other{"{0} د پارې انچې"}\r
             }\r
             millibar{\r
-                dnam{"millibars"}\r
-                one{"{0} millibar"}\r
-                other{"{0} millibars"}\r
+                dnam{"ملي بارز"}\r
+                one{"{0} ملي بار"}\r
+                other{"{0} ملي بارز"}\r
             }\r
             millimeter-of-mercury{\r
-                dnam{"millimeters of mercury"}\r
-                one{"{0} millimeter of mercury"}\r
-                other{"{0} millimeters of mercury"}\r
+                dnam{"د پارې ملي مترز"}\r
+                one{"{0} د پارې ملي متر"}\r
+                other{"{0} د پارې ملي مترز"}\r
             }\r
             pound-per-square-inch{\r
-                dnam{"pounds per square inch"}\r
-                one{"{0} pound per square inch"}\r
-                other{"{0} pounds per square inch"}\r
+                dnam{"پاونډ في مربع انچ"}\r
+                one{"{0} پاونډ في مربع انچ"}\r
+                other{"{0} پاونډ في مربع انچ"}\r
             }\r
         }\r
         speed{\r
             kilometer-per-hour{\r
-                dnam{"kilometers per hour"}\r
-                one{"{0} kilometer per hour"}\r
-                other{"{0} kilometers per hour"}\r
+                dnam{"کيلو متر في ساعت"}\r
+                one{"{0} کيلو متر في ساعت"}\r
+                other{"{0} کيلو متر في ساعت"}\r
             }\r
             knot{\r
-                dnam{"knots"}\r
-                one{"{0} knot"}\r
-                other{"{0} knots"}\r
+                dnam{"ناټس"}\r
+                one{"{0} ناټ"}\r
+                other{"{0} ناټس"}\r
             }\r
             meter-per-second{\r
-                dnam{"meters per second"}\r
-                one{"{0} meter per second"}\r
-                other{"{0} meters per second"}\r
+                dnam{"متر في ثانيه"}\r
+                one{"{0} متر في ثانيه"}\r
+                other{"{0} متر في ثانيه"}\r
             }\r
             mile-per-hour{\r
-                dnam{"miles per hour"}\r
-                one{"{0} mile per hour"}\r
-                other{"{0} miles per hour"}\r
+                dnam{"ميل في ساعت"}\r
+                one{"{0} ميل في ساعت"}\r
+                other{"{0} ميل في ساعت"}\r
             }\r
         }\r
         temperature{\r
             celsius{\r
-                dnam{"degrees Celsius"}\r
-                one{"{0} degree Celsius"}\r
-                other{"{0} degrees Celsius"}\r
+                dnam{"درجې سيلسيس"}\r
+                one{"{0} درجې سيلسيس"}\r
+                other{"{0} درجې سيلسيس"}\r
             }\r
             fahrenheit{\r
-                dnam{"degrees Fahrenheit"}\r
-                one{"{0} degree Fahrenheit"}\r
-                other{"{0} degrees Fahrenheit"}\r
+                dnam{"درجې فارنهايټ"}\r
+                one{"{0} درجې فارنهايټ"}\r
+                other{"{0} درجې فارنهايټ"}\r
             }\r
             generic{\r
                 dnam{"°"}\r
@@ -602,63 +623,63 @@ ps{
                 other{"{0}°"}\r
             }\r
             kelvin{\r
-                dnam{"kelvins"}\r
-                one{"{0} kelvin"}\r
-                other{"{0} kelvins"}\r
+                dnam{"کيلونز"}\r
+                one{"{0} کيلون"}\r
+                other{"{0} کيلونز"}\r
             }\r
         }\r
         volume{\r
             acre-foot{\r
-                dnam{"acre-feet"}\r
-                one{"{0} acre-foot"}\r
-                other{"{0} acre-feet"}\r
+                dnam{"اکړ فټ"}\r
+                one{"{0} اکړ فټ"}\r
+                other{"{0} اکړ فټ"}\r
             }\r
             centiliter{\r
-                dnam{"centiliters"}\r
-                one{"{0} centiliter"}\r
-                other{"{0} centiliters"}\r
+                dnam{"سنټي ليټرز"}\r
+                one{"{0} سنټي ليټر"}\r
+                other{"{0} سنټي ليټرز"}\r
             }\r
             cubic-centimeter{\r
-                dnam{"cubic centimeters"}\r
-                one{"{0} cubic centimeter"}\r
-                other{"{0} cubic centimeters"}\r
-                per{"{0} per cubic centimeter"}\r
+                dnam{"مکعب سنتي متر"}\r
+                one{"{0} مکعب سنتي متر"}\r
+                other{"{0} مکعب سنتي متر"}\r
+                per{"{0} في مکعب سنتي متر"}\r
             }\r
             cubic-foot{\r
-                dnam{"cubic feet"}\r
-                one{"{0} cubic foot"}\r
-                other{"{0} cubic feet"}\r
+                dnam{"مکعب فټ"}\r
+                one{"{0} مکعب فټ"}\r
+                other{"{0} مکعب فټ"}\r
             }\r
             cubic-inch{\r
-                dnam{"cubic inches"}\r
-                one{"{0} cubic inch"}\r
-                other{"{0} cubic inches"}\r
+                dnam{"مکعب انچ"}\r
+                one{"{0} مکعب انچ"}\r
+                other{"{0} مکعب انچ"}\r
             }\r
             cubic-kilometer{\r
-                dnam{"cubic kilometers"}\r
-                one{"{0} cubic kilometer"}\r
-                other{"{0} cubic kilometers"}\r
+                dnam{"مکعب کيلو متر"}\r
+                one{"مکعب کيلو متر"}\r
+                other{"{0} مکعب کيلو متر"}\r
             }\r
             cubic-meter{\r
-                dnam{"cubic meters"}\r
-                one{"{0} cubic meter"}\r
-                other{"{0} cubic meters"}\r
-                per{"{0} per cubic meter"}\r
+                dnam{"مکعب متر"}\r
+                one{"{0} مکعب متر"}\r
+                other{"{0} مکعب متر"}\r
+                per{"{0} في مکعب متر"}\r
             }\r
             cubic-mile{\r
-                dnam{"cubic miles"}\r
-                one{"{0} cubic mile"}\r
-                other{"{0} cubic miles"}\r
+                dnam{"مکعب ميل"}\r
+                one{"{0} مکعب ميل"}\r
+                other{"{0} مکعب ميل"}\r
             }\r
             cubic-yard{\r
-                dnam{"cubic yards"}\r
-                one{"{0} cubic yard"}\r
-                other{"{0} cubic yards"}\r
+                dnam{"مکعب ګز"}\r
+                one{"{0} مکعب ګز"}\r
+                other{"{0} مکعب ګز"}\r
             }\r
             cup{\r
-                dnam{"cups"}\r
-                one{"{0} cup"}\r
-                other{"{0} cups"}\r
+                dnam{"پيالې"}\r
+                one{"{0} پياله"}\r
+                other{"{0} پيالې"}\r
             }\r
             cup-metric{\r
                 dnam{"metric cups"}\r
@@ -666,9 +687,9 @@ ps{
                 other{"{0} metric cups"}\r
             }\r
             deciliter{\r
-                dnam{"deciliters"}\r
-                one{"{0} deciliter"}\r
-                other{"{0} deciliters"}\r
+                dnam{"ډيسي ليټرز"}\r
+                one{"{0} ډيسي ليټر"}\r
+                other{"{0} ډيسي ليټرز"}\r
             }\r
             fluid-ounce{\r
                 dnam{"fluid ounces"}\r
@@ -676,10 +697,10 @@ ps{
                 other{"{0} fluid ounces"}\r
             }\r
             gallon{\r
-                dnam{"gallons"}\r
-                one{"{0} gallon"}\r
-                other{"{0} gallons"}\r
-                per{"{0} per gallon"}\r
+                dnam{"ګيلنز"}\r
+                one{"{0} ګيلن"}\r
+                other{"{0} ګيلنز"}\r
+                per{"{0} في ګيلن"}\r
             }\r
             gallon-imperial{\r
                 dnam{"Imp. gallons"}\r
@@ -688,25 +709,25 @@ ps{
                 per{"{0} per Imp. gallon"}\r
             }\r
             hectoliter{\r
-                dnam{"hectoliters"}\r
-                one{"{0} hectoliter"}\r
-                other{"{0} hectoliters"}\r
+                dnam{"هيکټو ليټرز"}\r
+                one{"{0} هيکټو ليټر"}\r
+                other{"{0} هيکټو ليټرز"}\r
             }\r
             liter{\r
-                dnam{"liters"}\r
-                one{"{0} liter"}\r
-                other{"{0} liters"}\r
-                per{"{0} per liter"}\r
+                dnam{"ليټرز"}\r
+                one{"{0} ليټر"}\r
+                other{"{0} ليټرز"}\r
+                per{"{0} في ليټر"}\r
             }\r
             megaliter{\r
-                dnam{"megaliters"}\r
-                one{"{0} megaliter"}\r
-                other{"{0} megaliters"}\r
+                dnam{"ميګا ليټرز"}\r
+                one{"{0} ميګا ليټر"}\r
+                other{"{0} ميګا ليټرز"}\r
             }\r
             milliliter{\r
-                dnam{"milliliters"}\r
-                one{"{0} milliliter"}\r
-                other{"{0} milliliters"}\r
+                dnam{"ملي ليټرز"}\r
+                one{"{0} ملي ليټر"}\r
+                other{"{0} ملي ليټرز"}\r
             }\r
             pint{\r
                 dnam{"pints"}\r
@@ -719,19 +740,19 @@ ps{
                 other{"{0} metric pints"}\r
             }\r
             quart{\r
-                dnam{"quarts"}\r
-                one{"{0} quart"}\r
-                other{"{0} quarts"}\r
+                dnam{"څلورمه"}\r
+                one{"{0} څلورمه"}\r
+                other{"{0} څلورمه"}\r
             }\r
             tablespoon{\r
-                dnam{"tablespoons"}\r
+                dnam{"د ميز کاچوغه"}\r
                 one{"{0} tablespoon"}\r
                 other{"{0} tablespoons"}\r
             }\r
             teaspoon{\r
-                dnam{"teaspoons"}\r
-                one{"{0} teaspoon"}\r
-                other{"{0} teaspoons"}\r
+                dnam{"د ميز کاچوغې"}\r
+                one{"{0} د ميز کاچوغه"}\r
+                other{"{0} د ميز کاچوغې"}\r
             }\r
         }\r
     }\r
@@ -739,6 +760,13 @@ ps{
         compound{\r
             per{"{0}/{1}"}\r
         }\r
+        concentr{\r
+            percent{\r
+                dnam{"سلنه"}\r
+                one{"{0}%"}\r
+                other{"{0}%"}\r
+            }\r
+        }\r
         consumption{\r
             liter-per-100kilometers{\r
                 dnam{"L/100km"}\r
@@ -747,16 +775,17 @@ ps{
             }\r
         }\r
         coordinate{\r
+            dnam{"اړخ"}\r
             east{"{0}خ"}\r
             north{"{0}ش"}\r
-            south{"{0}ج"}\r
+            south{"{0}س"}\r
             west{"{0}ل"}\r
         }\r
         duration{\r
             day{\r
                 dnam{"ورځ"}\r
                 one{"{0} ورځ"}\r
-                other{"{0} ورځې"}\r
+                other{"{0}d"}\r
             }\r
             hour{\r
                 dnam{"hr"}\r
@@ -806,7 +835,7 @@ ps{
                 other{"{0} km"}\r
             }\r
             meter{\r
-                dnam{"meter"}\r
+                dnam{"m"}\r
                 one{"{0} m"}\r
                 other{"{0} m"}\r
             }\r
@@ -818,7 +847,7 @@ ps{
         }\r
         mass{\r
             gram{\r
-                dnam{"gram"}\r
+                dnam{"ګرام"}\r
                 one{"{0}g"}\r
                 other{"{0}g"}\r
             }\r
@@ -853,7 +882,7 @@ ps{
     unitsShort{\r
         acceleration{\r
             g-force{\r
-                dnam{"g-force"}\r
+                dnam{"د جاذبې قوه"}\r
                 one{"{0} G"}\r
                 other{"{0} G"}\r
             }\r
@@ -865,7 +894,7 @@ ps{
         }\r
         angle{\r
             arc-minute{\r
-                dnam{"آرکسیسیس"}\r
+                dnam{"arcmins"}\r
                 one{"{0}′"}\r
                 other{"{0}′"}\r
             }\r
@@ -875,7 +904,7 @@ ps{
                 other{"{0}″"}\r
             }\r
             degree{\r
-                dnam{"درجو"}\r
+                dnam{"درجې"}\r
                 one{"{0}°"}\r
                 other{"{0}°"}\r
             }\r
@@ -892,12 +921,12 @@ ps{
         }\r
         area{\r
             acre{\r
-                dnam{"acres"}\r
+                dnam{"ايکړز"}\r
                 one{"{0} ac"}\r
                 other{"{0} ac"}\r
             }\r
             hectare{\r
-                dnam{"hectares"}\r
+                dnam{"هيکترې"}\r
                 one{"{0} ha"}\r
                 other{"{0} ha"}\r
             }\r
@@ -947,7 +976,7 @@ ps{
         }\r
         concentr{\r
             karat{\r
-                dnam{"کارات"}\r
+                dnam{"قيراط"}\r
                 one{"{0} kt"}\r
                 other{"{0} kt"}\r
             }\r
@@ -957,15 +986,25 @@ ps{
                 other{"{0} mg/dL"}\r
             }\r
             millimole-per-liter{\r
-                dnam{"mmol/L"}\r
+                dnam{"ملي مول/ليټر"}\r
                 one{"{0} mmol/L"}\r
                 other{"{0} mmol/L"}\r
             }\r
             part-per-million{\r
-                dnam{"ppm"}\r
+                dnam{"پارټس/مليون"}\r
                 one{"{0} ppm"}\r
                 other{"{0} ppm"}\r
             }\r
+            percent{\r
+                dnam{"سلنه"}\r
+                one{"{0}%"}\r
+                other{"{0}%"}\r
+            }\r
+            permille{\r
+                dnam{"في ميل"}\r
+                one{"{0}‰"}\r
+                other{"{0}‰"}\r
+            }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
@@ -984,15 +1023,16 @@ ps{
                 other{"{0} mpg US"}\r
             }\r
             mile-per-gallon-imperial{\r
-                dnam{"mpg Imp."}\r
+                dnam{"ميلز/ګيلن ايمپيريل"}\r
                 one{"{0} mpg Imp."}\r
                 other{"{0} mpg Imp."}\r
             }\r
         }\r
         coordinate{\r
+            dnam{"اړخ"}\r
             east{"{0} خ"}\r
             north{"{0} ش"}\r
-            south{"{0} Ø¬"}\r
+            south{"{0} Ø³"}\r
             west{"{0} ل"}\r
         }\r
         digital{\r
@@ -1036,6 +1076,11 @@ ps{
                 one{"{0} MB"}\r
                 other{"{0} MB"}\r
             }\r
+            petabyte{\r
+                dnam{"PByte"}\r
+                one{"{0} PB"}\r
+                other{"{0} PB"}\r
+            }\r
             terabit{\r
                 dnam{"Tbit"}\r
                 one{"{0} Tb"}\r
@@ -1060,7 +1105,7 @@ ps{
                 per{"{0}/d"}\r
             }\r
             hour{\r
-                dnam{"hr"}\r
+                dnam{"ساعتونه"}\r
                 one{"{0} h"}\r
                 other{"{0} h"}\r
                 per{"{0}/h"}\r
@@ -1076,7 +1121,7 @@ ps{
                 other{"{0} ms"}\r
             }\r
             minute{\r
-                dnam{"min"}\r
+                dnam{"mins"}\r
                 one{"{0} min"}\r
                 other{"{0} min"}\r
                 per{"{0}/min"}\r
@@ -1123,7 +1168,7 @@ ps{
                 other{"{0} mA"}\r
             }\r
             ohm{\r
-                dnam{"ohms"}\r
+                dnam{"اوهمز"}\r
                 one{"{0} Ω"}\r
                 other{"{0} Ω"}\r
             }\r
@@ -1145,7 +1190,7 @@ ps{
                 other{"{0} Cal"}\r
             }\r
             joule{\r
-                dnam{"joules"}\r
+                dnam{"جولز"}\r
                 one{"{0} J"}\r
                 other{"{0} J"}\r
             }\r
@@ -1155,7 +1200,7 @@ ps{
                 other{"{0} kcal"}\r
             }\r
             kilojoule{\r
-                dnam{"kilojoule"}\r
+                dnam{"کيلو جول"}\r
                 one{"{0} kJ"}\r
                 other{"{0} kJ"}\r
             }\r
@@ -1205,13 +1250,13 @@ ps{
                 other{"{0} dm"}\r
             }\r
             foot{\r
-                dnam{"feet"}\r
+                dnam{"فټه"}\r
                 one{"{0} ft"}\r
                 other{"{0} ft"}\r
                 per{"{0}/ft"}\r
             }\r
             inch{\r
-                dnam{"inches"}\r
+                dnam{"انچې"}\r
                 one{"{0} in"}\r
                 other{"{0} in"}\r
                 per{"{0}/in"}\r
@@ -1228,7 +1273,7 @@ ps{
                 other{"{0} ly"}\r
             }\r
             meter{\r
-                dnam{"meter"}\r
+                dnam{"m"}\r
                 one{"{0} m"}\r
                 other{"{0} m"}\r
                 per{"{0}/m"}\r
@@ -1239,7 +1284,7 @@ ps{
                 other{"{0} µm"}\r
             }\r
             mile{\r
-                dnam{"miles"}\r
+                dnam{"ميلونه"}\r
                 one{"{0} mi"}\r
                 other{"{0} mi"}\r
             }\r
@@ -1279,7 +1324,7 @@ ps{
                 other{"{0} pt"}\r
             }\r
             yard{\r
-                dnam{"yards"}\r
+                dnam{"ګزه"}\r
                 one{"{0} yd"}\r
                 other{"{0} yd"}\r
             }\r
@@ -1293,12 +1338,12 @@ ps{
         }\r
         mass{\r
             carat{\r
-                dnam{"carats"}\r
+                dnam{"قيراط"}\r
                 one{"{0} CD"}\r
                 other{"{0} CD"}\r
             }\r
             gram{\r
-                dnam{"grams"}\r
+                dnam{"ګرامز"}\r
                 one{"{0} g"}\r
                 other{"{0} g"}\r
                 per{"{0}/g"}\r
@@ -1336,13 +1381,13 @@ ps{
                 other{"{0} oz t"}\r
             }\r
             pound{\r
-                dnam{"pounds"}\r
+                dnam{"پاونډز"}\r
                 one{"{0} lb"}\r
                 other{"{0} lb"}\r
                 per{"{0}/lb"}\r
             }\r
             ton{\r
-                dnam{"tons"}\r
+                dnam{"ټنز"}\r
                 one{"{0} tn"}\r
                 other{"{0} tn"}\r
             }\r
@@ -1374,12 +1419,17 @@ ps{
                 other{"{0} mW"}\r
             }\r
             watt{\r
-                dnam{"watts"}\r
+                dnam{"واټس"}\r
                 one{"{0} W"}\r
                 other{"{0} W"}\r
             }\r
         }\r
         pressure{\r
+            atmosphere{\r
+                dnam{"atm"}\r
+                one{"{0} atm"}\r
+                other{"{0} atm"}\r
+            }\r
             hectopascal{\r
                 dnam{"hPa"}\r
                 one{"{0} hPa"}\r
@@ -1499,7 +1549,7 @@ ps{
                 other{"{0} yd³"}\r
             }\r
             cup{\r
-                dnam{"cups"}\r
+                dnam{"پيالې"}\r
                 one{"{0} c"}\r
                 other{"{0} c"}\r
             }\r
@@ -1536,7 +1586,7 @@ ps{
                 other{"{0} hL"}\r
             }\r
             liter{\r
-                dnam{"liters"}\r
+                dnam{"ليټرز"}\r
                 one{"{0} L"}\r
                 other{"{0} L"}\r
                 per{"{0}/L"}\r
index 6679c28..a17f2fa 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 pt{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.65"}\r
     durationUnits{\r
         hm{"h:mm"}\r
         hms{"h:mm:ss"}\r
@@ -123,6 +123,16 @@ pt{
                 one{"{0} parte por milhão"}\r
                 other{"{0} partes por milhão"}\r
             }\r
+            percent{\r
+                dnam{"por cento"}\r
+                one{"{0} por cento"}\r
+                other{"{0} por cento"}\r
+            }\r
+            permille{\r
+                dnam{"por mil"}\r
+                one{"{0} por mil"}\r
+                other{"{0} por mil"}\r
+            }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
@@ -147,6 +157,7 @@ pt{
             }\r
         }\r
         coordinate{\r
+            dnam{"direção cardeal"}\r
             east{"{0}E"}\r
             north{"{0}N"}\r
             south{"{0}S"}\r
@@ -193,6 +204,11 @@ pt{
                 one{"{0} megabyte"}\r
                 other{"{0} megabytes"}\r
             }\r
+            petabyte{\r
+                dnam{"petabytes"}\r
+                one{"{0} petabyte"}\r
+                other{"{0} petabytes"}\r
+            }\r
             terabit{\r
                 dnam{"terabits"}\r
                 one{"{0} terabit"}\r
@@ -552,6 +568,11 @@ pt{
             }\r
         }\r
         pressure{\r
+            atmosphere{\r
+                dnam{"atmosferas"}\r
+                one{"{0} atmosfera"}\r
+                other{"{0} atmosferas"}\r
+            }\r
             hectopascal{\r
                 dnam{"hectopascais"}\r
                 one{"{0} hectopascal"}\r
@@ -806,6 +827,13 @@ pt{
         compound{\r
             per{"{0}/{1}"}\r
         }\r
+        concentr{\r
+            percent{\r
+                dnam{"%"}\r
+                one{"{0}%"}\r
+                other{"{0}%"}\r
+            }\r
+        }\r
         consumption{\r
             liter-per-100kilometers{\r
                 dnam{"l/100 km"}\r
@@ -814,6 +842,7 @@ pt{
             }\r
         }\r
         coordinate{\r
+            dnam{"direção"}\r
             east{"{0}E"}\r
             north{"{0}N"}\r
             south{"{0}S"}\r
@@ -1268,6 +1297,16 @@ pt{
                 one{"{0} ppm"}\r
                 other{"{0} ppm"}\r
             }\r
+            percent{\r
+                dnam{"por cento"}\r
+                one{"{0}%"}\r
+                other{"{0}%"}\r
+            }\r
+            permille{\r
+                dnam{"por mil"}\r
+                one{"{0}‰"}\r
+                other{"{0}‰"}\r
+            }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
@@ -1292,6 +1331,7 @@ pt{
             }\r
         }\r
         coordinate{\r
+            dnam{"direção"}\r
             east{"{0}E"}\r
             north{"{0}N"}\r
             south{"{0}S"}\r
@@ -1338,6 +1378,11 @@ pt{
                 one{"{0} MB"}\r
                 other{"{0} MB"}\r
             }\r
+            petabyte{\r
+                dnam{"PByte"}\r
+                one{"{0} PB"}\r
+                other{"{0} PB"}\r
+            }\r
             terabit{\r
                 dnam{"Tbit"}\r
                 one{"{0} Tb"}\r
@@ -1697,6 +1742,11 @@ pt{
             }\r
         }\r
         pressure{\r
+            atmosphere{\r
+                dnam{"atm"}\r
+                one{"{0} atm"}\r
+                other{"{0} atm"}\r
+            }\r
             hectopascal{\r
                 dnam{"hPa"}\r
                 one{"{0} hPa"}\r
index 30511ef..b75cb83 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 pt_PT{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.9"}\r
     units{\r
         acceleration{\r
             g-force{\r
index 8623e75..6993114 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 qu{\r
-    Version{"2.1.38.72"}\r
+    Version{"2.1.43.94"}\r
     durationUnits{\r
         hm{"h:mm"}\r
         hms{"h:mm:ss"}\r
index bb7d9bd..65af100 100644 (file)
@@ -1,6 +1,6 @@
 # © 2016 and later: Unicode, Inc. and others.\r
 # License & terms of use: http://www.unicode.org/copyright.html#License\r
-UNIT_CLDR_VERSION = 33.1\r
+UNIT_CLDR_VERSION = 34\r
 # A list of txt's to build\r
 # Note:\r
 #\r
@@ -86,38 +86,39 @@ UNIT_SOURCE = af.txt agq.txt ak.txt am.txt\
  fr_CA.txt fr_HT.txt fur.txt fy.txt ga.txt\\r
  gd.txt gl.txt gsw.txt gu.txt guz.txt\\r
  gv.txt ha.txt haw.txt he.txt hi.txt\\r
- hr.txt hsb.txt hu.txt hy.txt id.txt\\r
- ig.txt ii.txt is.txt it.txt ja.txt\\r
- jgo.txt jmc.txt ka.txt kab.txt kam.txt\\r
- kde.txt kea.txt khq.txt ki.txt kk.txt\\r
- kkj.txt kl.txt kln.txt km.txt kn.txt\\r
- ko.txt kok.txt ks.txt ksb.txt ksf.txt\\r
- ksh.txt kw.txt ky.txt lag.txt lb.txt\\r
- lg.txt lkt.txt ln.txt lo.txt lrc.txt\\r
- lt.txt lu.txt luo.txt luy.txt lv.txt\\r
- mas.txt mer.txt mfe.txt mg.txt mgh.txt\\r
- mgo.txt mk.txt ml.txt mn.txt mr.txt\\r
- ms.txt mt.txt mua.txt my.txt mzn.txt\\r
- naq.txt nb.txt nd.txt nds.txt ne.txt\\r
- nl.txt nmg.txt nn.txt nnh.txt nus.txt\\r
- nyn.txt om.txt or.txt os.txt pa.txt\\r
- pa_Arab.txt pa_Guru.txt pl.txt ps.txt pt.txt\\r
- pt_AO.txt pt_CH.txt pt_CV.txt pt_GQ.txt pt_GW.txt\\r
- pt_LU.txt pt_MO.txt pt_MZ.txt pt_PT.txt pt_ST.txt\\r
- pt_TL.txt qu.txt rm.txt rn.txt ro.txt\\r
- ro_MD.txt rof.txt ru.txt rw.txt rwk.txt\\r
- sah.txt saq.txt sbp.txt se.txt seh.txt\\r
+ hr.txt hsb.txt hu.txt hy.txt ia.txt\\r
+ id.txt ig.txt ii.txt is.txt it.txt\\r
+ ja.txt jgo.txt jmc.txt jv.txt ka.txt\\r
+ kab.txt kam.txt kde.txt kea.txt khq.txt\\r
+ ki.txt kk.txt kkj.txt kl.txt kln.txt\\r
+ km.txt kn.txt ko.txt kok.txt ks.txt\\r
+ ksb.txt ksf.txt ksh.txt ku.txt kw.txt\\r
+ ky.txt lag.txt lb.txt lg.txt lkt.txt\\r
+ ln.txt lo.txt lrc.txt lt.txt lu.txt\\r
+ luo.txt luy.txt lv.txt mas.txt mer.txt\\r
+ mfe.txt mg.txt mgh.txt mgo.txt mi.txt\\r
+ mk.txt ml.txt mn.txt mr.txt ms.txt\\r
+ mt.txt mua.txt my.txt mzn.txt naq.txt\\r
+ nb.txt nd.txt nds.txt ne.txt nl.txt\\r
+ nmg.txt nn.txt nnh.txt nus.txt nyn.txt\\r
+ om.txt or.txt os.txt pa.txt pa_Arab.txt\\r
+ pa_Guru.txt pl.txt ps.txt pt.txt pt_AO.txt\\r
+ pt_CH.txt pt_CV.txt pt_GQ.txt pt_GW.txt pt_LU.txt\\r
+ pt_MO.txt pt_MZ.txt pt_PT.txt pt_ST.txt pt_TL.txt\\r
+ qu.txt rm.txt rn.txt ro.txt ro_MD.txt\\r
+ rof.txt ru.txt rw.txt rwk.txt sah.txt\\r
+ saq.txt sbp.txt sd.txt se.txt seh.txt\\r
  ses.txt sg.txt shi.txt shi_Latn.txt shi_Tfng.txt\\r
  si.txt sk.txt sl.txt smn.txt sn.txt\\r
  so.txt sq.txt sr.txt sr_Cyrl.txt sr_Latn.txt\\r
  sv.txt sv_FI.txt sw.txt ta.txt te.txt\\r
- teo.txt tg.txt th.txt ti.txt to.txt\\r
- tr.txt tt.txt twq.txt tzm.txt ug.txt\\r
- uk.txt ur.txt ur_IN.txt uz.txt uz_Arab.txt\\r
- uz_Cyrl.txt uz_Latn.txt vai.txt vai_Latn.txt vai_Vaii.txt\\r
- vi.txt vun.txt wae.txt wo.txt xog.txt\\r
yav.txt yi.txt yo.txt yue.txt yue_Hans.txt\\r
- yue_Hant.txt zgh.txt zh.txt zh_Hans.txt zh_Hans_HK.txt\\r
- zh_Hans_MO.txt zh_Hans_SG.txt zh_Hant.txt zh_Hant_HK.txt zh_Hant_MO.txt\\r
- zu.txt\r
+ teo.txt tg.txt th.txt ti.txt tk.txt\\r
+ to.txt tr.txt tt.txt twq.txt tzm.txt\\r
+ ug.txt uk.txt ur.txt ur_IN.txt uz.txt\\r
+ uz_Arab.txt uz_Cyrl.txt uz_Latn.txt vai.txt vai_Latn.txt\\r
+ vai_Vaii.txt vi.txt vun.txt wae.txt wo.txt\\r
xh.txt xog.txt yav.txt yi.txt yo.txt\\r
+ yue.txt yue_Hans.txt yue_Hant.txt zgh.txt zh.txt\\r
+ zh_Hans.txt zh_Hans_HK.txt zh_Hans_MO.txt zh_Hans_SG.txt zh_Hant.txt\\r
+ zh_Hant_HK.txt zh_Hant_MO.txt zu.txt\r
 \r
index fb5892d..64d580d 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 rm{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.94"}\r
     durationUnits{\r
         hm{"h:mm"}\r
         hms{"h:mm:ss"}\r
index b1f5d4e..749df0d 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 ro{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.94"}\r
     durationUnits{\r
         hm{"h:mm"}\r
         hms{"h:mm:ss"}\r
@@ -143,6 +143,18 @@ ro{
                 one{"{0} parte pe milion"}\r
                 other{"{0} de părți pe milion"}\r
             }\r
+            percent{\r
+                dnam{"procent"}\r
+                few{"{0} procente"}\r
+                one{"{0} procent"}\r
+                other{"{0} de procente"}\r
+            }\r
+            permille{\r
+                dnam{"‰"}\r
+                few{"{0} la mie"}\r
+                one{"la mie"}\r
+                other{"{0} la mie"}\r
+            }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
@@ -171,6 +183,7 @@ ro{
             }\r
         }\r
         coordinate{\r
+            dnam{"punct cardinal"}\r
             east{"{0} E"}\r
             north{"{0} N"}\r
             south{"{0} S"}\r
@@ -225,6 +238,12 @@ ro{
                 one{"{0} megabyte"}\r
                 other{"{0} de megabyți"}\r
             }\r
+            petabyte{\r
+                dnam{"petabyți"}\r
+                few{"{0} petabyți"}\r
+                one{"{0} petabyte"}\r
+                other{"{0} de petabyți"}\r
+            }\r
             terabit{\r
                 dnam{"terabiți"}\r
                 few{"{0} terabiți"}\r
@@ -631,6 +650,12 @@ ro{
             }\r
         }\r
         pressure{\r
+            atmosphere{\r
+                dnam{"atmosfere"}\r
+                few{"{0} atmosfere"}\r
+                one{"{0} atmosferă"}\r
+                other{"{0} de atmosfere"}\r
+            }\r
             hectopascal{\r
                 dnam{"hectopascali"}\r
                 few{"{0} hectopascali"}\r
@@ -932,6 +957,14 @@ ro{
         compound{\r
             per{"{0}/{1}"}\r
         }\r
+        concentr{\r
+            percent{\r
+                dnam{"%"}\r
+                few{"{0}%"}\r
+                one{"{0}%"}\r
+                other{"{0}%"}\r
+            }\r
+        }\r
         consumption{\r
             liter-per-100kilometers{\r
                 dnam{"l/100 km"}\r
@@ -941,6 +974,7 @@ ro{
             }\r
         }\r
         coordinate{\r
+            dnam{"direcție"}\r
             east{"{0}E"}\r
             north{"{0}N"}\r
             south{"{0}S"}\r
@@ -1464,6 +1498,18 @@ ro{
                 one{"{0} ppm"}\r
                 other{"{0} ppm"}\r
             }\r
+            percent{\r
+                dnam{"%"}\r
+                few{"{0}%"}\r
+                one{"{0}%"}\r
+                other{"{0}%"}\r
+            }\r
+            permille{\r
+                dnam{"‰"}\r
+                few{"{0}‰"}\r
+                one{"{0}‰"}\r
+                other{"{0}‰"}\r
+            }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
@@ -1492,6 +1538,7 @@ ro{
             }\r
         }\r
         coordinate{\r
+            dnam{"direcție"}\r
             east{"{0}E"}\r
             north{"{0}N"}\r
             south{"{0}S"}\r
@@ -1546,6 +1593,12 @@ ro{
                 one{"{0} MB"}\r
                 other{"{0} MB"}\r
             }\r
+            petabyte{\r
+                dnam{"PB"}\r
+                few{"{0} PB"}\r
+                one{"{0} PB"}\r
+                other{"{0} PB"}\r
+            }\r
             terabit{\r
                 dnam{"Tb"}\r
                 few{"{0} Tb"}\r
@@ -1952,6 +2005,12 @@ ro{
             }\r
         }\r
         pressure{\r
+            atmosphere{\r
+                dnam{"atm"}\r
+                few{"{0} atm"}\r
+                one{"{0} atm"}\r
+                other{"{0} atm"}\r
+            }\r
             hectopascal{\r
                 dnam{"hPa"}\r
                 few{"{0} hPa"}\r
index 9bd7c77..4cd8a53 100644 (file)
@@ -4,7 +4,7 @@
  * ICU <specials> source: <path>/common/main/root.xml\r
  */\r
 root{\r
-    Version{"2.1.41.58"}\r
+    Version{"2.1.44.91"}\r
     durationUnits{\r
         hm{"h:mm"}\r
         hms{"h:mm:ss"}\r
@@ -108,6 +108,14 @@ root{
                 dnam{"ppm"}\r
                 other{"{0} ppm"}\r
             }\r
+            percent{\r
+                dnam{"%"}\r
+                other{"{0}%"}\r
+            }\r
+            permille{\r
+                dnam{"‰"}\r
+                other{"{0}‰"}\r
+            }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
@@ -128,6 +136,7 @@ root{
             }\r
         }\r
         coordinate{\r
+            dnam{"direction"}\r
             east{"{0}E"}\r
             north{"{0}N"}\r
             south{"{0}S"}\r
@@ -166,6 +175,10 @@ root{
                 dnam{"MB"}\r
                 other{"{0} MB"}\r
             }\r
+            petabyte{\r
+                dnam{"PB"}\r
+                other{"{0} PB"}\r
+            }\r
             terabit{\r
                 dnam{"Tb"}\r
                 other{"{0} Tb"}\r
@@ -306,7 +319,7 @@ root{
             }\r
             fathom{\r
                 dnam{"fm"}\r
-                other{"{0} fm"}\r
+                other{"{0} fth"}\r
             }\r
             foot{\r
                 dnam{"ft"}\r
@@ -460,6 +473,10 @@ root{
             }\r
         }\r
         pressure{\r
+            atmosphere{\r
+                dnam{"atm"}\r
+                other{"{0} atm"}\r
+            }\r
             hectopascal{\r
                 dnam{"hPa"}\r
                 other{"{0} hPa"}\r
index cf774ea..0059009 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 ru{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.45.15"}\r
     durationUnits{\r
         hm{"h:mm"}\r
         hms{"h:mm:ss"}\r
@@ -163,6 +163,20 @@ ru{
                 one{"{0} миллионная доля"}\r
                 other{"{0} миллионной доли"}\r
             }\r
+            percent{\r
+                dnam{"проценты"}\r
+                few{"{0} процента"}\r
+                many{"{0} процентов"}\r
+                one{"{0} процент"}\r
+                other{"{0} процента"}\r
+            }\r
+            permille{\r
+                dnam{"промилле"}\r
+                few{"{0} промилле"}\r
+                many{"{0} промилле"}\r
+                one{"{0} промилле"}\r
+                other{"{0} промилле"}\r
+            }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
@@ -195,6 +209,7 @@ ru{
             }\r
         }\r
         coordinate{\r
+            dnam{"направление"}\r
             east{"{0} восточной долготы"}\r
             north{"{0} северной широты"}\r
             south{"{0} южной широты"}\r
@@ -257,6 +272,13 @@ ru{
                 one{"{0} мегабайт"}\r
                 other{"{0} мегабайта"}\r
             }\r
+            petabyte{\r
+                dnam{"петабайты"}\r
+                few{"{0} петабайта"}\r
+                many{"{0} петабайт"}\r
+                one{"{0} петабайт"}\r
+                other{"{0} петабайта"}\r
+            }\r
             terabit{\r
                 dnam{"терабиты"}\r
                 few{"{0} терабита"}\r
@@ -746,6 +768,13 @@ ru{
             }\r
         }\r
         pressure{\r
+            atmosphere{\r
+                dnam{"атмосферы"}\r
+                few{"{0} атмосферы"}\r
+                many{"{0} атмосфер"}\r
+                one{"{0} атмосфера"}\r
+                other{"{0} атмосферы"}\r
+            }\r
             hectopascal{\r
                 dnam{"гектопаскали"}\r
                 few{"{0} гектопаскаля"}\r
@@ -799,7 +828,7 @@ ru{
             }\r
             meter-per-second{\r
                 dnam{"метры в секунду"}\r
-                few{"{0} Ð¼ÐµÑ\82Ñ\80а Ð² Ñ\81екÑ\83ндÑ\8bÑ\83"}\r
+                few{"{0} метра в секунду"}\r
                 many{"{0} метров в секунду"}\r
                 one{"{0} метр в секунду"}\r
                 other{"{0} метра в секунду"}\r
@@ -1096,6 +1125,15 @@ ru{
         compound{\r
             per{"{0}/{1}"}\r
         }\r
+        concentr{\r
+            percent{\r
+                dnam{"%"}\r
+                few{"{0}%"}\r
+                many{"{0}%"}\r
+                one{"{0}%"}\r
+                other{"{0}%"}\r
+            }\r
+        }\r
         consumption{\r
             liter-per-100kilometers{\r
                 dnam{"л/100 км"}\r
@@ -1106,6 +1144,7 @@ ru{
             }\r
         }\r
         coordinate{\r
+            dnam{"напр."}\r
             east{"{0} в. д."}\r
             north{"{0} с. ш."}\r
             south{"{0} ю. ш."}\r
@@ -1644,11 +1683,11 @@ ru{
                 per{"{0}/см²"}\r
             }\r
             square-foot{\r
-                dnam{"Ñ\84Ñ\83Ñ\82²"}\r
-                few{"{0} Ñ\84Ñ\83Ñ\82²"}\r
-                many{"{0} Ñ\84Ñ\83Ñ\82²"}\r
-                one{"{0} Ñ\84Ñ\83Ñ\82²"}\r
-                other{"{0} Ñ\84Ñ\83Ñ\82²"}\r
+                dnam{"фт²"}\r
+                few{"{0} фт²"}\r
+                many{"{0} фт²"}\r
+                one{"{0} фт²"}\r
+                other{"{0} фт²"}\r
             }\r
             square-inch{\r
                 dnam{"дюйм²"}\r
@@ -1722,6 +1761,20 @@ ru{
                 one{"{0} ppm"}\r
                 other{"{0} ppm"}\r
             }\r
+            percent{\r
+                dnam{"%"}\r
+                few{"{0} %"}\r
+                many{"{0} %"}\r
+                one{"{0} %"}\r
+                other{"{0} %"}\r
+            }\r
+            permille{\r
+                dnam{"‰"}\r
+                few{"{0} ‰"}\r
+                many{"{0} ‰"}\r
+                one{"{0} ‰"}\r
+                other{"{0} ‰"}\r
+            }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
@@ -1754,6 +1807,7 @@ ru{
             }\r
         }\r
         coordinate{\r
+            dnam{"направление"}\r
             east{"{0} в. д."}\r
             north{"{0} с. ш."}\r
             south{"{0} ю. ш."}\r
@@ -1816,6 +1870,13 @@ ru{
                 one{"{0} МБ"}\r
                 other{"{0} МБ"}\r
             }\r
+            petabyte{\r
+                dnam{"ПБ"}\r
+                few{"{0} ПБ"}\r
+                many{"{0} ПБ"}\r
+                one{"{0} ПБ"}\r
+                other{"{0} ПБ"}\r
+            }\r
             terabit{\r
                 dnam{"Тбит"}\r
                 few{"{0} Тбит"}\r
@@ -1848,7 +1909,7 @@ ru{
                 per{"{0}/д"}\r
             }\r
             hour{\r
-                dnam{"ч"}\r
+                dnam{"ч."}\r
                 few{"{0} ч."}\r
                 many{"{0} ч."}\r
                 one{"{0} ч."}\r
@@ -1893,11 +1954,11 @@ ru{
                 other{"{0} нс"}\r
             }\r
             second{\r
-                dnam{"с"}\r
-                few{"{0} с."}\r
-                many{"{0} с."}\r
-                one{"{0} с."}\r
-                other{"{0} с."}\r
+                dnam{"сек."}\r
+                few{"{0} сек."}\r
+                many{"{0} сек."}\r
+                one{"{0} сек."}\r
+                other{"{0} сек."}\r
                 per{"{0}/c"}\r
             }\r
             week{\r
@@ -2305,6 +2366,13 @@ ru{
             }\r
         }\r
         pressure{\r
+            atmosphere{\r
+                dnam{"атм"}\r
+                few{"{0} атм"}\r
+                many{"{0} атм"}\r
+                one{"{0} атм"}\r
+                other{"{0} атм"}\r
+            }\r
             hectopascal{\r
                 dnam{"гПа"}\r
                 few{"{0} гПа"}\r
@@ -2425,11 +2493,11 @@ ru{
                 per{"{0}/см³"}\r
             }\r
             cubic-foot{\r
-                dnam{"Ñ\84Ñ\83Ñ\82³"}\r
-                few{"{0} Ñ\84Ñ\83Ñ\82³"}\r
-                many{"{0} Ñ\84Ñ\83Ñ\82³"}\r
-                one{"{0} Ñ\84Ñ\83Ñ\82³"}\r
-                other{"{0} Ñ\84Ñ\83Ñ\82³"}\r
+                dnam{"фт³"}\r
+                few{"{0} фт³"}\r
+                many{"{0} фт³"}\r
+                one{"{0} фт³"}\r
+                other{"{0} фт³"}\r
             }\r
             cubic-inch{\r
                 dnam{"дюйм³"}\r
index 3bc3de7..990f6ec 100644 (file)
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 rw{\r
-    Version{"2.1.38.72"}\r
+    Version{"2.1.44.88"}\r
 }\r
index 1127196..eb18010 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 sah{\r
-    Version{"2.1.38.69"}\r
+    Version{"2.1.43.94"}\r
     durationUnits{\r
         hm{"h:mm"}\r
         hms{"h:mm:ss"}\r
diff --git a/source/data/unit/sd.txt b/source/data/unit/sd.txt
new file mode 100644 (file)
index 0000000..180f40e
--- /dev/null
@@ -0,0 +1,1643 @@
+// © 2016 and later: Unicode, Inc. and others.\r
+// License & terms of use: http://www.unicode.org/copyright.html#License\r
+sd{\r
+    Version{"2.1.43.94"}\r
+    durationUnits{\r
+        hm{"h:mm"}\r
+        hms{"h:mm:ss"}\r
+        ms{"m:ss"}\r
+    }\r
+    units{\r
+        acceleration{\r
+            g-force{\r
+                dnam{"ڪشش ثقل"}\r
+                one{"{0} ڪشش ثقل"}\r
+                other{"{0} ڪشش ثقل"}\r
+            }\r
+            meter-per-second-squared{\r
+                dnam{"ميٽر في سيڪنڊ اسڪوائر"}\r
+                one{"{0} m/s²"}\r
+                other{"{0} ميٽر في سيڪنڊ اسڪوائر"}\r
+            }\r
+        }\r
+        angle{\r
+            arc-minute{\r
+                dnam{"آرڪ منٽز"}\r
+                one{"{0} آرڪ منٽز"}\r
+                other{"{0} آرڪ منٽز"}\r
+            }\r
+            arc-second{\r
+                dnam{"آرڪ سيڪنڊز"}\r
+                one{"{0} آرڪ سيڪنڊز"}\r
+                other{"{0} آرڪ سيڪنڊز"}\r
+            }\r
+            degree{\r
+                dnam{"ڊگريز"}\r
+                one{"{0} ڊگريز"}\r
+                other{"{0} ڊگريز"}\r
+            }\r
+            radian{\r
+                dnam{"ريڊيئنز"}\r
+                one{"{0} ريڊيئنز"}\r
+                other{"{0} ريڊيئنز"}\r
+            }\r
+            revolution{\r
+                dnam{"گردش"}\r
+                one{"{0} گردشون"}\r
+                other{"{0} گردشون"}\r
+            }\r
+        }\r
+        area{\r
+            acre{\r
+                dnam{"ايڪڙ"}\r
+                one{"{0} ايڪڙ"}\r
+                other{"{0} ايڪڙ"}\r
+            }\r
+            hectare{\r
+                dnam{"هيڪٽر"}\r
+                one{"{0} هيڪٽر"}\r
+                other{"{0} هيڪٽر"}\r
+            }\r
+            square-centimeter{\r
+                dnam{"اسڪوائر سينٽي ميٽر"}\r
+                one{"{0} اسڪوائر سينٽي ميٽر"}\r
+                other{"{0} اسڪوائر سينٽي ميٽر"}\r
+                per{"{0} في اسڪوائر سينٽي ميٽر"}\r
+            }\r
+            square-foot{\r
+                dnam{"اسڪوائر فٽ"}\r
+                one{"{0} اسڪوائر فٽ"}\r
+                other{"{0} اسڪوائر فٽ"}\r
+            }\r
+            square-inch{\r
+                dnam{"اسڪوائر انچ"}\r
+                one{"{0} اسڪوائر انچ"}\r
+                other{"{0} اسڪوائر انچ"}\r
+                per{"{0} في اسڪوائر انچ"}\r
+            }\r
+            square-kilometer{\r
+                dnam{"اسڪوائر ڪلوميٽر"}\r
+                one{"{0} اسڪوائر ڪلوميٽر"}\r
+                other{"{0} اسڪوائر ڪلوميٽر"}\r
+                per{"{0} في اسڪوائر ڪلوميٽر"}\r
+            }\r
+            square-meter{\r
+                dnam{"اسڪوائر ميٽر"}\r
+                one{"{0} اسڪوائر ميٽر"}\r
+                other{"{0} اسڪوائر ميٽر"}\r
+                per{"{0} في اسڪوائر ميٽر"}\r
+            }\r
+            square-mile{\r
+                dnam{"اسڪوائر ميل"}\r
+                one{"{0} اسڪوائر ميل"}\r
+                other{"{0} اسڪوائر ميل"}\r
+                per{"{0} في اسڪوائر ميل"}\r
+            }\r
+            square-yard{\r
+                dnam{"اسڪوائر يارڊ"}\r
+                one{"{0} ااسڪوائر يارڊ"}\r
+                other{"{0} ااسڪوائر يارڊ"}\r
+            }\r
+        }\r
+        compound{\r
+            per{"في {1} تي {0}"}\r
+        }\r
+        concentr{\r
+            karat{\r
+                dnam{"قيراط"}\r
+                one{"{0} قيراط"}\r
+                other{"{0} قيراط"}\r
+            }\r
+            milligram-per-deciliter{\r
+                dnam{"ملي گرامز في ڊيسي ليٽر"}\r
+                one{"{0} mg/dL"}\r
+                other{"{0} ملي گرامز في ڊيسي ليٽر"}\r
+            }\r
+            millimole-per-liter{\r
+                dnam{"ملي مولز في ليٽر"}\r
+                one{"{0} ملي مولز في ليٽر"}\r
+                other{"{0} ملي مولز في ليٽر"}\r
+            }\r
+            part-per-million{\r
+                dnam{"حصا في ملين"}\r
+                one{"{0} حصا في ملين"}\r
+                other{"{0} حصا في ملين"}\r
+            }\r
+            percent{\r
+                dnam{"%"}\r
+                one{"{0}%"}\r
+                other{"{0}%"}\r
+            }\r
+            permille{\r
+                dnam{"‰"}\r
+                one{"{0}‰"}\r
+                other{"{0}‰"}\r
+            }\r
+        }\r
+        consumption{\r
+            liter-per-100kilometers{\r
+                dnam{"ليٽرز في 100 ڪلو ميٽر"}\r
+                one{"{0} L/100km"}\r
+                other{"{0} ليٽرز في 100 ڪلو ميٽر"}\r
+            }\r
+            liter-per-kilometer{\r
+                dnam{"ليٽرز في ڪلو ميٽر"}\r
+                one{"{0} ليٽرز في ڪلو ميٽر"}\r
+                other{"{0} ليٽرز في ڪلو ميٽر"}\r
+            }\r
+            mile-per-gallon{\r
+                dnam{"ميل في گيلن"}\r
+                one{"{0} ميل في گيلن"}\r
+                other{"{0} ميل في گيلن"}\r
+            }\r
+            mile-per-gallon-imperial{\r
+                dnam{"ميل في امپيريل گيلن"}\r
+                one{"{0} ميل في امپيريل گيلن"}\r
+                other{"{0} ميل في امپيريل گيلن"}\r
+            }\r
+        }\r
+        coordinate{\r
+            dnam{"ڪارڊينل ڊائريڪشن"}\r
+            east{"{0} اوڀر"}\r
+            north{"{0} اتر"}\r
+            south{"{0} ڏکڻ"}\r
+            west{"{0} اولهه"}\r
+        }\r
+        digital{\r
+            bit{\r
+                dnam{"بٽز"}\r
+                one{"{0} بٽ"}\r
+                other{"{0} بٽز"}\r
+            }\r
+            byte{\r
+                dnam{"بائيٽز"}\r
+                one{"{0} بائيٽ"}\r
+                other{"{0} بائيٽز"}\r
+            }\r
+            gigabit{\r
+                dnam{"گيگا بٽز"}\r
+                one{"{0} گيگا بٽز"}\r
+                other{"{0} گيگا بٽز"}\r
+            }\r
+            gigabyte{\r
+                dnam{"گيگا بائيٽز"}\r
+                one{"{0} گيگا بائيٽز"}\r
+                other{"{0} گيگا بائيٽز"}\r
+            }\r
+            kilobit{\r
+                dnam{"ڪلو بٽز"}\r
+                one{"{0} ڪلو بٽز"}\r
+                other{"{0} ڪلو بٽز"}\r
+            }\r
+            kilobyte{\r
+                dnam{"ڪلو بائيٽز"}\r
+                one{"{0} ڪلو بائيٽز"}\r
+                other{"{0} ڪلو بائيٽز"}\r
+            }\r
+            megabit{\r
+                dnam{"ميگا بٽز"}\r
+                one{"{0} ميگا بٽز"}\r
+                other{"{0} ميگا بٽز"}\r
+            }\r
+            megabyte{\r
+                dnam{"ميگا بائيٽز"}\r
+                one{"{0} ميگا بائيٽز"}\r
+                other{"{0} ميگا بائيٽز"}\r
+            }\r
+            petabyte{\r
+                dnam{"پيرا بائيٽس"}\r
+                one{"{0} پيرا بائيٽس"}\r
+                other{"{0} پيرا بائيٽس"}\r
+            }\r
+            terabit{\r
+                dnam{"ٽيرا بٽز"}\r
+                one{"{0} ٽيرا بٽز"}\r
+                other{"{0} ٽيرا بٽز"}\r
+            }\r
+            terabyte{\r
+                dnam{"ٽيرا بائيٽز"}\r
+                one{"{0} ٽيرا بائيٽز"}\r
+                other{"{0} ٽيرا بائيٽز"}\r
+            }\r
+        }\r
+        duration{\r
+            century{\r
+                dnam{"صديون"}\r
+                one{"{0} c"}\r
+                other{"{0} صديون"}\r
+            }\r
+            day{\r
+                dnam{"ڏينهن"}\r
+                one{"{0} ڏينهن"}\r
+                other{"{0} ڏينهن"}\r
+                per{"{0} في ڏينهن"}\r
+            }\r
+            hour{\r
+                dnam{"ڪلاڪ"}\r
+                one{"{0} ڪلاڪ"}\r
+                other{"{0} ڪلاڪ"}\r
+                per{"{0} في ڪلاڪ"}\r
+            }\r
+            microsecond{\r
+                dnam{"مائڪرو سيڪنڊ"}\r
+                one{"{0} مائڪرو سيڪنڊ"}\r
+                other{"{0} مائڪرو سيڪنڊ"}\r
+            }\r
+            millisecond{\r
+                dnam{"ملي سيڪنڊ"}\r
+                one{"{0} ملي سيڪنڊ"}\r
+                other{"{0} ملي سيڪنڊ"}\r
+            }\r
+            minute{\r
+                dnam{"منٽ"}\r
+                one{"{0} منٽ"}\r
+                other{"{0} منٽ"}\r
+                per{"{0} في منٽ"}\r
+            }\r
+            month{\r
+                dnam{"مهينا"}\r
+                one{"{0} مهينا"}\r
+                other{"{0} مهينا"}\r
+                per{"{0} في مهيني"}\r
+            }\r
+            nanosecond{\r
+                dnam{"نينو سيڪنڊ"}\r
+                one{"{0} نينو سيڪنڊ"}\r
+                other{"{0} نينو سيڪنڊ"}\r
+            }\r
+            second{\r
+                dnam{"سيڪنڊ"}\r
+                one{"{0} في سيڪنڊ"}\r
+                other{"{0} سيڪنڊ"}\r
+                per{"{0} في سيڪنڊ"}\r
+            }\r
+            week{\r
+                dnam{"هفتا"}\r
+                one{"{0} هفتا"}\r
+                other{"{0} هفتا"}\r
+                per{"{0} في هفتي"}\r
+            }\r
+            year{\r
+                dnam{"سال"}\r
+                one{"{0} سال"}\r
+                other{"{0} سال"}\r
+                per{"{0} في سال"}\r
+            }\r
+        }\r
+        electric{\r
+            ampere{\r
+                dnam{"ایمپئیر"}\r
+                one{"{0} ایمپئیر"}\r
+                other{"{0} ایمپئیر"}\r
+            }\r
+            milliampere{\r
+                dnam{"ملي ايمپئير"}\r
+                one{"{0} ملي ايمپئير"}\r
+                other{"{0} ملي ايمپئير"}\r
+            }\r
+            ohm{\r
+                dnam{"اوهمس"}\r
+                one{"{0} اوهم"}\r
+                other{"{0} اوهمس"}\r
+            }\r
+            volt{\r
+                dnam{"وولٽز"}\r
+                one{"{0} وولٽ"}\r
+                other{"{0} وولٽز"}\r
+            }\r
+        }\r
+        energy{\r
+            calorie{\r
+                dnam{"ڪيلوري"}\r
+                one{"{0} ڪيلوري"}\r
+                other{"{0} ڪيلوريز"}\r
+            }\r
+            foodcalorie{\r
+                dnam{"ڪيلوريز"}\r
+                one{"{0} ڪيلوري"}\r
+                other{"{0} ڪيلوريز"}\r
+            }\r
+            joule{\r
+                dnam{"جول"}\r
+                one{"{0} جول"}\r
+                other{"{0} جولز"}\r
+            }\r
+            kilocalorie{\r
+                dnam{"ڪلو ڪيلوريز"}\r
+                one{"{0} ڪلو ڪيلوريز"}\r
+                other{"{0} ڪلو ڪيلوريز"}\r
+            }\r
+            kilojoule{\r
+                dnam{"ڪلو جولز"}\r
+                one{"{0} ڪلو جول"}\r
+                other{"{0} ڪلو جولز"}\r
+            }\r
+            kilowatt-hour{\r
+                dnam{"ڪلو واٽ في ڪلاڪ"}\r
+                one{"{0} ڪلو واٽ في ڪلڪ"}\r
+                other{"{0} ڪلو واٽ في ڪلڪ"}\r
+            }\r
+        }\r
+        frequency{\r
+            gigahertz{\r
+                dnam{"گيگا هرٽز"}\r
+                one{"{0} گيگا هرٽز"}\r
+                other{"{0} گيگا هرٽز"}\r
+            }\r
+            hertz{\r
+                dnam{"هرٽز"}\r
+                one{"{0} هرٽز"}\r
+                other{"{0} هرٽز"}\r
+            }\r
+            kilohertz{\r
+                dnam{"ڪلو هرٽز"}\r
+                one{"{0} ڪلو هرٽز"}\r
+                other{"{0} ڪلو هرٽز"}\r
+            }\r
+            megahertz{\r
+                dnam{"ميگا هرٽز"}\r
+                one{"{0} ميگا هرٽز"}\r
+                other{"{0} ميگا هرٽز"}\r
+            }\r
+        }\r
+        length{\r
+            astronomical-unit{\r
+                dnam{"فلڪيات جا يونٽ"}\r
+                one{"{0} فلڪيات جا يونٽ"}\r
+                other{"{0} فلڪيات جا يونٽ"}\r
+            }\r
+            centimeter{\r
+                dnam{"سينٽي ميٽر"}\r
+                one{"{0} سينٽي ميٽر"}\r
+                other{"{0} سينٽي ميٽر"}\r
+                per{"{0} في سينٽي ميٽر"}\r
+            }\r
+            decimeter{\r
+                dnam{"ڊيسي ميٽر"}\r
+                one{"{0} ڊيسي ميٽر"}\r
+                other{"{0} ڊيسي ميٽر"}\r
+            }\r
+            foot{\r
+                dnam{"فوٽ"}\r
+                one{"{0} فوٽ"}\r
+                other{"{0} فوٽ"}\r
+                per{"{0} في فوٽ"}\r
+            }\r
+            inch{\r
+                dnam{"انچ"}\r
+                one{"{0} انچ"}\r
+                other{"{0} انچ"}\r
+                per{"{0} في انچ"}\r
+            }\r
+            kilometer{\r
+                dnam{"ڪلوميٽر"}\r
+                one{"{0} ڪلوميٽر"}\r
+                other{"{0} ڪلوميٽر"}\r
+                per{"{0} في ڪلوميٽر"}\r
+            }\r
+            light-year{\r
+                dnam{"لائيٽ ايئرس"}\r
+                one{"{0} لائيٽ ايئرس"}\r
+                other{"{0} لائيٽ ايئرس"}\r
+            }\r
+            meter{\r
+                dnam{"ميٽر"}\r
+                one{"{0} ميٽر"}\r
+                other{"{0} ميٽر"}\r
+                per{"{0} في ميٽر"}\r
+            }\r
+            micrometer{\r
+                dnam{"مائڪرو ميٽر"}\r
+                one{"{0} مائڪرو ميٽر"}\r
+                other{"{0} مائڪرو ميٽر"}\r
+            }\r
+            mile{\r
+                dnam{"ميل"}\r
+                one{"{0} ميل"}\r
+                other{"{0} ميل"}\r
+            }\r
+            mile-scandinavian{\r
+                dnam{"اسڪینڊي نیویائي ميل"}\r
+                one{"{0} اسڪینڊي نیویائي ميل"}\r
+                other{"{0} اسڪینڊي نیویائي ميل"}\r
+            }\r
+            millimeter{\r
+                dnam{"ملي ميٽر"}\r
+                one{"{0} ملي ميٽر"}\r
+                other{"{0} ملي ميٽر"}\r
+            }\r
+            nanometer{\r
+                dnam{"نينو ميٽر"}\r
+                one{"{0} نينو ميٽر"}\r
+                other{"{0} نينو ميٽر"}\r
+            }\r
+            nautical-mile{\r
+                dnam{"سمندري ميل"}\r
+                one{"{0} سمندري ميل"}\r
+                other{"{0} سمندري ميل"}\r
+            }\r
+            parsec{\r
+                dnam{"پارسيڪ"}\r
+                one{"{0} pc"}\r
+                other{"{0} پارسيڪ"}\r
+            }\r
+            picometer{\r
+                dnam{"پيڪو ميٽر"}\r
+                one{"{0} پيڪو ميٽر"}\r
+                other{"{0} پيڪو ميٽر"}\r
+            }\r
+            point{\r
+                dnam{"پوائينٽون"}\r
+                one{"{0} پوائينٽون"}\r
+                other{"{0} پوائينٽون"}\r
+            }\r
+            yard{\r
+                dnam{"گز"}\r
+                one{"{0} گز"}\r
+                other{"{0} گز"}\r
+            }\r
+        }\r
+        light{\r
+            lux{\r
+                dnam{"لڪس"}\r
+                one{"{0} لڪس"}\r
+                other{"{0} لڪس"}\r
+            }\r
+        }\r
+        mass{\r
+            carat{\r
+                dnam{"ڪيرٽ"}\r
+                one{"{0} ڪيرٽ"}\r
+                other{"{0} ڪيرٽ"}\r
+            }\r
+            gram{\r
+                dnam{"گرامَ"}\r
+                one{"{0} گرام"}\r
+                other{"{0} گرامَ"}\r
+                per{"{0} في گرام"}\r
+            }\r
+            kilogram{\r
+                dnam{"ڪلوگرامَ"}\r
+                one{"{0} ڪلوگرام"}\r
+                other{"{0}ڪلوگرامَ"}\r
+                per{"{0} في ڪلوگرام"}\r
+            }\r
+            metric-ton{\r
+                dnam{"ميٽرڪ ٽَنَ"}\r
+                one{"{0} ميٽرڪ ٽَنُ"}\r
+                other{"{0} ميٽرڪ ٽَنَ"}\r
+            }\r
+            microgram{\r
+                dnam{"مائڪروگرامَ"}\r
+                one{"{0} مائڪروگرام"}\r
+                other{"{0} مائڪرو گرام"}\r
+            }\r
+            milligram{\r
+                dnam{"ملي گرامَ"}\r
+                one{"{0} ملي گرام"}\r
+                other{"{0} ملي گرامَ"}\r
+            }\r
+            ounce{\r
+                dnam{"اونس"}\r
+                one{"{0} اونس"}\r
+                other{"{0} اونس"}\r
+                per{"{0} في اونس"}\r
+            }\r
+            ounce-troy{\r
+                dnam{"ٽرائي اونس"}\r
+                one{"{0} ٽرائي اونس"}\r
+                other{"{0} ٽرائي اونس"}\r
+            }\r
+            pound{\r
+                dnam{"پائونڊ"}\r
+                one{"{0} پائونڊ"}\r
+                other{"{0} پائونڊ"}\r
+                per{"{0} في پائونڊ"}\r
+            }\r
+            ton{\r
+                dnam{"ٽن"}\r
+                one{"{0} ٽن"}\r
+                other{"{0} ٽن"}\r
+            }\r
+        }\r
+        power{\r
+            gigawatt{\r
+                dnam{"گيگا واٽ"}\r
+                one{"{0} گيگا واٽ"}\r
+                other{"{0} گيگا واٽز"}\r
+            }\r
+            horsepower{\r
+                dnam{"هارس پاور"}\r
+                one{"{0} هارس پاور"}\r
+                other{"{0} هارس پاور"}\r
+            }\r
+            kilowatt{\r
+                dnam{"ڪلو واٽز"}\r
+                one{"{0} ڪلو واٽ"}\r
+                other{"{0} ڪلو واٽز"}\r
+            }\r
+            megawatt{\r
+                dnam{"ميگا واٽز"}\r
+                one{"{0} ميگا واٽ"}\r
+                other{"{0} ميگا واٽز"}\r
+            }\r
+            milliwatt{\r
+                dnam{"ملي واٽز"}\r
+                one{"{0} ملي واٽ"}\r
+                other{"{0} ملي واٽز"}\r
+            }\r
+            watt{\r
+                dnam{"واٽز"}\r
+                one{"{0} واٽ"}\r
+                other{"{0} واٽز"}\r
+            }\r
+        }\r
+        pressure{\r
+            atmosphere{\r
+                dnam{"ايٽماس فيئر"}\r
+                one{"{0} ايٽماس فيئر"}\r
+                other{"{0} ايٽماس فيئر"}\r
+            }\r
+            hectopascal{\r
+                dnam{"هيڪٽوپاسڪلز"}\r
+                one{"{0} هيڪٽوپاسڪلز"}\r
+                other{"{0} هيڪٽوپاسڪلز"}\r
+            }\r
+            inch-hg{\r
+                dnam{"مرڪري جا انچز"}\r
+                one{"مرڪري جا {0} انچز"}\r
+                other{"مرڪري جا {0} انچز"}\r
+            }\r
+            millibar{\r
+                dnam{"ملي بارز"}\r
+                one{"{0} ملي بارز"}\r
+                other{"{0} ملي بارز"}\r
+            }\r
+            millimeter-of-mercury{\r
+                dnam{"مرڪري جو ملي ميٽر"}\r
+                one{"مرڪري جو {0} ملي ميٽر"}\r
+                other{"مرڪري جو {0} ملي ميٽر"}\r
+            }\r
+            pound-per-square-inch{\r
+                dnam{"پائونڊز في اسڪوائر انچ"}\r
+                one{"{0} psi"}\r
+                other{"{0} پائونڊز في اسڪوائر انچ"}\r
+            }\r
+        }\r
+        speed{\r
+            kilometer-per-hour{\r
+                dnam{"ڪلوميٽر في ڪلاڪ"}\r
+                one{"{0} ڪلوميٽر في ڪلاڪ"}\r
+                other{"{0} ڪلوميٽر في ڪلاڪ"}\r
+            }\r
+            knot{\r
+                dnam{"ناٽ"}\r
+                one{"{0} ناٽ"}\r
+                other{"{0} ناٽ"}\r
+            }\r
+            meter-per-second{\r
+                dnam{"ميٽر في سيڪنڊ"}\r
+                one{"{0} ميٽر في سيڪنڊ"}\r
+                other{"{0} ميٽر في سيڪنڊ"}\r
+            }\r
+            mile-per-hour{\r
+                dnam{"ميل في ڪلاڪ"}\r
+                one{"{0} ميل في ڪلاڪ"}\r
+                other{"{0} ميل في ڪلاڪ"}\r
+            }\r
+        }\r
+        temperature{\r
+            celsius{\r
+                dnam{"ڊگري سيلسيس"}\r
+                one{"{0} ڊگري سيلسيس"}\r
+                other{"{0} ڊگري سيلسيس"}\r
+            }\r
+            fahrenheit{\r
+                dnam{"ڊگريز فارن هائيٽ"}\r
+                one{"{0} ڊگريز فارن هائيٽ"}\r
+                other{"{0} ڊگريز فارن هائيٽ"}\r
+            }\r
+            generic{\r
+                dnam{"ڊگري"}\r
+                one{"{0} ڊگري"}\r
+                other{"{0} ڊگري"}\r
+            }\r
+            kelvin{\r
+                dnam{"ڪيلونز"}\r
+                one{"{0} ڪيلونز"}\r
+                other{"{0} ڪيلونز"}\r
+            }\r
+        }\r
+        volume{\r
+            acre-foot{\r
+                dnam{"ايڪڙ فٽ"}\r
+                one{"{0} ايڪڙ فٽ"}\r
+                other{"{0} ايڪڙ فٽ"}\r
+            }\r
+            centiliter{\r
+                dnam{"سينٽي ليٽر"}\r
+                one{"{0} سينٽي ليٽر"}\r
+                other{"{0} سينٽي ليٽر"}\r
+            }\r
+            cubic-centimeter{\r
+                dnam{"ڪيوبڪ سينٽي ميٽر"}\r
+                one{"{0} ڪيوبڪ سينٽي ميٽر"}\r
+                other{"{0} ڪيوبڪ سينٽي ميٽر"}\r
+                per{"{0} في ڪيوبڪ سينٽي ميٽر"}\r
+            }\r
+            cubic-foot{\r
+                dnam{"ڪيوبڪ فٽ"}\r
+                one{"{0} ڪيوبڪ فٽ"}\r
+                other{"{0} ڪيوبڪ فٽ"}\r
+            }\r
+            cubic-inch{\r
+                dnam{"ڪيوبڪ انچ"}\r
+                one{"{0} ڪيوبڪ انچ"}\r
+                other{"{0} ڪيوبڪ انچ"}\r
+            }\r
+            cubic-kilometer{\r
+                dnam{"ڪيوبڪ ڪلوميٽر"}\r
+                one{"{0} ڪيوبڪ ڪلوميٽر"}\r
+                other{"{0} ڪيوبڪ ڪلوميٽر"}\r
+            }\r
+            cubic-meter{\r
+                dnam{"ڪيوبڪ ميٽر"}\r
+                one{"{0} ڪيوبڪ ميٽر"}\r
+                other{"{0} ڪيوبڪ ميٽر"}\r
+                per{"{0} في ڪيوبڪ ميٽر"}\r
+            }\r
+            cubic-mile{\r
+                dnam{"ڪيوبڪ ميل"}\r
+                one{"{0} ڪيوبڪ ميل"}\r
+                other{"{0} ڪيوبڪ ميل"}\r
+            }\r
+            cubic-yard{\r
+                dnam{"ڪيوبڪ يارڊ"}\r
+                one{"{0} ڪيوبڪ يارڊ"}\r
+                other{"{0} ڪيوبڪ يارڊ"}\r
+            }\r
+            cup{\r
+                dnam{"ڪپ ماپو"}\r
+                one{"{0} ڪپ ماپو"}\r
+                other{"{0} ڪپ ماپو"}\r
+            }\r
+            cup-metric{\r
+                dnam{"ميٽرڪ ڪپ"}\r
+                one{"{0} ميٽرڪ ڪپ"}\r
+                other{"{0} ميٽرڪ ڪپ"}\r
+            }\r
+            deciliter{\r
+                dnam{"ڊيسي ليٽر"}\r
+                one{"{0} ڊيسي ليٽر"}\r
+                other{"{0} ڊيسي ليٽر"}\r
+            }\r
+            fluid-ounce{\r
+                dnam{"پاڻياٺ اونس"}\r
+                one{"{0} پاڻياٺ اونس"}\r
+                other{"{0} پاڻياٺ اونس"}\r
+            }\r
+            gallon{\r
+                dnam{"گيلن"}\r
+                one{"{0} گيلن"}\r
+                other{"{0} گيلن"}\r
+                per{"{0} في گيلن"}\r
+            }\r
+            gallon-imperial{\r
+                dnam{"امپيريل گيلن"}\r
+                one{"{0} امپيريل گيلن"}\r
+                other{"{0} امپيريل گيلن"}\r
+                per{"{0} في امپيريل گيلن"}\r
+            }\r
+            hectoliter{\r
+                dnam{"هيڪٽو ليٽر"}\r
+                one{"{0} هيڪٽو ليٽر"}\r
+                other{"{0} هيڪٽو ليٽر"}\r
+            }\r
+            liter{\r
+                dnam{"ليٽر"}\r
+                one{"{0} ليٽر"}\r
+                other{"{0} ليٽر"}\r
+                per{"{0} في ليٽر"}\r
+            }\r
+            megaliter{\r
+                dnam{"ميگا ليٽر"}\r
+                one{"{0} ميگا ليٽر"}\r
+                other{"{0} ميگا ليٽر"}\r
+            }\r
+            milliliter{\r
+                dnam{"ملي ليٽر"}\r
+                one{"{0} ملي ليٽر"}\r
+                other{"{0} ملي ليٽر"}\r
+            }\r
+            pint{\r
+                dnam{"پنٽ"}\r
+                one{"{0} پنٽ"}\r
+                other{"{0} پنٽ"}\r
+            }\r
+            pint-metric{\r
+                dnam{"ميٽرڪ پنٽ"}\r
+                one{"{0} ميٽرڪ پنٽ"}\r
+                other{"{0} ميٽرڪ پنٽ"}\r
+            }\r
+            quart{\r
+                dnam{"چوٿائي گيلن"}\r
+                one{"{0} چوٿائي گيلن"}\r
+                other{"{0} چوٿائي گيلن"}\r
+            }\r
+            tablespoon{\r
+                dnam{"کاڌي جا چمچا"}\r
+                one{"{0} کاڌي جا چمچا"}\r
+                other{"{0} کاڌي جا چمچا"}\r
+            }\r
+            teaspoon{\r
+                dnam{"چانهن جا چمچا"}\r
+                one{"{0} چانهن جا چمچا"}\r
+                other{"{0} چانهن جا چمچا"}\r
+            }\r
+        }\r
+    }\r
+    unitsNarrow{\r
+        compound{\r
+            per{"{0}/{1}"}\r
+        }\r
+        concentr{\r
+            percent{\r
+                dnam{"%"}\r
+                one{"{0}%"}\r
+                other{"{0}%"}\r
+            }\r
+        }\r
+        consumption{\r
+            liter-per-100kilometers{\r
+                dnam{"L/100km"}\r
+                one{"{0} L/100km"}\r
+                other{"{0} L/100km"}\r
+            }\r
+        }\r
+        coordinate{\r
+            dnam{"ڊائريڪشن"}\r
+            east{"{0} اوڀر"}\r
+            north{"{0} اتر"}\r
+            south{"{0} ڏکڻ"}\r
+            west{"{0} اولهه"}\r
+        }\r
+        duration{\r
+            day{\r
+                dnam{"ڏينهن"}\r
+                one{"{0} ڏينهن"}\r
+                other{"{0} ڏينهن"}\r
+            }\r
+            hour{\r
+                dnam{"ڪلاڪ"}\r
+                one{"{0} ڪلاڪ"}\r
+                other{"{0} ڪلاڪ"}\r
+            }\r
+            millisecond{\r
+                dnam{"ملي سيڪنڊ"}\r
+                one{"{0} ms"}\r
+                other{"{0} ms"}\r
+            }\r
+            minute{\r
+                dnam{"منٽ"}\r
+                one{"{0} منٽ"}\r
+                other{"{0} منٽ"}\r
+            }\r
+            month{\r
+                dnam{"مهينو"}\r
+                one{"{0} مهينا"}\r
+                other{"{0} مهينا"}\r
+            }\r
+            second{\r
+                dnam{"سيڪنڊ"}\r
+                one{"{0} s"}\r
+                other{"{0} سيڪنڊ"}\r
+            }\r
+            week{\r
+                dnam{"هفتو"}\r
+                one{"{0} هفتا"}\r
+                other{"{0} هفتي"}\r
+            }\r
+            year{\r
+                dnam{"سال"}\r
+                one{"{0} سال"}\r
+                other{"{0} سال"}\r
+            }\r
+        }\r
+        length{\r
+            centimeter{\r
+                dnam{"سينٽي ميٽر"}\r
+                one{"{0} cm"}\r
+                other{"{0} cm"}\r
+            }\r
+            kilometer{\r
+                dnam{"ڪلوميٽر"}\r
+                one{"{0} ڪلوميٽر"}\r
+                other{"{0} ڪلوميٽر"}\r
+            }\r
+            meter{\r
+                dnam{"ميٽر"}\r
+                one{"{0} ميٽر"}\r
+                other{"{0} ميٽر"}\r
+            }\r
+            millimeter{\r
+                dnam{"ملي ميٽر"}\r
+                one{"{0} ملي ميٽر"}\r
+                other{"{0} ملي ميٽر"}\r
+            }\r
+        }\r
+        mass{\r
+            gram{\r
+                dnam{"گرام"}\r
+                one{"{0}گـ."}\r
+                other{"{0}گـ."}\r
+                per{"{0}/گـ."}\r
+            }\r
+            kilogram{\r
+                dnam{"ڪ.گـ."}\r
+                one{"{0}ڪ.گـ."}\r
+                other{"{0}ڪ.گـ."}\r
+                per{"{0}/ڪ.گـ."}\r
+            }\r
+            metric-ton{\r
+                dnam{"ٽَـ"}\r
+                one{"{0}ٽَـ"}\r
+                other{"{0}ٽَـ"}\r
+            }\r
+            milligram{\r
+                dnam{"مـ.گـ."}\r
+                one{"{0}مـ.گـ."}\r
+                other{"{0}مـ.گـ."}\r
+            }\r
+        }\r
+        speed{\r
+            kilometer-per-hour{\r
+                dnam{"ڪلوميٽر في ڪلاڪ"}\r
+                one{"{0} km/h"}\r
+                other{"{0} km/h"}\r
+            }\r
+        }\r
+        temperature{\r
+            celsius{\r
+                dnam{"ڊگري سيلسيس"}\r
+                one{"{0}°C"}\r
+                other{"{0}°C"}\r
+            }\r
+        }\r
+        volume{\r
+            liter{\r
+                dnam{"ليٽر"}\r
+                one{"{0} ليٽر"}\r
+                other{"{0} ليٽر"}\r
+            }\r
+        }\r
+    }\r
+    unitsShort{\r
+        acceleration{\r
+            g-force{\r
+                dnam{"ڪشش ثقل"}\r
+                one{"{0} ڪشش ثقل"}\r
+                other{"{0} ڪشش ثقل"}\r
+            }\r
+            meter-per-second-squared{\r
+                dnam{"ميٽر في سيڪنڊ اسڪوائر"}\r
+                one{"{0} m/s²"}\r
+                other{"{0} m/s²"}\r
+            }\r
+        }\r
+        angle{\r
+            arc-minute{\r
+                dnam{"آرڪ منٽز"}\r
+                one{"{0} آرڪ منٽز"}\r
+                other{"{0} آرڪ منٽز"}\r
+            }\r
+            arc-second{\r
+                dnam{"آرڪ سيڪنڊز"}\r
+                one{"{0} آرڪ سيڪنڊز"}\r
+                other{"{0} آرڪ سيڪنڊز"}\r
+            }\r
+            degree{\r
+                dnam{"ڊگري"}\r
+                one{"{0} ڊگريز"}\r
+                other{"{0} ڊگريز"}\r
+            }\r
+            radian{\r
+                dnam{"ريڊيئن"}\r
+                one{"{0} ريڊيئنز"}\r
+                other{"{0} ريڊيئنز"}\r
+            }\r
+            revolution{\r
+                dnam{"گردش"}\r
+                one{"{0} گردشون"}\r
+                other{"{0} گردشون"}\r
+            }\r
+        }\r
+        area{\r
+            acre{\r
+                dnam{"ايڪڙ"}\r
+                one{"{0} ايڪڙ"}\r
+                other{"{0} ايڪڙ"}\r
+            }\r
+            hectare{\r
+                dnam{"هيڪٽر"}\r
+                one{"{0} هيڪٽر"}\r
+                other{"{0} هيڪٽر"}\r
+            }\r
+            square-centimeter{\r
+                dnam{"اسڪوائر سينٽي ميٽر"}\r
+                one{"{0} اسڪوائر سينٽي ميٽر"}\r
+                other{"{0} اسڪوائر سينٽي ميٽر"}\r
+                per{"{0} في اسڪوائر سينٽي ميٽر"}\r
+            }\r
+            square-foot{\r
+                dnam{"اسڪوائر فٽ"}\r
+                one{"{0} اسڪوائر فٽ"}\r
+                other{"{0} اسڪوائر فٽ"}\r
+            }\r
+            square-inch{\r
+                dnam{"اسڪوائر انچ"}\r
+                one{"{0} اسڪوائر انچ"}\r
+                other{"{0} اسڪوائر انچ"}\r
+                per{"{0} في اسڪوائر انچ"}\r
+            }\r
+            square-kilometer{\r
+                dnam{"اسڪوائر ڪلوميٽر"}\r
+                one{"{0} اسڪوائر ڪلوميٽر"}\r
+                other{"{0} اسڪوائر ڪلوميٽر"}\r
+                per{"{0} اسڪوائر ڪلوميٽر"}\r
+            }\r
+            square-meter{\r
+                dnam{"اسڪوائر ميٽر"}\r
+                one{"{0} اسڪوائر ميٽر"}\r
+                other{"{0} اسڪوائر ميٽر"}\r
+                per{"{0} في اسڪوائر ميٽر"}\r
+            }\r
+            square-mile{\r
+                dnam{"اسڪوائر ميل"}\r
+                one{"{0} اسڪوائر ميل"}\r
+                other{"{0} اسڪوائر ميل"}\r
+                per{"{0} في اسڪوائر ميل"}\r
+            }\r
+            square-yard{\r
+                dnam{"اسڪوائر يارڊ"}\r
+                one{"{0} ااسڪوائر يارڊ"}\r
+                other{"{0} ااسڪوائر يارڊ"}\r
+            }\r
+        }\r
+        compound{\r
+            per{"{0}/{1}"}\r
+        }\r
+        concentr{\r
+            karat{\r
+                dnam{"قيراط"}\r
+                one{"{0} قيراط"}\r
+                other{"{0} قيراط"}\r
+            }\r
+            milligram-per-deciliter{\r
+                dnam{"ملي گرامز في ڊيسي ليٽر"}\r
+                one{"{0} mg/dL"}\r
+                other{"{0} mg/dL"}\r
+            }\r
+            millimole-per-liter{\r
+                dnam{"ملي مولز في ليٽر"}\r
+                one{"{0} ملي مولز في ليٽر"}\r
+                other{"{0} ملي مولز في ليٽر"}\r
+            }\r
+            part-per-million{\r
+                dnam{"حصا في ملين"}\r
+                one{"{0} حصا في ملين"}\r
+                other{"{0} حصا في ملين"}\r
+            }\r
+            percent{\r
+                dnam{"%"}\r
+                one{"{0}%"}\r
+                other{"{0}%"}\r
+            }\r
+            permille{\r
+                dnam{"‰"}\r
+                one{"{0}‰"}\r
+                other{"{0}‰"}\r
+            }\r
+        }\r
+        consumption{\r
+            liter-per-100kilometers{\r
+                dnam{"L/100km"}\r
+                one{"{0} L/100km"}\r
+                other{"{0} L/100km"}\r
+            }\r
+            liter-per-kilometer{\r
+                dnam{"ليٽرز في ڪلو ميٽر"}\r
+                one{"{0} L/km"}\r
+                other{"{0} L/km"}\r
+            }\r
+            mile-per-gallon{\r
+                dnam{"ميل في گيلن"}\r
+                one{"{0} ميل في گيلن"}\r
+                other{"{0} ميل في گيلن"}\r
+            }\r
+            mile-per-gallon-imperial{\r
+                dnam{"ميل في امپيريل گيلن"}\r
+                one{"{0} ميل في امپيريل گيلن"}\r
+                other{"{0} ميل في امپيريل گيلن"}\r
+            }\r
+        }\r
+        coordinate{\r
+            dnam{"ڊائريڪشن"}\r
+            east{"{0} اوڀر"}\r
+            north{"{0} اتر"}\r
+            south{"{0} ڏکڻ"}\r
+            west{"{0} اولهه"}\r
+        }\r
+        digital{\r
+            bit{\r
+                dnam{"بٽ"}\r
+                one{"{0} بٽ"}\r
+                other{"{0} بٽ"}\r
+            }\r
+            byte{\r
+                dnam{"بائيٽ"}\r
+                one{"{0} بائيٽ"}\r
+                other{"{0} بائيٽ"}\r
+            }\r
+            gigabit{\r
+                dnam{"گيگا بٽ"}\r
+                one{"{0} گيگا بٽز"}\r
+                other{"{0} گيگا بٽز"}\r
+            }\r
+            gigabyte{\r
+                dnam{"گيگا بائيٽ"}\r
+                one{"{0} گيگا بائيٽز"}\r
+                other{"{0} گيگا بائيٽز"}\r
+            }\r
+            kilobit{\r
+                dnam{"ڪلو بٽ"}\r
+                one{"{0} ڪلو بٽز"}\r
+                other{"{0} ڪلو بٽز"}\r
+            }\r
+            kilobyte{\r
+                dnam{"ڪلو بائيٽ"}\r
+                one{"{0} ڪلو بائيٽز"}\r
+                other{"{0} ڪلو بائيٽز"}\r
+            }\r
+            megabit{\r
+                dnam{"ميگا بٽ"}\r
+                one{"{0} ميگا بٽز"}\r
+                other{"{0} ميگا بٽز"}\r
+            }\r
+            megabyte{\r
+                dnam{"ميگا بائيٽ"}\r
+                one{"{0} ميگا بائيٽز"}\r
+                other{"{0} ميگا بائيٽز"}\r
+            }\r
+            petabyte{\r
+                dnam{"پيرا بائيٽس"}\r
+                one{"{0} پيرا بائيٽس"}\r
+                other{"{0} پيرا بائيٽس"}\r
+            }\r
+            terabit{\r
+                dnam{"ٽيرا بٽز"}\r
+                one{"{0} ٽيرا بٽز"}\r
+                other{"{0} ٽيرا بٽز"}\r
+            }\r
+            terabyte{\r
+                dnam{"ٽيرا بائيٽز"}\r
+                one{"{0} ٽيرا بائيٽز"}\r
+                other{"{0} ٽيرا بائيٽز"}\r
+            }\r
+        }\r
+        duration{\r
+            century{\r
+                dnam{"c"}\r
+                one{"{0} c"}\r
+                other{"{0} c"}\r
+            }\r
+            day{\r
+                dnam{"ڏينهن"}\r
+                one{"{0} ڏينهن"}\r
+                other{"{0} ڏينهن"}\r
+                per{"{0} في ڏينهن"}\r
+            }\r
+            hour{\r
+                dnam{"ڪلاڪ"}\r
+                one{"{0} ڪلاڪ"}\r
+                other{"{0} ڪلاڪ"}\r
+                per{"{0} في ڪلاڪ"}\r
+            }\r
+            microsecond{\r
+                dnam{"مائڪرو سيڪنڊ"}\r
+                one{"{0} مائڪرو سيڪنڊ"}\r
+                other{"{0} مائڪرو سيڪنڊ"}\r
+            }\r
+            millisecond{\r
+                dnam{"ملي سيڪنڊ"}\r
+                one{"{0} ملي سيڪنڊ"}\r
+                other{"{0} ملي سيڪنڊ"}\r
+            }\r
+            minute{\r
+                dnam{"منٽ"}\r
+                one{"{0} منٽ"}\r
+                other{"{0} منٽ"}\r
+                per{"{0} في منٽ"}\r
+            }\r
+            month{\r
+                dnam{"مهينا"}\r
+                one{"{0} مهينا"}\r
+                other{"{0} مهينا"}\r
+                per{"{0} في مهيني"}\r
+            }\r
+            nanosecond{\r
+                dnam{"نينو سيڪنڊ"}\r
+                one{"{0} نينو سيڪنڊ"}\r
+                other{"{0} نينو سيڪنڊ"}\r
+            }\r
+            second{\r
+                dnam{"سيڪنڊ"}\r
+                one{"{0} في سيڪنڊ"}\r
+                other{"{0} في سيڪنڊ"}\r
+                per{"{0} في سيڪنڊ"}\r
+            }\r
+            week{\r
+                dnam{"هفتا"}\r
+                one{"{0} هفتا"}\r
+                other{"{0} هفتا"}\r
+                per{"{0} في هفتي"}\r
+            }\r
+            year{\r
+                dnam{"سال"}\r
+                one{"{0} سال"}\r
+                other{"{0} سال"}\r
+                per{"{0} في سال"}\r
+            }\r
+        }\r
+        electric{\r
+            ampere{\r
+                dnam{"ایمپئیر"}\r
+                one{"{0} ایمپئیر"}\r
+                other{"{0} ایمپئیر"}\r
+            }\r
+            milliampere{\r
+                dnam{"ملي ايمپئير"}\r
+                one{"{0} ملي ايمپئير"}\r
+                other{"{0} ملي ايمپئير"}\r
+            }\r
+            ohm{\r
+                dnam{"اوهمس"}\r
+                one{"{0} Ω"}\r
+                other{"{0} Ω"}\r
+            }\r
+            volt{\r
+                dnam{"وولٽ"}\r
+                one{"{0} وولٽ"}\r
+                other{"{0} وولٽ"}\r
+            }\r
+        }\r
+        energy{\r
+            calorie{\r
+                dnam{"ڪيلوري"}\r
+                one{"{0} ڪيلوري"}\r
+                other{"{0} ڪيلوري"}\r
+            }\r
+            foodcalorie{\r
+                dnam{"ڪيلوري"}\r
+                one{"{0} ڪيلوري"}\r
+                other{"{0} ڪيلوري"}\r
+            }\r
+            joule{\r
+                dnam{"جول"}\r
+                one{"{0} جول"}\r
+                other{"{0} جول"}\r
+            }\r
+            kilocalorie{\r
+                dnam{"ڪلو ڪيلوريز"}\r
+                one{"{0} ڪلو ڪيلوريز"}\r
+                other{"{0} ڪلو ڪيلوريز"}\r
+            }\r
+            kilojoule{\r
+                dnam{"ڪلو جول"}\r
+                one{"{0} ڪلو جول"}\r
+                other{"{0} ڪلو جول"}\r
+            }\r
+            kilowatt-hour{\r
+                dnam{"ڪلو واٽ في ڪلاڪ"}\r
+                one{"{0} ڪلو واٽ في ڪلڪ"}\r
+                other{"{0} ڪلو واٽ في ڪلڪ"}\r
+            }\r
+        }\r
+        frequency{\r
+            gigahertz{\r
+                dnam{"گيگا هرٽز"}\r
+                one{"{0} گيگا هرٽز"}\r
+                other{"{0} گيگا هرٽز"}\r
+            }\r
+            hertz{\r
+                dnam{"هرٽز"}\r
+                one{"{0} هرٽز"}\r
+                other{"{0} هرٽز"}\r
+            }\r
+            kilohertz{\r
+                dnam{"ڪلو هرٽز"}\r
+                one{"{0} ڪلو هرٽز"}\r
+                other{"{0} ڪلو هرٽز"}\r
+            }\r
+            megahertz{\r
+                dnam{"ميگا هرٽز"}\r
+                one{"{0} ميگا هرٽز"}\r
+                other{"{0} ميگا هرٽز"}\r
+            }\r
+        }\r
+        length{\r
+            astronomical-unit{\r
+                dnam{"فلڪيات جا يونٽ"}\r
+                one{"{0} فلڪيات جا يونٽ"}\r
+                other{"{0} فلڪيات جا يونٽ"}\r
+            }\r
+            centimeter{\r
+                dnam{"سينٽي ميٽر"}\r
+                one{"{0} سينٽي ميٽر"}\r
+                other{"{0} سينٽي ميٽر"}\r
+                per{"{0} في سينٽي ميٽر"}\r
+            }\r
+            decimeter{\r
+                dnam{"ڊيسي ميٽر"}\r
+                one{"{0} ڊيسي ميٽر"}\r
+                other{"{0} ڊيسي ميٽر"}\r
+            }\r
+            foot{\r
+                dnam{"فوٽ"}\r
+                one{"{0} فوٽ"}\r
+                other{"{0} فوٽ"}\r
+                per{"{0} في فوٽ"}\r
+            }\r
+            inch{\r
+                dnam{"انچ"}\r
+                one{"{0} انچ"}\r
+                other{"{0} انچ"}\r
+                per{"{0} في انچ"}\r
+            }\r
+            kilometer{\r
+                dnam{"ڪلوميٽر"}\r
+                one{"{0} ڪلوميٽر"}\r
+                other{"{0} ڪلوميٽر"}\r
+                per{"{0} في ڪلوميٽر"}\r
+            }\r
+            light-year{\r
+                dnam{"لائيٽ ايئرس"}\r
+                one{"{0} لائيٽ ايئرس"}\r
+                other{"{0} لائيٽ ايئرس"}\r
+            }\r
+            meter{\r
+                dnam{"ميٽر"}\r
+                one{"{0} ميٽر"}\r
+                other{"{0} ميٽر"}\r
+                per{"{0} في ميٽر"}\r
+            }\r
+            micrometer{\r
+                dnam{"مائڪرو ميٽر"}\r
+                one{"{0} مائڪرو ميٽر"}\r
+                other{"{0} مائڪرو ميٽر"}\r
+            }\r
+            mile{\r
+                dnam{"ميل"}\r
+                one{"{0} ميل"}\r
+                other{"{0} ميل"}\r
+            }\r
+            mile-scandinavian{\r
+                dnam{"اسڪینڊي نیویائي ميل"}\r
+                one{"{0} اسڪینڊي نیویائي ميل"}\r
+                other{"{0} اسڪینڊي نیویائي ميل"}\r
+            }\r
+            millimeter{\r
+                dnam{"ملي ميٽر"}\r
+                one{"{0} ملي ميٽر"}\r
+                other{"{0} ملي ميٽر"}\r
+            }\r
+            nanometer{\r
+                dnam{"نينو ميٽر"}\r
+                one{"{0} نينو ميٽر"}\r
+                other{"{0} نينو ميٽر"}\r
+            }\r
+            nautical-mile{\r
+                dnam{"سمندري ميل"}\r
+                one{"{0} سمندري ميل"}\r
+                other{"{0} سمندري ميل"}\r
+            }\r
+            parsec{\r
+                dnam{"پارسيڪ"}\r
+                one{"{0} pc"}\r
+                other{"{0} pc"}\r
+            }\r
+            picometer{\r
+                dnam{"پيڪو ميٽر"}\r
+                one{"{0} پيڪو ميٽر"}\r
+                other{"{0} پيڪو ميٽر"}\r
+            }\r
+            point{\r
+                dnam{"پوائينٽون"}\r
+                one{"{0} پوائينٽون"}\r
+                other{"{0} پوائينٽون"}\r
+            }\r
+            yard{\r
+                dnam{"گز"}\r
+                one{"{0} گز"}\r
+                other{"{0} گز"}\r
+            }\r
+        }\r
+        light{\r
+            lux{\r
+                dnam{"لڪس"}\r
+                one{"{0} لڪس"}\r
+                other{"{0} لڪس"}\r
+            }\r
+        }\r
+        mass{\r
+            carat{\r
+                dnam{"ڪيرٽ"}\r
+                one{"{0} ڪيرٽ"}\r
+                other{"{0} ڪيرٽ"}\r
+            }\r
+            gram{\r
+                dnam{"گرامَ"}\r
+                one{"{0} گـ"}\r
+                other{"{0} گـ."}\r
+                per{"{0}/گـ."}\r
+            }\r
+            kilogram{\r
+                dnam{"ڪلو گرام"}\r
+                one{"{0} ڪلو گرام"}\r
+                other{"{0} ڪ.گـ."}\r
+                per{"{0}/ڪ.گـ."}\r
+            }\r
+            metric-ton{\r
+                dnam{"ٽَـ"}\r
+                one{"{0} ٽَـ"}\r
+                other{"{0} ٽَـ"}\r
+            }\r
+            microgram{\r
+                dnam{"مائڪرو گرام"}\r
+                one{"{0} مائڪرو گرام"}\r
+                other{"{0} مائڪرو گرام"}\r
+            }\r
+            milligram{\r
+                dnam{"مـ.گـ."}\r
+                one{"{0} مـ.گـ."}\r
+                other{"{0} مـ.گـ."}\r
+            }\r
+            ounce{\r
+                dnam{"اونس"}\r
+                one{"{0} اونس"}\r
+                other{"{0} اونس"}\r
+                per{"{0} في اونس"}\r
+            }\r
+            ounce-troy{\r
+                dnam{"ٽرائي اونس"}\r
+                one{"{0} ٽرائي اونس"}\r
+                other{"{0} ٽرائي اونس"}\r
+            }\r
+            pound{\r
+                dnam{"پائونڊ"}\r
+                one{"{0} پائونڊ"}\r
+                other{"{0} پائونڊ"}\r
+                per{"{0} في پائونڊ"}\r
+            }\r
+            ton{\r
+                dnam{"ٽن"}\r
+                one{"{0} ٽن"}\r
+                other{"{0} ٽن"}\r
+            }\r
+        }\r
+        power{\r
+            gigawatt{\r
+                dnam{"گيگا واٽ"}\r
+                one{"{0} گيگا واٽ"}\r
+                other{"{0} گيگا واٽ"}\r
+            }\r
+            horsepower{\r
+                dnam{"هارس پاور"}\r
+                one{"{0} هارس پاور"}\r
+                other{"{0} هارس پاور"}\r
+            }\r
+            kilowatt{\r
+                dnam{"ڪلو واٽ"}\r
+                one{"{0} ڪلو واٽ"}\r
+                other{"{0} ڪلو واٽ"}\r
+            }\r
+            megawatt{\r
+                dnam{"ميگا واٽ"}\r
+                one{"{0} ميگا واٽ"}\r
+                other{"{0} ميگا واٽ"}\r
+            }\r
+            milliwatt{\r
+                dnam{"ملي واٽ"}\r
+                one{"{0} ملي واٽ"}\r
+                other{"{0} ملي واٽ"}\r
+            }\r
+            watt{\r
+                dnam{"واٽز"}\r
+                one{"{0} واٽ"}\r
+                other{"{0} واٽ"}\r
+            }\r
+        }\r
+        pressure{\r
+            atmosphere{\r
+                dnam{"ايٽماس فيئر"}\r
+                one{"{0} ايٽماس فيئر"}\r
+                other{"{0} ايٽماس فيئر"}\r
+            }\r
+            hectopascal{\r
+                dnam{"هيڪٽوپاسڪلز"}\r
+                one{"{0} هيڪٽوپاسڪلز"}\r
+                other{"{0} هيڪٽوپاسڪلز"}\r
+            }\r
+            inch-hg{\r
+                dnam{"مرڪري جا انچز"}\r
+                one{"مرڪري جا {0} انچز"}\r
+                other{"مرڪري جا {0} انچز"}\r
+            }\r
+            millibar{\r
+                dnam{"ملي بارز"}\r
+                one{"{0} ملي بارز"}\r
+                other{"{0} ملي بارز"}\r
+            }\r
+            millimeter-of-mercury{\r
+                dnam{"مرڪري جو ملي ميٽر"}\r
+                one{"مرڪري جو {0} ملي ميٽر"}\r
+                other{"مرڪري جو {0} ملي ميٽر"}\r
+            }\r
+            pound-per-square-inch{\r
+                dnam{"پائونڊز في اسڪوائر انچ"}\r
+                one{"{0} psi"}\r
+                other{"{0} psi"}\r
+            }\r
+        }\r
+        speed{\r
+            kilometer-per-hour{\r
+                dnam{"ڪلوميٽر في ڪلاڪ"}\r
+                one{"{0} ڪلوميٽر في ڪلاڪ"}\r
+                other{"{0} ڪلوميٽر في ڪلاڪ"}\r
+            }\r
+            knot{\r
+                dnam{"ناٽ"}\r
+                one{"{0} ناٽ"}\r
+                other{"{0} ناٽ"}\r
+            }\r
+            meter-per-second{\r
+                dnam{"ميٽر في سيڪنڊ"}\r
+                one{"{0} ميٽر في سيڪنڊ"}\r
+                other{"{0} ميٽر في سيڪنڊ"}\r
+            }\r
+            mile-per-hour{\r
+                dnam{"ميل في ڪلاڪ"}\r
+                one{"{0} ميل في ڪلاڪ"}\r
+                other{"{0} ميل في ڪلاڪ"}\r
+            }\r
+        }\r
+        temperature{\r
+            celsius{\r
+                dnam{"ڊگري سيلسيس"}\r
+                one{"{0} ڊگري سيلسيس"}\r
+                other{"{0} ڊگري سيلسيس"}\r
+            }\r
+            fahrenheit{\r
+                dnam{"ڊگريز فارن هائيٽ"}\r
+                one{"{0} ڊگريز فارن هائيٽ"}\r
+                other{"{0} ڊگريز فارن هائيٽ"}\r
+            }\r
+            generic{\r
+                dnam{"ڊگري"}\r
+                one{"{0} ڊگري"}\r
+                other{"{0} ڊگري"}\r
+            }\r
+            kelvin{\r
+                dnam{"ڪيلونز"}\r
+                one{"{0} ڪيلونز"}\r
+                other{"{0} ڪيلونز"}\r
+            }\r
+        }\r
+        volume{\r
+            acre-foot{\r
+                dnam{"ايڪڙ فٽ"}\r
+                one{"{0} ايڪڙ فٽ"}\r
+                other{"{0} ايڪڙ فٽ"}\r
+            }\r
+            centiliter{\r
+                dnam{"سينٽي ليٽر"}\r
+                one{"{0} سينٽي ليٽر"}\r
+                other{"{0} سينٽي ليٽر"}\r
+            }\r
+            cubic-centimeter{\r
+                dnam{"ڪيوبڪ سينٽي ميٽر"}\r
+                one{"{0} ڪيوبڪ سينٽي ميٽر"}\r
+                other{"{0} ڪيوبڪ سينٽي ميٽر"}\r
+                per{"{0} في ڪيوبڪ سينٽي ميٽر"}\r
+            }\r
+            cubic-foot{\r
+                dnam{"ڪيوبڪ فٽ"}\r
+                one{"{0} ڪيوبڪ فٽ"}\r
+                other{"{0} ڪيوبڪ فٽ"}\r
+            }\r
+            cubic-inch{\r
+                dnam{"ڪيوبڪ انچ"}\r
+                one{"{0} ڪيوبڪ انچ"}\r
+                other{"{0} ڪيوبڪ انچ"}\r
+            }\r
+            cubic-kilometer{\r
+                dnam{"ڪيوبڪ ڪلوميٽر"}\r
+                one{"{0} ڪيوبڪ ڪلوميٽر"}\r
+                other{"{0} ڪيوبڪ ڪلوميٽر"}\r
+            }\r
+            cubic-meter{\r
+                dnam{"ڪيوبڪ ميٽر"}\r
+                one{"{0} ڪيوبڪ ميٽر"}\r
+                other{"{0} ڪيوبڪ ميٽر"}\r
+                per{"{0} في ڪيوبڪ ميٽر"}\r
+            }\r
+            cubic-mile{\r
+                dnam{"ڪيوبڪ ميل"}\r
+                one{"{0} ڪيوبڪ ميل"}\r
+                other{"{0} ڪيوبڪ ميل"}\r
+            }\r
+            cubic-yard{\r
+                dnam{"ڪيوبڪ يارڊ"}\r
+                one{"{0} ڪيوبڪ يارڊ"}\r
+                other{"{0} ڪيوبڪ يارڊ"}\r
+            }\r
+            cup{\r
+                dnam{"ڪپ ماپو"}\r
+                one{"{0} ڪپ ماپو"}\r
+                other{"{0} ڪپ ماپو"}\r
+            }\r
+            cup-metric{\r
+                dnam{"ميٽرڪ ڪپ"}\r
+                one{"{0} ميٽرڪ ڪپ"}\r
+                other{"{0} ميٽرڪ ڪپ"}\r
+            }\r
+            deciliter{\r
+                dnam{"ڊيسي ليٽر"}\r
+                one{"{0} ڊيسي ليٽر"}\r
+                other{"{0} ڊيسي ليٽر"}\r
+            }\r
+            fluid-ounce{\r
+                dnam{"پاڻياٺ اونس"}\r
+                one{"{0} پاڻياٺ اونس"}\r
+                other{"{0} پاڻياٺ اونس"}\r
+            }\r
+            gallon{\r
+                dnam{"گيلن"}\r
+                one{"{0} گيلن"}\r
+                other{"{0} گيلن"}\r
+                per{"{0} في گيلن"}\r
+            }\r
+            gallon-imperial{\r
+                dnam{"امپيريل گيلن"}\r
+                one{"{0} امپيريل گيلن"}\r
+                other{"{0} امپيريل گيلن"}\r
+                per{"{0} في امپيريل گيلن"}\r
+            }\r
+            hectoliter{\r
+                dnam{"هيڪٽو ليٽر"}\r
+                one{"{0} هيڪٽو ليٽر"}\r
+                other{"{0} هيڪٽو ليٽر"}\r
+            }\r
+            liter{\r
+                dnam{"ليٽر"}\r
+                one{"{0} ليٽر"}\r
+                other{"{0} ليٽر"}\r
+                per{"{0} في ليٽر"}\r
+            }\r
+            megaliter{\r
+                dnam{"ميگا ليٽر"}\r
+                one{"{0} ميگا ليٽر"}\r
+                other{"{0} ميگا ليٽر"}\r
+            }\r
+            milliliter{\r
+                dnam{"ملي ليٽر"}\r
+                one{"{0} ملي ليٽر"}\r
+                other{"{0} ملي ليٽر"}\r
+            }\r
+            pint{\r
+                dnam{"پنٽ"}\r
+                one{"{0} پنٽ"}\r
+                other{"{0} پنٽ"}\r
+            }\r
+            pint-metric{\r
+                dnam{"ميٽرڪ پنٽ"}\r
+                one{"{0} ميٽرڪ پنٽ"}\r
+                other{"{0} ميٽرڪ پنٽ"}\r
+            }\r
+            quart{\r
+                dnam{"چوٿائي گيلن"}\r
+                one{"{0} چوٿائي گيلن"}\r
+                other{"{0} چوٿائي گيلن"}\r
+            }\r
+            tablespoon{\r
+                dnam{"کاڌي جا چمچا"}\r
+                one{"{0} کاڌي جا چمچا"}\r
+                other{"{0} کاڌي جا چمچا"}\r
+            }\r
+            teaspoon{\r
+                dnam{"چانهن جا چمچا"}\r
+                one{"{0} چانهن جا چمچا"}\r
+                other{"{0} چانهن جا چمچا"}\r
+            }\r
+        }\r
+    }\r
+}\r
index 6b3b628..c04c7b5 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 se{\r
-    Version{"2.1.38.69"}\r
+    Version{"2.1.43.94"}\r
     durationUnits{\r
         hm{"h:mm"}\r
         hms{"h:mm:ss"}\r
index 0d69ec7..e85ca80 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 si{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.50"}\r
     durationUnits{\r
         hm{"h.mm"}\r
         hms{"h.mm.ss"}\r
@@ -123,6 +123,16 @@ si{
                 one{"මිලියනයට කොටස් {0}"}\r
                 other{"මිලියනයට කොටස් {0}"}\r
             }\r
+            percent{\r
+                dnam{"ප්‍රතිශතය"}\r
+                one{"ප්‍රතිශතය {0}"}\r
+                other{"ප්‍රතිශතය {0}"}\r
+            }\r
+            permille{\r
+                dnam{"ප්‍රතිසහශ්‍රක"}\r
+                one{"ප්‍රතිසහශ්‍රක {0}"}\r
+                other{"ප්‍රතිසහශ්‍රක {0}"}\r
+            }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
@@ -147,6 +157,7 @@ si{
             }\r
         }\r
         coordinate{\r
+            dnam{"කාර්ඩිනල් දිශාව"}\r
             east{"{0}නැ"}\r
             north{"{0}උ"}\r
             south{"{0}ද"}\r
@@ -193,6 +204,11 @@ si{
                 one{"මෙගාබයිට් {0}"}\r
                 other{"මෙගාබයිට් {0}"}\r
             }\r
+            petabyte{\r
+                dnam{"පෙටාබයිට්"}\r
+                one{"පෙටාබයිට් {0}"}\r
+                other{"පෙටාබයිට් {0}"}\r
+            }\r
             terabit{\r
                 dnam{"ටෙරාබිට්"}\r
                 one{"ටෙරාබිට් {0}"}\r
@@ -537,6 +553,11 @@ si{
             }\r
         }\r
         pressure{\r
+            atmosphere{\r
+                dnam{"වායුගෝල"}\r
+                one{"වායුගෝල {0}"}\r
+                other{"වායුගෝල {0}"}\r
+            }\r
             hectopascal{\r
                 dnam{"හෙක්ටොපැස්කල්"}\r
                 one{"හෙක්ටොපැස්කල් {0}"}\r
@@ -785,6 +806,13 @@ si{
         compound{\r
             per{"{0}/{1}"}\r
         }\r
+        concentr{\r
+            percent{\r
+                dnam{"%"}\r
+                one{"{0}%"}\r
+                other{"{0}%"}\r
+            }\r
+        }\r
         consumption{\r
             liter-per-100kilometers{\r
                 dnam{"ලී/කිමී100"}\r
@@ -793,6 +821,7 @@ si{
             }\r
         }\r
         coordinate{\r
+            dnam{"දිශාව"}\r
             east{"{0}නැ"}\r
             north{"{0}උ"}\r
             south{"{0}ද"}\r
@@ -1092,6 +1121,16 @@ si{
                 one{"{0} මිලිකො"}\r
                 other{"{0} මිලිකො"}\r
             }\r
+            percent{\r
+                dnam{"ප්‍රතිශතය"}\r
+                one{"{0}%"}\r
+                other{"{0}%"}\r
+            }\r
+            permille{\r
+                dnam{"‰"}\r
+                one{"{0}‰"}\r
+                other{"{0}‰"}\r
+            }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
@@ -1116,6 +1155,7 @@ si{
             }\r
         }\r
         coordinate{\r
+            dnam{"දිශාව"}\r
             east{"{0}නැ"}\r
             north{"{0}උ"}\r
             south{"{0}ද"}\r
@@ -1162,6 +1202,11 @@ si{
                 one{"මෙබ {0}"}\r
                 other{"මෙබ {0}"}\r
             }\r
+            petabyte{\r
+                dnam{"පෙබයිට්"}\r
+                one{"පෙබ {0}"}\r
+                other{"පෙබ {0}"}\r
+            }\r
             terabit{\r
                 dnam{"ටෙබිට්"}\r
                 one{"ටේබි {0}"}\r
@@ -1506,6 +1551,11 @@ si{
             }\r
         }\r
         pressure{\r
+            atmosphere{\r
+                dnam{"වායුගෝ"}\r
+                one{"වායුගෝ {0}"}\r
+                other{"වායුගෝ {0}"}\r
+            }\r
             hectopascal{\r
                 dnam{"හෙක්ටොපැස්කල්"}\r
                 one{"හෙ.පැ {0}"}\r
index d3b6d8c..117981a 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 sk{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.65"}\r
     durationUnits{\r
         hm{"h:mm"}\r
         hms{"h:mm:ss"}\r
@@ -163,6 +163,20 @@ sk{
                 one{"{0} milióntina"}\r
                 other{"{0} milióntin"}\r
             }\r
+            percent{\r
+                dnam{"percentá"}\r
+                few{"{0} percentá"}\r
+                many{"{0} percenta"}\r
+                one{"{0} percento"}\r
+                other{"{0} percent"}\r
+            }\r
+            permille{\r
+                dnam{"promile"}\r
+                few{"{0} promile"}\r
+                many{"{0} promile"}\r
+                one{"{0} promile"}\r
+                other{"{0} promile"}\r
+            }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
@@ -195,6 +209,7 @@ sk{
             }\r
         }\r
         coordinate{\r
+            dnam{"svetová strana"}\r
             east{"{0} E"}\r
             north{"{0} N"}\r
             south{"{0} S"}\r
@@ -257,6 +272,13 @@ sk{
                 one{"{0} megabajt"}\r
                 other{"{0} megabajtov"}\r
             }\r
+            petabyte{\r
+                dnam{"petabajty"}\r
+                few{"{0} petabajty"}\r
+                many{"{0} petabajtu"}\r
+                one{"{0} petabajt"}\r
+                other{"{0} petabajtov"}\r
+            }\r
             terabit{\r
                 dnam{"terabity"}\r
                 few{"{0} terabity"}\r
@@ -732,6 +754,13 @@ sk{
             }\r
         }\r
         pressure{\r
+            atmosphere{\r
+                dnam{"atmosféry"}\r
+                few{"{0} atmosféry"}\r
+                many{"{0} atmosféry"}\r
+                one{"{0} atmosféra"}\r
+                other{"{0} atmosfér"}\r
+            }\r
             hectopascal{\r
                 dnam{"hektopascaly"}\r
                 few{"{0} hektopascaly"}\r
@@ -1113,6 +1142,13 @@ sk{
                 one{"{0} kt"}\r
                 other{"{0} kt"}\r
             }\r
+            percent{\r
+                dnam{"%"}\r
+                few{"{0} %"}\r
+                many{"{0} %"}\r
+                one{"{0} %"}\r
+                other{"{0} %"}\r
+            }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
@@ -1136,6 +1172,7 @@ sk{
             }\r
         }\r
         coordinate{\r
+            dnam{"svetová strana"}\r
             east{"{0} E"}\r
             north{"{0} N"}\r
             south{"{0} S"}\r
@@ -1880,6 +1917,20 @@ sk{
                 one{"{0} ppm"}\r
                 other{"{0} ppm"}\r
             }\r
+            percent{\r
+                dnam{"%"}\r
+                few{"{0} %"}\r
+                many{"{0} %"}\r
+                one{"{0} %"}\r
+                other{"{0} %"}\r
+            }\r
+            permille{\r
+                dnam{"‰"}\r
+                few{"{0} ‰"}\r
+                many{"{0} ‰"}\r
+                one{"{0} ‰"}\r
+                other{"{0} ‰"}\r
+            }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
@@ -1912,6 +1963,7 @@ sk{
             }\r
         }\r
         coordinate{\r
+            dnam{"svetová strana"}\r
             east{"{0} E"}\r
             north{"{0} N"}\r
             south{"{0} S"}\r
@@ -1974,6 +2026,13 @@ sk{
                 one{"{0} MB"}\r
                 other{"{0} MB"}\r
             }\r
+            petabyte{\r
+                dnam{"PB"}\r
+                few{"{0} PB"}\r
+                many{"{0} PB"}\r
+                one{"{0} PB"}\r
+                other{"{0} PB"}\r
+            }\r
             terabit{\r
                 dnam{"Tb"}\r
                 few{"{0} Tb"}\r
@@ -2449,6 +2508,13 @@ sk{
             }\r
         }\r
         pressure{\r
+            atmosphere{\r
+                dnam{"atm"}\r
+                few{"{0} atm"}\r
+                many{"{0} atm"}\r
+                one{"{0} atm"}\r
+                other{"{0} atm"}\r
+            }\r
             hectopascal{\r
                 dnam{"hPa"}\r
                 few{"{0} hPa"}\r
index 1674096..da36d1e 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 sl{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.91"}\r
     durationUnits{\r
         hm{"h.mm"}\r
         hms{"h.mm.ss"}\r
@@ -163,6 +163,20 @@ sl{
                 other{"{0} delcev na milijon"}\r
                 two{"{0} delca na milijon"}\r
             }\r
+            percent{\r
+                dnam{"odstotek"}\r
+                few{"{0} %"}\r
+                one{"{0} odstotek"}\r
+                other{"{0} odstotkov"}\r
+                two{"{0} %"}\r
+            }\r
+            permille{\r
+                dnam{"promile"}\r
+                few{"{0} ‰"}\r
+                one{"{0} promile"}\r
+                other{"{0} promilov"}\r
+                two{"{0} ‰"}\r
+            }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
@@ -195,6 +209,7 @@ sl{
             }\r
         }\r
         coordinate{\r
+            dnam{"stran neba"}\r
             east{"{0} V"}\r
             north{"{0} S"}\r
             south{"{0} J"}\r
@@ -257,6 +272,13 @@ sl{
                 other{"{0} megabajtov"}\r
                 two{"{0} megabajta"}\r
             }\r
+            petabyte{\r
+                dnam{"petabajti"}\r
+                few{"{0} PB"}\r
+                one{"{0} petabajt"}\r
+                other{"{0} petabajtov"}\r
+                two{"{0} PB"}\r
+            }\r
             terabit{\r
                 dnam{"terabiti"}\r
                 few{"{0} terabiti"}\r
@@ -487,10 +509,10 @@ sl{
             }\r
             fathom{\r
                 dnam{"fm"}\r
-                few{"{0} fm"}\r
-                one{"{0} fm"}\r
-                other{"{0} fm"}\r
-                two{"{0} fm"}\r
+                few{"{0} fth"}\r
+                one{"{0} fth"}\r
+                other{"{0} fth"}\r
+                two{"{0} fth"}\r
             }\r
             foot{\r
                 dnam{"čevlji"}\r
@@ -746,6 +768,13 @@ sl{
             }\r
         }\r
         pressure{\r
+            atmosphere{\r
+                dnam{"atmosfere"}\r
+                few{"{0} atmosfere"}\r
+                one{"{0} atmosfera"}\r
+                other{"{0} atmosfer"}\r
+                two{"{0} atmosferi"}\r
+            }\r
             hectopascal{\r
                 dnam{"hektopaskali"}\r
                 few{"{0} hektopaskali"}\r
@@ -1096,6 +1125,15 @@ sl{
         compound{\r
             per{"{0}/{1}"}\r
         }\r
+        concentr{\r
+            percent{\r
+                dnam{"%"}\r
+                few{"{0} %"}\r
+                one{"{0} %"}\r
+                other{"{0} %"}\r
+                two{"{0} %"}\r
+            }\r
+        }\r
         consumption{\r
             liter-per-100kilometers{\r
                 dnam{"l/100 km"}\r
@@ -1106,6 +1144,7 @@ sl{
             }\r
         }\r
         coordinate{\r
+            dnam{"smer"}\r
             east{"{0} V"}\r
             north{"{0} S"}\r
             south{"{0} J"}\r
@@ -1222,10 +1261,10 @@ sl{
             }\r
             fathom{\r
                 dnam{"fm"}\r
-                few{"{0} fm"}\r
-                one{"{0} fm"}\r
-                other{"{0} fm"}\r
-                two{"{0} fm"}\r
+                few{"{0} fth"}\r
+                one{"{0} fth"}\r
+                other{"{0} fth"}\r
+                two{"{0} fth"}\r
             }\r
             foot{\r
                 dnam{"ft"}\r
@@ -1261,7 +1300,7 @@ sl{
             light-year{\r
                 dnam{"sv. let"}\r
                 few{"{0} sv. l."}\r
-                one{"{0} ly"}\r
+                one{"{0} sv. l."}\r
                 other{"{0} sv. l."}\r
                 two{"{0} sv. l."}\r
             }\r
@@ -1722,6 +1761,20 @@ sl{
                 other{"{0} ppm"}\r
                 two{"{0} ppm"}\r
             }\r
+            percent{\r
+                dnam{"odstotek"}\r
+                few{"{0} %"}\r
+                one{"{0} %"}\r
+                other{"{0} %"}\r
+                two{"{0} %"}\r
+            }\r
+            permille{\r
+                dnam{"promile"}\r
+                few{"{0} ‰"}\r
+                one{"{0} ‰"}\r
+                other{"{0} ‰"}\r
+                two{"{0} ‰"}\r
+            }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
@@ -1754,6 +1807,7 @@ sl{
             }\r
         }\r
         coordinate{\r
+            dnam{"smer"}\r
             east{"{0} V"}\r
             north{"{0} S"}\r
             south{"{0} J"}\r
@@ -1816,6 +1870,13 @@ sl{
                 other{"{0} MB"}\r
                 two{"{0} MB"}\r
             }\r
+            petabyte{\r
+                dnam{"PB"}\r
+                few{"{0} PB"}\r
+                one{"{0} PB"}\r
+                other{"{0} PB"}\r
+                two{"{0} PB"}\r
+            }\r
             terabit{\r
                 dnam{"Tb"}\r
                 few{"{0} Tb"}\r
@@ -2046,10 +2107,10 @@ sl{
             }\r
             fathom{\r
                 dnam{"fm"}\r
-                few{"{0} fm"}\r
-                one{"{0} fm"}\r
-                other{"{0} fm"}\r
-                two{"{0} fm"}\r
+                few{"{0} fth"}\r
+                one{"{0} fth"}\r
+                other{"{0} fth"}\r
+                two{"{0} fth"}\r
             }\r
             foot{\r
                 dnam{"ft"}\r
@@ -2305,6 +2366,13 @@ sl{
             }\r
         }\r
         pressure{\r
+            atmosphere{\r
+                dnam{"atm"}\r
+                few{"{0} atm"}\r
+                one{"{0} atm"}\r
+                other{"{0} atm"}\r
+                two{"{0} atm"}\r
+            }\r
             hectopascal{\r
                 dnam{"hPa"}\r
                 few{"{0} hPa"}\r
index 7724fa7..9b77be7 100644 (file)
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 sn{\r
-    Version{"2.1.39.11"}\r
+    Version{"2.1.43.94"}\r
 }\r
index c3835c3..2ea777b 100644 (file)
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 so{\r
-    Version{"2.1.38.69"}\r
+    Version{"2.1.43.94"}\r
+    durationUnits{\r
+        hm{"h:mm"}\r
+        hms{"h:mm:ss"}\r
+        ms{"m:ss"}\r
+    }\r
+    units{\r
+        acceleration{\r
+            g-force{\r
+                dnam{"cadaadis dib ku riixaya"}\r
+                one{"{0} cadaadis dib ku riixaya"}\r
+                other{"{0} cadaadis dib ku riixaya"}\r
+            }\r
+            meter-per-second-squared{\r
+                dnam{"mitir kasta daqiiqad labo jabbaaran"}\r
+                one{"mitir kastadaqiiqad labo jabbaaran"}\r
+                other{"{0} m/s²"}\r
+            }\r
+        }\r
+        angle{\r
+            arc-minute{\r
+                dnam{"aarkminit"}\r
+                one{"{0} aarkminit"}\r
+                other{"{0} aarkminit"}\r
+            }\r
+            arc-second{\r
+                dnam{"aarksekond"}\r
+                one{"{0}aarksekond"}\r
+                other{"{0}aarksekond"}\r
+            }\r
+            degree{\r
+                dnam{"darajo"}\r
+                one{"{0} darajo"}\r
+                other{"{0} darajo"}\r
+            }\r
+            radian{\r
+                dnam{"shucaac"}\r
+                one{"{0} shucaac"}\r
+                other{"{0} shucaac"}\r
+            }\r
+            revolution{\r
+                dnam{"wareeg"}\r
+                one{"{0} wareeg"}\r
+                other{"{0} wareeg"}\r
+            }\r
+        }\r
+        area{\r
+            acre{\r
+                dnam{"aakres"}\r
+                one{"{0} aakre"}\r
+                other{"{0} aakres"}\r
+            }\r
+            hectare{\r
+                dnam{"hektar"}\r
+                one{"hektar"}\r
+                other{"{0} hektar"}\r
+            }\r
+            square-centimeter{\r
+                dnam{"sentimitir jabbaaran"}\r
+                one{"sentimitir jabbaaran"}\r
+                other{"{0} sentimitir jabbaaran"}\r
+                per{"{0} sentimitir jabbaaran/ kasta"}\r
+            }\r
+            square-foot{\r
+                dnam{"fiit labo jabbaaran"}\r
+                one{"{0} fiit labo jabbaaran"}\r
+                other{"{0} fiit labo jabbaaran"}\r
+            }\r
+            square-inch{\r
+                dnam{"Injis labo jabbaaran"}\r
+                one{"{0} Inji labo jabbaaran"}\r
+                other{"{0} inji labo jabbaaran"}\r
+                per{"{0} Inji labo jabbaaran/kasta"}\r
+            }\r
+            square-kilometer{\r
+                dnam{"labo jabaaran kiilomitir"}\r
+                one{"{0} labo jabaaran kiilomitir"}\r
+                other{"{0} labo jabaaran kiilomitir"}\r
+                per{"{0} labo jabaaran kiilomitir kasta"}\r
+            }\r
+            square-meter{\r
+                dnam{"mitir jabbaaran"}\r
+                one{"{0} mitir jabbaaran"}\r
+                other{"{0} mitir jabbaaran"}\r
+                per{"{0} mitir jabbaaran/kasta"}\r
+            }\r
+            square-mile{\r
+                dnam{"meyl jabbaaran"}\r
+                one{"{0} meyl jabbaaran"}\r
+                other{"{0} meyl jabbaaran"}\r
+                per{"{0} meyl jabbaaran/kasta"}\r
+            }\r
+            square-yard{\r
+                dnam{"yaardi labo jabbaaran"}\r
+                one{"{0} yaardi labo jabbaaran"}\r
+                other{"{0} yaardi labo jabbaaran"}\r
+            }\r
+        }\r
+        compound{\r
+            per{"{0}/{1}"}\r
+        }\r
+        concentr{\r
+            karat{\r
+                dnam{"karaat"}\r
+                one{"{0} karaat"}\r
+                other{"{0} karaat"}\r
+            }\r
+            milligram-per-deciliter{\r
+                dnam{"milligaram baar desilitar"}\r
+                one{"{0} milligaram baar desilitar"}\r
+                other{"{0} milligaram baar desilitar"}\r
+            }\r
+            millimole-per-liter{\r
+                dnam{"millimool baar litar"}\r
+                one{"{0} millimool baar litar"}\r
+                other{"{0} millimool baar litar"}\r
+            }\r
+            part-per-million{\r
+                dnam{"baart baar milyan"}\r
+                one{"{0} baart baar milyan"}\r
+                other{"{0} baart baar milyan"}\r
+            }\r
+            percent{\r
+                dnam{"boqolkiiba"}\r
+                one{"{0} boqolkiiba"}\r
+                other{"{0} boqolkiiba"}\r
+            }\r
+            permille{\r
+                dnam{"baarmiil"}\r
+                one{"{0} baarmiil"}\r
+                other{"{0} baarmiil"}\r
+            }\r
+        }\r
+        consumption{\r
+            liter-per-100kilometers{\r
+                dnam{"litar baar 100 kiilomitir"}\r
+                one{"{0} litar baar 100 kiilomitir"}\r
+                other{"{0} litar baar 100 kiilomitir"}\r
+            }\r
+            liter-per-kilometer{\r
+                dnam{"litar baar kiilomitir"}\r
+                one{"litar baarkiilomitir"}\r
+                other{"{0} litar baar kiilomitirlitar baar kiilomitir"}\r
+            }\r
+            mile-per-gallon{\r
+                dnam{"meyl baar galoon"}\r
+                one{"{0} meyl baar galoon"}\r
+                other{"{0} meyl baar galoon"}\r
+            }\r
+            mile-per-gallon-imperial{\r
+                dnam{"meyl baar imb.galoon"}\r
+                one{"{0} meyl baar imb.galoon"}\r
+                other{"{0} meyl baar imb.galoon"}\r
+            }\r
+        }\r
+        coordinate{\r
+            dnam{"Jihada"}\r
+            east{"{0} Bari"}\r
+            north{"{0} Waqooyi"}\r
+            south{"{0} Koonfur"}\r
+            west{"{0} galbeed"}\r
+        }\r
+        digital{\r
+            bit{\r
+                dnam{"bit"}\r
+                one{"{0} bit"}\r
+                other{"{0} bit"}\r
+            }\r
+            byte{\r
+                dnam{"beyt"}\r
+                one{"{0} beyt"}\r
+                other{"{0} beyt"}\r
+            }\r
+            gigabit{\r
+                dnam{"gigabit"}\r
+                one{"{0} gigabit"}\r
+                other{"{0} gigabit"}\r
+            }\r
+            gigabyte{\r
+                dnam{"gigabeyt"}\r
+                one{"{0} gigabeyt"}\r
+                other{"{0} gigabeyt"}\r
+            }\r
+            kilobit{\r
+                dnam{"kilobit"}\r
+                one{"{0} kilobit"}\r
+                other{"{0} kilobit"}\r
+            }\r
+            kilobyte{\r
+                dnam{"kiiloobeyt"}\r
+                one{"{0} kiilobeyt"}\r
+                other{"{0} kilobeyt"}\r
+            }\r
+            megabit{\r
+                dnam{"megabits"}\r
+                one{"{0} megabit"}\r
+                other{"{0} megabit"}\r
+            }\r
+            megabyte{\r
+                dnam{"megabeyt"}\r
+                one{"{0} megabeyt"}\r
+                other{"{0} megabeyt"}\r
+            }\r
+            petabyte{\r
+                dnam{"betybeyt"}\r
+                one{"{0} betabeyt"}\r
+                other{"{0} betabeyt"}\r
+            }\r
+            terabit{\r
+                dnam{"terabit"}\r
+                one{"{0} terabit"}\r
+                other{"{0} terabit"}\r
+            }\r
+            terabyte{\r
+                dnam{"terabeyt"}\r
+                one{"{0} terabeyt"}\r
+                other{"{0} terabeyt"}\r
+            }\r
+        }\r
+        duration{\r
+            century{\r
+                dnam{"Qarniyaal"}\r
+                one{"Qarni"}\r
+                other{"{0} Qarniyaal"}\r
+            }\r
+            day{\r
+                dnam{"Maalmo"}\r
+                one{"{0} maalin"}\r
+                other{"{0} maalmooyin"}\r
+                per{"{0} maalin kasta"}\r
+            }\r
+            hour{\r
+                dnam{"saacado"}\r
+                one{"{0} saacad"}\r
+                other{"{0} saacado"}\r
+                per{"{0} saacad/kasta"}\r
+            }\r
+            microsecond{\r
+                dnam{"μs"}\r
+                one{"{0} μs"}\r
+                other{"{0} μs"}\r
+            }\r
+            millisecond{\r
+                dnam{"ms"}\r
+                one{"{0} ms"}\r
+                other{"{0} ms"}\r
+            }\r
+            minute{\r
+                dnam{"daqiiqadooyin"}\r
+                one{"{0} daqiiqad"}\r
+                other{"{0} daqiiqad"}\r
+                per{"{0} daqiiqad/kasta"}\r
+            }\r
+            month{\r
+                dnam{"Bilooyin"}\r
+                one{"{0}Bil"}\r
+                other{"{0}Bil"}\r
+                per{"{0}Bil kasta"}\r
+            }\r
+            nanosecond{\r
+                dnam{"ns"}\r
+                one{"{0} ns"}\r
+                other{"{0} ns"}\r
+            }\r
+            second{\r
+                dnam{"il-biriqsi"}\r
+                one{"{0} il-biriqsi"}\r
+                other{"{0} il-biriqsi"}\r
+                per{"{0} Il-biriqsi/Kasta"}\r
+            }\r
+            week{\r
+                dnam{"Usbuuc/Sitimaan"}\r
+                one{"Usbuuc/Sitimaan"}\r
+                other{"{0} Usbuucyo"}\r
+                per{"{0} Usbuuc kasta"}\r
+            }\r
+            year{\r
+                dnam{"Sannado"}\r
+                one{"{0} Sannad"}\r
+                other{"{0}Sannado"}\r
+                per{"{0} Sannad Kasta"}\r
+            }\r
+        }\r
+        electric{\r
+            ampere{\r
+                dnam{"amberes"}\r
+                one{"{0} ambeer"}\r
+                other{"{0} ambeer"}\r
+            }\r
+            milliampere{\r
+                dnam{"miliambeer"}\r
+                one{"{0}miliambeer"}\r
+                other{"{0}miliambeer"}\r
+            }\r
+            ohm{\r
+                dnam{"ohm"}\r
+                one{"{0} ohm"}\r
+                other{"{0} ohm"}\r
+            }\r
+            volt{\r
+                dnam{"foolt"}\r
+                one{"{0} foolt"}\r
+                other{"{0} foolt"}\r
+            }\r
+        }\r
+        energy{\r
+            calorie{\r
+                dnam{"kalooris"}\r
+                one{"{0} kalooris"}\r
+                other{"{0} kalooris"}\r
+            }\r
+            foodcalorie{\r
+                dnam{"kalooris"}\r
+                one{"{0} kalooris"}\r
+                other{"{0} kalooris"}\r
+            }\r
+            joule{\r
+                dnam{"Juul"}\r
+                one{"{0} juul"}\r
+                other{"{0} juuls"}\r
+            }\r
+            kilocalorie{\r
+                dnam{"kilokalooris"}\r
+                one{"{0} kilokalooris"}\r
+                other{"{0} kilokalooris"}\r
+            }\r
+            kilojoule{\r
+                dnam{"kilojoules"}\r
+                one{"{0} kiilojuul"}\r
+                other{"{0} kiilojuuls"}\r
+            }\r
+            kilowatt-hour{\r
+                dnam{"kiilowaat- saacado"}\r
+                one{"{0} kiilowaat saacaddiiba"}\r
+                other{"{0} kiilowaat saacaddiiba"}\r
+            }\r
+        }\r
+        frequency{\r
+            gigahertz{\r
+                dnam{"gigahaart"}\r
+                one{"{0} gigahaart"}\r
+                other{"{0} gigahaart"}\r
+            }\r
+            hertz{\r
+                dnam{"haarts"}\r
+                one{"{0} haarts"}\r
+                other{"{0} haarts"}\r
+            }\r
+            kilohertz{\r
+                dnam{"kiilohaarts"}\r
+                one{"{0} kiilohaarts"}\r
+                other{"{0} kiilohaarts"}\r
+            }\r
+            megahertz{\r
+                dnam{"meegahaarts"}\r
+                one{"{0} megahaarts"}\r
+                other{"{0} megahaarts"}\r
+            }\r
+        }\r
+        length{\r
+            astronomical-unit{\r
+                dnam{"unit-ka astronomikal"}\r
+                one{"unit-ka astronomikal"}\r
+                other{"{0} unit-ka astronomikal"}\r
+            }\r
+            centimeter{\r
+                dnam{"Sentimitir"}\r
+                one{"{0} sentimitir"}\r
+                other{"{0} sentimitir"}\r
+                per{"{0}/cm"}\r
+            }\r
+            decimeter{\r
+                dnam{"desimitir"}\r
+                one{"{0} desimitir"}\r
+                other{"{0} dsimitir"}\r
+            }\r
+            foot{\r
+                dnam{"fiit"}\r
+                one{"Fiit"}\r
+                other{"{0}Fiit"}\r
+                per{"{0}/ft"}\r
+            }\r
+            inch{\r
+                dnam{"Injis"}\r
+                one{"Injis"}\r
+                other{"{0} injis"}\r
+                per{"{0} inji/kasta"}\r
+            }\r
+            kilometer{\r
+                dnam{"Kiilo mitir"}\r
+                one{"Kiilo mitir"}\r
+                other{"{0}Kiilo mitir"}\r
+                per{"{0}/km"}\r
+            }\r
+            light-year{\r
+                dnam{"masaafada iftiinka"}\r
+                one{"Masaafada Iftiinka"}\r
+                other{"{0}masaafad iftiinka"}\r
+            }\r
+            meter{\r
+                dnam{"mitir"}\r
+                one{"{0} mitir"}\r
+                other{"{0} mitir"}\r
+                per{"{0} /m"}\r
+            }\r
+            micrometer{\r
+                dnam{"mikromitir"}\r
+                one{"{0} mikromitir"}\r
+                other{"{0} mikromitir"}\r
+            }\r
+            mile{\r
+                dnam{"Meyl"}\r
+                one{"{0} meyl"}\r
+                other{"{0} meyl"}\r
+            }\r
+            mile-scandinavian{\r
+                dnam{"meyl-iskandineyfiyaan"}\r
+                one{"{0} meyl-iskandineyfiyaan"}\r
+                other{"{0} meyl-iskanddineyfiyaan"}\r
+            }\r
+            millimeter{\r
+                dnam{"milimitir"}\r
+                one{"{0} milimitir"}\r
+                other{"{0} milimitir"}\r
+            }\r
+            nanometer{\r
+                dnam{"nanomitir"}\r
+                one{"{0} nanomitir"}\r
+                other{"{0} nanomitir"}\r
+            }\r
+            nautical-mile{\r
+                dnam{"Nuutikal meyl"}\r
+                one{"nuutika meyl"}\r
+                other{"{0} nuutikal meyl"}\r
+            }\r
+            parsec{\r
+                dnam{"Barseks"}\r
+                one{"{0} barseks"}\r
+                other{"{0} barseks"}\r
+            }\r
+            picometer{\r
+                dnam{"Bikomitir"}\r
+                one{"{0} bikomitir"}\r
+                other{"{0} bikomitir"}\r
+            }\r
+            point{\r
+                dnam{"dhibicyo"}\r
+                one{"{0} dhibic"}\r
+                other{"{0} dhibic"}\r
+            }\r
+            yard{\r
+                dnam{"Yaardi"}\r
+                one{"{0} yaardi"}\r
+                other{"{0} yaardi"}\r
+            }\r
+        }\r
+        light{\r
+            lux{\r
+                dnam{"laks"}\r
+                one{"{0} laks"}\r
+                other{"{0} laks"}\r
+            }\r
+        }\r
+        mass{\r
+            carat{\r
+                dnam{"karaats"}\r
+                one{"{0} karaats"}\r
+                other{"{0} karaats"}\r
+            }\r
+            gram{\r
+                dnam{"garaam"}\r
+                one{"{0} garaam"}\r
+                other{"{0} garaam"}\r
+                per{"{0} garaam kasta"}\r
+            }\r
+            kilogram{\r
+                dnam{"kiilogaraam"}\r
+                one{"{0} kiilogaraam"}\r
+                other{"{0} kiilogaraam"}\r
+                per{"{0} kiilogaraam"}\r
+            }\r
+            metric-ton{\r
+                dnam{"metrik ton"}\r
+                one{"{0} metrik ton"}\r
+                other{"{0} metrik ton"}\r
+            }\r
+            microgram{\r
+                dnam{"mikrogaraam"}\r
+                one{"{0}mikrogaraam"}\r
+                other{"{0}mikrogaraam"}\r
+            }\r
+            milligram{\r
+                dnam{"miligaraam"}\r
+                one{"{0} miligaraam"}\r
+                other{"{0} miligaraam"}\r
+            }\r
+            ounce{\r
+                dnam{"owns"}\r
+                one{"{0} owns"}\r
+                other{"{0} owns"}\r
+                per{"{0} owns kasta"}\r
+            }\r
+            ounce-troy{\r
+                dnam{"torooy owns"}\r
+                one{"{0} torooy owns"}\r
+                other{"{0} torooy owns"}\r
+            }\r
+            pound{\r
+                dnam{"bownd"}\r
+                one{"{0} bownd"}\r
+                other{"{0} bownd"}\r
+                per{"{0} bowndkiiba"}\r
+            }\r
+            ton{\r
+                dnam{"tan"}\r
+                one{"{0}tan"}\r
+                other{"{0}tan"}\r
+            }\r
+        }\r
+        power{\r
+            gigawatt{\r
+                dnam{"gigawaats"}\r
+                one{"{0} gigawaat"}\r
+                other{"{0} gigawaat"}\r
+            }\r
+            horsepower{\r
+                dnam{"korontadafardaha"}\r
+                one{"{0}korontadafardaha"}\r
+                other{"{0}korontadafardaha"}\r
+            }\r
+            kilowatt{\r
+                dnam{"kiilowaat"}\r
+                one{"{0} kiilowaat"}\r
+                other{"{0} kiilowaat"}\r
+            }\r
+            megawatt{\r
+                dnam{"meegawaat"}\r
+                one{"{0} meegawaat"}\r
+                other{"{0} meegawaat"}\r
+            }\r
+            milliwatt{\r
+                dnam{"miliwaat"}\r
+                one{"{0} miliwaat"}\r
+                other{"{0} miliwaat"}\r
+            }\r
+            watt{\r
+                dnam{"waat"}\r
+                one{"{0} waat"}\r
+                other{"{0} waat"}\r
+            }\r
+        }\r
+        pressure{\r
+            atmosphere{\r
+                dnam{"jawiga"}\r
+                one{"{0} jawiga"}\r
+                other{"{0} jawiga"}\r
+            }\r
+            hectopascal{\r
+                dnam{"hektobaskal"}\r
+                one{"{0}hektobaskals"}\r
+                other{"{0}hektobaskal"}\r
+            }\r
+            inch-hg{\r
+                dnam{"inji maarkuri"}\r
+                one{"{0} inji maarkuri"}\r
+                other{"{0} inji maarkuri"}\r
+            }\r
+            millibar{\r
+                dnam{"milibaars"}\r
+                one{"{0} milibaar"}\r
+                other{"{0} milibaar"}\r
+            }\r
+            millimeter-of-mercury{\r
+                dnam{"milimeter ee maarkuri"}\r
+                one{"{0} milimeter ee maarkuri"}\r
+                other{"{0} milimeter ee maarkuri"}\r
+            }\r
+            pound-per-square-inch{\r
+                dnam{"bownd baar inji labo jabbaaran"}\r
+                one{"{0} bownd baar inji labo jabbaaran"}\r
+                other{"{0} bownd baar inji labo jabbaaran"}\r
+            }\r
+        }\r
+        speed{\r
+            kilometer-per-hour{\r
+                dnam{"kiilomitir saacaddiiba"}\r
+                one{"{0} kiiomitir saacaddiiba"}\r
+                other{"{0} kiilomitir saacaddiiba"}\r
+            }\r
+            knot{\r
+                dnam{"gunnad"}\r
+                one{"{0} gunnad"}\r
+                other{"{0} gunnad"}\r
+            }\r
+            meter-per-second{\r
+                dnam{"mitir il-biriqsi kasta"}\r
+                one{"mitir il-biriqsi kasta"}\r
+                other{"{0} mitir ilbiriqsi kasta"}\r
+            }\r
+            mile-per-hour{\r
+                dnam{"mely saacaddiiba"}\r
+                one{"{0} meyl saacaddiiba"}\r
+                other{"{0} meyl saacaddiiba"}\r
+            }\r
+        }\r
+        temperature{\r
+            celsius{\r
+                dnam{"degrii selsiyaas"}\r
+                one{"{0}°degrii selsiyaas"}\r
+                other{"{0}°degrii selsiyaas"}\r
+            }\r
+            fahrenheit{\r
+                dnam{"degrees Faahrenheyt"}\r
+                one{"{0} degrii Faahrenheyt"}\r
+                other{"{0} degrii Faahrenheyt"}\r
+            }\r
+            generic{\r
+                dnam{"°"}\r
+                one{"{0}°"}\r
+                other{"{0}°"}\r
+            }\r
+            kelvin{\r
+                dnam{"kelfin"}\r
+                one{"{0} kelfin"}\r
+                other{"{0} kelfin"}\r
+            }\r
+        }\r
+        volume{\r
+            acre-foot{\r
+                dnam{"akre-fiit"}\r
+                one{"{0} akre-fiit"}\r
+                other{"{0} akre-fiit"}\r
+            }\r
+            centiliter{\r
+                dnam{"sentilitar"}\r
+                one{"{0} sentilitar"}\r
+                other{"{0} sentilitar"}\r
+            }\r
+            cubic-centimeter{\r
+                dnam{"sentimitir saddex jabbaaran"}\r
+                one{"{0} sentimitir saddex jabbaaran"}\r
+                other{"{0} sentimitir saddex jabbaaran"}\r
+                per{"{0}/sentimitir saddex jabbaaran"}\r
+            }\r
+            cubic-foot{\r
+                dnam{"fiit saddex jabbaaran"}\r
+                one{"{0} fiit saddex jabbaaran"}\r
+                other{"{0} fiit saddex jabbaaran"}\r
+            }\r
+            cubic-inch{\r
+                dnam{"inji saddex jabbaaran"}\r
+                one{"{0} inji saddex jabbaaran"}\r
+                other{"{0} inji saddex jabbaaran"}\r
+            }\r
+            cubic-kilometer{\r
+                dnam{"kiilomitir saddex jabbaaran"}\r
+                one{"{0} kiilomitir saddex jabbaaran"}\r
+                other{"{0} kiilomitir saddex jabaaran"}\r
+            }\r
+            cubic-meter{\r
+                dnam{"mitir saddex jabbaaran"}\r
+                one{"{0}"}\r
+                other{"{0} mitir saddex jabbaaran"}\r
+                per{"{0} mitir saddex jabbaaran"}\r
+            }\r
+            cubic-mile{\r
+                dnam{"meyl saddex jabbaaran"}\r
+                one{"{0} meyl saddex jabbaaran"}\r
+                other{"{0} meyl saddex jabbaaran"}\r
+            }\r
+            cubic-yard{\r
+                dnam{"yaardi saddex jabbaaran"}\r
+                one{"{0} yaardi saddex jabbaaran"}\r
+                other{"{0} yaardi saddex jabbaaran"}\r
+            }\r
+            cup{\r
+                dnam{"kaab"}\r
+                one{"{0} kaab"}\r
+                other{"{0} kaab"}\r
+            }\r
+            cup-metric{\r
+                dnam{"metrik kab"}\r
+                one{"metrik kab"}\r
+                other{"{0} merik kab"}\r
+            }\r
+            deciliter{\r
+                dnam{"desilitar"}\r
+                one{"{0} desilitar"}\r
+                other{"{0} desilitar"}\r
+            }\r
+            fluid-ounce{\r
+                dnam{"fuluud owns"}\r
+                one{"{0} fuluud owns"}\r
+                other{"{0} fuluud owns"}\r
+            }\r
+            gallon{\r
+                dnam{"galoons"}\r
+                one{"{0}galoons"}\r
+                other{"{0} galoons"}\r
+                per{"{0}/gal US"}\r
+            }\r
+            gallon-imperial{\r
+                dnam{"imb.galoons"}\r
+                one{"{0} imb. galoon"}\r
+                other{"{0} imb. galoons"}\r
+                per{"{0} /imb.galoon"}\r
+            }\r
+            hectoliter{\r
+                dnam{"hektolitar"}\r
+                one{"{0} hektolitar"}\r
+                other{"{0} hektarlitar"}\r
+            }\r
+            liter{\r
+                dnam{"litar"}\r
+                one{"{0} litar"}\r
+                other{"{0} litar"}\r
+                per{"{0} litar kasta"}\r
+            }\r
+            megaliter{\r
+                dnam{"megalitar"}\r
+                one{"{0} megalitar"}\r
+                other{"{0} megalitar"}\r
+            }\r
+            milliliter{\r
+                dnam{"mililitar"}\r
+                one{"{0} mililitar"}\r
+                other{"{0} mililitar"}\r
+            }\r
+            pint{\r
+                dnam{"bints"}\r
+                one{"{0} bints"}\r
+                other{"{0} bints"}\r
+            }\r
+            pint-metric{\r
+                dnam{"metrik bints"}\r
+                one{"{0} metrik bint"}\r
+                other{"{0} metrik bint"}\r
+            }\r
+            quart{\r
+                dnam{"kowaarts"}\r
+                one{"{0} kowaarts"}\r
+                other{"{0}kowaarts"}\r
+            }\r
+            tablespoon{\r
+                dnam{"malgacad"}\r
+                one{"{0} malgacad"}\r
+                other{"{0} malgacad"}\r
+            }\r
+            teaspoon{\r
+                dnam{"malgacadda shaah"}\r
+                one{"malgacadda shaah"}\r
+                other{"{0} malgacadda shaaha"}\r
+            }\r
+        }\r
+    }\r
+    unitsNarrow{\r
+        compound{\r
+            per{"{0}/{1}"}\r
+        }\r
+        concentr{\r
+            percent{\r
+                dnam{"%"}\r
+                one{"{0}%"}\r
+                other{"{0}%"}\r
+            }\r
+        }\r
+        consumption{\r
+            liter-per-100kilometers{\r
+                dnam{"L/100km"}\r
+                one{"{0} L/100km"}\r
+                other{"{0} L/100km"}\r
+            }\r
+        }\r
+        coordinate{\r
+            dnam{"jiho"}\r
+            east{"{0} B"}\r
+            north{"{0} W"}\r
+            south{"{0} K"}\r
+            west{"{0} G"}\r
+        }\r
+        duration{\r
+            day{\r
+                dnam{"maalmo"}\r
+                one{"{0}M"}\r
+                other{"{0}M/k"}\r
+                per{"{0}M/K"}\r
+            }\r
+            hour{\r
+                dnam{"saacado"}\r
+                one{"{0} h"}\r
+                other{"{0} S"}\r
+            }\r
+            millisecond{\r
+                dnam{"ms"}\r
+                one{"{0} ms"}\r
+                other{"{0} ms"}\r
+            }\r
+            minute{\r
+                dnam{"daqiiqado"}\r
+                one{"{0} daqiiqo"}\r
+                other{"{0} daqiiqo"}\r
+            }\r
+            month{\r
+                dnam{"Bilooyin"}\r
+                one{"{0}Bil"}\r
+                other{"{0}Bil"}\r
+            }\r
+            second{\r
+                dnam{"il-biriqsi"}\r
+                one{"{0} s"}\r
+                other{"{0} s"}\r
+            }\r
+            week{\r
+                dnam{"Usbuucyo"}\r
+                one{"{0} Sit"}\r
+                other{"{0} U"}\r
+                per{"{0} U/K"}\r
+            }\r
+            year{\r
+                dnam{"SN"}\r
+                one{"S"}\r
+                other{"{0}Sno"}\r
+            }\r
+        }\r
+        length{\r
+            centimeter{\r
+                dnam{"cm"}\r
+                one{"{0} cm"}\r
+                other{"{0} cm"}\r
+            }\r
+            kilometer{\r
+                dnam{"km"}\r
+                one{"{0} km"}\r
+                other{"{0} km"}\r
+            }\r
+            meter{\r
+                dnam{"m"}\r
+                one{"{0} m"}\r
+                other{"{0} m"}\r
+            }\r
+            millimeter{\r
+                dnam{"mm"}\r
+                one{"{0} mm"}\r
+                other{"{0} mm"}\r
+            }\r
+        }\r
+        mass{\r
+            gram{\r
+                dnam{"garaam"}\r
+                one{"{0} g"}\r
+                other{"{0} g"}\r
+            }\r
+            kilogram{\r
+                dnam{"kg"}\r
+                one{"{0} kg"}\r
+                other{"{0} kg"}\r
+            }\r
+        }\r
+        speed{\r
+            kilometer-per-hour{\r
+                dnam{"km/s"}\r
+                one{"{0} km/s"}\r
+                other{"{0} km/s"}\r
+            }\r
+        }\r
+        temperature{\r
+            celsius{\r
+                dnam{"°C"}\r
+                one{"{0}°C"}\r
+                other{"{0}°C"}\r
+            }\r
+        }\r
+        volume{\r
+            liter{\r
+                dnam{"litar"}\r
+                one{"{0} l"}\r
+                other{"{0} l"}\r
+            }\r
+        }\r
+    }\r
+    unitsShort{\r
+        acceleration{\r
+            g-force{\r
+                dnam{"cadaadis dib ku riixaya"}\r
+                one{"{0} G"}\r
+                other{"{0} G"}\r
+            }\r
+            meter-per-second-squared{\r
+                dnam{"m/s²"}\r
+                one{"{0} m/s²"}\r
+                other{"{0} m/s²"}\r
+            }\r
+        }\r
+        angle{\r
+            arc-minute{\r
+                dnam{"aarkminit"}\r
+                one{"{0} aarkminit"}\r
+                other{"{0} aarkminit"}\r
+            }\r
+            arc-second{\r
+                dnam{"aarksekond"}\r
+                one{"{0}aarksekond"}\r
+                other{"{0}aarksekond"}\r
+            }\r
+            degree{\r
+                dnam{"darajo"}\r
+                one{"{0} darajo"}\r
+                other{"{0} darajo"}\r
+            }\r
+            radian{\r
+                dnam{"shucaac"}\r
+                one{"{0} shucaac"}\r
+                other{"{0} shucaac"}\r
+            }\r
+            revolution{\r
+                dnam{"Wareeg"}\r
+                one{"{0} wareeg"}\r
+                other{"{0} wareeg"}\r
+            }\r
+        }\r
+        area{\r
+            acre{\r
+                dnam{"aakres"}\r
+                one{"{0} ac"}\r
+                other{"{0} ac"}\r
+            }\r
+            hectare{\r
+                dnam{"hektar"}\r
+                one{"{0} ha"}\r
+                other{"{0} ha"}\r
+            }\r
+            square-centimeter{\r
+                dnam{"cm²"}\r
+                one{"{0} cm²"}\r
+                other{"{0} cm²"}\r
+                per{"{0}/cm²"}\r
+            }\r
+            square-foot{\r
+                dnam{"fiit jabbaaran"}\r
+                one{"{0} ft²"}\r
+                other{"{0} ft²"}\r
+            }\r
+            square-inch{\r
+                dnam{"Injis labo jabbaaran"}\r
+                one{"{0} in²"}\r
+                other{"{0} in²"}\r
+                per{"{0}/in²"}\r
+            }\r
+            square-kilometer{\r
+                dnam{"km²"}\r
+                one{"{0} km²"}\r
+                other{"{0} km²"}\r
+                per{"{0}/km²"}\r
+            }\r
+            square-meter{\r
+                dnam{"mitir jabbaaran"}\r
+                one{"{0} m²"}\r
+                other{"{0} m²"}\r
+                per{"{0}/m²"}\r
+            }\r
+            square-mile{\r
+                dnam{"meyl jabbaaran"}\r
+                one{"{0} mi²"}\r
+                other{"{0} mi²"}\r
+                per{"{0}/mi²"}\r
+            }\r
+            square-yard{\r
+                dnam{"yaardi labo jabbaaran"}\r
+                one{"{0} yd²"}\r
+                other{"{0} yd²"}\r
+            }\r
+        }\r
+        compound{\r
+            per{"{0}/{1}"}\r
+        }\r
+        concentr{\r
+            karat{\r
+                dnam{"karaat"}\r
+                one{"{0} kt"}\r
+                other{"{0} kt"}\r
+            }\r
+            milligram-per-deciliter{\r
+                dnam{"mg/dL"}\r
+                one{"{0} mg/dL"}\r
+                other{"{0} mg/dL"}\r
+            }\r
+            millimole-per-liter{\r
+                dnam{"mmol/L"}\r
+                one{"{0} mmol/L"}\r
+                other{"{0} mmol/L"}\r
+            }\r
+            part-per-million{\r
+                dnam{"baart/milyan"}\r
+                one{"{0} ppm"}\r
+                other{"{0} ppm"}\r
+            }\r
+            percent{\r
+                dnam{"boqolkiiba"}\r
+                one{"{0}%"}\r
+                other{"{0}%"}\r
+            }\r
+            permille{\r
+                dnam{"baarmiil"}\r
+                one{"{0}‰"}\r
+                other{"{0}‰"}\r
+            }\r
+        }\r
+        consumption{\r
+            liter-per-100kilometers{\r
+                dnam{"L/100km"}\r
+                one{"{0} L/100km"}\r
+                other{"{0} L/100km"}\r
+            }\r
+            liter-per-kilometer{\r
+                dnam{"litar/kiilomitir"}\r
+                one{"{0} L/km"}\r
+                other{"{0} L/km"}\r
+            }\r
+            mile-per-gallon{\r
+                dnam{"meyl/galoon"}\r
+                one{"{0} mpg US"}\r
+                other{"{0} mpg US"}\r
+            }\r
+            mile-per-gallon-imperial{\r
+                dnam{"meyl/gal imb."}\r
+                one{"{0} mpg Imp."}\r
+                other{"{0} mpg Imp."}\r
+            }\r
+        }\r
+        coordinate{\r
+            dnam{"jiho"}\r
+            east{"{0} B"}\r
+            north{"{0} W"}\r
+            south{"{0} K"}\r
+            west{"{0} G"}\r
+        }\r
+        digital{\r
+            bit{\r
+                dnam{"bit"}\r
+                one{"{0} bit"}\r
+                other{"{0} bit"}\r
+            }\r
+            byte{\r
+                dnam{"beyt"}\r
+                one{"{0} beyt"}\r
+                other{"{0} beyt"}\r
+            }\r
+            gigabit{\r
+                dnam{"Gbit"}\r
+                one{"{0} Gb"}\r
+                other{"{0} Gb"}\r
+            }\r
+            gigabyte{\r
+                dnam{"GBeyt"}\r
+                one{"{0} GB"}\r
+                other{"{0} GB"}\r
+            }\r
+            kilobit{\r
+                dnam{"kbit"}\r
+                one{"{0} kb"}\r
+                other{"{0} kb"}\r
+            }\r
+            kilobyte{\r
+                dnam{"kBeyt"}\r
+                one{"{0} kB"}\r
+                other{"{0} kB"}\r
+            }\r
+            megabit{\r
+                dnam{"Mbit"}\r
+                one{"{0} Mb"}\r
+                other{"{0} Mb"}\r
+            }\r
+            megabyte{\r
+                dnam{"MBeyt"}\r
+                one{"{0} MB"}\r
+                other{"{0} MB"}\r
+            }\r
+            petabyte{\r
+                dnam{"bBeyt"}\r
+                one{"{0} PB"}\r
+                other{"{0} PB"}\r
+            }\r
+            terabit{\r
+                dnam{"Tbit"}\r
+                one{"{0} Tb"}\r
+                other{"{0} Tb"}\r
+            }\r
+            terabyte{\r
+                dnam{"TBeyt"}\r
+                one{"{0} TB"}\r
+                other{"{0} TB"}\r
+            }\r
+        }\r
+        duration{\r
+            century{\r
+                dnam{"c"}\r
+                one{"{0} c"}\r
+                other{"{0} c"}\r
+            }\r
+            day{\r
+                dnam{"maalmo"}\r
+                one{"{0} maalin"}\r
+                other{"{0} maalmooyin"}\r
+                per{"{0}M/K"}\r
+            }\r
+            hour{\r
+                dnam{"saacado"}\r
+                one{"{0} s"}\r
+                other{"{0} h"}\r
+                per{"{0} s/k"}\r
+            }\r
+            microsecond{\r
+                dnam{"μs"}\r
+                one{"{0} μs"}\r
+                other{"{0} μs"}\r
+            }\r
+            millisecond{\r
+                dnam{"ms"}\r
+                one{"{0} ms"}\r
+                other{"{0} ms"}\r
+            }\r
+            minute{\r
+                dnam{"daqiiqado"}\r
+                one{"{0} daqiiqo"}\r
+                other{"{0} daqiiqo"}\r
+                per{"{0} d/k"}\r
+            }\r
+            month{\r
+                dnam{"Bilooyin"}\r
+                one{"{0}Bil"}\r
+                other{"{0}Bil"}\r
+                per{"{0}B/K"}\r
+            }\r
+            nanosecond{\r
+                dnam{"ns"}\r
+                one{"{0} ns"}\r
+                other{"{0} ns"}\r
+            }\r
+            second{\r
+                dnam{"il-biriqsi"}\r
+                one{"{0} il -biriqsi"}\r
+                other{"{0} il-biriqsi"}\r
+                per{"{0} Il-biriqsi/Kasta"}\r
+            }\r
+            week{\r
+                dnam{"Usbuucyo"}\r
+                one{"{0} Sit"}\r
+                other{"{0} Usbuucyo"}\r
+                per{"{0} U/K"}\r
+            }\r
+            year{\r
+                dnam{"SN"}\r
+                one{"S"}\r
+                other{"{0}Sno"}\r
+                per{"{0}S/K"}\r
+            }\r
+        }\r
+        electric{\r
+            ampere{\r
+                dnam{"amp"}\r
+                one{"{0} A"}\r
+                other{"{0} A"}\r
+            }\r
+            milliampere{\r
+                dnam{"mA"}\r
+                one{"{0} mA"}\r
+                other{"{0} mA"}\r
+            }\r
+            ohm{\r
+                dnam{"ohm"}\r
+                one{"{0} Ω"}\r
+                other{"{0} Ω"}\r
+            }\r
+            volt{\r
+                dnam{"foolt"}\r
+                one{"{0} V"}\r
+                other{"{0} V"}\r
+            }\r
+        }\r
+        energy{\r
+            calorie{\r
+                dnam{"cal"}\r
+                one{"{0} cal"}\r
+                other{"{0} cal"}\r
+            }\r
+            foodcalorie{\r
+                dnam{"Cal"}\r
+                one{"{0} Cal"}\r
+                other{"{0} Cal"}\r
+            }\r
+            joule{\r
+                dnam{"juuls"}\r
+                one{"{0} J"}\r
+                other{"{0} J"}\r
+            }\r
+            kilocalorie{\r
+                dnam{"kilokalooris"}\r
+                one{"{0} kilokalooris"}\r
+                other{"{0} kcal"}\r
+            }\r
+            kilojoule{\r
+                dnam{"kiilojuul"}\r
+                one{"{0} kJ"}\r
+                other{"{0} kJ"}\r
+            }\r
+            kilowatt-hour{\r
+                dnam{"KW-saacad"}\r
+                one{"{0} KWs"}\r
+                other{"{0} KWs"}\r
+            }\r
+        }\r
+        frequency{\r
+            gigahertz{\r
+                dnam{"GHz"}\r
+                one{"{0} GHz"}\r
+                other{"{0} GHz"}\r
+            }\r
+            hertz{\r
+                dnam{"Hz"}\r
+                one{"{0} Hz"}\r
+                other{"{0} Hz"}\r
+            }\r
+            kilohertz{\r
+                dnam{"kHz"}\r
+                one{"{0} kHz"}\r
+                other{"{0} kHz"}\r
+            }\r
+            megahertz{\r
+                dnam{"MHz"}\r
+                one{"{0} MHz"}\r
+                other{"{0} MHz"}\r
+            }\r
+        }\r
+        length{\r
+            astronomical-unit{\r
+                dnam{"au"}\r
+                one{"{0} au"}\r
+                other{"{0} au"}\r
+            }\r
+            centimeter{\r
+                dnam{"cm"}\r
+                one{"{0} cm"}\r
+                other{"{0} cm"}\r
+                per{"{0}/cm"}\r
+            }\r
+            decimeter{\r
+                dnam{"dm"}\r
+                one{"{0} dm"}\r
+                other{"{0} dm"}\r
+            }\r
+            foot{\r
+                dnam{"ft"}\r
+                one{"{0} ft"}\r
+                other{"{0} ft"}\r
+                per{"{0}/ft"}\r
+            }\r
+            inch{\r
+                dnam{"injjis"}\r
+                one{"{0} in"}\r
+                other{"{0} in"}\r
+                per{"{0}/in"}\r
+            }\r
+            kilometer{\r
+                dnam{"km"}\r
+                one{"{0} km"}\r
+                other{"{0} km"}\r
+                per{"{0}/km"}\r
+            }\r
+            light-year{\r
+                dnam{"ly"}\r
+                one{"{0} ly"}\r
+                other{"{0} ly"}\r
+            }\r
+            meter{\r
+                dnam{"m"}\r
+                one{"{0} m"}\r
+                other{"{0} m"}\r
+                per{"{0}/m"}\r
+            }\r
+            micrometer{\r
+                dnam{"µmitir"}\r
+                one{"{0} µm"}\r
+                other{"{0} µm"}\r
+            }\r
+            mile{\r
+                dnam{"meyl"}\r
+                one{"{0} mi"}\r
+                other{"{0} mi"}\r
+            }\r
+            mile-scandinavian{\r
+                dnam{"smi"}\r
+                one{"{0} smi"}\r
+                other{"{0} smi"}\r
+            }\r
+            millimeter{\r
+                dnam{"mm"}\r
+                one{"{0} mm"}\r
+                other{"{0} mm"}\r
+            }\r
+            nanometer{\r
+                dnam{"nm"}\r
+                one{"{0} nm"}\r
+                other{"{0} nm"}\r
+            }\r
+            nautical-mile{\r
+                dnam{"nmi"}\r
+                one{"{0} nmi"}\r
+                other{"{0} nmi"}\r
+            }\r
+            parsec{\r
+                dnam{"pc"}\r
+                one{"{0} pc"}\r
+                other{"{0} pc"}\r
+            }\r
+            picometer{\r
+                dnam{"bm"}\r
+                one{"{0} bm"}\r
+                other{"{0} bm"}\r
+            }\r
+            point{\r
+                dnam{"dhibicyo"}\r
+                one{"{0} dhibic"}\r
+                other{"{0} dhibic"}\r
+            }\r
+            yard{\r
+                dnam{"yaardi"}\r
+                one{"{0} yd"}\r
+                other{"{0} yd"}\r
+            }\r
+        }\r
+        light{\r
+            lux{\r
+                dnam{"laks"}\r
+                one{"{0} lx"}\r
+                other{"{0} lx"}\r
+            }\r
+        }\r
+        mass{\r
+            carat{\r
+                dnam{"karaats"}\r
+                one{"{0} CD"}\r
+                other{"{0} CD"}\r
+            }\r
+            gram{\r
+                dnam{"garaam"}\r
+                one{"{0} g"}\r
+                other{"{0} g"}\r
+                per{"{0}/g"}\r
+            }\r
+            kilogram{\r
+                dnam{"kg"}\r
+                one{"{0} kg"}\r
+                other{"{0} kg"}\r
+                per{"{0}/kg"}\r
+            }\r
+            metric-ton{\r
+                dnam{"t"}\r
+                one{"{0} t"}\r
+                other{"{0} t"}\r
+            }\r
+            microgram{\r
+                dnam{"µg"}\r
+                one{"{0} µg"}\r
+                other{"{0} µg"}\r
+            }\r
+            milligram{\r
+                dnam{"mg"}\r
+                one{"{0} mg"}\r
+                other{"{0} mg"}\r
+            }\r
+            ounce{\r
+                dnam{"oz"}\r
+                one{"{0} oz"}\r
+                other{"{0} oz"}\r
+                per{"{0}/oz"}\r
+            }\r
+            ounce-troy{\r
+                dnam{"torooy os"}\r
+                one{"{0} oz t"}\r
+                other{"{0} oz t"}\r
+            }\r
+            pound{\r
+                dnam{"bownd"}\r
+                one{"{0} lb"}\r
+                other{"{0} lb"}\r
+                per{"{0}/lb"}\r
+            }\r
+            ton{\r
+                dnam{"tan"}\r
+                one{"{0} tn"}\r
+                other{"{0} tn"}\r
+            }\r
+        }\r
+        power{\r
+            gigawatt{\r
+                dnam{"GW"}\r
+                one{"{0} GW"}\r
+                other{"{0} GW"}\r
+            }\r
+            horsepower{\r
+                dnam{"hp"}\r
+                one{"{0} hp"}\r
+                other{"{0} hp"}\r
+            }\r
+            kilowatt{\r
+                dnam{"kW"}\r
+                one{"{0} kW"}\r
+                other{"{0} kW"}\r
+            }\r
+            megawatt{\r
+                dnam{"MW"}\r
+                one{"{0} MW"}\r
+                other{"{0} MW"}\r
+            }\r
+            milliwatt{\r
+                dnam{"mW"}\r
+                one{"{0} mW"}\r
+                other{"{0} mW"}\r
+            }\r
+            watt{\r
+                dnam{"waat"}\r
+                one{"{0} W"}\r
+                other{"{0} W"}\r
+            }\r
+        }\r
+        pressure{\r
+            atmosphere{\r
+                dnam{"jawiga"}\r
+                one{"{0} atm"}\r
+                other{"{0} atm"}\r
+            }\r
+            hectopascal{\r
+                dnam{"hPa"}\r
+                one{"{0} hPa"}\r
+                other{"{0} hPa"}\r
+            }\r
+            inch-hg{\r
+                dnam{"inHg"}\r
+                one{"{0} inHg"}\r
+                other{"{0} inHg"}\r
+            }\r
+            millibar{\r
+                dnam{"mbar"}\r
+                one{"{0} mbar"}\r
+                other{"{0} mbar"}\r
+            }\r
+            millimeter-of-mercury{\r
+                dnam{"mm Hg"}\r
+                one{"{0} mm Hg"}\r
+                other{"{0} mm Hg"}\r
+            }\r
+            pound-per-square-inch{\r
+                dnam{"psi"}\r
+                one{"{0} psi"}\r
+                other{"{0} psi"}\r
+            }\r
+        }\r
+        speed{\r
+            kilometer-per-hour{\r
+                dnam{"kiilomitir saacaddiiba"}\r
+                one{"{0} kiilomitir saaciidaba"}\r
+                other{"{0} km/s"}\r
+            }\r
+            knot{\r
+                dnam{"gn"}\r
+                one{"{0} gn"}\r
+                other{"{0} gn"}\r
+            }\r
+            meter-per-second{\r
+                dnam{"mitir/ilbiriqsi"}\r
+                one{"{0} m/ilbiriqsi"}\r
+                other{"{0} m/ilbiriqsi"}\r
+            }\r
+            mile-per-hour{\r
+                dnam{"meyl saacaddiiba"}\r
+                one{"{0} m/s"}\r
+                other{"{0} m/s"}\r
+            }\r
+        }\r
+        temperature{\r
+            celsius{\r
+                dnam{"deg. C"}\r
+                one{"{0}°C"}\r
+                other{"{0}°C"}\r
+            }\r
+            fahrenheit{\r
+                dnam{"deg. F"}\r
+                one{"{0}°F"}\r
+                other{"{0}°F"}\r
+            }\r
+            generic{\r
+                dnam{"°"}\r
+                one{"{0}°"}\r
+                other{"{0}°"}\r
+            }\r
+            kelvin{\r
+                dnam{"K"}\r
+                one{"{0} K"}\r
+                other{"{0} K"}\r
+            }\r
+        }\r
+        volume{\r
+            acre-foot{\r
+                dnam{"akr ft"}\r
+                one{"{0} ac ft"}\r
+                other{"{0} ac ft"}\r
+            }\r
+            centiliter{\r
+                dnam{"cL"}\r
+                one{"{0} cL"}\r
+                other{"{0} cL"}\r
+            }\r
+            cubic-centimeter{\r
+                dnam{"cm³"}\r
+                one{"{0} cm³"}\r
+                other{"{0} cm³"}\r
+                per{"{0}/cm³"}\r
+            }\r
+            cubic-foot{\r
+                dnam{"fiit saddex jabbaaran"}\r
+                one{"{0} ft³"}\r
+                other{"{0} ft³"}\r
+            }\r
+            cubic-inch{\r
+                dnam{"inji saddex jabbaaran"}\r
+                one{"{0} in³"}\r
+                other{"{0} in³"}\r
+            }\r
+            cubic-kilometer{\r
+                dnam{"km³"}\r
+                one{"{0} km³"}\r
+                other{"{0} km³"}\r
+            }\r
+            cubic-meter{\r
+                dnam{"m³"}\r
+                one{"{0} m³"}\r
+                other{"{0} m³"}\r
+                per{"{0}/m³"}\r
+            }\r
+            cubic-mile{\r
+                dnam{"mi³"}\r
+                one{"{0} mi³"}\r
+                other{"{0} mi³"}\r
+            }\r
+            cubic-yard{\r
+                dnam{"yaardi saddex jabbaaran"}\r
+                one{"{0} yd³"}\r
+                other{"{0} yd³"}\r
+            }\r
+            cup{\r
+                dnam{"kaab"}\r
+                one{"{0} c"}\r
+                other{"{0} c"}\r
+            }\r
+            cup-metric{\r
+                dnam{"mcup"}\r
+                one{"{0} mc"}\r
+                other{"{0} mc"}\r
+            }\r
+            deciliter{\r
+                dnam{"dL"}\r
+                one{"{0} dL"}\r
+                other{"{0} dL"}\r
+            }\r
+            fluid-ounce{\r
+                dnam{"fuluud owns"}\r
+                one{"{0} fl oz"}\r
+                other{"{0} fl oz"}\r
+            }\r
+            gallon{\r
+                dnam{"US gal"}\r
+                one{"{0} gal US"}\r
+                other{"{0} gal US"}\r
+                per{"{0}/gal US"}\r
+            }\r
+            gallon-imperial{\r
+                dnam{"imb.gal"}\r
+                one{"{0} gal Imp."}\r
+                other{"{0} gal Imp."}\r
+                per{"{0}/gal Imp."}\r
+            }\r
+            hectoliter{\r
+                dnam{"hL"}\r
+                one{"{0} hL"}\r
+                other{"{0} hL"}\r
+            }\r
+            liter{\r
+                dnam{"litar"}\r
+                one{"{0} l"}\r
+                other{"{0} l"}\r
+                per{"{0}/l"}\r
+            }\r
+            megaliter{\r
+                dnam{"ML"}\r
+                one{"{0} ML"}\r
+                other{"{0} ML"}\r
+            }\r
+            milliliter{\r
+                dnam{"mL"}\r
+                one{"{0} mL"}\r
+                other{"{0} mL"}\r
+            }\r
+            pint{\r
+                dnam{"bints"}\r
+                one{"{0} pt"}\r
+                other{"{0} pt"}\r
+            }\r
+            pint-metric{\r
+                dnam{"mpt"}\r
+                one{"{0} mpt"}\r
+                other{"{0} mpt"}\r
+            }\r
+            quart{\r
+                dnam{"qt"}\r
+                one{"{0} qt"}\r
+                other{"{0} qt"}\r
+            }\r
+            tablespoon{\r
+                dnam{"malgacad"}\r
+                one{"{0} tbsp"}\r
+                other{"{0} tbsp"}\r
+            }\r
+            teaspoon{\r
+                dnam{"tsp"}\r
+                one{"{0} tsp"}\r
+                other{"{0} tsp"}\r
+            }\r
+        }\r
+    }\r
 }\r
index c1a69ad..afd5f24 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 sq{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.50"}\r
     durationUnits{\r
         hm{"h:mm"}\r
         hms{"h:mm:ss"}\r
@@ -123,6 +123,16 @@ sq{
                 one{"{0} pjesë për milion"}\r
                 other{"{0} pjesë për milion"}\r
             }\r
+            percent{\r
+                dnam{"përqind"}\r
+                one{"{0} përqind"}\r
+                other{"{0} përqind"}\r
+            }\r
+            permille{\r
+                dnam{"përmijë"}\r
+                one{"{0} përmijë"}\r
+                other{"{0} përmijë"}\r
+            }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
@@ -147,6 +157,7 @@ sq{
             }\r
         }\r
         coordinate{\r
+            dnam{"drejtimi kardinal"}\r
             east{"{0} Lindje"}\r
             north{"{0} Veri"}\r
             south{"{0} Jug"}\r
@@ -193,6 +204,11 @@ sq{
                 one{"{0} megabajt"}\r
                 other{"{0} megabajt"}\r
             }\r
+            petabyte{\r
+                dnam{"petabajt"}\r
+                one{"{0} petabajt"}\r
+                other{"{0} petabajt"}\r
+            }\r
             terabit{\r
                 dnam{"terabit"}\r
                 one{"{0} terabit"}\r
@@ -537,6 +553,11 @@ sq{
             }\r
         }\r
         pressure{\r
+            atmosphere{\r
+                dnam{"atmosferë"}\r
+                one{"{0} atmosferë"}\r
+                other{"{0} atmosferë"}\r
+            }\r
             hectopascal{\r
                 dnam{"hektopaskal"}\r
                 one{"{0} hektopaskal"}\r
@@ -785,6 +806,13 @@ sq{
         compound{\r
             per{"{0}/{1}"}\r
         }\r
+        concentr{\r
+            percent{\r
+                dnam{"%"}\r
+                one{"{0}%"}\r
+                other{"{0}%"}\r
+            }\r
+        }\r
         consumption{\r
             liter-per-100kilometers{\r
                 dnam{"L/100km"}\r
@@ -798,6 +826,7 @@ sq{
             }\r
         }\r
         coordinate{\r
+            dnam{"drejtimi"}\r
             east{"{0} L"}\r
             north{"{0} V"}\r
             south{"{0} J"}\r
@@ -1122,6 +1151,16 @@ sq{
                 one{"{0} ppm"}\r
                 other{"{0} ppm"}\r
             }\r
+            percent{\r
+                dnam{"%"}\r
+                one{"{0}%"}\r
+                other{"{0}%"}\r
+            }\r
+            permille{\r
+                dnam{"‰"}\r
+                one{"{0}‰"}\r
+                other{"{0}‰"}\r
+            }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
@@ -1146,6 +1185,7 @@ sq{
             }\r
         }\r
         coordinate{\r
+            dnam{"drejtimi"}\r
             east{"{0} L"}\r
             north{"{0} V"}\r
             south{"{0} J"}\r
@@ -1192,6 +1232,11 @@ sq{
                 one{"{0} MB"}\r
                 other{"{0} MB"}\r
             }\r
+            petabyte{\r
+                dnam{"PBajt"}\r
+                one{"{0} PB"}\r
+                other{"{0} PB"}\r
+            }\r
             terabit{\r
                 dnam{"Tbit"}\r
                 one{"{0} Tb"}\r
@@ -1536,6 +1581,11 @@ sq{
             }\r
         }\r
         pressure{\r
+            atmosphere{\r
+                dnam{"atm"}\r
+                one{"{0} atm"}\r
+                other{"{0} atm"}\r
+            }\r
             hectopascal{\r
                 dnam{"hPa"}\r
                 one{"{0} hPa"}\r
index 20e0bfc..561a037 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 sr{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.94"}\r
     durationUnits{\r
         hm{"h:mm"}\r
         hms{"h:mm:ss"}\r
@@ -143,6 +143,18 @@ sr{
                 one{"{0} честица на милион"}\r
                 other{"{0} честица на милион"}\r
             }\r
+            percent{\r
+                dnam{"проценат"}\r
+                few{"{0} процената"}\r
+                one{"{0} проценат"}\r
+                other{"{0} процената"}\r
+            }\r
+            permille{\r
+                dnam{"промил"}\r
+                few{"{0} промила"}\r
+                one{"{0} промил"}\r
+                other{"{0} промила"}\r
+            }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
@@ -171,6 +183,7 @@ sr{
             }\r
         }\r
         coordinate{\r
+            dnam{"главни правац"}\r
             east{"{0}И"}\r
             north{"{0}С"}\r
             south{"{0}Ј"}\r
@@ -225,6 +238,12 @@ sr{
                 one{"{0} мегабајт"}\r
                 other{"{0} мегабајта"}\r
             }\r
+            petabyte{\r
+                dnam{"петабајти"}\r
+                few{"{0} петабајта"}\r
+                one{"{0} петабајт"}\r
+                other{"{0} петабајта"}\r
+            }\r
             terabit{\r
                 dnam{"терабитови"}\r
                 few{"{0} терабита"}\r
@@ -631,6 +650,12 @@ sr{
             }\r
         }\r
         pressure{\r
+            atmosphere{\r
+                dnam{"атмосфере"}\r
+                few{"{0} атмосфере"}\r
+                one{"{0} атмосфера"}\r
+                other{"{0} атмосфера"}\r
+            }\r
             hectopascal{\r
                 dnam{"хектопаскали"}\r
                 few{"{0} хектопаскала"}\r
@@ -926,6 +951,14 @@ sr{
         compound{\r
             per{"{0}/{1}"}\r
         }\r
+        concentr{\r
+            percent{\r
+                dnam{"%"}\r
+                few{"{0}%"}\r
+                one{"{0}%"}\r
+                other{"{0}%"}\r
+            }\r
+        }\r
         consumption{\r
             liter-per-100kilometers{\r
                 dnam{"L/100km"}\r
@@ -935,6 +968,7 @@ sr{
             }\r
         }\r
         coordinate{\r
+            dnam{"правац"}\r
             east{"{0}И"}\r
             north{"{0}С"}\r
             south{"{0}Ј"}\r
@@ -1291,6 +1325,18 @@ sr{
                 one{"{0} ppm"}\r
                 other{"{0} ppm"}\r
             }\r
+            percent{\r
+                dnam{"проценат"}\r
+                few{"{0}%"}\r
+                one{"{0}%"}\r
+                other{"{0}%"}\r
+            }\r
+            permille{\r
+                dnam{"промил"}\r
+                few{"{0}‰"}\r
+                one{"{0}‰"}\r
+                other{"{0}‰"}\r
+            }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
@@ -1319,6 +1365,7 @@ sr{
             }\r
         }\r
         coordinate{\r
+            dnam{"правац"}\r
             east{"{0}И"}\r
             north{"{0}С"}\r
             south{"{0}Ј"}\r
@@ -1373,6 +1420,12 @@ sr{
                 one{"{0} MB"}\r
                 other{"{0} MB"}\r
             }\r
+            petabyte{\r
+                dnam{"PB"}\r
+                few{"{0} PB"}\r
+                one{"{0} PB"}\r
+                other{"{0} PB"}\r
+            }\r
             terabit{\r
                 dnam{"Tb"}\r
                 few{"{0} Tb"}\r
@@ -1779,6 +1832,12 @@ sr{
             }\r
         }\r
         pressure{\r
+            atmosphere{\r
+                dnam{"atm"}\r
+                few{"{0} atm"}\r
+                one{"{0} atm"}\r
+                other{"{0} atm"}\r
+            }\r
             hectopascal{\r
                 dnam{"hPa"}\r
                 few{"{0} hPa"}\r
index d52de6b..e17af24 100644 (file)
@@ -2,7 +2,7 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 sr_Latn{\r
     %%Parent{"root"}\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.50"}\r
     durationUnits{\r
         hm{"h:mm"}\r
         hms{"h:mm:ss"}\r
@@ -144,6 +144,18 @@ sr_Latn{
                 one{"{0} čestica na milion"}\r
                 other{"{0} čestica na milion"}\r
             }\r
+            percent{\r
+                dnam{"procenat"}\r
+                few{"{0} procenata"}\r
+                one{"{0} procenat"}\r
+                other{"{0} procenata"}\r
+            }\r
+            permille{\r
+                dnam{"promil"}\r
+                few{"{0} promila"}\r
+                one{"{0} promil"}\r
+                other{"{0} promila"}\r
+            }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
@@ -172,6 +184,7 @@ sr_Latn{
             }\r
         }\r
         coordinate{\r
+            dnam{"glavni pravac"}\r
             east{"{0}I"}\r
             north{"{0}S"}\r
             south{"{0}J"}\r
@@ -226,6 +239,12 @@ sr_Latn{
                 one{"{0} megabajt"}\r
                 other{"{0} megabajta"}\r
             }\r
+            petabyte{\r
+                dnam{"petabajti"}\r
+                few{"{0} petabajta"}\r
+                one{"{0} petabajt"}\r
+                other{"{0} petabajta"}\r
+            }\r
             terabit{\r
                 dnam{"terabitovi"}\r
                 few{"{0} terabita"}\r
@@ -632,6 +651,12 @@ sr_Latn{
             }\r
         }\r
         pressure{\r
+            atmosphere{\r
+                dnam{"atmosfere"}\r
+                few{"{0} atmosfere"}\r
+                one{"{0} atmosfera"}\r
+                other{"{0} atmosfera"}\r
+            }\r
             hectopascal{\r
                 dnam{"hektopaskali"}\r
                 few{"{0} hektopaskala"}\r
@@ -927,6 +952,14 @@ sr_Latn{
         compound{\r
             per{"{0}/{1}"}\r
         }\r
+        concentr{\r
+            percent{\r
+                dnam{"%"}\r
+                few{"{0}%"}\r
+                one{"{0}%"}\r
+                other{"{0}%"}\r
+            }\r
+        }\r
         consumption{\r
             liter-per-100kilometers{\r
                 dnam{"L/100km"}\r
@@ -936,6 +969,7 @@ sr_Latn{
             }\r
         }\r
         coordinate{\r
+            dnam{"pravac"}\r
             east{"{0}I"}\r
             north{"{0}S"}\r
             south{"{0}J"}\r
@@ -1292,6 +1326,18 @@ sr_Latn{
                 one{"{0} ppm"}\r
                 other{"{0} ppm"}\r
             }\r
+            percent{\r
+                dnam{"procenat"}\r
+                few{"{0}%"}\r
+                one{"{0}%"}\r
+                other{"{0}%"}\r
+            }\r
+            permille{\r
+                dnam{"promil"}\r
+                few{"{0}‰"}\r
+                one{"{0}‰"}\r
+                other{"{0}‰"}\r
+            }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
@@ -1320,6 +1366,7 @@ sr_Latn{
             }\r
         }\r
         coordinate{\r
+            dnam{"pravac"}\r
             east{"{0}I"}\r
             north{"{0}S"}\r
             south{"{0}J"}\r
@@ -1374,6 +1421,12 @@ sr_Latn{
                 one{"{0} MB"}\r
                 other{"{0} MB"}\r
             }\r
+            petabyte{\r
+                dnam{"PB"}\r
+                few{"{0} PB"}\r
+                one{"{0} PB"}\r
+                other{"{0} PB"}\r
+            }\r
             terabit{\r
                 dnam{"Tb"}\r
                 few{"{0} Tb"}\r
@@ -1780,6 +1833,12 @@ sr_Latn{
             }\r
         }\r
         pressure{\r
+            atmosphere{\r
+                dnam{"atm"}\r
+                few{"{0} atm"}\r
+                one{"{0} atm"}\r
+                other{"{0} atm"}\r
+            }\r
             hectopascal{\r
                 dnam{"hPa"}\r
                 few{"{0} hPa"}\r
index f5680c8..b94a294 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 sv{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.94"}\r
     durationUnits{\r
         hm{"h:mm"}\r
         hms{"h:mm:ss"}\r
@@ -123,6 +123,16 @@ sv{
                 one{"{0} miljondel"}\r
                 other{"{0} miljondelar"}\r
             }\r
+            percent{\r
+                dnam{"procent"}\r
+                one{"{0} procent"}\r
+                other{"{0} procent"}\r
+            }\r
+            permille{\r
+                dnam{"promille"}\r
+                one{"{0} promille"}\r
+                other{"{0} promille"}\r
+            }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
@@ -147,6 +157,7 @@ sv{
             }\r
         }\r
         coordinate{\r
+            dnam{"kompassriktning"}\r
             east{"{0} öst"}\r
             north{"{0} nord"}\r
             south{"{0} syd"}\r
@@ -193,6 +204,11 @@ sv{
                 one{"{0} megabyte"}\r
                 other{"{0} megabyte"}\r
             }\r
+            petabyte{\r
+                dnam{"petabyte"}\r
+                one{"{0} petabyte"}\r
+                other{"{0} petabyte"}\r
+            }\r
             terabit{\r
                 dnam{"terabit"}\r
                 one{"{0} terabit"}\r
@@ -552,6 +568,11 @@ sv{
             }\r
         }\r
         pressure{\r
+            atmosphere{\r
+                dnam{"atmosfärer"}\r
+                one{"{0} atmosfär"}\r
+                other{"{0} atmosfärer"}\r
+            }\r
             hectopascal{\r
                 dnam{"hektopascal"}\r
                 one{"{0} hektopascal"}\r
@@ -871,6 +892,16 @@ sv{
                 one{"{0} ppm"}\r
                 other{"{0} ppm"}\r
             }\r
+            percent{\r
+                dnam{"%"}\r
+                one{"{0} %"}\r
+                other{"{0} %"}\r
+            }\r
+            permille{\r
+                dnam{"‰"}\r
+                one{"{0}‰"}\r
+                other{"{0}‰"}\r
+            }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
@@ -895,6 +926,7 @@ sv{
             }\r
         }\r
         coordinate{\r
+            dnam{"riktning"}\r
             east{"{0}Ö"}\r
             north{"{0}N"}\r
             south{"{0}S"}\r
@@ -1280,6 +1312,11 @@ sv{
             }\r
         }\r
         pressure{\r
+            atmosphere{\r
+                dnam{"atm"}\r
+                one{"{0}atm"}\r
+                other{"{0}atm"}\r
+            }\r
             hectopascal{\r
                 dnam{"hPa"}\r
                 one{"{0}hPa"}\r
@@ -1599,6 +1636,16 @@ sv{
                 one{"{0} ppm"}\r
                 other{"{0} ppm"}\r
             }\r
+            percent{\r
+                dnam{"%"}\r
+                one{"{0} %"}\r
+                other{"{0} %"}\r
+            }\r
+            permille{\r
+                dnam{"‰"}\r
+                one{"{0} ‰"}\r
+                other{"{0} ‰"}\r
+            }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
@@ -1623,6 +1670,7 @@ sv{
             }\r
         }\r
         coordinate{\r
+            dnam{"väderstreck"}\r
             east{"{0} Ö"}\r
             north{"{0} N"}\r
             south{"{0} S"}\r
@@ -1669,6 +1717,11 @@ sv{
                 one{"{0} MB"}\r
                 other{"{0} MB"}\r
             }\r
+            petabyte{\r
+                dnam{"PB"}\r
+                one{"{0} PB"}\r
+                other{"{0} PB"}\r
+            }\r
             terabit{\r
                 dnam{"Tb"}\r
                 one{"{0} Tb"}\r
@@ -2028,6 +2081,11 @@ sv{
             }\r
         }\r
         pressure{\r
+            atmosphere{\r
+                dnam{"atm"}\r
+                one{"{0} atm"}\r
+                other{"{0} atm"}\r
+            }\r
             hectopascal{\r
                 dnam{"hPa"}\r
                 one{"{0} hPa"}\r
index 48a2dd9..1f1784e 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 sw{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.65"}\r
     durationUnits{\r
         hm{"h:mm"}\r
         hms{"h:mm:ss"}\r
@@ -123,6 +123,16 @@ sw{
                 one{"ppm {0}"}\r
                 other{"ppm {0}"}\r
             }\r
+            percent{\r
+                dnam{"asilimia"}\r
+                one{"asilimia {0}"}\r
+                other{"asilimia {0}"}\r
+            }\r
+            permille{\r
+                dnam{"kwa elfu"}\r
+                one{"{0} kwa kila elfu"}\r
+                other{"{0} kwa kila elfu"}\r
+            }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
@@ -147,6 +157,7 @@ sw{
             }\r
         }\r
         coordinate{\r
+            dnam{"sehemu kuu za dira"}\r
             east{"{0} Mashariki"}\r
             north{"{0} Kaskazini"}\r
             south{"{0} Kusini"}\r
@@ -193,6 +204,11 @@ sw{
                 one{"megabaiti {0}"}\r
                 other{"megabaiti {0}"}\r
             }\r
+            petabyte{\r
+                dnam{"petabaiti"}\r
+                one{"petabaiti {0}"}\r
+                other{"petabaiti {0}"}\r
+            }\r
             terabit{\r
                 dnam{"terabiti"}\r
                 one{"terabiti {0}"}\r
@@ -537,6 +553,11 @@ sw{
             }\r
         }\r
         pressure{\r
+            atmosphere{\r
+                dnam{"kanieneo ya hewa"}\r
+                one{"kanieneo {0}"}\r
+                other{"kanieneo {0}"}\r
+            }\r
             hectopascal{\r
                 dnam{"hektopaskali"}\r
                 one{"hektopaskali {0}"}\r
@@ -785,6 +806,13 @@ sw{
         compound{\r
             per{"{0}/{1}"}\r
         }\r
+        concentr{\r
+            percent{\r
+                dnam{"asilimia"}\r
+                one{"asilimia {0}"}\r
+                other{"asilimia {0}"}\r
+            }\r
+        }\r
         consumption{\r
             liter-per-100kilometers{\r
                 dnam{"lita kwa kilomita 100"}\r
@@ -793,6 +821,7 @@ sw{
             }\r
         }\r
         coordinate{\r
+            dnam{"mwelekeo"}\r
             east{"{0} Mashariki"}\r
             north{"{0} Kaskazini"}\r
             south{"{0} Kusini"}\r
@@ -1099,6 +1128,16 @@ sw{
                 one{"ppm {0}"}\r
                 other{"ppm {0}"}\r
             }\r
+            percent{\r
+                dnam{"asilimia"}\r
+                one{"asilimia {0}"}\r
+                other{"asilimia {0}"}\r
+            }\r
+            permille{\r
+                dnam{"kwa elfu"}\r
+                one{"{0} kwa elfu"}\r
+                other{"{0} kwa elfu"}\r
+            }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
@@ -1123,6 +1162,7 @@ sw{
             }\r
         }\r
         coordinate{\r
+            dnam{"mwelekeo"}\r
             east{"{0} Mashariki"}\r
             north{"{0} Kaskazini"}\r
             south{"{0} Kusini"}\r
@@ -1169,6 +1209,11 @@ sw{
                 one{"MB {0}"}\r
                 other{"MB {0}"}\r
             }\r
+            petabyte{\r
+                dnam{"petabaiti"}\r
+                one{"PB {0}"}\r
+                other{"PB {0}"}\r
+            }\r
             terabit{\r
                 dnam{"terabiti"}\r
                 one{"terabiti {0}"}\r
@@ -1513,6 +1558,11 @@ sw{
             }\r
         }\r
         pressure{\r
+            atmosphere{\r
+                dnam{"atm"}\r
+                one{"atm {0}"}\r
+                other{"atm {0}"}\r
+            }\r
             hectopascal{\r
                 dnam{"hektopaskali"}\r
                 one{"hPa {0}"}\r
index 538ca25..5fcf098 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 ta{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.50"}\r
     durationUnits{\r
         hm{"h:mm"}\r
         hms{"h:mm:ss"}\r
@@ -123,6 +123,16 @@ ta{
                 one{"{0} பகுதி/மில்லியன்"}\r
                 other{"{0} பகுதிகள்/மில்லியன்"}\r
             }\r
+            percent{\r
+                dnam{"சதவீதம்"}\r
+                one{"{0} சதவீதம்"}\r
+                other{"{0} சதவீதம்"}\r
+            }\r
+            permille{\r
+                dnam{"மில்லி ஒன்றுக்கு"}\r
+                one{"மில்லி ஒன்றுக்கு {0}"}\r
+                other{"மில்லி ஒன்றுக்கு {0}"}\r
+            }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
@@ -147,6 +157,7 @@ ta{
             }\r
         }\r
         coordinate{\r
+            dnam{"கார்டினல் திசை"}\r
             east{"{0}கி"}\r
             north{"{0}வ"}\r
             south{"{0}தெ"}\r
@@ -193,6 +204,11 @@ ta{
                 one{"{0} மெகாபைட்"}\r
                 other{"{0} மெகாபைட்கள்"}\r
             }\r
+            petabyte{\r
+                dnam{"பெடாபைட்கள்"}\r
+                one{"{0} பெடாபைட்"}\r
+                other{"{0} பெடாபைட்கள்"}\r
+            }\r
             terabit{\r
                 dnam{"டெரா பிட்கள்"}\r
                 one{"{0} டெராபிட்"}\r
@@ -542,6 +558,11 @@ ta{
             }\r
         }\r
         pressure{\r
+            atmosphere{\r
+                dnam{"வளிஅழுத்தம்"}\r
+                one{"{0} வளிஅழுத்தம்"}\r
+                other{"{0} வளிஅழுத்தங்கள்"}\r
+            }\r
             hectopascal{\r
                 dnam{"ஹெக்டோபாஸ்கல்"}\r
                 one{"{0} ஹெக்டோபாஸ்கல்"}\r
@@ -790,6 +811,13 @@ ta{
         compound{\r
             per{"{0}/{1}"}\r
         }\r
+        concentr{\r
+            percent{\r
+                dnam{"%"}\r
+                one{"{0}%"}\r
+                other{"{0}%"}\r
+            }\r
+        }\r
         consumption{\r
             liter-per-100kilometers{\r
                 dnam{"லி./100கி.மீ"}\r
@@ -798,6 +826,7 @@ ta{
             }\r
         }\r
         coordinate{\r
+            dnam{"திசை"}\r
             east{"{0}கி"}\r
             north{"{0}வ"}\r
             south{"{0}தெ"}\r
@@ -1157,6 +1186,16 @@ ta{
                 one{"{0} ப./மி."}\r
                 other{"{0} ப./மி."}\r
             }\r
+            percent{\r
+                dnam{"சதவீதம்"}\r
+                one{"{0}%"}\r
+                other{"{0}%"}\r
+            }\r
+            permille{\r
+                dnam{"மில்லி ஒன்றுக்கு"}\r
+                one{"{0}‰"}\r
+                other{"{0}‰"}\r
+            }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
@@ -1181,6 +1220,7 @@ ta{
             }\r
         }\r
         coordinate{\r
+            dnam{"திசை"}\r
             east{"{0}கி"}\r
             north{"{0}வ"}\r
             south{"{0}தெ"}\r
@@ -1227,6 +1267,11 @@ ta{
                 one{"{0} MB"}\r
                 other{"{0} MB"}\r
             }\r
+            petabyte{\r
+                dnam{"PB"}\r
+                one{"{0} PB"}\r
+                other{"{0} PB"}\r
+            }\r
             terabit{\r
                 dnam{"டெ.பி."}\r
                 one{"{0} Tb"}\r
@@ -1576,6 +1621,11 @@ ta{
             }\r
         }\r
         pressure{\r
+            atmosphere{\r
+                dnam{"atm"}\r
+                one{"{0} atm"}\r
+                other{"{0} atm"}\r
+            }\r
             hectopascal{\r
                 dnam{"ஹெ.பாஸ்."}\r
                 one{"{0} ஹெ.பாஸ்."}\r
index 55d0112..b262fcc 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 te{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.50"}\r
     durationUnits{\r
         hm{"h:mm"}\r
         hms{"h:mm:ss"}\r
@@ -123,6 +123,16 @@ te{
                 one{"{0} భాగం/మిలియన్"}\r
                 other{"{0} భాగాలు/మిలియన్"}\r
             }\r
+            percent{\r
+                dnam{"శాతం"}\r
+                one{"{0} శాతం"}\r
+                other{"{0} శాతం"}\r
+            }\r
+            permille{\r
+                dnam{"మైలుకు"}\r
+                one{"{0}/మైలుకు"}\r
+                other{"{0}/మైలుకు"}\r
+            }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
@@ -147,6 +157,7 @@ te{
             }\r
         }\r
         coordinate{\r
+            dnam{"కార్డినల్ దిశ"}\r
             east{"{0} తూర్పు"}\r
             north{"{0} ఉత్తరం"}\r
             south{"{0} దక్షిణం"}\r
@@ -193,6 +204,11 @@ te{
                 one{"{0} మెగాబైట్"}\r
                 other{"{0} మెగాబైట్లు"}\r
             }\r
+            petabyte{\r
+                dnam{"పెటాబైట్లు"}\r
+                one{"{0} పెటాబైట్"}\r
+                other{"{0} పెటాబైట్లు"}\r
+            }\r
             terabit{\r
                 dnam{"టెరాబిట్లు"}\r
                 one{"{0} టెరాబిట్"}\r
@@ -542,6 +558,11 @@ te{
             }\r
         }\r
         pressure{\r
+            atmosphere{\r
+                dnam{"వాతావరణాలు"}\r
+                one{"{0} వాతావరణం"}\r
+                other{"{0} వాతావరణాలు"}\r
+            }\r
             hectopascal{\r
                 dnam{"హెక్టోపాస్కల్‌లు"}\r
                 one{"{0} హెక్టోపాస్కల్"}\r
@@ -790,6 +811,13 @@ te{
         compound{\r
             per{"{0}/{1}"}\r
         }\r
+        concentr{\r
+            percent{\r
+                dnam{"%"}\r
+                one{"{0}%"}\r
+                other{"{0}%"}\r
+            }\r
+        }\r
         consumption{\r
             liter-per-100kilometers{\r
                 dnam{"లీ/100కి.మీ."}\r
@@ -798,6 +826,7 @@ te{
             }\r
         }\r
         coordinate{\r
+            dnam{"దిశ"}\r
             east{"{0} తూ."}\r
             north{"{0} ఉ."}\r
             south{"{0} ద."}\r
@@ -1157,6 +1186,16 @@ te{
                 one{"{0} భా./మి."}\r
                 other{"{0} భా./మి."}\r
             }\r
+            percent{\r
+                dnam{"శాతం"}\r
+                one{"{0}%"}\r
+                other{"{0}%"}\r
+            }\r
+            permille{\r
+                dnam{"మైలుకు"}\r
+                one{"{0}‰"}\r
+                other{"{0}‰"}\r
+            }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
@@ -1181,6 +1220,7 @@ te{
             }\r
         }\r
         coordinate{\r
+            dnam{"దిశ"}\r
             east{"{0} తూ."}\r
             north{"{0} ఉ."}\r
             south{"{0} ద."}\r
@@ -1227,6 +1267,11 @@ te{
                 one{"{0} ఎమ్‌బి"}\r
                 other{"{0} ఎమ్‌బి"}\r
             }\r
+            petabyte{\r
+                dnam{"పె.బైట్"}\r
+                one{"{0} పీబీ"}\r
+                other{"{0} పీబీ"}\r
+            }\r
             terabit{\r
                 dnam{"టె.బిట్"}\r
                 one{"{0} టె.బిట్"}\r
@@ -1358,9 +1403,9 @@ te{
         }\r
         frequency{\r
             gigahertz{\r
-                dnam{"గిగా హె"}\r
-                one{"{0} గిగా హె"}\r
-                other{"{0} గిగా హె"}\r
+                dnam{"గిగా హెడ్జ్"}\r
+                one{"{0} గిగా హెడ్జ్"}\r
+                other{"{0} గిగా హెడ్జ్"}\r
             }\r
             hertz{\r
                 dnam{"హెర్ట్‌జ్"}\r
@@ -1466,6 +1511,8 @@ te{
             }\r
             point{\r
                 dnam{"పాయింట్‌లు"}\r
+                one{"{0} pt"}\r
+                other{"{0} pt"}\r
             }\r
             yard{\r
                 dnam{"గజాలు"}\r
@@ -1574,6 +1621,11 @@ te{
             }\r
         }\r
         pressure{\r
+            atmosphere{\r
+                dnam{"వాతావ"}\r
+                one{"{0} వాతావ"}\r
+                other{"{0} వాతావ"}\r
+            }\r
             hectopascal{\r
                 dnam{"హె.పా"}\r
                 one{"{0} హె.పా"}\r
index f0d2dcc..123e837 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 tg{\r
-    Version{"2.1.38.71"}\r
+    Version{"2.1.44.88"}\r
     durationUnits{\r
         hm{"h:mm"}\r
         hms{"h:mm:ss"}\r
index 4082423..d89d24e 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 th{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.89"}\r
     durationUnits{\r
         hm{"h:mm"}\r
         hms{"h:mm:ss"}\r
@@ -103,6 +103,14 @@ th{
                 dnam{"ส่วนต่อล้าน"}\r
                 other{"{0} ส่วนต่อล้าน"}\r
             }\r
+            percent{\r
+                dnam{"เปอร์เซ็นต์"}\r
+                other{"{0} เปอร์เซ็นต์"}\r
+            }\r
+            permille{\r
+                dnam{"เปอร์มิลล์"}\r
+                other{"{0} เปอร์มิลล์"}\r
+            }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
@@ -123,6 +131,7 @@ th{
             }\r
         }\r
         coordinate{\r
+            dnam{"สี่ทิศหลัก"}\r
             east{"{0}ตะวันออก"}\r
             north{"{0}เหนือ"}\r
             south{"{0}ใต้"}\r
@@ -161,6 +170,10 @@ th{
                 dnam{"เมกะไบต์"}\r
                 other{"{0} เมกะไบต์"}\r
             }\r
+            petabyte{\r
+                dnam{"เพตาไบต์"}\r
+                other{"{0} เพตะไบต์"}\r
+            }\r
             terabit{\r
                 dnam{"เทราบิต"}\r
                 other{"{0} เทราบิต"}\r
@@ -443,6 +456,10 @@ th{
             }\r
         }\r
         pressure{\r
+            atmosphere{\r
+                dnam{"บรรยากาศ"}\r
+                other{"{0} บรรยากาศ"}\r
+            }\r
             hectopascal{\r
                 dnam{"เฮกโตปาสกาล"}\r
                 other{"{0} เฮกโตปาสกาล"}\r
@@ -644,6 +661,12 @@ th{
         compound{\r
             per{"{0}/{1}"}\r
         }\r
+        concentr{\r
+            percent{\r
+                dnam{"%"}\r
+                other{"{0}%"}\r
+            }\r
+        }\r
         consumption{\r
             liter-per-100kilometers{\r
                 dnam{"ล. /100 กม."}\r
@@ -651,9 +674,10 @@ th{
             }\r
         }\r
         coordinate{\r
+            dnam{"ทิศ"}\r
             east{"{0} ตอ"}\r
             north{"{0} น"}\r
-            south{"{0}à¹\83à¸\95à¹\89"}\r
+            south{"{0}à¸\95"}\r
             west{"{0} ตต"}\r
         }\r
         duration{\r
@@ -909,6 +933,14 @@ th{
                 dnam{"ส่วน/ล้าน"}\r
                 other{"{0} สตล."}\r
             }\r
+            percent{\r
+                dnam{"%"}\r
+                other{"{0}%"}\r
+            }\r
+            permille{\r
+                dnam{"‰"}\r
+                other{"{0}‰"}\r
+            }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
@@ -929,9 +961,10 @@ th{
             }\r
         }\r
         coordinate{\r
+            dnam{"ทิศหลัก"}\r
             east{"{0} ตอ"}\r
             north{"{0} น"}\r
-            south{"{0}ใต้"}\r
+            south{"{0} ต"}\r
             west{"{0} ตต"}\r
         }\r
         digital{\r
@@ -967,6 +1000,10 @@ th{
                 dnam{"MB"}\r
                 other{"{0} MB"}\r
             }\r
+            petabyte{\r
+                dnam{"PB"}\r
+                other{"{0} PB"}\r
+            }\r
             terabit{\r
                 dnam{"Tb"}\r
                 other{"{0} Tb"}\r
@@ -1249,6 +1286,10 @@ th{
             }\r
         }\r
         pressure{\r
+            atmosphere{\r
+                dnam{"บรรยากาศ"}\r
+                other{"{0} atm"}\r
+            }\r
             hectopascal{\r
                 dnam{"เฮกโตปาสกาล"}\r
                 other{"{0} เฮกโตปาสกาล"}\r
index 4a6c1a4..617370f 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 ti{\r
-    Version{"2.1.38.72"}\r
+    Version{"2.1.44.88"}\r
     durationUnits{\r
         hm{"h:mm"}\r
         hms{"h:mm:ss"}\r
diff --git a/source/data/unit/tk.txt b/source/data/unit/tk.txt
new file mode 100644 (file)
index 0000000..97117f8
--- /dev/null
@@ -0,0 +1,1631 @@
+// © 2016 and later: Unicode, Inc. and others.\r
+// License & terms of use: http://www.unicode.org/copyright.html#License\r
+tk{\r
+    Version{"2.1.43.65"}\r
+    durationUnits{\r
+        hm{"h:mm"}\r
+        hms{"hh:mm:ss"}\r
+        ms{"m:ss"}\r
+    }\r
+    units{\r
+        acceleration{\r
+            g-force{\r
+                dnam{"erkin düşüş tizlenmesi"}\r
+                one{"{0} G"}\r
+                other{"{0} G"}\r
+            }\r
+            meter-per-second-squared{\r
+                dnam{"inedördül sekuntda metr"}\r
+                one{"{0} metr/inedördül sekunt"}\r
+                other{"{0} metr/inedördül sekunt"}\r
+            }\r
+        }\r
+        angle{\r
+            arc-minute{\r
+                dnam{"burç minudy"}\r
+                one{"{0} burç minudy"}\r
+                other{"{0} burç minudy"}\r
+            }\r
+            arc-second{\r
+                dnam{"burç sekundy"}\r
+                one{"{0} burç sekundy"}\r
+                other{"{0} burç sekundy"}\r
+            }\r
+            degree{\r
+                dnam{"dereje"}\r
+                one{"{0} dereje"}\r
+                other{"{0} dereje"}\r
+            }\r
+            radian{\r
+                dnam{"radian"}\r
+                one{"{0} radian"}\r
+                other{"{0} radian"}\r
+            }\r
+            revolution{\r
+                dnam{"aýlaw"}\r
+                one{"{0} aýlaw"}\r
+                other{"{0} aýlaw"}\r
+            }\r
+        }\r
+        area{\r
+            acre{\r
+                dnam{"akr"}\r
+                one{"{0} akr"}\r
+                other{"{0} akr"}\r
+            }\r
+            hectare{\r
+                dnam{"gektar"}\r
+                one{"{0} gektar"}\r
+                other{"{0} gektar"}\r
+            }\r
+            square-centimeter{\r
+                dnam{"inedördül santimetr"}\r
+                one{"{0} inedördül santimetr"}\r
+                other{"{0} inedördül santimetr"}\r
+                per{"{0}/inedördül santimetr"}\r
+            }\r
+            square-foot{\r
+                dnam{"inedördül fut"}\r
+                one{"{0} inedördül fut"}\r
+                other{"{0} inedördül fut"}\r
+            }\r
+            square-inch{\r
+                dnam{"inedördül dýuým"}\r
+                one{"{0} inedördül dýuým"}\r
+                other{"{0} inedördül dýuým"}\r
+                per{"{0}/inedördül dýuým"}\r
+            }\r
+            square-kilometer{\r
+                dnam{"inedördül kilometr"}\r
+                one{"{0} inedördül kilometr"}\r
+                other{"{0} inedördül kilometr"}\r
+                per{"{0} /inedördül kilometr"}\r
+            }\r
+            square-meter{\r
+                dnam{"inedördül metr"}\r
+                one{"{0} inedördül metr"}\r
+                other{"{0} inedördül metr"}\r
+                per{"{0}/inedördül metr"}\r
+            }\r
+            square-mile{\r
+                dnam{"inedördül mil"}\r
+                one{"{0} inedördül mil"}\r
+                other{"{0} inedördül mil"}\r
+                per{"{0} /inedördül mil"}\r
+            }\r
+            square-yard{\r
+                dnam{"inedördül ýard"}\r
+                one{"{0} inedördül ýard"}\r
+                other{"{0} inedördül ýard"}\r
+            }\r
+        }\r
+        compound{\r
+            per{"{1} başyna {0}"}\r
+        }\r
+        concentr{\r
+            karat{\r
+                dnam{"karat"}\r
+                one{"{0} karat"}\r
+                other{"{0} karat"}\r
+            }\r
+            milligram-per-deciliter{\r
+                dnam{"milligram/desilitr"}\r
+                one{"{0} milligram/desilitr"}\r
+                other{"{0} milligram/desilitr"}\r
+            }\r
+            millimole-per-liter{\r
+                dnam{"millimol/litr"}\r
+                one{"{0} millimol/litr"}\r
+                other{"{0} millimol/litr"}\r
+            }\r
+            part-per-million{\r
+                dnam{"bölejik/million"}\r
+                one{"{0} bölejik/million"}\r
+                other{"{0} bölejik/million"}\r
+            }\r
+            percent{\r
+                dnam{"göterim"}\r
+                one{"{0} göterim"}\r
+                other{"{0} göterim"}\r
+            }\r
+            permille{\r
+                dnam{"promille"}\r
+                one{"{0} promille"}\r
+                other{"{0} promille"}\r
+            }\r
+        }\r
+        consumption{\r
+            liter-per-100kilometers{\r
+                dnam{"litr/100 kilometr"}\r
+                one{"{0} litr/100 kilometr"}\r
+                other{"{0} litr/100 kilometr"}\r
+            }\r
+            liter-per-kilometer{\r
+                dnam{"litr/kilometr"}\r
+                one{"{0} litr/kilometr"}\r
+                other{"{0} litr/kilometr"}\r
+            }\r
+            mile-per-gallon{\r
+                dnam{"mil/gallon"}\r
+                one{"{0} mil/gallon"}\r
+                other{"{0} mil/gallon"}\r
+            }\r
+            mile-per-gallon-imperial{\r
+                dnam{"mil/imp. gallon"}\r
+                one{"{0} mil/imp. gallon"}\r
+                other{"{0} mil/imp. gallon"}\r
+            }\r
+        }\r
+        coordinate{\r
+            dnam{"esasy ugur"}\r
+            east{"{0} gündogar"}\r
+            north{"{0} demirgazyk"}\r
+            south{"{0} günorta"}\r
+            west{"{0} günbatar"}\r
+        }\r
+        digital{\r
+            bit{\r
+                dnam{"bit"}\r
+                one{"{0} bit"}\r
+                other{"{0} bit"}\r
+            }\r
+            byte{\r
+                dnam{"baýt"}\r
+                one{"{0} baýt"}\r
+                other{"{0} baýt"}\r
+            }\r
+            gigabit{\r
+                dnam{"gigabit"}\r
+                one{"{0} gigabit"}\r
+                other{"{0} gigabit"}\r
+            }\r
+            gigabyte{\r
+                dnam{"gigabaýt"}\r
+                one{"{0} gigabaýt"}\r
+                other{"{0} gigabaýt"}\r
+            }\r
+            kilobit{\r
+                dnam{"kilobit"}\r
+                one{"{0} kilobit"}\r
+                other{"{0} kilobit"}\r
+            }\r
+            kilobyte{\r
+                dnam{"kilobaýt"}\r
+                one{"{0} kilobaýt"}\r
+                other{"{0} kilobaýt"}\r
+            }\r
+            megabit{\r
+                dnam{"megabit"}\r
+                one{"{0} megabit"}\r
+                other{"{0} megabit"}\r
+            }\r
+            megabyte{\r
+                dnam{"megabaýt"}\r
+                one{"{0} megabaýt"}\r
+                other{"{0} megabaýt"}\r
+            }\r
+            petabyte{\r
+                dnam{"petabaýt"}\r
+                one{"{0} petabaýt"}\r
+                other{"{0} petabaýt"}\r
+            }\r
+            terabit{\r
+                dnam{"terabit"}\r
+                one{"{0} terabit"}\r
+                other{"{0} terabit"}\r
+            }\r
+            terabyte{\r
+                dnam{"terabaýt"}\r
+                one{"{0} terabaýt"}\r
+                other{"{0} terabaýt"}\r
+            }\r
+        }\r
+        duration{\r
+            century{\r
+                dnam{"asyr"}\r
+                one{"{0} asyr"}\r
+                other{"{0} asyr"}\r
+            }\r
+            day{\r
+                dnam{"gün"}\r
+                one{"{0} gün"}\r
+                other{"{0} gün"}\r
+                per{"{0}/gün"}\r
+            }\r
+            hour{\r
+                dnam{"sagat"}\r
+                one{"{0} sagat"}\r
+                other{"{0} sagat"}\r
+                per{"{0}/sagat"}\r
+            }\r
+            microsecond{\r
+                dnam{"mikrosekunt"}\r
+                one{"{0} mikrosekunt"}\r
+                other{"{0} mikrosekunt"}\r
+            }\r
+            millisecond{\r
+                dnam{"millisekunt"}\r
+                one{"{0} millisekunt"}\r
+                other{"{0} millisekunt"}\r
+            }\r
+            minute{\r
+                dnam{"minut"}\r
+                one{"{0} minut"}\r
+                other{"{0} minut"}\r
+                per{"{0}/minut"}\r
+            }\r
+            month{\r
+                dnam{"aý"}\r
+                one{"{0} aý"}\r
+                other{"{0} aý"}\r
+                per{"{0}/aý"}\r
+            }\r
+            nanosecond{\r
+                dnam{"nanosekunt"}\r
+                one{"{0} nanosekunt"}\r
+                other{"{0} nanosekunt"}\r
+            }\r
+            second{\r
+                dnam{"sekunt"}\r
+                one{"{0} sekunt"}\r
+                other{"{0} sekunt"}\r
+                per{"{0}/sekunt"}\r
+            }\r
+            week{\r
+                dnam{"hepde"}\r
+                one{"{0} hepde"}\r
+                other{"{0} hepde"}\r
+                per{"{0}/hepde"}\r
+            }\r
+            year{\r
+                dnam{"ýyl"}\r
+                one{"{0} ýyl"}\r
+                other{"{0} ýyl"}\r
+                per{"{0}/ý"}\r
+            }\r
+        }\r
+        electric{\r
+            ampere{\r
+                dnam{"amper"}\r
+                one{"{0} amper"}\r
+                other{"{0} amper"}\r
+            }\r
+            milliampere{\r
+                dnam{"milliamper"}\r
+                one{"{0} milliamper"}\r
+                other{"{0} milliamper"}\r
+            }\r
+            ohm{\r
+                dnam{"om"}\r
+                one{"{0} om"}\r
+                other{"{0} om"}\r
+            }\r
+            volt{\r
+                dnam{"wolt"}\r
+                one{"{0} wolt"}\r
+                other{"{0} wolt"}\r
+            }\r
+        }\r
+        energy{\r
+            calorie{\r
+                dnam{"kaloriýa"}\r
+                one{"{0} kaloriýa"}\r
+                other{"{0} kaloriýa"}\r
+            }\r
+            foodcalorie{\r
+                dnam{"Kaloriýa"}\r
+                one{"{0} kaloriýa"}\r
+                other{"{0} kaloriýa"}\r
+            }\r
+            joule{\r
+                dnam{"joul"}\r
+                one{"{0} joul"}\r
+                other{"{0} joul"}\r
+            }\r
+            kilocalorie{\r
+                dnam{"kilokaloriýa"}\r
+                one{"{0} kilokaloriýa"}\r
+                other{"{0} kilokaloriýa"}\r
+            }\r
+            kilojoule{\r
+                dnam{"kilojoul"}\r
+                one{"{0} kilojoul"}\r
+                other{"{0} kilojoul"}\r
+            }\r
+            kilowatt-hour{\r
+                dnam{"kilowat-sagat"}\r
+                one{"{0} kilowat-sagat"}\r
+                other{"{0} kilowat-sagat"}\r
+            }\r
+        }\r
+        frequency{\r
+            gigahertz{\r
+                dnam{"gigagers"}\r
+                one{"{0} gigagers"}\r
+                other{"{0} gigagers"}\r
+            }\r
+            hertz{\r
+                dnam{"gers"}\r
+                one{"{0} gers"}\r
+                other{"{0} gers"}\r
+            }\r
+            kilohertz{\r
+                dnam{"kilogers"}\r
+                one{"{0} kilogers"}\r
+                other{"{0} kilogers"}\r
+            }\r
+            megahertz{\r
+                dnam{"megagers"}\r
+                one{"{0} megagers"}\r
+                other{"{0} megagers"}\r
+            }\r
+        }\r
+        length{\r
+            astronomical-unit{\r
+                dnam{"astronomik birlik"}\r
+                one{"{0} astronomik birlik"}\r
+                other{"{0} astronomik birlik"}\r
+            }\r
+            centimeter{\r
+                dnam{"santimetr"}\r
+                one{"{0} santimetr"}\r
+                other{"{0} santimetr"}\r
+                per{"{0}/sm"}\r
+            }\r
+            decimeter{\r
+                dnam{"desimetr"}\r
+                one{"{0} desimetr"}\r
+                other{"{0} desimetr"}\r
+            }\r
+            foot{\r
+                dnam{"fut"}\r
+                one{"{0} fut"}\r
+                other{"{0} fut"}\r
+                per{"{0}/fut"}\r
+            }\r
+            inch{\r
+                dnam{"dýuým"}\r
+                one{"{0} dýuým"}\r
+                other{"{0} dýuým"}\r
+                per{"{0}/dýuým"}\r
+            }\r
+            kilometer{\r
+                dnam{"kilometr"}\r
+                one{"{0} kilometr"}\r
+                other{"{0} kilometr"}\r
+                per{"{0}/kilometr"}\r
+            }\r
+            light-year{\r
+                dnam{"ýagtylyk ýyly"}\r
+                one{"{0} ýagtylyk ýyly"}\r
+                other{"{0} ýagtylyk ýyly"}\r
+            }\r
+            meter{\r
+                dnam{"metr"}\r
+                one{"{0} metr"}\r
+                other{"{0} metr"}\r
+                per{"{0}/m"}\r
+            }\r
+            micrometer{\r
+                dnam{"mikrometr"}\r
+                one{"{0} mikrometr"}\r
+                other{"{0} mikrometr"}\r
+            }\r
+            mile{\r
+                dnam{"mil"}\r
+                one{"{0} mil"}\r
+                other{"{0} mil"}\r
+            }\r
+            mile-scandinavian{\r
+                dnam{"skandinaw mili"}\r
+                one{"{0} skandinaw mili"}\r
+                other{"{0} skandinaw mili"}\r
+            }\r
+            millimeter{\r
+                dnam{"millimetr"}\r
+                one{"{0} millimetr"}\r
+                other{"{0} millimetr"}\r
+            }\r
+            nanometer{\r
+                dnam{"nanometr"}\r
+                one{"{0} nanometr"}\r
+                other{"{0} nanometr"}\r
+            }\r
+            nautical-mile{\r
+                dnam{"deňiz mili"}\r
+                one{"{0} deňiz mili"}\r
+                other{"{0} deňiz mili"}\r
+            }\r
+            parsec{\r
+                dnam{"parsek"}\r
+                one{"{0} parsek"}\r
+                other{"{0} parsek"}\r
+            }\r
+            picometer{\r
+                dnam{"pikometr"}\r
+                one{"{0} pikometr"}\r
+                other{"{0} pikometr"}\r
+            }\r
+            point{\r
+                dnam{"punkt"}\r
+                one{"{0} punkt"}\r
+                other{"{0} punkt"}\r
+            }\r
+            yard{\r
+                dnam{"ýard"}\r
+                one{"{0} ýard"}\r
+                other{"{0} ýard"}\r
+            }\r
+        }\r
+        light{\r
+            lux{\r
+                dnam{"lýuks"}\r
+                one{"{0} lýuks"}\r
+                other{"{0} lýuks"}\r
+            }\r
+        }\r
+        mass{\r
+            carat{\r
+                dnam{"karat"}\r
+                one{"{0} karat"}\r
+                other{"{0} karat"}\r
+            }\r
+            gram{\r
+                dnam{"gram"}\r
+                one{"{0} gram"}\r
+                other{"{0} gram"}\r
+                per{"{0}/gram"}\r
+            }\r
+            kilogram{\r
+                dnam{"kilogram"}\r
+                one{"{0} kilogram"}\r
+                other{"{0} kilogram"}\r
+                per{"{0}/kilogram"}\r
+            }\r
+            metric-ton{\r
+                dnam{"metrik tonna"}\r
+                one{"{0} metrik tonna"}\r
+                other{"{0} metrik tonna"}\r
+            }\r
+            microgram{\r
+                dnam{"mikrogram"}\r
+                one{"{0} mikrogram"}\r
+                other{"{0} mikrogram"}\r
+            }\r
+            milligram{\r
+                dnam{"milligram"}\r
+                one{"{0} milligram"}\r
+                other{"{0} milligram"}\r
+            }\r
+            ounce{\r
+                dnam{"unsiýa"}\r
+                one{"{0} unsiýa"}\r
+                other{"{0} unsiýa"}\r
+                per{"{0}/unsiýa"}\r
+            }\r
+            ounce-troy{\r
+                dnam{"troý unsiýa"}\r
+                one{"{0} troý unsiýa"}\r
+                other{"{0} troý unsiýa"}\r
+            }\r
+            pound{\r
+                dnam{"funt"}\r
+                one{"{0} funt"}\r
+                other{"{0} funt"}\r
+                per{"{0}/funt"}\r
+            }\r
+            ton{\r
+                dnam{"tonna"}\r
+                one{"{0} tonna"}\r
+                other{"{0} tonna"}\r
+            }\r
+        }\r
+        power{\r
+            gigawatt{\r
+                dnam{"gigawat"}\r
+                one{"{0} gigawat"}\r
+                other{"{0} gigawat"}\r
+            }\r
+            horsepower{\r
+                dnam{"at güýji"}\r
+                one{"{0} at güýji"}\r
+                other{"{0} at güýji"}\r
+            }\r
+            kilowatt{\r
+                dnam{"kilowat"}\r
+                one{"{0} kilowat"}\r
+                other{"{0} kilowat"}\r
+            }\r
+            megawatt{\r
+                dnam{"megawat"}\r
+                one{"{0} megawat"}\r
+                other{"{0} megawat"}\r
+            }\r
+            milliwatt{\r
+                dnam{"milliwat"}\r
+                one{"{0} milliwat"}\r
+                other{"{0} milliwat"}\r
+            }\r
+            watt{\r
+                dnam{"wat"}\r
+                one{"{0} wat"}\r
+                other{"{0} wat"}\r
+            }\r
+        }\r
+        pressure{\r
+            atmosphere{\r
+                dnam{"atm"}\r
+                one{"{0} atmosfera"}\r
+                other{"{0} atmosfera"}\r
+            }\r
+            hectopascal{\r
+                dnam{"gektopaskal"}\r
+                one{"{0} gektopaskal"}\r
+                other{"{0} gektopaskal"}\r
+            }\r
+            inch-hg{\r
+                dnam{"dýuým simap sütüni"}\r
+                one{"{0} dýuým simap sütüni"}\r
+                other{"{0} dýuým simap sütüni"}\r
+            }\r
+            millibar{\r
+                dnam{"millibar"}\r
+                one{"{0} millibar"}\r
+                other{"{0} millibar"}\r
+            }\r
+            millimeter-of-mercury{\r
+                dnam{"millimetr simap sütüni"}\r
+                one{"{0} millimetr simap sütüni"}\r
+                other{"{0} millimetr simap sütüni"}\r
+            }\r
+            pound-per-square-inch{\r
+                dnam{"funt/inedördül dýuým"}\r
+                one{"{0} funt/inedördül dýuým"}\r
+                other{"{0} funt/inedördül dýuým"}\r
+            }\r
+        }\r
+        speed{\r
+            kilometer-per-hour{\r
+                dnam{"sagatda kilometr"}\r
+                one{"{0} kilometr/sagat"}\r
+                other{"{0} kilometr/sagat"}\r
+            }\r
+            knot{\r
+                dnam{"düwün"}\r
+                one{"{0} düwün"}\r
+                other{"{0} düwün"}\r
+            }\r
+            meter-per-second{\r
+                dnam{"sekuntda metr"}\r
+                one{"{0} metr/sekunt"}\r
+                other{"{0} metr/sekunt"}\r
+            }\r
+            mile-per-hour{\r
+                dnam{"sagatda mil"}\r
+                one{"{0} mil/sagat"}\r
+                other{"{0} mil/sagat"}\r
+            }\r
+        }\r
+        temperature{\r
+            celsius{\r
+                dnam{"Selsiý gradusy"}\r
+                one{"{0} Selsiý gradusy"}\r
+                other{"{0} Selsiý gradusy"}\r
+            }\r
+            fahrenheit{\r
+                dnam{"Farengeýt gradusy"}\r
+                one{"{0} Farengeýt gradusy"}\r
+                other{"{0} Farengeýt gradusy"}\r
+            }\r
+            generic{\r
+                dnam{"°"}\r
+                one{"{0}°"}\r
+                other{"{0}°"}\r
+            }\r
+            kelvin{\r
+                dnam{"Kelwin gradusy"}\r
+                one{"{0} Kelwin gradusy"}\r
+                other{"{0} Kelwin gradusy"}\r
+            }\r
+        }\r
+        volume{\r
+            acre-foot{\r
+                dnam{"akr-fut"}\r
+                one{"{0} akr-fut"}\r
+                other{"{0} akr-fut"}\r
+            }\r
+            centiliter{\r
+                dnam{"santilitr"}\r
+                one{"{0} santilitr"}\r
+                other{"{0} santilitr"}\r
+            }\r
+            cubic-centimeter{\r
+                dnam{"kub santimetr"}\r
+                one{"{0} kub santimetr"}\r
+                other{"{0} kub santimetr"}\r
+                per{"{0}/kub santimetr"}\r
+            }\r
+            cubic-foot{\r
+                dnam{"kub fut"}\r
+                one{"{0} kub fut"}\r
+                other{"{0} kub fut"}\r
+            }\r
+            cubic-inch{\r
+                dnam{"kub dýuým"}\r
+                one{"{0} kub dýuým"}\r
+                other{"{0} kub dýuým"}\r
+            }\r
+            cubic-kilometer{\r
+                dnam{"kub kilometr"}\r
+                one{"{0} kub kilometr"}\r
+                other{"{0} kub kilometr"}\r
+            }\r
+            cubic-meter{\r
+                dnam{"kub metr"}\r
+                one{"{0} kub metr"}\r
+                other{"{0} kub metr"}\r
+                per{"{0}/kub metr"}\r
+            }\r
+            cubic-mile{\r
+                dnam{"kub mil"}\r
+                one{"{0} kub mil"}\r
+                other{"{0} kub mil"}\r
+            }\r
+            cubic-yard{\r
+                dnam{"kub ýard"}\r
+                one{"{0} kub ýard"}\r
+                other{"{0} kub ýard"}\r
+            }\r
+            cup{\r
+                dnam{"käse"}\r
+                one{"{0} käse"}\r
+                other{"{0} käse"}\r
+            }\r
+            cup-metric{\r
+                dnam{"metrik käse"}\r
+                one{"{0} metrik käse"}\r
+                other{"{0} metrik käse"}\r
+            }\r
+            deciliter{\r
+                dnam{"desilitr"}\r
+                one{"{0} desilitr"}\r
+                other{"{0} desilitr"}\r
+            }\r
+            fluid-ounce{\r
+                dnam{"suwuklyk unsiýasy"}\r
+                one{"{0} suwuklyk unsiýasy"}\r
+                other{"{0} suwuklyk unsiýasy"}\r
+            }\r
+            gallon{\r
+                dnam{"gallon"}\r
+                one{"{0} gallon"}\r
+                other{"{0} gallon"}\r
+                per{"{0}/gallon"}\r
+            }\r
+            gallon-imperial{\r
+                dnam{"Imp. gallon"}\r
+                one{"{0} imp. gallon"}\r
+                other{"{0} imp. gallon"}\r
+                per{"{0} /imp. gallon"}\r
+            }\r
+            hectoliter{\r
+                dnam{"gektolitr"}\r
+                one{"{0} gektolitr"}\r
+                other{"{0} gektolitr"}\r
+            }\r
+            liter{\r
+                dnam{"litr"}\r
+                one{"{0} litr"}\r
+                other{"{0} litr"}\r
+                per{"{0} /litr"}\r
+            }\r
+            megaliter{\r
+                dnam{"megalitr"}\r
+                one{"{0} megalitr"}\r
+                other{"{0} megalitr"}\r
+            }\r
+            milliliter{\r
+                dnam{"millilitr"}\r
+                one{"{0} millilitr"}\r
+                other{"{0} millilitr"}\r
+            }\r
+            pint{\r
+                dnam{"pinta"}\r
+                one{"{0} pinta"}\r
+                other{"{0} pinta"}\r
+            }\r
+            pint-metric{\r
+                dnam{"metrik pinta"}\r
+                one{"{0} metrik pinta"}\r
+                other{"{0} metrik pinta"}\r
+            }\r
+            quart{\r
+                dnam{"kwarta"}\r
+                one{"{0} kwarta"}\r
+                other{"{0} kwarta"}\r
+            }\r
+            tablespoon{\r
+                dnam{"nahar çemçesi"}\r
+                one{"{0} nahar çemçesi"}\r
+                other{"{0} nahar çemçesi"}\r
+            }\r
+            teaspoon{\r
+                dnam{"çaý çemçesi"}\r
+                one{"{0} çaý çemçesi"}\r
+                other{"{0} çaý çemçesi"}\r
+            }\r
+        }\r
+    }\r
+    unitsNarrow{\r
+        compound{\r
+            per{"{0}/{1}"}\r
+        }\r
+        concentr{\r
+            percent{\r
+                dnam{"%"}\r
+                one{"{0}%"}\r
+                other{"{0}%"}\r
+            }\r
+        }\r
+        consumption{\r
+            liter-per-100kilometers{\r
+                dnam{"l/100 km"}\r
+                one{"{0} l/100 km"}\r
+                other{"{0} l/100 km"}\r
+            }\r
+        }\r
+        coordinate{\r
+            dnam{"ugur"}\r
+            east{"{0}gd"}\r
+            north{"{0}dg"}\r
+            south{"{0}go"}\r
+            west{"{0}gb"}\r
+        }\r
+        duration{\r
+            day{\r
+                dnam{"g"}\r
+                one{"{0}g"}\r
+                other{"{0}g"}\r
+            }\r
+            hour{\r
+                dnam{"sg"}\r
+                one{"{0}sg"}\r
+                other{"{0}sg"}\r
+            }\r
+            millisecond{\r
+                dnam{"ms"}\r
+                one{"{0}ms"}\r
+                other{"{0}ms"}\r
+            }\r
+            minute{\r
+                dnam{"m"}\r
+                one{"{0}m"}\r
+                other{"{0}m"}\r
+            }\r
+            month{\r
+                dnam{"a"}\r
+                one{"{0}a"}\r
+                other{"{0}a"}\r
+            }\r
+            second{\r
+                dnam{"se"}\r
+                one{"{0}se"}\r
+                other{"{0}se"}\r
+            }\r
+            week{\r
+                dnam{"h"}\r
+                one{"{0}h"}\r
+                other{"{0}h"}\r
+            }\r
+            year{\r
+                dnam{"ý"}\r
+                one{"{0}ý"}\r
+                other{"{0}ý"}\r
+            }\r
+        }\r
+        length{\r
+            centimeter{\r
+                dnam{"sm"}\r
+                one{"{0}sm"}\r
+                other{"{0}sm"}\r
+            }\r
+            kilometer{\r
+                dnam{"km"}\r
+                one{"{0}km"}\r
+                other{"{0}km"}\r
+            }\r
+            meter{\r
+                dnam{"m"}\r
+                one{"{0}m"}\r
+                other{"{0}m"}\r
+            }\r
+            millimeter{\r
+                dnam{"mm"}\r
+                one{"{0}mm"}\r
+                other{"{0}mm"}\r
+            }\r
+        }\r
+        mass{\r
+            gram{\r
+                dnam{"gram"}\r
+                one{"{0}g"}\r
+                other{"{0}g"}\r
+            }\r
+            kilogram{\r
+                dnam{"kg"}\r
+                one{"{0}kg"}\r
+                other{"{0}kg"}\r
+            }\r
+        }\r
+        speed{\r
+            kilometer-per-hour{\r
+                dnam{"km/sag"}\r
+                one{"{0}km/sag"}\r
+                other{"{0}km/sag"}\r
+            }\r
+        }\r
+        temperature{\r
+            celsius{\r
+                dnam{"°C"}\r
+                one{"{0}°C"}\r
+                other{"{0}°C"}\r
+            }\r
+        }\r
+        volume{\r
+            liter{\r
+                dnam{"litr"}\r
+                one{"{0}l"}\r
+                other{"{0}l"}\r
+            }\r
+        }\r
+    }\r
+    unitsShort{\r
+        acceleration{\r
+            g-force{\r
+                dnam{"G"}\r
+                one{"{0} G"}\r
+                other{"{0} G"}\r
+            }\r
+            meter-per-second-squared{\r
+                dnam{"m/s²"}\r
+                one{"{0} m/s²"}\r
+                other{"{0} m/s²"}\r
+            }\r
+        }\r
+        angle{\r
+            arc-minute{\r
+                dnam{"burç minudy"}\r
+                one{"{0} burç min."}\r
+                other{"{0} burç min."}\r
+            }\r
+            arc-second{\r
+                dnam{"burç sekundy"}\r
+                one{"{0} burç sek."}\r
+                other{"{0} burç sek."}\r
+            }\r
+            degree{\r
+                dnam{"dereje"}\r
+                one{"{0}°"}\r
+                other{"{0}°"}\r
+            }\r
+            radian{\r
+                dnam{"rad"}\r
+                one{"{0} rad"}\r
+                other{"{0} rad"}\r
+            }\r
+            revolution{\r
+                dnam{"aýl."}\r
+                one{"{0} aýl."}\r
+                other{"{0} aýl."}\r
+            }\r
+        }\r
+        area{\r
+            acre{\r
+                dnam{"akr"}\r
+                one{"{0} akr"}\r
+                other{"{0} akr"}\r
+            }\r
+            hectare{\r
+                dnam{"ga"}\r
+                one{"{0} ga"}\r
+                other{"{0} ga"}\r
+            }\r
+            square-centimeter{\r
+                dnam{"cm²"}\r
+                one{"{0} cm²"}\r
+                other{"{0} cm²"}\r
+                per{"{0}/cm²"}\r
+            }\r
+            square-foot{\r
+                dnam{"ft²"}\r
+                one{"{0} ft²"}\r
+                other{"{0} ft²"}\r
+            }\r
+            square-inch{\r
+                dnam{"dý²"}\r
+                one{"{0} dý²"}\r
+                other{"{0} dý²"}\r
+                per{"{0}/dý²"}\r
+            }\r
+            square-kilometer{\r
+                dnam{"km²"}\r
+                one{"{0} km²"}\r
+                other{"{0} km²"}\r
+                per{"{0}/km²"}\r
+            }\r
+            square-meter{\r
+                dnam{"m²"}\r
+                one{"{0} m²"}\r
+                other{"{0} m²"}\r
+                per{"{0}/m²"}\r
+            }\r
+            square-mile{\r
+                dnam{"mi²"}\r
+                one{"{0} mi²"}\r
+                other{"{0} mi²"}\r
+                per{"{0}/mi²"}\r
+            }\r
+            square-yard{\r
+                dnam{"ýd²"}\r
+                one{"{0} ýd²"}\r
+                other{"{0} ýd²"}\r
+            }\r
+        }\r
+        compound{\r
+            per{"{0}/{1}"}\r
+        }\r
+        concentr{\r
+            karat{\r
+                dnam{"karat"}\r
+                one{"{0} kt"}\r
+                other{"{0} kt"}\r
+            }\r
+            milligram-per-deciliter{\r
+                dnam{"mg/dL"}\r
+                one{"{0} mg/dL"}\r
+                other{"{0} mg/dL"}\r
+            }\r
+            millimole-per-liter{\r
+                dnam{"millimol/litr"}\r
+                one{"{0} mmol/L"}\r
+                other{"{0} mmol/L"}\r
+            }\r
+            part-per-million{\r
+                dnam{"bölejik/million"}\r
+                one{"{0} ppm"}\r
+                other{"{0} ppm"}\r
+            }\r
+            percent{\r
+                dnam{"göterim"}\r
+                one{"{0}%"}\r
+                other{"{0}%"}\r
+            }\r
+            permille{\r
+                dnam{"promille"}\r
+                one{"{0}‰"}\r
+                other{"{0}‰"}\r
+            }\r
+        }\r
+        consumption{\r
+            liter-per-100kilometers{\r
+                dnam{"l/100 km"}\r
+                one{"{0} l/100 km"}\r
+                other{"{0} l/100 km"}\r
+            }\r
+            liter-per-kilometer{\r
+                dnam{"litr/km"}\r
+                one{"{0} l/km"}\r
+                other{"{0} l/km"}\r
+            }\r
+            mile-per-gallon{\r
+                dnam{"mil/gal."}\r
+                one{"{0} mil/gal."}\r
+                other{"{0} mil/gal."}\r
+            }\r
+            mile-per-gallon-imperial{\r
+                dnam{"mil/imp. gal."}\r
+                one{"{0} mil/imp. gal."}\r
+                other{"{0} mil/imp. gal."}\r
+            }\r
+        }\r
+        coordinate{\r
+            dnam{"ugur"}\r
+            east{"{0} gd"}\r
+            north{"{0} dg"}\r
+            south{"{0} go"}\r
+            west{"{0} gb"}\r
+        }\r
+        digital{\r
+            bit{\r
+                dnam{"bit"}\r
+                one{"{0} bit"}\r
+                other{"{0} bit"}\r
+            }\r
+            byte{\r
+                dnam{"B"}\r
+                one{"{0} B"}\r
+                other{"{0} B"}\r
+            }\r
+            gigabit{\r
+                dnam{"Gbit"}\r
+                one{"{0} Gbit"}\r
+                other{"{0} Gbit"}\r
+            }\r
+            gigabyte{\r
+                dnam{"GB"}\r
+                one{"{0} GB"}\r
+                other{"{0} GB"}\r
+            }\r
+            kilobit{\r
+                dnam{"kbit"}\r
+                one{"{0} kbit"}\r
+                other{"{0} kbit"}\r
+            }\r
+            kilobyte{\r
+                dnam{"kB"}\r
+                one{"{0} kB"}\r
+                other{"{0} kB"}\r
+            }\r
+            megabit{\r
+                dnam{"Mbit"}\r
+                one{"{0} Mbit"}\r
+                other{"{0} Mbit"}\r
+            }\r
+            megabyte{\r
+                dnam{"MB"}\r
+                one{"{0} MB"}\r
+                other{"{0} MB"}\r
+            }\r
+            petabyte{\r
+                dnam{"PB"}\r
+                one{"{0} PB"}\r
+                other{"{0} PB"}\r
+            }\r
+            terabit{\r
+                dnam{"Tbit"}\r
+                one{"{0} Tbit"}\r
+                other{"{0} Tbit"}\r
+            }\r
+            terabyte{\r
+                dnam{"TB"}\r
+                one{"{0} TB"}\r
+                other{"{0} TB"}\r
+            }\r
+        }\r
+        duration{\r
+            century{\r
+                dnam{"as"}\r
+                one{"{0} as"}\r
+                other{"{0} as"}\r
+            }\r
+            day{\r
+                dnam{"gün"}\r
+                one{"{0} gün"}\r
+                other{"{0} gün"}\r
+                per{"{0}/gün"}\r
+            }\r
+            hour{\r
+                dnam{"sag"}\r
+                one{"{0} sag"}\r
+                other{"{0} sag"}\r
+                per{"{0}/sag"}\r
+            }\r
+            microsecond{\r
+                dnam{"μs"}\r
+                one{"{0} μs"}\r
+                other{"{0} μs"}\r
+            }\r
+            millisecond{\r
+                dnam{"msek"}\r
+                one{"{0} msek"}\r
+                other{"{0} msek"}\r
+            }\r
+            minute{\r
+                dnam{"min"}\r
+                one{"{0} min"}\r
+                other{"{0} min"}\r
+                per{"{0}/min"}\r
+            }\r
+            month{\r
+                dnam{"aý"}\r
+                one{"{0} a"}\r
+                other{"{0} a"}\r
+                per{"{0}/a"}\r
+            }\r
+            nanosecond{\r
+                dnam{"ns"}\r
+                one{"{0} ns"}\r
+                other{"{0} ns"}\r
+            }\r
+            second{\r
+                dnam{"sek"}\r
+                one{"{0} sek"}\r
+                other{"{0} sek"}\r
+                per{"{0}/sek"}\r
+            }\r
+            week{\r
+                dnam{"hep"}\r
+                one{"{0} hep"}\r
+                other{"{0} hep"}\r
+                per{"{0}/hep"}\r
+            }\r
+            year{\r
+                dnam{"ý."}\r
+                one{"{0} ý."}\r
+                other{"{0} ý."}\r
+                per{"{0}/ý."}\r
+            }\r
+        }\r
+        electric{\r
+            ampere{\r
+                dnam{"amp"}\r
+                one{"{0} A"}\r
+                other{"{0} A"}\r
+            }\r
+            milliampere{\r
+                dnam{"milliamp"}\r
+                one{"{0} mA"}\r
+                other{"{0} mA"}\r
+            }\r
+            ohm{\r
+                dnam{"Om"}\r
+                one{"{0} Om"}\r
+                other{"{0} Om"}\r
+            }\r
+            volt{\r
+                dnam{"W"}\r
+                one{"{0} W"}\r
+                other{"{0} W"}\r
+            }\r
+        }\r
+        energy{\r
+            calorie{\r
+                dnam{"kal"}\r
+                one{"{0} kal"}\r
+                other{"{0} kal"}\r
+            }\r
+            foodcalorie{\r
+                dnam{"Kal"}\r
+                one{"{0} kal"}\r
+                other{"{0} kal"}\r
+            }\r
+            joule{\r
+                dnam{"J"}\r
+                one{"{0} J"}\r
+                other{"{0} J"}\r
+            }\r
+            kilocalorie{\r
+                dnam{"kkal"}\r
+                one{"{0} kkal"}\r
+                other{"{0} kkal"}\r
+            }\r
+            kilojoule{\r
+                dnam{"kilojoul"}\r
+                one{"{0} kJ"}\r
+                other{"{0} kJ"}\r
+            }\r
+            kilowatt-hour{\r
+                dnam{"kWt. sag"}\r
+                one{"{0} kWt. sag"}\r
+                other{"{0} kWt. sag"}\r
+            }\r
+        }\r
+        frequency{\r
+            gigahertz{\r
+                dnam{"GGs"}\r
+                one{"{0} GGs"}\r
+                other{"{0} GGs"}\r
+            }\r
+            hertz{\r
+                dnam{"Gs"}\r
+                one{"{0} Gs"}\r
+                other{"{0} Gs"}\r
+            }\r
+            kilohertz{\r
+                dnam{"kGs"}\r
+                one{"{0} kGs"}\r
+                other{"{0} kGs"}\r
+            }\r
+            megahertz{\r
+                dnam{"MGs"}\r
+                one{"{0} MGs"}\r
+                other{"{0} MGs"}\r
+            }\r
+        }\r
+        length{\r
+            astronomical-unit{\r
+                dnam{"ab"}\r
+                one{"{0} ab"}\r
+                other{"{0} ab"}\r
+            }\r
+            centimeter{\r
+                dnam{"sm"}\r
+                one{"{0} sm"}\r
+                other{"{0} sm"}\r
+                per{"{0}/sm"}\r
+            }\r
+            decimeter{\r
+                dnam{"dm"}\r
+                one{"{0} dm"}\r
+                other{"{0} dm"}\r
+            }\r
+            foot{\r
+                dnam{"ft"}\r
+                one{"{0} ft"}\r
+                other{"{0} ft"}\r
+                per{"{0}/ft"}\r
+            }\r
+            inch{\r
+                dnam{"dý"}\r
+                one{"{0} dý"}\r
+                other{"{0} dý"}\r
+                per{"{0}/dý"}\r
+            }\r
+            kilometer{\r
+                dnam{"km"}\r
+                one{"{0} km"}\r
+                other{"{0} km"}\r
+                per{"{0}/km"}\r
+            }\r
+            light-year{\r
+                dnam{"ýý"}\r
+                one{"{0} ýý"}\r
+                other{"{0} ýý"}\r
+            }\r
+            meter{\r
+                dnam{"metr"}\r
+                one{"{0} m"}\r
+                other{"{0} m"}\r
+                per{"{0}/m"}\r
+            }\r
+            micrometer{\r
+                dnam{"µm"}\r
+                one{"{0} µm"}\r
+                other{"{0} µm"}\r
+            }\r
+            mile{\r
+                dnam{"mi"}\r
+                one{"{0} mi"}\r
+                other{"{0} mi"}\r
+            }\r
+            mile-scandinavian{\r
+                dnam{"smi"}\r
+                one{"{0} smi"}\r
+                other{"{0} smi"}\r
+            }\r
+            millimeter{\r
+                dnam{"mm"}\r
+                one{"{0} mm"}\r
+                other{"{0} mm"}\r
+            }\r
+            nanometer{\r
+                dnam{"nm"}\r
+                one{"{0} nm"}\r
+                other{"{0} nm"}\r
+            }\r
+            nautical-mile{\r
+                dnam{"dmi"}\r
+                one{"{0} dmi"}\r
+                other{"{0} dmi"}\r
+            }\r
+            parsec{\r
+                dnam{"pk"}\r
+                one{"{0} pk"}\r
+                other{"{0} pk"}\r
+            }\r
+            picometer{\r
+                dnam{"pm"}\r
+                one{"{0} pm"}\r
+                other{"{0} pm"}\r
+            }\r
+            point{\r
+                dnam{"punkt"}\r
+                one{"{0} pt"}\r
+                other{"{0} pt"}\r
+            }\r
+            yard{\r
+                dnam{"ýd"}\r
+                one{"{0} ýd"}\r
+                other{"{0} ýd"}\r
+            }\r
+        }\r
+        light{\r
+            lux{\r
+                dnam{"lk"}\r
+                one{"{0} lk"}\r
+                other{"{0} lk"}\r
+            }\r
+        }\r
+        mass{\r
+            carat{\r
+                dnam{"kar"}\r
+                one{"{0} kar"}\r
+                other{"{0} kar"}\r
+            }\r
+            gram{\r
+                dnam{"gram"}\r
+                one{"{0} g"}\r
+                other{"{0} g"}\r
+                per{"{0}/g"}\r
+            }\r
+            kilogram{\r
+                dnam{"kg"}\r
+                one{"{0} kg"}\r
+                other{"{0} kg"}\r
+                per{"{0}/kg"}\r
+            }\r
+            metric-ton{\r
+                dnam{"t"}\r
+                one{"{0} t"}\r
+                other{"{0} t"}\r
+            }\r
+            microgram{\r
+                dnam{"µg"}\r
+                one{"{0} µg"}\r
+                other{"{0} µg"}\r
+            }\r
+            milligram{\r
+                dnam{"mg"}\r
+                one{"{0} mg"}\r
+                other{"{0} mg"}\r
+            }\r
+            ounce{\r
+                dnam{"uns."}\r
+                one{"{0} uns."}\r
+                other{"{0} uns."}\r
+                per{"{0}/uns."}\r
+            }\r
+            ounce-troy{\r
+                dnam{"oz t"}\r
+                one{"{0} oz t"}\r
+                other{"{0} oz t"}\r
+            }\r
+            pound{\r
+                dnam{"funt"}\r
+                one{"{0} funt"}\r
+                other{"{0} funt"}\r
+                per{"{0}/funt"}\r
+            }\r
+            ton{\r
+                dnam{"tonna"}\r
+                one{"{0} tn"}\r
+                other{"{0} tn"}\r
+            }\r
+        }\r
+        power{\r
+            gigawatt{\r
+                dnam{"GWt"}\r
+                one{"{0} GWt"}\r
+                other{"{0} GWt"}\r
+            }\r
+            horsepower{\r
+                dnam{"a.g."}\r
+                one{"{0} a.g."}\r
+                other{"{0} a.g."}\r
+            }\r
+            kilowatt{\r
+                dnam{"kWt"}\r
+                one{"{0} kWt"}\r
+                other{"{0} kWt"}\r
+            }\r
+            megawatt{\r
+                dnam{"MWt"}\r
+                one{"{0} MWt"}\r
+                other{"{0} MWt"}\r
+            }\r
+            milliwatt{\r
+                dnam{"mWt"}\r
+                one{"{0} mWt"}\r
+                other{"{0} mWt"}\r
+            }\r
+            watt{\r
+                dnam{"Wt"}\r
+                one{"{0} Wt"}\r
+                other{"{0} Wt"}\r
+            }\r
+        }\r
+        pressure{\r
+            atmosphere{\r
+                dnam{"atm"}\r
+                one{"{0} atm"}\r
+                other{"{0} atm"}\r
+            }\r
+            hectopascal{\r
+                dnam{"gPa"}\r
+                one{"{0} gPa"}\r
+                other{"{0} gPa"}\r
+            }\r
+            inch-hg{\r
+                dnam{"dý sim.süt."}\r
+                one{"{0} dý sim.süt."}\r
+                other{"{0} dý sim.süt."}\r
+            }\r
+            millibar{\r
+                dnam{"mbar"}\r
+                one{"{0} mbar"}\r
+                other{"{0} mbar"}\r
+            }\r
+            millimeter-of-mercury{\r
+                dnam{"mm sim.süt."}\r
+                one{"{0} mm sim.süt."}\r
+                other{"{0} mm sim.süt."}\r
+            }\r
+            pound-per-square-inch{\r
+                dnam{"psi"}\r
+                one{"{0} psi"}\r
+                other{"{0} psi"}\r
+            }\r
+        }\r
+        speed{\r
+            kilometer-per-hour{\r
+                dnam{"km/sagat"}\r
+                one{"{0} km/sag"}\r
+                other{"{0} km/sag"}\r
+            }\r
+            knot{\r
+                dnam{"dü."}\r
+                one{"{0} dü."}\r
+                other{"{0} dü."}\r
+            }\r
+            meter-per-second{\r
+                dnam{"m/s"}\r
+                one{"{0} m/s"}\r
+                other{"{0} m/s"}\r
+            }\r
+            mile-per-hour{\r
+                dnam{"mil/sag"}\r
+                one{"{0} mil/sag"}\r
+                other{"{0} mil/sag"}\r
+            }\r
+        }\r
+        temperature{\r
+            celsius{\r
+                dnam{"°C"}\r
+                one{"{0}°C"}\r
+                other{"{0}°C"}\r
+            }\r
+            fahrenheit{\r
+                dnam{"°F"}\r
+                one{"{0}°F"}\r
+                other{"{0}°F"}\r
+            }\r
+            generic{\r
+                dnam{"°"}\r
+                one{"{0}°"}\r
+                other{"{0}°"}\r
+            }\r
+            kelvin{\r
+                dnam{"K"}\r
+                one{"{0} K"}\r
+                other{"{0} K"}\r
+            }\r
+        }\r
+        volume{\r
+            acre-foot{\r
+                dnam{"akr-ft"}\r
+                one{"{0} ak-ft"}\r
+                other{"{0} ak-ft"}\r
+            }\r
+            centiliter{\r
+                dnam{"sl"}\r
+                one{"{0} sl"}\r
+                other{"{0} sl"}\r
+            }\r
+            cubic-centimeter{\r
+                dnam{"sm³"}\r
+                one{"{0} sm³"}\r
+                other{"{0} sm³"}\r
+                per{"{0}/sm³"}\r
+            }\r
+            cubic-foot{\r
+                dnam{"ft³"}\r
+                one{"{0} ft³"}\r
+                other{"{0} ft³"}\r
+            }\r
+            cubic-inch{\r
+                dnam{"dý³"}\r
+                one{"{0} dý³"}\r
+                other{"{0} dý³"}\r
+            }\r
+            cubic-kilometer{\r
+                dnam{"km³"}\r
+                one{"{0} km³"}\r
+                other{"{0} km³"}\r
+            }\r
+            cubic-meter{\r
+                dnam{"m³"}\r
+                one{"{0} m³"}\r
+                other{"{0} m³"}\r
+                per{"{0}/m³"}\r
+            }\r
+            cubic-mile{\r
+                dnam{"mi³"}\r
+                one{"{0} mi³"}\r
+                other{"{0} mi³"}\r
+            }\r
+            cubic-yard{\r
+                dnam{"ýd³"}\r
+                one{"{0} ýd³"}\r
+                other{"{0} ýd³"}\r
+            }\r
+            cup{\r
+                dnam{"käse"}\r
+                one{"{0} kä"}\r
+                other{"{0} kä"}\r
+            }\r
+            cup-metric{\r
+                dnam{"mkä"}\r
+                one{"{0} mkä"}\r
+                other{"{0} mkä"}\r
+            }\r
+            deciliter{\r
+                dnam{"dl"}\r
+                one{"{0} dl"}\r
+                other{"{0} dl"}\r
+            }\r
+            fluid-ounce{\r
+                dnam{"suw. uns."}\r
+                one{"{0} suw. uns."}\r
+                other{"{0} suw. uns."}\r
+            }\r
+            gallon{\r
+                dnam{"gal."}\r
+                one{"{0} gal."}\r
+                other{"{0} gal."}\r
+                per{"{0}/gal."}\r
+            }\r
+            gallon-imperial{\r
+                dnam{"Imp. gal"}\r
+                one{"{0} imp. gal."}\r
+                other{"{0} imp.gal."}\r
+                per{"{0}/imp.gal."}\r
+            }\r
+            hectoliter{\r
+                dnam{"gl"}\r
+                one{"{0} gl"}\r
+                other{"{0} gl"}\r
+            }\r
+            liter{\r
+                dnam{"litr"}\r
+                one{"{0} l"}\r
+                other{"{0} l"}\r
+                per{"{0}/l"}\r
+            }\r
+            megaliter{\r
+                dnam{"Ml"}\r
+                one{"{0} Ml"}\r
+                other{"{0} Ml"}\r
+            }\r
+            milliliter{\r
+                dnam{"ml"}\r
+                one{"{0} ml"}\r
+                other{"{0} ml"}\r
+            }\r
+            pint{\r
+                dnam{"pt"}\r
+                one{"{0} pt"}\r
+                other{"{0} pt"}\r
+            }\r
+            pint-metric{\r
+                dnam{"mpt"}\r
+                one{"{0} mpt"}\r
+                other{"{0} mpt"}\r
+            }\r
+            quart{\r
+                dnam{"kwt"}\r
+                one{"{0} kwt"}\r
+                other{"{0} kwt"}\r
+            }\r
+            tablespoon{\r
+                dnam{"n. ç."}\r
+                one{"{0} n. ç."}\r
+                other{"{0} n. ç."}\r
+            }\r
+            teaspoon{\r
+                dnam{"ç. ç."}\r
+                one{"{0} ç. ç."}\r
+                other{"{0} ç. ç."}\r
+            }\r
+        }\r
+    }\r
+}\r
index d5e060f..bb42d40 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 to{\r
-    Version{"2.1.38.39"}\r
+    Version{"2.1.44.88"}\r
     durationUnits{\r
         hm{"h:mm"}\r
         hms{"h:mm:ss"}\r
@@ -431,16 +431,16 @@ to{
                 other{"hēkitopasikale ʻe {0}"}\r
             }\r
             inch-hg{\r
-                dnam{"ʻinisi mēkuli"}\r
-                other{"ʻinisi mēkuli ʻe {0}"}\r
+                dnam{"ʻinisi meakuli"}\r
+                other{"ʻinisi meakuli ʻe {0}"}\r
             }\r
             millibar{\r
                 dnam{"milipā"}\r
                 other{"milipā ʻe {0}"}\r
             }\r
             millimeter-of-mercury{\r
-                dnam{"milimita mēkuli"}\r
-                other{"milimita mēkuli ʻe {0}"}\r
+                dnam{"milimita meakuli"}\r
+                other{"milimita meakuli ʻe {0}"}\r
             }\r
             pound-per-square-inch{\r
                 dnam{"pāuni he ʻinisi sikuea"}\r
@@ -1269,6 +1269,9 @@ to{
                 dnam{"mekapaiti"}\r
                 other{"MB ʻe {0}"}\r
             }\r
+            petabyte{\r
+                other{"PB ʻe {0}"}\r
+            }\r
             terabit{\r
                 dnam{"telapiti"}\r
                 other{"Tb ʻe {0}"}\r
@@ -1581,6 +1584,9 @@ to{
                 dnam{"°F"}\r
                 other{"°F ʻe {0}"}\r
             }\r
+            generic{\r
+                other{"° ʻe {0}"}\r
+            }\r
             kelvin{\r
                 dnam{"K"}\r
                 other{"K ʻe {0}"}\r
index 196b982..923ba84 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 tr{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.91"}\r
     durationUnits{\r
         hm{"h:mm"}\r
         hms{"h:mm:ss"}\r
@@ -123,6 +123,16 @@ tr{
                 one{"{0} parça/milyon"}\r
                 other{"{0} parça/milyon"}\r
             }\r
+            percent{\r
+                dnam{"yüzde"}\r
+                one{"yüzde {0}"}\r
+                other{"yüzde {0}"}\r
+            }\r
+            permille{\r
+                dnam{"binde"}\r
+                one{"binde {0}"}\r
+                other{"binde {0}"}\r
+            }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
@@ -147,6 +157,7 @@ tr{
             }\r
         }\r
         coordinate{\r
+            dnam{"ana yön"}\r
             east{"{0}Doğu"}\r
             north{"{0}Kuzey"}\r
             south{"{0}Güney"}\r
@@ -193,6 +204,11 @@ tr{
                 one{"{0} megabayt"}\r
                 other{"{0} megabayt"}\r
             }\r
+            petabyte{\r
+                dnam{"petabayt"}\r
+                one{"{0} petabayt"}\r
+                other{"{0} petabayt"}\r
+            }\r
             terabit{\r
                 dnam{"terabit"}\r
                 one{"{0} terabit"}\r
@@ -552,6 +568,11 @@ tr{
             }\r
         }\r
         pressure{\r
+            atmosphere{\r
+                dnam{"atmosfer"}\r
+                one{"{0} atmosfer"}\r
+                other{"{0} atmosfer"}\r
+            }\r
             hectopascal{\r
                 dnam{"hektopaskal"}\r
                 one{"{0} hektopaskal"}\r
@@ -770,10 +791,12 @@ tr{
         }\r
         angle{\r
             arc-minute{\r
+                dnam{"açısal dk."}\r
                 one{"{0}′"}\r
                 other{"{0}′"}\r
             }\r
             arc-second{\r
+                dnam{"açısal sn."}\r
                 one{"{0}″"}\r
                 other{"{0}″"}\r
             }\r
@@ -785,6 +808,11 @@ tr{
                 one{"{0} rad"}\r
                 other{"{0} rad"}\r
             }\r
+            revolution{\r
+                dnam{"dev"}\r
+                one{"{0} dev"}\r
+                other{"{0} dev"}\r
+            }\r
         }\r
         area{\r
             acre{\r
@@ -843,9 +871,35 @@ tr{
         }\r
         concentr{\r
             karat{\r
+                dnam{"ayar"}\r
                 one{"{0} ayar"}\r
                 other{"{0} ayar"}\r
             }\r
+            milligram-per-deciliter{\r
+                dnam{"mg/dL"}\r
+                one{"{0} mg/dL"}\r
+                other{"{0} mg/dL"}\r
+            }\r
+            millimole-per-liter{\r
+                dnam{"mmol/L"}\r
+                one{"{0} mmol/L"}\r
+                other{"{0} mmol/L"}\r
+            }\r
+            part-per-million{\r
+                dnam{"ppm"}\r
+                one{"{0} ppm"}\r
+                other{"{0} ppm"}\r
+            }\r
+            percent{\r
+                dnam{"%"}\r
+                one{"{0}%"}\r
+                other{"{0}%"}\r
+            }\r
+            permille{\r
+                dnam{"‰"}\r
+                one{"{0}‰"}\r
+                other{"{0}‰"}\r
+            }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
@@ -854,6 +908,7 @@ tr{
                 other{"{0} L/100km"}\r
             }\r
             liter-per-kilometer{\r
+                dnam{"l/km"}\r
                 one{"{0} l/km"}\r
                 other{"{0} l/km"}\r
             }\r
@@ -863,6 +918,7 @@ tr{
             }\r
         }\r
         coordinate{\r
+            dnam{"yön"}\r
             east{"{0}D"}\r
             north{"{0}K"}\r
             south{"{0}G"}\r
@@ -870,42 +926,52 @@ tr{
         }\r
         digital{\r
             bit{\r
+                dnam{"bit"}\r
                 one{"{0} bit"}\r
                 other{"{0} bit"}\r
             }\r
             byte{\r
+                dnam{"bayt"}\r
                 one{"{0} byte"}\r
                 other{"{0} byte"}\r
             }\r
             gigabit{\r
+                dnam{"Gbit"}\r
                 one{"{0} Gb"}\r
                 other{"{0} Gb"}\r
             }\r
             gigabyte{\r
+                dnam{"GB"}\r
                 one{"{0} GB"}\r
                 other{"{0} GB"}\r
             }\r
             kilobit{\r
+                dnam{"kbit"}\r
                 one{"{0} kb"}\r
                 other{"{0} kb"}\r
             }\r
             kilobyte{\r
+                dnam{"kB"}\r
                 one{"{0} kB"}\r
                 other{"{0} kB"}\r
             }\r
             megabit{\r
+                dnam{"Mbit"}\r
                 one{"{0} Mb"}\r
                 other{"{0} Mb"}\r
             }\r
             megabyte{\r
+                dnam{"MB"}\r
                 one{"{0} MB"}\r
                 other{"{0} MB"}\r
             }\r
             terabit{\r
+                dnam{"Tbit"}\r
                 one{"{0} Tb"}\r
                 other{"{0} Tb"}\r
             }\r
             terabyte{\r
+                dnam{"TB"}\r
                 one{"{0} TB"}\r
                 other{"{0} TB"}\r
             }\r
@@ -976,18 +1042,22 @@ tr{
         }\r
         electric{\r
             ampere{\r
+                dnam{"amper"}\r
                 one{"{0} A"}\r
                 other{"{0} A"}\r
             }\r
             milliampere{\r
+                dnam{"miliamper"}\r
                 one{"{0} mA"}\r
                 other{"{0} mA"}\r
             }\r
             ohm{\r
+                dnam{"ohm"}\r
                 one{"{0} Ω"}\r
                 other{"{0} Ω"}\r
             }\r
             volt{\r
+                dnam{"volt"}\r
                 one{"{0} V"}\r
                 other{"{0} V"}\r
             }\r
@@ -1020,18 +1090,22 @@ tr{
         }\r
         frequency{\r
             gigahertz{\r
+                dnam{"GHz"}\r
                 one{"{0} GHz"}\r
                 other{"{0} GHz"}\r
             }\r
             hertz{\r
+                dnam{"Hz"}\r
                 one{"{0} Hz"}\r
                 other{"{0} Hz"}\r
             }\r
             kilohertz{\r
+                dnam{"kHz"}\r
                 one{"{0} kHz"}\r
                 other{"{0} kHz"}\r
             }\r
             megahertz{\r
+                dnam{"MHz"}\r
                 one{"{0} MHz"}\r
                 other{"{0} MHz"}\r
             }\r
@@ -1055,8 +1129,8 @@ tr{
             }\r
             fathom{\r
                 dnam{"fathom"}\r
-                one{"{0} fm"}\r
-                other{"{0} fm"}\r
+                one{"{0} fth"}\r
+                other{"{0} fth"}\r
             }\r
             foot{\r
                 dnam{"fit"}\r
@@ -1145,6 +1219,7 @@ tr{
         }\r
         light{\r
             lux{\r
+                dnam{"lüks"}\r
                 one{"{0} lüks"}\r
                 other{"{0} lüks"}\r
             }\r
@@ -1517,6 +1592,16 @@ tr{
                 one{"{0} ppm"}\r
                 other{"{0} ppm"}\r
             }\r
+            percent{\r
+                dnam{"%"}\r
+                one{"{0}%"}\r
+                other{"{0}%"}\r
+            }\r
+            permille{\r
+                dnam{"‰"}\r
+                one{"{0}‰"}\r
+                other{"{0}‰"}\r
+            }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
@@ -1541,6 +1626,7 @@ tr{
             }\r
         }\r
         coordinate{\r
+            dnam{"yön"}\r
             east{"{0}D"}\r
             north{"{0}K"}\r
             south{"{0}G"}\r
@@ -1587,6 +1673,11 @@ tr{
                 one{"{0} MB"}\r
                 other{"{0} MB"}\r
             }\r
+            petabyte{\r
+                dnam{"PB"}\r
+                one{"{0} PB"}\r
+                other{"{0} PB"}\r
+            }\r
             terabit{\r
                 dnam{"Tbit"}\r
                 one{"{0} Tb"}\r
@@ -1757,8 +1848,8 @@ tr{
             }\r
             fathom{\r
                 dnam{"fathom"}\r
-                one{"{0} fm"}\r
-                other{"{0} fm"}\r
+                one{"{0} fth"}\r
+                other{"{0} fth"}\r
             }\r
             foot{\r
                 dnam{"fit"}\r
@@ -1946,6 +2037,11 @@ tr{
             }\r
         }\r
         pressure{\r
+            atmosphere{\r
+                dnam{"atm"}\r
+                one{"{0} atm"}\r
+                other{"{0} atm"}\r
+            }\r
             hectopascal{\r
                 dnam{"hPa"}\r
                 one{"{0} hPa"}\r
index 5cf27c8..9ac5990 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 tt{\r
-    Version{"2.1.38.72"}\r
+    Version{"2.1.44.88"}\r
     durationUnits{\r
         hm{"h:mm"}\r
         hms{"h:mm:ss"}\r
index e0a0fce..2193c85 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 ug{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.88"}\r
     units{\r
         acceleration{\r
             g-force{\r
index 47b85b2..b864a53 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 uk{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.65"}\r
     durationUnits{\r
         hm{"h:mm"}\r
         hms{"h:mm:ss"}\r
@@ -163,6 +163,20 @@ uk{
                 one{"{0} мільйонна доля"}\r
                 other{"{0} мільйонної долі"}\r
             }\r
+            percent{\r
+                dnam{"відсоток"}\r
+                few{"{0} відсотки"}\r
+                many{"{0} відсотків"}\r
+                one{"{0} відсоток"}\r
+                other{"{0} відсотка"}\r
+            }\r
+            permille{\r
+                dnam{"проміле"}\r
+                few{"{0} проміле"}\r
+                many{"{0} проміле"}\r
+                one{"{0} проміле"}\r
+                other{"{0} проміле"}\r
+            }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
@@ -195,6 +209,7 @@ uk{
             }\r
         }\r
         coordinate{\r
+            dnam{"сторона світу"}\r
             east{"{0} на Схід"}\r
             north{"{0} на Північ"}\r
             south{"{0} на Південь"}\r
@@ -257,6 +272,13 @@ uk{
                 one{"{0} мегабайт"}\r
                 other{"{0} мегабайта"}\r
             }\r
+            petabyte{\r
+                dnam{"петабайти"}\r
+                few{"{0} петабайти"}\r
+                many{"{0} петабайтів"}\r
+                one{"{0} петабайт"}\r
+                other{"{0} петабайту"}\r
+            }\r
             terabit{\r
                 dnam{"терабіти"}\r
                 few{"{0} терабіти"}\r
@@ -580,6 +602,13 @@ uk{
                 one{"{0} пікометр"}\r
                 other{"{0} пікометра"}\r
             }\r
+            point{\r
+                dnam{"пункти"}\r
+                few{"{0} пункти"}\r
+                many{"{0} пунктів"}\r
+                one{"{0} пункт"}\r
+                other{"{0} пункту"}\r
+            }\r
             yard{\r
                 dnam{"ярди"}\r
                 few{"{0} ярди"}\r
@@ -725,6 +754,13 @@ uk{
             }\r
         }\r
         pressure{\r
+            atmosphere{\r
+                dnam{"атмосфери"}\r
+                few{"{0} атмосфери"}\r
+                many{"{0} атмосфер"}\r
+                one{"{0} атмосфера"}\r
+                other{"{0} атмосфери"}\r
+            }\r
             hectopascal{\r
                 dnam{"гектопаскалі"}\r
                 few{"{0} гектопаскалі"}\r
@@ -1075,6 +1111,15 @@ uk{
         compound{\r
             per{"{0}/{1}"}\r
         }\r
+        concentr{\r
+            percent{\r
+                dnam{"%"}\r
+                few{"{0}%"}\r
+                many{"{0}%"}\r
+                one{"{0}%"}\r
+                other{"{0}%"}\r
+            }\r
+        }\r
         consumption{\r
             liter-per-100kilometers{\r
                 dnam{"л/100 км"}\r
@@ -1085,6 +1130,7 @@ uk{
             }\r
         }\r
         coordinate{\r
+            dnam{"напрям"}\r
             east{"{0} Сх"}\r
             north{"{0} Пн"}\r
             south{"{0} Пд"}\r
@@ -1655,6 +1701,20 @@ uk{
                 one{"{0} ppm"}\r
                 other{"{0} ppm"}\r
             }\r
+            percent{\r
+                dnam{"відсоток"}\r
+                few{"{0}%"}\r
+                many{"{0}%"}\r
+                one{"{0}%"}\r
+                other{"{0}%"}\r
+            }\r
+            permille{\r
+                dnam{"проміле"}\r
+                few{"{0}‰"}\r
+                many{"{0}‰"}\r
+                one{"{0}‰"}\r
+                other{"{0}‰"}\r
+            }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
@@ -1687,6 +1747,7 @@ uk{
             }\r
         }\r
         coordinate{\r
+            dnam{"напрямок"}\r
             east{"{0} на Сх"}\r
             north{"{0} на Пн"}\r
             south{"{0} на Пд"}\r
@@ -1749,6 +1810,13 @@ uk{
                 one{"{0} МБ"}\r
                 other{"{0} МБ"}\r
             }\r
+            petabyte{\r
+                dnam{"ПБ"}\r
+                few{"{0} ПБ"}\r
+                many{"{0} ПБ"}\r
+                one{"{0} ПБ"}\r
+                other{"{0} ПБ"}\r
+            }\r
             terabit{\r
                 dnam{"Тбіт"}\r
                 few{"{0} Тб"}\r
@@ -2072,6 +2140,13 @@ uk{
                 one{"{0} пм"}\r
                 other{"{0} пм"}\r
             }\r
+            point{\r
+                dnam{"пт"}\r
+                few{"{0} пт"}\r
+                many{"{0} пт"}\r
+                one{"{0} пт"}\r
+                other{"{0} пт"}\r
+            }\r
             yard{\r
                 dnam{"ярди"}\r
                 few{"{0} ярди"}\r
@@ -2210,6 +2285,13 @@ uk{
             }\r
         }\r
         pressure{\r
+            atmosphere{\r
+                dnam{"атм"}\r
+                few{"{0} атм"}\r
+                many{"{0} атм"}\r
+                one{"{0} атм"}\r
+                other{"{0} атм"}\r
+            }\r
             hectopascal{\r
                 dnam{"гПа"}\r
                 few{"{0} гПа"}\r
index 2245ace..964379e 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 ur{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.3"}\r
     durationUnits{\r
         hm{"h:mm"}\r
         hms{"h:mm:ss"}\r
@@ -15,9 +15,9 @@ ur{
                 other{"{0} جی-فورس"}\r
             }\r
             meter-per-second-squared{\r
-                dnam{"m/s²"}\r
-                one{"{0} m/s²"}\r
-                other{"{0} m/s²"}\r
+                dnam{"میٹر فی مربع سیکنڈ"}\r
+                one{"{0} میٹر فی مربع سیکنڈ"}\r
+                other{"{0} میٹر فی مربع سیکنڈ"}\r
             }\r
         }\r
         angle{\r
@@ -37,14 +37,14 @@ ur{
                 other{"{0} ڈگری"}\r
             }\r
             radian{\r
-                dnam{"rad"}\r
-                one{"{0} rad"}\r
-                other{"{0} rad"}\r
+                dnam{"ریڈینس"}\r
+                one{"{0} ریڈین"}\r
+                other{"{0} ریڈینس"}\r
             }\r
             revolution{\r
-                dnam{"rev"}\r
+                dnam{"گردش"}\r
                 one{"{0} rev"}\r
-                other{"{0} rev"}\r
+                other{"{0} گردش"}\r
             }\r
         }\r
         area{\r
@@ -123,6 +123,16 @@ ur{
                 one{"{0} فی ملین حصے"}\r
                 other{"{0} فی ملین حصے"}\r
             }\r
+            percent{\r
+                dnam{"فیصد"}\r
+                one{"{0} فیصد"}\r
+                other{"{0} فیصد"}\r
+            }\r
+            permille{\r
+                dnam{"فی ہزار"}\r
+                one{"{0} فی ہزار"}\r
+                other{"{0} فی ہزار"}\r
+            }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
@@ -147,6 +157,7 @@ ur{
             }\r
         }\r
         coordinate{\r
+            dnam{"کارڈینل ڈائریکشن"}\r
             east{"{0} مشرق"}\r
             north{"{0} شمال"}\r
             south{"{0} جنوب"}\r
@@ -193,6 +204,11 @@ ur{
                 one{"{0} میگابائٹ"}\r
                 other{"{0} ميگابائٹس"}\r
             }\r
+            petabyte{\r
+                dnam{"پیٹا بائٹس"}\r
+                one{"{0} پیٹا بائٹ"}\r
+                other{"{0} پیٹا بائٹس"}\r
+            }\r
             terabit{\r
                 dnam{"ٹیرابٹس"}\r
                 one{"{0} ٹیرابٹ"}\r
@@ -483,19 +499,19 @@ ur{
             }\r
             ounce{\r
                 dnam{"اونس"}\r
-                one{"{0} ونس"}\r
-                other{"{0} ونس"}\r
+                one{"{0} اونس"}\r
+                other{"{0} اونس"}\r
                 per{"{0} فی اونس"}\r
             }\r
             ounce-troy{\r
-                dnam{"oz t"}\r
-                one{"{0} oz t"}\r
-                other{"{0} oz t"}\r
+                dnam{"ٹرائے اونس"}\r
+                one{"{0} ٹرائے اونس"}\r
+                other{"{0} ٹرائے اونس"}\r
             }\r
             pound{\r
                 dnam{"پاؤنڈ"}\r
-                one{"{0} پونڈ"}\r
-                other{"{0} پونڈ"}\r
+                one{"{0} پاؤنڈ"}\r
+                other{"{0} پاؤنڈ"}\r
                 per{"{0} فی پاؤنڈ"}\r
             }\r
             stone{\r
@@ -542,6 +558,11 @@ ur{
             }\r
         }\r
         pressure{\r
+            atmosphere{\r
+                dnam{"ماحول"}\r
+                one{"{0} ماحول"}\r
+                other{"{0} ماحول"}\r
+            }\r
             hectopascal{\r
                 dnam{"ہیکٹو پاسکل"}\r
                 one{"{0} ہیکٹو پاسکل"}\r
@@ -790,6 +811,13 @@ ur{
         compound{\r
             per{"{0}/{1}"}\r
         }\r
+        concentr{\r
+            percent{\r
+                dnam{"%"}\r
+                one{"{0}%"}\r
+                other{"{0}%"}\r
+            }\r
+        }\r
         consumption{\r
             liter-per-100kilometers{\r
                 dnam{"لیٹر/100 کلو میٹر"}\r
@@ -798,6 +826,7 @@ ur{
             }\r
         }\r
         coordinate{\r
+            dnam{"ڈائریکشن"}\r
             east{"{0}E"}\r
             north{"{0}N"}\r
             south{"{0}S"}\r
@@ -1051,12 +1080,12 @@ ur{
         }\r
         angle{\r
             arc-minute{\r
-                dnam{"arcmin"}\r
+                dnam{"آرک منٹ"}\r
                 one{"{0} آرک منٹ"}\r
                 other{"{0} آرک منٹ"}\r
             }\r
             arc-second{\r
-                dnam{"arcsec"}\r
+                dnam{"آرک سیکنڈ"}\r
                 one{"{0} آرک سیکنڈ"}\r
                 other{"{0} آرک سیکنڈ"}\r
             }\r
@@ -1066,7 +1095,7 @@ ur{
                 other{"{0} ڈگری"}\r
             }\r
             radian{\r
-                dnam{"rad"}\r
+                dnam{"ریڈینس"}\r
                 one{"{0} rad"}\r
                 other{"{0} rad"}\r
             }\r
@@ -1152,6 +1181,16 @@ ur{
                 one{"{0} ppm"}\r
                 other{"{0} ppm"}\r
             }\r
+            percent{\r
+                dnam{"فیصد"}\r
+                one{"{0}%"}\r
+                other{"{0}%"}\r
+            }\r
+            permille{\r
+                dnam{"فی ہزار"}\r
+                one{"{0}‰"}\r
+                other{"{0}‰"}\r
+            }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
@@ -1176,6 +1215,7 @@ ur{
             }\r
         }\r
         coordinate{\r
+            dnam{"ڈائریکشن"}\r
             east{"{0}E"}\r
             north{"{0}N"}\r
             south{"{0}S"}\r
@@ -1222,6 +1262,11 @@ ur{
                 one{"{0} MB"}\r
                 other{"{0} MB"}\r
             }\r
+            petabyte{\r
+                dnam{"پی بائٹ"}\r
+                one{"{0} پی بی"}\r
+                other{"{0} پی بی"}\r
+            }\r
             terabit{\r
                 dnam{"Tbit"}\r
                 one{"{0} Tb"}\r
@@ -1565,12 +1610,17 @@ ur{
                 other{"{0} mW"}\r
             }\r
             watt{\r
-                dnam{"watts"}\r
+                dnam{"واٹ"}\r
                 one{"{0} واٹ"}\r
                 other{"{0} واٹ"}\r
             }\r
         }\r
         pressure{\r
+            atmosphere{\r
+                dnam{"atm"}\r
+                one{"{0} atm"}\r
+                other{"{0} atm"}\r
+            }\r
             hectopascal{\r
                 dnam{"hPa"}\r
                 one{"{0} hPa"}\r
@@ -1664,7 +1714,7 @@ ur{
                 other{"{0} ft³"}\r
             }\r
             cubic-inch{\r
-                dnam{"in³"}\r
+                dnam{"کیوبک انچ"}\r
                 one{"{0} in³"}\r
                 other{"{0} in³"}\r
             }\r
index aee37ab..ea5b95f 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 ur_IN{\r
-    Version{"2.1.38.39"}\r
+    Version{"2.1.43.65"}\r
     units{\r
         length{\r
             astronomical-unit{\r
index 256fc12..09c2f12 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 uz{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.88"}\r
     durationUnits{\r
         hm{"h:mm"}\r
         hms{"h:mm:ss"}\r
@@ -123,6 +123,16 @@ uz{
                 one{"milliondan {0}"}\r
                 other{"milliondan {0}"}\r
             }\r
+            percent{\r
+                dnam{"foiz"}\r
+                one{"{0} foiz"}\r
+                other{"{0} foiz"}\r
+            }\r
+            permille{\r
+                dnam{"promille"}\r
+                one{"{0} promille"}\r
+                other{"{0} promille"}\r
+            }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
@@ -147,6 +157,7 @@ uz{
             }\r
         }\r
         coordinate{\r
+            dnam{"yo‘nalish"}\r
             east{"{0} sharqiy uzunlik"}\r
             north{"{0} shimoliy kenglik"}\r
             south{"{0} janubiy kenglik"}\r
@@ -193,6 +204,11 @@ uz{
                 one{"{0} megabayt"}\r
                 other{"{0} megabayt"}\r
             }\r
+            petabyte{\r
+                dnam{"petabayt"}\r
+                one{"{0} petabayt"}\r
+                other{"{0} petabayt"}\r
+            }\r
             terabit{\r
                 dnam{"terabit"}\r
                 one{"{0} terabit"}\r
@@ -537,6 +553,11 @@ uz{
             }\r
         }\r
         pressure{\r
+            atmosphere{\r
+                dnam{"atmosfera"}\r
+                one{"{0} atmosfera"}\r
+                other{"{0} atmosfera"}\r
+            }\r
             hectopascal{\r
                 dnam{"gektopaskal"}\r
                 one{"{0} gektopaskal"}\r
@@ -785,6 +806,13 @@ uz{
         compound{\r
             per{"{0}/{1}"}\r
         }\r
+        concentr{\r
+            percent{\r
+                dnam{"%"}\r
+                one{"{0}%"}\r
+                other{"{0}%"}\r
+            }\r
+        }\r
         consumption{\r
             liter-per-100kilometers{\r
                 dnam{"L/100 km"}\r
@@ -793,6 +821,7 @@ uz{
             }\r
         }\r
         coordinate{\r
+            dnam{"yo‘nalish"}\r
             east{"{0} shq. u."}\r
             north{"{0} shm. k."}\r
             south{"{0} jan. k."}\r
@@ -1092,6 +1121,16 @@ uz{
                 one{"{0} ppm"}\r
                 other{"{0} ppm"}\r
             }\r
+            percent{\r
+                dnam{"foiz"}\r
+                one{"{0}%"}\r
+                other{"{0}%"}\r
+            }\r
+            permille{\r
+                dnam{"promille"}\r
+                one{"{0}‰"}\r
+                other{"{0}‰"}\r
+            }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
@@ -1116,6 +1155,7 @@ uz{
             }\r
         }\r
         coordinate{\r
+            dnam{"yo‘nalish"}\r
             east{"{0} shq. u."}\r
             north{"{0} shm. k."}\r
             south{"{0} jan. k."}\r
@@ -1162,6 +1202,11 @@ uz{
                 one{"{0} MB"}\r
                 other{"{0} MB"}\r
             }\r
+            petabyte{\r
+                dnam{"PB"}\r
+                one{"{0} PB"}\r
+                other{"{0} PB"}\r
+            }\r
             terabit{\r
                 dnam{"Tbit"}\r
                 one{"{0} Tbit"}\r
@@ -1506,6 +1551,11 @@ uz{
             }\r
         }\r
         pressure{\r
+            atmosphere{\r
+                dnam{"atm"}\r
+                one{"{0} atm"}\r
+                other{"{0} atm"}\r
+            }\r
             hectopascal{\r
                 dnam{"gPa"}\r
                 one{"{0} gPa"}\r
index 678547e..0baaa41 100644 (file)
@@ -2,7 +2,7 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 uz_Cyrl{\r
     %%Parent{"root"}\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.2"}\r
     durationUnits{\r
         hm{"h:mm"}\r
         hms{"h:mm:ss"}\r
index 581aa13..3714bf1 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 vi{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.65"}\r
     durationUnits{\r
         hm{"h:mm"}\r
         hms{"h:mm:ss"}\r
@@ -103,6 +103,14 @@ vi{
                 dnam{"ppm"}\r
                 other{"{0} ppm"}\r
             }\r
+            percent{\r
+                dnam{"%"}\r
+                other{"{0}%"}\r
+            }\r
+            permille{\r
+                dnam{"‰"}\r
+                other{"{0}‰"}\r
+            }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
@@ -123,6 +131,7 @@ vi{
             }\r
         }\r
         coordinate{\r
+            dnam{"phương trời"}\r
             east{"{0}Đ"}\r
             north{"{0}B"}\r
             south{"{0}N"}\r
@@ -161,6 +170,10 @@ vi{
                 dnam{"megabyte"}\r
                 other{"{0} megabyte"}\r
             }\r
+            petabyte{\r
+                dnam{"petabyte"}\r
+                other{"{0} PB"}\r
+            }\r
             terabit{\r
                 dnam{"terabit"}\r
                 other{"{0} terabit"}\r
@@ -443,6 +456,10 @@ vi{
             }\r
         }\r
         pressure{\r
+            atmosphere{\r
+                dnam{"atm"}\r
+                other{"{0} átmốtphe"}\r
+            }\r
             hectopascal{\r
                 dnam{"héctô pascal"}\r
                 other{"{0} héctô pascal"}\r
@@ -644,6 +661,12 @@ vi{
         compound{\r
             per{"{0}/{1}"}\r
         }\r
+        concentr{\r
+            percent{\r
+                dnam{"%"}\r
+                other{"{0}%"}\r
+            }\r
+        }\r
         consumption{\r
             liter-per-100kilometers{\r
                 dnam{"L/100km"}\r
@@ -651,6 +674,7 @@ vi{
             }\r
         }\r
         coordinate{\r
+            dnam{"hướng"}\r
             east{"{0}Đ"}\r
             north{"{0}B"}\r
             south{"{0}N"}\r
@@ -894,6 +918,14 @@ vi{
                 dnam{"ppm"}\r
                 other{"{0} ppm"}\r
             }\r
+            percent{\r
+                dnam{"%"}\r
+                other{"{0}%"}\r
+            }\r
+            permille{\r
+                dnam{"‰"}\r
+                other{"{0}‰"}\r
+            }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
@@ -914,6 +946,7 @@ vi{
             }\r
         }\r
         coordinate{\r
+            dnam{"hướng"}\r
             east{"{0}Đ"}\r
             north{"{0}B"}\r
             south{"{0}N"}\r
@@ -952,6 +985,10 @@ vi{
                 dnam{"MB"}\r
                 other{"{0} MB"}\r
             }\r
+            petabyte{\r
+                dnam{"PByte"}\r
+                other{"{0} PB"}\r
+            }\r
             terabit{\r
                 dnam{"Tb"}\r
                 other{"{0} Tb"}\r
@@ -1234,6 +1271,10 @@ vi{
             }\r
         }\r
         pressure{\r
+            atmosphere{\r
+                dnam{"atm"}\r
+                other{"{0} atm"}\r
+            }\r
             hectopascal{\r
                 dnam{"hPa"}\r
                 other{"{0} hPa"}\r
@@ -1386,7 +1427,7 @@ vi{
                 other{"{0} qt"}\r
             }\r
             tablespoon{\r
-                dnam{"tbsp"}\r
+                dnam{"thìa xúp"}\r
                 other{"{0} tbsp"}\r
             }\r
             teaspoon{\r
index c3a8774..be6b754 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 wo{\r
-    Version{"2.1.38.71"}\r
+    Version{"2.1.43.94"}\r
     durationUnits{\r
         hm{"h:mm"}\r
         hms{"h:mm:ss"}\r
diff --git a/source/data/unit/xh.txt b/source/data/unit/xh.txt
new file mode 100644 (file)
index 0000000..64c4b4d
--- /dev/null
@@ -0,0 +1,5 @@
+// © 2016 and later: Unicode, Inc. and others.\r
+// License & terms of use: http://www.unicode.org/copyright.html#License\r
+xh{\r
+    Version{"2.1.44.88"}\r
+}\r
index eb0f317..31760f0 100644 (file)
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 yo{\r
-    Version{"2.1.39.11"}\r
+    Version{"2.1.44.88"}\r
 }\r
index 024f137..47f498c 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 yue{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.91"}\r
     durationUnits{\r
         hm{"h:mm"}\r
         hms{"h:mm:ss"}\r
@@ -103,6 +103,14 @@ yue{
                 dnam{"百萬分率"}\r
                 other{"{0} 百萬分率"}\r
             }\r
+            percent{\r
+                dnam{"%"}\r
+                other{"{0}%"}\r
+            }\r
+            permille{\r
+                dnam{"‰"}\r
+                other{"{0}‰"}\r
+            }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
@@ -123,6 +131,7 @@ yue{
             }\r
         }\r
         coordinate{\r
+            dnam{"方向"}\r
             east{"東經{0}"}\r
             north{"北緯{0}"}\r
             south{"南緯{0}"}\r
@@ -161,6 +170,10 @@ yue{
                 dnam{"MB"}\r
                 other{"{0} MB"}\r
             }\r
+            petabyte{\r
+                dnam{"PB"}\r
+                other{"{0} PB"}\r
+            }\r
             terabit{\r
                 dnam{"Tb"}\r
                 other{"{0} Tb"}\r
@@ -455,6 +468,10 @@ yue{
             }\r
         }\r
         pressure{\r
+            atmosphere{\r
+                dnam{"atm"}\r
+                other{"{0} atm"}\r
+            }\r
             hectopascal{\r
                 dnam{"百帕"}\r
                 other{"{0} 百帕"}\r
@@ -679,6 +696,10 @@ yue{
             karat{\r
                 other{"{0}kt"}\r
             }\r
+            percent{\r
+                dnam{"%"}\r
+                other{"{0}%"}\r
+            }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
@@ -693,6 +714,7 @@ yue{
             }\r
         }\r
         coordinate{\r
+            dnam{"方向"}\r
             east{"東經{0}"}\r
             north{"北緯{0}"}\r
             south{"南緯{0}"}\r
@@ -831,7 +853,7 @@ yue{
             }\r
             fathom{\r
                 dnam{"英尋"}\r
-                other{"{0}fm"}\r
+                other{"{0}fth"}\r
             }\r
             foot{\r
                 other{"{0}呎"}\r
@@ -1152,6 +1174,14 @@ yue{
                 dnam{"百萬分率"}\r
                 other{"{0} 百萬分率"}\r
             }\r
+            percent{\r
+                dnam{"%"}\r
+                other{"{0}%"}\r
+            }\r
+            permille{\r
+                dnam{"‰"}\r
+                other{"{0}‰"}\r
+            }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
@@ -1172,6 +1202,7 @@ yue{
             }\r
         }\r
         coordinate{\r
+            dnam{"方向"}\r
             east{"東經{0}"}\r
             north{"北緯{0}"}\r
             south{"南緯{0}"}\r
@@ -1210,6 +1241,10 @@ yue{
                 dnam{"MB"}\r
                 other{"{0} MB"}\r
             }\r
+            petabyte{\r
+                dnam{"PB"}\r
+                other{"{0} PB"}\r
+            }\r
             terabit{\r
                 dnam{"Tb"}\r
                 other{"{0} Tb"}\r
@@ -1504,6 +1539,10 @@ yue{
             }\r
         }\r
         pressure{\r
+            atmosphere{\r
+                dnam{"atm"}\r
+                other{"{0} atm"}\r
+            }\r
             hectopascal{\r
                 dnam{"百帕"}\r
                 other{"{0} 百帕"}\r
index ea1dad1..6e7d8aa 100644 (file)
@@ -2,7 +2,7 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 yue_Hans{\r
     %%Parent{"root"}\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.91"}\r
     durationUnits{\r
         hm{"h:mm"}\r
         hms{"h:mm:ss"}\r
@@ -104,6 +104,14 @@ yue_Hans{
                 dnam{"百万分率"}\r
                 other{"{0} 百万分率"}\r
             }\r
+            percent{\r
+                dnam{"%"}\r
+                other{"{0}%"}\r
+            }\r
+            permille{\r
+                dnam{"‰"}\r
+                other{"{0}‰"}\r
+            }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
@@ -124,6 +132,7 @@ yue_Hans{
             }\r
         }\r
         coordinate{\r
+            dnam{"方向"}\r
             east{"东经{0}"}\r
             north{"北纬{0}"}\r
             south{"南纬{0}"}\r
@@ -162,6 +171,10 @@ yue_Hans{
                 dnam{"MB"}\r
                 other{"{0} MB"}\r
             }\r
+            petabyte{\r
+                dnam{"PB"}\r
+                other{"{0} PB"}\r
+            }\r
             terabit{\r
                 dnam{"Tb"}\r
                 other{"{0} Tb"}\r
@@ -456,6 +469,10 @@ yue_Hans{
             }\r
         }\r
         pressure{\r
+            atmosphere{\r
+                dnam{"atm"}\r
+                other{"{0} atm"}\r
+            }\r
             hectopascal{\r
                 dnam{"百帕"}\r
                 other{"{0} 百帕"}\r
@@ -680,6 +697,10 @@ yue_Hans{
             karat{\r
                 other{"{0}kt"}\r
             }\r
+            percent{\r
+                dnam{"%"}\r
+                other{"{0}%"}\r
+            }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
@@ -694,6 +715,7 @@ yue_Hans{
             }\r
         }\r
         coordinate{\r
+            dnam{"方向"}\r
             east{"东经{0}"}\r
             north{"北纬{0}"}\r
             south{"南纬{0}"}\r
@@ -832,7 +854,7 @@ yue_Hans{
             }\r
             fathom{\r
                 dnam{"英寻"}\r
-                other{"{0}fm"}\r
+                other{"{0}fth"}\r
             }\r
             foot{\r
                 other{"{0}呎"}\r
@@ -1153,6 +1175,14 @@ yue_Hans{
                 dnam{"百万分率"}\r
                 other{"{0} 百万分率"}\r
             }\r
+            percent{\r
+                dnam{"%"}\r
+                other{"{0}%"}\r
+            }\r
+            permille{\r
+                dnam{"‰"}\r
+                other{"{0}‰"}\r
+            }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
@@ -1173,6 +1203,7 @@ yue_Hans{
             }\r
         }\r
         coordinate{\r
+            dnam{"方向"}\r
             east{"东经{0}"}\r
             north{"北纬{0}"}\r
             south{"南纬{0}"}\r
@@ -1211,6 +1242,10 @@ yue_Hans{
                 dnam{"MB"}\r
                 other{"{0} MB"}\r
             }\r
+            petabyte{\r
+                dnam{"PB"}\r
+                other{"{0} PB"}\r
+            }\r
             terabit{\r
                 dnam{"Tb"}\r
                 other{"{0} Tb"}\r
@@ -1505,6 +1540,10 @@ yue_Hans{
             }\r
         }\r
         pressure{\r
+            atmosphere{\r
+                dnam{"atm"}\r
+                other{"{0} atm"}\r
+            }\r
             hectopascal{\r
                 dnam{"百帕"}\r
                 other{"{0} 百帕"}\r
index 1affd80..470d4c0 100644 (file)
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 zgh{\r
-    Version{"2.1.39.11"}\r
+    Version{"2.1.43.94"}\r
 }\r
index 309209f..9d9deb1 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 zh{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.76"}\r
     durationUnits{\r
         hm{"h:mm"}\r
         hms{"h:mm:ss"}\r
@@ -103,6 +103,14 @@ zh{
                 dnam{"ppm"}\r
                 other{"百万分之{0}"}\r
             }\r
+            percent{\r
+                dnam{"%"}\r
+                other{"{0}%"}\r
+            }\r
+            permille{\r
+                dnam{"‰"}\r
+                other{"{0}‰"}\r
+            }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
@@ -123,6 +131,7 @@ zh{
             }\r
         }\r
         coordinate{\r
+            dnam{"主方向"}\r
             east{"东经{0}"}\r
             north{"北纬{0}"}\r
             south{"南纬{0}"}\r
@@ -161,6 +170,10 @@ zh{
                 dnam{"兆字节"}\r
                 other{"{0}兆字节"}\r
             }\r
+            petabyte{\r
+                dnam{"拍字节"}\r
+                other{"{0}拍字节"}\r
+            }\r
             terabit{\r
                 dnam{"太比特"}\r
                 other{"{0}太比特"}\r
@@ -455,6 +468,10 @@ zh{
             }\r
         }\r
         pressure{\r
+            atmosphere{\r
+                dnam{"标准大气压"}\r
+                other{"{0}个标准大气压"}\r
+            }\r
             hectopascal{\r
                 dnam{"百帕斯卡"}\r
                 other{"{0}百帕斯卡"}\r
@@ -688,6 +705,12 @@ zh{
         compound{\r
             per{"{0}/{1}"}\r
         }\r
+        concentr{\r
+            percent{\r
+                dnam{"%"}\r
+                other{"{0}%"}\r
+            }\r
+        }\r
         consumption{\r
             liter-per-100kilometers{\r
                 dnam{"升/100千米"}\r
@@ -695,6 +718,7 @@ zh{
             }\r
         }\r
         coordinate{\r
+            dnam{"方向"}\r
             east{"{0}E"}\r
             north{"{0}N"}\r
             south{"{0}S"}\r
@@ -1126,6 +1150,14 @@ zh{
                 dnam{"ppm"}\r
                 other{"{0}ppm"}\r
             }\r
+            percent{\r
+                dnam{"%"}\r
+                other{"{0}%"}\r
+            }\r
+            permille{\r
+                dnam{"‰"}\r
+                other{"{0}‰"}\r
+            }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
@@ -1146,6 +1178,7 @@ zh{
             }\r
         }\r
         coordinate{\r
+            dnam{"方向"}\r
             east{"东经{0}"}\r
             north{"北纬{0}"}\r
             south{"南纬{0}"}\r
@@ -1184,6 +1217,10 @@ zh{
                 dnam{"兆字节"}\r
                 other{"{0}兆字节"}\r
             }\r
+            petabyte{\r
+                dnam{"PB"}\r
+                other{"{0} PB"}\r
+            }\r
             terabit{\r
                 dnam{"太比特"}\r
                 other{"{0}太比特"}\r
@@ -1478,6 +1515,10 @@ zh{
             }\r
         }\r
         pressure{\r
+            atmosphere{\r
+                dnam{"大气压"}\r
+                other{"{0}个大气压"}\r
+            }\r
             hectopascal{\r
                 dnam{"百帕"}\r
                 other{"{0}百帕"}\r
index 70e5ba5..4ae7967 100644 (file)
@@ -2,7 +2,7 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 zh_Hant{\r
     %%Parent{"root"}\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.91"}\r
     durationUnits{\r
         hm{"h:mm"}\r
         hms{"h:mm:ss"}\r
@@ -104,6 +104,14 @@ zh_Hant{
                 dnam{"百萬分率"}\r
                 other{"{0} 百萬分率"}\r
             }\r
+            percent{\r
+                dnam{"百分比"}\r
+                other{"{0}%"}\r
+            }\r
+            permille{\r
+                dnam{"千分比"}\r
+                other{"{0}‰"}\r
+            }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
@@ -124,6 +132,7 @@ zh_Hant{
             }\r
         }\r
         coordinate{\r
+            dnam{"基本方向"}\r
             east{"東經{0}"}\r
             north{"北緯{0}"}\r
             south{"南緯{0}"}\r
@@ -162,6 +171,10 @@ zh_Hant{
                 dnam{"MB"}\r
                 other{"{0} MB"}\r
             }\r
+            petabyte{\r
+                dnam{"PB"}\r
+                other{"{0} PB"}\r
+            }\r
             terabit{\r
                 dnam{"Tb"}\r
                 other{"{0} Tb"}\r
@@ -456,6 +469,10 @@ zh_Hant{
             }\r
         }\r
         pressure{\r
+            atmosphere{\r
+                dnam{"氣壓"}\r
+                other{"{0} 大氣壓"}\r
+            }\r
             hectopascal{\r
                 dnam{"百帕"}\r
                 other{"{0} 百帕"}\r
@@ -717,6 +734,10 @@ zh_Hant{
                 dnam{"百萬分率"}\r
                 other{"{0}ppm"}\r
             }\r
+            percent{\r
+                dnam{"百分比"}\r
+                other{"{0}%"}\r
+            }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
@@ -737,6 +758,7 @@ zh_Hant{
             }\r
         }\r
         coordinate{\r
+            dnam{"方向"}\r
             east{"東經{0}"}\r
             north{"北緯{0}"}\r
             south{"南緯{0}"}\r
@@ -915,7 +937,7 @@ zh_Hant{
             }\r
             fathom{\r
                 dnam{"英尋"}\r
-                other{"{0}fm"}\r
+                other{"{0}fth"}\r
             }\r
             foot{\r
                 dnam{"英尺"}\r
@@ -1329,6 +1351,14 @@ zh_Hant{
                 dnam{"百萬分率"}\r
                 other{"{0} 百萬分率"}\r
             }\r
+            percent{\r
+                dnam{"百分比"}\r
+                other{"{0}%"}\r
+            }\r
+            permille{\r
+                dnam{"千分比"}\r
+                other{"{0}‰"}\r
+            }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
@@ -1349,6 +1379,7 @@ zh_Hant{
             }\r
         }\r
         coordinate{\r
+            dnam{"方向"}\r
             east{"東經{0}"}\r
             north{"北緯{0}"}\r
             south{"南緯{0}"}\r
@@ -1387,6 +1418,10 @@ zh_Hant{
                 dnam{"MB"}\r
                 other{"{0} MB"}\r
             }\r
+            petabyte{\r
+                dnam{"PB"}\r
+                other{"{0} PB"}\r
+            }\r
             terabit{\r
                 dnam{"Tb"}\r
                 other{"{0} Tb"}\r
@@ -1681,6 +1716,10 @@ zh_Hant{
             }\r
         }\r
         pressure{\r
+            atmosphere{\r
+                dnam{"atm"}\r
+                other{"{0} atm"}\r
+            }\r
             hectopascal{\r
                 dnam{"百帕"}\r
                 other{"{0} 百帕"}\r
index a5f81c3..9a1291b 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 zh_Hant_HK{\r
-    Version{"2.1.39.11"}\r
+    Version{"2.1.43.65"}\r
     units{\r
         acceleration{\r
             meter-per-second-squared{\r
@@ -340,22 +340,29 @@ zh_Hant_HK{
             west{"{0}W"}\r
         }\r
         duration{\r
+            century{\r
+                other{"{0}世紀"}\r
+            }\r
             day{\r
                 dnam{"日"}\r
                 other{"{0}日"}\r
+                per{"{0} 每日"}\r
             }\r
             hour{\r
                 other{"{0}小時"}\r
+                per{"{0} 每小時"}\r
             }\r
             millisecond{\r
                 other{"{0}毫秒"}\r
             }\r
             minute{\r
                 dnam{"分"}\r
+                other{"{0}分"}\r
                 per{"{0} 每分鐘"}\r
             }\r
             month{\r
                 other{"{0}個月"}\r
+                per{"{0} 每月"}\r
             }\r
             nanosecond{\r
                 dnam{"納秒"}\r
@@ -368,6 +375,7 @@ zh_Hant_HK{
             }\r
             year{\r
                 other{"{0}年"}\r
+                per{"{0} 每年"}\r
             }\r
         }\r
         energy{\r
@@ -419,13 +427,23 @@ zh_Hant_HK{
             }\r
         }\r
         mass{\r
+            gram{\r
+                per{"{0} 每克"}\r
+            }\r
+            kilogram{\r
+                per{"{0} 每公斤"}\r
+            }\r
             ounce{\r
                 dnam{"安士"}\r
                 other{"{0} 安士"}\r
+                per{"{0} 每安士"}\r
             }\r
             ounce-troy{\r
                 dnam{"金衡安士"}\r
             }\r
+            pound{\r
+                per{"{0} 每磅"}\r
+            }\r
         }\r
         power{\r
             megawatt{\r
@@ -466,6 +484,9 @@ zh_Hant_HK{
             acre-foot{\r
                 dnam{"英畝呎"}\r
             }\r
+            centiliter{\r
+                dnam{"厘升"}\r
+            }\r
             cubic-centimeter{\r
                 dnam{"立方厘米"}\r
                 per{"{0} 每立方厘米"}\r
index 43c2f1f..953afbf 100644 (file)
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 zh_Hant_MO{\r
     %%Parent{"zh_Hant_HK"}\r
-    Version{"2.1.38.39"}\r
+    Version{"2.1.43.65"}\r
 }\r
index 9dec6a7..b4107ef 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 zu{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.65"}\r
     durationUnits{\r
         hm{"h:mm"}\r
         hms{"h:mm:ss"}\r
@@ -123,6 +123,15 @@ zu{
                 one{"{0} ppm"}\r
                 other{"{0} ppm"}\r
             }\r
+            percent{\r
+                dnam{"%"}\r
+                one{"{0}%"}\r
+                other{"{0}%"}\r
+            }\r
+            permille{\r
+                one{"{0}‰"}\r
+                other{"{0}‰"}\r
+            }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
@@ -147,6 +156,7 @@ zu{
             }\r
         }\r
         coordinate{\r
+            dnam{"indlela"}\r
             east{"{0}E"}\r
             north{"{0}N"}\r
             south{"{0}S"}\r
@@ -193,6 +203,11 @@ zu{
                 one{"{0} MB"}\r
                 other{"{0} MB"}\r
             }\r
+            petabyte{\r
+                dnam{"PB"}\r
+                one{"{0} PB"}\r
+                other{"{0} PB"}\r
+            }\r
             terabit{\r
                 dnam{"terabits"}\r
                 one{"{0} i-terabit"}\r
@@ -537,6 +552,11 @@ zu{
             }\r
         }\r
         pressure{\r
+            atmosphere{\r
+                dnam{"atm"}\r
+                one{"{0} atm"}\r
+                other{"{0} atm"}\r
+            }\r
             hectopascal{\r
                 dnam{"hPa"}\r
                 one{"{0} hPa"}\r
@@ -759,6 +779,13 @@ zu{
         compound{\r
             per{"{0}/{1}"}\r
         }\r
+        concentr{\r
+            percent{\r
+                dnam{"%"}\r
+                one{"{0}%"}\r
+                other{"{0}%"}\r
+            }\r
+        }\r
         consumption{\r
             liter-per-100kilometers{\r
                 dnam{"L/100km"}\r
@@ -767,6 +794,7 @@ zu{
             }\r
         }\r
         coordinate{\r
+            dnam{"indlela"}\r
             east{"{0}E"}\r
             north{"{0}N"}\r
             south{"{0}S"}\r
@@ -990,6 +1018,16 @@ zu{
                 one{"{0} ppm"}\r
                 other{"{0} ppm"}\r
             }\r
+            percent{\r
+                dnam{"%"}\r
+                one{"{0}%"}\r
+                other{"{0}%"}\r
+            }\r
+            permille{\r
+                dnam{"‰"}\r
+                one{"{0}‰"}\r
+                other{"{0}‰"}\r
+            }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
@@ -1014,6 +1052,7 @@ zu{
             }\r
         }\r
         coordinate{\r
+            dnam{"indlela"}\r
             east{"{0}E"}\r
             north{"{0}N"}\r
             south{"{0}S"}\r
@@ -1060,6 +1099,11 @@ zu{
                 one{"{0} MB"}\r
                 other{"{0} MB"}\r
             }\r
+            petabyte{\r
+                dnam{"PB"}\r
+                one{"{0} PB"}\r
+                other{"{0} PB"}\r
+            }\r
             terabit{\r
                 dnam{"Tbit"}\r
                 one{"{0} Tb"}\r
@@ -1404,6 +1448,11 @@ zu{
             }\r
         }\r
         pressure{\r
+            atmosphere{\r
+                dnam{"atm"}\r
+                one{"{0} atm"}\r
+                other{"{0} atm"}\r
+            }\r
             hectopascal{\r
                 dnam{"hPa"}\r
                 one{"{0} hPa"}\r
index 7ba8e13..f7e0b21 100644 (file)
@@ -14,7 +14,7 @@
 >\r
 <ldml>\r
     <identity>\r
-        <version number="$Revision: 40674 $"/>\r
+        <version number="$Revision$"/>\r
         <language type="de"/>\r
     </identity>\r
 </ldml>\r
index acf3eda..9c4379c 100644 (file)
@@ -12,7 +12,7 @@
 >\r
 <ldml>\r
     <identity>\r
-        <version number="$Revision: 40674 $"/>\r
+        <version number="$Revision$"/>\r
         <language type="el"/> \r
     </identity>\r
     <special xmlns:icu="http://www.icu-project.org/">\r
index bd7742a..96b3e78 100644 (file)
@@ -12,7 +12,7 @@
 >\r
 <ldml>\r
     <identity>\r
-        <version number="$Revision: 40674 $"/>\r
+        <version number="$Revision$"/>\r
         <language type="en"/> \r
     </identity>\r
 </ldml>\r
index f3b7e45..7d30a3d 100644 (file)
@@ -12,7 +12,7 @@
 >\r
 <ldml>\r
     <identity>\r
-        <version number="$Revision: 40674 $"/>\r
+        <version number="$Revision$"/>\r
         <language type="en"/> \r
         <territory type="US"/>\r
     </identity>\r
index 27e38cb..31d0b3d 100644 (file)
@@ -12,7 +12,7 @@
 >\r
 <ldml>\r
     <identity>\r
-        <version number="$Revision: 40674 $"/>\r
+        <version number="$Revision$"/>\r
         <language type="en"/> \r
         <territory type="US"/> \r
         <variant type="POSIX"/> \r
index 68949e7..5a80e01 100644 (file)
@@ -14,7 +14,7 @@
 >\r
 <ldml>\r
     <identity>\r
-        <version number="$Revision: 40674 $"/>\r
+        <version number="$Revision$"/>\r
         <language type="es"/>\r
     </identity>\r
 </ldml>\r
diff --git a/source/data/xml/brkitr/fi.xml b/source/data/xml/brkitr/fi.xml
deleted file mode 100644 (file)
index 02e3b81..0000000
+++ /dev/null
@@ -1,29 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" ?>\r
-<!--\r
- Copyright (C) 2016 and later: Unicode, Inc. and others.\r
- License & terms of use: http://www.unicode.org/copyright.html\r
- Copyright (c) 2010-2015 International Business Machines Corporation and others. All rights reserved.\r
--->\r
-<!DOCTYPE ldml SYSTEM "http://www.unicode.org/repos/cldr/trunk/common/dtd/ldml.dtd"\r
-[\r
-   <!ENTITY % icu SYSTEM "http://www.unicode.org/repos/cldr/trunk/common/dtd/ldmlICU.dtd">\r
-   %icu;\r
-]\r
->\r
-<ldml>\r
-    <identity>\r
-        <version number="$Revision: 40674 $"/>\r
-        <language type="fi"/> \r
-    </identity>\r
-    <special xmlns:icu="http://www.icu-project.org/">\r
-        <icu:breakIteratorData>\r
-            <icu:boundaries>\r
-                <icu:line     icu:dependency="line_fi.brk"/>\r
-                <icu:line     alt="loose"  icu:dependency="line_loose_fi.brk"/>\r
-                <icu:line     alt="normal" icu:dependency="line_normal_fi.brk"/>\r
-                <icu:line     alt="strict" icu:dependency="line_fi.brk"/>\r
-            </icu:boundaries>\r
-        </icu:breakIteratorData>\r
-    </special>\r
-</ldml>\r
-\r
index 8890ccb..9f0f32f 100644 (file)
@@ -14,7 +14,7 @@
 >\r
 <ldml>\r
     <identity>\r
-        <version number="$Revision: 40674 $"/>\r
+        <version number="$Revision$"/>\r
         <language type="fr"/>\r
     </identity>\r
 </ldml>\r
index 3a8897a..8210976 100644 (file)
@@ -14,7 +14,7 @@
 >\r
 <ldml>\r
     <identity>\r
-        <version number="$Revision: 40674 $"/>\r
+        <version number="$Revision$"/>\r
         <language type="it"/>\r
     </identity>\r
 </ldml>\r
index 4e44f96..3245912 100644 (file)
@@ -12,7 +12,7 @@
 >\r
 <ldml>\r
     <identity>\r
-        <version number="$Revision: 40674 $"/>\r
+        <version number="$Revision$"/>\r
         <language type="ja"/> \r
     </identity>\r
     <special xmlns:icu="http://www.icu-project.org/">\r
index f8a40dc..d1bf2dc 100644 (file)
@@ -14,7 +14,7 @@
 >\r
 <ldml>\r
     <identity>\r
-        <version number="$Revision: 40674 $"/>\r
+        <version number="$Revision$"/>\r
         <language type="pt"/>\r
     </identity>\r
 </ldml>\r
index 05e2af0..c37188d 100644 (file)
@@ -12,7 +12,7 @@
 >\r
 <ldml>\r
     <identity>\r
-        <version number="$Revision: 40674 $"/>\r
+        <version number="$Revision$"/>\r
         <language type="root"/> \r
     </identity>\r
     <special xmlns:icu="http://www.icu-project.org/">\r
index 75f60e8..054173a 100644 (file)
@@ -14,7 +14,7 @@
 >\r
 <ldml>\r
     <identity>\r
-        <version number="$Revision: 40674 $"/>\r
+        <version number="$Revision$"/>\r
         <language type="ru"/>\r
     </identity>\r
 </ldml>\r
index cc6c653..267baf9 100644 (file)
@@ -12,7 +12,7 @@
 >\r
 <ldml>\r
     <identity>\r
-        <version number="$Revision: 40674 $"/>\r
+        <version number="$Revision$"/>\r
         <language type="root"/> \r
     </identity>\r
     <special xmlns:icu="http://www.icu-project.org/">\r
index 0bb58d0..7218623 100644 (file)
@@ -12,7 +12,7 @@
 >\r
 <ldml>\r
     <identity>\r
-        <version number="$Revision: 40674 $"/>\r
+        <version number="$Revision$"/>\r
         <language type="root"/> \r
     </identity>\r
 </ldml>\r
index c5c8105..2d9e0e3 100644 (file)
@@ -7,7 +7,7 @@
 <!DOCTYPE ldml SYSTEM "http://www.unicode.org/repos/cldr/trunk/common/dtd/ldml.dtd">\r
 <ldml>\r
     <identity>\r
-        <version number="$Revision: 40674 $"/>\r
+        <version number="$Revision$"/>\r
         <language type="be"/>\r
     </identity>\r
     <rbnf>\r
index 859ffa9..3be0286 100644 (file)
@@ -7,7 +7,7 @@
 <!DOCTYPE ldml SYSTEM "http://www.unicode.org/repos/cldr/trunk/common/dtd/ldml.dtd">\r
 <ldml>\r
     <identity>\r
-        <version number="$Revision: 40674 $"/>\r
+        <version number="$Revision$"/>\r
         <language type="bg"/>\r
     </identity>\r
     <rbnf>\r
index 361f3ff..98ae4a7 100644 (file)
@@ -7,7 +7,7 @@
 <!DOCTYPE ldml SYSTEM "http://www.unicode.org/repos/cldr/trunk/common/dtd/ldml.dtd">\r
 <ldml>\r
     <identity>\r
-        <version number="$Revision: 40674 $"/>\r
+        <version number="$Revision$"/>\r
         <language type="ca"/>\r
     </identity>\r
     <rbnf>\r
index 742372b..27dd4e2 100644 (file)
@@ -7,7 +7,7 @@
 <!DOCTYPE ldml SYSTEM "http://www.unicode.org/repos/cldr/trunk/common/dtd/ldml.dtd">\r
 <ldml>\r
     <identity>\r
-        <version number="$Revision: 40674 $"/>\r
+        <version number="$Revision$"/>\r
         <language type="cy"/>\r
     </identity>\r
     <rbnf>\r
index e479749..6570e62 100644 (file)
@@ -7,7 +7,7 @@
 <!DOCTYPE ldml SYSTEM "http://www.unicode.org/repos/cldr/trunk/common/dtd/ldml.dtd">\r
 <ldml>\r
     <identity>\r
-        <version number="$Revision: 40674 $"/>\r
+        <version number="$Revision$"/>\r
         <language type="da"/>\r
     </identity>\r
     <rbnf>\r
index ee2a401..b7264f7 100644 (file)
@@ -8,7 +8,7 @@
 <ldml>\r
        <identity>\r
 \r
-               <version number="$Revision: 40674 $"/>\r
+               <version number="$Revision$"/>\r
                <language type="de"/>\r
        </identity>\r
     <rbnf>\r
index a9da7cd..77a3c15 100644 (file)
@@ -8,7 +8,7 @@
 <ldml>\r
        <identity>\r
 \r
-               <version number="$Revision: 40674 $"/>\r
+               <version number="$Revision$"/>\r
                <language type="en"/>\r
        </identity>\r
     <rbnf>\r
index 48f7ea9..81be866 100644 (file)
@@ -7,7 +7,7 @@
 <!DOCTYPE ldml SYSTEM "http://www.unicode.org/repos/cldr/trunk/common/dtd/ldml.dtd">\r
 <ldml>\r
     <identity>\r
-        <version number="$Revision: 40674 $"/>\r
+        <version number="$Revision$"/>\r
         <language type="fo"/>\r
     </identity>\r
     <rbnf>\r
index 7e40354..2b79c09 100644 (file)
@@ -7,7 +7,7 @@
 <!DOCTYPE ldml SYSTEM "http://www.unicode.org/repos/cldr/trunk/common/dtd/ldml.dtd">\r
 <ldml>\r
        <identity>\r
-               <version number="$Revision: 40674 $"/>\r
+               <version number="$Revision$"/>\r
                <language type="ga"/>\r
        </identity>\r
     <rbnf>\r
index f6c6ba4..42952b7 100644 (file)
@@ -7,7 +7,7 @@
 <!DOCTYPE ldml SYSTEM "http://www.unicode.org/repos/cldr/trunk/common/dtd/ldml.dtd">\r
 <ldml>\r
     <identity>\r
-        <version number="$Revision: 40674 $"/>\r
+        <version number="$Revision$"/>\r
         <language type="is"/>\r
     </identity>\r
     <rbnf>\r
index ea2ea03..66ea00a 100644 (file)
@@ -7,7 +7,7 @@
 <!DOCTYPE ldml SYSTEM "http://www.unicode.org/repos/cldr/trunk/common/dtd/ldml.dtd">\r
 <ldml>\r
     <identity>\r
-        <version number="$Revision: 40674 $"/>\r
+        <version number="$Revision$"/>\r
         <language type="mk"/>\r
     </identity>\r
     <rbnf>\r
index d812cff..f2461e7 100644 (file)
@@ -8,7 +8,7 @@
 <ldml>\r
        <identity>\r
 \r
-               <version number="$Revision: 40674 $"/>\r
+               <version number="$Revision$"/>\r
                <language type="mt"/>\r
        </identity>\r
     <rbnf>\r
index 71dc279..1d8c25e 100644 (file)
@@ -7,7 +7,7 @@
 <!DOCTYPE ldml SYSTEM "http://www.unicode.org/repos/cldr/trunk/common/dtd/ldml.dtd">\r
 <ldml>\r
     <identity>\r
-        <version number="$Revision: 40674 $"/>\r
+        <version number="$Revision$"/>\r
         <language type="nb"/>\r
     </identity>\r
     <rbnf>\r
index d837891..93126fc 100644 (file)
@@ -7,7 +7,7 @@
 <!DOCTYPE ldml SYSTEM "http://www.unicode.org/repos/cldr/trunk/common/dtd/ldml.dtd">\r
 <ldml>\r
     <identity>\r
-        <version number="$Revision: 40674 $"/>\r
+        <version number="$Revision$"/>\r
         <language type="nn"/>\r
     </identity>\r
     <rbnf>\r
index 72bb7d0..09eaa93 100644 (file)
@@ -7,7 +7,7 @@
 <!DOCTYPE ldml SYSTEM "http://www.unicode.org/repos/cldr/trunk/common/dtd/ldml.dtd">\r
 <ldml>\r
        <identity>\r
-               <version number="$Revision: 40674 $"/>\r
+               <version number="$Revision$"/>\r
                <language type="root"/>\r
        </identity>\r
     <rbnf>\r
index 1b3f4bd..94281fa 100644 (file)
@@ -7,7 +7,7 @@
 <!DOCTYPE ldml SYSTEM "http://www.unicode.org/repos/cldr/trunk/common/dtd/ldml.dtd">\r
 <ldml>\r
     <identity>\r
-        <version number="$Revision: 40674 $"/>\r
+        <version number="$Revision$"/>\r
         <language type="ru"/>\r
     </identity>\r
     <rbnf>\r
index e09c530..97975c5 100644 (file)
@@ -7,7 +7,7 @@
 <!DOCTYPE ldml SYSTEM "http://www.unicode.org/repos/cldr/trunk/common/dtd/ldml.dtd">\r
 <ldml>\r
     <identity>\r
-        <version number="$Revision: 40674 $"/>\r
+        <version number="$Revision$"/>\r
         <language type="sr"/>\r
     </identity>\r
     <rbnf>\r
index 71223ff..8b32cd3 100644 (file)
@@ -7,7 +7,7 @@
 <!DOCTYPE ldml SYSTEM "http://www.unicode.org/repos/cldr/trunk/common/dtd/ldml.dtd">\r
 <ldml>\r
     <identity>\r
-        <version number="$Revision: 40674 $"/>\r
+        <version number="$Revision$"/>\r
         <language type="uk"/>\r
     </identity>\r
     <rbnf>\r
index 3d4c305..1b040fd 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 af{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.65"}\r
     zoneStrings{\r
         "Africa:Abidjan"{\r
             ec{"Abidjan"}\r
@@ -910,7 +910,7 @@ af{
             ec{"Suid-Georgië"}\r
         }\r
         "Atlantic:St_Helena"{\r
-            ec{"St. Helena"}\r
+            ec{"Sint Helena"}\r
         }\r
         "Atlantic:Stanley"{\r
             ec{"Stanley"}\r
@@ -1287,7 +1287,7 @@ af{
             ec{"Wake"}\r
         }\r
         "Pacific:Wallis"{\r
-            ec{"Wallis"}\r
+            ec{"Mata-Utu"}\r
         }\r
         "meta:Afghanistan"{\r
             ls{"Afganistan-tyd"}\r
index 46e0678..702c8c5 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 am{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.65"}\r
     zoneStrings{\r
         "Africa:Abidjan"{\r
             ec{"አቢጃን"}\r
@@ -1318,13 +1318,13 @@ am{
         }\r
         "meta:America_Central"{\r
             ld{"የመካከለኛ የቀን ሰዓት አቆጣጠር"}\r
-            lg{"የመካከለኛ ሰዓት አቆጣጠር"}\r
-            ls{"የመካከለኛ መደበኛ ሰዓት አቆጣጠር"}\r
+            lg{"á\8b¨á\88°á\88\9cá\8a\95 á\8a á\88\9cá\88ªá\8a« á\8b¨á\88\98á\8a«á\8a¨á\88\88á\8a\9b á\88°á\8b\93á\89µ á\8a á\89\86á\8c£á\8c á\88­"}\r
+            ls{"á\8b¨á\88°á\88\9cá\8a\95 á\8a á\88\9cá\88ªá\8a« á\8b¨á\88\98á\8a«á\8a¨á\88\88á\8a\9b á\88\98á\8b°á\89 á\8a\9b á\88°á\8b\93á\89µ á\8a á\89\86á\8c£á\8c á\88­"}\r
         }\r
         "meta:America_Eastern"{\r
-            ld{"á\8b¨á\88\9dá\8b\95á\88«á\89£ዊ የቀን ሰዓት አቆጣጠር"}\r
-            lg{"á\8b¨á\88\9dá\8b\95á\88«á\89£ዊ ሰዓት አቆጣጠር"}\r
-            ls{"á\8b¨á\88\9dá\8b\95á\88«á\89£á\8b\8a á\88\98á\8b°á\89 á\8a\9b á\8b¨ሰዓት አቆጣጠር"}\r
+            ld{"á\88\9dá\88µá\88«á\89\83ዊ የቀን ሰዓት አቆጣጠር"}\r
+            lg{"á\88\9dá\88µá\88«á\89\83ዊ ሰዓት አቆጣጠር"}\r
+            ls{"á\88\9dá\88µá\88«á\89\83á\8b\8a á\88\98á\8b°á\89 á\8a\9b ሰዓት አቆጣጠር"}\r
         }\r
         "meta:America_Mountain"{\r
             ld{"የተራራ የቀንሰዓት አቆጣጠር"}\r
index 35def1c..eaa61e2 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 ar{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.50"}\r
     zoneStrings{\r
         "Africa:Abidjan"{\r
             ec{"أبيدجان"}\r
@@ -439,7 +439,7 @@ ar{
             ec{"ميتلاكاتلا"}\r
         }\r
         "America:Mexico_City"{\r
-            ec{"مدينة المكسيك"}\r
+            ec{"مكسيكو سيتي"}\r
         }\r
         "America:Miquelon"{\r
             ec{"مكويلون"}\r
@@ -1004,7 +1004,7 @@ ar{
             ec{"جبل طارق"}\r
         }\r
         "Europe:Guernsey"{\r
-            ec{"غÙ\8aرÙ\86سي"}\r
+            ec{"غÙ\8aرÙ\86زي"}\r
         }\r
         "Europe:Helsinki"{\r
             ec{"هلسنكي"}\r
@@ -1434,9 +1434,9 @@ ar{
             ls{"توقيت تشاتام الرسمي"}\r
         }\r
         "meta:Chile"{\r
-            ld{"توقيت شيلي الصيفي"}\r
-            lg{"توقيت شيلي"}\r
-            ls{"توقيت شيلي الرسمي"}\r
+            ld{"تÙ\88Ù\82Ù\8aت ØªØ´Ù\8aÙ\84Ù\8a Ø§Ù\84صÙ\8aÙ\81Ù\8a"}\r
+            lg{"تÙ\88Ù\82Ù\8aت ØªØ´Ù\8aÙ\84Ù\8a"}\r
+            ls{"تÙ\88Ù\82Ù\8aت ØªØ´Ù\8aÙ\84Ù\8a Ø§Ù\84رسÙ\85Ù\8a"}\r
         }\r
         "meta:China"{\r
             ld{"توقيت الصين الصيفي"}\r
@@ -1460,9 +1460,9 @@ ar{
             ls{"توقيت كولومبيا الرسمي"}\r
         }\r
         "meta:Cook"{\r
-            ld{"تÙ\88Ù\82Ù\8aت Ø¬Ø²Ø± Ù\83Ù\88Ù\88Ù\83 Ø§Ù\84صÙ\8aÙ\81Ù\8a"}\r
+            ld{"توقيت جزر كوك الصيفي"}\r
             lg{"توقيت جزر كووك"}\r
-            ls{"تÙ\88Ù\82Ù\8aت Ø¬Ø²Ø± Ù\83Ù\88Ù\88Ù\83 Ø§Ù\84رسÙ\85Ù\8a"}\r
+            ls{"توقيت جزر كوك الرسمي"}\r
         }\r
         "meta:Cuba"{\r
             ld{"توقيت كوبا الصيفي"}\r
@@ -1515,7 +1515,7 @@ ar{
             ls{"توقيت فيجي الرسمي"}\r
         }\r
         "meta:French_Guiana"{\r
-            ls{"توقيت غايانا الفرنسية"}\r
+            ls{"توقيت غويانا الفرنسية"}\r
         }\r
         "meta:French_Southern"{\r
             ls{"توقيت المقاطعات الفرنسية الجنوبية والأنتارتيكية"}\r
@@ -1656,7 +1656,7 @@ ar{
             ls{"توقيت ماليزيا"}\r
         }\r
         "meta:Maldives"{\r
-            ls{"تÙ\88Ù\82Ù\8aت Ø§Ù\84Ù\80مالديف"}\r
+            ls{"تÙ\88Ù\82Ù\8aت Ø¬Ø²Ø± Ø§Ù\84مالديف"}\r
         }\r
         "meta:Marquesas"{\r
             ls{"توقيت ماركيساس"}\r
@@ -1784,7 +1784,7 @@ ar{
             ls{"توقيت بيونغ يانغ"}\r
         }\r
         "meta:Reunion"{\r
-            ls{"تÙ\88Ù\82Ù\8aت Ø±Ù\8aÙ\88نيون"}\r
+            ls{"تÙ\88Ù\82Ù\8aت Ø±Ù\88Ù\8aنيون"}\r
         }\r
         "meta:Rothera"{\r
             ls{"توقيت روثيرا"}\r
index 416eee0..ef8a624 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 as{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.94"}\r
     zoneStrings{\r
         "Africa:Abidjan"{\r
             ec{"আবিডজান"}\r
index 6b60369..52f6aef 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 ast{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.91"}\r
     zoneStrings{\r
         "Africa:Abidjan"{\r
             ec{"Abidjan"}\r
index 555f60c..19c13e8 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 az{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.53"}\r
     zoneStrings{\r
         "Africa:Abidjan"{\r
             ec{"Abican"}\r
index 92831f6..68bc942 100644 (file)
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 az_Cyrl{\r
     %%Parent{"root"}\r
-    Version{"2.1.38.69"}\r
+    Version{"2.1.44.53"}\r
 }\r
index b7cef7f..1446734 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 be{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.65"}\r
     zoneStrings{\r
         "Africa:Abidjan"{\r
             ec{"Абіджан"}\r
@@ -301,7 +301,7 @@ be{
             ec{"Эйрунэпе"}\r
         }\r
         "America:El_Salvador"{\r
-            ec{"ЭлÑ\8c¡Ð°Ð»Ñ\8cвадоÑ\80"}\r
+            ec{"Сальвадор"}\r
         }\r
         "America:Fort_Nelson"{\r
             ec{"Форт-Нельсан"}\r
@@ -1372,9 +1372,9 @@ be{
             ls{"Стандартны час цэнтральнай Аўстраліі"}\r
         }\r
         "meta:Australia_CentralWestern"{\r
-            ld{"Ð\97аÑ\85однÑ\96 Ð»ÐµÑ\82нÑ\96 Ñ\87аÑ\81 Ð¦Ñ\8dнÑ\82Ñ\80алÑ\8cнай Аўстраліі"}\r
-            lg{"Ð\97аÑ\85однÑ\96 Ñ\87аÑ\81 Ð¦Ñ\8dнÑ\82Ñ\80алÑ\8cнай Аўстраліі"}\r
-            ls{"Ð\97аÑ\85однÑ\96 Ñ\81Ñ\82андаÑ\80Ñ\82нÑ\8b Ñ\87аÑ\81 Ð¦Ñ\8dнÑ\82Ñ\80алÑ\8cнай Аўстраліі"}\r
+            ld{"Ð\9bеÑ\82нÑ\96 Ñ\86Ñ\8dнÑ\82Ñ\80алÑ\8cна-заÑ\85однÑ\96 Ñ\87аÑ\81 Аўстраліі"}\r
+            lg{"ЦÑ\8dнÑ\82Ñ\80алÑ\8cна-заÑ\85однÑ\96 Ñ\87аÑ\81 Аўстраліі"}\r
+            ls{"СÑ\82андаÑ\80Ñ\82нÑ\8b Ñ\86Ñ\8dнÑ\82Ñ\80алÑ\8cна-заÑ\85однÑ\96 Ñ\87аÑ\81 Аўстраліі"}\r
         }\r
         "meta:Australia_Eastern"{\r
             ld{"Летні час усходняй Аўстраліі"}\r
@@ -1613,7 +1613,7 @@ be{
             ls{"Стандартны час Карэі"}\r
         }\r
         "meta:Kosrae"{\r
-            ls{"ЧаÑ\81 Ð²Ð¾Ñ\81Ñ\82Ñ\80ава Ð\9aаÑ\81Ñ\80ае"}\r
+            ls{"ЧаÑ\81 Ð°Ñ\81Ñ\82Ñ\80авоÑ\9e Ð\9aÑ\83Ñ\81аÑ\96е"}\r
         }\r
         "meta:Krasnoyarsk"{\r
             ld{"Краснаярскі летні час"}\r
@@ -1643,7 +1643,7 @@ be{
             ls{"Час Малайзіі"}\r
         }\r
         "meta:Maldives"{\r
-            ls{"Час Мальдыў"}\r
+            ls{"Час Мальдываў"}\r
         }\r
         "meta:Marquesas"{\r
             ls{"Час Маркізскіх астравоў"}\r
index 616d1dd..d24d085 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 bg{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.94"}\r
     zoneStrings{\r
         "Africa:Abidjan"{\r
             ec{"Абиджан"}\r
index fd03cee..abc8d66 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 bn{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.91"}\r
     zoneStrings{\r
         "Africa:Abidjan"{\r
             ec{"আবিদজান"}\r
@@ -259,7 +259,7 @@ bn{
             ec{"চিহুয়াহুয়া"}\r
         }\r
         "America:Coral_Harbour"{\r
-            ec{"à¦\95à§\8bরাল à¦¹à¦¾à¦°à§\8dবার"}\r
+            ec{"à¦\86à¦\9fিà¦\95à§\8bà¦\95ান"}\r
         }\r
         "America:Cordoba"{\r
             ec{"কর্ডোবা"}\r
@@ -1146,7 +1146,7 @@ bn{
             ec{"ছাগোস"}\r
         }\r
         "Indian:Christmas"{\r
-            ec{"বড়দিন"}\r
+            ec{"à¦\95à§\8dরিসমাস"}\r
         }\r
         "Indian:Cocos"{\r
             ec{"কোকোস"}\r
index 5ba2f74..fd4703b 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 br{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.91"}\r
     zoneStrings{\r
         "Africa:Abidjan"{\r
             ec{"Abidjan"}\r
index 16677c8..3be801b 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 brx{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.41.34"}\r
     zoneStrings{\r
         "Africa:Abidjan"{\r
             ec{"अबिद्जान"}\r
index e51f499..db5118a 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 bs{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.88"}\r
     zoneStrings{\r
         "Africa:Abidjan"{\r
             ec{"Abidjan"}\r
index cd6f4fe..13eb6c1 100644 (file)
@@ -2,7 +2,7 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 bs_Cyrl{\r
     %%Parent{"root"}\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.41.34"}\r
     zoneStrings{\r
         "Africa:Abidjan"{\r
             ec{"Абиџан"}\r
index 0dcf9a2..852cf6e 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 ca{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.65"}\r
     zoneStrings{\r
         "Africa:Abidjan"{\r
             ec{"Abidjan"}\r
@@ -814,7 +814,7 @@ ca{
             ec{"Kizil-Orda"}\r
         }\r
         "Asia:Rangoon"{\r
-            ec{"Rangoon"}\r
+            ec{"Yangôn"}\r
         }\r
         "Asia:Riyadh"{\r
             ec{"Al-Riyād"}\r
@@ -862,7 +862,7 @@ ca{
             ec{"Tomsk"}\r
         }\r
         "Asia:Ulaanbaatar"{\r
-            ec{"Ulaanbaatar"}\r
+            ec{"Ulan Bator"}\r
         }\r
         "Asia:Urumqi"{\r
             ec{"Urumchi"}\r
@@ -1332,9 +1332,9 @@ ca{
             ls{"Hora estàndard de muntanya d’Amèrica del Nord"}\r
         }\r
         "meta:America_Pacific"{\r
-            ld{"Hora d’estiu del Pacífic"}\r
-            lg{"Hora del Pacífic"}\r
-            ls{"Hora estàndard del Pacífic"}\r
+            ld{"Hora d’estiu del Pacífic d’Amèrica del Nord"}\r
+            lg{"Hora del Pacífic d’Amèrica del Nord"}\r
+            ls{"Hora estàndard del Pacífic d’Amèrica del Nord"}\r
         }\r
         "meta:Anadyr"{\r
             ld{"Horari d’estiu d’Anadyr"}\r
@@ -1473,7 +1473,7 @@ ca{
             ls{"Hora de Davis"}\r
         }\r
         "meta:DumontDUrville"{\r
-            ls{"Hora de Dumont-d’Urville"}\r
+            ls{"Hora de Dumont d’Urville"}\r
         }\r
         "meta:East_Timor"{\r
             ls{"Hora de Timor Oriental"}\r
@@ -1579,7 +1579,7 @@ ca{
             ls{"Hora estàndard de Hovd"}\r
         }\r
         "meta:India"{\r
-            ls{"Hora estàndard de l’Índia"}\r
+            ls{"Hora de l’Índia"}\r
         }\r
         "meta:Indian_Ocean"{\r
             ls{"Hora de l’oceà Índic"}\r
@@ -1779,9 +1779,9 @@ ca{
             ls{"Hora de les illes Phoenix"}\r
         }\r
         "meta:Pierre_Miquelon"{\r
-            ld{"Hora d’estiu de Saint-Pierre i Miquelon"}\r
-            lg{"Hora de Saint-Pierre i Miquelon"}\r
-            ls{"Hora estàndard de Saint-Pierre i Miquelon"}\r
+            ld{"Hora d’estiu de Saint-Pierre-et-Miquelon"}\r
+            lg{"Hora de Saint-Pierre-et-Miquelon"}\r
+            ls{"Hora estàndard de Saint-Pierre-et-Miquelon"}\r
         }\r
         "meta:Pitcairn"{\r
             ls{"Hora de Pitcairn"}\r
@@ -1913,7 +1913,7 @@ ca{
         gmtZeroFormat{"GMT"}\r
         hourFormat{"+HH:mm;-HH:mm"}\r
         regionFormat{"Hora de: {0}"}\r
-        regionFormatDaylight{"Horari d’estiu, {0}"}\r
+        regionFormatDaylight{"Hora d’estiu, {0}"}\r
         regionFormatStandard{"Hora estàndard, {0}"}\r
     }\r
 }\r
index 20515d0..986bc2a 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 ccp{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.50"}\r
     zoneStrings{\r
         "Africa:Abidjan"{\r
             ec{"𑄃𑄝𑄨𑄘𑄴𑄎𑄚𑄴"}\r
index 9c38f83..2450cdc 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 ce{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.41.34"}\r
     zoneStrings{\r
         "Africa:Abidjan"{\r
             ec{"Абиджан"}\r
index fa58db3..6069415 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 chr{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.2"}\r
     zoneStrings{\r
         "Africa:Abidjan"{\r
             ec{"ᎠᏈᏣᏂ"}\r
@@ -1307,7 +1307,7 @@ chr{
             ls{"ᏭᏕᎵᎬ ᎬᎿᎨᏍᏛ ᎠᏟᎶᏍᏗ ᎠᏟᎢᎵᏒ"}\r
         }\r
         "meta:Alaska"{\r
-            ld{"á\8e á\8e³á\8f\8dá\8e¦ á\8eªá\8e¯ á\8e¢á\8e¦ á\8e á\8f\9fá\8e¢á\8eµá\8f\8dá\8f\92á\8e©"}\r
+            ld{"á\8e á\8e³á\8f\8dá\8e¦ á\8eªá\8e¯ á\8e¢á\8e¦ á\8e á\8f\9fá\8e¢á\8eµá\8f\92"}\r
             lg{"ᎠᎳᏍᎦ ᎠᏟᎢᎵᏒ"}\r
             ls{"ᎠᎳᏍᎦ ᎠᏟᎶᏍᏗ ᎠᏟᎢᎵᏒ"}\r
             sd{"AKDT"}\r
@@ -1320,7 +1320,7 @@ chr{
             ls{"ᎠᎺᏌᏂ ᎠᏟᎶᏍᏗ ᎠᏟᎢᎵᏒ"}\r
         }\r
         "meta:America_Central"{\r
-            ld{"á\8e á\8f°á\8f\9f á\8eªá\8e¯ á\8e¢á\8e¦ á\8e á\8f\9fá\8e¢á\8eµá\8f\8dá\8f\92á\8e©"}\r
+            ld{"á\8e á\8f°á\8f\9f á\8eªá\8e¯ á\8e¢á\8e¦ á\8e á\8f\9fá\8e¢á\8eµá\8f\92"}\r
             lg{"ᎠᏰᏟ ᎠᏟᎢᎵᏒ"}\r
             ls{"ᎠᏰᏟ ᎠᏟᎶᏍᏗ ᎠᏟᎢᎵᏒ"}\r
             sd{"CDT"}\r
@@ -1328,7 +1328,7 @@ chr{
             ss{"CST"}\r
         }\r
         "meta:America_Eastern"{\r
-            ld{"á\8f\97á\8e§á\8e¸á\8e¬ á\8f\97á\8f\9c á\8eªá\8e¯ á\8e¢á\8e¦ á\8e á\8f\9fá\8e¢á\8eµá\8f\8dá\8f\92á\8e©"}\r
+            ld{"á\8f\97á\8e§á\8e¸á\8e¬ á\8f\97á\8f\9c á\8eªá\8e¯ á\8e¢á\8e¦ á\8e á\8f\9fá\8e¢á\8eµá\8f\92"}\r
             lg{"ᏗᎧᎸᎬ ᏗᏜ ᎠᏟᎢᎵᏒ"}\r
             ls{"ᏗᎧᎸᎬ ᏗᏜ ᎠᏟᎶᏍᏗ ᎠᏟᎢᎵᏒ"}\r
             sd{"EDT"}\r
@@ -1336,7 +1336,7 @@ chr{
             ss{"EST"}\r
         }\r
         "meta:America_Mountain"{\r
-            ld{"á\8e£á\8f\93á\8e¸ á\8eªá\8e¯ á\8e¢á\8e¦ á\8e á\8f\9fá\8e¢á\8eµá\8f\8dá\8f\92á\8e©"}\r
+            ld{"á\8e£á\8f\93á\8e¸ á\8eªá\8e¯ á\8e¢á\8e¦ á\8e á\8f\9fá\8e¢á\8eµá\8f\92"}\r
             lg{"ᎣᏓᎸ ᎠᏟᎢᎵᏒ"}\r
             ls{"ᎣᏓᎸ ᎠᏟᎶᏍᏗ ᎠᏟᎢᎵᏒ"}\r
             sd{"MDT"}\r
@@ -1344,7 +1344,7 @@ chr{
             ss{"MST"}\r
         }\r
         "meta:America_Pacific"{\r
-            ld{"á\8f­á\8f\95á\8eµá\8e¬ á\8eªá\8e¯ á\8e¢á\8e¦ á\8e á\8f\9fá\8e¢á\8eµá\8f\8dá\8f\92á\8e©"}\r
+            ld{"á\8f­á\8f\95á\8eµá\8e¬ á\8eªá\8e¯ á\8e¢á\8e¦ á\8e á\8f\9fá\8e¢á\8eµá\8f\92"}\r
             lg{"ᏭᏕᎵᎬ ᎠᏟᎢᎵᏒ"}\r
             ls{"ᏭᏕᎵᎬ ᎠᏟᎶᏍᏗ ᎠᏟᎢᎵᏒ"}\r
             sd{"PDT"}\r
@@ -1352,12 +1352,12 @@ chr{
             ss{"PST"}\r
         }\r
         "meta:Apia"{\r
-            ld{"ᎠᏈᎠ ᎪᎯ ᎢᎦ ᎠᏟᎢᎵᏒ"}\r
+            ld{"ᎠᏈᎠ ᎪᎯ ᎢᎦ ᎠᏟᎢᎵᏒ"}\r
             lg{"ᎠᏈᎠ ᎠᏟᎢᎵᏒ"}\r
             ls{"ᎠᏈᎠ ᎠᏟᎶᏍᏗ ᎠᏟᎢᎵᏒ"}\r
         }\r
         "meta:Arabian"{\r
-            ld{"ᎠᎴᏈᏯ ᎪᎯ ᎢᎦ ᎠᏟᎢᎵᏒ"}\r
+            ld{"ᎠᎴᏈᏯ ᎪᎯ ᎢᎦ ᎠᏟᎢᎵᏒ"}\r
             lg{"ᎠᎴᏈᏯ ᎠᏟᎢᎵᏒ"}\r
             ls{"ᎠᎴᏈᏯ ᎠᏟᎶᏍᏗ ᎠᏟᎢᎵᏒ"}\r
         }\r
@@ -1377,7 +1377,7 @@ chr{
             ls{"ᎠᎵᎻᏂᎠ ᎠᏟᎶᏍᏗ ᎠᏟᎢᎵᏒ"}\r
         }\r
         "meta:Atlantic"{\r
-            ld{"á\8f\97á\8e§á\8e¸á\8e¬ á\8eªá\8e¯ á\8e¢á\8e¦ á\8e á\8f\9fá\8e¢á\8eµá\8f\8dá\8f\92á\8e©"}\r
+            ld{"á\8f\97á\8e§á\8e¸á\8e¬ á\8eªá\8e¯ á\8e¢á\8e¦ á\8e á\8f\9fá\8e¢á\8eµá\8f\92"}\r
             lg{"ᏗᎧᎸᎬ ᎠᏟᎢᎵᏒ"}\r
             ls{"ᏗᎧᎸᎬ ᎠᏟᎶᏍᏗ ᎠᏟᎢᎵᏒ"}\r
             sd{"ADT"}\r
@@ -1385,22 +1385,22 @@ chr{
             ss{"AST"}\r
         }\r
         "meta:Australia_Central"{\r
-            ld{"ᎠᏰᏟ ᎡᎳᏗᏜ ᎪᎯ ᎢᎦ ᎠᏟᎢᎵᏒ"}\r
+            ld{"ᎠᏰᏟ ᎡᎳᏗᏜ ᎪᎯ ᎢᎦ ᎠᏟᎢᎵᏒ"}\r
             lg{"ᎠᏰᏟ ᎡᎳᏗᏜ ᎠᏟᎢᎵᏒ"}\r
             ls{"ᎠᏰᏟ ᎡᎳᏗᏜ ᎠᏟᎶᏍᏗ ᎠᏟᎢᎵᏒ"}\r
         }\r
         "meta:Australia_CentralWestern"{\r
-            ld{"ᎠᏰᏟ ᎡᎳᏗᏜ ᏭᏕᎵᎬ ᏗᏜ ᎪᎯ ᎢᎦ ᎠᏟᎢᎵᏒ"}\r
+            ld{"ᎠᏰᏟ ᎡᎳᏗᏜ ᏭᏕᎵᎬ ᏗᏜ ᎪᎯ ᎢᎦ ᎠᏟᎢᎵᏒ"}\r
             lg{"ᎠᏰᏟ ᎡᎳᏗᏜ ᏭᏕᎵᎬ ᏗᏜ ᎠᏟᎢᎵᏒ"}\r
             ls{"ᎠᏰᏟ ᎡᎳᏗᏜ ᏭᏕᎵᎬ ᏗᏜ ᎠᏟᎶᏍᏗ ᎠᏟᎢᎵᏒ"}\r
         }\r
         "meta:Australia_Eastern"{\r
-            ld{"ᎡᎳᏗᏜ ᏗᎧᎸᎬ ᏗᏜ ᎪᎯ ᎢᎦ ᎠᏟᎢᎵᏒ"}\r
+            ld{"ᎡᎳᏗᏜ ᏗᎧᎸᎬ ᏗᏜ ᎪᎯ ᎢᎦ ᎠᏟᎢᎵᏒ"}\r
             lg{"ᎡᎳᏗᏜ ᏗᎧᎸᎬ ᏗᏜ ᎠᏟᎢᎵᏒ"}\r
             ls{"ᎡᎳᏗᏜ ᏗᎧᎸᎬ ᏗᏜ ᎠᏟᎶᏍᏗ ᎠᏟᎢᎵᏒ"}\r
         }\r
         "meta:Australia_Western"{\r
-            ld{"ᎡᎳᏗᏜ ᏭᏕᎵᎬ ᏗᏜ ᎪᎯ ᎢᎦ ᎠᏟᎢᎵᏒ"}\r
+            ld{"ᎡᎳᏗᏜ ᏭᏕᎵᎬ ᏗᏜ ᎪᎯ ᎢᎦ ᎠᏟᎢᎵᏒ"}\r
             lg{"ᎡᎳᏗᏜ ᏭᏕᎵᎬ ᏗᏜ ᎠᏟᎢᎵᏒ"}\r
             ls{"ᎡᎳᏗᏜ ᏭᏕᎵᎬ ᏗᏜ ᎠᏟᎶᏍᏗ ᎠᏟᎢᎵᏒ"}\r
         }\r
@@ -1442,7 +1442,7 @@ chr{
             ls{"ᏣᎼᎶ ᎠᏟᎶᏍᏗ ᎠᏟᎢᎵᏒ"}\r
         }\r
         "meta:Chatham"{\r
-            ld{"ᏣᏝᎻ ᎪᎯ ᎢᎦ ᎠᏟᎢᎵᏒ"}\r
+            ld{"ᏣᏝᎻ ᎪᎯ ᎢᎦ ᎠᏟᎢᎵᏒ"}\r
             lg{"ᏣᏝᎻ ᎠᏟᎢᎵᏒ"}\r
             ls{"ᏣᏝᎻ ᎠᏟᎶᏍᏗ ᎠᏟᎢᎵᏒ"}\r
         }\r
@@ -1452,7 +1452,7 @@ chr{
             ls{"ᏥᎵ ᎠᏟᎶᏍᏗ ᎠᏟᎢᎵᏒ"}\r
         }\r
         "meta:China"{\r
-            ld{"ᏓᎶᏂᎨᏍᏛ ᎪᎯ ᎢᎦ ᎠᏟᎢᎵᏒ"}\r
+            ld{"ᏓᎶᏂᎨᏍᏛ ᎪᎯ ᎢᎦ ᎠᏟᎢᎵᏒ"}\r
             lg{"ᏓᎶᏂᎨᏍᏛ ᎠᏟᎢᎵᏒ"}\r
             ls{"ᏓᎶᏂᎨᏍᏛ ᎠᏟᎶᏍᏗ ᎠᏟᎢᎵᏒ"}\r
         }\r
@@ -1478,7 +1478,7 @@ chr{
             ls{"ᎠᏓᏍᏓᏴᎲᏍᎩ ᏚᎦᏚᏛᎢ ᎠᏟᎶᏍᏗ ᎠᏟᎢᎵᏒ"}\r
         }\r
         "meta:Cuba"{\r
-            ld{"á\8e«á\8f\86 á\8eªá\8e¯ á\8e¢á\8e¦ á\8e á\8f\9fá\8e¢á\8eµá\8f\8dá\8f\92á\8e©"}\r
+            ld{"á\8e«á\8f\86 á\8eªá\8e¯ á\8e¢á\8e¦ á\8e á\8f\9fá\8e¢á\8eµá\8f\92"}\r
             lg{"ᎫᏆ ᎠᏟᎢᎵᏒ"}\r
             ls{"ᎫᏆ ᎠᏟᎶᏍᏗ ᎠᏟᎢᎵᏒ"}\r
         }\r
@@ -1531,7 +1531,7 @@ chr{
             ls{"ᎠᏂᎦᎸ ᏈᏯᎾ ᎠᏟᎢᎵᏒ"}\r
         }\r
         "meta:French_Southern"{\r
-            ls{"ᎠᏂᎦᎸᏥ ᎤᎦᏃᏮ ᎠᎴ ᎤᏁᏍᏓᎶ ᎠᏟᎢᎵᏒ"}\r
+            ls{"ᎠᏂᎦᎸᏥ ᎤᎦᏃᏮ & ᎤᏁᏍᏓᎶ ᎠᏟᎢᎵᏒ"}\r
         }\r
         "meta:GMT"{\r
             ls{"ᎢᏤ ᎢᏳᏍᏗ ᎠᏟᎢᎵᏒ"}\r
@@ -1567,7 +1567,7 @@ chr{
             ls{"ᎦᏯᎾ ᎠᏟᎢᎵᏒ"}\r
         }\r
         "meta:Hawaii_Aleutian"{\r
-            ld{"á\8e­á\8f©á\8f±-á\8e á\8eµá\8f³á\8f\8fá\8e á\8f\82 á\8eªá\8e¯ á\8e¢á\8e¦ á\8e á\8f\9fá\8e¢á\8eµá\8f\8dá\8f\92á\8e©"}\r
+            ld{"á\8e­á\8f©á\8f±-á\8e á\8eµá\8f³á\8f\8fá\8e á\8f\82 á\8eªá\8e¯ á\8e¢á\8e¦ á\8e á\8f\9fá\8e¢á\8eµá\8f\92"}\r
             lg{"ᎭᏩᏱ-ᎠᎵᏳᏏᎠᏂ ᎠᏟᎢᎵᏒ"}\r
             ls{"ᎭᏩᏱ-ᎠᎵᏳᏏᎠᏂ ᎠᏟᎶᏍᏗ ᎠᏟᎢᎵᏒ"}\r
             sd{"HADT"}\r
@@ -1603,7 +1603,7 @@ chr{
             ls{"ᏭᏕᎵᎬ ᏗᏜ ᎢᏂᏙᏂᏍᏯ ᎠᏟᎢᎵᏒ"}\r
         }\r
         "meta:Iran"{\r
-            ld{"ᎢᎳᏂ ᎪᎯ ᎢᎦ ᎠᏟᎢᎵᏒ"}\r
+            ld{"ᎢᎳᏂ ᎪᎯ ᎢᎦ ᎠᏟᎢᎵᏒ"}\r
             lg{"ᎢᎳᏂ ᎠᏟᎢᎵᏒ"}\r
             ls{"ᎢᎳᏂ ᎠᏟᎶᏍᏗ ᎠᏟᎢᎵᏒ"}\r
         }\r
@@ -1618,7 +1618,7 @@ chr{
             ls{"ᎢᏏᎵᏱ ᎠᏟᎶᏍᏗ ᎠᏟᎢᎵᏒ"}\r
         }\r
         "meta:Japan"{\r
-            ld{"ᏣᏩᏂᏏ ᎪᎯ ᎢᎦ ᎠᏟᎢᎵᏒ"}\r
+            ld{"ᏣᏩᏂᏏ ᎪᎯ ᎢᎦ ᎠᏟᎢᎵᏒ"}\r
             lg{"ᏣᏩᏂᏏ ᎠᏟᎢᎵᏒ"}\r
             ls{"ᏣᏩᏂᏏ ᎠᏟᎶᏍᏗ ᎠᏟᎢᎵᏒ"}\r
         }\r
@@ -1629,7 +1629,7 @@ chr{
             ls{"ᏭᏕᎵᎬ ᎧᏎᎧᏍᏕᏂ ᎠᏟᎢᎵᏒ"}\r
         }\r
         "meta:Korea"{\r
-            ld{"ᎪᎵᎠᏂ ᎪᎯ ᎢᎦ ᎠᏟᎢᎵᏒ"}\r
+            ld{"ᎪᎵᎠᏂ ᎪᎯ ᎢᎦ ᎠᏟᎢᎵᏒ"}\r
             lg{"ᎪᎵᎠᏂ ᎠᏟᎢᎵᏒ"}\r
             ls{"ᎪᎵᎠᏂ ᎠᏟᎶᏍᏗ ᎠᏟᎢᎵᏒ"}\r
         }\r
@@ -1648,7 +1648,7 @@ chr{
             ls{"ᎠᏍᏓᏅᏅ ᏚᎦᏚᏛᎢ ᎠᏟᎢᎵᏒ"}\r
         }\r
         "meta:Lord_Howe"{\r
-            ld{"ᎤᎬᏫᏳᎯ ᎭᏫ ᎪᎯ ᎢᎦ ᎠᏟᎢᎵᏒ"}\r
+            ld{"ᎤᎬᏫᏳᎯ ᎭᏫ ᎪᎯ ᎢᎦ ᎠᏟᎢᎵᏒ"}\r
             lg{"ᎤᎬᏫᏳᎯ ᎭᏫ ᎠᏟᎢᎵᏒ"}\r
             ls{"ᎤᎬᏫᏳᎯ ᎭᏫ ᎠᏟᎶᏍᏗ ᎠᏟᎢᎵᏒ"}\r
         }\r
@@ -1681,12 +1681,12 @@ chr{
             ls{"ᎹᏌᏂ ᎠᏟᎢᎵᏒ"}\r
         }\r
         "meta:Mexico_Northwest"{\r
-            ld{"á\8f§á\8f´á\8f¢ á\8f­á\8f\95á\8eµá\8e¬ á\8e á\8f\82á\8f\8dá\8f\86á\8f\82 á\8eªá\8e¯ á\8e¢á\8e¦ á\8e á\8f\9fá\8e¢á\8eµá\8f\8dá\8f\92á\8e©"}\r
+            ld{"á\8f§á\8f´á\8f¢ á\8f­á\8f\95á\8eµá\8e¬ á\8e á\8f\82á\8f\8dá\8f\86á\8f\82 á\8eªá\8e¯ á\8e¢á\8e¦ á\8e á\8f\9fá\8e¢á\8eµá\8f\92"}\r
             lg{"ᏧᏴᏢ ᏭᏕᎵᎬ ᎠᏂᏍᏆᏂ ᎠᏟᎢᎵᏒ"}\r
             ls{"ᏧᏴᏢ ᏭᏕᎵᎬ ᎠᏂᏍᏆᏂ ᎠᏟᎶᏍᏗ ᎠᏟᎢᎵᏒ"}\r
         }\r
         "meta:Mexico_Pacific"{\r
-            ld{"á\8e á\8f\82á\8f\8dá\8f\86á\8f\82 á\8f­á\8f\95á\8eµá\8e¬ á\8eªá\8e¯ á\8e¢á\8e¦ á\8e á\8f\9fá\8e¢á\8eµá\8f\8dá\8f\92á\8e©"}\r
+            ld{"á\8e á\8f\82á\8f\8dá\8f\86á\8f\82 á\8f­á\8f\95á\8eµá\8e¬ á\8eªá\8e¯ á\8e¢á\8e¦ á\8e á\8f\9fá\8e¢á\8eµá\8f\92"}\r
             lg{"ᎠᏂᏍᏆᏂ ᏭᏕᎵᎬ ᎠᏟᎢᎵᏒ"}\r
             ls{"ᎠᏂᏍᏆᏂ ᏭᏕᎵᎬ ᎠᏟᎶᏍᏗ ᎠᏟᎢᎵᏒ"}\r
         }\r
@@ -1715,12 +1715,12 @@ chr{
             ls{"ᎢᏤ ᎧᎵᏙᏂᎠᏂ ᎠᏟᎶᏍᏗ ᎠᏟᎢᎵᏒ"}\r
         }\r
         "meta:New_Zealand"{\r
-            ld{"ᎢᏤ ᏏᎢᎴᏂᏗ ᎪᎯ ᎢᎦ ᎠᏟᎢᎵᏒ"}\r
+            ld{"ᎢᏤ ᏏᎢᎴᏂᏗ ᎪᎯ ᎢᎦ ᎠᏟᎢᎵᏒ"}\r
             lg{"ᎢᏤ ᏏᎢᎴᏂᏗ ᎠᏟᎢᎵᏒ"}\r
             ls{"ᎢᏤ ᏏᎢᎴᏂᏗ ᎠᏟᎶᏍᏗ ᎠᏟᎢᎵᏒ"}\r
         }\r
         "meta:Newfoundland"{\r
-            ld{"á\8e¢á\8f¤á\8e¤á\8f\82á\8f©á\8f\9bá\8f\93á\8e¦á\8f\99á\8e¯ á\8eªá\8e¯ á\8e¢á\8e¦ á\8e á\8f\9fá\8e¢á\8eµá\8f\8dá\8f\92á\8e©"}\r
+            ld{"á\8e¢á\8f¤á\8e¤á\8f\82á\8f©á\8f\9bá\8f\93á\8e¦á\8f\99á\8e¯ á\8eªá\8e¯ á\8e¢á\8e¦ á\8e á\8f\9fá\8e¢á\8eµá\8f\92"}\r
             lg{"ᎢᏤᎤᏂᏩᏛᏓᎦᏙᎯ ᎠᏟᎢᎵᏒ"}\r
             ls{"ᎢᏤᎤᏂᏩᏛᏓᎦᏙᎯ ᎠᏟᎶᏍᏗ ᎠᏟᎢᎵᏒ"}\r
         }\r
@@ -1775,9 +1775,9 @@ chr{
             ls{"ᏧᎴᎯᏌᏅᎯ ᏚᎦᏚᏛᎢ ᎠᏟᎢᎵᏒ"}\r
         }\r
         "meta:Pierre_Miquelon"{\r
-            ld{"ᎤᏓᏅᏘ ᏈᏰ ᎠᎴ ᎻᏇᎶᏂ ᎪᎯ ᎢᎦ ᎠᏟᎢᎵᏒᎩ"}\r
-            lg{"ᎤᏓᏅᏘ ᏈᏰ ᎠᎴ ᎻᏇᎶᏂ ᎠᏟᎢᎵᏒ"}\r
-            ls{"ᎤᏓᏅᏘ ᏈᏰ ᎠᎴ ᎻᏇᎶᏂ ᎠᏟᎶᏍᏗ ᎠᏟᎢᎵᏒ"}\r
+            ld{"ᎤᏓᏅᏘ ᏈᏰ & ᎻᏇᎶᏂ ᎪᎯ ᎢᎦ ᎠᏟᎢᎵᏒ"}\r
+            lg{"ᎤᏓᏅᏘ ᏈᏰ & ᎻᏇᎶᏂ ᎠᏟᎢᎵᏒ"}\r
+            ls{"ᎤᏓᏅᏘ ᏈᏰ & ᎻᏇᎶᏂ ᎠᏟᎶᏍᏗ ᎠᏟᎢᎵᏒ"}\r
         }\r
         "meta:Pitcairn"{\r
             ls{"ᏈᎧᎵᏂ ᎠᏟᎢᎵᏒ"}\r
@@ -1800,7 +1800,7 @@ chr{
             ls{"ᏌᎧᎵᏂ ᎠᏟᎶᏍᏗ ᎠᏟᎢᎵᏒ"}\r
         }\r
         "meta:Samoa"{\r
-            ld{"ᏌᎼᎠ ᎪᎯ ᎢᎦ ᎠᏟᎢᎵᏒ"}\r
+            ld{"ᏌᎼᎠ ᎪᎯ ᎢᎦ ᎠᏟᎢᎵᏒ"}\r
             lg{"ᏌᎼᎠ ᎠᏟᎢᎵᏒ"}\r
             ls{"ᏌᎼᎠ ᎠᏟᎶᏍᏗ ᎠᏟᎢᎵᏒ"}\r
         }\r
@@ -1826,7 +1826,7 @@ chr{
             ls{"ᏔᎯᏘ ᎠᏟᎢᎵᏒ"}\r
         }\r
         "meta:Taipei"{\r
-            ld{"ᏔᏱᏇ ᎪᎯ ᎢᎦ ᎠᏟᎢᎵᏒ"}\r
+            ld{"ᏔᏱᏇ ᎪᎯ ᎢᎦ ᎠᏟᎢᎵᏒ"}\r
             lg{"ᏔᏱᏇ ᎠᏟᎢᎵᏒ"}\r
             ls{"ᏔᏱᏇ ᎠᏟᎶᏍᏗ ᎠᏟᎢᎵᏒ"}\r
         }\r
@@ -1904,7 +1904,7 @@ chr{
         gmtZeroFormat{"GMT"}\r
         hourFormat{"+HH:mm;-HH:mm"}\r
         regionFormat{"{0} ᎠᏟᎢᎵᏒ"}\r
-        regionFormatDaylight{"{0} á\8eªá\8e¯ á\8e¢á\8e¦ á\8e á\8f\9fá\8e¢á\8eµá\8f\8dá\8f\92á\8e©"}\r
+        regionFormatDaylight{"{0} á\8eªá\8e¯ á\8e¢á\8e¦ á\8e á\8f\9fá\8e¢á\8eµá\8f\92"}\r
         regionFormatStandard{"{0} ᎠᏟᎶᏍᏗ ᎠᏟᎢᎵᏒ"}\r
     }\r
 }\r
index e2239e9..e7b733d 100644 (file)
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 ckb{\r
-    Version{"2.1.38.71"}\r
+    Version{"2.1.44.88"}\r
 }\r
index b3973a2..02c4774 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 cs{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.91"}\r
     zoneStrings{\r
         "Africa:Abidjan"{\r
             ec{"Abidžan"}\r
@@ -956,7 +956,7 @@ cs{
             ss{"UTC"}\r
         }\r
         "Etc:Unknown"{\r
-            ec{"Neznámé město"}\r
+            ec{"neznámé město"}\r
         }\r
         "Europe:Amsterdam"{\r
             ec{"Amsterdam"}\r
index ea4d065..616d5b7 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 cy{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.91"}\r
     zoneStrings{\r
         "Africa:Abidjan"{\r
             ec{"Abidjan"}\r
index 41c4d01..b04d9b5 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 da{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.65"}\r
     zoneStrings{\r
         "Africa:Abidjan"{\r
             ec{"Abidjan"}\r
@@ -664,7 +664,7 @@ da{
             ec{"Atyrau"}\r
         }\r
         "Asia:Baghdad"{\r
-            ec{"Baghdad"}\r
+            ec{"Bagdad"}\r
         }\r
         "Asia:Bahrain"{\r
             ec{"Bahrain"}\r
@@ -895,7 +895,7 @@ da{
             ec{"De Kanariske Øer"}\r
         }\r
         "Atlantic:Cape_Verde"{\r
-            ec{"Cabo Verde"}\r
+            ec{"Kap Verde"}\r
         }\r
         "Atlantic:Faeroe"{\r
             ec{"Færøerne"}\r
@@ -1110,7 +1110,7 @@ da{
             ec{"Uljanovsk"}\r
         }\r
         "Europe:Uzhgorod"{\r
-            ec{"Uzhgorod"}\r
+            ec{"Uzjhorod"}\r
         }\r
         "Europe:Vaduz"{\r
             ec{"Vaduz"}\r
@@ -1146,7 +1146,7 @@ da{
             ec{"Chagos"}\r
         }\r
         "Indian:Christmas"{\r
-            ec{"Christmas"}\r
+            ec{"Juleøerne"}\r
         }\r
         "Indian:Cocos"{\r
             ec{"Cocos"}\r
@@ -1382,9 +1382,9 @@ da{
             ls{"Vestargentinsk normaltid"}\r
         }\r
         "meta:Armenia"{\r
-            ld{"Armenien-sommertid"}\r
-            lg{"Armenien-tid"}\r
-            ls{"Armenien-normaltid"}\r
+            ld{"Armensk sommertid"}\r
+            lg{"Armensk tid"}\r
+            ls{"Armensk normaltid"}\r
         }\r
         "meta:Atlantic"{\r
             ld{"Atlantic-sommertid"}\r
@@ -1412,9 +1412,9 @@ da{
             ls{"Vestaustralsk normaltid"}\r
         }\r
         "meta:Azerbaijan"{\r
-            ld{"Aserbajdsjan-sommertid"}\r
-            lg{"Aserbajdsjan-tid"}\r
-            ls{"Aserbajdsjan-normaltid"}\r
+            ld{"Aserbajdsjansk sommertid"}\r
+            lg{"Aserbajdsjansk tid"}\r
+            ls{"Aserbajdsjansk normaltid"}\r
         }\r
         "meta:Azores"{\r
             ld{"Azorerne-sommertid"}\r
@@ -1441,9 +1441,9 @@ da{
             ls{"Brunei Darussalam-tid"}\r
         }\r
         "meta:Cape_Verde"{\r
-            ld{"Cabo Verde-sommertid"}\r
-            lg{"Cabo Verde-tid"}\r
-            ls{"Cabo Verde-normaltid"}\r
+            ld{"Kap Verde-sommertid"}\r
+            lg{"Kap Verde-tid"}\r
+            ls{"Kap Verde-normaltid"}\r
         }\r
         "meta:Chamorro"{\r
             ls{"Chamorro-tid"}\r
@@ -1539,9 +1539,9 @@ da{
             ls{"Falklandsøerne-normaltid"}\r
         }\r
         "meta:Fiji"{\r
-            ld{"Fiji-sommertid"}\r
-            lg{"Fiji-tid"}\r
-            ls{"Fiji-normaltid"}\r
+            ld{"Fijiansk sommertid"}\r
+            lg{"Fijiansk tid"}\r
+            ls{"Fijiansk normaltid"}\r
         }\r
         "meta:French_Guiana"{\r
             ls{"Fransk Guyana-tid"}\r
@@ -1559,9 +1559,9 @@ da{
             ls{"Gambier-tid"}\r
         }\r
         "meta:Georgia"{\r
-            ld{"Georgien-sommertid"}\r
-            lg{"Georgien-tid"}\r
-            ls{"Georgien-normaltid"}\r
+            ld{"Georgisk sommertid"}\r
+            lg{"Georgisk tid"}\r
+            ls{"Georgisk normaltid"}\r
         }\r
         "meta:Gilbert_Islands"{\r
             ls{"Gilbertøerne-tid"}\r
@@ -1601,7 +1601,7 @@ da{
             ls{"Hovd-normaltid"}\r
         }\r
         "meta:India"{\r
-            ls{"Indien-normaltid"}\r
+            ls{"Indisk normaltid"}\r
         }\r
         "meta:Indian_Ocean"{\r
             ls{"Indiske Ocean-normaltid"}\r
@@ -1619,9 +1619,9 @@ da{
             ls{"Vestindonesisk tid"}\r
         }\r
         "meta:Iran"{\r
-            ld{"Iran-sommertid"}\r
-            lg{"Iran-tid"}\r
-            ls{"Iran-normaltid"}\r
+            ld{"Iransk sommertid"}\r
+            lg{"Iransk tid"}\r
+            ls{"Iransk normaltid"}\r
         }\r
         "meta:Irkutsk"{\r
             ld{"Irkutsk-sommertid"}\r
@@ -1736,7 +1736,7 @@ da{
             ls{"Nauru-tid"}\r
         }\r
         "meta:Nepal"{\r
-            ls{"Nepal-tid"}\r
+            ls{"Nepalesisk tid"}\r
         }\r
         "meta:New_Caledonia"{\r
             ld{"Ny Kaledonien-sommertid"}\r
@@ -1744,9 +1744,9 @@ da{
             ls{"Ny Kaledonien-normaltid"}\r
         }\r
         "meta:New_Zealand"{\r
-            ld{"New Zealand-sommertid"}\r
-            lg{"New Zealand-tid"}\r
-            ls{"New Zealand-normaltid"}\r
+            ld{"Newzealandsk sommertid"}\r
+            lg{"Newzealandsk tid"}\r
+            ls{"Newzealandsk normaltid"}\r
         }\r
         "meta:Newfoundland"{\r
             ld{"Newfoundlandsk sommertid"}\r
@@ -1778,9 +1778,9 @@ da{
             ls{"Omsk-normaltid"}\r
         }\r
         "meta:Pakistan"{\r
-            ld{"Pakistan-sommertid"}\r
-            lg{"Pakistan-tid"}\r
-            ls{"Pakistan-normaltid"}\r
+            ld{"Pakistansk sommertid"}\r
+            lg{"Pakistansk tid"}\r
+            ls{"Pakistansk normaltid"}\r
         }\r
         "meta:Palau"{\r
             ls{"Palau-normaltid"}\r
@@ -1799,9 +1799,9 @@ da{
             ls{"Peruviansk normaltid"}\r
         }\r
         "meta:Philippines"{\r
-            ld{"Filippinerne-sommertid"}\r
+            ld{"Filippinsk sommertid"}\r
             lg{"Filippinsk tid"}\r
-            ls{"Filippinerne-normaltid"}\r
+            ls{"Filippinsk normaltid"}\r
         }\r
         "meta:Phoenix_Islands"{\r
             ls{"Phoenixøen-tid"}\r
@@ -1842,9 +1842,9 @@ da{
             ls{"Samara-normaltid"}\r
         }\r
         "meta:Samoa"{\r
-            ld{"Samoa-sommertid"}\r
-            lg{"Samoa-tid"}\r
-            ls{"Samoa-normaltid"}\r
+            ld{"Samoansk sommertid"}\r
+            lg{"Samoansk tid"}\r
+            ls{"Samoansk normaltid"}\r
         }\r
         "meta:Seychelles"{\r
             ls{"Seychellisk tid"}\r
@@ -1879,9 +1879,9 @@ da{
             ls{"Tokelau-tid"}\r
         }\r
         "meta:Tonga"{\r
-            ld{"Tonga-sommertid"}\r
-            lg{"Tonga-tid"}\r
-            ls{"Tonga-normaltid"}\r
+            ld{"Tongansk sommertid"}\r
+            lg{"Tongansk tid"}\r
+            ls{"Tongansk normaltid"}\r
         }\r
         "meta:Truk"{\r
             ls{"Chuuk-tid"}\r
@@ -1932,9 +1932,9 @@ da{
             ls{"Wallis og Futuna-tid"}\r
         }\r
         "meta:Yakutsk"{\r
-            ld{"Yakutsk-sommertid"}\r
-            lg{"Yakutsk-tid"}\r
-            ls{"Yakutsk-normaltid"}\r
+            ld{"Jakutsk-sommertid"}\r
+            lg{"Jakutsk-tid"}\r
+            ls{"Jakutsk-normaltid"}\r
         }\r
         "meta:Yekaterinburg"{\r
             ld{"Jekaterinburg-sommertid"}\r
index 23853eb..76b46f3 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 de{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.91"}\r
     zoneStrings{\r
         "Africa:Abidjan"{\r
             ec{"Abidjan"}\r
@@ -685,7 +685,7 @@ de{
             ec{"Bischkek"}\r
         }\r
         "Asia:Brunei"{\r
-            ec{"Brunei"}\r
+            ec{"Brunei Darussalam"}\r
         }\r
         "Asia:Calcutta"{\r
             ec{"Kalkutta"}\r
@@ -769,7 +769,7 @@ de{
             ec{"Kuwait"}\r
         }\r
         "Asia:Macau"{\r
-            ec{"Macao"}\r
+            ec{"Macau"}\r
         }\r
         "Asia:Magadan"{\r
             ec{"Magadan"}\r
@@ -889,7 +889,7 @@ de{
             ec{"Azoren"}\r
         }\r
         "Atlantic:Bermuda"{\r
-            ec{"Bermudas"}\r
+            ec{"Bermuda"}\r
         }\r
         "Atlantic:Canary"{\r
             ec{"Kanaren"}\r
@@ -1438,7 +1438,7 @@ de{
             ls{"Brasília-Normalzeit"}\r
         }\r
         "meta:Brunei"{\r
-            ls{"Brunei-Zeit"}\r
+            ls{"Brunei-Darussalam-Zeit"}\r
         }\r
         "meta:Cape_Verde"{\r
             ld{"Cabo-Verde-Sommerzeit"}\r
@@ -1810,9 +1810,9 @@ de{
             ls{"Phoenixinseln-Zeit"}\r
         }\r
         "meta:Pierre_Miquelon"{\r
-            ld{"Saint-Pierre-und-Miquelon-Sommerzeit"}\r
-            lg{"Saint-Pierre-und-Miquelon-Zeit"}\r
-            ls{"Saint-Pierre-und-Miquelon-Normalzeit"}\r
+            ld{"St.-Pierre-und-Miquelon-Sommerzeit"}\r
+            lg{"St.-Pierre-und-Miquelon-Zeit"}\r
+            ls{"St.-Pierre-und-Miquelon-Normalzeit"}\r
         }\r
         "meta:Pitcairn"{\r
             ls{"Pitcairninseln-Zeit"}\r
@@ -1856,7 +1856,7 @@ de{
             ls{"Singapur-Zeit"}\r
         }\r
         "meta:Solomon"{\r
-            ls{"Salomoninseln-Zeit"}\r
+            ls{"Salomonen-Zeit"}\r
         }\r
         "meta:South_Georgia"{\r
             ls{"Südgeorgische Zeit"}\r
index b7a9293..97f990f 100644 (file)
@@ -1,10 +1,22 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 de_CH{\r
-    Version{"2.1.39.37"}\r
+    Version{"2.1.44.50"}\r
     zoneStrings{\r
+        "Asia:Brunei"{\r
+            ec{"Brunei"}\r
+        }\r
+        "Asia:Macau"{\r
+            ec{"Macao"}\r
+        }\r
         "Europe:Saratov"{\r
             ec{"Saratov"}\r
         }\r
+        "meta:Brunei"{\r
+            ls{"Brunei-Zeit"}\r
+        }\r
+        "meta:Solomon"{\r
+            ls{"Salomoninseln-Zeit"}\r
+        }\r
     }\r
 }\r
index 3ec9846..f70d219 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 dsb{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.41.34"}\r
     zoneStrings{\r
         "Africa:Accra"{\r
             ec{"Akkra"}\r
index 2442057..67015f7 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 dz{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.41.34"}\r
     zoneStrings{\r
         "Africa:Cairo"{\r
             ec{"ཀཱའི་རོ"}\r
index 48d6752..1aae561 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 ee{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.88"}\r
     zoneStrings{\r
         "Africa:Abidjan"{\r
             ec{"Abidjan"}\r
index 9ec99ac..e67a1e2 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 el{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.65"}\r
     zoneStrings{\r
         "Africa:Abidjan"{\r
             ec{"Αμπιτζάν"}\r
@@ -880,7 +880,7 @@ el{
             ec{"Γιακούτσκ"}\r
         }\r
         "Asia:Yekaterinburg"{\r
-            ec{"Î\91ικαÏ\84εÏ\81ίνμÏ\80οÏ\85Ï\81γκ"}\r
+            ec{"Î\91ικαÏ\84εÏ\81ινοÏ\8dÏ\80ολη"}\r
         }\r
         "Asia:Yerevan"{\r
             ec{"Ερεβάν"}\r
@@ -913,7 +913,7 @@ el{
             ec{"Αγ. Ελένη"}\r
         }\r
         "Atlantic:Stanley"{\r
-            ec{"ΣÏ\84άνλεÏ\8b"}\r
+            ec{"ΣÏ\84άνλεÏ\8a"}\r
         }\r
         "Australia:Adelaide"{\r
             ec{"Αδελαΐδα"}\r
@@ -1287,7 +1287,7 @@ el{
             ec{"Γουέικ"}\r
         }\r
         "Pacific:Wallis"{\r
-            ec{"Î\9fυάλις"}\r
+            ec{"Î\93ουάλις"}\r
         }\r
         "meta:Afghanistan"{\r
             ls{"Ώρα Αφγανιστάν"}\r
index a1c863d..a2ba40e 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 en{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.91"}\r
     zoneStrings{\r
         "Africa:Sao_Tome"{\r
             ec{"São Tomé"}\r
index b1b8cde..c66c2b9 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 en_001{\r
-    Version{"2.1.38.69"}\r
+    Version{"2.1.44.18"}\r
     zoneStrings{\r
         "Pacific:Honolulu"{\r
             sd{"∅∅∅"}\r
index b1bf79f..eb98843 100644 (file)
@@ -2,7 +2,7 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 en_AU{\r
     %%Parent{"en_001"}\r
-    Version{"2.1.38.73"}\r
+    Version{"2.1.44.18"}\r
     zoneStrings{\r
         "America:St_Barthelemy"{\r
             ec{"St Barthélemy"}\r
@@ -57,6 +57,14 @@ en_AU{
             lg{"Cook Island Time"}\r
             ls{"Cook Island Standard Time"}\r
         }\r
+        "meta:Iran"{\r
+            lg{"Iran Time"}\r
+            ls{"Iran Standard Time"}\r
+        }\r
+        "meta:Israel"{\r
+            lg{"Israel Time"}\r
+            ls{"Israel Standard Time"}\r
+        }\r
         "meta:Japan"{\r
             ld{"Japan Summer Time"}\r
             lg{"Japan Time"}\r
index 79bbbec..c9f5e1b 100644 (file)
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 en_BE{\r
     %%Parent{"en_001"}\r
-    Version{"2.1.38.69"}\r
+    Version{"2.1.44.18"}\r
 }\r
index 8d7f40e..6cfd1ee 100644 (file)
@@ -2,7 +2,7 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 en_CA{\r
     %%Parent{"en_001"}\r
-    Version{"2.1.38.73"}\r
+    Version{"2.1.44.88"}\r
     zoneStrings{\r
         "Asia:Rangoon"{\r
             ec{"Rangoon"}\r
index fc277f3..f0570ae 100644 (file)
@@ -2,7 +2,7 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 en_GB{\r
     %%Parent{"en_001"}\r
-    Version{"2.1.38.73"}\r
+    Version{"2.1.44.18"}\r
     zoneStrings{\r
         "America:St_Barthelemy"{\r
             ec{"St Barthélemy"}\r
@@ -22,22 +22,12 @@ en_GB{
         "America:St_Vincent"{\r
             ec{"St Vincent"}\r
         }\r
-        "Asia:Rangoon"{\r
-            ec{"Rangoon"}\r
-        }\r
         "Atlantic:St_Helena"{\r
             ec{"St Helena"}\r
         }\r
         "Europe:London"{\r
             sd{"BST"}\r
         }\r
-        "Pacific:Honolulu"{\r
-            ec{"Honolulu"}\r
-        }\r
-        "meta:Australia_Central"{\r
-            lg{"Central Australia Time"}\r
-            ls{"Australian Central Standard Time"}\r
-        }\r
         "meta:Europe_Central"{\r
             sd{"CEST"}\r
             sg{"CET"}\r
@@ -53,14 +43,6 @@ en_GB{
             sg{"WET"}\r
             ss{"WET"}\r
         }\r
-        "meta:Kyrgystan"{\r
-            ls{"Kyrgystan Time"}\r
-        }\r
-        "meta:Mongolia"{\r
-            ld{"Ulan Bator Summer Time"}\r
-            lg{"Ulan Bator Time"}\r
-            ls{"Ulan Bator Standard Time"}\r
-        }\r
         "meta:Pierre_Miquelon"{\r
             ld{"St Pierre & Miquelon Daylight Time"}\r
             lg{"St Pierre & Miquelon Time"}\r
index 3843077..5524968 100644 (file)
@@ -2,7 +2,7 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 en_HK{\r
     %%Parent{"en_001"}\r
-    Version{"2.1.38.69"}\r
+    Version{"2.1.43.65"}\r
     zoneStrings{\r
         "meta:Hong_Kong"{\r
             sd{"HKST"}\r
index e235a2a..20a642a 100644 (file)
@@ -2,7 +2,7 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 en_IE{\r
     %%Parent{"en_001"}\r
-    Version{"2.1.38.69"}\r
+    Version{"2.1.44.18"}\r
     zoneStrings{\r
         "Europe:Dublin"{\r
             sd{"IST"}\r
index 0958316..dd4c834 100644 (file)
@@ -2,7 +2,7 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 en_IN{\r
     %%Parent{"en_001"}\r
-    Version{"2.1.38.73"}\r
+    Version{"2.1.44.18"}\r
     zoneStrings{\r
         "Asia:Rangoon"{\r
             ec{"Rangoon"}\r
index 47beda6..2752731 100644 (file)
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 en_JM{\r
     %%Parent{"en_001"}\r
-    Version{"2.1.38.69"}\r
+    Version{"2.1.44.18"}\r
 }\r
index b3b16ea..ca48d44 100644 (file)
@@ -2,7 +2,7 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 en_NZ{\r
     %%Parent{"en_001"}\r
-    Version{"2.1.38.73"}\r
+    Version{"2.1.44.88"}\r
     zoneStrings{\r
         "meta:Australia_Central"{\r
             sd{"ACDT"}\r
index 2c0834d..41bdece 100644 (file)
@@ -2,7 +2,7 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 en_ZW{\r
     %%Parent{"en_001"}\r
-    Version{"2.1.38.69"}\r
+    Version{"2.1.44.18"}\r
     zoneStrings{\r
         "meta:Africa_Central"{\r
             ss{"CAT"}\r
index 6feb627..3283da5 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 es{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.88"}\r
     zoneStrings{\r
         "Africa:Abidjan"{\r
             ec{"Abiyán"}\r
index fb4fe22..c2fc028 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 es_419{\r
-    Version{"2.1.38.39"}\r
+    Version{"2.1.43.65"}\r
     zoneStrings{\r
         "Africa:Accra"{\r
             ec{"Accra"}\r
@@ -9,6 +9,12 @@ es_419{
         "America:Fort_Nelson"{\r
             ec{"Fuerte Nelson"}\r
         }\r
+        "America:Nassau"{\r
+            ec{"Nasáu"}\r
+        }\r
+        "America:Sao_Paulo"{\r
+            ec{"San Pablo"}\r
+        }\r
         "America:St_Thomas"{\r
             ec{"Santo Tomás"}\r
         }\r
@@ -25,9 +31,12 @@ es_419{
             ec{"Isla Wake"}\r
         }\r
         "meta:America_Mountain"{\r
-            ld{"hora de verano de las Montañas"}\r
-            lg{"hora de las Montañas"}\r
-            ls{"hora estándar de las Montañas"}\r
+            ld{"hora de verano de la montaña"}\r
+            lg{"hora de la montaña"}\r
+            ls{"hora estándar de la montaña"}\r
+        }\r
+        "meta:Cocos"{\r
+            ls{"hora de Islas Cocos"}\r
         }\r
         "meta:Cook"{\r
             ld{"hora de verano media de las islas Cook"}\r
@@ -80,12 +89,21 @@ es_419{
         "meta:Macquarie"{\r
             ls{"hora de la Isla Macquarie"}\r
         }\r
+        "meta:Marshall_Islands"{\r
+            ls{"hora de Islas Marshall"}\r
+        }\r
         "meta:Norfolk"{\r
             ls{"hora de la Isla Norfolk"}\r
         }\r
         "meta:Pyongyang"{\r
             ls{"hora de Pionyang"}\r
         }\r
+        "meta:Solomon"{\r
+            ls{"hora de Islas Salomón"}\r
+        }\r
+        "meta:Wake"{\r
+            ls{"hora de Isla Wake"}\r
+        }\r
         regionFormatDaylight{"hora de verano de {0}"}\r
         regionFormatStandard{"hora estándar de {0}"}\r
     }\r
index ef78a93..1b7bab9 100644 (file)
@@ -2,7 +2,7 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 es_AR{\r
     %%Parent{"es_419"}\r
-    Version{"2.1.38.39"}\r
+    Version{"2.1.43.65"}\r
     zoneStrings{\r
         "meta:Argentina"{\r
             sd{"ARST"}\r
index 6cb3849..f169792 100644 (file)
@@ -2,7 +2,7 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 es_CO{\r
     %%Parent{"es_419"}\r
-    Version{"2.1.38.39"}\r
+    Version{"2.1.43.65"}\r
     zoneStrings{\r
         "meta:Colombia"{\r
             sd{"COST"}\r
index b247e1c..e204d11 100644 (file)
@@ -2,7 +2,7 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 es_MX{\r
     %%Parent{"es_419"}\r
-    Version{"2.1.38.73"}\r
+    Version{"2.1.44.5"}\r
     zoneStrings{\r
         "Africa:Accra"{\r
             ec{"Acra"}\r
@@ -37,6 +37,12 @@ es_MX{
         "Asia:Almaty"{\r
             ec{"Almatý"}\r
         }\r
+        "Asia:Aqtobe"{\r
+            ec{"Aktobé"}\r
+        }\r
+        "Asia:Atyrau"{\r
+            ec{"Atirau"}\r
+        }\r
         "Asia:Dushanbe"{\r
             ec{"Dusambé"}\r
         }\r
@@ -46,9 +52,6 @@ es_MX{
         "Asia:Qatar"{\r
             ec{"Qatar"}\r
         }\r
-        "Asia:Rangoon"{\r
-            ec{"Yangón (Rangún)"}\r
-        }\r
         "Etc:UTC"{\r
             ls{"Tiempo Universal Coordinado"}\r
         }\r
@@ -61,11 +64,6 @@ es_MX{
         "Pacific:Wake"{\r
             ec{"Wake"}\r
         }\r
-        "meta:America_Mountain"{\r
-            ld{"hora de verano de las Montañas Rocosas"}\r
-            lg{"hora de las Montañas Rocosas"}\r
-            ls{"hora estándar de las Montañas Rocosas"}\r
-        }\r
         "meta:Apia"{\r
             ld{"hora de verano de Apia"}\r
             lg{"hora de Apia"}\r
@@ -88,7 +86,7 @@ es_MX{
         }\r
         "meta:Easter"{\r
             ld{"hora de verano de la isla de Pascua"}\r
-            lg{"hora de la isla de Pascua"}\r
+            lg{"hora de Isla de Pascua"}\r
             ls{"hora estándar de la isla de Pascua"}\r
         }\r
         "meta:Europe_Eastern"{\r
@@ -105,12 +103,12 @@ es_MX{
             ls{"hora estándar de Europa occidental"}\r
         }\r
         "meta:Falkland"{\r
-            ld{"hora de verano de las islas Malvinas"}\r
-            lg{"hora de las islas Malvinas"}\r
-            ls{"hora estándar de las islas Malvinas"}\r
+            ld{"hora de verano de Islas Malvinas"}\r
+            lg{"hora de Islas Malvinas"}\r
+            ls{"hora estándar de Islas Malvinas"}\r
         }\r
         "meta:Gilbert_Islands"{\r
-            ls{"hora de las islas Gilbert"}\r
+            ls{"hora de las Islas Gilbert"}\r
         }\r
         "meta:Irkutsk"{\r
             ld{"hora de verano de Irkutsh"}\r
@@ -123,9 +121,6 @@ es_MX{
         "meta:Marshall_Islands"{\r
             ls{"hora de las Islas Marshall"}\r
         }\r
-        "meta:Myanmar"{\r
-            ls{"hora de Myanmar (Birmania)"}\r
-        }\r
         "meta:Norfolk"{\r
             ls{"hora de la isla Norfolk"}\r
         }\r
@@ -136,7 +131,7 @@ es_MX{
             ls{"hora de las Islas Salomón"}\r
         }\r
         "meta:Wake"{\r
-            ls{"hora de la isla Wake"}\r
+            ls{"hora de la Isla Wake"}\r
         }\r
     }\r
 }\r
index b2ab967..02c7041 100644 (file)
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 es_PY{\r
     %%Parent{"es_419"}\r
-    Version{"2.1.38.39"}\r
+    Version{"2.1.43.65"}\r
 }\r
index 1830ba0..2d6e983 100644 (file)
@@ -2,7 +2,7 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 es_US{\r
     %%Parent{"es_419"}\r
-    Version{"2.1.38.73"}\r
+    Version{"2.1.43.65"}\r
     zoneStrings{\r
         "Africa:Accra"{\r
             ec{"Acra"}\r
@@ -25,9 +25,6 @@ es_US{
         "Asia:Dushanbe"{\r
             ec{"Dusambé"}\r
         }\r
-        "Asia:Rangoon"{\r
-            ec{"Yangón (Rangún)"}\r
-        }\r
         "Etc:UTC"{\r
             ls{"hora universal coordinada"}\r
         }\r
@@ -103,6 +100,9 @@ es_US{
             lg{"hora de Europa oriental"}\r
             ls{"hora estándar de Europa oriental"}\r
         }\r
+        "meta:Europe_Further_Eastern"{\r
+            ls{"hora del extremo oriental de Europa"}\r
+        }\r
         "meta:Europe_Western"{\r
             ld{"hora de verano de Europa occidental"}\r
             lg{"hora de Europa occidental"}\r
@@ -133,9 +133,6 @@ es_US{
         "meta:Marshall_Islands"{\r
             ls{"hora de las Islas Marshall"}\r
         }\r
-        "meta:Myanmar"{\r
-            ls{"hora de Myanmar (Birmania)"}\r
-        }\r
         "meta:Norfolk"{\r
             ls{"hora de la isla Norfolk"}\r
         }\r
index f581281..4b3293d 100644 (file)
@@ -2,7 +2,7 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 es_UY{\r
     %%Parent{"es_419"}\r
-    Version{"2.1.38.39"}\r
+    Version{"2.1.44.79"}\r
     zoneStrings{\r
         "meta:Uruguay"{\r
             sd{"UYST"}\r
index a6d0142..0d6a248 100644 (file)
@@ -2,7 +2,7 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 es_VE{\r
     %%Parent{"es_419"}\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.41.45"}\r
     zoneStrings{\r
         "meta:Venezuela"{\r
             ss{"VET"}\r
index 96ccfd3..a1577d3 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 et{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.91"}\r
     zoneStrings{\r
         "Africa:Abidjan"{\r
             ec{"Abidjan"}\r
@@ -1931,8 +1931,8 @@ et{
             ls{"Jakutski standardaeg"}\r
         }\r
         "meta:Yekaterinburg"{\r
-            ld{"Jakaterinburgi suveaeg"}\r
-            lg{"Jakaterinburgi aeg"}\r
+            ld{"Jekaterinburgi suveaeg"}\r
+            lg{"Jekaterinburgi aeg"}\r
             ls{"Jekaterinburgi standardaeg"}\r
         }\r
         fallbackFormat{"{1} ({0})"}\r
index 6fbb557..7833610 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 eu{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.65"}\r
     zoneStrings{\r
         "Africa:Abidjan"{\r
             ec{"Abidjan"}\r
index 3ebfa55..06c7810 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 fa{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.65"}\r
     zoneStrings{\r
         "Africa:Abidjan"{\r
             ec{"آبیجان"}\r
index 23d9536..b8a39d4 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 fi{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.91"}\r
     zoneStrings{\r
         "Africa:Abidjan"{\r
             ec{"Abidjan"}\r
index 5f2697e..3c2ab5e 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 fil{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.91"}\r
     zoneStrings{\r
         "Africa:Abidjan"{\r
             ec{"Abidjan"}\r
index 12be13e..86daf76 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 fo{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.41.34"}\r
     zoneStrings{\r
         "Africa:Abidjan"{\r
             ec{"Abidjan"}\r
index 8d507a5..9c75c70 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 fr{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.91"}\r
     zoneStrings{\r
         "Africa:Abidjan"{\r
             ec{"Abidjan"}\r
index b3980fb..69edabd 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 fr_CA{\r
-    Version{"2.1.38.73"}\r
+    Version{"2.1.43.65"}\r
     zoneStrings{\r
         "Africa:Ndjamena"{\r
             ec{"Ndjamena"}\r
@@ -33,6 +33,9 @@ fr_CA{
         "America:St_Thomas"{\r
             ec{"Saint Thomas"}\r
         }\r
+        "Asia:Dhaka"{\r
+            ec{"Dacca"}\r
+        }\r
         "Asia:Thimphu"{\r
             ec{"Thimphou"}\r
         }\r
index 79df2f4..b76527e 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 fy{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.41.34"}\r
     zoneStrings{\r
         "Africa:Addis_Ababa"{\r
             ec{"Addis Abeba"}\r
index ae71627..7cfd062 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 ga{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.91"}\r
     zoneStrings{\r
         "Africa:Abidjan"{\r
             ec{"Abidjan"}\r
index 128db89..5c65b74 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 gd{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.91"}\r
     zoneStrings{\r
         "Africa:Abidjan"{\r
             ec{"Abidjan"}\r
@@ -953,6 +953,7 @@ gd{
         }\r
         "Etc:UTC"{\r
             ls{"Àm Uile-choitcheann Co-òrdanaichte"}\r
+            ss{"UTC"}\r
         }\r
         "Etc:Unknown"{\r
             ec{"Baile neo-aithnichte"}\r
index 6313a9d..89bd3df 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 gl{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.94"}\r
     zoneStrings{\r
         "Africa:Abidjan"{\r
             ec{"Abidjan"}\r
@@ -550,7 +550,7 @@ gl{
             ec{"Sitka"}\r
         }\r
         "America:St_Barthelemy"{\r
-            ec{"Saint-Barthélemy"}\r
+            ec{"Saint Barthélemy"}\r
         }\r
         "America:St_Johns"{\r
             ec{"Saint John’s"}\r
@@ -1774,9 +1774,9 @@ gl{
             ls{"Horario das Illas Fénix"}\r
         }\r
         "meta:Pierre_Miquelon"{\r
-            ld{"Horario de verán de Saint-Pierre-et-Miquelon"}\r
-            lg{"Horario de Saint-Pierre-et-Miquelon"}\r
-            ls{"Horario estándar de Saint-Pierre-et-Miquelon"}\r
+            ld{"Horario de verán de Saint Pierre et Miquelon"}\r
+            lg{"Horario de Saint Pierre et Miquelon"}\r
+            ls{"Horario estándar de Saint Pierre et Miquelon"}\r
         }\r
         "meta:Pitcairn"{\r
             ls{"Horario de Pitcairn"}\r
index 7e70d36..01fec92 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 gsw{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.41.34"}\r
     zoneStrings{\r
         "Africa:Accra"{\r
             ec{"Akkra"}\r
index 55be348..e8400b6 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 gu{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.2"}\r
     zoneStrings{\r
         "Africa:Abidjan"{\r
             ec{"આબિદ્જાન"}\r
@@ -1041,7 +1041,7 @@ gu{
             ec{"લક્ઝમબર્ગ"}\r
         }\r
         "Europe:Madrid"{\r
-            ec{"મà«\85ડà«\8dરà«\80ડ"}\r
+            ec{"મà«\87ડà«\8dરિડ"}\r
         }\r
         "Europe:Malta"{\r
             ec{"માલ્ટા"}\r
index d7a0572..dd7d622 100644 (file)
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 ha{\r
-    Version{"2.1.39.11"}\r
+    Version{"2.1.43.2"}\r
 }\r
index 5d8bf73..33c5778 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 haw{\r
-    Version{"2.1.38.69"}\r
+    Version{"2.1.43.94"}\r
     zoneStrings{\r
         "Pacific:Honolulu"{\r
             sd{"HDT"}\r
index a2b1e93..5dad13e 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 he{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.94"}\r
     zoneStrings{\r
         "Africa:Abidjan"{\r
             ec{"אביג׳אן"}\r
@@ -1311,6 +1311,11 @@ he{
             lg{"שעון אלסקה"}\r
             ls{"שעון אלסקה (חורף)"}\r
         }\r
+        "meta:Almaty"{\r
+            ld{"שעון אלמטי (קיץ)"}\r
+            lg{"שעון אלמטי"}\r
+            ls{"שעון אלמטי (חורף)"}\r
+        }\r
         "meta:Amazon"{\r
             ld{"שעון אמזונס (קיץ)"}\r
             lg{"שעון אמזונס"}\r
@@ -1346,6 +1351,16 @@ he{
             lg{"שעון אפיה"}\r
             ls{"שעון אפיה (חורף)"}\r
         }\r
+        "meta:Aqtau"{\r
+            ld{"שעון אקטאו (קיץ)"}\r
+            lg{"שעון אקטאו"}\r
+            ls{"שעון אקטאו (חורף)"}\r
+        }\r
+        "meta:Aqtobe"{\r
+            ld{"שעון אוקטובה (קיץ)"}\r
+            lg{"שעון אקטובה"}\r
+            ls{"שעון אוקטובה (חורף)"}\r
+        }\r
         "meta:Arabian"{\r
             ld{"שעון חצי האי ערב (קיץ)"}\r
             lg{"שעון חצי האי ערב"}\r
@@ -1788,6 +1803,11 @@ he{
         "meta:Pyongyang"{\r
             ls{"שעון פיונגיאנג"}\r
         }\r
+        "meta:Qyzylorda"{\r
+            ld{"שעון קיזילורדה (קיץ)"}\r
+            lg{"שעון קיזילורדה"}\r
+            ls{"שעון קיזילורדה (חורף)"}\r
+        }\r
         "meta:Reunion"{\r
             ls{"שעון ראוניון"}\r
         }\r
index 95eb615..285fbed 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 hi{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.50"}\r
     zoneStrings{\r
         "Africa:Abidjan"{\r
             ec{"अबिदजान"}\r
index 6b4126b..6749f0f 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 hr{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.50"}\r
     zoneStrings{\r
         "Africa:Abidjan"{\r
             ec{"Abidjan"}\r
index 8318836..6e18a8d 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 hsb{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.41.34"}\r
     zoneStrings{\r
         "Africa:Accra"{\r
             ec{"Akkra"}\r
index 5315cae..cc38dc1 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 hu{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.65"}\r
     zoneStrings{\r
         "Africa:Abidjan"{\r
             ec{"Abidjan"}\r
index 27c1aed..c2405e4 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 hy{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.50"}\r
     zoneStrings{\r
         "Africa:Abidjan"{\r
             ec{"Աբիջան"}\r
diff --git a/source/data/zone/ia.txt b/source/data/zone/ia.txt
new file mode 100644 (file)
index 0000000..94960ba
--- /dev/null
@@ -0,0 +1,749 @@
+// © 2016 and later: Unicode, Inc. and others.\r
+// License & terms of use: http://www.unicode.org/copyright.html#License\r
+ia{\r
+    Version{"2.1.44.15"}\r
+    zoneStrings{\r
+        "Africa:Ceuta"{\r
+            ec{"Ceuta"}\r
+        }\r
+        "America:Adak"{\r
+            ec{"Adak"}\r
+        }\r
+        "America:Anchorage"{\r
+            ec{"Anchorage"}\r
+        }\r
+        "America:Anguilla"{\r
+            ec{"Anguilla"}\r
+        }\r
+        "America:Antigua"{\r
+            ec{"Antigua"}\r
+        }\r
+        "America:Aruba"{\r
+            ec{"Aruba"}\r
+        }\r
+        "America:Bahia_Banderas"{\r
+            ec{"Bahia de Banderas"}\r
+        }\r
+        "America:Barbados"{\r
+            ec{"Barbados"}\r
+        }\r
+        "America:Belize"{\r
+            ec{"Belize"}\r
+        }\r
+        "America:Blanc-Sablon"{\r
+            ec{"Blanc-Sablon"}\r
+        }\r
+        "America:Boise"{\r
+            ec{"Boise"}\r
+        }\r
+        "America:Cambridge_Bay"{\r
+            ec{"Cambridge Bay"}\r
+        }\r
+        "America:Cancun"{\r
+            ec{"Cancun"}\r
+        }\r
+        "America:Cayman"{\r
+            ec{"Caiman"}\r
+        }\r
+        "America:Chicago"{\r
+            ec{"Chicago"}\r
+        }\r
+        "America:Chihuahua"{\r
+            ec{"Chihuahua"}\r
+        }\r
+        "America:Coral_Harbour"{\r
+            ec{"Atikokan"}\r
+        }\r
+        "America:Costa_Rica"{\r
+            ec{"Costa Rica"}\r
+        }\r
+        "America:Creston"{\r
+            ec{"Creston"}\r
+        }\r
+        "America:Curacao"{\r
+            ec{"Curaçao"}\r
+        }\r
+        "America:Danmarkshavn"{\r
+            ec{"Danmarkshavn"}\r
+        }\r
+        "America:Dawson"{\r
+            ec{"Dawson"}\r
+        }\r
+        "America:Dawson_Creek"{\r
+            ec{"Dawson Creek"}\r
+        }\r
+        "America:Denver"{\r
+            ec{"Denver"}\r
+        }\r
+        "America:Detroit"{\r
+            ec{"Detroit"}\r
+        }\r
+        "America:Dominica"{\r
+            ec{"Dominica"}\r
+        }\r
+        "America:Edmonton"{\r
+            ec{"Edmonton"}\r
+        }\r
+        "America:El_Salvador"{\r
+            ec{"El Salvador"}\r
+        }\r
+        "America:Fort_Nelson"{\r
+            ec{"Fort Nelson"}\r
+        }\r
+        "America:Glace_Bay"{\r
+            ec{"Glace Bay"}\r
+        }\r
+        "America:Godthab"{\r
+            ec{"Nuuk"}\r
+        }\r
+        "America:Goose_Bay"{\r
+            ec{"Goose Bay"}\r
+        }\r
+        "America:Grand_Turk"{\r
+            ec{"Grand Turk"}\r
+        }\r
+        "America:Grenada"{\r
+            ec{"Grenada"}\r
+        }\r
+        "America:Guadeloupe"{\r
+            ec{"Guadeloupe"}\r
+        }\r
+        "America:Guatemala"{\r
+            ec{"Guatemala"}\r
+        }\r
+        "America:Halifax"{\r
+            ec{"Halifax"}\r
+        }\r
+        "America:Havana"{\r
+            ec{"Havana"}\r
+        }\r
+        "America:Hermosillo"{\r
+            ec{"Hermosillo"}\r
+        }\r
+        "America:Indiana:Knox"{\r
+            ec{"Knox, Indiana"}\r
+        }\r
+        "America:Indiana:Marengo"{\r
+            ec{"Marengo, Indiana"}\r
+        }\r
+        "America:Indiana:Petersburg"{\r
+            ec{"Petersburg, Indiana"}\r
+        }\r
+        "America:Indiana:Tell_City"{\r
+            ec{"Tell City, Indiana"}\r
+        }\r
+        "America:Indiana:Vevay"{\r
+            ec{"Vevay, Indiana"}\r
+        }\r
+        "America:Indiana:Vincennes"{\r
+            ec{"Vincennes, Indiana"}\r
+        }\r
+        "America:Indiana:Winamac"{\r
+            ec{"Winamac, Indiana"}\r
+        }\r
+        "America:Indianapolis"{\r
+            ec{"Indianapolis"}\r
+        }\r
+        "America:Inuvik"{\r
+            ec{"Inuvik"}\r
+        }\r
+        "America:Iqaluit"{\r
+            ec{"Iqaluit"}\r
+        }\r
+        "America:Jamaica"{\r
+            ec{"Jamaica"}\r
+        }\r
+        "America:Juneau"{\r
+            ec{"Juneau"}\r
+        }\r
+        "America:Kentucky:Monticello"{\r
+            ec{"Monticello, Kentucky"}\r
+        }\r
+        "America:Kralendijk"{\r
+            ec{"Kralendijk"}\r
+        }\r
+        "America:Los_Angeles"{\r
+            ec{"Los Angeles"}\r
+        }\r
+        "America:Louisville"{\r
+            ec{"Louisville"}\r
+        }\r
+        "America:Lower_Princes"{\r
+            ec{"Lower Prince’s Quarter"}\r
+        }\r
+        "America:Managua"{\r
+            ec{"Managua"}\r
+        }\r
+        "America:Marigot"{\r
+            ec{"Marigot"}\r
+        }\r
+        "America:Martinique"{\r
+            ec{"Martinica"}\r
+        }\r
+        "America:Matamoros"{\r
+            ec{"Matamoros"}\r
+        }\r
+        "America:Mazatlan"{\r
+            ec{"Mazatlan"}\r
+        }\r
+        "America:Menominee"{\r
+            ec{"Menominee"}\r
+        }\r
+        "America:Merida"{\r
+            ec{"Merida"}\r
+        }\r
+        "America:Metlakatla"{\r
+            ec{"Metlakatla"}\r
+        }\r
+        "America:Mexico_City"{\r
+            ec{"Citate de Mexico"}\r
+        }\r
+        "America:Miquelon"{\r
+            ec{"Miquelon"}\r
+        }\r
+        "America:Moncton"{\r
+            ec{"Moncton"}\r
+        }\r
+        "America:Monterrey"{\r
+            ec{"Monterrey"}\r
+        }\r
+        "America:Montserrat"{\r
+            ec{"Montserrat"}\r
+        }\r
+        "America:Nassau"{\r
+            ec{"Nassau"}\r
+        }\r
+        "America:New_York"{\r
+            ec{"Nove York"}\r
+        }\r
+        "America:Nipigon"{\r
+            ec{"Nipigon"}\r
+        }\r
+        "America:Nome"{\r
+            ec{"Nome"}\r
+        }\r
+        "America:North_Dakota:Beulah"{\r
+            ec{"Beulah, Dakota del Nord"}\r
+        }\r
+        "America:North_Dakota:Center"{\r
+            ec{"Center, Dakota del Nord"}\r
+        }\r
+        "America:North_Dakota:New_Salem"{\r
+            ec{"New Salem, Dakota del Nord"}\r
+        }\r
+        "America:Ojinaga"{\r
+            ec{"Ojinaga"}\r
+        }\r
+        "America:Panama"{\r
+            ec{"Panama"}\r
+        }\r
+        "America:Pangnirtung"{\r
+            ec{"Pangnirtung"}\r
+        }\r
+        "America:Phoenix"{\r
+            ec{"Phoenix"}\r
+        }\r
+        "America:Port-au-Prince"{\r
+            ec{"Port-au-Prince"}\r
+        }\r
+        "America:Port_of_Spain"{\r
+            ec{"Port of Spain"}\r
+        }\r
+        "America:Puerto_Rico"{\r
+            ec{"Porto Rico"}\r
+        }\r
+        "America:Rainy_River"{\r
+            ec{"Rainy River"}\r
+        }\r
+        "America:Rankin_Inlet"{\r
+            ec{"Rankin Inlet"}\r
+        }\r
+        "America:Regina"{\r
+            ec{"Regina"}\r
+        }\r
+        "America:Resolute"{\r
+            ec{"Resolute"}\r
+        }\r
+        "America:Santo_Domingo"{\r
+            ec{"Santo Domingo"}\r
+        }\r
+        "America:Scoresbysund"{\r
+            ec{"Ittoqqortoormiit"}\r
+        }\r
+        "America:Sitka"{\r
+            ec{"Sitka"}\r
+        }\r
+        "America:St_Barthelemy"{\r
+            ec{"Sancte Bartholomeo"}\r
+        }\r
+        "America:St_Johns"{\r
+            ec{"Sancte Johannes de Terranova"}\r
+        }\r
+        "America:St_Kitts"{\r
+            ec{"Sancte Christophoro"}\r
+        }\r
+        "America:St_Lucia"{\r
+            ec{"Sancte Lucia"}\r
+        }\r
+        "America:St_Thomas"{\r
+            ec{"Sancte Thomas"}\r
+        }\r
+        "America:St_Vincent"{\r
+            ec{"Sancte Vincente"}\r
+        }\r
+        "America:Swift_Current"{\r
+            ec{"Swift Current"}\r
+        }\r
+        "America:Tegucigalpa"{\r
+            ec{"Tegucigalpa"}\r
+        }\r
+        "America:Thule"{\r
+            ec{"Thule"}\r
+        }\r
+        "America:Thunder_Bay"{\r
+            ec{"Thunder Bay"}\r
+        }\r
+        "America:Tijuana"{\r
+            ec{"Tijuana"}\r
+        }\r
+        "America:Toronto"{\r
+            ec{"Toronto"}\r
+        }\r
+        "America:Tortola"{\r
+            ec{"Tortola"}\r
+        }\r
+        "America:Vancouver"{\r
+            ec{"Vancouver"}\r
+        }\r
+        "America:Whitehorse"{\r
+            ec{"Whitehorse"}\r
+        }\r
+        "America:Winnipeg"{\r
+            ec{"Winnipeg"}\r
+        }\r
+        "America:Yakutat"{\r
+            ec{"Yakutat"}\r
+        }\r
+        "America:Yellowknife"{\r
+            ec{"Yellowknife"}\r
+        }\r
+        "Arctic:Longyearbyen"{\r
+            ec{"Longyearbyen"}\r
+        }\r
+        "Asia:Anadyr"{\r
+            ec{"Anadyr"}\r
+        }\r
+        "Asia:Barnaul"{\r
+            ec{"Barnaul"}\r
+        }\r
+        "Asia:Chita"{\r
+            ec{"Chita"}\r
+        }\r
+        "Asia:Irkutsk"{\r
+            ec{"Irkutsk"}\r
+        }\r
+        "Asia:Kamchatka"{\r
+            ec{"Kamchatka"}\r
+        }\r
+        "Asia:Khandyga"{\r
+            ec{"Chandyga"}\r
+        }\r
+        "Asia:Krasnoyarsk"{\r
+            ec{"Krasnoyarsk"}\r
+        }\r
+        "Asia:Magadan"{\r
+            ec{"Magadan"}\r
+        }\r
+        "Asia:Novokuznetsk"{\r
+            ec{"Novokuznetsk"}\r
+        }\r
+        "Asia:Novosibirsk"{\r
+            ec{"Novosibirsk"}\r
+        }\r
+        "Asia:Omsk"{\r
+            ec{"Omsk"}\r
+        }\r
+        "Asia:Sakhalin"{\r
+            ec{"Sachalin"}\r
+        }\r
+        "Asia:Srednekolymsk"{\r
+            ec{"Srednekolymsk"}\r
+        }\r
+        "Asia:Tomsk"{\r
+            ec{"Tomsk"}\r
+        }\r
+        "Asia:Ust-Nera"{\r
+            ec{"Ust-Nera"}\r
+        }\r
+        "Asia:Vladivostok"{\r
+            ec{"Vladivostok"}\r
+        }\r
+        "Asia:Yakutsk"{\r
+            ec{"Yakutsk"}\r
+        }\r
+        "Asia:Yekaterinburg"{\r
+            ec{"Ekaterinburg"}\r
+        }\r
+        "Atlantic:Azores"{\r
+            ec{"Azores"}\r
+        }\r
+        "Atlantic:Bermuda"{\r
+            ec{"Bermuda"}\r
+        }\r
+        "Atlantic:Canary"{\r
+            ec{"Canarias"}\r
+        }\r
+        "Atlantic:Faeroe"{\r
+            ec{"Feroe"}\r
+        }\r
+        "Atlantic:Madeira"{\r
+            ec{"Madeira"}\r
+        }\r
+        "Atlantic:Reykjavik"{\r
+            ec{"Reykjavik"}\r
+        }\r
+        "Etc:UTC"{\r
+            ls{"Universal Tempore Coordinate"}\r
+        }\r
+        "Etc:Unknown"{\r
+            ec{"Citate incognite"}\r
+        }\r
+        "Europe:Amsterdam"{\r
+            ec{"Amsterdam"}\r
+        }\r
+        "Europe:Andorra"{\r
+            ec{"Andorra"}\r
+        }\r
+        "Europe:Astrakhan"{\r
+            ec{"Astrakhan"}\r
+        }\r
+        "Europe:Athens"{\r
+            ec{"Athenas"}\r
+        }\r
+        "Europe:Belgrade"{\r
+            ec{"Belgrado"}\r
+        }\r
+        "Europe:Berlin"{\r
+            ec{"Berlin"}\r
+        }\r
+        "Europe:Bratislava"{\r
+            ec{"Bratislava"}\r
+        }\r
+        "Europe:Brussels"{\r
+            ec{"Bruxelles"}\r
+        }\r
+        "Europe:Bucharest"{\r
+            ec{"Bucarest"}\r
+        }\r
+        "Europe:Budapest"{\r
+            ec{"Budapest"}\r
+        }\r
+        "Europe:Busingen"{\r
+            ec{"Büsingen"}\r
+        }\r
+        "Europe:Chisinau"{\r
+            ec{"Chisinau"}\r
+        }\r
+        "Europe:Copenhagen"{\r
+            ec{"Copenhagen"}\r
+        }\r
+        "Europe:Dublin"{\r
+            ec{"Dublin"}\r
+            ld{"Hora estive irlandese"}\r
+        }\r
+        "Europe:Gibraltar"{\r
+            ec{"Gibraltar"}\r
+        }\r
+        "Europe:Guernsey"{\r
+            ec{"Guernsey"}\r
+        }\r
+        "Europe:Helsinki"{\r
+            ec{"Helsinki"}\r
+        }\r
+        "Europe:Isle_of_Man"{\r
+            ec{"Insula de Man"}\r
+        }\r
+        "Europe:Jersey"{\r
+            ec{"Jersey"}\r
+        }\r
+        "Europe:Kaliningrad"{\r
+            ec{"Kaliningrad"}\r
+        }\r
+        "Europe:Kiev"{\r
+            ec{"Kiev"}\r
+        }\r
+        "Europe:Kirov"{\r
+            ec{"Kirov"}\r
+        }\r
+        "Europe:Lisbon"{\r
+            ec{"Lisbona"}\r
+        }\r
+        "Europe:Ljubljana"{\r
+            ec{"Ljubljana"}\r
+        }\r
+        "Europe:London"{\r
+            ec{"London"}\r
+            ld{"Hora estive britannic"}\r
+        }\r
+        "Europe:Luxembourg"{\r
+            ec{"Luxemburg"}\r
+        }\r
+        "Europe:Madrid"{\r
+            ec{"Madrid"}\r
+        }\r
+        "Europe:Malta"{\r
+            ec{"Malta"}\r
+        }\r
+        "Europe:Mariehamn"{\r
+            ec{"Mariehamn"}\r
+        }\r
+        "Europe:Minsk"{\r
+            ec{"Minsk"}\r
+        }\r
+        "Europe:Monaco"{\r
+            ec{"Monaco"}\r
+        }\r
+        "Europe:Moscow"{\r
+            ec{"Moscova"}\r
+        }\r
+        "Europe:Oslo"{\r
+            ec{"Oslo"}\r
+        }\r
+        "Europe:Paris"{\r
+            ec{"Paris"}\r
+        }\r
+        "Europe:Podgorica"{\r
+            ec{"Podgorica"}\r
+        }\r
+        "Europe:Prague"{\r
+            ec{"Praga"}\r
+        }\r
+        "Europe:Riga"{\r
+            ec{"Riga"}\r
+        }\r
+        "Europe:Rome"{\r
+            ec{"Roma"}\r
+        }\r
+        "Europe:Samara"{\r
+            ec{"Samara"}\r
+        }\r
+        "Europe:San_Marino"{\r
+            ec{"San Marino"}\r
+        }\r
+        "Europe:Sarajevo"{\r
+            ec{"Sarajevo"}\r
+        }\r
+        "Europe:Saratov"{\r
+            ec{"Saratov"}\r
+        }\r
+        "Europe:Simferopol"{\r
+            ec{"Simferopol"}\r
+        }\r
+        "Europe:Skopje"{\r
+            ec{"Skopje"}\r
+        }\r
+        "Europe:Sofia"{\r
+            ec{"Sofia"}\r
+        }\r
+        "Europe:Stockholm"{\r
+            ec{"Stockholm"}\r
+        }\r
+        "Europe:Tallinn"{\r
+            ec{"Tallinn"}\r
+        }\r
+        "Europe:Tirane"{\r
+            ec{"Tirana"}\r
+        }\r
+        "Europe:Ulyanovsk"{\r
+            ec{"Ulyanovsk"}\r
+        }\r
+        "Europe:Uzhgorod"{\r
+            ec{"Uzhgorod"}\r
+        }\r
+        "Europe:Vaduz"{\r
+            ec{"Vaduz"}\r
+        }\r
+        "Europe:Vatican"{\r
+            ec{"Vaticano"}\r
+        }\r
+        "Europe:Vienna"{\r
+            ec{"Vienna"}\r
+        }\r
+        "Europe:Vilnius"{\r
+            ec{"Vilnius"}\r
+        }\r
+        "Europe:Volgograd"{\r
+            ec{"Volgograd"}\r
+        }\r
+        "Europe:Warsaw"{\r
+            ec{"Varsovia"}\r
+        }\r
+        "Europe:Zagreb"{\r
+            ec{"Zagreb"}\r
+        }\r
+        "Europe:Zaporozhye"{\r
+            ec{"Zaporozhye"}\r
+        }\r
+        "Europe:Zurich"{\r
+            ec{"Zurich"}\r
+        }\r
+        "meta:Alaska"{\r
+            ld{"hora estive de Alaska"}\r
+            lg{"hora de Alaska"}\r
+            ls{"hora normal de Alaska"}\r
+        }\r
+        "meta:America_Central"{\r
+            ld{"hora estive central"}\r
+            lg{"hora central"}\r
+            ls{"hora normal central"}\r
+        }\r
+        "meta:America_Eastern"{\r
+            ld{"hora estive del est"}\r
+            lg{"hora del est"}\r
+            ls{"hora normal del est"}\r
+        }\r
+        "meta:America_Mountain"{\r
+            ld{"hora estive del montanias"}\r
+            lg{"hora del montanias"}\r
+            ls{"hora normal del montanias"}\r
+        }\r
+        "meta:America_Pacific"{\r
+            ld{"hora estive pacific"}\r
+            lg{"hora pacific"}\r
+            ls{"hora normal pacific"}\r
+        }\r
+        "meta:Atlantic"{\r
+            ld{"hora estive atlantic"}\r
+            lg{"hora atlantic"}\r
+            ls{"hora normal atlantic"}\r
+        }\r
+        "meta:Azores"{\r
+            ld{"hora estive del Azores"}\r
+            lg{"hora del Azores"}\r
+            ls{"hora normal del Azores"}\r
+        }\r
+        "meta:Cuba"{\r
+            ld{"hora estive de Cuba"}\r
+            lg{"hora de Cuba"}\r
+            ls{"hora normal de Cuba"}\r
+        }\r
+        "meta:Europe_Central"{\r
+            ld{"hora estive de Europa central"}\r
+            lg{"hora de Europa central"}\r
+            ls{"hora normal de Europa central"}\r
+        }\r
+        "meta:Europe_Eastern"{\r
+            ld{"hora estive de Europa oriental"}\r
+            lg{"hora de Europa oriental"}\r
+            ls{"hora normal de Europa oriental"}\r
+        }\r
+        "meta:Europe_Further_Eastern"{\r
+            ls{"hora de Europa ultra-oriental"}\r
+        }\r
+        "meta:Europe_Western"{\r
+            ld{"hora estive de Europa occidental"}\r
+            lg{"hora de Europa occidental"}\r
+            ls{"hora normal de Europa occidental"}\r
+        }\r
+        "meta:GMT"{\r
+            ls{"hora medie de Greenwich"}\r
+        }\r
+        "meta:Greenland_Eastern"{\r
+            ld{"hora estive de Groenlandia oriental"}\r
+            lg{"hora de Groenlandia oriental"}\r
+            ls{"hora normal de Groenlandia oriental"}\r
+        }\r
+        "meta:Greenland_Western"{\r
+            ld{"hora estive de Groenlandia occidental"}\r
+            lg{"hora de Groenlandia occidental"}\r
+            ls{"hora normal de Groenlandia occidental"}\r
+        }\r
+        "meta:Hawaii_Aleutian"{\r
+            ld{"hora estive de Hawaii-Aleutianas"}\r
+            lg{"hora de Hawaii-Aleutianas"}\r
+            ls{"hora normal de Hawaii-Aleutianas"}\r
+        }\r
+        "meta:Irkutsk"{\r
+            ld{"hora estive de Irkutsk"}\r
+            lg{"hora de Irkutsk"}\r
+            ls{"hora normal de Irkutsk"}\r
+        }\r
+        "meta:Krasnoyarsk"{\r
+            ld{"hora estive de Krasnoyarsk"}\r
+            lg{"hora de Krasnoyarsk"}\r
+            ls{"hora normal de Krasnoyarsk"}\r
+        }\r
+        "meta:Magadan"{\r
+            ld{"hora estive de Magadan"}\r
+            lg{"hora de Magadan"}\r
+            ls{"hora normal de Magadan"}\r
+        }\r
+        "meta:Mexico_Northwest"{\r
+            ld{"hora estive del nordwest de Mexico"}\r
+            lg{"hora del nordwest de Mexico"}\r
+            ls{"hora normal del nordwest de Mexico"}\r
+        }\r
+        "meta:Mexico_Pacific"{\r
+            ld{"hora estive del Pacifico mexican"}\r
+            lg{"hora del Pacifico mexican"}\r
+            ls{"hora normal del Pacifico mexican"}\r
+        }\r
+        "meta:Moscow"{\r
+            ld{"hora estive de Moscova"}\r
+            lg{"hora de Moscova"}\r
+            ls{"hora normal de Moscova"}\r
+        }\r
+        "meta:Newfoundland"{\r
+            ld{"hora estive de Terranova"}\r
+            lg{"hora de Terranova"}\r
+            ls{"hora normal de Terranova"}\r
+        }\r
+        "meta:Novosibirsk"{\r
+            ld{"hora estive de Novosibirsk"}\r
+            lg{"hora de Novosibirsk"}\r
+            ls{"hora normal de Novosibirsk"}\r
+        }\r
+        "meta:Omsk"{\r
+            ld{"hora estive de Omsk"}\r
+            lg{"hora de Omsk"}\r
+            ls{"hora normal de Omsk"}\r
+        }\r
+        "meta:Pierre_Miquelon"{\r
+            ld{"hora estive de Saint-Pierre e Miquelon"}\r
+            lg{"hora de Saint-Pierre e Miquelon"}\r
+            ls{"hora normal de Saint-Pierre e Miquelon"}\r
+        }\r
+        "meta:Sakhalin"{\r
+            ld{"hora estive de Sachalin"}\r
+            lg{"hora de Sachalin"}\r
+            ls{"hora normal de Sachalin"}\r
+        }\r
+        "meta:Vladivostok"{\r
+            ld{"hora estive de Vladivostok"}\r
+            lg{"hora de Vladivostok"}\r
+            ls{"hora normal de Vladivostok"}\r
+        }\r
+        "meta:Volgograd"{\r
+            ld{"hora estive de Volgograd"}\r
+            lg{"hora de Volgograd"}\r
+            ls{"hora normal de Volgograd"}\r
+        }\r
+        "meta:Yakutsk"{\r
+            ld{"hora estive de Yakutsk"}\r
+            lg{"hora de Yakutsk"}\r
+            ls{"hora normal de Yakutsk"}\r
+        }\r
+        "meta:Yekaterinburg"{\r
+            ld{"hora estive de Ekaterinburg"}\r
+            lg{"hora de Ekaterinburg"}\r
+            ls{"hora normal de Ekaterinburg"}\r
+        }\r
+        fallbackFormat{"{1} ({0})"}\r
+        gmtFormat{"GMT{0}"}\r
+        gmtZeroFormat{"GMT"}\r
+        hourFormat{"+HH:mm;-HH:mm"}\r
+        regionFormat{"hora de {0}"}\r
+        regionFormatDaylight{"hora estive de {0}"}\r
+        regionFormatStandard{"hora normal de {0}"}\r
+    }\r
+}\r
index e6692fb..9edaa8d 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 id{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.20"}\r
     zoneStrings{\r
         "Africa:Abidjan"{\r
             ec{"Abidjan"}\r
index 4ac2604..bb5bc66 100644 (file)
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 ig{\r
-    Version{"2.1.38.69"}\r
+    Version{"2.1.44.88"}\r
 }\r
index 50136b8..6f99543 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 is{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.91"}\r
     zoneStrings{\r
         "Africa:Abidjan"{\r
             ec{"Abidjan"}\r
index a71248f..3544792 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 it{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.86"}\r
     zoneStrings{\r
         "Africa:Abidjan"{\r
             ec{"Abidjan"}\r
index d6c8505..ca1f986 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 ja{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.91"}\r
     zoneStrings{\r
         "Africa:Abidjan"{\r
             ec{"アビジャン"}\r
@@ -556,7 +556,7 @@ ja{
             ec{"セントジョンズ"}\r
         }\r
         "America:St_Kitts"{\r
-            ec{"ã\82»ã\83³ã\83\88ã\82­ã\83\83ã\83\84"}\r
+            ec{"ã\82»ã\83³ã\83\88ã\82¯ã\83ªã\82¹ã\83\88ã\83\95ã\82¡ã\83¼"}\r
         }\r
         "America:St_Lucia"{\r
             ec{"セントルシア"}\r
@@ -1804,9 +1804,9 @@ ja{
             ls{"フェニックス諸島時間"}\r
         }\r
         "meta:Pierre_Miquelon"{\r
-            ld{"サンピエール・ミクロン夏時間"}\r
-            lg{"サンピエール・ミクロン時間"}\r
-            ls{"サンピエール・ミクロン標準時"}\r
+            ld{"サンピエール島・ミクロン島夏時間"}\r
+            lg{"サンピエール島・ミクロン島時間"}\r
+            ls{"サンピエール島・ミクロン島標準時"}\r
         }\r
         "meta:Pitcairn"{\r
             ls{"ピトケアン時間"}\r
diff --git a/source/data/zone/jv.txt b/source/data/zone/jv.txt
new file mode 100644 (file)
index 0000000..3df06fa
--- /dev/null
@@ -0,0 +1,1883 @@
+// © 2016 and later: Unicode, Inc. and others.\r
+// License & terms of use: http://www.unicode.org/copyright.html#License\r
+jv{\r
+    Version{"2.1.44.15"}\r
+    zoneStrings{\r
+        "Africa:Abidjan"{\r
+            ec{"Abidjan"}\r
+        }\r
+        "Africa:Accra"{\r
+            ec{"Accra"}\r
+        }\r
+        "Africa:Addis_Ababa"{\r
+            ec{"Addis Ababa"}\r
+        }\r
+        "Africa:Algiers"{\r
+            ec{"Algiers"}\r
+        }\r
+        "Africa:Asmera"{\r
+            ec{"Asmara"}\r
+        }\r
+        "Africa:Bamako"{\r
+            ec{"Bamako"}\r
+        }\r
+        "Africa:Bangui"{\r
+            ec{"Bangui"}\r
+        }\r
+        "Africa:Banjul"{\r
+            ec{"Banjul"}\r
+        }\r
+        "Africa:Bissau"{\r
+            ec{"Bissau"}\r
+        }\r
+        "Africa:Blantyre"{\r
+            ec{"Blantyre"}\r
+        }\r
+        "Africa:Brazzaville"{\r
+            ec{"Brazzaville"}\r
+        }\r
+        "Africa:Bujumbura"{\r
+            ec{"Bujumbura"}\r
+        }\r
+        "Africa:Cairo"{\r
+            ec{"Kairo"}\r
+        }\r
+        "Africa:Casablanca"{\r
+            ec{"Kasablanka"}\r
+        }\r
+        "Africa:Ceuta"{\r
+            ec{"Ceuta"}\r
+        }\r
+        "Africa:Conakry"{\r
+            ec{"Konakri"}\r
+        }\r
+        "Africa:Dakar"{\r
+            ec{"Dakar"}\r
+        }\r
+        "Africa:Dar_es_Salaam"{\r
+            ec{"Dar es Salaam"}\r
+        }\r
+        "Africa:Djibouti"{\r
+            ec{"Djibouti"}\r
+        }\r
+        "Africa:Douala"{\r
+            ec{"Douala"}\r
+        }\r
+        "Africa:El_Aaiun"{\r
+            ec{"El Aaiun"}\r
+        }\r
+        "Africa:Freetown"{\r
+            ec{"Freetown"}\r
+        }\r
+        "Africa:Gaborone"{\r
+            ec{"Gaborone"}\r
+        }\r
+        "Africa:Harare"{\r
+            ec{"Harare"}\r
+        }\r
+        "Africa:Johannesburg"{\r
+            ec{"Johannesburg"}\r
+        }\r
+        "Africa:Juba"{\r
+            ec{"Juba"}\r
+        }\r
+        "Africa:Kampala"{\r
+            ec{"Kampala"}\r
+        }\r
+        "Africa:Khartoum"{\r
+            ec{"Khartoum"}\r
+        }\r
+        "Africa:Kigali"{\r
+            ec{"Kigali"}\r
+        }\r
+        "Africa:Kinshasa"{\r
+            ec{"Kinshasa"}\r
+        }\r
+        "Africa:Lagos"{\r
+            ec{"Lagos"}\r
+        }\r
+        "Africa:Libreville"{\r
+            ec{"Libreville"}\r
+        }\r
+        "Africa:Lome"{\r
+            ec{"Lome"}\r
+        }\r
+        "Africa:Luanda"{\r
+            ec{"Luanda"}\r
+        }\r
+        "Africa:Lubumbashi"{\r
+            ec{"Lubumbashi"}\r
+        }\r
+        "Africa:Lusaka"{\r
+            ec{"Lusaka"}\r
+        }\r
+        "Africa:Malabo"{\r
+            ec{"Malabo"}\r
+        }\r
+        "Africa:Maputo"{\r
+            ec{"Maputo"}\r
+        }\r
+        "Africa:Maseru"{\r
+            ec{"Maseru"}\r
+        }\r
+        "Africa:Mbabane"{\r
+            ec{"Mbabane"}\r
+        }\r
+        "Africa:Mogadishu"{\r
+            ec{"Mogadishu"}\r
+        }\r
+        "Africa:Monrovia"{\r
+            ec{"Monrovia"}\r
+        }\r
+        "Africa:Nairobi"{\r
+            ec{"Nairobi"}\r
+        }\r
+        "Africa:Ndjamena"{\r
+            ec{"Ndjamena"}\r
+        }\r
+        "Africa:Niamey"{\r
+            ec{"Niamey"}\r
+        }\r
+        "Africa:Nouakchott"{\r
+            ec{"Nouakchott"}\r
+        }\r
+        "Africa:Ouagadougou"{\r
+            ec{"Ouagadougou"}\r
+        }\r
+        "Africa:Porto-Novo"{\r
+            ec{"Porto-Novo"}\r
+        }\r
+        "Africa:Sao_Tome"{\r
+            ec{"Sao Tome"}\r
+        }\r
+        "Africa:Tripoli"{\r
+            ec{"Tripoli"}\r
+        }\r
+        "Africa:Tunis"{\r
+            ec{"Tunis"}\r
+        }\r
+        "Africa:Windhoek"{\r
+            ec{"Windhoek"}\r
+        }\r
+        "America:Adak"{\r
+            ec{"Adak"}\r
+        }\r
+        "America:Anchorage"{\r
+            ec{"Anchorage"}\r
+        }\r
+        "America:Anguilla"{\r
+            ec{"Anguilla"}\r
+        }\r
+        "America:Antigua"{\r
+            ec{"Antigua"}\r
+        }\r
+        "America:Araguaina"{\r
+            ec{"Araguaina"}\r
+        }\r
+        "America:Argentina:La_Rioja"{\r
+            ec{"La Rioja"}\r
+        }\r
+        "America:Argentina:Rio_Gallegos"{\r
+            ec{"Rio Gallegos"}\r
+        }\r
+        "America:Argentina:Salta"{\r
+            ec{"Salta"}\r
+        }\r
+        "America:Argentina:San_Juan"{\r
+            ec{"San Juan"}\r
+        }\r
+        "America:Argentina:San_Luis"{\r
+            ec{"San Luis"}\r
+        }\r
+        "America:Argentina:Tucuman"{\r
+            ec{"Tucuman"}\r
+        }\r
+        "America:Argentina:Ushuaia"{\r
+            ec{"Ushuaia"}\r
+        }\r
+        "America:Aruba"{\r
+            ec{"Aruba"}\r
+        }\r
+        "America:Asuncion"{\r
+            ec{"Asuncion"}\r
+        }\r
+        "America:Bahia"{\r
+            ec{"Bahia"}\r
+        }\r
+        "America:Bahia_Banderas"{\r
+            ec{"Bahia Banderas"}\r
+        }\r
+        "America:Barbados"{\r
+            ec{"Barbados"}\r
+        }\r
+        "America:Belem"{\r
+            ec{"Belem"}\r
+        }\r
+        "America:Belize"{\r
+            ec{"Belise"}\r
+        }\r
+        "America:Blanc-Sablon"{\r
+            ec{"Blanc-Sablon"}\r
+        }\r
+        "America:Boa_Vista"{\r
+            ec{"Boa Vista"}\r
+        }\r
+        "America:Bogota"{\r
+            ec{"Bogota"}\r
+        }\r
+        "America:Boise"{\r
+            ec{"Boise"}\r
+        }\r
+        "America:Buenos_Aires"{\r
+            ec{"Buenos Aires"}\r
+        }\r
+        "America:Cambridge_Bay"{\r
+            ec{"Teluk Cambridge"}\r
+        }\r
+        "America:Campo_Grande"{\r
+            ec{"Kampo Grande"}\r
+        }\r
+        "America:Cancun"{\r
+            ec{"Cancun"}\r
+        }\r
+        "America:Caracas"{\r
+            ec{"Karakas"}\r
+        }\r
+        "America:Catamarca"{\r
+            ec{"Katamarka"}\r
+        }\r
+        "America:Cayenne"{\r
+            ec{"Kayenne"}\r
+        }\r
+        "America:Cayman"{\r
+            ec{"Caiman"}\r
+        }\r
+        "America:Chicago"{\r
+            ec{"Chicago"}\r
+        }\r
+        "America:Chihuahua"{\r
+            ec{"Chihuahua"}\r
+        }\r
+        "America:Coral_Harbour"{\r
+            ec{"Atikokan"}\r
+        }\r
+        "America:Cordoba"{\r
+            ec{"Kordoba"}\r
+        }\r
+        "America:Costa_Rica"{\r
+            ec{"Kosta Rika"}\r
+        }\r
+        "America:Creston"{\r
+            ec{"Creston"}\r
+        }\r
+        "America:Cuiaba"{\r
+            ec{"Kuiaba"}\r
+        }\r
+        "America:Curacao"{\r
+            ec{"Curacao"}\r
+        }\r
+        "America:Danmarkshavn"{\r
+            ec{"Danmarkshavn"}\r
+        }\r
+        "America:Dawson"{\r
+            ec{"Dawson"}\r
+        }\r
+        "America:Dawson_Creek"{\r
+            ec{"Dawson Creek"}\r
+        }\r
+        "America:Denver"{\r
+            ec{"Denver"}\r
+        }\r
+        "America:Detroit"{\r
+            ec{"Detroit"}\r
+        }\r
+        "America:Dominica"{\r
+            ec{"Dominika"}\r
+        }\r
+        "America:Edmonton"{\r
+            ec{"Edmonton"}\r
+        }\r
+        "America:Eirunepe"{\r
+            ec{"Eirunepe"}\r
+        }\r
+        "America:El_Salvador"{\r
+            ec{"El Salvador"}\r
+        }\r
+        "America:Fort_Nelson"{\r
+            ec{"Benteng Nelson"}\r
+        }\r
+        "America:Fortaleza"{\r
+            ec{"Fortaleza"}\r
+        }\r
+        "America:Glace_Bay"{\r
+            ec{"Teluk Glace"}\r
+        }\r
+        "America:Godthab"{\r
+            ec{"Nuuk"}\r
+        }\r
+        "America:Goose_Bay"{\r
+            ec{"Teluk Goose"}\r
+        }\r
+        "America:Grand_Turk"{\r
+            ec{"Grand Turk"}\r
+        }\r
+        "America:Grenada"{\r
+            ec{"Grenada"}\r
+        }\r
+        "America:Guadeloupe"{\r
+            ec{"Guadeloupe"}\r
+        }\r
+        "America:Guatemala"{\r
+            ec{"Guatemala"}\r
+        }\r
+        "America:Guayaquil"{\r
+            ec{"Guayaquil"}\r
+        }\r
+        "America:Guyana"{\r
+            ec{"Guyana"}\r
+        }\r
+        "America:Halifax"{\r
+            ec{"Halifak"}\r
+        }\r
+        "America:Havana"{\r
+            ec{"Havana"}\r
+        }\r
+        "America:Hermosillo"{\r
+            ec{"Hermosillo"}\r
+        }\r
+        "America:Indiana:Knox"{\r
+            ec{"Knox [Indiana]"}\r
+        }\r
+        "America:Indiana:Marengo"{\r
+            ec{"Marengo [Indiana]"}\r
+        }\r
+        "America:Indiana:Petersburg"{\r
+            ec{"Petersburg [Indiana]"}\r
+        }\r
+        "America:Indiana:Tell_City"{\r
+            ec{"Tell City [Indiana]"}\r
+        }\r
+        "America:Indiana:Vevay"{\r
+            ec{"Vevay [Indiana]"}\r
+        }\r
+        "America:Indiana:Vincennes"{\r
+            ec{"Vincennes [Indiana]"}\r
+        }\r
+        "America:Indiana:Winamac"{\r
+            ec{"Winamac [Indiana]"}\r
+        }\r
+        "America:Indianapolis"{\r
+            ec{"Indianapolis"}\r
+        }\r
+        "America:Inuvik"{\r
+            ec{"Inuvik"}\r
+        }\r
+        "America:Iqaluit"{\r
+            ec{"Iqaluit"}\r
+        }\r
+        "America:Jamaica"{\r
+            ec{"Jamaica"}\r
+        }\r
+        "America:Jujuy"{\r
+            ec{"Jujuy"}\r
+        }\r
+        "America:Juneau"{\r
+            ec{"Juneau"}\r
+        }\r
+        "America:Kentucky:Monticello"{\r
+            ec{"Monticello [Kentucky]"}\r
+        }\r
+        "America:Kralendijk"{\r
+            ec{"Kralendijk"}\r
+        }\r
+        "America:La_Paz"{\r
+            ec{"La Paz"}\r
+        }\r
+        "America:Lima"{\r
+            ec{"Lima"}\r
+        }\r
+        "America:Los_Angeles"{\r
+            ec{"Los Angeles"}\r
+        }\r
+        "America:Louisville"{\r
+            ec{"Louisville"}\r
+        }\r
+        "America:Lower_Princes"{\r
+            ec{"Lower Prince’s Quarter"}\r
+        }\r
+        "America:Maceio"{\r
+            ec{"Maceio"}\r
+        }\r
+        "America:Managua"{\r
+            ec{"Managua"}\r
+        }\r
+        "America:Manaus"{\r
+            ec{"Manaus"}\r
+        }\r
+        "America:Marigot"{\r
+            ec{"Marigot"}\r
+        }\r
+        "America:Martinique"{\r
+            ec{"Martinik"}\r
+        }\r
+        "America:Matamoros"{\r
+            ec{"Matamoros"}\r
+        }\r
+        "America:Mazatlan"{\r
+            ec{"Mazatlan"}\r
+        }\r
+        "America:Mendoza"{\r
+            ec{"Mendosa"}\r
+        }\r
+        "America:Menominee"{\r
+            ec{"Menominee"}\r
+        }\r
+        "America:Merida"{\r
+            ec{"Merida"}\r
+        }\r
+        "America:Metlakatla"{\r
+            ec{"Metlakatla"}\r
+        }\r
+        "America:Mexico_City"{\r
+            ec{"Kutho Meksiko"}\r
+        }\r
+        "America:Miquelon"{\r
+            ec{"Miquelon"}\r
+        }\r
+        "America:Moncton"{\r
+            ec{"Moncton"}\r
+        }\r
+        "America:Monterrey"{\r
+            ec{"Monterrey"}\r
+        }\r
+        "America:Montevideo"{\r
+            ec{"Montevideo"}\r
+        }\r
+        "America:Montserrat"{\r
+            ec{"Montserrat"}\r
+        }\r
+        "America:Nassau"{\r
+            ec{"Nassau"}\r
+        }\r
+        "America:New_York"{\r
+            ec{"New York"}\r
+        }\r
+        "America:Nipigon"{\r
+            ec{"Nipigon"}\r
+        }\r
+        "America:Nome"{\r
+            ec{"Nome"}\r
+        }\r
+        "America:Noronha"{\r
+            ec{"Noronha"}\r
+        }\r
+        "America:North_Dakota:Beulah"{\r
+            ec{"Beulah [Dakota Lor]"}\r
+        }\r
+        "America:North_Dakota:Center"{\r
+            ec{"Tengah [Dakota Lor]"}\r
+        }\r
+        "America:North_Dakota:New_Salem"{\r
+            ec{"Salem Anyar [Dakota Lor]"}\r
+        }\r
+        "America:Ojinaga"{\r
+            ec{"Ojinaga"}\r
+        }\r
+        "America:Panama"{\r
+            ec{"Panama"}\r
+        }\r
+        "America:Pangnirtung"{\r
+            ec{"Pangnirtung"}\r
+        }\r
+        "America:Paramaribo"{\r
+            ec{"Paramaribo"}\r
+        }\r
+        "America:Phoenix"{\r
+            ec{"Phoenix"}\r
+        }\r
+        "America:Port-au-Prince"{\r
+            ec{"Port-au-Prince"}\r
+        }\r
+        "America:Port_of_Spain"{\r
+            ec{"Palabuhan Spanyol"}\r
+        }\r
+        "America:Porto_Velho"{\r
+            ec{"Porto Velho"}\r
+        }\r
+        "America:Puerto_Rico"{\r
+            ec{"Puerto Riko"}\r
+        }\r
+        "America:Punta_Arenas"{\r
+            ec{"Punta Arenas"}\r
+        }\r
+        "America:Rainy_River"{\r
+            ec{"Kali Rainy"}\r
+        }\r
+        "America:Rankin_Inlet"{\r
+            ec{"Rankin Inlet"}\r
+        }\r
+        "America:Recife"{\r
+            ec{"Recife"}\r
+        }\r
+        "America:Regina"{\r
+            ec{"Regina"}\r
+        }\r
+        "America:Resolute"{\r
+            ec{"Resolute"}\r
+        }\r
+        "America:Rio_Branco"{\r
+            ec{"Rio Branco"}\r
+        }\r
+        "America:Santarem"{\r
+            ec{"Santarem"}\r
+        }\r
+        "America:Santiago"{\r
+            ec{"Santiago"}\r
+        }\r
+        "America:Santo_Domingo"{\r
+            ec{"Santo Domingo"}\r
+        }\r
+        "America:Sao_Paulo"{\r
+            ec{"Sao Paulo"}\r
+        }\r
+        "America:Scoresbysund"{\r
+            ec{"Ittoqqortoormiit"}\r
+        }\r
+        "America:Sitka"{\r
+            ec{"Sitka"}\r
+        }\r
+        "America:St_Barthelemy"{\r
+            ec{"Santa Barthelemy"}\r
+        }\r
+        "America:St_Johns"{\r
+            ec{"Santa John"}\r
+        }\r
+        "America:St_Kitts"{\r
+            ec{"Santa Kitts"}\r
+        }\r
+        "America:St_Lucia"{\r
+            ec{"Santa Lucia"}\r
+        }\r
+        "America:St_Thomas"{\r
+            ec{"Santa Thomas"}\r
+        }\r
+        "America:St_Vincent"{\r
+            ec{"Santa Vincent"}\r
+        }\r
+        "America:Swift_Current"{\r
+            ec{"Arus Banter"}\r
+        }\r
+        "America:Tegucigalpa"{\r
+            ec{"Tegucigalpa"}\r
+        }\r
+        "America:Thule"{\r
+            ec{"Thule"}\r
+        }\r
+        "America:Thunder_Bay"{\r
+            ec{"Teluk Gludhug"}\r
+        }\r
+        "America:Tijuana"{\r
+            ec{"Tijuana"}\r
+        }\r
+        "America:Toronto"{\r
+            ec{"Toronto"}\r
+        }\r
+        "America:Tortola"{\r
+            ec{"Tortola"}\r
+        }\r
+        "America:Vancouver"{\r
+            ec{"Vancouver"}\r
+        }\r
+        "America:Whitehorse"{\r
+            ec{"Whitehorse"}\r
+        }\r
+        "America:Winnipeg"{\r
+            ec{"Winnipeg"}\r
+        }\r
+        "America:Yakutat"{\r
+            ec{"Yakutat"}\r
+        }\r
+        "America:Yellowknife"{\r
+            ec{"Yellowknife"}\r
+        }\r
+        "Antarctica:Casey"{\r
+            ec{"Casey"}\r
+        }\r
+        "Antarctica:Davis"{\r
+            ec{"Davis"}\r
+        }\r
+        "Antarctica:DumontDUrville"{\r
+            ec{"Dumont d’Urville"}\r
+        }\r
+        "Antarctica:Macquarie"{\r
+            ec{"Macquarie"}\r
+        }\r
+        "Antarctica:Mawson"{\r
+            ec{"Mawson"}\r
+        }\r
+        "Antarctica:McMurdo"{\r
+            ec{"McMurdo"}\r
+        }\r
+        "Antarctica:Palmer"{\r
+            ec{"Palmer"}\r
+        }\r
+        "Antarctica:Rothera"{\r
+            ec{"Rothera"}\r
+        }\r
+        "Antarctica:Syowa"{\r
+            ec{"Syowa"}\r
+        }\r
+        "Antarctica:Troll"{\r
+            ec{"Troll"}\r
+        }\r
+        "Antarctica:Vostok"{\r
+            ec{"Vostok"}\r
+        }\r
+        "Arctic:Longyearbyen"{\r
+            ec{"Longyearbyen"}\r
+        }\r
+        "Asia:Aden"{\r
+            ec{"Aden"}\r
+        }\r
+        "Asia:Almaty"{\r
+            ec{"Almaty"}\r
+        }\r
+        "Asia:Amman"{\r
+            ec{"Amman"}\r
+        }\r
+        "Asia:Anadyr"{\r
+            ec{"Anadyr"}\r
+        }\r
+        "Asia:Aqtau"{\r
+            ec{"Aqtau"}\r
+        }\r
+        "Asia:Aqtobe"{\r
+            ec{"Aqtobe"}\r
+        }\r
+        "Asia:Ashgabat"{\r
+            ec{"Ashgabat"}\r
+        }\r
+        "Asia:Atyrau"{\r
+            ec{"Atyrau"}\r
+        }\r
+        "Asia:Baghdad"{\r
+            ec{"Baghdad"}\r
+        }\r
+        "Asia:Bahrain"{\r
+            ec{"Bahrain"}\r
+        }\r
+        "Asia:Baku"{\r
+            ec{"Baku"}\r
+        }\r
+        "Asia:Bangkok"{\r
+            ec{"Bangkok"}\r
+        }\r
+        "Asia:Barnaul"{\r
+            ec{"Barnaul"}\r
+        }\r
+        "Asia:Beirut"{\r
+            ec{"Beirut"}\r
+        }\r
+        "Asia:Bishkek"{\r
+            ec{"Bishkek"}\r
+        }\r
+        "Asia:Brunei"{\r
+            ec{"Brunei"}\r
+        }\r
+        "Asia:Calcutta"{\r
+            ec{"Kalkuta"}\r
+        }\r
+        "Asia:Chita"{\r
+            ec{"Chita"}\r
+        }\r
+        "Asia:Choibalsan"{\r
+            ec{"Choibalsan"}\r
+        }\r
+        "Asia:Colombo"{\r
+            ec{"Kolombo"}\r
+        }\r
+        "Asia:Damascus"{\r
+            ec{"Damaskus"}\r
+        }\r
+        "Asia:Dhaka"{\r
+            ec{"Dhaka"}\r
+        }\r
+        "Asia:Dili"{\r
+            ec{"Dili"}\r
+        }\r
+        "Asia:Dubai"{\r
+            ec{"Dubai"}\r
+        }\r
+        "Asia:Dushanbe"{\r
+            ec{"Dushanbe"}\r
+        }\r
+        "Asia:Famagusta"{\r
+            ec{"Famagusta"}\r
+        }\r
+        "Asia:Gaza"{\r
+            ec{"Gaza"}\r
+        }\r
+        "Asia:Hebron"{\r
+            ec{"Hebron"}\r
+        }\r
+        "Asia:Hong_Kong"{\r
+            ec{"Hong Kong"}\r
+        }\r
+        "Asia:Hovd"{\r
+            ec{"Hovd"}\r
+        }\r
+        "Asia:Irkutsk"{\r
+            ec{"Irkutsk"}\r
+        }\r
+        "Asia:Jakarta"{\r
+            ec{"Jakarta"}\r
+        }\r
+        "Asia:Jayapura"{\r
+            ec{"Jayapura"}\r
+        }\r
+        "Asia:Jerusalem"{\r
+            ec{"Yerusalem"}\r
+        }\r
+        "Asia:Kabul"{\r
+            ec{"Kabul"}\r
+        }\r
+        "Asia:Kamchatka"{\r
+            ec{"Kamchatka"}\r
+        }\r
+        "Asia:Karachi"{\r
+            ec{"Karachi"}\r
+        }\r
+        "Asia:Katmandu"{\r
+            ec{"Kathmandu"}\r
+        }\r
+        "Asia:Khandyga"{\r
+            ec{"Khandyga"}\r
+        }\r
+        "Asia:Krasnoyarsk"{\r
+            ec{"Krasnoyarsk"}\r
+        }\r
+        "Asia:Kuala_Lumpur"{\r
+            ec{"Kuala Lumpur"}\r
+        }\r
+        "Asia:Kuching"{\r
+            ec{"Kuching"}\r
+        }\r
+        "Asia:Kuwait"{\r
+            ec{"Kuwait"}\r
+        }\r
+        "Asia:Macau"{\r
+            ec{"Macau"}\r
+        }\r
+        "Asia:Magadan"{\r
+            ec{"Magadan"}\r
+        }\r
+        "Asia:Makassar"{\r
+            ec{"Makasar"}\r
+        }\r
+        "Asia:Manila"{\r
+            ec{"Manila"}\r
+        }\r
+        "Asia:Muscat"{\r
+            ec{"Muscat"}\r
+        }\r
+        "Asia:Nicosia"{\r
+            ec{"Nicosia"}\r
+        }\r
+        "Asia:Novokuznetsk"{\r
+            ec{"Novokuznetsk"}\r
+        }\r
+        "Asia:Novosibirsk"{\r
+            ec{"Novosibirsk"}\r
+        }\r
+        "Asia:Omsk"{\r
+            ec{"Omsk"}\r
+        }\r
+        "Asia:Oral"{\r
+            ec{"Oral"}\r
+        }\r
+        "Asia:Phnom_Penh"{\r
+            ec{"Phnom Penh"}\r
+        }\r
+        "Asia:Pontianak"{\r
+            ec{"Pontianak"}\r
+        }\r
+        "Asia:Pyongyang"{\r
+            ec{"Pyongyang"}\r
+        }\r
+        "Asia:Qatar"{\r
+            ec{"Qatar"}\r
+        }\r
+        "Asia:Qyzylorda"{\r
+            ec{"Qyzylorda"}\r
+        }\r
+        "Asia:Rangoon"{\r
+            ec{"Yangon"}\r
+        }\r
+        "Asia:Riyadh"{\r
+            ec{"Riyadh"}\r
+        }\r
+        "Asia:Saigon"{\r
+            ec{"Ho Chi Minh"}\r
+        }\r
+        "Asia:Sakhalin"{\r
+            ec{"Sakhalin"}\r
+        }\r
+        "Asia:Samarkand"{\r
+            ec{"Samarkand"}\r
+        }\r
+        "Asia:Seoul"{\r
+            ec{"Seoul"}\r
+        }\r
+        "Asia:Shanghai"{\r
+            ec{"Shanghai"}\r
+        }\r
+        "Asia:Singapore"{\r
+            ec{"Singapura"}\r
+        }\r
+        "Asia:Srednekolymsk"{\r
+            ec{"Srednekolymsk"}\r
+        }\r
+        "Asia:Taipei"{\r
+            ec{"Taipei"}\r
+        }\r
+        "Asia:Tashkent"{\r
+            ec{"Tashkent"}\r
+        }\r
+        "Asia:Tbilisi"{\r
+            ec{"Tbilisi"}\r
+        }\r
+        "Asia:Tehran"{\r
+            ec{"Teheran"}\r
+        }\r
+        "Asia:Thimphu"{\r
+            ec{"Thimphu"}\r
+        }\r
+        "Asia:Tokyo"{\r
+            ec{"Tokyo"}\r
+        }\r
+        "Asia:Tomsk"{\r
+            ec{"Tomsk"}\r
+        }\r
+        "Asia:Ulaanbaatar"{\r
+            ec{"Ulaanbaatar"}\r
+        }\r
+        "Asia:Urumqi"{\r
+            ec{"Urumqi"}\r
+        }\r
+        "Asia:Ust-Nera"{\r
+            ec{"Ust-Nera"}\r
+        }\r
+        "Asia:Vientiane"{\r
+            ec{"Vientiane"}\r
+        }\r
+        "Asia:Vladivostok"{\r
+            ec{"Vladivostok"}\r
+        }\r
+        "Asia:Yakutsk"{\r
+            ec{"Yakutsk"}\r
+        }\r
+        "Asia:Yekaterinburg"{\r
+            ec{"Yekaterinburg"}\r
+        }\r
+        "Asia:Yerevan"{\r
+            ec{"Yerevan"}\r
+        }\r
+        "Atlantic:Azores"{\r
+            ec{"Azores"}\r
+        }\r
+        "Atlantic:Bermuda"{\r
+            ec{"Bermuda"}\r
+        }\r
+        "Atlantic:Canary"{\r
+            ec{"Kanari"}\r
+        }\r
+        "Atlantic:Cape_Verde"{\r
+            ec{"Kape Verde"}\r
+        }\r
+        "Atlantic:Faeroe"{\r
+            ec{"Faroe"}\r
+        }\r
+        "Atlantic:Madeira"{\r
+            ec{"Madeira"}\r
+        }\r
+        "Atlantic:Reykjavik"{\r
+            ec{"Reykjavik"}\r
+        }\r
+        "Atlantic:South_Georgia"{\r
+            ec{"Georgia Kidul"}\r
+        }\r
+        "Atlantic:St_Helena"{\r
+            ec{"Saint Helena"}\r
+        }\r
+        "Atlantic:Stanley"{\r
+            ec{"Stanley"}\r
+        }\r
+        "Australia:Adelaide"{\r
+            ec{"Adelaide"}\r
+        }\r
+        "Australia:Brisbane"{\r
+            ec{"Brisbane"}\r
+        }\r
+        "Australia:Broken_Hill"{\r
+            ec{"Broken Hill"}\r
+        }\r
+        "Australia:Currie"{\r
+            ec{"Currie"}\r
+        }\r
+        "Australia:Darwin"{\r
+            ec{"Darwin"}\r
+        }\r
+        "Australia:Eucla"{\r
+            ec{"Eucla"}\r
+        }\r
+        "Australia:Hobart"{\r
+            ec{"Hobart"}\r
+        }\r
+        "Australia:Lindeman"{\r
+            ec{"Lindeman"}\r
+        }\r
+        "Australia:Lord_Howe"{\r
+            ec{"Lord Howe"}\r
+        }\r
+        "Australia:Melbourne"{\r
+            ec{"Melbourne"}\r
+        }\r
+        "Australia:Perth"{\r
+            ec{"Perth"}\r
+        }\r
+        "Australia:Sydney"{\r
+            ec{"Sydney"}\r
+        }\r
+        "Etc:UTC"{\r
+            ls{"Wektu Kordinat Universal"}\r
+        }\r
+        "Etc:Unknown"{\r
+            ec{"Kuto Ora Dikenali"}\r
+        }\r
+        "Europe:Amsterdam"{\r
+            ec{"Amsterdam"}\r
+        }\r
+        "Europe:Andorra"{\r
+            ec{"Andorra"}\r
+        }\r
+        "Europe:Astrakhan"{\r
+            ec{"Astrakhan"}\r
+        }\r
+        "Europe:Athens"{\r
+            ec{"Athena"}\r
+        }\r
+        "Europe:Belgrade"{\r
+            ec{"Belgrade"}\r
+        }\r
+        "Europe:Berlin"{\r
+            ec{"Berlin"}\r
+        }\r
+        "Europe:Bratislava"{\r
+            ec{"Bratislava"}\r
+        }\r
+        "Europe:Brussels"{\r
+            ec{"Brussels"}\r
+        }\r
+        "Europe:Bucharest"{\r
+            ec{"Bucharest"}\r
+        }\r
+        "Europe:Budapest"{\r
+            ec{"Budapest"}\r
+        }\r
+        "Europe:Busingen"{\r
+            ec{"Busingen"}\r
+        }\r
+        "Europe:Chisinau"{\r
+            ec{"Chisinau"}\r
+        }\r
+        "Europe:Copenhagen"{\r
+            ec{"Kopenhagen"}\r
+        }\r
+        "Europe:Dublin"{\r
+            ec{"Dublin"}\r
+            ld{"Wektu Standar Irlandia"}\r
+        }\r
+        "Europe:Gibraltar"{\r
+            ec{"Gibraltar"}\r
+        }\r
+        "Europe:Guernsey"{\r
+            ec{"Guernsey"}\r
+        }\r
+        "Europe:Helsinki"{\r
+            ec{"Helsinki"}\r
+        }\r
+        "Europe:Isle_of_Man"{\r
+            ec{"Pulo Man"}\r
+        }\r
+        "Europe:Istanbul"{\r
+            ec{"Istanbul"}\r
+        }\r
+        "Europe:Jersey"{\r
+            ec{"Jersey"}\r
+        }\r
+        "Europe:Kaliningrad"{\r
+            ec{"Kaliningrad"}\r
+        }\r
+        "Europe:Kiev"{\r
+            ec{"Kiev"}\r
+        }\r
+        "Europe:Kirov"{\r
+            ec{"Kirov"}\r
+        }\r
+        "Europe:Lisbon"{\r
+            ec{"Lisbon"}\r
+        }\r
+        "Europe:Ljubljana"{\r
+            ec{"Ljubljana"}\r
+        }\r
+        "Europe:London"{\r
+            ec{"London"}\r
+            ld{"Wektu Ketigo Inggris"}\r
+        }\r
+        "Europe:Luxembourg"{\r
+            ec{"Luksemburk"}\r
+        }\r
+        "Europe:Madrid"{\r
+            ec{"Madrid"}\r
+        }\r
+        "Europe:Malta"{\r
+            ec{"Malta"}\r
+        }\r
+        "Europe:Mariehamn"{\r
+            ec{"Mariehamn"}\r
+        }\r
+        "Europe:Minsk"{\r
+            ec{"Minsk"}\r
+        }\r
+        "Europe:Monaco"{\r
+            ec{"Monako"}\r
+        }\r
+        "Europe:Moscow"{\r
+            ec{"Moscow"}\r
+        }\r
+        "Europe:Oslo"{\r
+            ec{"Oslo"}\r
+        }\r
+        "Europe:Paris"{\r
+            ec{"Paris"}\r
+        }\r
+        "Europe:Podgorica"{\r
+            ec{"Podgorica"}\r
+        }\r
+        "Europe:Prague"{\r
+            ec{"Prague"}\r
+        }\r
+        "Europe:Riga"{\r
+            ec{"Riga"}\r
+        }\r
+        "Europe:Rome"{\r
+            ec{"Roma"}\r
+        }\r
+        "Europe:Samara"{\r
+            ec{"Samara"}\r
+        }\r
+        "Europe:San_Marino"{\r
+            ec{"San Marino"}\r
+        }\r
+        "Europe:Sarajevo"{\r
+            ec{"Sarajevo"}\r
+        }\r
+        "Europe:Saratov"{\r
+            ec{"Saratov"}\r
+        }\r
+        "Europe:Simferopol"{\r
+            ec{"Simferopol"}\r
+        }\r
+        "Europe:Skopje"{\r
+            ec{"Skopje"}\r
+        }\r
+        "Europe:Sofia"{\r
+            ec{"Sofia"}\r
+        }\r
+        "Europe:Stockholm"{\r
+            ec{"Stockholm"}\r
+        }\r
+        "Europe:Tallinn"{\r
+            ec{"Tallinn"}\r
+        }\r
+        "Europe:Tirane"{\r
+            ec{"Tirane"}\r
+        }\r
+        "Europe:Ulyanovsk"{\r
+            ec{"Ulyanovsk"}\r
+        }\r
+        "Europe:Uzhgorod"{\r
+            ec{"Uzhgorod"}\r
+        }\r
+        "Europe:Vaduz"{\r
+            ec{"Vaduz"}\r
+        }\r
+        "Europe:Vatican"{\r
+            ec{"Vatikan"}\r
+        }\r
+        "Europe:Vienna"{\r
+            ec{"Vienna"}\r
+        }\r
+        "Europe:Vilnius"{\r
+            ec{"Vilnius"}\r
+        }\r
+        "Europe:Volgograd"{\r
+            ec{"Volgograd"}\r
+        }\r
+        "Europe:Warsaw"{\r
+            ec{"Warsaw"}\r
+        }\r
+        "Europe:Zagreb"{\r
+            ec{"Zagreb"}\r
+        }\r
+        "Europe:Zaporozhye"{\r
+            ec{"Zaporozhye"}\r
+        }\r
+        "Europe:Zurich"{\r
+            ec{"Zurich"}\r
+        }\r
+        "Indian:Antananarivo"{\r
+            ec{"Antananarivo"}\r
+        }\r
+        "Indian:Chagos"{\r
+            ec{"Khagos"}\r
+        }\r
+        "Indian:Christmas"{\r
+            ec{"Natal"}\r
+        }\r
+        "Indian:Cocos"{\r
+            ec{"Cocos"}\r
+        }\r
+        "Indian:Comoro"{\r
+            ec{"Komoro"}\r
+        }\r
+        "Indian:Kerguelen"{\r
+            ec{"Kerguelen"}\r
+        }\r
+        "Indian:Mahe"{\r
+            ec{"Mahe"}\r
+        }\r
+        "Indian:Maldives"{\r
+            ec{"Maladewa"}\r
+        }\r
+        "Indian:Mauritius"{\r
+            ec{"Mauritius"}\r
+        }\r
+        "Indian:Mayotte"{\r
+            ec{"Mayotte"}\r
+        }\r
+        "Indian:Reunion"{\r
+            ec{"Reunion"}\r
+        }\r
+        "Pacific:Apia"{\r
+            ec{"Apia"}\r
+        }\r
+        "Pacific:Auckland"{\r
+            ec{"Auckland"}\r
+        }\r
+        "Pacific:Bougainville"{\r
+            ec{"Bougainville"}\r
+        }\r
+        "Pacific:Chatham"{\r
+            ec{"Chatham"}\r
+        }\r
+        "Pacific:Easter"{\r
+            ec{"Paskah"}\r
+        }\r
+        "Pacific:Efate"{\r
+            ec{"Efate"}\r
+        }\r
+        "Pacific:Enderbury"{\r
+            ec{"Enderbury"}\r
+        }\r
+        "Pacific:Fakaofo"{\r
+            ec{"Fakaofo"}\r
+        }\r
+        "Pacific:Fiji"{\r
+            ec{"Fiji"}\r
+        }\r
+        "Pacific:Funafuti"{\r
+            ec{"Funafuti"}\r
+        }\r
+        "Pacific:Galapagos"{\r
+            ec{"Galapagos"}\r
+        }\r
+        "Pacific:Gambier"{\r
+            ec{"Gambier"}\r
+        }\r
+        "Pacific:Guadalcanal"{\r
+            ec{"Guadalcanal"}\r
+        }\r
+        "Pacific:Guam"{\r
+            ec{"Guam"}\r
+        }\r
+        "Pacific:Johnston"{\r
+            ec{"Johnston"}\r
+        }\r
+        "Pacific:Kiritimati"{\r
+            ec{"Kiritimati"}\r
+        }\r
+        "Pacific:Kosrae"{\r
+            ec{"Kosrae"}\r
+        }\r
+        "Pacific:Kwajalein"{\r
+            ec{"Kwajalein"}\r
+        }\r
+        "Pacific:Majuro"{\r
+            ec{"Majuro"}\r
+        }\r
+        "Pacific:Marquesas"{\r
+            ec{"Marquesas"}\r
+        }\r
+        "Pacific:Midway"{\r
+            ec{"Midway"}\r
+        }\r
+        "Pacific:Nauru"{\r
+            ec{"Nauru"}\r
+        }\r
+        "Pacific:Niue"{\r
+            ec{"Niue"}\r
+        }\r
+        "Pacific:Norfolk"{\r
+            ec{"Norfolk"}\r
+        }\r
+        "Pacific:Noumea"{\r
+            ec{"Noumea"}\r
+        }\r
+        "Pacific:Pago_Pago"{\r
+            ec{"Pago Pago"}\r
+        }\r
+        "Pacific:Palau"{\r
+            ec{"Palau"}\r
+        }\r
+        "Pacific:Pitcairn"{\r
+            ec{"Pitcairn"}\r
+        }\r
+        "Pacific:Ponape"{\r
+            ec{"Pohnpei"}\r
+        }\r
+        "Pacific:Port_Moresby"{\r
+            ec{"Pelabuhan Moresby"}\r
+        }\r
+        "Pacific:Rarotonga"{\r
+            ec{"Rarotonga"}\r
+        }\r
+        "Pacific:Saipan"{\r
+            ec{"Saipan"}\r
+        }\r
+        "Pacific:Tahiti"{\r
+            ec{"Tahiti"}\r
+        }\r
+        "Pacific:Tarawa"{\r
+            ec{"Tarawa"}\r
+        }\r
+        "Pacific:Tongatapu"{\r
+            ec{"Tongatapu"}\r
+        }\r
+        "Pacific:Truk"{\r
+            ec{"Chuuk"}\r
+        }\r
+        "Pacific:Wake"{\r
+            ec{"Wake"}\r
+        }\r
+        "Pacific:Wallis"{\r
+            ec{"Wallis"}\r
+        }\r
+        "meta:Afghanistan"{\r
+            ls{"Wektu Afghanistan"}\r
+        }\r
+        "meta:Africa_Central"{\r
+            ls{"Wektu Afrika Tengah"}\r
+        }\r
+        "meta:Africa_Eastern"{\r
+            ls{"Wektu Afrika Wetan"}\r
+        }\r
+        "meta:Africa_Southern"{\r
+            ls{"Wektu Standar Afrika Kidul"}\r
+        }\r
+        "meta:Africa_Western"{\r
+            ld{"Wektu Ketigo Afrika Kulon"}\r
+            lg{"Wektu Afrika Kulon"}\r
+            ls{"Wektu Standar Afrika Kulon"}\r
+        }\r
+        "meta:Alaska"{\r
+            ld{"Wektu Ketigo Alaska"}\r
+            lg{"Wektu Alaska"}\r
+            ls{"Wektu Standar Alaska"}\r
+        }\r
+        "meta:Amazon"{\r
+            ld{"Wektu Ketigo Amazon"}\r
+            lg{"Wektu Amazon"}\r
+            ls{"Wektu Standar Amazon"}\r
+        }\r
+        "meta:America_Central"{\r
+            ld{"Wektu Ketigo Tengah"}\r
+            lg{"Wektu Tengah"}\r
+            ls{"Wektu Standar Tengah"}\r
+        }\r
+        "meta:America_Eastern"{\r
+            ld{"Wektu Ketigo sisih Wetah"}\r
+            lg{"Wektu sisih Wetan"}\r
+            ls{"Wektu Standar sisih Wetan"}\r
+        }\r
+        "meta:America_Mountain"{\r
+            ld{"Wektu Ketigo Giri"}\r
+            lg{"Wektu Giri"}\r
+            ls{"Wektu Standar Giri"}\r
+        }\r
+        "meta:America_Pacific"{\r
+            ld{"Wektu Ketigo Pasifik"}\r
+            lg{"Wektu Pasifik"}\r
+            ls{"Wektu Standar Pasifik"}\r
+        }\r
+        "meta:Apia"{\r
+            ld{"Wektu Ketigo Apia"}\r
+            lg{"Wektu Apia"}\r
+            ls{"Wektu Standar Apia"}\r
+        }\r
+        "meta:Arabian"{\r
+            ld{"Wektu Ketigo Arab"}\r
+            lg{"Wektu Arab"}\r
+            ls{"Wektu Standar Arab"}\r
+        }\r
+        "meta:Argentina"{\r
+            ld{"Wektu Ketigo Argentina"}\r
+            lg{"Wektu Argentina"}\r
+            ls{"Wektu Standar Argentina"}\r
+        }\r
+        "meta:Argentina_Western"{\r
+            ld{"Wektu Ketigo Argentina sisih Kulon"}\r
+            lg{"Wektu Argentina sisih Kulon"}\r
+            ls{"Wektu Standar Argentina sisih Kulon"}\r
+        }\r
+        "meta:Armenia"{\r
+            ld{"Wektu Ketigo Armenia"}\r
+            lg{"Wektu Armenia"}\r
+            ls{"Wektu Standar Armenia"}\r
+        }\r
+        "meta:Atlantic"{\r
+            ld{"Wektu Ketigo Atlantik"}\r
+            lg{"Wektu Atlantik"}\r
+            ls{"Wektu Standar Atlantik"}\r
+        }\r
+        "meta:Australia_Central"{\r
+            ld{"Wektu Ketigo Australia Tengah"}\r
+            lg{"Wektu Australia Tengah"}\r
+            ls{"Wektu Standar Australia Tengah"}\r
+        }\r
+        "meta:Australia_CentralWestern"{\r
+            ld{"Wektu Ketigo Australia Tengah sisih Kulon"}\r
+            lg{"Wektu Australia Tengah sisih Kulon"}\r
+            ls{"Wektu Standar Australia Tengah sisih Kulon"}\r
+        }\r
+        "meta:Australia_Eastern"{\r
+            ld{"Wektu Ketigo Australia sisih Wetan"}\r
+            lg{"Wektu Australia sisih Wetan"}\r
+            ls{"Wektu Standar Australia sisih Wetan"}\r
+        }\r
+        "meta:Australia_Western"{\r
+            ld{"Wektu Ketigo Australia sisih Kulon"}\r
+            lg{"Wektu Australia sisih Kulon"}\r
+            ls{"Wektu Standar Australia sisih Kulon"}\r
+        }\r
+        "meta:Azerbaijan"{\r
+            ld{"Wektu Ketigo Azerbaijan"}\r
+            lg{"Wektu Azerbaijan"}\r
+            ls{"Wektu Standar Azerbaijan"}\r
+        }\r
+        "meta:Azores"{\r
+            ld{"Wektu Ketigo Azores"}\r
+            lg{"Wektu Azores"}\r
+            ls{"Wektu Standar Azores"}\r
+        }\r
+        "meta:Bangladesh"{\r
+            ld{"Wektu Ketigo Bangladesh"}\r
+            lg{"Wektu Bangladesh"}\r
+            ls{"Wektu Standar Bangladesh"}\r
+        }\r
+        "meta:Bhutan"{\r
+            ls{"Wektu Bhutan"}\r
+        }\r
+        "meta:Bolivia"{\r
+            ls{"Wektu Bolivia"}\r
+        }\r
+        "meta:Brasilia"{\r
+            ld{"Wektu Ketigo Brasilia"}\r
+            lg{"Wektu Brasilia"}\r
+            ls{"Wektu Standar Brasilia"}\r
+        }\r
+        "meta:Brunei"{\r
+            ls{"Wektu Brunai Darussalam"}\r
+        }\r
+        "meta:Cape_Verde"{\r
+            ld{"Wektu Ketigo Tanjung Verde"}\r
+            lg{"Wektu Tanjung Verde"}\r
+            ls{"Wektu Standar Tanjung Verde"}\r
+        }\r
+        "meta:Chamorro"{\r
+            ls{"Wektu Standar Chamorro"}\r
+        }\r
+        "meta:Chatham"{\r
+            ld{"Wektu Ketigo Chatham"}\r
+            lg{"Wektu Chatham"}\r
+            ls{"Wektu Standar Chatham"}\r
+        }\r
+        "meta:Chile"{\r
+            ld{"Wektu Ketigo Chili"}\r
+            lg{"Wektu Chili"}\r
+            ls{"Wektu Standar Chili"}\r
+        }\r
+        "meta:China"{\r
+            ld{"Wektu Ketigo Cina"}\r
+            lg{"Wektu Cina"}\r
+            ls{"Wektu Standar Cina"}\r
+        }\r
+        "meta:Choibalsan"{\r
+            ld{"WEktu Ketigo Choibalsan"}\r
+            lg{"Wektu Choibalsan"}\r
+            ls{"Wektu Standar Choibalsan"}\r
+        }\r
+        "meta:Christmas"{\r
+            ls{"Wektu Pulo Natal"}\r
+        }\r
+        "meta:Cocos"{\r
+            ls{"Wektu Kepuloan Cocos"}\r
+        }\r
+        "meta:Colombia"{\r
+            ld{"Wektu Ketigo Kolombia"}\r
+            lg{"Wektu Kolombia"}\r
+            ls{"Wektu Standar Kolombia"}\r
+        }\r
+        "meta:Cook"{\r
+            ld{"Wektu Ketigo Kepuloan Cook"}\r
+            lg{"Wektu Kepuloan Cook"}\r
+            ls{"Wektu Standar Kepuloan Cook"}\r
+        }\r
+        "meta:Cuba"{\r
+            ld{"Wektu Ketigo Kuba"}\r
+            lg{"Wektu Kuba"}\r
+            ls{"Wektu Standar Kuba"}\r
+        }\r
+        "meta:Davis"{\r
+            ls{"Wektu Davis"}\r
+        }\r
+        "meta:DumontDUrville"{\r
+            ls{"Wektu Dumont-d’Urville"}\r
+        }\r
+        "meta:East_Timor"{\r
+            ls{"Wektu Timor Leste"}\r
+        }\r
+        "meta:Easter"{\r
+            ld{"Wektu Ketigo Pulo Paskah"}\r
+            lg{"Wektu Pulo Paskah"}\r
+            ls{"Wektu Standar Pulo Paskah"}\r
+        }\r
+        "meta:Ecuador"{\r
+            ls{"Wektu Ekuador"}\r
+        }\r
+        "meta:Europe_Central"{\r
+            ld{"Wektu Ketigo Eropa Tengah"}\r
+            lg{"Wektu Eropa Tengah"}\r
+            ls{"Wektu Standar Eropa Tengah"}\r
+        }\r
+        "meta:Europe_Eastern"{\r
+            ld{"Wektu Ketigo Eropa sisih Wetan"}\r
+            lg{"Wektu Eropa sisih Wetan"}\r
+            ls{"Wektu Standar Eropa sisih Wetan"}\r
+        }\r
+        "meta:Europe_Further_Eastern"{\r
+            ls{"Wektu Eropa sisih Wetan seng Luwih Adoh"}\r
+        }\r
+        "meta:Europe_Western"{\r
+            ld{"Wektu Ketigo Eropa sisih Kulon"}\r
+            lg{"Wektu Eropa sisih Kulon"}\r
+            ls{"Wektu Standar Eropa sisih Kulon"}\r
+        }\r
+        "meta:Falkland"{\r
+            ld{"Wektu Ketigo Kepuloan Falkland"}\r
+            lg{"Wektu Kepuloan Falkland"}\r
+            ls{"Wektu Standar Kepuloan Falkland"}\r
+        }\r
+        "meta:Fiji"{\r
+            ld{"Wektu Ketigo Fiji"}\r
+            lg{"Wektu Fiji"}\r
+            ls{"Wektu Standar Fiji"}\r
+        }\r
+        "meta:French_Guiana"{\r
+            ls{"Wektu Guiana Prancis"}\r
+        }\r
+        "meta:French_Southern"{\r
+            ls{"Wektu Antartika lan Prancis sisih Kidul"}\r
+        }\r
+        "meta:GMT"{\r
+            ls{"Wektu Rerata Greenwich"}\r
+        }\r
+        "meta:Galapagos"{\r
+            ls{"Wektu Galapagos"}\r
+        }\r
+        "meta:Gambier"{\r
+            ls{"Wektu Gambier"}\r
+        }\r
+        "meta:Georgia"{\r
+            ld{"Wektu Ketigo Georgia"}\r
+            lg{"Wektu Georgia"}\r
+            ls{"Wektu Standar Georgia"}\r
+        }\r
+        "meta:Gilbert_Islands"{\r
+            ls{"Wektu Kepuloan Gilbert"}\r
+        }\r
+        "meta:Greenland_Eastern"{\r
+            ld{"Wektu Ketigo Grinland Wetan"}\r
+            lg{"Wektu Grinland Wetan"}\r
+            ls{"Wektu Standar Grinland Wetan"}\r
+        }\r
+        "meta:Greenland_Western"{\r
+            ld{"Wektu Ketigo Grinland Kulon"}\r
+            lg{"Wektu Grinland Kulon"}\r
+            ls{"Wektu Standar Grinland Kulon"}\r
+        }\r
+        "meta:Gulf"{\r
+            ls{"Wektu Standar Teluk"}\r
+        }\r
+        "meta:Guyana"{\r
+            ls{"Wektu Guyana"}\r
+        }\r
+        "meta:Hawaii_Aleutian"{\r
+            ld{"Wektu Ketigo Hawaii-Aleutian"}\r
+            lg{"Wektu Hawaii-Aleutian"}\r
+            ls{"Wektu Standar Hawaii-Aleutian"}\r
+        }\r
+        "meta:Hong_Kong"{\r
+            ld{"Wektu Ketigo Hong Kong"}\r
+            lg{"Wektu Hong Kong"}\r
+            ls{"Wektu Standar Hong Kong"}\r
+        }\r
+        "meta:Hovd"{\r
+            ld{"Wektu Ketigo Hovd"}\r
+            lg{"Wektu Hovd"}\r
+            ls{"Wektu Standar Hovd"}\r
+        }\r
+        "meta:India"{\r
+            ls{"Wektu Standar India"}\r
+        }\r
+        "meta:Indian_Ocean"{\r
+            ls{"Wektu Segoro Hindia"}\r
+        }\r
+        "meta:Indochina"{\r
+            ls{"Wektu Indocina"}\r
+        }\r
+        "meta:Indonesia_Central"{\r
+            ls{"Wektu Indonesia Tengah"}\r
+        }\r
+        "meta:Indonesia_Eastern"{\r
+            ls{"Wektu Indonesia sisih Wetan"}\r
+        }\r
+        "meta:Indonesia_Western"{\r
+            ls{"Wektu Indonesia sisih Kulon"}\r
+        }\r
+        "meta:Iran"{\r
+            ld{"Wektu Ketigo Iran"}\r
+            lg{"Wektu Iran"}\r
+            ls{"Wektu Standar Iran"}\r
+        }\r
+        "meta:Irkutsk"{\r
+            ld{"Wektu Ketigo Irkutsk"}\r
+            lg{"Wektu Irkutsk"}\r
+            ls{"Wektu Standar Irkutsk"}\r
+        }\r
+        "meta:Israel"{\r
+            ld{"Wektu Ketigo Israel"}\r
+            lg{"Wektu Israel"}\r
+            ls{"Wektu Standar Israel"}\r
+        }\r
+        "meta:Japan"{\r
+            ld{"Wektu Ketigo Jepang"}\r
+            lg{"Wektu Jepang"}\r
+            ls{"Wektu Standar Jepang"}\r
+        }\r
+        "meta:Kazakhstan_Eastern"{\r
+            ls{"Wektu Kazakhstan Wetan"}\r
+        }\r
+        "meta:Kazakhstan_Western"{\r
+            ls{"Wektu Kazakhstan Kulon"}\r
+        }\r
+        "meta:Korea"{\r
+            ld{"Wektu Ketigo Korea"}\r
+            lg{"Wektu Korea"}\r
+            ls{"Wektu Standar Korea"}\r
+        }\r
+        "meta:Kosrae"{\r
+            ls{"Wektu Kosrae"}\r
+        }\r
+        "meta:Krasnoyarsk"{\r
+            ld{"Wektu Ketigo Krasnoyarsk"}\r
+            lg{"Wektu Krasnoyarsk"}\r
+            ls{"Wektu Standar Krasnoyarsk"}\r
+        }\r
+        "meta:Kyrgystan"{\r
+            ls{"Wektu Kirgizstan"}\r
+        }\r
+        "meta:Line_Islands"{\r
+            ls{"Wektu Kepuloan Line"}\r
+        }\r
+        "meta:Lord_Howe"{\r
+            ld{"Wektu Ketigo Lord Howe"}\r
+            lg{"Wektu Lord Howe"}\r
+            ls{"Wektu Standar Lord Howe"}\r
+        }\r
+        "meta:Macquarie"{\r
+            ls{"Wektu Pulo Macquarie"}\r
+        }\r
+        "meta:Magadan"{\r
+            ld{"Wektu Ketigo Magadan"}\r
+            lg{"Wektu Magadan"}\r
+            ls{"Wektu Standar Magadan"}\r
+        }\r
+        "meta:Malaysia"{\r
+            ls{"Wektu Malaysia"}\r
+        }\r
+        "meta:Maldives"{\r
+            ls{"Wektu Maladewa"}\r
+        }\r
+        "meta:Marquesas"{\r
+            ls{"Wektu Marquesas"}\r
+        }\r
+        "meta:Marshall_Islands"{\r
+            ls{"Wektu Kepuloan Marshall"}\r
+        }\r
+        "meta:Mauritius"{\r
+            ld{"Wektu Ketigo Mauritius"}\r
+            lg{"Wektu Mauritius"}\r
+            ls{"Wektu Standar Mauritius"}\r
+        }\r
+        "meta:Mawson"{\r
+            ls{"Wektu Mawson"}\r
+        }\r
+        "meta:Mexico_Northwest"{\r
+            ld{"Wektu Ketigo Meksiko Lor-Kulon"}\r
+            lg{"Wektu Meksiko Lor-Kulon"}\r
+            ls{"Wektu Standar Meksiko Lor-Kulon"}\r
+        }\r
+        "meta:Mexico_Pacific"{\r
+            ld{"Wektu Ketigo Pasifik Meksiko"}\r
+            lg{"Wektu Pasifik Meksiko"}\r
+            ls{"Wektu Standar Pasifik Meksiko"}\r
+        }\r
+        "meta:Mongolia"{\r
+            ld{"Wektu Ketigo Ulaanbaatar"}\r
+            lg{"Wektu Ulaanbaatar"}\r
+            ls{"Wektu Standar Ulaanbaatar"}\r
+        }\r
+        "meta:Moscow"{\r
+            ld{"Wektu Ketigo Moscow"}\r
+            lg{"Wektu Moscow"}\r
+            ls{"Wektu Standar Moscow"}\r
+        }\r
+        "meta:Myanmar"{\r
+            ls{"Wektu Myanmar"}\r
+        }\r
+        "meta:Nauru"{\r
+            ls{"Wektu Nauru"}\r
+        }\r
+        "meta:Nepal"{\r
+            ls{"Wektu Nepal"}\r
+        }\r
+        "meta:New_Caledonia"{\r
+            ld{"Wektu Ketigo Kaledonia Anyar"}\r
+            lg{"Wektu Kaledonia Anyar"}\r
+            ls{"Wektu Standar Kaledonia Anyar"}\r
+        }\r
+        "meta:New_Zealand"{\r
+            ld{"Wektu Ketigo Selandia Anyar"}\r
+            lg{"Wektu Selandia Anyar"}\r
+            ls{"Wektu Standar Selandia Anyar"}\r
+        }\r
+        "meta:Newfoundland"{\r
+            ld{"Wektu Ketigo Newfoundland"}\r
+            lg{"Wektu Newfoundland"}\r
+            ls{"Wektu Standar Newfoundland"}\r
+        }\r
+        "meta:Niue"{\r
+            ls{"Wektu Niue"}\r
+        }\r
+        "meta:Norfolk"{\r
+            ls{"Wektu Pulo Norfolk"}\r
+        }\r
+        "meta:Noronha"{\r
+            ld{"Wektu Ketigo Fernando de Noronha"}\r
+            lg{"Wektu Fernando de Noronha"}\r
+            ls{"Wektu Standar Fernando de Noronha"}\r
+        }\r
+        "meta:Novosibirsk"{\r
+            ld{"Wektu Ketigo Novosibirsk"}\r
+            lg{"Wektu Novosibirsk"}\r
+            ls{"Wektu Standar Novosibirsk"}\r
+        }\r
+        "meta:Omsk"{\r
+            ld{"Wektu Ketigo Omsk"}\r
+            lg{"Wektu Omsk"}\r
+            ls{"Wektu Standar Omsk"}\r
+        }\r
+        "meta:Pakistan"{\r
+            ld{"Wektu Ketigo Pakistan"}\r
+            lg{"Wektu Pakistan"}\r
+            ls{"Wektu Standar Pakistan"}\r
+        }\r
+        "meta:Palau"{\r
+            ls{"Wektu Palau"}\r
+        }\r
+        "meta:Papua_New_Guinea"{\r
+            ls{"Wektu Papua Nugini"}\r
+        }\r
+        "meta:Paraguay"{\r
+            ld{"Wektu Ketigo Paraguay"}\r
+            lg{"Wektu Paraguay"}\r
+            ls{"Wektu Standar Paraguay"}\r
+        }\r
+        "meta:Peru"{\r
+            ld{"Wektu Ketigo Peru"}\r
+            lg{"Wektu Peru"}\r
+            ls{"Wektu Standar Peru"}\r
+        }\r
+        "meta:Philippines"{\r
+            ld{"Wektu Ketigo Filipina"}\r
+            lg{"Wektu Filipina"}\r
+            ls{"Wektu Standar Filipina"}\r
+        }\r
+        "meta:Phoenix_Islands"{\r
+            ls{"Wektu Kepuloan Phoenix"}\r
+        }\r
+        "meta:Pierre_Miquelon"{\r
+            ld{"Wektu Ketigo Santa Pierre lan Miquelon"}\r
+            lg{"Wektu Santa Pierre lan Miquelon"}\r
+            ls{"Wektu Standar Santa Pierre lan Miquelon"}\r
+        }\r
+        "meta:Pitcairn"{\r
+            ls{"Wektu Pitcairn"}\r
+        }\r
+        "meta:Ponape"{\r
+            ls{"Wektu Ponape"}\r
+        }\r
+        "meta:Pyongyang"{\r
+            ls{"Wektu Pyongyang"}\r
+        }\r
+        "meta:Reunion"{\r
+            ls{"Wektu Reunion"}\r
+        }\r
+        "meta:Rothera"{\r
+            ls{"Wektu Rothera"}\r
+        }\r
+        "meta:Sakhalin"{\r
+            ld{"Wektu Ketigo Sakhalin"}\r
+            lg{"Wektu Sakhalin"}\r
+            ls{"Wektu Standar Sakhalin"}\r
+        }\r
+        "meta:Samoa"{\r
+            ld{"Wektu Ketigo Samoa"}\r
+            lg{"Wektu Samoa"}\r
+            ls{"Wektu Standar Samoa"}\r
+        }\r
+        "meta:Seychelles"{\r
+            ls{"Wektu Seichelles"}\r
+        }\r
+        "meta:Singapore"{\r
+            ls{"Wektu Standar Singapura"}\r
+        }\r
+        "meta:Solomon"{\r
+            ls{"Wektu Kepuloan Solomon"}\r
+        }\r
+        "meta:South_Georgia"{\r
+            ls{"Wektu Georgia Kidul"}\r
+        }\r
+        "meta:Suriname"{\r
+            ls{"Wektu Suriname"}\r
+        }\r
+        "meta:Syowa"{\r
+            ls{"Wektu Syowa"}\r
+        }\r
+        "meta:Tahiti"{\r
+            ls{"Wektu Tahiti"}\r
+        }\r
+        "meta:Taipei"{\r
+            ld{"Wektu Ketigo Taipei"}\r
+            lg{"Wektu Taipei"}\r
+            ls{"Wektu Standar Taipei"}\r
+        }\r
+        "meta:Tajikistan"{\r
+            ls{"Wektu Tajikistan"}\r
+        }\r
+        "meta:Tokelau"{\r
+            ls{"Wektu Tokelau"}\r
+        }\r
+        "meta:Tonga"{\r
+            ld{"Wektu Ketigo Tonga"}\r
+            lg{"Wektu Tonga"}\r
+            ls{"Wektu Standar Tonga"}\r
+        }\r
+        "meta:Truk"{\r
+            ls{"Wektu Chuuk"}\r
+        }\r
+        "meta:Turkmenistan"{\r
+            ld{"Wektu Ketigo Turkmenistan"}\r
+            lg{"Wektu Turkmenistan"}\r
+            ls{"Wektu Standar Turkmenistan"}\r
+        }\r
+        "meta:Tuvalu"{\r
+            ls{"Wektu Tuvalu"}\r
+        }\r
+        "meta:Uruguay"{\r
+            ld{"Wektu Ketigo Uruguay"}\r
+            lg{"Wektu Uruguay"}\r
+            ls{"Wektu Standar Uruguay"}\r
+        }\r
+        "meta:Uzbekistan"{\r
+            ld{"Wektu Ketigo Usbekistan"}\r
+            lg{"Wektu Usbekistan"}\r
+            ls{"Wektu Standar Usbekistan"}\r
+        }\r
+        "meta:Vanuatu"{\r
+            ld{"Wektu Ketigo Vanuatu"}\r
+            lg{"Wektu Vanuatu"}\r
+            ls{"Wektu Standar Vanuatu"}\r
+        }\r
+        "meta:Venezuela"{\r
+            ls{"Wektu Venezuela"}\r
+        }\r
+        "meta:Vladivostok"{\r
+            ld{"Wektu Ketigo Vladivostok"}\r
+            lg{"Wektu Vladivostok"}\r
+            ls{"Wektu Standar Vladivostok"}\r
+        }\r
+        "meta:Volgograd"{\r
+            ld{"Wektu Ketigo Volgograd"}\r
+            lg{"Wektu Volgograd"}\r
+            ls{"Wektu Standar Volgograd"}\r
+        }\r
+        "meta:Vostok"{\r
+            ls{"Wektu Vostok"}\r
+        }\r
+        "meta:Wake"{\r
+            ls{"Wektu Pulo Wake"}\r
+        }\r
+        "meta:Wallis"{\r
+            ls{"Wektu Wallis lan Futuna"}\r
+        }\r
+        "meta:Yakutsk"{\r
+            ld{"Wektu Ketigo Yakutsk"}\r
+            lg{"Wektu Yakutsk"}\r
+            ls{"Wektu Standar Yakutsk"}\r
+        }\r
+        "meta:Yekaterinburg"{\r
+            ld{"Wektu Ketigo Yekaterinburg"}\r
+            lg{"Wektu Yekaterinburg"}\r
+            ls{"Wektu Standar Yekaterinburg"}\r
+        }\r
+        fallbackFormat{"{1} ({0})"}\r
+        gmtFormat{"GMT{0}"}\r
+        gmtZeroFormat{"GMT"}\r
+        hourFormat{"+HH:mm;-HH:mm"}\r
+        regionFormat{"Wektu {0}"}\r
+        regionFormatDaylight{"Wektu Ketigo {0}"}\r
+        regionFormatStandard{"Wektu Standar {0}"}\r
+    }\r
+}\r
index f75be61..e57537a 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 ka{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.50"}\r
     zoneStrings{\r
         "Africa:Abidjan"{\r
             ec{"აბიჯანი"}\r
@@ -889,7 +889,7 @@ ka{
             ec{"აზორის კუნძულები"}\r
         }\r
         "Atlantic:Bermuda"{\r
-            ec{"á\83\91á\83\94á\83 á\83\9bá\83£á\83\93á\83\98"}\r
+            ec{"á\83\91á\83\94á\83 á\83\9bá\83£á\83\93á\83\90"}\r
         }\r
         "Atlantic:Canary"{\r
             ec{"კანარი"}\r
index a82c375..6f837e6 100644 (file)
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 kab{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.94"}\r
 }\r
index 0831341..c4cf329 100644 (file)
@@ -1,11 +1,17 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 kea{\r
-    Version{"2.1.39.11"}\r
+    Version{"2.1.43.65"}\r
     zoneStrings{\r
         "America:Blanc-Sablon"{\r
             ec{"Blank-Sablon"}\r
         }\r
+        "America:Indianapolis"{\r
+            ec{"Indianapolis"}\r
+        }\r
+        "Atlantic:Bermuda"{\r
+            ec{"Bermuda"}\r
+        }\r
         "Etc:Unknown"{\r
             ec{"Sidadi Diskonxedu"}\r
         }\r
index 89b70b2..d2e5280 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 kk{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.88"}\r
     zoneStrings{\r
         "Africa:Abidjan"{\r
             ec{"Абиджан"}\r
index b3cc35b..08122ff 100644 (file)
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 kl{\r
-    Version{"2.1.38.69"}\r
+    Version{"2.1.45.12"}\r
 }\r
index 408a5fc..ff31aed 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 km{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.88"}\r
     zoneStrings{\r
         "Africa:Abidjan"{\r
             ec{"អាប៊ីដ្យាន"}\r
@@ -507,6 +507,9 @@ km{
         "America:Puerto_Rico"{\r
             ec{"ព័រតូរីកូ"}\r
         }\r
+        "America:Punta_Arenas"{\r
+            ec{"ពុនតា អារ៉េណា"}\r
+        }\r
         "America:Rainy_River"{\r
             ec{"រ៉េនីរីវើ"}\r
         }\r
@@ -657,6 +660,9 @@ km{
         "Asia:Ashgabat"{\r
             ec{"អាសហ្គាបាត"}\r
         }\r
+        "Asia:Atyrau"{\r
+            ec{"អាទីរ៉ូ"}\r
+        }\r
         "Asia:Baghdad"{\r
             ec{"បាកដាដ"}\r
         }\r
@@ -708,6 +714,9 @@ km{
         "Asia:Dushanbe"{\r
             ec{"ឌូស្ហាន់បេ"}\r
         }\r
+        "Asia:Famagusta"{\r
+            ec{"ហ្វ៉ាម៉ាហ្គុស្តា"}\r
+        }\r
         "Asia:Gaza"{\r
             ec{"កាសា"}\r
         }\r
index db5aef5..78696a1 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 kn{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.88"}\r
     zoneStrings{\r
         "Africa:Abidjan"{\r
             ec{"ಅಬಿದ್‌ಜನ್"}\r
index be78834..ecf182e 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 ko{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.91"}\r
     zoneStrings{\r
         "Africa:Abidjan"{\r
             ec{"아비장"}\r
@@ -1387,7 +1387,7 @@ ko{
             ls{"아르메니아 표준시"}\r
         }\r
         "meta:Atlantic"{\r
-            ld{"미 ë\8c\80ì\84\9cì\96\91 í\95\98ê³\84 í\91\9cì¤\80ì\8b\9c"}\r
+            ld{"대서양 하계 표준시"}\r
             lg{"대서양 시간"}\r
             ls{"대서양 표준시"}\r
         }\r
index eaa0fdb..2cfd357 100644 (file)
@@ -1,8 +1,452 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 kok{\r
-    Version{"2.1.38.69"}\r
+    Version{"2.1.44.88"}\r
     zoneStrings{\r
+        "America:Adak"{\r
+            ec{"अडाक"}\r
+        }\r
+        "America:Anchorage"{\r
+            ec{"ऐंकरज"}\r
+        }\r
+        "America:Anguilla"{\r
+            ec{"अंगुला"}\r
+        }\r
+        "America:Antigua"{\r
+            ec{"एँटिगुआ"}\r
+        }\r
+        "America:Araguaina"{\r
+            ec{"अरगुयेना"}\r
+        }\r
+        "America:Argentina:La_Rioja"{\r
+            ec{"ला रियोजा"}\r
+        }\r
+        "America:Argentina:Rio_Gallegos"{\r
+            ec{"रियो गलेगॉस"}\r
+        }\r
+        "America:Argentina:Salta"{\r
+            ec{"साल्टा"}\r
+        }\r
+        "America:Argentina:San_Juan"{\r
+            ec{"सान जुआन"}\r
+        }\r
+        "America:Argentina:San_Luis"{\r
+            ec{"सान लुईस"}\r
+        }\r
+        "America:Argentina:Tucuman"{\r
+            ec{"टुकुमॅन"}\r
+        }\r
+        "America:Argentina:Ushuaia"{\r
+            ec{"उशुआइया"}\r
+        }\r
+        "America:Aruba"{\r
+            ec{"अरुबा"}\r
+        }\r
+        "America:Asuncion"{\r
+            ec{"असंसियन"}\r
+        }\r
+        "America:Bahia"{\r
+            ec{"बहिया"}\r
+        }\r
+        "America:Bahia_Banderas"{\r
+            ec{"बहिया बंदेरस"}\r
+        }\r
+        "America:Barbados"{\r
+            ec{"बारबाडोस"}\r
+        }\r
+        "America:Belem"{\r
+            ec{"बेलेम"}\r
+        }\r
+        "America:Belize"{\r
+            ec{"बेलिझ"}\r
+        }\r
+        "America:Blanc-Sablon"{\r
+            ec{"ब्लांक-साब्लोन"}\r
+        }\r
+        "America:Boa_Vista"{\r
+            ec{"बाओ विस्टा"}\r
+        }\r
+        "America:Bogota"{\r
+            ec{"बोगोटा"}\r
+        }\r
+        "America:Boise"{\r
+            ec{"बोयस"}\r
+        }\r
+        "America:Buenos_Aires"{\r
+            ec{"ब्यूनस आयर्स"}\r
+        }\r
+        "America:Cambridge_Bay"{\r
+            ec{"केंब्रिज बे"}\r
+        }\r
+        "America:Campo_Grande"{\r
+            ec{"कॅम्पो ग्रांड"}\r
+        }\r
+        "America:Cancun"{\r
+            ec{"कानकुन"}\r
+        }\r
+        "America:Caracas"{\r
+            ec{"कराकस"}\r
+        }\r
+        "America:Catamarca"{\r
+            ec{"काटामारका"}\r
+        }\r
+        "America:Cayenne"{\r
+            ec{"केइन"}\r
+        }\r
+        "America:Cayman"{\r
+            ec{"कैमेन"}\r
+        }\r
+        "America:Chicago"{\r
+            ec{"शिकागो"}\r
+        }\r
+        "America:Chihuahua"{\r
+            ec{"चिहुआहुआ"}\r
+        }\r
+        "America:Coral_Harbour"{\r
+            ec{"अतिकोकॉन"}\r
+        }\r
+        "America:Cordoba"{\r
+            ec{"कोरडोबा"}\r
+        }\r
+        "America:Costa_Rica"{\r
+            ec{"कोस्ता रिका"}\r
+        }\r
+        "America:Creston"{\r
+            ec{"क्रेस्टोन"}\r
+        }\r
+        "America:Cuiaba"{\r
+            ec{"कुययबा"}\r
+        }\r
+        "America:Curacao"{\r
+            ec{"कुराकाओ"}\r
+        }\r
+        "America:Danmarkshavn"{\r
+            ec{"डेन्मार्कशॉन"}\r
+        }\r
+        "America:Dawson"{\r
+            ec{"डौसन"}\r
+        }\r
+        "America:Dawson_Creek"{\r
+            ec{"डौसन क्रिक"}\r
+        }\r
+        "America:Denver"{\r
+            ec{"डेन्वेर"}\r
+        }\r
+        "America:Detroit"{\r
+            ec{"डेट्रॉईट"}\r
+        }\r
+        "America:Dominica"{\r
+            ec{"डोमिनीका"}\r
+        }\r
+        "America:Edmonton"{\r
+            ec{"ऍडमोंटन"}\r
+        }\r
+        "America:Eirunepe"{\r
+            ec{"ईरुनेपे"}\r
+        }\r
+        "America:El_Salvador"{\r
+            ec{"एल साल्वाडोर"}\r
+        }\r
+        "America:Fort_Nelson"{\r
+            ec{"फोर्ट नेल्सन"}\r
+        }\r
+        "America:Fortaleza"{\r
+            ec{"फोर्टालेझा"}\r
+        }\r
+        "America:Glace_Bay"{\r
+            ec{"ग्लेस बे"}\r
+        }\r
+        "America:Godthab"{\r
+            ec{"नूक"}\r
+        }\r
+        "America:Goose_Bay"{\r
+            ec{"गूस बे"}\r
+        }\r
+        "America:Grand_Turk"{\r
+            ec{"ग्रँड तुर्क"}\r
+        }\r
+        "America:Grenada"{\r
+            ec{"ग्रेनॅडा"}\r
+        }\r
+        "America:Guadeloupe"{\r
+            ec{"ग्वाडेलोप"}\r
+        }\r
+        "America:Guatemala"{\r
+            ec{"ग्वाटेमाला"}\r
+        }\r
+        "America:Guayaquil"{\r
+            ec{"ग्वायेकिल"}\r
+        }\r
+        "America:Guyana"{\r
+            ec{"गुयाना"}\r
+        }\r
+        "America:Halifax"{\r
+            ec{"हेलिफॅक्स"}\r
+        }\r
+        "America:Havana"{\r
+            ec{"हवाना"}\r
+        }\r
+        "America:Hermosillo"{\r
+            ec{"हर्मोसिलो"}\r
+        }\r
+        "America:Indiana:Knox"{\r
+            ec{"नॉक्स, इंडियाना"}\r
+        }\r
+        "America:Indiana:Marengo"{\r
+            ec{"मारेंगो, इंडियाना"}\r
+        }\r
+        "America:Indiana:Petersburg"{\r
+            ec{"पिटर्सबर्ग, इंडियाना"}\r
+        }\r
+        "America:Indiana:Tell_City"{\r
+            ec{"टेल सिटी, इंडियाना"}\r
+        }\r
+        "America:Indiana:Vevay"{\r
+            ec{"वेवय, इंडियाना"}\r
+        }\r
+        "America:Indiana:Vincennes"{\r
+            ec{"विंसेनस, इंडियाना"}\r
+        }\r
+        "America:Indiana:Winamac"{\r
+            ec{"विनामॅक, इंडियाना"}\r
+        }\r
+        "America:Indianapolis"{\r
+            ec{"इंडियानापोलीस"}\r
+        }\r
+        "America:Inuvik"{\r
+            ec{"इनुविक"}\r
+        }\r
+        "America:Iqaluit"{\r
+            ec{"इकालुयीट"}\r
+        }\r
+        "America:Jamaica"{\r
+            ec{"जमैका"}\r
+        }\r
+        "America:Jujuy"{\r
+            ec{"जुजेय"}\r
+        }\r
+        "America:Juneau"{\r
+            ec{"जूनो"}\r
+        }\r
+        "America:Kentucky:Monticello"{\r
+            ec{"मोंटीसॅलो, केंटुकाय"}\r
+        }\r
+        "America:Kralendijk"{\r
+            ec{"क्रालेनडीक"}\r
+        }\r
+        "America:La_Paz"{\r
+            ec{"ला पाझ"}\r
+        }\r
+        "America:Lima"{\r
+            ec{"लिमा"}\r
+        }\r
+        "America:Los_Angeles"{\r
+            ec{"लॉस एंजलीस"}\r
+        }\r
+        "America:Louisville"{\r
+            ec{"लुईजविले"}\r
+        }\r
+        "America:Lower_Princes"{\r
+            ec{"लोवर प्रिंसेस क्वार्टर"}\r
+        }\r
+        "America:Maceio"{\r
+            ec{"मासियो"}\r
+        }\r
+        "America:Managua"{\r
+            ec{"मॅनाग्वा"}\r
+        }\r
+        "America:Manaus"{\r
+            ec{"मनौस"}\r
+        }\r
+        "America:Marigot"{\r
+            ec{"मेरीगॉट"}\r
+        }\r
+        "America:Martinique"{\r
+            ec{"मार्टिनिक"}\r
+        }\r
+        "America:Matamoros"{\r
+            ec{"माटामोरोस"}\r
+        }\r
+        "America:Mazatlan"{\r
+            ec{"माझाट्लान"}\r
+        }\r
+        "America:Mendoza"{\r
+            ec{"मेन्डोझा"}\r
+        }\r
+        "America:Menominee"{\r
+            ec{"मेनोमिनी"}\r
+        }\r
+        "America:Merida"{\r
+            ec{"मेरिडा"}\r
+        }\r
+        "America:Metlakatla"{\r
+            ec{"मेट्लाकाट्ला"}\r
+        }\r
+        "America:Mexico_City"{\r
+            ec{"मेक्सिको शार"}\r
+        }\r
+        "America:Miquelon"{\r
+            ec{"मिक्वेलोन"}\r
+        }\r
+        "America:Moncton"{\r
+            ec{"मोंक्टॉन"}\r
+        }\r
+        "America:Monterrey"{\r
+            ec{"मोंटेरी"}\r
+        }\r
+        "America:Montevideo"{\r
+            ec{"मोंटेव्हिडियो"}\r
+        }\r
+        "America:Montserrat"{\r
+            ec{"मॉन्टसेराट"}\r
+        }\r
+        "America:Nassau"{\r
+            ec{"नसाऊ"}\r
+        }\r
+        "America:New_York"{\r
+            ec{"न्यु यॉर्क"}\r
+        }\r
+        "America:Nipigon"{\r
+            ec{"निपिगोन"}\r
+        }\r
+        "America:Nome"{\r
+            ec{"नोमे"}\r
+        }\r
+        "America:Noronha"{\r
+            ec{"नोरोन्हा"}\r
+        }\r
+        "America:North_Dakota:Beulah"{\r
+            ec{"ब्यूल्लाह, उत्तर डाकोटा"}\r
+        }\r
+        "America:North_Dakota:Center"{\r
+            ec{"मध्य, उत्तर डाकोटा"}\r
+        }\r
+        "America:North_Dakota:New_Salem"{\r
+            ec{"न्यु सालेम, उत्तर डाकोटा"}\r
+        }\r
+        "America:Ojinaga"{\r
+            ec{"ओजिनागा"}\r
+        }\r
+        "America:Panama"{\r
+            ec{"पनामा"}\r
+        }\r
+        "America:Pangnirtung"{\r
+            ec{"पंगनिर्टुंग"}\r
+        }\r
+        "America:Paramaribo"{\r
+            ec{"परामारिबो"}\r
+        }\r
+        "America:Phoenix"{\r
+            ec{"फिनिक्स"}\r
+        }\r
+        "America:Port-au-Prince"{\r
+            ec{"पोर्ट-औ-प्रिन्स"}\r
+        }\r
+        "America:Port_of_Spain"{\r
+            ec{"पोर्ट ऑफ स्पेन"}\r
+        }\r
+        "America:Porto_Velho"{\r
+            ec{"पोर्टो वेल्हो"}\r
+        }\r
+        "America:Puerto_Rico"{\r
+            ec{"पिर्टो रिको"}\r
+        }\r
+        "America:Punta_Arenas"{\r
+            ec{"पुंटा अरेनास"}\r
+        }\r
+        "America:Rainy_River"{\r
+            ec{"पावसाळी न्हय"}\r
+        }\r
+        "America:Rankin_Inlet"{\r
+            ec{"रँकिन इनलॅट"}\r
+        }\r
+        "America:Recife"{\r
+            ec{"रेसीफ"}\r
+        }\r
+        "America:Regina"{\r
+            ec{"रेजीना"}\r
+        }\r
+        "America:Resolute"{\r
+            ec{"रिसोल्युट"}\r
+        }\r
+        "America:Rio_Branco"{\r
+            ec{"रियो ब्रांको"}\r
+        }\r
+        "America:Santarem"{\r
+            ec{"सांतारेम"}\r
+        }\r
+        "America:Santiago"{\r
+            ec{"सँटियागो"}\r
+        }\r
+        "America:Santo_Domingo"{\r
+            ec{"सांतो डोमिंगो"}\r
+        }\r
+        "America:Sao_Paulo"{\r
+            ec{"साओ पावलो"}\r
+        }\r
+        "America:Scoresbysund"{\r
+            ec{"इटोकॉरटॉर्मीट"}\r
+        }\r
+        "America:Sitka"{\r
+            ec{"सिट्का"}\r
+        }\r
+        "America:St_Barthelemy"{\r
+            ec{"सेंट बार्थेलेमी"}\r
+        }\r
+        "America:St_Johns"{\r
+            ec{"सेंट जॉन्स"}\r
+        }\r
+        "America:St_Kitts"{\r
+            ec{"सेंट किट्स"}\r
+        }\r
+        "America:St_Lucia"{\r
+            ec{"सेंट लुसीया"}\r
+        }\r
+        "America:St_Thomas"{\r
+            ec{"सेंट थॉमस"}\r
+        }\r
+        "America:St_Vincent"{\r
+            ec{"सेंट विन्सेंट"}\r
+        }\r
+        "America:Swift_Current"{\r
+            ec{"स्विफ्ट करंट"}\r
+        }\r
+        "America:Tegucigalpa"{\r
+            ec{"तेगुसिगल्पा"}\r
+        }\r
+        "America:Thule"{\r
+            ec{"थुले"}\r
+        }\r
+        "America:Thunder_Bay"{\r
+            ec{"थंडर बे"}\r
+        }\r
+        "America:Tijuana"{\r
+            ec{"तिजुआना"}\r
+        }\r
+        "America:Toronto"{\r
+            ec{"टॉरंटो"}\r
+        }\r
+        "America:Tortola"{\r
+            ec{"टोरटोला"}\r
+        }\r
+        "America:Vancouver"{\r
+            ec{"व्हँकुव्हर"}\r
+        }\r
+        "America:Whitehorse"{\r
+            ec{"व्हायटहॉर्स"}\r
+        }\r
+        "America:Winnipeg"{\r
+            ec{"विनीपेग"}\r
+        }\r
+        "America:Yakutat"{\r
+            ec{"याकुटाट"}\r
+        }\r
+        "America:Yellowknife"{\r
+            ec{"यलोक्नायफ"}\r
+        }\r
+        "Atlantic:Bermuda"{\r
+            ec{"बर्मुडा"}\r
+        }\r
         "Etc:UTC"{\r
             ls{"समन्वित वैश्विक वेळ"}\r
         }\r
@@ -15,9 +459,190 @@ kok{
         "Europe:London"{\r
             ld{"ब्रिटिश ग्रीष्म वेळ"}\r
         }\r
+        "Pacific:Easter"{\r
+            ec{"ईस्टर"}\r
+        }\r
+        "Pacific:Galapagos"{\r
+            ec{"गालापागोस"}\r
+        }\r
+        "meta:Africa_Central"{\r
+            ls{"मध्य आफ्रिका वेळ"}\r
+        }\r
+        "meta:Africa_Eastern"{\r
+            ls{"उदेंत आफ्रिका वेळ"}\r
+        }\r
+        "meta:Africa_Southern"{\r
+            ls{"दक्षिण आफ्रिका प्रमाणित वेळ"}\r
+        }\r
+        "meta:Africa_Western"{\r
+            ld{"अस्तंत आफ्रिका ग्रीष्म वेळ"}\r
+            lg{"अस्तंत आफ्रिका वेळ"}\r
+            ls{"अस्तंत आफ्रिका प्रमाणित वेळ"}\r
+        }\r
+        "meta:Alaska"{\r
+            ld{"अलास्का डेलायट वेळ"}\r
+            lg{"अलास्का वेळ"}\r
+            ls{"अलास्का प्रमाणित वेळ"}\r
+        }\r
+        "meta:Amazon"{\r
+            ld{"अमेझोन ग्रीष्म वेळ"}\r
+            lg{"अमेझोन वेळ"}\r
+            ls{"अमेझोन प्रमाणित वेळ"}\r
+        }\r
+        "meta:America_Central"{\r
+            ld{"मध्य डेलायट वेळ"}\r
+            lg{"मध्य वेळ"}\r
+            ls{"मध्य प्रमाणित वेळ"}\r
+        }\r
+        "meta:America_Eastern"{\r
+            ld{"उदेंतेचो डेलायट वेळ"}\r
+            lg{"उदेंत वेळ"}\r
+            ls{"उदेंत प्रमाणित वेळ"}\r
+        }\r
+        "meta:America_Mountain"{\r
+            ld{"पर्वतीय डेलायट वेळ"}\r
+            lg{"पर्वतीय वेळ"}\r
+            ls{"पर्वतीय प्रमाणित वेळ"}\r
+        }\r
+        "meta:America_Pacific"{\r
+            ld{"प्रशांत डेलायट वेळ"}\r
+            lg{"प्रशांत वेळ"}\r
+            ls{"प्रशांत प्रमाणित वेळ"}\r
+        }\r
+        "meta:Argentina"{\r
+            ld{"अर्जेंटिना ग्रीष्म वेळ"}\r
+            lg{"अर्जेंटिना वेळ"}\r
+            ls{"अर्जेंटिना प्रमाणित वेळ"}\r
+        }\r
+        "meta:Argentina_Western"{\r
+            ld{"अस्तंत अर्जेंटिना ग्रीष्म वेळ"}\r
+            lg{"अस्तंत अर्जेंटिना वेळ"}\r
+            ls{"अस्तंत अर्जेंटिना प्रमाणित वेळ"}\r
+        }\r
+        "meta:Atlantic"{\r
+            ld{"अटलांटीक डेलायट वेळ"}\r
+            lg{"अटलांटीक वेळ"}\r
+            ls{"अटलांटीक प्रमाणित वेळ"}\r
+        }\r
+        "meta:Bolivia"{\r
+            ls{"बोलिव्हिया वेळ"}\r
+        }\r
+        "meta:Brasilia"{\r
+            ld{"ब्राझिलिया ग्रीष्म वेळ"}\r
+            lg{"ब्राझिलिया वेळ"}\r
+            ls{"ब्राझिलिया प्रमाणित वेळ"}\r
+        }\r
+        "meta:Chile"{\r
+            ld{"चिली ग्रीष्म वेळ"}\r
+            lg{"चिली वेळ"}\r
+            ls{"चिली प्रमाणित वेळ"}\r
+        }\r
+        "meta:Colombia"{\r
+            ld{"कोलंबिया ग्रीष्म वेळ"}\r
+            lg{"कोलंबिया"}\r
+            ls{"कोलंबिया प्रमाणित वेळ"}\r
+        }\r
+        "meta:Cuba"{\r
+            ld{"क्युबा डेलायट वेळ"}\r
+            lg{"क्युबा वेळ"}\r
+            ls{"क्युबा प्रमाणित वेळ"}\r
+        }\r
+        "meta:Easter"{\r
+            ld{"ईस्टर आयलँड ग्रीष्म वेळ"}\r
+            lg{"ईस्टर आयलँड वेळ"}\r
+            ls{"ईस्टर आयलँड प्रमाणित वेळ"}\r
+        }\r
+        "meta:Ecuador"{\r
+            ls{"इक्वेडोर वेळ"}\r
+        }\r
+        "meta:Falkland"{\r
+            ld{"फॉकलँड आयलँड्स ग्रीष्म वेळ"}\r
+            lg{"फॉकलँड आयलँड्स वेळ"}\r
+            ls{"फॉकलँड आयलँड्स प्रमाणित वेळ"}\r
+        }\r
+        "meta:French_Guiana"{\r
+            ls{"फ्रेंच गयाना वेळ"}\r
+        }\r
+        "meta:Galapagos"{\r
+            ls{"गालापागोस वेळ"}\r
+        }\r
+        "meta:Greenland_Eastern"{\r
+            ld{"उदेंत ग्रीनलँड ग्रीष्म वेळ"}\r
+            lg{"उदेंत ग्रीनलँड वेळ"}\r
+            ls{"उदेंत ग्रीनलँड प्रमाणित वेळ"}\r
+        }\r
+        "meta:Greenland_Western"{\r
+            ld{"अस्तंत ग्रीनलँड ग्रीष्म वेळ"}\r
+            lg{"अस्तंत ग्रीनलँड वेळ"}\r
+            ls{"अस्तंत ग्रीनलँड प्रमाणित वेळ"}\r
+        }\r
+        "meta:Guyana"{\r
+            ls{"गुयाना वेळ"}\r
+        }\r
+        "meta:Hawaii_Aleutian"{\r
+            ld{"हवाई-अलेयुशिन डेलायट वेळ"}\r
+            lg{"हवाई-अलेयुशिन वेळ"}\r
+            ls{"हवाई-अलेयुशिन प्रमाणित वेळ"}\r
+        }\r
         "meta:India"{\r
             ls{"भारतीय समय"}\r
             ss{"IST"}\r
         }\r
+        "meta:Mexico_Northwest"{\r
+            ld{"वायव्य मेक्सिको डेलायट वेळ"}\r
+            lg{"वायव्य मेक्सिको वेळ"}\r
+            ls{"वायव्य मेक्सिको प्रमाणित वेळ"}\r
+        }\r
+        "meta:Mexico_Pacific"{\r
+            ld{"मेक्सिकन प्रशांत डेलायट वेळ"}\r
+            lg{"मेक्सिकन प्रशांत वेळ"}\r
+            ls{"मेक्सिकन प्रशांत प्रमाणित वेळ"}\r
+        }\r
+        "meta:Newfoundland"{\r
+            ld{"न्युफावंडलँड डेलायट वेळ"}\r
+            lg{"न्युफावंडलँड वेळ"}\r
+            ls{"न्युफावंडलँड प्रमाणित वेळ"}\r
+        }\r
+        "meta:Noronha"{\r
+            ld{"Vote फर्नांडो दी नोरोन्हा ग्रीष्म वेळ"}\r
+            lg{"फर्नांडो दी नोरोन्हा वेळ"}\r
+            ls{"फर्नांडो दी नोरोन्हा प्रमाणित वेळ"}\r
+        }\r
+        "meta:Paraguay"{\r
+            ld{"परागुआ ग्रीष्म वेळ"}\r
+            lg{"परागुआ वेळ"}\r
+            ls{"परागुआ प्रमाणित वेळ"}\r
+        }\r
+        "meta:Peru"{\r
+            ld{"पेरू ग्रीष्म वेळ"}\r
+            lg{"पेरू वेळ"}\r
+            ls{"पेरू प्रमाणित वेळ"}\r
+        }\r
+        "meta:Pierre_Miquelon"{\r
+            ld{"सेंट पियर आनी मिकलान डेलायट वेळ"}\r
+            lg{"सेंट पियर आनी मिकलान वेळ"}\r
+            ls{"सेंट पियर आनी मिकलान प्रमाणित वेळ"}\r
+        }\r
+        "meta:South_Georgia"{\r
+            ls{"दक्षिण जॉर्जिया वेळ"}\r
+        }\r
+        "meta:Suriname"{\r
+            ls{"सुरिनाम वेळ"}\r
+        }\r
+        "meta:Uruguay"{\r
+            ld{"उरुग्वे ग्रीष्म वेळ"}\r
+            lg{"उरुग्वे वेळ"}\r
+            ls{"उरुग्वे प्रमाणित वेळ"}\r
+        }\r
+        "meta:Venezuela"{\r
+            ls{"वेनेझुएला वेळ"}\r
+        }\r
+        fallbackFormat{"{1} ({0})"}\r
+        gmtFormat{"GMT{0}"}\r
+        gmtZeroFormat{"GMT"}\r
+        hourFormat{"+HH:mm;-HH:mm"}\r
+        regionFormat{"{0} वेळ"}\r
+        regionFormatDaylight{"{0} डेलायट वेळ"}\r
+        regionFormatStandard{"{0} प्रमाणित वेळ"}\r
     }\r
 }\r
index 27b782f..df08081 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 ks{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.41.34"}\r
     zoneStrings{\r
         "Africa:Abidjan"{\r
             ec{"عابِدجان"}\r
index 11772ae..ddf6af9 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 ksh{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.41.34"}\r
     zoneStrings{\r
         "Africa:Cairo"{\r
             ec{"Kaijro"}\r
diff --git a/source/data/zone/ku.txt b/source/data/zone/ku.txt
new file mode 100644 (file)
index 0000000..38409ee
--- /dev/null
@@ -0,0 +1,5 @@
+// © 2016 and later: Unicode, Inc. and others.\r
+// License & terms of use: http://www.unicode.org/copyright.html#License\r
+ku{\r
+    Version{"2.1.44.82"}\r
+}\r
index dd763ab..9fa7cdd 100644 (file)
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 kw{\r
-    Version{"2.1.38.69"}\r
+    Version{"2.1.43.65"}\r
 }\r
index e4c7c10..3b00290 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 ky{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.65"}\r
     zoneStrings{\r
         "Africa:Abidjan"{\r
             ec{"Абиджан"}\r
@@ -487,7 +487,7 @@ ky{
             ec{"Панама"}\r
         }\r
         "America:Pangnirtung"{\r
-            ec{"Пангиртуӊ"}\r
+            ec{"Пангиртуң"}\r
         }\r
         "America:Paramaribo"{\r
             ec{"Парамарибо"}\r
@@ -763,7 +763,7 @@ ky{
             ec{"Куала Лумпур"}\r
         }\r
         "Asia:Kuching"{\r
-            ec{"Кучиӊ"}\r
+            ec{"Кучиң"}\r
         }\r
         "Asia:Kuwait"{\r
             ec{"Кувейт"}\r
@@ -1516,7 +1516,7 @@ ky{
             ls{"Француз Түштүгү жана Антарктика убактысы"}\r
         }\r
         "meta:GMT"{\r
-            ls{"GMT, кышкы убакыты"}\r
+            ls{"Гринвич боюнча орточо убакыт"}\r
         }\r
         "meta:Galapagos"{\r
             ls{"Галапагос убактысы"}\r
@@ -1543,7 +1543,7 @@ ky{
             ls{"Батыш Гренландия кышкы убактысы"}\r
         }\r
         "meta:Gulf"{\r
-            ls{"Ð\9fеÑ\80Ñ\81иÑ\8f Ð±Ñ\83лÑ\83Ò£Ñ\83нÑ\83н Ð¶Ð°Ð¹ÐºÑ\8b убакыты"}\r
+            ls{"Ð\91Ñ\83лÑ\83ңдÑ\83н Ñ\81Ñ\82андаÑ\80Ñ\82Ñ\82Ñ\8bк убакыты"}\r
         }\r
         "meta:Guyana"{\r
             ls{"Гвиана убактысы"}\r
@@ -1689,14 +1689,14 @@ ky{
             ls{"Непал убактысы"}\r
         }\r
         "meta:New_Caledonia"{\r
-            ld{"Жаӊы Каледония жайкы убактысы"}\r
-            lg{"Жаӊы Каледония убактысы"}\r
-            ls{"Жаӊы Каледония кышкы убакыты"}\r
+            ld{"Жаңы Каледония жайкы убактысы"}\r
+            lg{"Жаңы Каледония убактысы"}\r
+            ls{"Жаңы Каледония кышкы убакыты"}\r
         }\r
         "meta:New_Zealand"{\r
             ld{"Жаңы Зеландия жайкы убакыты"}\r
-            lg{"Жаӊы Зеландия убактысы"}\r
-            ls{"Жаӊы Зеландия кышкы убакыты"}\r
+            lg{"Жаңы Зеландия убактысы"}\r
+            ls{"Жаңы Зеландия кышкы убакыты"}\r
         }\r
         "meta:Newfoundland"{\r
             ld{"Нюфаундлэнд жайкы убактысы"}\r
@@ -1733,7 +1733,7 @@ ky{
             ls{"Палау убактысы"}\r
         }\r
         "meta:Papua_New_Guinea"{\r
-            ls{"Ð\9fапÑ\83а-Ð\96аңÑ\8b Ð\93винеÑ\8f Ñ\83бакÑ\82Ñ\8bÑ\81ы"}\r
+            ls{"Ð\9fапÑ\83а-Ð\96аңÑ\8b Ð\93винеÑ\8f Ñ\83бакÑ\8bÑ\82ы"}\r
         }\r
         "meta:Paraguay"{\r
             ld{"Парагвай жайкы убактысы"}\r
index 3ffa424..962584c 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 lb{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.91"}\r
     zoneStrings{\r
         "Africa:Accra"{\r
             ec{"Accra"}\r
index 481cc4f..91f73da 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 lo{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.50"}\r
     zoneStrings{\r
         "Africa:Abidjan"{\r
             ec{"ອາບິດແຈນ"}\r
index 62e4417..3e15fd0 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 lrc{\r
-    Version{"2.1.38.69"}\r
+    Version{"2.1.43.65"}\r
     zoneStrings{\r
         "Etc:Unknown"{\r
             ec{"نادیار"}\r
index bc484e5..aba95f3 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 lt{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.91"}\r
     zoneStrings{\r
         "Africa:Abidjan"{\r
             ec{"Abidžanas"}\r
index 153ccdd..c36d671 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 lv{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.91"}\r
     zoneStrings{\r
         "Africa:Abidjan"{\r
             ec{"Abidžana"}\r
index cb14071..96b4157 100644 (file)
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 mg{\r
-    Version{"2.1.39.11"}\r
+    Version{"2.1.43.94"}\r
 }\r
diff --git a/source/data/zone/mi.txt b/source/data/zone/mi.txt
new file mode 100644 (file)
index 0000000..03a546f
--- /dev/null
@@ -0,0 +1,195 @@
+// © 2016 and later: Unicode, Inc. and others.\r
+// License & terms of use: http://www.unicode.org/copyright.html#License\r
+mi{\r
+    Version{"2.1.44.15"}\r
+    zoneStrings{\r
+        "America:Araguaina"{\r
+            ec{"Araguaina"}\r
+        }\r
+        "America:Argentina:La_Rioja"{\r
+            ec{"La Rioja"}\r
+        }\r
+        "America:Argentina:Rio_Gallegos"{\r
+            ec{"Rio Gallegos"}\r
+        }\r
+        "America:Argentina:Salta"{\r
+            ec{"Salta"}\r
+        }\r
+        "America:Argentina:San_Juan"{\r
+            ec{"San Juan"}\r
+        }\r
+        "America:Argentina:San_Luis"{\r
+            ec{"San Luis"}\r
+        }\r
+        "America:Argentina:Tucuman"{\r
+            ec{"Tucuman"}\r
+        }\r
+        "America:Argentina:Ushuaia"{\r
+            ec{"Ushuaia"}\r
+        }\r
+        "America:Asuncion"{\r
+            ec{"Asuncion"}\r
+        }\r
+        "America:Bahia"{\r
+            ec{"Bahia"}\r
+        }\r
+        "America:Belem"{\r
+            ec{"Belem"}\r
+        }\r
+        "America:Boa_Vista"{\r
+            ec{"Boa Vista"}\r
+        }\r
+        "America:Bogota"{\r
+            ec{"Bogota"}\r
+        }\r
+        "America:Buenos_Aires"{\r
+            ec{"Buenos Aires"}\r
+        }\r
+        "America:Campo_Grande"{\r
+            ec{"Campo Grande"}\r
+        }\r
+        "America:Caracas"{\r
+            ec{"Caracas"}\r
+        }\r
+        "America:Catamarca"{\r
+            ec{"Catamarca"}\r
+        }\r
+        "America:Cayenne"{\r
+            ec{"Cayenne"}\r
+        }\r
+        "America:Cordoba"{\r
+            ec{"Cordoba"}\r
+        }\r
+        "America:Cuiaba"{\r
+            ec{"Cuiaba"}\r
+        }\r
+        "America:Eirunepe"{\r
+            ec{"Eirunepe"}\r
+        }\r
+        "America:Fortaleza"{\r
+            ec{"Fortaleza"}\r
+        }\r
+        "America:Guayaquil"{\r
+            ec{"Guayaquil"}\r
+        }\r
+        "America:Guyana"{\r
+            ec{"Guyana"}\r
+        }\r
+        "America:Jujuy"{\r
+            ec{"Jujuy"}\r
+        }\r
+        "America:La_Paz"{\r
+            ec{"La Paz"}\r
+        }\r
+        "America:Lima"{\r
+            ec{"Lima"}\r
+        }\r
+        "America:Maceio"{\r
+            ec{"Maceio"}\r
+        }\r
+        "America:Manaus"{\r
+            ec{"Manaus"}\r
+        }\r
+        "America:Mendoza"{\r
+            ec{"Mendoza"}\r
+        }\r
+        "America:Montevideo"{\r
+            ec{"Montevideo"}\r
+        }\r
+        "America:Noronha"{\r
+            ec{"Noronha"}\r
+        }\r
+        "America:Paramaribo"{\r
+            ec{"Paramaribo"}\r
+        }\r
+        "America:Porto_Velho"{\r
+            ec{"Porto Velho"}\r
+        }\r
+        "America:Recife"{\r
+            ec{"Recife"}\r
+        }\r
+        "America:Rio_Branco"{\r
+            ec{"Rio Branco"}\r
+        }\r
+        "America:Santarem"{\r
+            ec{"Santarem"}\r
+        }\r
+        "America:Santiago"{\r
+            ec{"Santiago"}\r
+        }\r
+        "America:Sao_Paulo"{\r
+            ec{"Sao Paulo"}\r
+        }\r
+        "Atlantic:Stanley"{\r
+            ec{"Stanley"}\r
+        }\r
+        "Etc:UTC"{\r
+            ls{"Wā Aonui Kōtuitui"}\r
+        }\r
+        "Etc:Unknown"{\r
+            ec{"Tāone Tē Mōhiotia"}\r
+        }\r
+        "Pacific:Auckland"{\r
+            ec{"Tāmaki Makaurau"}\r
+        }\r
+        "Pacific:Chatham"{\r
+            ec{"Rēkohu"}\r
+        }\r
+        "Pacific:Easter"{\r
+            ec{"Easter"}\r
+        }\r
+        "Pacific:Galapagos"{\r
+            ec{"Galapagos"}\r
+        }\r
+        "meta:America_Central"{\r
+            ld{"Wā Awatea Waenga"}\r
+            lg{"Wā Waenga"}\r
+            ls{"Wā Arowhānui Waenga"}\r
+        }\r
+        "meta:America_Eastern"{\r
+            ld{"Wā Awatea Rāwhiti"}\r
+            lg{"Wā Rāwhiti"}\r
+            ls{"Wā Arowhānui Rāwhiti"}\r
+        }\r
+        "meta:America_Mountain"{\r
+            ld{"Wā Awatea Maunga"}\r
+            lg{"Wā Maunga"}\r
+            ls{"Wā Arowhānui Maunga"}\r
+        }\r
+        "meta:America_Pacific"{\r
+            ld{"Wā Awatea Kiwa"}\r
+            lg{"Wā Kiwa"}\r
+            ls{"Wā Arowhānui Kiwa"}\r
+        }\r
+        "meta:Atlantic"{\r
+            ld{"Wā Awatea Ranatiki"}\r
+            lg{"Wā Ranatiki"}\r
+            ls{"Wā Arowhānui Ranatiki"}\r
+        }\r
+        "meta:Europe_Central"{\r
+            ld{"Wā Raumati Uropi Waenga"}\r
+            lg{"Wā Uropi Waenga"}\r
+            ls{"Wā Arowhānui Uropi Waenga"}\r
+        }\r
+        "meta:Europe_Eastern"{\r
+            ld{"Wā Raumati Uropi Rāwhiti"}\r
+            lg{"Wā Uropi Rāwhiti"}\r
+            ls{"Wā Arowhānui Uropi Rāwhiti"}\r
+        }\r
+        "meta:Europe_Western"{\r
+            ld{"Wā Raumati Uropi Uru"}\r
+            lg{"Wā Uropi Uru"}\r
+            ls{"Wā Arowhānui Uropi Uru"}\r
+        }\r
+        "meta:GMT"{\r
+            ls{"Wā Toharite Greenwich"}\r
+        }\r
+        fallbackFormat{"{1} ({0})"}\r
+        gmtFormat{"GMT{0}"}\r
+        gmtZeroFormat{"GMT"}\r
+        hourFormat{"+HH:mm;-HH:mm"}\r
+        regionFormat{"{0}"}\r
+        regionFormatDaylight{"{0} (+1)"}\r
+        regionFormatStandard{"{0} (+0)"}\r
+    }\r
+}\r
index e0e66a6..85f3a63 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 mk{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.65"}\r
     zoneStrings{\r
         "Africa:Abidjan"{\r
             ec{"Абиџан"}\r
index 9ef63ce..9977b66 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 ml{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.50"}\r
     zoneStrings{\r
         "Africa:Abidjan"{\r
             ec{"അബിദ്‌ജാൻ‌"}\r
index 87e63b6..92b153f 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 mn{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.94"}\r
     zoneStrings{\r
         "Africa:Abidjan"{\r
             ec{"Абижан"}\r
@@ -1882,8 +1882,8 @@ mn{
         gmtFormat{"GMT{0}"}\r
         gmtZeroFormat{"GMT"}\r
         hourFormat{"+HH:mm;-HH:mm"}\r
-        regionFormat{"{0} цаг"}\r
-        regionFormatDaylight{"{0} зуны цаг"}\r
-        regionFormatStandard{"{0} стандарт цаг"}\r
+        regionFormat{"{0} цаг"}\r
+        regionFormatDaylight{"{0} зуны цаг"}\r
+        regionFormatStandard{"{0} стандарт цаг"}\r
     }\r
 }\r
index 4ebcb8d..3f29875 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 mr{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.65"}\r
     zoneStrings{\r
         "Africa:Abidjan"{\r
             ec{"अबिद्जान"}\r
index 772e8ba..a647502 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 ms{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.91"}\r
     zoneStrings{\r
         "Africa:Abidjan"{\r
             ec{"Abidjan"}\r
index 9a793a9..93a536e 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 mt{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.94"}\r
     zoneStrings{\r
         "Africa:Abidjan"{\r
             ec{"Abidjan"}\r
index 84f6c70..308aa25 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 my{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.88"}\r
     zoneStrings{\r
         "Africa:Abidjan"{\r
             ec{"အာဘီဂျန်"}\r
@@ -52,7 +52,7 @@ my{
             ec{"ကိုနာကရီး"}\r
         }\r
         "Africa:Dakar"{\r
-            ec{"á\80\92á\80\80á\80¹ကား"}\r
+            ec{"á\80\92á\80\80á\80ºကား"}\r
         }\r
         "Africa:Dar_es_Salaam"{\r
             ec{"ဒါရက်စ်ဆာလမ်"}\r
@@ -160,7 +160,7 @@ my{
             ec{"ဗင်းဟူးခ်"}\r
         }\r
         "America:Adak"{\r
-            ec{"á\80¡á\80¬á\80\92á\80\81á\80º"}\r
+            ec{"á\80¡á\80¬á\80\92á\80\81á\80»"}\r
         }\r
         "America:Anchorage"{\r
             ec{"အန်ကာရေ့ဂျ်"}\r
@@ -244,7 +244,7 @@ my{
             ec{"ကာရာကာစ်"}\r
         }\r
         "America:Catamarca"{\r
-            ec{"á\80\80á\80¬á\80\90á\80¬á\80\99á\80¬á\80\9bá\80ºကာ"}\r
+            ec{"á\80\80á\80¬á\80\90á\80¬á\80\99á\80¬á\80\9bá\80»ကာ"}\r
         }\r
         "America:Cayenne"{\r
             ec{"ကေညင်န်"}\r
@@ -406,7 +406,7 @@ my{
             ec{"လိုအာပရင့်စ် ကွာတာ"}\r
         }\r
         "America:Maceio"{\r
-            ec{"á\80\99á\80¬á\80\86á\80²á\80\9eá\80¼ာ"}\r
+            ec{"á\80\99á\80¬á\80\86á\80²á\80\9eá\80½ာ"}\r
         }\r
         "America:Managua"{\r
             ec{"မာနာဂွါ"}\r
@@ -439,7 +439,7 @@ my{
             ec{"မက်တ်လာကက်လာ"}\r
         }\r
         "America:Mexico_City"{\r
-            ec{"á\80\99á\80\80á\80¹ကဆီကို စီးတီး"}\r
+            ec{"á\80\99á\80\80á\80ºကဆီကို စီးတီး"}\r
         }\r
         "America:Miquelon"{\r
             ec{"မီကွီလွန်"}\r
@@ -655,7 +655,7 @@ my{
             ec{"အက်တာဥု"}\r
         }\r
         "Asia:Aqtobe"{\r
-            ec{"á\80¡á\80¬á\80\81á\80ºတူးဘီ"}\r
+            ec{"á\80¡á\80¬á\80\81á\80»တူးဘီ"}\r
         }\r
         "Asia:Ashgabat"{\r
             ec{"အာရှ်ဂါဘာဒ်"}\r
@@ -688,7 +688,7 @@ my{
             ec{"ဘရူနိုင်း"}\r
         }\r
         "Asia:Calcutta"{\r
-            ec{"á\80\80á\80­á\80¯á\80\9cá\80ºá\80\80á\80\90á\80¹တား"}\r
+            ec{"á\80\80á\80­á\80¯á\80\9cá\80»á\80\80á\80\90á\80ºတား"}\r
         }\r
         "Asia:Chita"{\r
             ec{"ချီတာ"}\r
@@ -703,7 +703,7 @@ my{
             ec{"ဒမားစကပ်"}\r
         }\r
         "Asia:Dhaka"{\r
-            ec{"á\80\92á\80\80á\80¹ကာ"}\r
+            ec{"á\80\92á\80\80á\80ºကာ"}\r
         }\r
         "Asia:Dili"{\r
             ec{"ဒစ်လီ"}\r
@@ -727,7 +727,7 @@ my{
             ec{"ဟောင်ကောင်"}\r
         }\r
         "Asia:Hovd"{\r
-            ec{"á\80\9fá\80­á\80¯á\80¸á\80\97á\80º"}\r
+            ec{"á\80\9fá\80­á\80¯á\80¸á\80\97á\80»"}\r
         }\r
         "Asia:Irkutsk"{\r
             ec{"အီရူခူတ်"}\r
@@ -742,7 +742,7 @@ my{
             ec{"ဂျေရုဆလင်"}\r
         }\r
         "Asia:Kabul"{\r
-            ec{"á\80\80á\80\98á\80°á\80¸á\80\9cá\80º"}\r
+            ec{"á\80\80á\80\98á\80°á\80¸á\80\9cá\80»"}\r
         }\r
         "Asia:Kamchatka"{\r
             ec{"ခမ်ချာ့ခါ"}\r
@@ -751,7 +751,7 @@ my{
             ec{"ကရာချိ"}\r
         }\r
         "Asia:Katmandu"{\r
-            ec{"á\80\81á\80\90á\80¹á\80\90á\80\99á\80\94á\80¹ဒူ"}\r
+            ec{"á\80\81á\80\90á\80ºá\80\90á\80\99á\80\94á\80ºဒူ"}\r
         }\r
         "Asia:Khandyga"{\r
             ec{"ခန်ဒိုင်ဂါ"}\r
index e4db435..b72af34 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 mzn{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.41.34"}\r
     zoneStrings{\r
         fallbackFormat{"{1} ({0})"}\r
         gmtFormat{"GMT{0}"}\r
index 9966d08..33668b7 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 nb{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.2"}\r
     zoneStrings{\r
         "Africa:Abidjan"{\r
             ec{"Abidjan"}\r
index e9cea0d..9e8a128 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 ne{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.50"}\r
     zoneStrings{\r
         "Africa:Abidjan"{\r
             ec{"अविड्जान"}\r
index a23f844..3d1ad2a 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 nl{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.45.14"}\r
     zoneStrings{\r
         "Africa:Abidjan"{\r
             ec{"Abidjan"}\r
@@ -953,6 +953,7 @@ nl{
         }\r
         "Etc:UTC"{\r
             ls{"Gecoördineerde wereldtijd"}\r
+            ss{"UTC"}\r
         }\r
         "Etc:Unknown"{\r
             ec{"onbekende stad"}\r
index 896ceee..1c1da14 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 nn{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.94"}\r
     zoneStrings{\r
         "Africa:Abidjan"{\r
             ec{"Abidjan"}\r
index 98a6fa6..82f5737 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 om{\r
-    Version{"2.1.38.69"}\r
+    Version{"2.1.43.94"}\r
     zoneStrings{\r
         gmtFormat{"GMT{0}"}\r
         hourFormat{"+HH:mm;-HH:mm"}\r
index e9408e6..5df35f1 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 or{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.65"}\r
     zoneStrings{\r
         "Africa:Abidjan"{\r
             ec{"ଆବିଦଜାନ"}\r
index 39de4f8..3118420 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 pa{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.65"}\r
     zoneStrings{\r
         "Africa:Abidjan"{\r
             ec{"ਅਬੀਦਜਾਨ"}\r
index 1f25aaf..d4faa44 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 pl{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.50"}\r
     zoneStrings{\r
         "Africa:Abidjan"{\r
             ec{"Abidżan"}\r
@@ -1578,7 +1578,7 @@ pl{
             ls{"Kobdo (czas standardowy)"}\r
         }\r
         "meta:India"{\r
-            ls{"czas indyjski"}\r
+            ls{"czas indyjski standardowy"}\r
         }\r
         "meta:Indian_Ocean"{\r
             ls{"Ocean Indyjski"}\r
@@ -1694,9 +1694,9 @@ pl{
             ls{"Ułan Bator (czas standardowy)"}\r
         }\r
         "meta:Moscow"{\r
-            ld{"czas moskiewski letni"}\r
-            lg{"czas moskiewski"}\r
-            ls{"czas moskiewski standardowy"}\r
+            ld{"Moskwa (letni)"}\r
+            lg{"Moskwa"}\r
+            ls{"Moskwa (standardowy)"}\r
         }\r
         "meta:Myanmar"{\r
             ls{"Mjanma"}\r
index dcbba3f..efd4ba3 100644 (file)
Binary files a/source/data/zone/pool.res and b/source/data/zone/pool.res differ
index 2780e53..ec379e9 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 ps{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.94"}\r
     zoneStrings{\r
         "Africa:Abidjan"{\r
             ec{"ابيجان"}\r
@@ -105,9 +105,15 @@ ps{
         "Africa:Malabo"{\r
             ec{"مالابو"}\r
         }\r
+        "Africa:Maputo"{\r
+            ec{"ماپوټو"}\r
+        }\r
         "Africa:Maseru"{\r
             ec{"مسرو"}\r
         }\r
+        "Africa:Mbabane"{\r
+            ec{"Mbabane"}\r
+        }\r
         "Africa:Mogadishu"{\r
             ec{"موگديشو"}\r
         }\r
@@ -117,6 +123,9 @@ ps{
         "Africa:Nairobi"{\r
             ec{"نايروبي"}\r
         }\r
+        "Africa:Ndjamena"{\r
+            ec{"نجامینا"}\r
+        }\r
         "Africa:Niamey"{\r
             ec{"نیمي"}\r
         }\r
@@ -258,6 +267,9 @@ ps{
         "America:Curacao"{\r
             ec{"کیکاو"}\r
         }\r
+        "America:Danmarkshavn"{\r
+            ec{"ډنمارک هاربر"}\r
+        }\r
         "America:Dawson"{\r
             ec{"داوسن"}\r
         }\r
@@ -327,6 +339,9 @@ ps{
         "America:Indiana:Marengo"{\r
             ec{"مارینګ، انډیانا"}\r
         }\r
+        "America:Indiana:Petersburg"{\r
+            ec{"پیتربورګ، انډيانا"}\r
+        }\r
         "America:Indiana:Tell_City"{\r
             ec{"ښار، انډیا ته ووایی"}\r
         }\r
@@ -441,6 +456,15 @@ ps{
         "America:Noronha"{\r
             ec{"نورونها"}\r
         }\r
+        "America:North_Dakota:Beulah"{\r
+            ec{"بيلاه، شمالي داکوتا"}\r
+        }\r
+        "America:North_Dakota:Center"{\r
+            ec{"مرکز، د شمالي ټاپو"}\r
+        }\r
+        "America:North_Dakota:New_Salem"{\r
+            ec{"نوی سلیم، شمالي داکوتا"}\r
+        }\r
         "America:Ojinaga"{\r
             ec{"اوجنګا"}\r
         }\r
@@ -501,6 +525,9 @@ ps{
         "America:Sao_Paulo"{\r
             ec{"ساو پاولو"}\r
         }\r
+        "America:Scoresbysund"{\r
+            ec{"Ittoqqortoormiit"}\r
+        }\r
         "America:Sitka"{\r
             ec{"سیټکا"}\r
         }\r
@@ -600,6 +627,9 @@ ps{
         "Asia:Amman"{\r
             ec{"اممان"}\r
         }\r
+        "Asia:Anadyr"{\r
+            ec{"اناډير"}\r
+        }\r
         "Asia:Aqtau"{\r
             ec{"اکاټو"}\r
         }\r
@@ -642,6 +672,9 @@ ps{
         "Asia:Chita"{\r
             ec{"چيتا"}\r
         }\r
+        "Asia:Choibalsan"{\r
+            ec{"Choibalsan"}\r
+        }\r
         "Asia:Colombo"{\r
             ec{"کولمبو"}\r
         }\r
@@ -807,6 +840,9 @@ ps{
         "Asia:Ulaanbaatar"{\r
             ec{"اللانبیر"}\r
         }\r
+        "Asia:Urumqi"{\r
+            ec{"Urumqi"}\r
+        }\r
         "Asia:Ust-Nera"{\r
             ec{"اوسترا"}\r
         }\r
@@ -900,6 +936,9 @@ ps{
         "Europe:Andorra"{\r
             ec{"اندورا"}\r
         }\r
+        "Europe:Astrakhan"{\r
+            ec{"آسترخان"}\r
+        }\r
         "Europe:Athens"{\r
             ec{"ایترین"}\r
         }\r
@@ -1031,6 +1070,12 @@ ps{
         "Europe:Stockholm"{\r
             ec{"استولوم"}\r
         }\r
+        "Europe:Tallinn"{\r
+            ec{"تالين"}\r
+        }\r
+        "Europe:Tirane"{\r
+            ec{"Tirane"}\r
+        }\r
         "Europe:Ulyanovsk"{\r
             ec{"ایلیانوفس"}\r
         }\r
@@ -1163,6 +1208,9 @@ ps{
         "Pacific:Palau"{\r
             ec{"پلو"}\r
         }\r
+        "Pacific:Pitcairn"{\r
+            ec{"Pitcairn"}\r
+        }\r
         "Pacific:Ponape"{\r
             ec{"پونپي"}\r
         }\r
@@ -1324,6 +1372,9 @@ ps{
             lg{"کیپ وردډ وخت"}\r
             ls{"کیپ وردډ معياري وخت"}\r
         }\r
+        "meta:Chamorro"{\r
+            ls{"چمارو معياري وخت"}\r
+        }\r
         "meta:Chatham"{\r
             ld{"د چتام ورځی وخت"}\r
             lg{"چامام وخت"}\r
@@ -1383,7 +1434,7 @@ ps{
             ls{"د اکوادور وخت"}\r
         }\r
         "meta:Europe_Central"{\r
-            ld{"د مرکزي اروپا د اوړي وخت"}\r
+            ld{"وسطي اروپايي د اوړي وخت"}\r
             lg{"منځنۍ اروپا وخت"}\r
             ls{"د مرکزي اروپا معیاري وخت"}\r
         }\r
@@ -1420,6 +1471,11 @@ ps{
         "meta:Gambier"{\r
             ls{"د ګیمبریر وخت"}\r
         }\r
+        "meta:Georgia"{\r
+            ld{"د جورجيا د اوړي وخت"}\r
+            lg{"جورجیا وخت"}\r
+            ls{"جورجیا معیاري وخت"}\r
+        }\r
         "meta:Gilbert_Islands"{\r
             ls{"د ګیلبرټ جزیره وخت"}\r
         }\r
@@ -1693,7 +1749,7 @@ ps{
             ls{"ټیټيټي وخت"}\r
         }\r
         "meta:Taipei"{\r
-            ld{"تاپÙ\8a Ø¯ Ù\88رÚ\81Û\90 Ø¯ Ø±Ú¼Ø§ وخت"}\r
+            ld{"د ØªØ§Ù¾Ù\8a Ø¯ Ø±Ú¼Ø§ Ù\88رÚ\81Û\8d وخت"}\r
             lg{"تاپي وخت"}\r
             ls{"تاپي معياري وخت"}\r
         }\r
@@ -1716,6 +1772,9 @@ ps{
             lg{"ترکمانستان وخت"}\r
             ls{"ترکمنستان معياري وخت"}\r
         }\r
+        "meta:Tuvalu"{\r
+            ls{"د تووالو وخت"}\r
+        }\r
         "meta:Uruguay"{\r
             ld{"یوروګوای اوړي وخت"}\r
             lg{"یوروګوای وخت"}\r
@@ -1740,25 +1799,28 @@ ps{
             ls{"ولادیوستکو معياري وخت"}\r
         }\r
         "meta:Volgograd"{\r
-            ld{"د ولگګراډ سمر وخت"}\r
-            lg{"د ولګاجرا وخت"}\r
-            ls{"دګګراډر معياري وخت"}\r
+            ld{"د والګوګراد د اوړي وخت"}\r
+            lg{"د والګوګراد وخت"}\r
+            ls{"د والګوګراد معياري وخت"}\r
         }\r
         "meta:Vostok"{\r
             ls{"د واستوک وخت"}\r
         }\r
+        "meta:Wake"{\r
+            ls{"دک ټاپو وخت"}\r
+        }\r
         "meta:Wallis"{\r
             ls{"والیس او فوتونا وخت"}\r
         }\r
         "meta:Yakutsk"{\r
-            ld{"داککوسک سمر وخت"}\r
-            lg{"داککوس وخت"}\r
-            ls{"داککوسک معياري وخت"}\r
+            ld{"ياکوټسک د اوړي وخت"}\r
+            lg{"ياکوټسک وخت"}\r
+            ls{"ياکوټسک معياري وخت"}\r
         }\r
         "meta:Yekaterinburg"{\r
-            ld{"د یاراتینګینګ ګرم موسم"}\r
-            lg{"د یاراتینګینګ وخت"}\r
-            ls{"د یاراتینګینبرین معياري وخت"}\r
+            ld{"د ياکټرنبرګ د اوړي وخت"}\r
+            lg{"د ياکيټرنبرګ وخت"}\r
+            ls{"د ياکيټرنبرګ معياري وخت"}\r
         }\r
         fallbackFormat{"{1} ({0})"}\r
         gmtFormat{"GMT{0}"}\r
index 10c6556..7eebfd6 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 pt{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.65"}\r
     zoneStrings{\r
         "Africa:Abidjan"{\r
             ec{"Abidjan"}\r
@@ -904,7 +904,7 @@ pt{
             ec{"Madeira"}\r
         }\r
         "Atlantic:Reykjavik"{\r
-            ec{"Reiquiavique"}\r
+            ec{"Reykjavík"}\r
         }\r
         "Atlantic:South_Georgia"{\r
             ec{"Geórgia do Sul"}\r
index ee0d86e..c0a1cff 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 pt_PT{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.9"}\r
     zoneStrings{\r
         "Africa:Addis_Ababa"{\r
             ec{"Adis-Abeba"}\r
@@ -144,6 +144,9 @@ pt_PT{
         "Atlantic:Faeroe"{\r
             ec{"Faroé"}\r
         }\r
+        "Atlantic:Reykjavik"{\r
+            ec{"Reiquiavique"}\r
+        }\r
         "Australia:Lord_Howe"{\r
             ec{"Ilha de Lord Howe"}\r
         }\r
@@ -265,7 +268,7 @@ pt_PT{
         }\r
         "meta:America_Mountain"{\r
             ld{"Hora de verão da Montanha"}\r
-            lg{"Hora de Montanha"}\r
+            lg{"Hora da Montanha"}\r
             ls{"Hora padrão da Montanha"}\r
         }\r
         "meta:America_Pacific"{\r
@@ -352,9 +355,9 @@ pt_PT{
             ss{"AZOT"}\r
         }\r
         "meta:Bangladesh"{\r
-            ld{"Hora de verão do Bangladesh"}\r
-            lg{"Hora do Bangladesh"}\r
-            ls{"Hora padrão do Bangladesh"}\r
+            ld{"Hora de verão do Bangladeche"}\r
+            lg{"Hora do Bangladeche"}\r
+            ls{"Hora padrão do Bangladeche"}\r
         }\r
         "meta:Bhutan"{\r
             ls{"Hora do Butão"}\r
index b8a25be..33a59b0 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 qu{\r
-    Version{"2.1.38.72"}\r
+    Version{"2.1.43.94"}\r
     zoneStrings{\r
         "Africa:Abidjan"{\r
             ec{"Abidjan"}\r
index e8c34dd..b5d04a1 100644 (file)
@@ -1,6 +1,6 @@
 # © 2016 and later: Unicode, Inc. and others.\r
 # License & terms of use: http://www.unicode.org/copyright.html#License\r
-ZONE_CLDR_VERSION = 33.1\r
+ZONE_CLDR_VERSION = 34\r
 # A list of txt's to build\r
 # Note:\r
 #\r
@@ -87,38 +87,39 @@ ZONE_SOURCE = af.txt agq.txt ak.txt am.txt\
  fur.txt fy.txt ga.txt gd.txt gl.txt\\r
  gsw.txt gu.txt guz.txt gv.txt ha.txt\\r
  haw.txt he.txt hi.txt hr.txt hsb.txt\\r
- hu.txt hy.txt id.txt ig.txt ii.txt\\r
- is.txt it.txt ja.txt jgo.txt jmc.txt\\r
- ka.txt kab.txt kam.txt kde.txt kea.txt\\r
- khq.txt ki.txt kk.txt kkj.txt kl.txt\\r
- kln.txt km.txt kn.txt ko.txt ko_KP.txt\\r
- kok.txt ks.txt ksb.txt ksf.txt ksh.txt\\r
- kw.txt ky.txt lag.txt lb.txt lg.txt\\r
- lkt.txt ln.txt lo.txt lrc.txt lt.txt\\r
- lu.txt luo.txt luy.txt lv.txt mas.txt\\r
- mer.txt mfe.txt mg.txt mgh.txt mgo.txt\\r
- mk.txt ml.txt mn.txt mr.txt ms.txt\\r
- mt.txt mua.txt my.txt mzn.txt naq.txt\\r
- nb.txt nd.txt nds.txt ne.txt ne_IN.txt\\r
- nl.txt nl_SR.txt nmg.txt nn.txt nnh.txt\\r
- nus.txt nyn.txt om.txt or.txt os.txt\\r
- pa.txt pa_Arab.txt pa_Guru.txt pl.txt ps.txt\\r
- pt.txt pt_AO.txt pt_CH.txt pt_CV.txt pt_GQ.txt\\r
- pt_GW.txt pt_LU.txt pt_MO.txt pt_MZ.txt pt_PT.txt\\r
- pt_ST.txt pt_TL.txt qu.txt qu_BO.txt qu_EC.txt\\r
- rm.txt rn.txt ro.txt rof.txt ru.txt\\r
- rw.txt rwk.txt sah.txt saq.txt sbp.txt\\r
+ hu.txt hy.txt ia.txt id.txt ig.txt\\r
+ ii.txt is.txt it.txt ja.txt jgo.txt\\r
+ jmc.txt jv.txt ka.txt kab.txt kam.txt\\r
+ kde.txt kea.txt khq.txt ki.txt kk.txt\\r
+ kkj.txt kl.txt kln.txt km.txt kn.txt\\r
+ ko.txt ko_KP.txt kok.txt ks.txt ksb.txt\\r
+ ksf.txt ksh.txt ku.txt kw.txt ky.txt\\r
+ lag.txt lb.txt lg.txt lkt.txt ln.txt\\r
+ lo.txt lrc.txt lt.txt lu.txt luo.txt\\r
+ luy.txt lv.txt mas.txt mer.txt mfe.txt\\r
+ mg.txt mgh.txt mgo.txt mi.txt mk.txt\\r
+ ml.txt mn.txt mr.txt ms.txt mt.txt\\r
+ mua.txt my.txt mzn.txt naq.txt nb.txt\\r
+ nd.txt nds.txt ne.txt ne_IN.txt nl.txt\\r
+ nl_SR.txt nmg.txt nn.txt nnh.txt nus.txt\\r
+ nyn.txt om.txt or.txt os.txt pa.txt\\r
+ pa_Arab.txt pa_Guru.txt pl.txt ps.txt pt.txt\\r
+ pt_AO.txt pt_CH.txt pt_CV.txt pt_GQ.txt pt_GW.txt\\r
+ pt_LU.txt pt_MO.txt pt_MZ.txt pt_PT.txt pt_ST.txt\\r
+ pt_TL.txt qu.txt qu_BO.txt qu_EC.txt rm.txt\\r
+ rn.txt ro.txt rof.txt ru.txt rw.txt\\r
+ rwk.txt sah.txt saq.txt sbp.txt sd.txt\\r
  se.txt se_FI.txt seh.txt ses.txt sg.txt\\r
  shi.txt shi_Latn.txt shi_Tfng.txt si.txt sk.txt\\r
  sl.txt smn.txt sn.txt so.txt sq.txt\\r
  sr.txt sr_Cyrl.txt sr_Latn.txt sv.txt sw.txt\\r
  ta.txt ta_MY.txt ta_SG.txt te.txt teo.txt\\r
- tg.txt th.txt ti.txt to.txt tr.txt\\r
- tt.txt twq.txt tzm.txt ug.txt uk.txt\\r
- ur.txt ur_IN.txt uz.txt uz_Arab.txt uz_Cyrl.txt\\r
- uz_Latn.txt vai.txt vai_Latn.txt vai_Vaii.txt vi.txt\\r
- vun.txt wae.txt wo.txt xog.txt yav.txt\\r
yi.txt yo.txt yue.txt yue_Hans.txt yue_Hant.txt\\r
zgh.txt zh.txt zh_Hans.txt zh_Hans_SG.txt zh_Hant.txt\\r
- zh_Hant_HK.txt zh_Hant_MO.txt zu.txt\r
+ tg.txt th.txt ti.txt tk.txt to.txt\\r
+ tr.txt tt.txt twq.txt tzm.txt ug.txt\\r
+ uk.txt ur.txt ur_IN.txt uz.txt uz_Arab.txt\\r
+ uz_Cyrl.txt uz_Latn.txt vai.txt vai_Latn.txt vai_Vaii.txt\\r
+ vi.txt vun.txt wae.txt wo.txt xh.txt\\r
xog.txt yav.txt yi.txt yo.txt yue.txt\\r
yue_Hans.txt yue_Hant.txt zgh.txt zh.txt zh_Hans.txt\\r
+ zh_Hans_SG.txt zh_Hant.txt zh_Hant_HK.txt zh_Hant_MO.txt zu.txt\r
 \r
index 4147d25..d4aacb7 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 rm{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.94"}\r
     zoneStrings{\r
         "Africa:Addis_Ababa"{\r
             ec{"Addis Abeba"}\r
index 5826124..f7a1d2b 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 ro{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.94"}\r
     zoneStrings{\r
         "Africa:Abidjan"{\r
             ec{"Abidjan"}\r
index 781f977..57462dd 100644 (file)
@@ -4,7 +4,7 @@
  * ICU <specials> source: <path>/common/main/root.xml\r
  */\r
 root{\r
-    Version{"2.1.41.58"}\r
+    Version{"2.1.44.91"}\r
     zoneStrings{\r
         "Africa:Asmera"{\r
             ec{"Asmara"}\r
index 3f6dc84..283e153 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 ru{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.45.15"}\r
     zoneStrings{\r
         "Africa:Abidjan"{\r
             ec{"Абиджан"}\r
@@ -250,7 +250,7 @@ ru{
             ec{"Кайенна"}\r
         }\r
         "America:Cayman"{\r
-            ec{"Ð\9aаймановÑ\8b Ð¾-ва"}\r
+            ec{"Ð\9eÑ\81Ñ\82Ñ\80ова Ð\9aайман"}\r
         }\r
         "America:Chicago"{\r
             ec{"Чикаго"}\r
@@ -1841,13 +1841,13 @@ ru{
             ls{"Самоа, стандартное время"}\r
         }\r
         "meta:Seychelles"{\r
-            ls{"СейÑ\88елÑ\8cÑ\81кие Ð¾строва"}\r
+            ls{"СейÑ\88елÑ\8cÑ\81кие Ð\9eстрова"}\r
         }\r
         "meta:Singapore"{\r
             ls{"Сингапур"}\r
         }\r
         "meta:Solomon"{\r
-            ls{"СоломоновÑ\8b Ð¾строва"}\r
+            ls{"СоломоновÑ\8b Ð\9eстрова"}\r
         }\r
         "meta:South_Georgia"{\r
             ls{"Южная Георгия"}\r
@@ -1881,9 +1881,9 @@ ru{
             ls{"Трук"}\r
         }\r
         "meta:Turkmenistan"{\r
-            ld{"ТÑ\83Ñ\80кмениÑ\8f, летнее время"}\r
-            lg{"ТÑ\83Ñ\80кмениÑ\8f"}\r
-            ls{"ТÑ\83Ñ\80кмениÑ\8f, стандартное время"}\r
+            ld{"ТÑ\83Ñ\80кмениÑ\81Ñ\82ан, летнее время"}\r
+            lg{"ТÑ\83Ñ\80кмениÑ\81Ñ\82ан"}\r
+            ls{"ТÑ\83Ñ\80кмениÑ\81Ñ\82ан, стандартное время"}\r
         }\r
         "meta:Tuvalu"{\r
             ls{"Тувалу"}\r
index d14c083..aa33174 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 rw{\r
-    Version{"2.1.38.72"}\r
+    Version{"2.1.44.88"}\r
     zoneStrings{\r
         gmtFormat{"GMT{0}"}\r
         hourFormat{"+HH:mm;-HH:mm"}\r
index c24373a..945e297 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 sah{\r
-    Version{"2.1.38.69"}\r
+    Version{"2.1.43.94"}\r
     zoneStrings{\r
         "Asia:Almaty"{\r
             ec{"Алматы"}\r
diff --git a/source/data/zone/sd.txt b/source/data/zone/sd.txt
new file mode 100644 (file)
index 0000000..be6b436
--- /dev/null
@@ -0,0 +1,1887 @@
+// © 2016 and later: Unicode, Inc. and others.\r
+// License & terms of use: http://www.unicode.org/copyright.html#License\r
+sd{\r
+    Version{"2.1.43.94"}\r
+    zoneStrings{\r
+        "Africa:Abidjan"{\r
+            ec{"ابي جان"}\r
+        }\r
+        "Africa:Accra"{\r
+            ec{"ايڪرا"}\r
+        }\r
+        "Africa:Addis_Ababa"{\r
+            ec{"ايڊيس اببا"}\r
+        }\r
+        "Africa:Algiers"{\r
+            ec{"الجيرز"}\r
+        }\r
+        "Africa:Asmera"{\r
+            ec{"ازمارا"}\r
+        }\r
+        "Africa:Bamako"{\r
+            ec{"باماڪو"}\r
+        }\r
+        "Africa:Bangui"{\r
+            ec{"بنگي"}\r
+        }\r
+        "Africa:Banjul"{\r
+            ec{"بينجال"}\r
+        }\r
+        "Africa:Bissau"{\r
+            ec{"بسائو"}\r
+        }\r
+        "Africa:Blantyre"{\r
+            ec{"بلنٽائر"}\r
+        }\r
+        "Africa:Brazzaville"{\r
+            ec{"برازاويل"}\r
+        }\r
+        "Africa:Bujumbura"{\r
+            ec{"بوجمبورا"}\r
+        }\r
+        "Africa:Cairo"{\r
+            ec{"قائرا"}\r
+        }\r
+        "Africa:Casablanca"{\r
+            ec{"ڪاسابلانڪا"}\r
+        }\r
+        "Africa:Ceuta"{\r
+            ec{"سيوٽا"}\r
+        }\r
+        "Africa:Conakry"{\r
+            ec{"ڪوناڪري"}\r
+        }\r
+        "Africa:Dakar"{\r
+            ec{"ڊاڪار"}\r
+        }\r
+        "Africa:Dar_es_Salaam"{\r
+            ec{"دارالسلام"}\r
+        }\r
+        "Africa:Djibouti"{\r
+            ec{"جبوتي"}\r
+        }\r
+        "Africa:Douala"{\r
+            ec{"دوالا"}\r
+        }\r
+        "Africa:El_Aaiun"{\r
+            ec{"ال ايون"}\r
+        }\r
+        "Africa:Freetown"{\r
+            ec{"فري ٽائون"}\r
+        }\r
+        "Africa:Gaborone"{\r
+            ec{"گيبورون"}\r
+        }\r
+        "Africa:Harare"{\r
+            ec{"هراري"}\r
+        }\r
+        "Africa:Johannesburg"{\r
+            ec{"جوهانسبرگ"}\r
+        }\r
+        "Africa:Juba"{\r
+            ec{"جوبا"}\r
+        }\r
+        "Africa:Kampala"{\r
+            ec{"ڪمپالا"}\r
+        }\r
+        "Africa:Khartoum"{\r
+            ec{"خرطوم"}\r
+        }\r
+        "Africa:Kigali"{\r
+            ec{"ڪيگالي"}\r
+        }\r
+        "Africa:Kinshasa"{\r
+            ec{"ڪنشاسا"}\r
+        }\r
+        "Africa:Lagos"{\r
+            ec{"لاگوس"}\r
+        }\r
+        "Africa:Libreville"{\r
+            ec{"لیبرویلی"}\r
+        }\r
+        "Africa:Lome"{\r
+            ec{"لوم"}\r
+        }\r
+        "Africa:Luanda"{\r
+            ec{"لوانڊا"}\r
+        }\r
+        "Africa:Lubumbashi"{\r
+            ec{"لوبمباشی"}\r
+        }\r
+        "Africa:Lusaka"{\r
+            ec{"لوساڪا"}\r
+        }\r
+        "Africa:Malabo"{\r
+            ec{"ملابو"}\r
+        }\r
+        "Africa:Maputo"{\r
+            ec{"ماپوتو"}\r
+        }\r
+        "Africa:Maseru"{\r
+            ec{"ماسيرو"}\r
+        }\r
+        "Africa:Mbabane"{\r
+            ec{"مبابين"}\r
+        }\r
+        "Africa:Mogadishu"{\r
+            ec{"موغادیشو"}\r
+        }\r
+        "Africa:Monrovia"{\r
+            ec{"مونروویا"}\r
+        }\r
+        "Africa:Nairobi"{\r
+            ec{"نيروبي"}\r
+        }\r
+        "Africa:Ndjamena"{\r
+            ec{"نجامينا"}\r
+        }\r
+        "Africa:Niamey"{\r
+            ec{"نيامي"}\r
+        }\r
+        "Africa:Nouakchott"{\r
+            ec{"نواڪشوط"}\r
+        }\r
+        "Africa:Ouagadougou"{\r
+            ec{"آئوگو ڊائوگو"}\r
+        }\r
+        "Africa:Porto-Novo"{\r
+            ec{"پورٽو نوو"}\r
+        }\r
+        "Africa:Sao_Tome"{\r
+            ec{"سائو ٽوم"}\r
+        }\r
+        "Africa:Tripoli"{\r
+            ec{"ٽرپولي"}\r
+        }\r
+        "Africa:Tunis"{\r
+            ec{"تيونس"}\r
+        }\r
+        "Africa:Windhoek"{\r
+            ec{"ونڊهوڪ"}\r
+        }\r
+        "America:Adak"{\r
+            ec{"ادڪ"}\r
+        }\r
+        "America:Anchorage"{\r
+            ec{"اينڪريج"}\r
+        }\r
+        "America:Anguilla"{\r
+            ec{"انگويلا"}\r
+        }\r
+        "America:Antigua"{\r
+            ec{"اينٽيگوا"}\r
+        }\r
+        "America:Araguaina"{\r
+            ec{"اراگویانا"}\r
+        }\r
+        "America:Argentina:La_Rioja"{\r
+            ec{"لا ریئوجا"}\r
+        }\r
+        "America:Argentina:Rio_Gallegos"{\r
+            ec{"ریو گالیگوس"}\r
+        }\r
+        "America:Argentina:Salta"{\r
+            ec{"سالٽا"}\r
+        }\r
+        "America:Argentina:San_Juan"{\r
+            ec{"سان جوآن"}\r
+        }\r
+        "America:Argentina:San_Luis"{\r
+            ec{"سان لوئیس"}\r
+        }\r
+        "America:Argentina:Tucuman"{\r
+            ec{"ٽوڪومين"}\r
+        }\r
+        "America:Argentina:Ushuaia"{\r
+            ec{"اوشوآئیا"}\r
+        }\r
+        "America:Aruba"{\r
+            ec{"اروبا"}\r
+        }\r
+        "America:Asuncion"{\r
+            ec{"اسانسیون"}\r
+        }\r
+        "America:Bahia"{\r
+            ec{"باحيه"}\r
+        }\r
+        "America:Bahia_Banderas"{\r
+            ec{"باهیا بیندراس"}\r
+        }\r
+        "America:Barbados"{\r
+            ec{"بارباڊوس"}\r
+        }\r
+        "America:Belem"{\r
+            ec{"بیلم"}\r
+        }\r
+        "America:Belize"{\r
+            ec{"بیلیز"}\r
+        }\r
+        "America:Blanc-Sablon"{\r
+            ec{"بلانڪ سبلون"}\r
+        }\r
+        "America:Boa_Vista"{\r
+            ec{"بائو وستا"}\r
+        }\r
+        "America:Bogota"{\r
+            ec{"بگوٽا"}\r
+        }\r
+        "America:Boise"{\r
+            ec{"بوئس"}\r
+        }\r
+        "America:Buenos_Aires"{\r
+            ec{"بيونوس ايئرس"}\r
+        }\r
+        "America:Cambridge_Bay"{\r
+            ec{"ڪيمبرج بي"}\r
+        }\r
+        "America:Campo_Grande"{\r
+            ec{"ڪيمپو گرانڊي"}\r
+        }\r
+        "America:Cancun"{\r
+            ec{"ڪانڪون"}\r
+        }\r
+        "America:Caracas"{\r
+            ec{"ڪراڪس"}\r
+        }\r
+        "America:Catamarca"{\r
+            ec{"ڪيٽا مارڪا"}\r
+        }\r
+        "America:Cayenne"{\r
+            ec{"ڪائين"}\r
+        }\r
+        "America:Cayman"{\r
+            ec{"سيامن"}\r
+        }\r
+        "America:Chicago"{\r
+            ec{"شڪاگو"}\r
+        }\r
+        "America:Chihuahua"{\r
+            ec{"چي هوا هوا"}\r
+        }\r
+        "America:Coral_Harbour"{\r
+            ec{"اٽيڪوڪن"}\r
+        }\r
+        "America:Cordoba"{\r
+            ec{"ڪارڊوبا"}\r
+        }\r
+        "America:Costa_Rica"{\r
+            ec{"ڪوسٽا ريڪا"}\r
+        }\r
+        "America:Creston"{\r
+            ec{"ڪريسٽن"}\r
+        }\r
+        "America:Cuiaba"{\r
+            ec{"ڪوئيابا"}\r
+        }\r
+        "America:Curacao"{\r
+            ec{"ڪيوراسائو"}\r
+        }\r
+        "America:Danmarkshavn"{\r
+            ec{"ڊينمارڪ شون"}\r
+        }\r
+        "America:Dawson"{\r
+            ec{"ڊاوسن"}\r
+        }\r
+        "America:Dawson_Creek"{\r
+            ec{"ڊاوسن ڪريڪ"}\r
+        }\r
+        "America:Denver"{\r
+            ec{"ڊينور"}\r
+        }\r
+        "America:Detroit"{\r
+            ec{"ڊيٽرائيٽ"}\r
+        }\r
+        "America:Dominica"{\r
+            ec{"ڊومينيڪا"}\r
+        }\r
+        "America:Edmonton"{\r
+            ec{"ايڊمونٽن"}\r
+        }\r
+        "America:Eirunepe"{\r
+            ec{"ايرونيپ"}\r
+        }\r
+        "America:El_Salvador"{\r
+            ec{"ايل سلواڊور"}\r
+        }\r
+        "America:Fort_Nelson"{\r
+            ec{"فورٽ نيلسن"}\r
+        }\r
+        "America:Fortaleza"{\r
+            ec{"فورٽاليزا"}\r
+        }\r
+        "America:Glace_Bay"{\r
+            ec{"گليس بي"}\r
+        }\r
+        "America:Godthab"{\r
+            ec{"نيوڪ"}\r
+        }\r
+        "America:Goose_Bay"{\r
+            ec{"گوز بي"}\r
+        }\r
+        "America:Grand_Turk"{\r
+            ec{"گرانڊ ترڪ"}\r
+        }\r
+        "America:Grenada"{\r
+            ec{"گريناڊا"}\r
+        }\r
+        "America:Guadeloupe"{\r
+            ec{"گواڊيلوپ"}\r
+        }\r
+        "America:Guatemala"{\r
+            ec{"گوئٽي مالا"}\r
+        }\r
+        "America:Guayaquil"{\r
+            ec{"گواياڪيل"}\r
+        }\r
+        "America:Guyana"{\r
+            ec{"گيانا"}\r
+        }\r
+        "America:Halifax"{\r
+            ec{"هيلي فيڪس"}\r
+        }\r
+        "America:Havana"{\r
+            ec{"هوانا"}\r
+        }\r
+        "America:Hermosillo"{\r
+            ec{"هرموسلو"}\r
+        }\r
+        "America:Indiana:Knox"{\r
+            ec{"ناڪس، انڊيانا"}\r
+        }\r
+        "America:Indiana:Marengo"{\r
+            ec{"مرينگو، انڊيانا"}\r
+        }\r
+        "America:Indiana:Petersburg"{\r
+            ec{"پيٽرسبرگ، انڊيانا"}\r
+        }\r
+        "America:Indiana:Tell_City"{\r
+            ec{"ٽيل سٽي، انڊيانا"}\r
+        }\r
+        "America:Indiana:Vevay"{\r
+            ec{"ويوي، انڊيانا"}\r
+        }\r
+        "America:Indiana:Vincennes"{\r
+            ec{"ونسینیز، انڊیانا"}\r
+        }\r
+        "America:Indiana:Winamac"{\r
+            ec{"ويناميڪ، انڊيانا"}\r
+        }\r
+        "America:Indianapolis"{\r
+            ec{"انڊيانا پولس"}\r
+        }\r
+        "America:Inuvik"{\r
+            ec{"انووڪ"}\r
+        }\r
+        "America:Iqaluit"{\r
+            ec{"اڪالوئٽ"}\r
+        }\r
+        "America:Jamaica"{\r
+            ec{"جمائڪا"}\r
+        }\r
+        "America:Jujuy"{\r
+            ec{"ڪوڪوئي"}\r
+        }\r
+        "America:Juneau"{\r
+            ec{"جونئو"}\r
+        }\r
+        "America:Kentucky:Monticello"{\r
+            ec{"مونٽيسيلو، ڪينٽڪي"}\r
+        }\r
+        "America:Kralendijk"{\r
+            ec{"ڪرالينڊڪ"}\r
+        }\r
+        "America:La_Paz"{\r
+            ec{"لا پز"}\r
+        }\r
+        "America:Lima"{\r
+            ec{"ليما"}\r
+        }\r
+        "America:Los_Angeles"{\r
+            ec{"لاس اينجلس"}\r
+        }\r
+        "America:Louisville"{\r
+            ec{"لوئي ويل"}\r
+        }\r
+        "America:Lower_Princes"{\r
+            ec{"لوئر پرنسز ڪوارٽر"}\r
+        }\r
+        "America:Maceio"{\r
+            ec{"میسیئو"}\r
+        }\r
+        "America:Managua"{\r
+            ec{"ماناگوا"}\r
+        }\r
+        "America:Manaus"{\r
+            ec{"منائوس"}\r
+        }\r
+        "America:Marigot"{\r
+            ec{"ميريگوٽ"}\r
+        }\r
+        "America:Martinique"{\r
+            ec{"مارٽينڪ"}\r
+        }\r
+        "America:Matamoros"{\r
+            ec{"متاموروس"}\r
+        }\r
+        "America:Mazatlan"{\r
+            ec{"مزاٽلان"}\r
+        }\r
+        "America:Mendoza"{\r
+            ec{"مينڊوزا"}\r
+        }\r
+        "America:Menominee"{\r
+            ec{"مینومیني"}\r
+        }\r
+        "America:Merida"{\r
+            ec{"ميريڊا"}\r
+        }\r
+        "America:Metlakatla"{\r
+            ec{"ميٽلاڪاٽالا"}\r
+        }\r
+        "America:Mexico_City"{\r
+            ec{"ميڪسيڪو شهر"}\r
+        }\r
+        "America:Miquelon"{\r
+            ec{"میڪوئیلون"}\r
+        }\r
+        "America:Moncton"{\r
+            ec{"مانڪٽن"}\r
+        }\r
+        "America:Monterrey"{\r
+            ec{"مانٽيري"}\r
+        }\r
+        "America:Montevideo"{\r
+            ec{"مونٽي ويڊيو"}\r
+        }\r
+        "America:Montserrat"{\r
+            ec{"مانٽسريٽ"}\r
+        }\r
+        "America:Nassau"{\r
+            ec{"ناسائو"}\r
+        }\r
+        "America:New_York"{\r
+            ec{"نيويارڪ"}\r
+        }\r
+        "America:Nipigon"{\r
+            ec{"نپيگان"}\r
+        }\r
+        "America:Nome"{\r
+            ec{"نوم"}\r
+        }\r
+        "America:Noronha"{\r
+            ec{"نورانهيا"}\r
+        }\r
+        "America:North_Dakota:Beulah"{\r
+            ec{"بيولاه، اتر ڊڪوٽا"}\r
+        }\r
+        "America:North_Dakota:Center"{\r
+            ec{"سينٽر، اتر ڊڪوٽا"}\r
+        }\r
+        "America:North_Dakota:New_Salem"{\r
+            ec{"نيو سيلم، اتر ڊڪوٽا"}\r
+        }\r
+        "America:Ojinaga"{\r
+            ec{"اوڪيناگا"}\r
+        }\r
+        "America:Panama"{\r
+            ec{"پناما"}\r
+        }\r
+        "America:Pangnirtung"{\r
+            ec{"پینگنرٽنگ"}\r
+        }\r
+        "America:Paramaribo"{\r
+            ec{"پيراميريبو"}\r
+        }\r
+        "America:Phoenix"{\r
+            ec{"فونيڪس"}\r
+        }\r
+        "America:Port-au-Prince"{\r
+            ec{"پورٽ او پرنس"}\r
+        }\r
+        "America:Port_of_Spain"{\r
+            ec{"اسپين جو ٻيٽ"}\r
+        }\r
+        "America:Porto_Velho"{\r
+            ec{"پورٽو ويلهو"}\r
+        }\r
+        "America:Puerto_Rico"{\r
+            ec{"پورٽو ريڪو"}\r
+        }\r
+        "America:Punta_Arenas"{\r
+            ec{"پنٽا اريناس"}\r
+        }\r
+        "America:Rainy_River"{\r
+            ec{"ريني رور"}\r
+        }\r
+        "America:Rankin_Inlet"{\r
+            ec{"رينڪن انليٽ"}\r
+        }\r
+        "America:Recife"{\r
+            ec{"هيسيفي"}\r
+        }\r
+        "America:Regina"{\r
+            ec{"ریجینا"}\r
+        }\r
+        "America:Resolute"{\r
+            ec{"ريزوليوٽ"}\r
+        }\r
+        "America:Rio_Branco"{\r
+            ec{"ريو برانڪو"}\r
+        }\r
+        "America:Santarem"{\r
+            ec{"سنٽاريم"}\r
+        }\r
+        "America:Santiago"{\r
+            ec{"سينٽياگو"}\r
+        }\r
+        "America:Santo_Domingo"{\r
+            ec{"سينٽو ڊومينگو"}\r
+        }\r
+        "America:Sao_Paulo"{\r
+            ec{"سائو پولو"}\r
+        }\r
+        "America:Scoresbysund"{\r
+            ec{"اٽوڪورٽومائٽ"}\r
+        }\r
+        "America:Sitka"{\r
+            ec{"سٽڪا"}\r
+        }\r
+        "America:St_Barthelemy"{\r
+            ec{"سينٽ برٿليمي"}\r
+        }\r
+        "America:St_Johns"{\r
+            ec{"سينٽ جانز"}\r
+        }\r
+        "America:St_Kitts"{\r
+            ec{"سينٽ ڪٽس"}\r
+        }\r
+        "America:St_Lucia"{\r
+            ec{"سينٽ لوسيا"}\r
+        }\r
+        "America:St_Thomas"{\r
+            ec{"سينٽ ٿامس"}\r
+        }\r
+        "America:St_Vincent"{\r
+            ec{"سينٽ ونسينٽ"}\r
+        }\r
+        "America:Swift_Current"{\r
+            ec{"سوئفٽ ڪرنٽ"}\r
+        }\r
+        "America:Tegucigalpa"{\r
+            ec{"ٽيگوسيگلپا"}\r
+        }\r
+        "America:Thule"{\r
+            ec{"ٿولي"}\r
+        }\r
+        "America:Thunder_Bay"{\r
+            ec{"ٿنڊر بي"}\r
+        }\r
+        "America:Tijuana"{\r
+            ec{"تيجوانا"}\r
+        }\r
+        "America:Toronto"{\r
+            ec{"ٽورنٽو"}\r
+        }\r
+        "America:Tortola"{\r
+            ec{"ٽورٽولا"}\r
+        }\r
+        "America:Vancouver"{\r
+            ec{"وينڪوور"}\r
+        }\r
+        "America:Whitehorse"{\r
+            ec{"وائيٽ هائوس"}\r
+        }\r
+        "America:Winnipeg"{\r
+            ec{"وني پيگ"}\r
+        }\r
+        "America:Yakutat"{\r
+            ec{"ياڪوتات"}\r
+        }\r
+        "America:Yellowknife"{\r
+            ec{"ييلو نائيف"}\r
+        }\r
+        "Antarctica:Casey"{\r
+            ec{"ڪيسي"}\r
+        }\r
+        "Antarctica:Davis"{\r
+            ec{"ڊيوس"}\r
+        }\r
+        "Antarctica:DumontDUrville"{\r
+            ec{"ڊومانٽ درويئل"}\r
+        }\r
+        "Antarctica:Macquarie"{\r
+            ec{"مڪوائري"}\r
+        }\r
+        "Antarctica:Mawson"{\r
+            ec{"موسن"}\r
+        }\r
+        "Antarctica:McMurdo"{\r
+            ec{"ميڪ مرڊو"}\r
+        }\r
+        "Antarctica:Palmer"{\r
+            ec{"پامر"}\r
+        }\r
+        "Antarctica:Rothera"{\r
+            ec{"روڌرا"}\r
+        }\r
+        "Antarctica:Syowa"{\r
+            ec{"سيووا"}\r
+        }\r
+        "Antarctica:Troll"{\r
+            ec{"ٽرول"}\r
+        }\r
+        "Antarctica:Vostok"{\r
+            ec{"ووستوڪ"}\r
+        }\r
+        "Arctic:Longyearbyen"{\r
+            ec{"لانگ ائيربن"}\r
+        }\r
+        "Asia:Aden"{\r
+            ec{"عدن"}\r
+        }\r
+        "Asia:Almaty"{\r
+            ec{"الماتي"}\r
+        }\r
+        "Asia:Amman"{\r
+            ec{"امان"}\r
+        }\r
+        "Asia:Anadyr"{\r
+            ec{"انيدر"}\r
+        }\r
+        "Asia:Aqtau"{\r
+            ec{"اڪٽائو"}\r
+        }\r
+        "Asia:Aqtobe"{\r
+            ec{"ايڪٽوب"}\r
+        }\r
+        "Asia:Ashgabat"{\r
+            ec{"آشگاباد"}\r
+        }\r
+        "Asia:Atyrau"{\r
+            ec{"آتيرائو"}\r
+        }\r
+        "Asia:Baghdad"{\r
+            ec{"بغداد"}\r
+        }\r
+        "Asia:Bahrain"{\r
+            ec{"بحرين"}\r
+        }\r
+        "Asia:Baku"{\r
+            ec{"باڪو"}\r
+        }\r
+        "Asia:Bangkok"{\r
+            ec{"بئنڪاڪ"}\r
+        }\r
+        "Asia:Barnaul"{\r
+            ec{"برنل"}\r
+        }\r
+        "Asia:Beirut"{\r
+            ec{"بيروت"}\r
+        }\r
+        "Asia:Bishkek"{\r
+            ec{"بشڪيڪ"}\r
+        }\r
+        "Asia:Brunei"{\r
+            ec{"برونائي"}\r
+        }\r
+        "Asia:Calcutta"{\r
+            ec{"ڪلڪتا"}\r
+        }\r
+        "Asia:Chita"{\r
+            ec{"چيتا"}\r
+        }\r
+        "Asia:Choibalsan"{\r
+            ec{"چوئي بيلسن"}\r
+        }\r
+        "Asia:Colombo"{\r
+            ec{"ڪولمبو"}\r
+        }\r
+        "Asia:Damascus"{\r
+            ec{"دمشق"}\r
+        }\r
+        "Asia:Dhaka"{\r
+            ec{"ڍاڪا"}\r
+        }\r
+        "Asia:Dili"{\r
+            ec{"دلي"}\r
+        }\r
+        "Asia:Dubai"{\r
+            ec{"دبئي"}\r
+        }\r
+        "Asia:Dushanbe"{\r
+            ec{"دوشانبي"}\r
+        }\r
+        "Asia:Famagusta"{\r
+            ec{"فاماگوستا"}\r
+        }\r
+        "Asia:Gaza"{\r
+            ec{"غزه"}\r
+        }\r
+        "Asia:Hebron"{\r
+            ec{"هيبرون"}\r
+        }\r
+        "Asia:Hong_Kong"{\r
+            ec{"هانگ ڪانگ"}\r
+        }\r
+        "Asia:Hovd"{\r
+            ec{"هووڊ"}\r
+        }\r
+        "Asia:Irkutsk"{\r
+            ec{"ارڪتسڪ"}\r
+        }\r
+        "Asia:Jakarta"{\r
+            ec{"جڪارتا"}\r
+        }\r
+        "Asia:Jayapura"{\r
+            ec{"جياپورا"}\r
+        }\r
+        "Asia:Jerusalem"{\r
+            ec{"يوروشلم"}\r
+        }\r
+        "Asia:Kabul"{\r
+            ec{"ڪابل"}\r
+        }\r
+        "Asia:Kamchatka"{\r
+            ec{"ڪمچاسڪي"}\r
+        }\r
+        "Asia:Karachi"{\r
+            ec{"ڪراچي"}\r
+        }\r
+        "Asia:Katmandu"{\r
+            ec{"کٽمنڊو"}\r
+        }\r
+        "Asia:Khandyga"{\r
+            ec{"کندياگا"}\r
+        }\r
+        "Asia:Krasnoyarsk"{\r
+            ec{"ڪريسنويارسڪ"}\r
+        }\r
+        "Asia:Kuala_Lumpur"{\r
+            ec{"ڪوللمپور"}\r
+        }\r
+        "Asia:Kuching"{\r
+            ec{"کوچنگ"}\r
+        }\r
+        "Asia:Kuwait"{\r
+            ec{"ڪويت"}\r
+        }\r
+        "Asia:Macau"{\r
+            ec{"مڪائو"}\r
+        }\r
+        "Asia:Magadan"{\r
+            ec{"مگادان"}\r
+        }\r
+        "Asia:Makassar"{\r
+            ec{"ميڪاسر"}\r
+        }\r
+        "Asia:Manila"{\r
+            ec{"منيلا"}\r
+        }\r
+        "Asia:Muscat"{\r
+            ec{"مسقط"}\r
+        }\r
+        "Asia:Nicosia"{\r
+            ec{"نيڪوسيا"}\r
+        }\r
+        "Asia:Novokuznetsk"{\r
+            ec{"نووڪزنيتسڪ"}\r
+        }\r
+        "Asia:Novosibirsk"{\r
+            ec{"نوواسبئيرسڪ"}\r
+        }\r
+        "Asia:Omsk"{\r
+            ec{"اومسڪ"}\r
+        }\r
+        "Asia:Oral"{\r
+            ec{"زباني"}\r
+        }\r
+        "Asia:Phnom_Penh"{\r
+            ec{"فنام پينه"}\r
+        }\r
+        "Asia:Pontianak"{\r
+            ec{"پونٽيانڪ"}\r
+        }\r
+        "Asia:Pyongyang"{\r
+            ec{"شيانگ يانگ"}\r
+        }\r
+        "Asia:Qatar"{\r
+            ec{"قطر"}\r
+        }\r
+        "Asia:Qyzylorda"{\r
+            ec{"ڪيزلورڊا"}\r
+        }\r
+        "Asia:Rangoon"{\r
+            ec{"رنگون"}\r
+        }\r
+        "Asia:Riyadh"{\r
+            ec{"رياض"}\r
+        }\r
+        "Asia:Saigon"{\r
+            ec{"هوچي من"}\r
+        }\r
+        "Asia:Sakhalin"{\r
+            ec{"شخالين"}\r
+        }\r
+        "Asia:Samarkand"{\r
+            ec{"سمرقند"}\r
+        }\r
+        "Asia:Seoul"{\r
+            ec{"سيول"}\r
+        }\r
+        "Asia:Shanghai"{\r
+            ec{"شنگهائي"}\r
+        }\r
+        "Asia:Singapore"{\r
+            ec{"سنگاپور"}\r
+        }\r
+        "Asia:Srednekolymsk"{\r
+            ec{"سريديڪوليمسڪ"}\r
+        }\r
+        "Asia:Taipei"{\r
+            ec{"تائپي"}\r
+        }\r
+        "Asia:Tashkent"{\r
+            ec{"تاشقنت"}\r
+        }\r
+        "Asia:Tbilisi"{\r
+            ec{"تبليسي"}\r
+        }\r
+        "Asia:Tehran"{\r
+            ec{"تهران"}\r
+        }\r
+        "Asia:Thimphu"{\r
+            ec{"ٿمفو"}\r
+        }\r
+        "Asia:Tokyo"{\r
+            ec{"ٽوڪيو"}\r
+        }\r
+        "Asia:Tomsk"{\r
+            ec{"تمسڪ"}\r
+        }\r
+        "Asia:Ulaanbaatar"{\r
+            ec{"اولان باتر"}\r
+        }\r
+        "Asia:Urumqi"{\r
+            ec{"يورمڪي"}\r
+        }\r
+        "Asia:Ust-Nera"{\r
+            ec{"اسٽ نيرا"}\r
+        }\r
+        "Asia:Vientiane"{\r
+            ec{"وينٽيان"}\r
+        }\r
+        "Asia:Vladivostok"{\r
+            ec{"ولادووستوڪ"}\r
+        }\r
+        "Asia:Yakutsk"{\r
+            ec{"ياڪتسڪ"}\r
+        }\r
+        "Asia:Yekaterinburg"{\r
+            ec{"یڪاٽرنبرگ"}\r
+        }\r
+        "Asia:Yerevan"{\r
+            ec{"يريوان"}\r
+        }\r
+        "Atlantic:Azores"{\r
+            ec{"ازورز"}\r
+        }\r
+        "Atlantic:Bermuda"{\r
+            ec{"برمودا"}\r
+        }\r
+        "Atlantic:Canary"{\r
+            ec{"ڪينري"}\r
+        }\r
+        "Atlantic:Cape_Verde"{\r
+            ec{"ڪيپ ورڊي"}\r
+        }\r
+        "Atlantic:Faeroe"{\r
+            ec{"فيرو"}\r
+        }\r
+        "Atlantic:Madeira"{\r
+            ec{"ماڊيرا"}\r
+        }\r
+        "Atlantic:Reykjavik"{\r
+            ec{"ريڪيوڪ"}\r
+        }\r
+        "Atlantic:South_Georgia"{\r
+            ec{"ڏکڻ جورجيا"}\r
+        }\r
+        "Atlantic:St_Helena"{\r
+            ec{"سينٽ هيلينا"}\r
+        }\r
+        "Atlantic:Stanley"{\r
+            ec{"اسٽينلي"}\r
+        }\r
+        "Australia:Adelaide"{\r
+            ec{"ايڊيلينڊ"}\r
+        }\r
+        "Australia:Brisbane"{\r
+            ec{"برسبين"}\r
+        }\r
+        "Australia:Broken_Hill"{\r
+            ec{"بروڪن هل"}\r
+        }\r
+        "Australia:Currie"{\r
+            ec{"ڪري"}\r
+        }\r
+        "Australia:Darwin"{\r
+            ec{"ڊارون"}\r
+        }\r
+        "Australia:Eucla"{\r
+            ec{"يوڪلا"}\r
+        }\r
+        "Australia:Hobart"{\r
+            ec{"هوبارٽ"}\r
+        }\r
+        "Australia:Lindeman"{\r
+            ec{"لنڊمين"}\r
+        }\r
+        "Australia:Lord_Howe"{\r
+            ec{"لارڊ هائو"}\r
+        }\r
+        "Australia:Melbourne"{\r
+            ec{"ميلبورن"}\r
+        }\r
+        "Australia:Perth"{\r
+            ec{"پرٿ"}\r
+        }\r
+        "Australia:Sydney"{\r
+            ec{"سڊني"}\r
+        }\r
+        "Etc:UTC"{\r
+            ls{"گڏيل دنياوي وقت"}\r
+            ss{"م ع و"}\r
+        }\r
+        "Etc:Unknown"{\r
+            ec{"اڻڄاتل شهر"}\r
+        }\r
+        "Europe:Amsterdam"{\r
+            ec{"ايمسٽرڊيم"}\r
+        }\r
+        "Europe:Andorra"{\r
+            ec{"اندورا"}\r
+        }\r
+        "Europe:Astrakhan"{\r
+            ec{"آستراخان"}\r
+        }\r
+        "Europe:Athens"{\r
+            ec{"ايٿنز"}\r
+        }\r
+        "Europe:Belgrade"{\r
+            ec{"بلغراد"}\r
+        }\r
+        "Europe:Berlin"{\r
+            ec{"برلن"}\r
+        }\r
+        "Europe:Bratislava"{\r
+            ec{"براتيسلوا"}\r
+        }\r
+        "Europe:Brussels"{\r
+            ec{"برسلز"}\r
+        }\r
+        "Europe:Bucharest"{\r
+            ec{"بخاريسٽ"}\r
+        }\r
+        "Europe:Budapest"{\r
+            ec{"بداپيسٽ"}\r
+        }\r
+        "Europe:Busingen"{\r
+            ec{"بزيجين"}\r
+        }\r
+        "Europe:Chisinau"{\r
+            ec{"چسينائو"}\r
+        }\r
+        "Europe:Copenhagen"{\r
+            ec{"ڪوپن هيگن"}\r
+        }\r
+        "Europe:Dublin"{\r
+            ec{"ڊبلن"}\r
+            ld{"آئرش جو معياري وقت"}\r
+        }\r
+        "Europe:Gibraltar"{\r
+            ec{"جبرالٽر"}\r
+        }\r
+        "Europe:Guernsey"{\r
+            ec{"گرنزي"}\r
+        }\r
+        "Europe:Helsinki"{\r
+            ec{"هيلسنڪي"}\r
+        }\r
+        "Europe:Isle_of_Man"{\r
+            ec{"آئيزل آف مين"}\r
+        }\r
+        "Europe:Istanbul"{\r
+            ec{"استنبول"}\r
+        }\r
+        "Europe:Jersey"{\r
+            ec{"جرسي"}\r
+        }\r
+        "Europe:Kaliningrad"{\r
+            ec{"ڪلينن گراڊ"}\r
+        }\r
+        "Europe:Kiev"{\r
+            ec{"ڪيف"}\r
+        }\r
+        "Europe:Kirov"{\r
+            ec{"ڪيروف"}\r
+        }\r
+        "Europe:Lisbon"{\r
+            ec{"لسبن"}\r
+        }\r
+        "Europe:Ljubljana"{\r
+            ec{"لبليانا"}\r
+        }\r
+        "Europe:London"{\r
+            ec{"لنڊن"}\r
+            ld{"برطانيا جي اونهاري جو وقت"}\r
+        }\r
+        "Europe:Luxembourg"{\r
+            ec{"لگزمبرگ"}\r
+        }\r
+        "Europe:Madrid"{\r
+            ec{"ميڊرڊ"}\r
+        }\r
+        "Europe:Malta"{\r
+            ec{"مالٽا"}\r
+        }\r
+        "Europe:Mariehamn"{\r
+            ec{"ميريهام"}\r
+        }\r
+        "Europe:Minsk"{\r
+            ec{"منسڪ"}\r
+        }\r
+        "Europe:Monaco"{\r
+            ec{"موناڪو"}\r
+        }\r
+        "Europe:Moscow"{\r
+            ec{"ماسڪو"}\r
+        }\r
+        "Europe:Oslo"{\r
+            ec{"اوسلو"}\r
+        }\r
+        "Europe:Paris"{\r
+            ec{"پئرس"}\r
+        }\r
+        "Europe:Podgorica"{\r
+            ec{"پوڊگورسيا"}\r
+        }\r
+        "Europe:Prague"{\r
+            ec{"پراگ"}\r
+        }\r
+        "Europe:Riga"{\r
+            ec{"رگا"}\r
+        }\r
+        "Europe:Rome"{\r
+            ec{"روم"}\r
+        }\r
+        "Europe:Samara"{\r
+            ec{"سمارا"}\r
+        }\r
+        "Europe:San_Marino"{\r
+            ec{"سين مرينو"}\r
+        }\r
+        "Europe:Sarajevo"{\r
+            ec{"سراجیوو"}\r
+        }\r
+        "Europe:Saratov"{\r
+            ec{"سراتو"}\r
+        }\r
+        "Europe:Simferopol"{\r
+            ec{"سمفروپول"}\r
+        }\r
+        "Europe:Skopje"{\r
+            ec{"اسڪوپي"}\r
+        }\r
+        "Europe:Sofia"{\r
+            ec{"سوفيا"}\r
+        }\r
+        "Europe:Stockholm"{\r
+            ec{"اسٽاڪ هوم"}\r
+        }\r
+        "Europe:Tallinn"{\r
+            ec{"ٽالن"}\r
+        }\r
+        "Europe:Tirane"{\r
+            ec{"اراني"}\r
+        }\r
+        "Europe:Ulyanovsk"{\r
+            ec{"اليانوسڪ"}\r
+        }\r
+        "Europe:Uzhgorod"{\r
+            ec{"ازهارڊ"}\r
+        }\r
+        "Europe:Vaduz"{\r
+            ec{"وڊوز"}\r
+        }\r
+        "Europe:Vatican"{\r
+            ec{"وئٽيڪن"}\r
+        }\r
+        "Europe:Vienna"{\r
+            ec{"وينا"}\r
+        }\r
+        "Europe:Vilnius"{\r
+            ec{"ويلنيس"}\r
+        }\r
+        "Europe:Volgograd"{\r
+            ec{"وولگوگراد"}\r
+        }\r
+        "Europe:Warsaw"{\r
+            ec{"وارسا"}\r
+        }\r
+        "Europe:Zagreb"{\r
+            ec{"زغرب"}\r
+        }\r
+        "Europe:Zaporozhye"{\r
+            ec{"زيپروزهايا"}\r
+        }\r
+        "Europe:Zurich"{\r
+            ec{"زيورخ"}\r
+        }\r
+        "Indian:Antananarivo"{\r
+            ec{"انتاناناريوو"}\r
+        }\r
+        "Indian:Chagos"{\r
+            ec{"چاگوس"}\r
+        }\r
+        "Indian:Christmas"{\r
+            ec{"ڪرسمس"}\r
+        }\r
+        "Indian:Cocos"{\r
+            ec{"ڪوڪوس"}\r
+        }\r
+        "Indian:Comoro"{\r
+            ec{"ڪومورو"}\r
+        }\r
+        "Indian:Kerguelen"{\r
+            ec{"ڪرگيولين"}\r
+        }\r
+        "Indian:Mahe"{\r
+            ec{"ماهي"}\r
+        }\r
+        "Indian:Maldives"{\r
+            ec{"مالديپ"}\r
+        }\r
+        "Indian:Mauritius"{\r
+            ec{"موريشس"}\r
+        }\r
+        "Indian:Mayotte"{\r
+            ec{"مياٽي"}\r
+        }\r
+        "Indian:Reunion"{\r
+            ec{"ري يونين"}\r
+        }\r
+        "Pacific:Apia"{\r
+            ec{"اپيا"}\r
+        }\r
+        "Pacific:Auckland"{\r
+            ec{"آڪلينڊ"}\r
+        }\r
+        "Pacific:Bougainville"{\r
+            ec{"بوگين ويليا"}\r
+        }\r
+        "Pacific:Chatham"{\r
+            ec{"چئٿم"}\r
+        }\r
+        "Pacific:Easter"{\r
+            ec{"ايسٽر"}\r
+        }\r
+        "Pacific:Efate"{\r
+            ec{"افاتي"}\r
+        }\r
+        "Pacific:Enderbury"{\r
+            ec{"اينڊربري"}\r
+        }\r
+        "Pacific:Fakaofo"{\r
+            ec{"فڪائوفو"}\r
+        }\r
+        "Pacific:Fiji"{\r
+            ec{"فجي"}\r
+        }\r
+        "Pacific:Funafuti"{\r
+            ec{"فنافوٽي"}\r
+        }\r
+        "Pacific:Galapagos"{\r
+            ec{"گالاپاگوز"}\r
+        }\r
+        "Pacific:Gambier"{\r
+            ec{"گيمبيئر"}\r
+        }\r
+        "Pacific:Guadalcanal"{\r
+            ec{"گواڊل ڪينال"}\r
+        }\r
+        "Pacific:Guam"{\r
+            ec{"گوام"}\r
+        }\r
+        "Pacific:Honolulu"{\r
+            ec{"هونو لولو"}\r
+        }\r
+        "Pacific:Johnston"{\r
+            ec{"جانسٹن"}\r
+        }\r
+        "Pacific:Kiritimati"{\r
+            ec{"ڪريٽمٽي"}\r
+        }\r
+        "Pacific:Kosrae"{\r
+            ec{"ڪوسرائي"}\r
+        }\r
+        "Pacific:Kwajalein"{\r
+            ec{"ڪواجلين"}\r
+        }\r
+        "Pacific:Majuro"{\r
+            ec{"مجورو"}\r
+        }\r
+        "Pacific:Marquesas"{\r
+            ec{"مرڪيوسس"}\r
+        }\r
+        "Pacific:Midway"{\r
+            ec{"مڊوي"}\r
+        }\r
+        "Pacific:Nauru"{\r
+            ec{"نائرو"}\r
+        }\r
+        "Pacific:Niue"{\r
+            ec{"نيووي"}\r
+        }\r
+        "Pacific:Norfolk"{\r
+            ec{"نار فوڪ"}\r
+        }\r
+        "Pacific:Noumea"{\r
+            ec{"نائوميا"}\r
+        }\r
+        "Pacific:Pago_Pago"{\r
+            ec{"پاگو پاگو"}\r
+        }\r
+        "Pacific:Palau"{\r
+            ec{"پلائو"}\r
+        }\r
+        "Pacific:Pitcairn"{\r
+            ec{"پٽڪيرن"}\r
+        }\r
+        "Pacific:Ponape"{\r
+            ec{"پونپیئي"}\r
+        }\r
+        "Pacific:Port_Moresby"{\r
+            ec{"پورٽ مورسبي"}\r
+        }\r
+        "Pacific:Rarotonga"{\r
+            ec{"راروٽونگا"}\r
+        }\r
+        "Pacific:Saipan"{\r
+            ec{"سيپن"}\r
+        }\r
+        "Pacific:Tahiti"{\r
+            ec{"تاهٽي"}\r
+        }\r
+        "Pacific:Tarawa"{\r
+            ec{"تراوا"}\r
+        }\r
+        "Pacific:Tongatapu"{\r
+            ec{"ٽونگاٽاپو"}\r
+        }\r
+        "Pacific:Truk"{\r
+            ec{"چيوڪ"}\r
+        }\r
+        "Pacific:Wake"{\r
+            ec{"ويڪ"}\r
+        }\r
+        "Pacific:Wallis"{\r
+            ec{"ويلس"}\r
+        }\r
+        "meta:Afghanistan"{\r
+            ls{"افغانستان جو وقت"}\r
+        }\r
+        "meta:Africa_Central"{\r
+            ls{"مرڪزي آفريقا جو وقت"}\r
+        }\r
+        "meta:Africa_Eastern"{\r
+            ls{"اوڀر آفريڪا جو وقت"}\r
+        }\r
+        "meta:Africa_Southern"{\r
+            ls{"ڏکڻ آفريڪا جو معياري وقت"}\r
+        }\r
+        "meta:Africa_Western"{\r
+            ld{"اولهه آفريقا جي اونهاري جو وقت"}\r
+            lg{"اولهه آفريقا جو وقت"}\r
+            ls{"اولهه آفريقا جو معياري وقت"}\r
+        }\r
+        "meta:Alaska"{\r
+            ld{"الاسڪا جي ڏينهن جو وقت"}\r
+            lg{"الاسڪا جو وقت"}\r
+            ls{"الاسڪا جو معياري وقت"}\r
+        }\r
+        "meta:Amazon"{\r
+            ld{"ايميزون جي اونهاري جو وقت"}\r
+            lg{"ايميزون جو وقت"}\r
+            ls{"ايميزون جو معياري وقت"}\r
+        }\r
+        "meta:America_Central"{\r
+            ld{"مرڪزي ڏينهن جو وقت"}\r
+            lg{"مرڪزي وقت"}\r
+            ls{"مرڪزي معياري وقت"}\r
+        }\r
+        "meta:America_Eastern"{\r
+            ld{"مشرقي ڏينهن جو وقت"}\r
+            lg{"مشرقي وقت"}\r
+            ls{"مشرقي معياري وقت"}\r
+        }\r
+        "meta:America_Mountain"{\r
+            ld{"پهاڙي ڏينهن جو وقت"}\r
+            lg{"پهاڙي وقت"}\r
+            ls{"پهاڙي معياري وقت"}\r
+        }\r
+        "meta:America_Pacific"{\r
+            ld{"پيسيفڪ ڏينهن جو وقت"}\r
+            lg{"پيسيفڪ وقت"}\r
+            ls{"پيسيفڪ معياري وقت"}\r
+        }\r
+        "meta:Apia"{\r
+            ld{"اپيا جي ڏينهن جو وقت"}\r
+            lg{"اپيا جو وقت"}\r
+            ls{"اپيا جو معياري وقت"}\r
+        }\r
+        "meta:Arabian"{\r
+            ld{"عربين جي ڏينهن جو وقت"}\r
+            lg{"عربين جو وقت"}\r
+            ls{"عربين جو معياري وقت"}\r
+        }\r
+        "meta:Argentina"{\r
+            ld{"ارجنٽائن جي اونهاري جو وقت"}\r
+            lg{"ارجنٽائن وقت"}\r
+            ls{"ارجنٽائن معياري وقت"}\r
+        }\r
+        "meta:Argentina_Western"{\r
+            ld{"مغربي ارجنٽائن جي اونهاري جو وقت"}\r
+            lg{"مغربي ارجنٽائن وقت"}\r
+            ls{"مغربي ارجنٽائن جو معياري وقت"}\r
+        }\r
+        "meta:Armenia"{\r
+            ld{"آرمينيا جي اونهاري جو وقت"}\r
+            lg{"آرمينيا جو وقت"}\r
+            ls{"آرمينيا جو معياري وقت"}\r
+        }\r
+        "meta:Atlantic"{\r
+            ld{"ايٽلانٽڪ جي ڏينهن جو وقت"}\r
+            lg{"ايٽلانٽڪ جو وقت"}\r
+            ls{"ايٽلانٽڪ جو معياري وقت"}\r
+        }\r
+        "meta:Australia_Central"{\r
+            ld{"آسٽريليا جو مرڪزي ڏينهن جو وقت"}\r
+            lg{"مرڪزي آسٽريليا جو وقت"}\r
+            ls{"آسٽريليا جو مرڪزي معياري وقت"}\r
+        }\r
+        "meta:Australia_CentralWestern"{\r
+            ld{"آسٽريليا جو مرڪزي مغربي ڏينهن جو وقت"}\r
+            lg{"آسٽريليا جو مرڪزي مغربي وقت"}\r
+            ls{"آسٽريليا جو مرڪزي مغربي معياري وقت"}\r
+        }\r
+        "meta:Australia_Eastern"{\r
+            ld{"آسٽريليا جو مشرقي ڏينهن جو وقت"}\r
+            lg{"اوڀر آسٽريليا جو وقت"}\r
+            ls{"آسٽريليا جو مشرقي معياري وقت"}\r
+        }\r
+        "meta:Australia_Western"{\r
+            ld{"آسٽريليا جو مغربي ڏينهن جو وقت"}\r
+            lg{"مغربي آسٽريليا جو وقت"}\r
+            ls{"آسٽريليا جو مغربي معياري وقت"}\r
+        }\r
+        "meta:Azerbaijan"{\r
+            ld{"آذربائيجان جي اونهاري جو وقت"}\r
+            lg{"آذربائيجان جو وقت"}\r
+            ls{"آذربائيجان جو معياري وقت"}\r
+        }\r
+        "meta:Azores"{\r
+            ld{"ازورز جي اونهاري جو وقت"}\r
+            lg{"ازورز جو وقت"}\r
+            ls{"ازورز جو معياري وقت"}\r
+        }\r
+        "meta:Bangladesh"{\r
+            ld{"بنگلاديش جي اونهاري جو وقت"}\r
+            lg{"بنگلاديش جو وقت"}\r
+            ls{"بنگلاديش جو معياري وقت"}\r
+        }\r
+        "meta:Bhutan"{\r
+            ls{"ڀوٽان جو وقت"}\r
+        }\r
+        "meta:Bolivia"{\r
+            ls{"بولويائي وقت"}\r
+        }\r
+        "meta:Brasilia"{\r
+            ld{"براسيليا جي اونهاري جو وقت"}\r
+            lg{"بريسيليائي وقت"}\r
+            ls{"براسيليا جو معياري وقت"}\r
+        }\r
+        "meta:Brunei"{\r
+            ls{"برونائي داروالسلام جو وقت"}\r
+        }\r
+        "meta:Cape_Verde"{\r
+            ld{"ڪيپ ورڊ جي اونهاري جو وقت"}\r
+            lg{"ڪيپ ورڊ جو وقت"}\r
+            ls{"ڪيپ ورڊ جو معياري وقت"}\r
+        }\r
+        "meta:Chamorro"{\r
+            ls{"چمورو جو معياري وقت"}\r
+        }\r
+        "meta:Chatham"{\r
+            ld{"چئٿم جي ڏينهن جو وقت"}\r
+            lg{"چئٿم جو وقت"}\r
+            ls{"چئٿم جو معياري وقت"}\r
+        }\r
+        "meta:Chile"{\r
+            ld{"چلي جي اونهاري جو وقت"}\r
+            lg{"چلي جو وقت"}\r
+            ls{"چلي جو معياري وقت"}\r
+        }\r
+        "meta:China"{\r
+            ld{"چائنا جي ڏينهن جو وقت"}\r
+            lg{"چائنا جو وقت"}\r
+            ls{"چائنا جو معياري وقت"}\r
+        }\r
+        "meta:Choibalsan"{\r
+            ld{"چوئي بيلسن جي اونهاري جو وقت"}\r
+            lg{"چوئي بيلسن جو وقت"}\r
+            ls{"چوئي بيلسن جو معياري وقت"}\r
+        }\r
+        "meta:Christmas"{\r
+            ls{"ڪرسمس آئي لينڊ جو وقت"}\r
+        }\r
+        "meta:Cocos"{\r
+            ls{"ڪوڪوس آئي لينڊ جو وقت"}\r
+        }\r
+        "meta:Colombia"{\r
+            ld{"ڪولمبيا جي اونهاري جو وقت"}\r
+            lg{"ڪولمبيا جو وقت"}\r
+            ls{"ڪولمبيا جو معياري وقت"}\r
+        }\r
+        "meta:Cook"{\r
+            ld{"ڪوڪ آئي لينڊ جي اڌ اونهاري جو وقت"}\r
+            lg{"ڪوڪ آئي لينڊ جو وقت"}\r
+            ls{"ڪوڪ آئي لينڊ جو معياري وقت"}\r
+        }\r
+        "meta:Cuba"{\r
+            ld{"ڪيوبا جي ڏينهن جو وقت"}\r
+            lg{"ڪيوبا جو وقت"}\r
+            ls{"ڪيوبا جو معياري وقت"}\r
+        }\r
+        "meta:Davis"{\r
+            ls{"ڊيوس جو وقت"}\r
+        }\r
+        "meta:DumontDUrville"{\r
+            ls{"ڊومانٽ درويئل جو وقت"}\r
+        }\r
+        "meta:East_Timor"{\r
+            ls{"اوڀر تيمور جو وقت"}\r
+        }\r
+        "meta:Easter"{\r
+            ld{"ايسٽر آئي لينڊ جي اونهاري جو وقت"}\r
+            lg{"ايسٽر آئي لينڊ جو وقت"}\r
+            ls{"ايسٽر آئي لينڊ جو معياري وقت"}\r
+        }\r
+        "meta:Ecuador"{\r
+            ls{"ايڪواڊور جو وقت"}\r
+        }\r
+        "meta:Europe_Central"{\r
+            ld{"مرڪزي يورپي اونهاري جو وقت"}\r
+            lg{"مرڪزي يورپي وقت"}\r
+            ls{"مرڪزي يورپي معياري وقت"}\r
+        }\r
+        "meta:Europe_Eastern"{\r
+            ld{"مشرقي يورپي اونهاري جو وقت"}\r
+            lg{"مشرقي يورپي وقت"}\r
+            ls{"مشرقي يورپي معياري وقت"}\r
+        }\r
+        "meta:Europe_Further_Eastern"{\r
+            ls{"وڌيڪ مشرقي يورپي وقت"}\r
+        }\r
+        "meta:Europe_Western"{\r
+            ld{"مغربي يورپي ڏينهن جو وقت"}\r
+            lg{"مغربي يورپي وقت"}\r
+            ls{"مغربي يورپي معياري وقت"}\r
+        }\r
+        "meta:Falkland"{\r
+            ld{"فاڪ لينڊ آئي لينڊ جي اونهاري جو وقت"}\r
+            lg{"فاڪ لينڊ آئي لينڊ جو وقت"}\r
+            ls{"فاڪ لينڊ آئي لينڊ جو معياري وقت"}\r
+        }\r
+        "meta:Fiji"{\r
+            ld{"فجي جي اونهاري جو وقت"}\r
+            lg{"فجي جو وقت"}\r
+            ls{"فجي جو معياري وقت"}\r
+        }\r
+        "meta:French_Guiana"{\r
+            ls{"فرانسيسي گيانا جو وقت"}\r
+        }\r
+        "meta:French_Southern"{\r
+            ls{"فرانسيسي ڏاکڻي ۽ انٽارڪٽڪ جو وقت"}\r
+        }\r
+        "meta:GMT"{\r
+            ls{"گرين وچ مين ٽائيم"}\r
+        }\r
+        "meta:Galapagos"{\r
+            ls{"گالاپاگوز جو وقت"}\r
+        }\r
+        "meta:Gambier"{\r
+            ls{"گيمبيئر جو وقت"}\r
+        }\r
+        "meta:Georgia"{\r
+            ld{"جارجيا جي اونهاري جو وقت"}\r
+            lg{"جارجيا جو وقت"}\r
+            ls{"جارجيا جو معياري وقت"}\r
+        }\r
+        "meta:Gilbert_Islands"{\r
+            ls{"گلبرٽ آئي لينڊ جو وقت"}\r
+        }\r
+        "meta:Greenland_Eastern"{\r
+            ld{"مشرقي گرين لينڊ جي اونهاري جو وقت"}\r
+            lg{"مشرقي گرين لينڊ جو وقت"}\r
+            ls{"مشرقي گرين لينڊ جو معياري وقت"}\r
+        }\r
+        "meta:Greenland_Western"{\r
+            ld{"مغربي گرين لينڊ جي اونهاري جو وقت"}\r
+            lg{"مغربي گرين لينڊ جو وقت"}\r
+            ls{"مغربي گرين لينڊ جو معياري وقت"}\r
+        }\r
+        "meta:Gulf"{\r
+            ls{"خلج معياري وقت"}\r
+        }\r
+        "meta:Guyana"{\r
+            ls{"گيانائي وقت"}\r
+        }\r
+        "meta:Hawaii_Aleutian"{\r
+            ld{"هوائي اليوٽين جي ڏينهن جو وقت"}\r
+            lg{"هوائي اليوٽين جو وقت"}\r
+            ls{"هوائي اليوٽين جو معياري وقت"}\r
+        }\r
+        "meta:Hong_Kong"{\r
+            ld{"هانگ ڪانگ جي اونهاري جو وقت"}\r
+            lg{"هانگ ڪانگ جو وقت"}\r
+            ls{"هانگ ڪانگ جو معياري وقت"}\r
+        }\r
+        "meta:Hovd"{\r
+            ld{"هووڊ جي اونهاري جو وقت"}\r
+            lg{"هووڊ جو وقت"}\r
+            ls{"هووڊ جو معياري وقت"}\r
+        }\r
+        "meta:India"{\r
+            ls{"ڀارت جو معياري وقت"}\r
+        }\r
+        "meta:Indian_Ocean"{\r
+            ls{"هند سمنڊ جو وقت"}\r
+        }\r
+        "meta:Indochina"{\r
+            ls{"انڊو چائنا جو وقت"}\r
+        }\r
+        "meta:Indonesia_Central"{\r
+            ls{"مرڪزي انڊونيشيا جو وقت"}\r
+        }\r
+        "meta:Indonesia_Eastern"{\r
+            ls{"اوڀر انڊونيشيا جو وقت"}\r
+        }\r
+        "meta:Indonesia_Western"{\r
+            ls{"اولهه انڊونيشيا جو وقت"}\r
+        }\r
+        "meta:Iran"{\r
+            ld{"ايران جي ڏينهن جو وقت"}\r
+            lg{"ايران جو وقت"}\r
+            ls{"ايران جو معياري وقت"}\r
+        }\r
+        "meta:Irkutsk"{\r
+            ld{"ارڪتسڪ جي ڏينهن جو وقت"}\r
+            lg{"ارڪتسڪ جو وقت"}\r
+            ls{"ارڪتسڪ جو معياري وقت"}\r
+        }\r
+        "meta:Israel"{\r
+            ld{"اسرائيل جي ڏينهن جو وقت"}\r
+            lg{"اسرائيل جو وقت"}\r
+            ls{"اسرائيل جو معياري وقت"}\r
+        }\r
+        "meta:Japan"{\r
+            ld{"جاپان جي ڏينهن جو وقت"}\r
+            lg{"جاپان جو وقت"}\r
+            ls{"جاپان جو معياري وقت"}\r
+        }\r
+        "meta:Kazakhstan_Eastern"{\r
+            ls{"اوڀر قزاقستان جو وقت"}\r
+        }\r
+        "meta:Kazakhstan_Western"{\r
+            ls{"اولهه قزاقستان جو وقت"}\r
+        }\r
+        "meta:Korea"{\r
+            ld{"ڪوريا جي ڏينهن جو وقت"}\r
+            lg{"ڪوريا جو وقت"}\r
+            ls{"ڪوريا جو معياري وقت"}\r
+        }\r
+        "meta:Kosrae"{\r
+            ls{"ڪوسرائي جو وقت"}\r
+        }\r
+        "meta:Krasnoyarsk"{\r
+            ld{"ڪریسنویارسڪ جي ڏينهن جو وقت"}\r
+            lg{"ڪریسنویارسڪ جو وقت"}\r
+            ls{"ڪریسنویارسڪ جو معياري وقت"}\r
+        }\r
+        "meta:Kyrgystan"{\r
+            ls{"ڪرگزستان جو وقت"}\r
+        }\r
+        "meta:Line_Islands"{\r
+            ls{"لائن آئي لينڊ جو وقت"}\r
+        }\r
+        "meta:Lord_Howe"{\r
+            ld{"لورڊ هووي جي ڏينهن جو وقت"}\r
+            lg{"لورڊ هووي جو وقت"}\r
+            ls{"لورڊ هووي جو معياري وقت"}\r
+        }\r
+        "meta:Macquarie"{\r
+            ls{"مڪوائري آئي لينڊ جو وقت"}\r
+        }\r
+        "meta:Magadan"{\r
+            ld{"مگادان جي ڏينهن جي وقت"}\r
+            lg{"مگادان جو وقت"}\r
+            ls{"مگادان جو معياري وقت"}\r
+        }\r
+        "meta:Malaysia"{\r
+            ls{"ملائيشيا جو وقت"}\r
+        }\r
+        "meta:Maldives"{\r
+            ls{"مالديپ جو وقت"}\r
+        }\r
+        "meta:Marquesas"{\r
+            ls{"مرڪيوسس جو وقت"}\r
+        }\r
+        "meta:Marshall_Islands"{\r
+            ls{"مارشل آئي لينڊ جو وقت"}\r
+        }\r
+        "meta:Mauritius"{\r
+            ld{"موريشيس جي اونهاري جو وقت"}\r
+            lg{"موريشيس جو وقت"}\r
+            ls{"موريشيس جو معياري وقت"}\r
+        }\r
+        "meta:Mawson"{\r
+            ls{"مائوسن جو وقت"}\r
+        }\r
+        "meta:Mexico_Northwest"{\r
+            ld{"شمالي مغربي ميڪسيڪو جي ڏينهن جو وقت"}\r
+            lg{"شمالي مغربي ميڪسيڪو جو وقت"}\r
+            ls{"شمالي مغربي ميڪسيڪو جو معياري وقت"}\r
+        }\r
+        "meta:Mexico_Pacific"{\r
+            ld{"ميڪسيڪن پيسيفڪ جي ڏينهن جو وقت"}\r
+            lg{"ميڪسيڪن پيسيفڪ وقت"}\r
+            ls{"ميڪسيڪن پيسيفڪ جو معياري وقت"}\r
+        }\r
+        "meta:Mongolia"{\r
+            ld{"اولان باتر جي اونهاري جو وقت"}\r
+            lg{"اولان باتر جو وقت"}\r
+            ls{"اولان باتر جو معياري وقت"}\r
+        }\r
+        "meta:Moscow"{\r
+            ld{"ماسڪو جي ڏينهن جي وقت"}\r
+            lg{"ماسڪو جو وقت"}\r
+            ls{"ماسڪو جو معياري وقت"}\r
+        }\r
+        "meta:Myanmar"{\r
+            ls{"ميانمار جو وقت"}\r
+        }\r
+        "meta:Nauru"{\r
+            ls{"نائورو جو وقت"}\r
+        }\r
+        "meta:Nepal"{\r
+            ls{"نيپال جو وقت"}\r
+        }\r
+        "meta:New_Caledonia"{\r
+            ld{"نيو ڪيليڊونيا جي اونهاري جو وقت"}\r
+            lg{"نيو ڪيليڊونيا جو وقت"}\r
+            ls{"نيو ڪيليڊونيا جو معياري وقت"}\r
+        }\r
+        "meta:New_Zealand"{\r
+            ld{"نيوزيلينڊ جي ڏينهن جو وقت"}\r
+            lg{"نيوزيلينڊ جو وقت"}\r
+            ls{"نيوزيلينڊ جو معياري وقت"}\r
+        }\r
+        "meta:Newfoundland"{\r
+            ld{"نيو فائونڊ لينڊ جي ڏينهن جو وقت"}\r
+            lg{"نيو فائونڊ لينڊ جو وقت"}\r
+            ls{"نيو فائونڊ لينڊ جو معياري وقت"}\r
+        }\r
+        "meta:Niue"{\r
+            ls{"نيووي جو وقت"}\r
+        }\r
+        "meta:Norfolk"{\r
+            ls{"نار فوڪ آئي لينڊ جو وقت"}\r
+        }\r
+        "meta:Noronha"{\r
+            ld{"فرنانڊو دي نورونها جي اونهاري وقت"}\r
+            lg{"فرنانڊو دي نورونها جو وقت"}\r
+            ls{"فرنانڊو دي نورونها جو معياري وقت"}\r
+        }\r
+        "meta:Novosibirsk"{\r
+            ld{"نوواسبئيرسڪ جي ڏينهن جو وقت"}\r
+            lg{"نوواسبئيرسڪ جو وقت"}\r
+            ls{"نوواسبئيرسڪ جو معياري وقت"}\r
+        }\r
+        "meta:Omsk"{\r
+            ld{"اومسڪ جي ڏينهن جو وقت"}\r
+            lg{"اومسڪ جو وقت"}\r
+            ls{"اومسڪ جو معياري وقت"}\r
+        }\r
+        "meta:Pakistan"{\r
+            ld{"پاڪستان جي اونهاري جو وقت"}\r
+            lg{"پاڪستان جو وقت"}\r
+            ls{"پاڪستان جو معياري وقت"}\r
+        }\r
+        "meta:Palau"{\r
+            ls{"پلائو جو وقت"}\r
+        }\r
+        "meta:Papua_New_Guinea"{\r
+            ls{"پاپوا نيو گني جو وقت"}\r
+        }\r
+        "meta:Paraguay"{\r
+            ld{"پيراگوئي جي اونهاري جو وقت"}\r
+            lg{"پيراگوئي جو وقت"}\r
+            ls{"پيراگوئي جو معياري وقت"}\r
+        }\r
+        "meta:Peru"{\r
+            ld{"پيرو جي اونهاري جو وقت"}\r
+            lg{"پيرو جو وقت"}\r
+            ls{"پيرو جو معياري وقت"}\r
+        }\r
+        "meta:Philippines"{\r
+            ld{"فلپائن جي اونهاري جو وقت"}\r
+            lg{"فلپائن جو وقت"}\r
+            ls{"فلپائن جو معياري وقت"}\r
+        }\r
+        "meta:Phoenix_Islands"{\r
+            ls{"فونيڪس آئي لينڊ جو وقت"}\r
+        }\r
+        "meta:Pierre_Miquelon"{\r
+            ld{"سینٽ پیئر و میڪوئیلون جي ڏينهن جو وقت"}\r
+            lg{"سينٽ پيئر ائن ميڪوئلون جو وقت"}\r
+            ls{"سینٽ پیئر اَئن میڪوئلون جو مانائتو وقت"}\r
+        }\r
+        "meta:Pitcairn"{\r
+            ls{"پٽڪيرن جو وقت"}\r
+        }\r
+        "meta:Ponape"{\r
+            ls{"پوناپي جو وقت"}\r
+        }\r
+        "meta:Pyongyang"{\r
+            ls{"شيانگ يانگ جو وقت"}\r
+        }\r
+        "meta:Reunion"{\r
+            ls{"ري يونين جو وقت"}\r
+        }\r
+        "meta:Rothera"{\r
+            ls{"روٿيرا جو وقت"}\r
+        }\r
+        "meta:Sakhalin"{\r
+            ld{"سخالين جي ڏينهن جو وقت"}\r
+            lg{"سخالين جو وقت"}\r
+            ls{"سخالين جو معياري وقت"}\r
+        }\r
+        "meta:Samoa"{\r
+            ld{"ساموا جي ڏينهن جو وقت"}\r
+            lg{"ساموا جو وقت"}\r
+            ls{"ساموا جو معياري وقت"}\r
+        }\r
+        "meta:Seychelles"{\r
+            ls{"شي شلز جو وقت"}\r
+        }\r
+        "meta:Singapore"{\r
+            ls{"سنگاپور جو معياري وقت"}\r
+        }\r
+        "meta:Solomon"{\r
+            ls{"سولومن آئي لينڊ جو وقت"}\r
+        }\r
+        "meta:South_Georgia"{\r
+            ls{"ڏکڻ جارجيا جو وقت"}\r
+        }\r
+        "meta:Suriname"{\r
+            ls{"سوري نام جو وقت"}\r
+        }\r
+        "meta:Syowa"{\r
+            ls{"سائيوا جو وقت"}\r
+        }\r
+        "meta:Tahiti"{\r
+            ls{"تاهيٽي جو وقت"}\r
+        }\r
+        "meta:Taipei"{\r
+            ld{"تائپي جي ڏينهن جو وقت"}\r
+            lg{"تائپي جو وقت"}\r
+            ls{"تائپي جو معياري وقت"}\r
+        }\r
+        "meta:Tajikistan"{\r
+            ls{"تاجڪستان جو وقت"}\r
+        }\r
+        "meta:Tokelau"{\r
+            ls{"ٽوڪيلائو جو وقت"}\r
+        }\r
+        "meta:Tonga"{\r
+            ld{"ٽونگا جي اونهاري جو وقت"}\r
+            lg{"ٽونگا جو وقت"}\r
+            ls{"ٽونگا جو معياري وقت"}\r
+        }\r
+        "meta:Truk"{\r
+            ls{"چيوڪ جو وقت"}\r
+        }\r
+        "meta:Turkmenistan"{\r
+            ld{"ترڪمانستان جي اونهاري جو وقت"}\r
+            lg{"ترڪمانستان جو وقت"}\r
+            ls{"ترڪمانستان جو معياري وقت"}\r
+        }\r
+        "meta:Tuvalu"{\r
+            ls{"تووالو جو وقت"}\r
+        }\r
+        "meta:Uruguay"{\r
+            ld{"يوروگائي جي اونهاري جو وقت"}\r
+            lg{"يوروگائي جو وقت"}\r
+            ls{"يوروگائي جو معياري وقت"}\r
+        }\r
+        "meta:Uzbekistan"{\r
+            ld{"ازبڪستان جي اونهاري جو وقت"}\r
+            lg{"ازبڪستان جو وقت"}\r
+            ls{"ازبڪستان جو معياري وقت"}\r
+        }\r
+        "meta:Vanuatu"{\r
+            ld{"وانواتو جي ڏينهن جو وقت"}\r
+            lg{"وانواتو جو وقت"}\r
+            ls{"وانواتو جو معياري وقت"}\r
+        }\r
+        "meta:Venezuela"{\r
+            ls{"وينزويلا جو وقت"}\r
+        }\r
+        "meta:Vladivostok"{\r
+            ld{"اولادووستوڪ جي ڏينهن جو وقت"}\r
+            lg{"ولادووستوڪ جو وقت"}\r
+            ls{"ولادووستوڪ جو معياري وقت"}\r
+        }\r
+        "meta:Volgograd"{\r
+            ld{"وولگوگراد جي ڏينهن جو وقت"}\r
+            lg{"وولگوگراد جو وقت"}\r
+            ls{"وولگوگراد جو معياري وقت"}\r
+        }\r
+        "meta:Vostok"{\r
+            ls{"ووسٽوڪ جو وقت"}\r
+        }\r
+        "meta:Wake"{\r
+            ls{"ويڪ آئي لينڊ جو وقت"}\r
+        }\r
+        "meta:Wallis"{\r
+            ls{"ويلس ۽ فتونا جو وقت"}\r
+        }\r
+        "meta:Yakutsk"{\r
+            ld{"ياڪتسڪ جي ڏينهن جو وقت"}\r
+            lg{"ياڪتسڪ جو وقت"}\r
+            ls{"ياڪتسڪ جو معياري وقت"}\r
+        }\r
+        "meta:Yekaterinburg"{\r
+            ld{"يڪاٽيرنبرگ جي ڏينهن جو وقت"}\r
+            lg{"يڪاٽيرنبرگ جو وقت"}\r
+            ls{"يڪاٽيرنبرگ جو معياري وقت"}\r
+        }\r
+        fallbackFormat{"{1} ({0})"}\r
+        gmtFormat{"GMT{0}"}\r
+        gmtZeroFormat{"GMT"}\r
+        hourFormat{"+HH:mm;-HH:mm"}\r
+        regionFormat{"{0} وقت"}\r
+        regionFormatDaylight{"{0} ڏينهن جو وقت"}\r
+        regionFormatStandard{"{0} معياري وقت"}\r
+    }\r
+}\r
index 95448ea..0aed8f4 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 se{\r
-    Version{"2.1.38.69"}\r
+    Version{"2.1.43.94"}\r
     zoneStrings{\r
         "America:Curacao"{\r
             ec{"Curaçao"}\r
index 051bdeb..79ead54 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 se_FI{\r
-    Version{"2.1.38.73"}\r
+    Version{"2.1.44.88"}\r
     zoneStrings{\r
         "Africa:Cairo"{\r
             ec{"Kairo"}\r
index 4d01ddb..697f0d9 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 si{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.50"}\r
     zoneStrings{\r
         "Africa:Abidjan"{\r
             ec{"අබිජාන්"}\r
index 71c6b00..2b15a10 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 sk{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.65"}\r
     zoneStrings{\r
         "Africa:Abidjan"{\r
             ec{"Abidjan"}\r
index 9fd260e..cc5e8d0 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 sl{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.91"}\r
     zoneStrings{\r
         "Africa:Abidjan"{\r
             ec{"Abidžan"}\r
@@ -952,7 +952,7 @@ sl{
             ec{"Sydney"}\r
         }\r
         "Etc:UTC"{\r
-            ls{"Univerzalni koordinirani čas"}\r
+            ls{"univerzalni koordinirani čas"}\r
         }\r
         "Etc:Unknown"{\r
             ec{"neznano mesto"}\r
index 7724fa7..9b77be7 100644 (file)
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 sn{\r
-    Version{"2.1.39.11"}\r
+    Version{"2.1.43.94"}\r
 }\r
index f16e7e4..3da2fb6 100644 (file)
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 so{\r
-    Version{"2.1.38.69"}\r
+    Version{"2.1.43.94"}\r
     zoneStrings{\r
+        "Africa:Abidjan"{\r
+            ec{"Abidjaan"}\r
+        }\r
+        "Africa:Accra"{\r
+            ec{"Akra"}\r
+        }\r
+        "Africa:Addis_Ababa"{\r
+            ec{"Addis Ababa"}\r
+        }\r
+        "Africa:Algiers"{\r
+            ec{"Aljeeris"}\r
+        }\r
+        "Africa:Asmera"{\r
+            ec{"Caasmara"}\r
+        }\r
+        "Africa:Bamako"{\r
+            ec{"Bamaako"}\r
+        }\r
+        "Africa:Bangui"{\r
+            ec{"Bangui"}\r
+        }\r
+        "Africa:Banjul"{\r
+            ec{"Banjui"}\r
+        }\r
+        "Africa:Bissau"{\r
+            ec{"Bisau"}\r
+        }\r
+        "Africa:Blantyre"{\r
+            ec{"Balantire"}\r
+        }\r
+        "Africa:Brazzaville"{\r
+            ec{"Barasafil"}\r
+        }\r
+        "Africa:Bujumbura"{\r
+            ec{"Bujumbura"}\r
+        }\r
+        "Africa:Cairo"{\r
+            ec{"Qaahira"}\r
+        }\r
+        "Africa:Casablanca"{\r
+            ec{"Kasabalaanka"}\r
+        }\r
+        "Africa:Ceuta"{\r
+            ec{"Seuta"}\r
+        }\r
+        "Africa:Conakry"{\r
+            ec{"Conakri"}\r
+        }\r
+        "Africa:Dakar"{\r
+            ec{"Dakar"}\r
+        }\r
+        "Africa:Dar_es_Salaam"{\r
+            ec{"Daresalaam"}\r
+        }\r
+        "Africa:Djibouti"{\r
+            ec{"Djibuuti"}\r
+        }\r
+        "Africa:Douala"{\r
+            ec{"Douaala"}\r
+        }\r
+        "Africa:El_Aaiun"{\r
+            ec{"El Ceyuun"}\r
+        }\r
+        "Africa:Freetown"{\r
+            ec{"Firiitawn"}\r
+        }\r
+        "Africa:Gaborone"{\r
+            ec{"Gabroon"}\r
+        }\r
+        "Africa:Harare"{\r
+            ec{"Haraare"}\r
+        }\r
+        "Africa:Johannesburg"{\r
+            ec{"Johansbaag"}\r
+        }\r
+        "Africa:Juba"{\r
+            ec{"Juba"}\r
+        }\r
+        "Africa:Kampala"{\r
+            ec{"Kambaala"}\r
+        }\r
+        "Africa:Khartoum"{\r
+            ec{"Khartuum"}\r
+        }\r
+        "Africa:Kigali"{\r
+            ec{"Kigali"}\r
+        }\r
+        "Africa:Kinshasa"{\r
+            ec{"Kinshasa"}\r
+        }\r
+        "Africa:Lagos"{\r
+            ec{"Lagos"}\r
+        }\r
+        "Africa:Libreville"{\r
+            ec{"Librefil"}\r
+        }\r
+        "Africa:Lome"{\r
+            ec{"Loom"}\r
+        }\r
+        "Africa:Luanda"{\r
+            ec{"Luanda"}\r
+        }\r
+        "Africa:Lubumbashi"{\r
+            ec{"Lubumbaashi"}\r
+        }\r
+        "Africa:Lusaka"{\r
+            ec{"Lusaaka"}\r
+        }\r
+        "Africa:Malabo"{\r
+            ec{"Malabo"}\r
+        }\r
+        "Africa:Maputo"{\r
+            ec{"Maputo"}\r
+        }\r
+        "Africa:Maseru"{\r
+            ec{"Maseero"}\r
+        }\r
+        "Africa:Mbabane"{\r
+            ec{"Mbabane"}\r
+        }\r
+        "Africa:Mogadishu"{\r
+            ec{"Muqdisho"}\r
+        }\r
+        "Africa:Monrovia"{\r
+            ec{"Monrofiya"}\r
+        }\r
+        "Africa:Nairobi"{\r
+            ec{"Nairobi"}\r
+        }\r
+        "Africa:Ndjamena"{\r
+            ec{"Ndjamena"}\r
+        }\r
+        "Africa:Niamey"{\r
+            ec{"Niamey"}\r
+        }\r
+        "Africa:Nouakchott"{\r
+            ec{"Nookjot"}\r
+        }\r
+        "Africa:Ouagadougou"{\r
+            ec{"Ouagadougou"}\r
+        }\r
+        "Africa:Porto-Novo"{\r
+            ec{"Boorto-Noofo"}\r
+        }\r
+        "Africa:Sao_Tome"{\r
+            ec{"Sao Tome"}\r
+        }\r
+        "Africa:Tripoli"{\r
+            ec{"Tripoli"}\r
+        }\r
+        "Africa:Tunis"{\r
+            ec{"Tunis"}\r
+        }\r
+        "Africa:Windhoek"{\r
+            ec{"Windhook"}\r
+        }\r
+        "America:Adak"{\r
+            ec{"Adak"}\r
+        }\r
+        "America:Anchorage"{\r
+            ec{"Anjorage"}\r
+        }\r
+        "America:Anguilla"{\r
+            ec{"Anguilla"}\r
+        }\r
+        "America:Antigua"{\r
+            ec{"Antigua"}\r
+        }\r
+        "America:Araguaina"{\r
+            ec{"Araguaina"}\r
+        }\r
+        "America:Argentina:La_Rioja"{\r
+            ec{"La Rioja"}\r
+        }\r
+        "America:Argentina:Rio_Gallegos"{\r
+            ec{"Rio Gallegos"}\r
+        }\r
+        "America:Argentina:Salta"{\r
+            ec{"Salta"}\r
+        }\r
+        "America:Argentina:San_Juan"{\r
+            ec{"San Juan"}\r
+        }\r
+        "America:Argentina:San_Luis"{\r
+            ec{"San Luis"}\r
+        }\r
+        "America:Argentina:Tucuman"{\r
+            ec{"Tukuumaan"}\r
+        }\r
+        "America:Argentina:Ushuaia"{\r
+            ec{"Ushuaay"}\r
+        }\r
+        "America:Aruba"{\r
+            ec{"Aruba"}\r
+        }\r
+        "America:Asuncion"{\r
+            ec{"Asunkion"}\r
+        }\r
+        "America:Bahia"{\r
+            ec{"Baahiya"}\r
+        }\r
+        "America:Bahia_Banderas"{\r
+            ec{"Bahiya Banderas"}\r
+        }\r
+        "America:Barbados"{\r
+            ec{"Barbados"}\r
+        }\r
+        "America:Belem"{\r
+            ec{"Belem"}\r
+        }\r
+        "America:Belize"{\r
+            ec{"Beliise"}\r
+        }\r
+        "America:Blanc-Sablon"{\r
+            ec{"Balank-Sablon"}\r
+        }\r
+        "America:Boa_Vista"{\r
+            ec{"Bow Fista"}\r
+        }\r
+        "America:Bogota"{\r
+            ec{"Bogota"}\r
+        }\r
+        "America:Boise"{\r
+            ec{"Boys"}\r
+        }\r
+        "America:Buenos_Aires"{\r
+            ec{"Boonas Ayris"}\r
+        }\r
+        "America:Cambridge_Bay"{\r
+            ec{"Kambriij Baay"}\r
+        }\r
+        "America:Campo_Grande"{\r
+            ec{"Kaambo Carande"}\r
+        }\r
+        "America:Cancun"{\r
+            ec{"Kaankuun"}\r
+        }\r
+        "America:Caracas"{\r
+            ec{"Karakaas"}\r
+        }\r
+        "America:Catamarca"{\r
+            ec{"Katamaarka"}\r
+        }\r
+        "America:Cayenne"{\r
+            ec{"Kayeen"}\r
+        }\r
+        "America:Cayman"{\r
+            ec{"Keymaan"}\r
+        }\r
+        "America:Chicago"{\r
+            ec{"Jikaago"}\r
+        }\r
+        "America:Chihuahua"{\r
+            ec{"Jiwaahuu"}\r
+        }\r
+        "America:Coral_Harbour"{\r
+            ec{"Atikokaan"}\r
+        }\r
+        "America:Cordoba"{\r
+            ec{"Kordooba"}\r
+        }\r
+        "America:Costa_Rica"{\r
+            ec{"Kosta Riika"}\r
+        }\r
+        "America:Creston"{\r
+            ec{"Karestoon"}\r
+        }\r
+        "America:Cuiaba"{\r
+            ec{"Kuiaaba"}\r
+        }\r
+        "America:Curacao"{\r
+            ec{"Kurakao"}\r
+        }\r
+        "America:Danmarkshavn"{\r
+            ec{"Daanmaakshaan"}\r
+        }\r
+        "America:Dawson"{\r
+            ec{"Doosan"}\r
+        }\r
+        "America:Dawson_Creek"{\r
+            ec{"Doosan Kireek"}\r
+        }\r
+        "America:Denver"{\r
+            ec{"Denfar"}\r
+        }\r
+        "America:Detroit"{\r
+            ec{"Detroyt"}\r
+        }\r
+        "America:Dominica"{\r
+            ec{"Dominika"}\r
+        }\r
+        "America:Edmonton"{\r
+            ec{"Edmonton"}\r
+        }\r
+        "America:Eirunepe"{\r
+            ec{"Iiruneeb"}\r
+        }\r
+        "America:El_Salvador"{\r
+            ec{"El Salfadoor"}\r
+        }\r
+        "America:Fort_Nelson"{\r
+            ec{"Foot Nelsoon"}\r
+        }\r
+        "America:Fortaleza"{\r
+            ec{"Footalesa"}\r
+        }\r
+        "America:Glace_Bay"{\r
+            ec{"Galeys Bay"}\r
+        }\r
+        "America:Godthab"{\r
+            ec{"Nuuk"}\r
+        }\r
+        "America:Goose_Bay"{\r
+            ec{"Guus Bay"}\r
+        }\r
+        "America:Grand_Turk"{\r
+            ec{"Garaand Turk"}\r
+        }\r
+        "America:Grenada"{\r
+            ec{"Garenada"}\r
+        }\r
+        "America:Guadeloupe"{\r
+            ec{"Guadeluub"}\r
+        }\r
+        "America:Guatemala"{\r
+            ec{"Guatemaala"}\r
+        }\r
+        "America:Guayaquil"{\r
+            ec{"Guayaquil"}\r
+        }\r
+        "America:Guyana"{\r
+            ec{"Guyaana"}\r
+        }\r
+        "America:Halifax"{\r
+            ec{"HaliFakis"}\r
+        }\r
+        "America:Havana"{\r
+            ec{"Hafaana"}\r
+        }\r
+        "America:Hermosillo"{\r
+            ec{"Harmosilo"}\r
+        }\r
+        "America:Indiana:Knox"{\r
+            ec{"Nokis, Indiaana"}\r
+        }\r
+        "America:Indiana:Marengo"{\r
+            ec{"Mareengo, Indiaana"}\r
+        }\r
+        "America:Indiana:Petersburg"{\r
+            ec{"Betesbaag, Indiaana"}\r
+        }\r
+        "America:Indiana:Tell_City"{\r
+            ec{"Teel Siti Indiaana"}\r
+        }\r
+        "America:Indiana:Vevay"{\r
+            ec{"Feefaay\, Indiaana"}\r
+        }\r
+        "America:Indiana:Vincennes"{\r
+            ec{"Finseenes, Indiana"}\r
+        }\r
+        "America:Indiana:Winamac"{\r
+            ec{"Winaamak, Indiaana"}\r
+        }\r
+        "America:Indianapolis"{\r
+            ec{"Indaanboolis"}\r
+        }\r
+        "America:Inuvik"{\r
+            ec{"Inuufik"}\r
+        }\r
+        "America:Iqaluit"{\r
+            ec{"Iqaaluut"}\r
+        }\r
+        "America:Jamaica"{\r
+            ec{"Jamaaika"}\r
+        }\r
+        "America:Jujuy"{\r
+            ec{"Jujuy"}\r
+        }\r
+        "America:Juneau"{\r
+            ec{"Juniyuu"}\r
+        }\r
+        "America:Kentucky:Monticello"{\r
+            ec{"Montiseelo, Kentaki"}\r
+        }\r
+        "America:Kralendijk"{\r
+            ec{"Kiraalendik"}\r
+        }\r
+        "America:La_Paz"{\r
+            ec{"Laa Baas"}\r
+        }\r
+        "America:Lima"{\r
+            ec{"Liima"}\r
+        }\r
+        "America:Los_Angeles"{\r
+            ec{"Los Angeles"}\r
+        }\r
+        "America:Louisville"{\r
+            ec{"Luuisfil"}\r
+        }\r
+        "America:Lower_Princes"{\r
+            ec{"Loowa Birinses Kuwaata"}\r
+        }\r
+        "America:Maceio"{\r
+            ec{"Maasiiyo"}\r
+        }\r
+        "America:Managua"{\r
+            ec{"Manaaguwa"}\r
+        }\r
+        "America:Manaus"{\r
+            ec{"Manaauus"}\r
+        }\r
+        "America:Marigot"{\r
+            ec{"Maarigot"}\r
+        }\r
+        "America:Martinique"{\r
+            ec{"Maartiniik"}\r
+        }\r
+        "America:Matamoros"{\r
+            ec{"Mataamooris"}\r
+        }\r
+        "America:Mazatlan"{\r
+            ec{"Mazaatlan"}\r
+        }\r
+        "America:Mendoza"{\r
+            ec{"Meendoosa"}\r
+        }\r
+        "America:Menominee"{\r
+            ec{"Menoominee"}\r
+        }\r
+        "America:Merida"{\r
+            ec{"Meriida"}\r
+        }\r
+        "America:Metlakatla"{\r
+            ec{"Metlaakatla"}\r
+        }\r
+        "America:Mexico_City"{\r
+            ec{"Meksiko Sity"}\r
+        }\r
+        "America:Miquelon"{\r
+            ec{"Miiquulon"}\r
+        }\r
+        "America:Moncton"{\r
+            ec{"Moonktoon"}\r
+        }\r
+        "America:Monterrey"{\r
+            ec{"Moonteerey"}\r
+        }\r
+        "America:Montevideo"{\r
+            ec{"Moontafiidiyo"}\r
+        }\r
+        "America:Montserrat"{\r
+            ec{"Moontseraat"}\r
+        }\r
+        "America:Nassau"{\r
+            ec{"Nasaaw"}\r
+        }\r
+        "America:New_York"{\r
+            ec{"Niyuu Yook"}\r
+        }\r
+        "America:Nipigon"{\r
+            ec{"Nibiigoon"}\r
+        }\r
+        "America:Nome"{\r
+            ec{"Noom"}\r
+        }\r
+        "America:Noronha"{\r
+            ec{"Noroonha"}\r
+        }\r
+        "America:North_Dakota:Beulah"{\r
+            ec{"Biyuulah, Waqooyiga DaKoota"}\r
+        }\r
+        "America:North_Dakota:Center"{\r
+            ec{"Bartamaha, Waqooyiga Dakoota"}\r
+        }\r
+        "America:North_Dakota:New_Salem"{\r
+            ec{"Niyuu Saalem, Waqooyiga Dakoota"}\r
+        }\r
+        "America:Ojinaga"{\r
+            ec{"Ojinaaga"}\r
+        }\r
+        "America:Panama"{\r
+            ec{"Baanama"}\r
+        }\r
+        "America:Pangnirtung"{\r
+            ec{"Paangnirtuung"}\r
+        }\r
+        "America:Paramaribo"{\r
+            ec{"Baramaribo"}\r
+        }\r
+        "America:Phoenix"{\r
+            ec{"Fooniks"}\r
+        }\r
+        "America:Port-au-Prince"{\r
+            ec{"Dekadda Wiilka Boqorka"}\r
+        }\r
+        "America:Port_of_Spain"{\r
+            ec{"Dekadda Isbeyn"}\r
+        }\r
+        "America:Porto_Velho"{\r
+            ec{"Pooro Felho"}\r
+        }\r
+        "America:Puerto_Rico"{\r
+            ec{"Boorta Riiko"}\r
+        }\r
+        "America:Punta_Arenas"{\r
+            ec{"Punta Arinaas"}\r
+        }\r
+        "America:Rainy_River"{\r
+            ec{"Reyni River"}\r
+        }\r
+        "America:Rankin_Inlet"{\r
+            ec{"Raankin Inleet"}\r
+        }\r
+        "America:Recife"{\r
+            ec{"Receyf"}\r
+        }\r
+        "America:Regina"{\r
+            ec{"Rejiina"}\r
+        }\r
+        "America:Resolute"{\r
+            ec{"Resoluut"}\r
+        }\r
+        "America:Rio_Branco"{\r
+            ec{"Riyo Baraanko"}\r
+        }\r
+        "America:Santarem"{\r
+            ec{"Santareem"}\r
+        }\r
+        "America:Santiago"{\r
+            ec{"Santiyaago"}\r
+        }\r
+        "America:Santo_Domingo"{\r
+            ec{"Saanto Domingo"}\r
+        }\r
+        "America:Sao_Paulo"{\r
+            ec{"Saaw Boolo"}\r
+        }\r
+        "America:Scoresbysund"{\r
+            ec{"Itoqortoomiit"}\r
+        }\r
+        "America:Sitka"{\r
+            ec{"Siitka"}\r
+        }\r
+        "America:St_Barthelemy"{\r
+            ec{"St. Baartelemi"}\r
+        }\r
+        "America:St_Johns"{\r
+            ec{"St. Joon"}\r
+        }\r
+        "America:St_Kitts"{\r
+            ec{"St. Kits"}\r
+        }\r
+        "America:St_Lucia"{\r
+            ec{"St. Lusia"}\r
+        }\r
+        "America:St_Thomas"{\r
+            ec{"St. Toomas"}\r
+        }\r
+        "America:St_Vincent"{\r
+            ec{"St. Finsent"}\r
+        }\r
+        "America:Swift_Current"{\r
+            ec{"Iswift Karent"}\r
+        }\r
+        "America:Tegucigalpa"{\r
+            ec{"Tegusigalba"}\r
+        }\r
+        "America:Thule"{\r
+            ec{"Tuul"}\r
+        }\r
+        "America:Thunder_Bay"{\r
+            ec{"Tanda Bay"}\r
+        }\r
+        "America:Tijuana"{\r
+            ec{"Tijuaana"}\r
+        }\r
+        "America:Toronto"{\r
+            ec{"Toronto"}\r
+        }\r
+        "America:Tortola"{\r
+            ec{"Tortola"}\r
+        }\r
+        "America:Vancouver"{\r
+            ec{"Fankuufar"}\r
+        }\r
+        "America:Whitehorse"{\r
+            ec{"Farascad"}\r
+        }\r
+        "America:Winnipeg"{\r
+            ec{"Winibeg"}\r
+        }\r
+        "America:Yakutat"{\r
+            ec{"Yakutaat"}\r
+        }\r
+        "America:Yellowknife"{\r
+            ec{"Yelowneyf"}\r
+        }\r
+        "Antarctica:Casey"{\r
+            ec{"Keysee"}\r
+        }\r
+        "Antarctica:Davis"{\r
+            ec{"Dafis"}\r
+        }\r
+        "Antarctica:DumontDUrville"{\r
+            ec{"Dumont d’urfile"}\r
+        }\r
+        "Antarctica:Macquarie"{\r
+            ec{"Makquariy"}\r
+        }\r
+        "Antarctica:Mawson"{\r
+            ec{"Mawson"}\r
+        }\r
+        "Antarctica:McMurdo"{\r
+            ec{"MakMurdo"}\r
+        }\r
+        "Antarctica:Palmer"{\r
+            ec{"Baamar"}\r
+        }\r
+        "Antarctica:Rothera"{\r
+            ec{"Rotera"}\r
+        }\r
+        "Antarctica:Syowa"{\r
+            ec{"Siyowa"}\r
+        }\r
+        "Antarctica:Troll"{\r
+            ec{"Torool"}\r
+        }\r
+        "Antarctica:Vostok"{\r
+            ec{"Fostok"}\r
+        }\r
+        "Arctic:Longyearbyen"{\r
+            ec{"Longyearbyen"}\r
+        }\r
+        "Asia:Aden"{\r
+            ec{"Cadan"}\r
+        }\r
+        "Asia:Almaty"{\r
+            ec{"Almati"}\r
+        }\r
+        "Asia:Amman"{\r
+            ec{"Amman"}\r
+        }\r
+        "Asia:Anadyr"{\r
+            ec{"Anadiyr"}\r
+        }\r
+        "Asia:Aqtau"{\r
+            ec{"Aktaw"}\r
+        }\r
+        "Asia:Aqtobe"{\r
+            ec{"Aqtobe"}\r
+        }\r
+        "Asia:Ashgabat"{\r
+            ec{"Ashgabat"}\r
+        }\r
+        "Asia:Atyrau"{\r
+            ec{"Atiyraw"}\r
+        }\r
+        "Asia:Baghdad"{\r
+            ec{"Baqdaad"}\r
+        }\r
+        "Asia:Bahrain"{\r
+            ec{"Baxreyn"}\r
+        }\r
+        "Asia:Baku"{\r
+            ec{"Baku"}\r
+        }\r
+        "Asia:Bangkok"{\r
+            ec{"Bangkok"}\r
+        }\r
+        "Asia:Barnaul"{\r
+            ec{"Barnaauul"}\r
+        }\r
+        "Asia:Beirut"{\r
+            ec{"Beyrut"}\r
+        }\r
+        "Asia:Bishkek"{\r
+            ec{"Bishkek"}\r
+        }\r
+        "Asia:Brunei"{\r
+            ec{"Buruney"}\r
+        }\r
+        "Asia:Calcutta"{\r
+            ec{"Kolkata"}\r
+        }\r
+        "Asia:Chita"{\r
+            ec{"Kiita"}\r
+        }\r
+        "Asia:Choibalsan"{\r
+            ec{"Joybalsan"}\r
+        }\r
+        "Asia:Colombo"{\r
+            ec{"Kolombo"}\r
+        }\r
+        "Asia:Damascus"{\r
+            ec{"Dimishiq"}\r
+        }\r
+        "Asia:Dhaka"{\r
+            ec{"Dhaka"}\r
+        }\r
+        "Asia:Dili"{\r
+            ec{"Dili"}\r
+        }\r
+        "Asia:Dubai"{\r
+            ec{"Dubay"}\r
+        }\r
+        "Asia:Dushanbe"{\r
+            ec{"Dushanbe"}\r
+        }\r
+        "Asia:Famagusta"{\r
+            ec{"Famagusta"}\r
+        }\r
+        "Asia:Gaza"{\r
+            ec{"Gasa"}\r
+        }\r
+        "Asia:Hebron"{\r
+            ec{"Hebron"}\r
+        }\r
+        "Asia:Hong_Kong"{\r
+            ec{"Hong Kong"}\r
+        }\r
+        "Asia:Hovd"{\r
+            ec{"Hofud"}\r
+        }\r
+        "Asia:Irkutsk"{\r
+            ec{"Irkutsk"}\r
+        }\r
+        "Asia:Jakarta"{\r
+            ec{"Jakarta"}\r
+        }\r
+        "Asia:Jayapura"{\r
+            ec{"Jayabura"}\r
+        }\r
+        "Asia:Jerusalem"{\r
+            ec{"Jerusalem"}\r
+        }\r
+        "Asia:Kabul"{\r
+            ec{"Kabul"}\r
+        }\r
+        "Asia:Kamchatka"{\r
+            ec{"Kamkatka"}\r
+        }\r
+        "Asia:Karachi"{\r
+            ec{"Karaaji"}\r
+        }\r
+        "Asia:Katmandu"{\r
+            ec{"Katmandu"}\r
+        }\r
+        "Asia:Khandyga"{\r
+            ec{"Khandiyga"}\r
+        }\r
+        "Asia:Krasnoyarsk"{\r
+            ec{"Karasnoyarska"}\r
+        }\r
+        "Asia:Kuala_Lumpur"{\r
+            ec{"Kuala Lambuur"}\r
+        }\r
+        "Asia:Kuching"{\r
+            ec{"Kujing"}\r
+        }\r
+        "Asia:Kuwait"{\r
+            ec{"Kuweyt"}\r
+        }\r
+        "Asia:Macau"{\r
+            ec{"Makaw"}\r
+        }\r
+        "Asia:Magadan"{\r
+            ec{"Magadan"}\r
+        }\r
+        "Asia:Makassar"{\r
+            ec{"Makasar"}\r
+        }\r
+        "Asia:Manila"{\r
+            ec{"Manila"}\r
+        }\r
+        "Asia:Muscat"{\r
+            ec{"Muskat"}\r
+        }\r
+        "Asia:Nicosia"{\r
+            ec{"Nikosiya"}\r
+        }\r
+        "Asia:Novokuznetsk"{\r
+            ec{"Nofokusnetsk"}\r
+        }\r
+        "Asia:Novosibirsk"{\r
+            ec{"Nofosibirsk"}\r
+        }\r
+        "Asia:Omsk"{\r
+            ec{"Omsk"}\r
+        }\r
+        "Asia:Oral"{\r
+            ec{"Oral"}\r
+        }\r
+        "Asia:Phnom_Penh"{\r
+            ec{"Foonom Penh"}\r
+        }\r
+        "Asia:Pontianak"{\r
+            ec{"Botiyaanak"}\r
+        }\r
+        "Asia:Pyongyang"{\r
+            ec{"Boyongyang"}\r
+        }\r
+        "Asia:Qatar"{\r
+            ec{"Qatar"}\r
+        }\r
+        "Asia:Qyzylorda"{\r
+            ec{"Qiyslorda"}\r
+        }\r
+        "Asia:Rangoon"{\r
+            ec{"Yangon"}\r
+        }\r
+        "Asia:Riyadh"{\r
+            ec{"Riyadh"}\r
+        }\r
+        "Asia:Saigon"{\r
+            ec{"Caasimada Hoo Ji Mih"}\r
+        }\r
+        "Asia:Sakhalin"{\r
+            ec{"Sakhalin"}\r
+        }\r
+        "Asia:Samarkand"{\r
+            ec{"Samarkand"}\r
+        }\r
+        "Asia:Seoul"{\r
+            ec{"Sool"}\r
+        }\r
+        "Asia:Shanghai"{\r
+            ec{"Shanghaay"}\r
+        }\r
+        "Asia:Singapore"{\r
+            ec{"Singabuur"}\r
+        }\r
+        "Asia:Srednekolymsk"{\r
+            ec{"Sarednokoleymsk"}\r
+        }\r
+        "Asia:Taipei"{\r
+            ec{"Teybey"}\r
+        }\r
+        "Asia:Tashkent"{\r
+            ec{"Tashkent"}\r
+        }\r
+        "Asia:Tbilisi"{\r
+            ec{"Tbilisi"}\r
+        }\r
+        "Asia:Tehran"{\r
+            ec{"Tehran"}\r
+        }\r
+        "Asia:Thimphu"{\r
+            ec{"Timfu"}\r
+        }\r
+        "Asia:Tokyo"{\r
+            ec{"Tokyo"}\r
+        }\r
+        "Asia:Tomsk"{\r
+            ec{"Tomsk"}\r
+        }\r
+        "Asia:Ulaanbaatar"{\r
+            ec{"Ulaanbaatar"}\r
+        }\r
+        "Asia:Urumqi"{\r
+            ec{"Urumqi"}\r
+        }\r
+        "Asia:Ust-Nera"{\r
+            ec{"Ust-Nera"}\r
+        }\r
+        "Asia:Vientiane"{\r
+            ec{"Viyaantiyaan"}\r
+        }\r
+        "Asia:Vladivostok"{\r
+            ec{"Faladifostok"}\r
+        }\r
+        "Asia:Yakutsk"{\r
+            ec{"Yakutsk"}\r
+        }\r
+        "Asia:Yekaterinburg"{\r
+            ec{"Yekaterinbaag"}\r
+        }\r
+        "Asia:Yerevan"{\r
+            ec{"Yerefan"}\r
+        }\r
+        "Atlantic:Azores"{\r
+            ec{"Asores"}\r
+        }\r
+        "Atlantic:Bermuda"{\r
+            ec{"Barmuuda"}\r
+        }\r
+        "Atlantic:Canary"{\r
+            ec{"Kanari"}\r
+        }\r
+        "Atlantic:Cape_Verde"{\r
+            ec{"Keyb Faarde"}\r
+        }\r
+        "Atlantic:Faeroe"{\r
+            ec{"Faroe"}\r
+        }\r
+        "Atlantic:Madeira"{\r
+            ec{"Madeira"}\r
+        }\r
+        "Atlantic:Reykjavik"{\r
+            ec{"Reykjafik"}\r
+        }\r
+        "Atlantic:South_Georgia"{\r
+            ec{"Koonfurta Joorgiya"}\r
+        }\r
+        "Atlantic:St_Helena"{\r
+            ec{"St. Helena"}\r
+        }\r
+        "Atlantic:Stanley"{\r
+            ec{"Istaanley"}\r
+        }\r
+        "Australia:Adelaide"{\r
+            ec{"Adelaide"}\r
+        }\r
+        "Australia:Brisbane"{\r
+            ec{"Birisban"}\r
+        }\r
+        "Australia:Broken_Hill"{\r
+            ec{"Boroken Hil"}\r
+        }\r
+        "Australia:Currie"{\r
+            ec{"Kuriy"}\r
+        }\r
+        "Australia:Darwin"{\r
+            ec{"Darwin"}\r
+        }\r
+        "Australia:Eucla"{\r
+            ec{"Yukla"}\r
+        }\r
+        "Australia:Hobart"{\r
+            ec{"Hobart"}\r
+        }\r
+        "Australia:Lindeman"{\r
+            ec{"Lindeman"}\r
+        }\r
+        "Australia:Lord_Howe"{\r
+            ec{"Lord Howe"}\r
+        }\r
+        "Australia:Melbourne"{\r
+            ec{"Melboon"}\r
+        }\r
+        "Australia:Perth"{\r
+            ec{"Bert"}\r
+        }\r
+        "Australia:Sydney"{\r
+            ec{"Sidney"}\r
+        }\r
+        "Etc:UTC"{\r
+            ls{"Waqtiga iskuxiran ee caalamka"}\r
+        }\r
+        "Etc:Unknown"{\r
+            ec{"Magaalo aan la garanayn"}\r
+        }\r
+        "Europe:Amsterdam"{\r
+            ec{"Amsterdam"}\r
+        }\r
+        "Europe:Andorra"{\r
+            ec{"Andorra"}\r
+        }\r
+        "Europe:Astrakhan"{\r
+            ec{"Astarakhaan"}\r
+        }\r
+        "Europe:Athens"{\r
+            ec{"Atens"}\r
+        }\r
+        "Europe:Belgrade"{\r
+            ec{"Belgrade"}\r
+        }\r
+        "Europe:Berlin"{\r
+            ec{"Barliin"}\r
+        }\r
+        "Europe:Bratislava"{\r
+            ec{"Baratislafa"}\r
+        }\r
+        "Europe:Brussels"{\r
+            ec{"Barasals"}\r
+        }\r
+        "Europe:Bucharest"{\r
+            ec{"Bujarest"}\r
+        }\r
+        "Europe:Budapest"{\r
+            ec{"Budabest"}\r
+        }\r
+        "Europe:Busingen"{\r
+            ec{"Busingen"}\r
+        }\r
+        "Europe:Chisinau"{\r
+            ec{"Jisinaau"}\r
+        }\r
+        "Europe:Copenhagen"{\r
+            ec{"Kobenhaagan"}\r
+        }\r
+        "Europe:Dublin"{\r
+            ec{"Dublin"}\r
+            ld{"Waqtiyada Caadiga ah ee Irishka"}\r
+        }\r
+        "Europe:Gibraltar"{\r
+            ec{"Gibraltar"}\r
+        }\r
+        "Europe:Guernsey"{\r
+            ec{"Guernsey"}\r
+        }\r
+        "Europe:Helsinki"{\r
+            ec{"Helsinki"}\r
+        }\r
+        "Europe:Isle_of_Man"{\r
+            ec{"Isle of Man"}\r
+        }\r
+        "Europe:Istanbul"{\r
+            ec{"Istanbul"}\r
+        }\r
+        "Europe:Jersey"{\r
+            ec{"Jaarsey"}\r
+        }\r
+        "Europe:Kaliningrad"{\r
+            ec{"Kaliningrad"}\r
+        }\r
+        "Europe:Kiev"{\r
+            ec{"Kiyf"}\r
+        }\r
+        "Europe:Kirov"{\r
+            ec{"Kiroof"}\r
+        }\r
+        "Europe:Lisbon"{\r
+            ec{"Lisbon"}\r
+        }\r
+        "Europe:Ljubljana"{\r
+            ec{"Ljubljana"}\r
+        }\r
+        "Europe:London"{\r
+            ec{"Landan"}\r
+            ld{"Waqtiyada Xagaaga ee Biritishka"}\r
+        }\r
+        "Europe:Luxembourg"{\r
+            ec{"Luksembaaga"}\r
+        }\r
+        "Europe:Madrid"{\r
+            ec{"Madrid"}\r
+        }\r
+        "Europe:Malta"{\r
+            ec{"Malta"}\r
+        }\r
+        "Europe:Mariehamn"{\r
+            ec{"Mariehamn"}\r
+        }\r
+        "Europe:Minsk"{\r
+            ec{"Minsk"}\r
+        }\r
+        "Europe:Monaco"{\r
+            ec{"Monako"}\r
+        }\r
+        "Europe:Moscow"{\r
+            ec{"Moskow"}\r
+        }\r
+        "Europe:Oslo"{\r
+            ec{"Oslo"}\r
+        }\r
+        "Europe:Paris"{\r
+            ec{"Bariis"}\r
+        }\r
+        "Europe:Podgorica"{\r
+            ec{"Bodgorika"}\r
+        }\r
+        "Europe:Prague"{\r
+            ec{"Paraag"}\r
+        }\r
+        "Europe:Riga"{\r
+            ec{"Riija"}\r
+        }\r
+        "Europe:Rome"{\r
+            ec{"Rooma"}\r
+        }\r
+        "Europe:Samara"{\r
+            ec{"Samara"}\r
+        }\r
+        "Europe:San_Marino"{\r
+            ec{"San Marino"}\r
+        }\r
+        "Europe:Sarajevo"{\r
+            ec{"Sarayeefo"}\r
+        }\r
+        "Europe:Saratov"{\r
+            ec{"Saratoof"}\r
+        }\r
+        "Europe:Simferopol"{\r
+            ec{"Simferobol"}\r
+        }\r
+        "Europe:Skopje"{\r
+            ec{"Iskoobje"}\r
+        }\r
+        "Europe:Sofia"{\r
+            ec{"Sofiya"}\r
+        }\r
+        "Europe:Stockholm"{\r
+            ec{"Istokhoom"}\r
+        }\r
+        "Europe:Tallinn"{\r
+            ec{"Tallinn"}\r
+        }\r
+        "Europe:Tirane"{\r
+            ec{"Tirane"}\r
+        }\r
+        "Europe:Ulyanovsk"{\r
+            ec{"Ulyanofsk"}\r
+        }\r
+        "Europe:Uzhgorod"{\r
+            ec{"Usgorod"}\r
+        }\r
+        "Europe:Vaduz"{\r
+            ec{"Faduus"}\r
+        }\r
+        "Europe:Vatican"{\r
+            ec{"Fatikaan"}\r
+        }\r
+        "Europe:Vienna"{\r
+            ec{"Fiyaana"}\r
+        }\r
+        "Europe:Vilnius"{\r
+            ec{"Filnuus"}\r
+        }\r
+        "Europe:Volgograd"{\r
+            ec{"Folgograd"}\r
+        }\r
+        "Europe:Warsaw"{\r
+            ec{"Warsaw"}\r
+        }\r
+        "Europe:Zagreb"{\r
+            ec{"Sagreb"}\r
+        }\r
+        "Europe:Zaporozhye"{\r
+            ec{"Saborosey"}\r
+        }\r
+        "Europe:Zurich"{\r
+            ec{"Surij"}\r
+        }\r
+        "Indian:Antananarivo"{\r
+            ec{"Antananarifo"}\r
+        }\r
+        "Indian:Chagos"{\r
+            ec{"Jagos"}\r
+        }\r
+        "Indian:Christmas"{\r
+            ec{"Kiristmas"}\r
+        }\r
+        "Indian:Cocos"{\r
+            ec{"Kokos"}\r
+        }\r
+        "Indian:Comoro"{\r
+            ec{"Komoro"}\r
+        }\r
+        "Indian:Kerguelen"{\r
+            ec{"Kerguelen"}\r
+        }\r
+        "Indian:Mahe"{\r
+            ec{"Mahe"}\r
+        }\r
+        "Indian:Maldives"{\r
+            ec{"Maldifis"}\r
+        }\r
+        "Indian:Mauritius"{\r
+            ec{"Morishiyaas"}\r
+        }\r
+        "Indian:Mayotte"{\r
+            ec{"Mayote"}\r
+        }\r
+        "Indian:Reunion"{\r
+            ec{"Reunion"}\r
+        }\r
+        "Pacific:Apia"{\r
+            ec{"Abiya"}\r
+        }\r
+        "Pacific:Auckland"{\r
+            ec{"Okland"}\r
+        }\r
+        "Pacific:Bougainville"{\r
+            ec{"Boogaynfil"}\r
+        }\r
+        "Pacific:Chatham"{\r
+            ec{"Jatham"}\r
+        }\r
+        "Pacific:Easter"{\r
+            ec{"Bariga"}\r
+        }\r
+        "Pacific:Efate"{\r
+            ec{"Efate"}\r
+        }\r
+        "Pacific:Enderbury"{\r
+            ec{"Enderbury"}\r
+        }\r
+        "Pacific:Fakaofo"{\r
+            ec{"Fakaofo"}\r
+        }\r
+        "Pacific:Fiji"{\r
+            ec{"Fiji"}\r
+        }\r
+        "Pacific:Funafuti"{\r
+            ec{"Funafuti"}\r
+        }\r
+        "Pacific:Galapagos"{\r
+            ec{"Galabagos"}\r
+        }\r
+        "Pacific:Gambier"{\r
+            ec{"Gambiyr"}\r
+        }\r
+        "Pacific:Guadalcanal"{\r
+            ec{"Cuadalkanal"}\r
+        }\r
+        "Pacific:Guam"{\r
+            ec{"Guam"}\r
+        }\r
+        "Pacific:Johnston"{\r
+            ec{"Joonston"}\r
+        }\r
+        "Pacific:Kiritimati"{\r
+            ec{"Kiritimaati"}\r
+        }\r
+        "Pacific:Kosrae"{\r
+            ec{"Kosrii"}\r
+        }\r
+        "Pacific:Kwajalein"{\r
+            ec{"Kuwajaleyn"}\r
+        }\r
+        "Pacific:Majuro"{\r
+            ec{"Majuro"}\r
+        }\r
+        "Pacific:Marquesas"{\r
+            ec{"Marquesas"}\r
+        }\r
+        "Pacific:Midway"{\r
+            ec{"Midway"}\r
+        }\r
+        "Pacific:Nauru"{\r
+            ec{"Nauru"}\r
+        }\r
+        "Pacific:Niue"{\r
+            ec{"Niyuu"}\r
+        }\r
+        "Pacific:Norfolk"{\r
+            ec{"Noorfolk"}\r
+        }\r
+        "Pacific:Noumea"{\r
+            ec{"Noomiya"}\r
+        }\r
+        "Pacific:Pago_Pago"{\r
+            ec{"Bago Bago"}\r
+        }\r
+        "Pacific:Palau"{\r
+            ec{"Balaw"}\r
+        }\r
+        "Pacific:Pitcairn"{\r
+            ec{"Bitkayrn"}\r
+        }\r
+        "Pacific:Ponape"{\r
+            ec{"Bonbey"}\r
+        }\r
+        "Pacific:Port_Moresby"{\r
+            ec{"Boort Moresbi"}\r
+        }\r
+        "Pacific:Rarotonga"{\r
+            ec{"Rarotonga"}\r
+        }\r
+        "Pacific:Saipan"{\r
+            ec{"Seyban"}\r
+        }\r
+        "Pacific:Tahiti"{\r
+            ec{"Tahiti"}\r
+        }\r
+        "Pacific:Tarawa"{\r
+            ec{"Tarawa"}\r
+        }\r
+        "Pacific:Tongatapu"{\r
+            ec{"Tongatabu"}\r
+        }\r
+        "Pacific:Truk"{\r
+            ec{"Juuk"}\r
+        }\r
+        "Pacific:Wake"{\r
+            ec{"Wake"}\r
+        }\r
+        "Pacific:Wallis"{\r
+            ec{"Walis"}\r
+        }\r
+        "meta:Afghanistan"{\r
+            ls{"Waqtiga Afqanistan"}\r
+        }\r
+        "meta:Africa_Central"{\r
+            ls{"Waqtiga Bartamaha Afrika"}\r
+        }\r
+        "meta:Africa_Eastern"{\r
+            ls{"Waqtiga Bariga Afrika"}\r
+        }\r
+        "meta:Africa_Southern"{\r
+            ls{"Waqtiyada Caadiga ah ee Koonfur Afrika"}\r
+        }\r
+        "meta:Africa_Western"{\r
+            ld{"Waqtiyada Xagaaga ee Galbeedka Afrika"}\r
+            lg{"Waqtiga Galbeedka Afrika"}\r
+            ls{"Waqtiyada Caadiga ah ee Galbeedka Afrika"}\r
+        }\r
+        "meta:Alaska"{\r
+            ld{"Waqtiga Dharaarta ee Alaska"}\r
+            lg{"Waqtiga Alaska"}\r
+            ls{"Waqtiga Caadiga ah ee Alaska"}\r
+        }\r
+        "meta:Amazon"{\r
+            ld{"Waqtiga Xagaaga ee Amason"}\r
+            lg{"Waqtiga Amason"}\r
+            ls{"Waqtiga Istandarka ee Amason"}\r
+        }\r
+        "meta:America_Central"{\r
+            ld{"Waqtiga Dharaarta ee Bartamaha"}\r
+            lg{"Waqtiga Bartamaha"}\r
+            ls{"Waqtiga Caadiga ah ee Bartamaha"}\r
+        }\r
+        "meta:America_Eastern"{\r
+            ld{"Waqtiga Dharaarta ee Bariga"}\r
+            lg{"Waqtiga Bariga"}\r
+            ls{"Waqtiga Caadiga ah ee Bariga"}\r
+        }\r
+        "meta:America_Mountain"{\r
+            ld{"Waqtiga Dharaarta ee Buurleyda"}\r
+            lg{"Waqtiga Buuraleyda"}\r
+            ls{"Waqtiga Caadiga ah ee Buuraleyda"}\r
+        }\r
+        "meta:America_Pacific"{\r
+            ld{"Waqtiga Dharaarta ee Basifika"}\r
+            lg{"Waqtiga Basifika"}\r
+            ls{"Waqtiga Caadiga ah ee Basifika"}\r
+        }\r
+        "meta:Apia"{\r
+            ld{"Waqtiayda Dharaarta ee Abiya"}\r
+            lg{"Waqtiga Abiya"}\r
+            ls{"Waqtiyada Caadiga ah ee Abiya"}\r
+        }\r
+        "meta:Arabian"{\r
+            ld{"Waqtiyada Dharaarta ee Carabta"}\r
+            lg{"Waqtiga Carabta"}\r
+            ls{"Waqtiyada Caadiga ah ee Carabta"}\r
+        }\r
+        "meta:Argentina"{\r
+            ld{"Waqtiga Xagaaga ee Arjentiina"}\r
+            lg{"Waqtia Arjentiina"}\r
+            ls{"Waqtiga istaandarka ee Arjentiina"}\r
+        }\r
+        "meta:Argentina_Western"{\r
+            ld{"Waqtiyada Xagaaga ee Galbeedka Arjentiina"}\r
+            lg{"Waqtiga Galbeedka Arjentiina"}\r
+            ls{"Waqtiyada Caadiga ah ee Arjentiina"}\r
+        }\r
+        "meta:Armenia"{\r
+            ld{"Waqtiyada Xagaaga ee Armeniya"}\r
+            lg{"Waqtiga Armeniya"}\r
+            ls{"Waqtiyada Caadiga ah ee Armeniya"}\r
+        }\r
+        "meta:Atlantic"{\r
+            ld{"Waqtiga Dharaarta ee Atlantik"}\r
+            lg{"Waqtiga Atlantik"}\r
+            ls{"Waqtiga Istaandarka ee Atlantik"}\r
+        }\r
+        "meta:Australia_Central"{\r
+            ld{"Waqtiyada Dharaarta ee Bartamaha Astaraaliya"}\r
+            lg{"Waqtiga Bartamaha Astaraaliya"}\r
+            ls{"Waqtiyada Caadiga ah ee Bartamaha Astaraaliya"}\r
+        }\r
+        "meta:Australia_CentralWestern"{\r
+            ld{"Waqtiyada Dharaarta Bartamaha Galbeedka Australiya"}\r
+            lg{"Waqtiga Bartamaha Galbeedka Astaraaliya"}\r
+            ls{"Waqtiyada Caadiga ah ee Bartamaha Galbeedka Astaraaliya"}\r
+        }\r
+        "meta:Australia_Eastern"{\r
+            ld{"Waqtiyada Dharaarta ee Bariga Australiya"}\r
+            lg{"Waqtiga Bariga Australiya"}\r
+            ls{"Waqtiyada Caadiga ah ee Bariga Australiya"}\r
+        }\r
+        "meta:Australia_Western"{\r
+            ld{"Waqtiyada Dharaarta ee Galbeedka Australiya"}\r
+            lg{"Waqtiga Galbeedka Australiya"}\r
+            ls{"Waqtiyada Caadiga ah ee Galbeedka Australiya"}\r
+        }\r
+        "meta:Azerbaijan"{\r
+            ld{"Waqtiyada Xagaaga ee Asarbeyjan"}\r
+            lg{"Waqtiga Asarbeyjan"}\r
+            ls{"Waqtiyada Caadiga ah ee Asarbeyjan"}\r
+        }\r
+        "meta:Azores"{\r
+            ld{"Waqtiyada Xagaaga ee Asores"}\r
+            lg{"Waqtiga Asores"}\r
+            ls{"Waqtiyada Caadiga ah ee Asores"}\r
+        }\r
+        "meta:Bangladesh"{\r
+            ld{"Waqtiyada Xagaaga ee Bangledeesh"}\r
+            lg{"Waqtiga Bangledeesh"}\r
+            ls{"Waqtiyada Caadiga ah ee Bangledeesh"}\r
+        }\r
+        "meta:Bhutan"{\r
+            ls{"Waqtiga Futan"}\r
+        }\r
+        "meta:Bolivia"{\r
+            ls{"Waqtiga Boliifiya"}\r
+        }\r
+        "meta:Brasilia"{\r
+            ld{"Waqtiyada Xagaaga ee Baraasiliya"}\r
+            lg{"Waqtiga Baraasiliya"}\r
+            ls{"Waqtiga Caadiga ah ee Baraasiliya"}\r
+        }\r
+        "meta:Brunei"{\r
+            ls{"Waqtiga Buruney Daarusalaam"}\r
+        }\r
+        "meta:Cape_Verde"{\r
+            ld{"Waqtiyada Xagaaga ee Keyb Faarde"}\r
+            lg{"Waqtiga Keyb Faarde"}\r
+            ls{"Waqtiyada Caadiga ah ee Keyb Faarde"}\r
+        }\r
+        "meta:Chamorro"{\r
+            ls{"Waqtiyada Caadiga ah ee Jamoro"}\r
+        }\r
+        "meta:Chatham"{\r
+            ld{"Waqtiyada Dharaarta ee Jaatam"}\r
+            lg{"Waqtiga Jaatam"}\r
+            ls{"Waqtiyada Caadiga ah ee Jaatam"}\r
+        }\r
+        "meta:Chile"{\r
+            ld{"Waqtiga Xagaaga ee Jili"}\r
+            lg{"Waqtiga Jili"}\r
+            ls{"Waqtiyada Caadiga ah ee Jili"}\r
+        }\r
+        "meta:China"{\r
+            ld{"Waqtiyada Dharaarta ee Shiinaha"}\r
+            lg{"Waqtiga Shiinaha"}\r
+            ls{"Waqtiyada Caadiga ah ee Shiinaha"}\r
+        }\r
+        "meta:Choibalsan"{\r
+            ld{"Waqtiyada Xagaaga Joybalsan"}\r
+            lg{"Waqtiga Joybalsan"}\r
+            ls{"Waqtiyada Caadiga ah ee Joybalsan"}\r
+        }\r
+        "meta:Christmas"{\r
+            ls{"Waqtiga Kirismas Island"}\r
+        }\r
+        "meta:Cocos"{\r
+            ls{"Waqtiga Kokos Island"}\r
+        }\r
         "meta:Colombia"{\r
             ld{"Waqtiyada Xagaaga Kolambiya"}\r
             lg{"Waqtiga Kolambiya"}\r
             ls{"Waqtiyada Caadiga ah ee kolambiya"}\r
         }\r
+        "meta:Cook"{\r
+            ld{"waqtiga nus xagaaga ah ee jasiiradha cook"}\r
+            lg{"waqtiga jasiiradaha cook"}\r
+            ls{"waqtiga caadiga ah jasiiradaha cook"}\r
+        }\r
+        "meta:Cuba"{\r
+            ld{"Waqtiga Dharaarta ee Kuuba"}\r
+            lg{"Waqtiga Kuuba"}\r
+            ls{"Waqtiga Istaandarka ee Kuuba"}\r
+        }\r
+        "meta:Davis"{\r
+            ls{"Waqtiga Dafis"}\r
+        }\r
+        "meta:DumontDUrville"{\r
+            ls{"Waqtiga Dumont - d’urfille"}\r
+        }\r
+        "meta:East_Timor"{\r
+            ls{"Waqtiga East Timor"}\r
+        }\r
+        "meta:Easter"{\r
+            ld{"Waqtiga Xagaaga ee Bariga Island"}\r
+            lg{"Waqtiga Bariga Island"}\r
+            ls{"Waqtiyada Caadiga ah ee Bariga Island"}\r
+        }\r
+        "meta:Ecuador"{\r
+            ls{"Waqtiga Ekuwador"}\r
+        }\r
+        "meta:Europe_Central"{\r
+            ld{"Waqtiyada Xagaaga ee Bartamaha Yurub"}\r
+            lg{"Waqtiga Bartamaha Yurub"}\r
+            ls{"Waqtiyada Caadiga ah ee Bartamaha Yurub"}\r
+        }\r
+        "meta:Europe_Eastern"{\r
+            ld{"Waqtiyada Xagaaga ee Bariga Yurub"}\r
+            lg{"Waqtiga Bariga Yurub"}\r
+            ls{"Waqtiyada Caadiga ah ee Bariga Yurub"}\r
+        }\r
+        "meta:Europe_Further_Eastern"{\r
+            ls{"Waqtiga Bariga fog ee Yurub"}\r
+        }\r
+        "meta:Europe_Western"{\r
+            ld{"Waqtiyada Xagaaga ee Galbeedka Yurub"}\r
+            lg{"Waqtiga Galbeedka Yurub"}\r
+            ls{"Waqtiyada Caadiga ah ee Galbeedka Yurub"}\r
+        }\r
+        "meta:Falkland"{\r
+            ld{"Waqtiyada Xagaaga ee Faalkland Island"}\r
+            lg{"Waqtiga Faalkland Islands"}\r
+            ls{"Waqtiyada Caadiga ah ee Faalkland Islands"}\r
+        }\r
+        "meta:Fiji"{\r
+            ld{"Waqtiga Xagaaga ee Fiji"}\r
+            lg{"Waqtiga Fiji"}\r
+            ls{"Waqtiyada Caadiga ah ee Fiji"}\r
+        }\r
+        "meta:French_Guiana"{\r
+            ls{"Waqtiga French Guiana"}\r
+        }\r
+        "meta:French_Southern"{\r
+            ls{"Waqtiga Koonfurta Faransiiska & Antaarktik"}\r
+        }\r
+        "meta:GMT"{\r
+            ls{"Waqtiga Celceliska Giriinwij"}\r
+        }\r
         "meta:Galapagos"{\r
             ls{"Waqtiga Galabagos"}\r
         }\r
+        "meta:Gambier"{\r
+            ls{"Waqtiga Gambiyar"}\r
+        }\r
+        "meta:Georgia"{\r
+            ld{"Waqtiyada Xagaaga ee Joorjiya"}\r
+            lg{"Waqtiga Joorjiya"}\r
+            ls{"Waqtiyada Caadiga ah ee Joorjiya"}\r
+        }\r
+        "meta:Gilbert_Islands"{\r
+            ls{"Waqtiga Gilbart Island"}\r
+        }\r
+        "meta:Greenland_Eastern"{\r
+            ld{"Waqtiga Istaandarda ee Dhulka cagaaran"}\r
+            lg{"Waqtiga Bariga Dhulka Cagaaran"}\r
+            ls{"Waqtiga Istaandarka ee Bariga Dhulka cagaaran"}\r
+        }\r
+        "meta:Greenland_Western"{\r
+            ld{"Waqtiga Xagaaga ee Dhulka cagaaran"}\r
+            lg{"Waqtiga Galbeedka Dhulka cagaaran"}\r
+            ls{"Waqtiga Istaandarka ee Galbeedka Dhulka cagaaran"}\r
+        }\r
+        "meta:Gulf"{\r
+            ls{"Waqtiyada Caadiga ah ee Gacanka"}\r
+        }\r
+        "meta:Guyana"{\r
+            ls{"Waqtiga Guyaana"}\r
+        }\r
+        "meta:Hawaii_Aleutian"{\r
+            ld{"Waqtiga Dharaarta ee Hawaii=Alutin"}\r
+            lg{"Waqtiga Hawaii-Alutin"}\r
+            ls{"Waqtiga Istaandarka Hawaii-Alutin"}\r
+        }\r
+        "meta:Hong_Kong"{\r
+            ld{"Waqtiyada Xagaaga ee Hong Kong"}\r
+            lg{"Waqtiga Hong Kong"}\r
+            ls{"Waqtiyada Caadiga ah ee Hong Kong"}\r
+        }\r
+        "meta:Hovd"{\r
+            ld{"Waqtiyada Xagaaga ee Hofud"}\r
+            lg{"Waqtiga Hofd"}\r
+            ls{"Waqtiyada Caadiga ah ee Hofud"}\r
+        }\r
+        "meta:India"{\r
+            ls{"Waqtiyada Caadiga ah ee Hindiya"}\r
+        }\r
+        "meta:Indian_Ocean"{\r
+            ls{"Waqtiga badweynta Hindiya"}\r
+        }\r
+        "meta:Indochina"{\r
+            ls{"Waqtiga Indoshiina"}\r
+        }\r
+        "meta:Indonesia_Central"{\r
+            ls{"Waqtiga Bartamaha Indoneysiya"}\r
+        }\r
+        "meta:Indonesia_Eastern"{\r
+            ls{"Waqtiga Indoneysiya"}\r
+        }\r
+        "meta:Indonesia_Western"{\r
+            ls{"Waqtiga Galbeedka Indoneysiya"}\r
+        }\r
+        "meta:Iran"{\r
+            ld{"Waqtiyada Dharaarta ee Iran"}\r
+            lg{"Waqtiga Iran"}\r
+            ls{"Waqtiyada Caadiga ah ee Iran"}\r
+        }\r
+        "meta:Irkutsk"{\r
+            ld{"Waqtiyada Xagaaga ee Irkutsk"}\r
+            lg{"Waqtiga Irkutsk"}\r
+            ls{"Waqtiyada Caadiga ah ee Irkutsk"}\r
+        }\r
+        "meta:Israel"{\r
+            ld{"Waqtiyada Dharaarta ee Israaiil"}\r
+            lg{"Waqtiga Israaiil"}\r
+            ls{"Waqtiyada Caadiga ah ee Israaiil"}\r
+        }\r
+        "meta:Japan"{\r
+            ld{"Waqtiyada Dharaarta ee Jabaan"}\r
+            lg{"Waqtiga Jabaan"}\r
+            ls{"Waqtiyada Caadiga ah ee Jabaan"}\r
+        }\r
+        "meta:Kazakhstan_Eastern"{\r
+            ls{"Waqtiga Bariga Kasakhistaan"}\r
+        }\r
+        "meta:Kazakhstan_Western"{\r
+            ls{"Waqtiga Koonfurta Kasakhistan"}\r
+        }\r
+        "meta:Korea"{\r
+            ld{"Waqtiga Dharaarta ee Kuuriya"}\r
+            lg{"Waqtiga Kuuriya"}\r
+            ls{"Waqtiyada Caadiga ah ee Kuuriya"}\r
+        }\r
+        "meta:Kosrae"{\r
+            ls{"Waqtiga Kosriy"}\r
+        }\r
+        "meta:Krasnoyarsk"{\r
+            ld{"Waqtiyada Xagaaga ee Karasnoyarsk"}\r
+            lg{"Waqtiga Karasnoyarsk"}\r
+            ls{"Waqtiyada Caadiga ah ee Karasnoyarsk"}\r
+        }\r
+        "meta:Kyrgystan"{\r
+            ls{"Waqtiga Kiyrgistaan"}\r
+        }\r
+        "meta:Line_Islands"{\r
+            ls{"Waqtiga Leyn Island"}\r
+        }\r
+        "meta:Lord_Howe"{\r
+            ld{"Waqtiyada Dharaarta ee Lord Howe"}\r
+            lg{"Waqtiga LOrd Howe"}\r
+            ls{"Waqtiyada Caadiga ah ee Lord Howe"}\r
+        }\r
+        "meta:Macquarie"{\r
+            ls{"waqtiga jaziirada makquariye"}\r
+        }\r
+        "meta:Magadan"{\r
+            ld{"Waqtiyada Xagaaga ee Magadan"}\r
+            lg{"Watiga Magadan"}\r
+            ls{"Waqtiyada Caadiga ah ee Magadan"}\r
+        }\r
+        "meta:Malaysia"{\r
+            ls{"Waqtiga Maleyshiya"}\r
+        }\r
+        "meta:Maldives"{\r
+            ls{"Waqtiga Maldifis"}\r
+        }\r
+        "meta:Marquesas"{\r
+            ls{"Waqtiga Marquesas"}\r
+        }\r
+        "meta:Marshall_Islands"{\r
+            ls{"waqtiga jasiiradaha marshal"}\r
+        }\r
+        "meta:Mauritius"{\r
+            ld{"Waqtiyada Xagaaga ee Morishiyaas"}\r
+            lg{"Waqtiga Morishiyaas"}\r
+            ls{"Waqtiyada Caadiga ah ee Morishiyaas"}\r
+        }\r
+        "meta:Mawson"{\r
+            ls{"Waqtiga Mawson"}\r
+        }\r
+        "meta:Mexico_Northwest"{\r
+            ld{"Waqtiga Dharaarta ee Waqooyigalbeed Meksiko"}\r
+            lg{"Waqtiga Waqooyi-Galbeed ee Meksiko"}\r
+            ls{"waqtiga Istandardka ee waqooyi galbeet meksiko"}\r
+        }\r
+        "meta:Mexico_Pacific"{\r
+            ld{"Waqtiga Dharaarta ee Baasifikada Meksiko"}\r
+            lg{"Waqtiga Baasifikada Meksiko"}\r
+            ls{"waqtiga standardka Baasifikada Meksiko"}\r
+        }\r
+        "meta:Mongolia"{\r
+            ld{"Waqtiyada Xagaaga ee Ulaanbaataar"}\r
+            lg{"Waqtiga Ulaanbaataar"}\r
+            ls{"Waqtiyada Caadiga ah ee Ulaanbaataar"}\r
+        }\r
+        "meta:Moscow"{\r
+            ld{"Waqtiyada Xagaaga ee Moskow"}\r
+            lg{"Waqtiga Moskow"}\r
+            ls{"Waqtiyada Caadiga ah ee Moskow"}\r
+        }\r
+        "meta:Myanmar"{\r
+            ls{"Waqtiga Mayanmaar"}\r
+        }\r
+        "meta:Nauru"{\r
+            ls{"Waqtiga Nauru"}\r
+        }\r
+        "meta:Nepal"{\r
+            ls{"Waqtiga Nebal"}\r
+        }\r
+        "meta:New_Caledonia"{\r
+            ld{"Waqtiga Xagaaga ee Niyuu Kaledoniya"}\r
+            lg{"Waqtiga Niyuu Kaledonya"}\r
+            ls{"Waqtiyada Caadiga ah ee Niyuu Kaledoniya"}\r
+        }\r
+        "meta:New_Zealand"{\r
+            ld{"Waqtiyada Dharaarta ee Niyuu Si’aland"}\r
+            lg{"Waqtiga Niyuu Si’land"}\r
+            ls{"Waqtiyada Caadiga ah ee Niyuu si’lan"}\r
+        }\r
+        "meta:Newfoundland"{\r
+            ld{"Waqtiga Dharaarta ee Newfoundland"}\r
+            lg{"Waqtiga Newfoundland"}\r
+            ls{"Waqtiga Istaandarka ee Newfoundland"}\r
+        }\r
+        "meta:Niue"{\r
+            ls{"Waqtiga Niyuu"}\r
+        }\r
+        "meta:Norfolk"{\r
+            ls{"Waqtiga Norfoolk Island"}\r
+        }\r
+        "meta:Noronha"{\r
+            ld{"Waqtiyada Xagaaga ee Farnaando de Noronho"}\r
+            lg{"Waqtiga Farnaando de Noronho"}\r
+            ls{"Waqtiyada Caadiga ah ee Farnaando de Noronho"}\r
+        }\r
+        "meta:Novosibirsk"{\r
+            ld{"Waqtiyada Xagaaga ee Nofosibirsk"}\r
+            lg{"Waqtiga Nofosibirsk"}\r
+            ls{"Waqtiyada Caadiga ah ee Nofosibirsk"}\r
+        }\r
+        "meta:Omsk"{\r
+            ld{"Waqtiyada Xagaaga ee Omsk"}\r
+            lg{"Waqtiga Omsk"}\r
+            ls{"Waqtiyada Caadiga ah ee Omsk"}\r
+        }\r
+        "meta:Pakistan"{\r
+            ld{"Waqtiyada Xagaaga ee Bakistan"}\r
+            lg{"Waqtiga Bakistan"}\r
+            ls{"Waqtiyada Caadiga ah ee Bakistan"}\r
+        }\r
+        "meta:Palau"{\r
+            ls{"Waqtiga Balaw"}\r
+        }\r
+        "meta:Papua_New_Guinea"{\r
+            ls{"Waqtiga Babua Niyuu Giniya"}\r
+        }\r
+        "meta:Paraguay"{\r
+            ld{"Waqtiyada Xagaaga ee Baragway"}\r
+            lg{"Waqtiga Baragway"}\r
+            ls{"Waqtiyada Caadiga ah ee Baragway"}\r
+        }\r
+        "meta:Peru"{\r
+            ld{"Waqtiyada Xagaaga ee Beeru"}\r
+            lg{"Waqtiga Beeru"}\r
+            ls{"Waqtiyada Caadiga ah ee Beeru"}\r
+        }\r
+        "meta:Philippines"{\r
+            ld{"Waqtiyada Xagaaga ee Filibin"}\r
+            lg{"Waqtiga Filibin"}\r
+            ls{"Waqtiyada Caadiga ah ee Filibin"}\r
+        }\r
+        "meta:Phoenix_Islands"{\r
+            ls{"waqtiga jasiirada fonikis"}\r
+        }\r
+        "meta:Pierre_Miquelon"{\r
+            ld{"Waqtiga Dharaarta ee St. Pierre & Miquelon"}\r
+            lg{"Waqtiga St. Pierre & Miquelon"}\r
+            ls{"Waqtiga Istaandarka ee St. Pierre & Miquelon"}\r
+        }\r
+        "meta:Pitcairn"{\r
+            ls{"Waqtiga Bitkairin"}\r
+        }\r
+        "meta:Ponape"{\r
+            ls{"Waqtiga Bonabe"}\r
+        }\r
+        "meta:Pyongyang"{\r
+            ls{"Waqtiga Boyongyang"}\r
+        }\r
+        "meta:Reunion"{\r
+            ls{"Waqtiga Riyunion"}\r
+        }\r
+        "meta:Rothera"{\r
+            ls{"Waqtiga Rotera"}\r
+        }\r
+        "meta:Sakhalin"{\r
+            ld{"Waqtiyada Xagaaga ee Sakhalin"}\r
+            lg{"Waqtiga Sakhalin"}\r
+            ls{"Waqtiyada Caadiga ah ee Sakhalin"}\r
+        }\r
+        "meta:Samoa"{\r
+            ld{"Waqtiyada Dharaarta ee Samoa"}\r
+            lg{"Waqtiga Samoa"}\r
+            ls{"Waqtiyada Caadiga ah ee Samoa"}\r
+        }\r
+        "meta:Seychelles"{\r
+            ls{"Waqtiga Siisalis"}\r
+        }\r
+        "meta:Singapore"{\r
+            ls{"Waqtiyada Caadiga ah ee Singabuur"}\r
+        }\r
+        "meta:Solomon"{\r
+            ls{"waqtiga jasiirada solomon"}\r
+        }\r
+        "meta:South_Georgia"{\r
+            ls{"Waqtiga Koonfurta Jorjiya"}\r
+        }\r
+        "meta:Suriname"{\r
+            ls{"Waqtiga Surineym"}\r
+        }\r
+        "meta:Syowa"{\r
+            ls{"Waqtiga Siyowa"}\r
+        }\r
+        "meta:Tahiti"{\r
+            ls{"Waqtiga Tahiti"}\r
+        }\r
+        "meta:Taipei"{\r
+            ld{"Waqtiyada Dharaarta ee Teybey"}\r
+            lg{"Waqtiga Teybey"}\r
+            ls{"Waqtiyada Caadiga ah ee Teybey"}\r
+        }\r
+        "meta:Tajikistan"{\r
+            ls{"Waqtiga Tajikistan"}\r
+        }\r
+        "meta:Tokelau"{\r
+            ls{"Waqtiga Tokelau"}\r
+        }\r
+        "meta:Tonga"{\r
+            ld{"Waqtiyada Xagaaga ee Tonga"}\r
+            lg{"Waqtiga Tonga"}\r
+            ls{"Waqtiyada Caadiga ah ee Tonga"}\r
+        }\r
+        "meta:Truk"{\r
+            ls{"Waqtiga Juuk"}\r
+        }\r
+        "meta:Turkmenistan"{\r
+            ld{"Waqtiayda Xagaaga ee Turkmenistan"}\r
+            lg{"Waqtiga Turkenistaan"}\r
+            ls{"Waqtiyada Caadiga ah ee Turkeminstan"}\r
+        }\r
+        "meta:Tuvalu"{\r
+            ls{"Waqtiga Tufalu"}\r
+        }\r
+        "meta:Uruguay"{\r
+            ld{"Waqtiyada Xagaaga ee Urugway"}\r
+            lg{"Waqtiga Urugway"}\r
+            ls{"Waqtiyada Caadiga ah ee Urugway"}\r
+        }\r
+        "meta:Uzbekistan"{\r
+            ld{"Waqtiyada Xagaaga ee Usbekistan"}\r
+            lg{"Waqtiga Usbekistan"}\r
+            ls{"Waqtiyada Caadiga ah ee Usbekistan"}\r
+        }\r
+        "meta:Vanuatu"{\r
+            ld{"Waqtiyada Xagaaga ee Fanautu"}\r
+            lg{"Waqtiga Fanuatu"}\r
+            ls{"Waqtiyada Caadiga ah ee Fanautu"}\r
+        }\r
+        "meta:Venezuela"{\r
+            ls{"Waqtiga Fenezuela"}\r
+        }\r
+        "meta:Vladivostok"{\r
+            ld{"Waqtiyada Xagaaga ee Faladifostok"}\r
+            lg{"Waqtiga Faladifostok"}\r
+            ls{"Waqtiyada Caadiga ah ee Faladifostok"}\r
+        }\r
+        "meta:Volgograd"{\r
+            ld{"Waqtiyada Xagaaga ee Folgograd"}\r
+            lg{"Waqtiga Folgograd"}\r
+            ls{"Waqtiyada Caadiga ah ee Folgograd"}\r
+        }\r
+        "meta:Vostok"{\r
+            ls{"Waqtiga Fostok"}\r
+        }\r
+        "meta:Wake"{\r
+            ls{"Waqtiga jasiirada wake"}\r
+        }\r
+        "meta:Wallis"{\r
+            ls{"Waqtiga Walis & Futuna"}\r
+        }\r
+        "meta:Yakutsk"{\r
+            ld{"Waqtiyada Xagaaga ee Yakutsk"}\r
+            lg{"Waqtiyada Yakutsk"}\r
+            ls{"Waqtiyada Caadiga ah ee Yakutsk"}\r
+        }\r
+        "meta:Yekaterinburg"{\r
+            ld{"Waqtiyada Xagaaga ee Yekaterinbaag"}\r
+            lg{"Waqtiga Yekaterinbaag"}\r
+            ls{"Waqtiyada Caadiga ah ee Yekaterinbaag"}\r
+        }\r
+        fallbackFormat{"{1} ({0})"}\r
+        gmtFormat{"GMT{0}"}\r
+        gmtZeroFormat{"GMT"}\r
+        hourFormat{"+HH:mm;-HH:mm"}\r
+        regionFormat{"{0} Waqtiga"}\r
+        regionFormatDaylight{"{0} Waqtiga Dharaarta"}\r
+        regionFormatStandard{"{0} Waqtiga Caadiga ah"}\r
     }\r
 }\r
index 95c3757..623e220 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 sq{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.50"}\r
     zoneStrings{\r
         "Africa:Abidjan"{\r
             ec{"Abixhan"}\r
@@ -274,7 +274,7 @@ sq{
             ec{"Kujaba"}\r
         }\r
         "America:Curacao"{\r
-            ec{"Kuraçao"}\r
+            ec{"Kurasao"}\r
         }\r
         "America:Danmarkshavn"{\r
             ec{"Denmarkshavën"}\r
@@ -322,10 +322,10 @@ sq{
             ec{"Turku i Madh"}\r
         }\r
         "America:Grenada"{\r
-            ec{"Grenadë"}\r
+            ec{"Granadë"}\r
         }\r
         "America:Guadeloupe"{\r
-            ec{"Guadalupe"}\r
+            ec{"Guadelupë"}\r
         }\r
         "America:Guatemala"{\r
             ec{"Guatemalë"}\r
@@ -334,7 +334,7 @@ sq{
             ec{"Guajakuil"}\r
         }\r
         "America:Guyana"{\r
-            ec{"Gujanë"}\r
+            ec{"Guajanë"}\r
         }\r
         "America:Halifax"{\r
             ec{"Halifaks"}\r
@@ -550,7 +550,7 @@ sq{
             ec{"Sitka"}\r
         }\r
         "America:St_Barthelemy"{\r
-            ec{"Shën-Bartolemeo"}\r
+            ec{"Sen-Bartelemi"}\r
         }\r
         "America:St_Johns"{\r
             ec{"Shën-Gjon"}\r
@@ -565,7 +565,7 @@ sq{
             ec{"Shën-Tomas"}\r
         }\r
         "America:St_Vincent"{\r
-            ec{"Shën-Vinsent"}\r
+            ec{"Shën-Vincent"}\r
         }\r
         "America:Swift_Current"{\r
             ec{"Rryma e Shpejtë"}\r
@@ -667,7 +667,7 @@ sq{
             ec{"Bagdad"}\r
         }\r
         "Asia:Bahrain"{\r
-            ec{"Bahrein"}\r
+            ec{"Bahrejn"}\r
         }\r
         "Asia:Baku"{\r
             ec{"Baku"}\r
@@ -889,7 +889,7 @@ sq{
             ec{"Azore"}\r
         }\r
         "Atlantic:Bermuda"{\r
-            ec{"Bermudë"}\r
+            ec{"Bermude"}\r
         }\r
         "Atlantic:Canary"{\r
             ec{"Kanari"}\r
@@ -910,7 +910,7 @@ sq{
             ec{"Xhorxha e Jugut"}\r
         }\r
         "Atlantic:St_Helena"{\r
-            ec{"Shën-Helenë"}\r
+            ec{"Shën-Elenë"}\r
         }\r
         "Atlantic:Stanley"{\r
             ec{"Stenli"}\r
@@ -1004,7 +1004,7 @@ sq{
             ec{"Gjibraltar"}\r
         }\r
         "Europe:Guernsey"{\r
-            ec{"Guernsej"}\r
+            ec{"Gernsej"}\r
         }\r
         "Europe:Helsinki"{\r
             ec{"Helsinki"}\r
@@ -1312,7 +1312,7 @@ sq{
             ls{"Ora standarde e Afrikës Perëndimore"}\r
         }\r
         "meta:Alaska"{\r
-            ld{"Ora verore e Alsaskës"}\r
+            ld{"Ora verore e Alaskës"}\r
             lg{"Ora e Alaskës"}\r
             ls{"Ora standarde e Alaskës"}\r
         }\r
@@ -1433,9 +1433,9 @@ sq{
             ls{"Ora e Bolivisë"}\r
         }\r
         "meta:Brasilia"{\r
-            ld{"Ora verore e Brasilës"}\r
-            lg{"Ora e Brasilës"}\r
-            ls{"Ora standarde e Brasilës"}\r
+            ld{"Ora verore e Brazilisë"}\r
+            lg{"Ora e Brazilisë"}\r
+            ls{"Ora standarde e Brazilisë"}\r
         }\r
         "meta:Brunei"{\r
             ls{"Ora e Brunei-Durasalamit"}\r
@@ -1566,9 +1566,9 @@ sq{
             ls{"Ora standarde e Grenlandës Lindore"}\r
         }\r
         "meta:Greenland_Western"{\r
-            ld{"Ora verore e Grenlandës Perëndimore"}\r
-            lg{"Ora e Grenlandës Perëndimore"}\r
-            ls{"Ora standarde e Grenlandës Perëndimore"}\r
+            ld{"Ora verore e Grënlandës Perëndimore"}\r
+            lg{"Ora e Grënlandës Perëndimore"}\r
+            ls{"Ora standarde e Grënlandës Perëndimore"}\r
         }\r
         "meta:Guam"{\r
             ls{"Ora e Guamit"}\r
@@ -1657,7 +1657,7 @@ sq{
             ls{"Ora standarde e Krasnojarskut"}\r
         }\r
         "meta:Kyrgystan"{\r
-            ls{"Ora e Kirgistanit"}\r
+            ls{"Ora e Kirgizisë"}\r
         }\r
         "meta:Lanka"{\r
             ls{"Ora e Lankasë"}\r
@@ -1693,7 +1693,7 @@ sq{
             ls{"Ora e Ishujve Markezë"}\r
         }\r
         "meta:Marshall_Islands"{\r
-            ls{"Ora e Ishujve Marshallë"}\r
+            ls{"Ora e Ishujve Marshall"}\r
         }\r
         "meta:Mauritius"{\r
             ld{"Ora verore e Mauritiusit"}\r
index 5ce533d..6d7548b 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 sr{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.94"}\r
     zoneStrings{\r
         "Africa:Abidjan"{\r
             ec{"Абиџан"}\r
index 12a844b..b758eaa 100644 (file)
@@ -2,7 +2,7 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 sr_Latn{\r
     %%Parent{"root"}\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.50"}\r
     zoneStrings{\r
         "Africa:Abidjan"{\r
             ec{"Abidžan"}\r
index a2e4aa2..c463848 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 sv{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.94"}\r
     zoneStrings{\r
         "Africa:Abidjan"{\r
             ec{"Abidjan"}\r
index b82a022..8602b08 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 sw{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.65"}\r
     zoneStrings{\r
         "Africa:Abidjan"{\r
             ec{"Abidjan"}\r
index 6627e89..b57673b 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 ta{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.50"}\r
     zoneStrings{\r
         "Africa:Abidjan"{\r
             ec{"அபிட்ஜான்"}\r
index c082a47..59d5f01 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 te{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.50"}\r
     zoneStrings{\r
         "Africa:Abidjan"{\r
             ec{"అబిడ్జాన్"}\r
index 7618f38..c4a074e 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 tg{\r
-    Version{"2.1.38.71"}\r
+    Version{"2.1.44.88"}\r
     zoneStrings{\r
         "Asia:Dushanbe"{\r
             ec{"Душанбе"}\r
index b32b0ae..e40186f 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 th{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.89"}\r
     zoneStrings{\r
         "Africa:Abidjan"{\r
             ec{"อาบีจาน"}\r
@@ -676,7 +676,7 @@ th{
             ec{"กรุงเทพ"}\r
         }\r
         "Asia:Barnaul"{\r
-            ec{"à¸\9aราà¹\82มล"}\r
+            ec{"à¸\9aารà¹\8cà¹\80à¸\99าวà¹\8c"}\r
         }\r
         "Asia:Beirut"{\r
             ec{"เบรุต"}\r
@@ -955,7 +955,7 @@ th{
             ls{"เวลาสากลเชิงพิกัด"}\r
         }\r
         "Etc:Unknown"{\r
-            ec{"à¹\80มือà¸\87à¸\97ีà¹\88à¹\84มà¹\88รูà¹\89à¸\88ัà¸\81"}\r
+            ec{"à¹\84มà¹\88à¸\97ราà¸\9aà¸\8aืà¹\88อà¹\80มือà¸\87"}\r
         }\r
         "Europe:Amsterdam"{\r
             ec{"อัมสเตอดัม"}\r
index 83608aa..8f0611d 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 ti{\r
-    Version{"2.1.38.72"}\r
+    Version{"2.1.44.88"}\r
     zoneStrings{\r
         "Africa:Abidjan"{\r
             ec{"Abidjan"}\r
diff --git a/source/data/zone/tk.txt b/source/data/zone/tk.txt
new file mode 100644 (file)
index 0000000..1e0e40d
--- /dev/null
@@ -0,0 +1,1889 @@
+// © 2016 and later: Unicode, Inc. and others.\r
+// License & terms of use: http://www.unicode.org/copyright.html#License\r
+tk{\r
+    Version{"2.1.43.65"}\r
+    zoneStrings{\r
+        "Africa:Abidjan"{\r
+            ec{"Abijan"}\r
+        }\r
+        "Africa:Accra"{\r
+            ec{"Akkra"}\r
+        }\r
+        "Africa:Addis_Ababa"{\r
+            ec{"Addis-Abeba"}\r
+        }\r
+        "Africa:Algiers"{\r
+            ec{"Alžir"}\r
+        }\r
+        "Africa:Asmera"{\r
+            ec{"Asmera"}\r
+        }\r
+        "Africa:Bamako"{\r
+            ec{"Bamako"}\r
+        }\r
+        "Africa:Bangui"{\r
+            ec{"Bangi"}\r
+        }\r
+        "Africa:Banjul"{\r
+            ec{"Banjul"}\r
+        }\r
+        "Africa:Bissau"{\r
+            ec{"Bisau"}\r
+        }\r
+        "Africa:Blantyre"{\r
+            ec{"Blantaýr"}\r
+        }\r
+        "Africa:Brazzaville"{\r
+            ec{"Brazzawil"}\r
+        }\r
+        "Africa:Bujumbura"{\r
+            ec{"Bujumbura"}\r
+        }\r
+        "Africa:Cairo"{\r
+            ec{"Kair"}\r
+        }\r
+        "Africa:Casablanca"{\r
+            ec{"Kasablanka"}\r
+        }\r
+        "Africa:Ceuta"{\r
+            ec{"Seuta"}\r
+        }\r
+        "Africa:Conakry"{\r
+            ec{"Konakri"}\r
+        }\r
+        "Africa:Dakar"{\r
+            ec{"Dakar"}\r
+        }\r
+        "Africa:Dar_es_Salaam"{\r
+            ec{"Dar-es-Salam"}\r
+        }\r
+        "Africa:Djibouti"{\r
+            ec{"Jibuti"}\r
+        }\r
+        "Africa:Douala"{\r
+            ec{"Duala"}\r
+        }\r
+        "Africa:El_Aaiun"{\r
+            ec{"El-Aýun"}\r
+        }\r
+        "Africa:Freetown"{\r
+            ec{"Fritaun"}\r
+        }\r
+        "Africa:Gaborone"{\r
+            ec{"Gaborone"}\r
+        }\r
+        "Africa:Harare"{\r
+            ec{"Harare"}\r
+        }\r
+        "Africa:Johannesburg"{\r
+            ec{"Ýohannesburg"}\r
+        }\r
+        "Africa:Juba"{\r
+            ec{"Juba"}\r
+        }\r
+        "Africa:Kampala"{\r
+            ec{"Kampala"}\r
+        }\r
+        "Africa:Khartoum"{\r
+            ec{"Hartum"}\r
+        }\r
+        "Africa:Kigali"{\r
+            ec{"Kigali"}\r
+        }\r
+        "Africa:Kinshasa"{\r
+            ec{"Kinşasa"}\r
+        }\r
+        "Africa:Lagos"{\r
+            ec{"Lagos"}\r
+        }\r
+        "Africa:Libreville"{\r
+            ec{"Librewil"}\r
+        }\r
+        "Africa:Lome"{\r
+            ec{"Lome"}\r
+        }\r
+        "Africa:Luanda"{\r
+            ec{"Luanda"}\r
+        }\r
+        "Africa:Lubumbashi"{\r
+            ec{"Lubumbaşi"}\r
+        }\r
+        "Africa:Lusaka"{\r
+            ec{"Lusaka"}\r
+        }\r
+        "Africa:Malabo"{\r
+            ec{"Malabo"}\r
+        }\r
+        "Africa:Maputo"{\r
+            ec{"Maputo"}\r
+        }\r
+        "Africa:Maseru"{\r
+            ec{"Maseru"}\r
+        }\r
+        "Africa:Mbabane"{\r
+            ec{"Mbabane"}\r
+        }\r
+        "Africa:Mogadishu"{\r
+            ec{"Mogadişo"}\r
+        }\r
+        "Africa:Monrovia"{\r
+            ec{"Monrowiýa"}\r
+        }\r
+        "Africa:Nairobi"{\r
+            ec{"Naýrobi"}\r
+        }\r
+        "Africa:Ndjamena"{\r
+            ec{"Jamena"}\r
+        }\r
+        "Africa:Niamey"{\r
+            ec{"Niameý"}\r
+        }\r
+        "Africa:Nouakchott"{\r
+            ec{"Nuakşot"}\r
+        }\r
+        "Africa:Ouagadougou"{\r
+            ec{"Uagadugu"}\r
+        }\r
+        "Africa:Porto-Novo"{\r
+            ec{"Porto-Nowo"}\r
+        }\r
+        "Africa:Sao_Tome"{\r
+            ec{"San-Tome"}\r
+        }\r
+        "Africa:Tripoli"{\r
+            ec{"Tripoli"}\r
+        }\r
+        "Africa:Tunis"{\r
+            ec{"Tunis"}\r
+        }\r
+        "Africa:Windhoek"{\r
+            ec{"Windhuk"}\r
+        }\r
+        "America:Adak"{\r
+            ec{"Adak adasy"}\r
+        }\r
+        "America:Anchorage"{\r
+            ec{"Ankoridž"}\r
+        }\r
+        "America:Anguilla"{\r
+            ec{"Angilýa"}\r
+        }\r
+        "America:Antigua"{\r
+            ec{"Antigua"}\r
+        }\r
+        "America:Araguaina"{\r
+            ec{"Araguaýna"}\r
+        }\r
+        "America:Argentina:La_Rioja"{\r
+            ec{"La-Rioha"}\r
+        }\r
+        "America:Argentina:Rio_Gallegos"{\r
+            ec{"Rio-Galegos"}\r
+        }\r
+        "America:Argentina:Salta"{\r
+            ec{"Salta"}\r
+        }\r
+        "America:Argentina:San_Juan"{\r
+            ec{"San-Huan"}\r
+        }\r
+        "America:Argentina:San_Luis"{\r
+            ec{"San-Luis"}\r
+        }\r
+        "America:Argentina:Tucuman"{\r
+            ec{"Tukuman"}\r
+        }\r
+        "America:Argentina:Ushuaia"{\r
+            ec{"Uşuaýa"}\r
+        }\r
+        "America:Aruba"{\r
+            ec{"Aruba"}\r
+        }\r
+        "America:Asuncion"{\r
+            ec{"Asunsýon"}\r
+        }\r
+        "America:Bahia"{\r
+            ec{"Baiýa"}\r
+        }\r
+        "America:Bahia_Banderas"{\r
+            ec{"Baiýa-de-Banderas"}\r
+        }\r
+        "America:Barbados"{\r
+            ec{"Barbados"}\r
+        }\r
+        "America:Belem"{\r
+            ec{"Belen"}\r
+        }\r
+        "America:Belize"{\r
+            ec{"Beliz"}\r
+        }\r
+        "America:Blanc-Sablon"{\r
+            ec{"Blank-Sablon"}\r
+        }\r
+        "America:Boa_Vista"{\r
+            ec{"Boa-Wista"}\r
+        }\r
+        "America:Bogota"{\r
+            ec{"Bogota"}\r
+        }\r
+        "America:Boise"{\r
+            ec{"Boýse"}\r
+        }\r
+        "America:Buenos_Aires"{\r
+            ec{"Buenos-Aýres"}\r
+        }\r
+        "America:Cambridge_Bay"{\r
+            ec{"Kembrij-Beý"}\r
+        }\r
+        "America:Campo_Grande"{\r
+            ec{"Kampu-Grandi"}\r
+        }\r
+        "America:Cancun"{\r
+            ec{"Kankun"}\r
+        }\r
+        "America:Caracas"{\r
+            ec{"Karakas"}\r
+        }\r
+        "America:Catamarca"{\r
+            ec{"Katamarka"}\r
+        }\r
+        "America:Cayenne"{\r
+            ec{"Kaýenna"}\r
+        }\r
+        "America:Cayman"{\r
+            ec{"Kaýman adalary"}\r
+        }\r
+        "America:Chicago"{\r
+            ec{"Çikago"}\r
+        }\r
+        "America:Chihuahua"{\r
+            ec{"Çihuahua"}\r
+        }\r
+        "America:Coral_Harbour"{\r
+            ec{"Atikokan"}\r
+        }\r
+        "America:Cordoba"{\r
+            ec{"Kordowa"}\r
+        }\r
+        "America:Costa_Rica"{\r
+            ec{"Kosta-Rika"}\r
+        }\r
+        "America:Creston"{\r
+            ec{"Kreston"}\r
+        }\r
+        "America:Cuiaba"{\r
+            ec{"Kuýaba"}\r
+        }\r
+        "America:Curacao"{\r
+            ec{"Kýurasao"}\r
+        }\r
+        "America:Danmarkshavn"{\r
+            ec{"Denmarkshawn"}\r
+        }\r
+        "America:Dawson"{\r
+            ec{"Douson"}\r
+        }\r
+        "America:Dawson_Creek"{\r
+            ec{"Douson-Krik"}\r
+        }\r
+        "America:Denver"{\r
+            ec{"Denwer"}\r
+        }\r
+        "America:Detroit"{\r
+            ec{"Detroýt"}\r
+        }\r
+        "America:Dominica"{\r
+            ec{"Dominika"}\r
+        }\r
+        "America:Edmonton"{\r
+            ec{"Edmonton"}\r
+        }\r
+        "America:Eirunepe"{\r
+            ec{"Eýrunepe"}\r
+        }\r
+        "America:El_Salvador"{\r
+            ec{"Salwador"}\r
+        }\r
+        "America:Fort_Nelson"{\r
+            ec{"Fort Nelson"}\r
+        }\r
+        "America:Fortaleza"{\r
+            ec{"Fortaleza"}\r
+        }\r
+        "America:Glace_Bay"{\r
+            ec{"Gleýs-Beý"}\r
+        }\r
+        "America:Godthab"{\r
+            ec{"Nuk"}\r
+        }\r
+        "America:Goose_Bay"{\r
+            ec{"Gus-Beý"}\r
+        }\r
+        "America:Grand_Turk"{\r
+            ec{"Grand-Terk"}\r
+        }\r
+        "America:Grenada"{\r
+            ec{"Grenada"}\r
+        }\r
+        "America:Guadeloupe"{\r
+            ec{"Gwadelupa"}\r
+        }\r
+        "America:Guatemala"{\r
+            ec{"Gwatemala"}\r
+        }\r
+        "America:Guayaquil"{\r
+            ec{"Guýakil"}\r
+        }\r
+        "America:Guyana"{\r
+            ec{"Gaýana"}\r
+        }\r
+        "America:Halifax"{\r
+            ec{"Galifaks"}\r
+        }\r
+        "America:Havana"{\r
+            ec{"Gawana"}\r
+        }\r
+        "America:Hermosillo"{\r
+            ec{"Ermosilo"}\r
+        }\r
+        "America:Indiana:Knox"{\r
+            ec{"Noks, Indiana"}\r
+        }\r
+        "America:Indiana:Marengo"{\r
+            ec{"Marengo, Indiana"}\r
+        }\r
+        "America:Indiana:Petersburg"{\r
+            ec{"Petersburg, Indiana"}\r
+        }\r
+        "America:Indiana:Tell_City"{\r
+            ec{"Tell-Siti, Indiana"}\r
+        }\r
+        "America:Indiana:Vevay"{\r
+            ec{"Wiweý, Indiana"}\r
+        }\r
+        "America:Indiana:Vincennes"{\r
+            ec{"Winsens, Indiana"}\r
+        }\r
+        "America:Indiana:Winamac"{\r
+            ec{"Winamak, Indiana"}\r
+        }\r
+        "America:Indianapolis"{\r
+            ec{"Indianapolis"}\r
+        }\r
+        "America:Inuvik"{\r
+            ec{"Inuwik"}\r
+        }\r
+        "America:Iqaluit"{\r
+            ec{"Ikaluit"}\r
+        }\r
+        "America:Jamaica"{\r
+            ec{"Ýamaýka"}\r
+        }\r
+        "America:Jujuy"{\r
+            ec{"Žužuý"}\r
+        }\r
+        "America:Juneau"{\r
+            ec{"Džuno"}\r
+        }\r
+        "America:Kentucky:Monticello"{\r
+            ec{"Montisello, Kentuki"}\r
+        }\r
+        "America:Kralendijk"{\r
+            ec{"Kralendeýk"}\r
+        }\r
+        "America:La_Paz"{\r
+            ec{"La-Pas"}\r
+        }\r
+        "America:Lima"{\r
+            ec{"Lima"}\r
+        }\r
+        "America:Los_Angeles"{\r
+            ec{"Los-Anjeles"}\r
+        }\r
+        "America:Louisville"{\r
+            ec{"Luiswill"}\r
+        }\r
+        "America:Lower_Princes"{\r
+            ec{"Lower-Prinses-Kuorter"}\r
+        }\r
+        "America:Maceio"{\r
+            ec{"Maseýo"}\r
+        }\r
+        "America:Managua"{\r
+            ec{"Managua"}\r
+        }\r
+        "America:Manaus"{\r
+            ec{"Manaus"}\r
+        }\r
+        "America:Marigot"{\r
+            ec{"Marigo"}\r
+        }\r
+        "America:Martinique"{\r
+            ec{"Martinika"}\r
+        }\r
+        "America:Matamoros"{\r
+            ec{"Matamoros"}\r
+        }\r
+        "America:Mazatlan"{\r
+            ec{"Mazatlan"}\r
+        }\r
+        "America:Mendoza"{\r
+            ec{"Mendosa"}\r
+        }\r
+        "America:Menominee"{\r
+            ec{"Menomini"}\r
+        }\r
+        "America:Merida"{\r
+            ec{"Merida"}\r
+        }\r
+        "America:Metlakatla"{\r
+            ec{"Metlakatla"}\r
+        }\r
+        "America:Mexico_City"{\r
+            ec{"Mehiko"}\r
+        }\r
+        "America:Miquelon"{\r
+            ec{"Mikelon"}\r
+        }\r
+        "America:Moncton"{\r
+            ec{"Monkton"}\r
+        }\r
+        "America:Monterrey"{\r
+            ec{"Monterreý"}\r
+        }\r
+        "America:Montevideo"{\r
+            ec{"Montewideo"}\r
+        }\r
+        "America:Montserrat"{\r
+            ec{"Monserrat"}\r
+        }\r
+        "America:Nassau"{\r
+            ec{"Nassau"}\r
+        }\r
+        "America:New_York"{\r
+            ec{"Nýu-Ýork"}\r
+        }\r
+        "America:Nipigon"{\r
+            ec{"Nipigon"}\r
+        }\r
+        "America:Nome"{\r
+            ec{"Nom"}\r
+        }\r
+        "America:Noronha"{\r
+            ec{"Noronha"}\r
+        }\r
+        "America:North_Dakota:Beulah"{\r
+            ec{"Boýla, Demirgazyk Dakota"}\r
+        }\r
+        "America:North_Dakota:Center"{\r
+            ec{"Sentr, Demirgazyk Dakota"}\r
+        }\r
+        "America:North_Dakota:New_Salem"{\r
+            ec{"Nýu-Salem, D.g. Dakota"}\r
+        }\r
+        "America:Ojinaga"{\r
+            ec{"Ohinaga"}\r
+        }\r
+        "America:Panama"{\r
+            ec{"Panama"}\r
+        }\r
+        "America:Pangnirtung"{\r
+            ec{"Pangnirtang"}\r
+        }\r
+        "America:Paramaribo"{\r
+            ec{"Paramaribo"}\r
+        }\r
+        "America:Phoenix"{\r
+            ec{"Feniks"}\r
+        }\r
+        "America:Port-au-Prince"{\r
+            ec{"Port-o-Prens"}\r
+        }\r
+        "America:Port_of_Spain"{\r
+            ec{"Port-of-Speýn"}\r
+        }\r
+        "America:Porto_Velho"{\r
+            ec{"Portu-Welýu"}\r
+        }\r
+        "America:Puerto_Rico"{\r
+            ec{"Puerto-Riko"}\r
+        }\r
+        "America:Punta_Arenas"{\r
+            ec{"Punta-Arenas"}\r
+        }\r
+        "America:Rainy_River"{\r
+            ec{"Reýni-Riwer"}\r
+        }\r
+        "America:Rankin_Inlet"{\r
+            ec{"Rankin-Inlet"}\r
+        }\r
+        "America:Recife"{\r
+            ec{"Resifi"}\r
+        }\r
+        "America:Regina"{\r
+            ec{"Rejaýna"}\r
+        }\r
+        "America:Resolute"{\r
+            ec{"Rozulýut"}\r
+        }\r
+        "America:Rio_Branco"{\r
+            ec{"Riu-Branku"}\r
+        }\r
+        "America:Santa_Isabel"{\r
+            ec{"Santa-Izabel"}\r
+        }\r
+        "America:Santarem"{\r
+            ec{"Santarem"}\r
+        }\r
+        "America:Santiago"{\r
+            ec{"Santýago"}\r
+        }\r
+        "America:Santo_Domingo"{\r
+            ec{"Santo-Domingo"}\r
+        }\r
+        "America:Sao_Paulo"{\r
+            ec{"San-Paulu"}\r
+        }\r
+        "America:Scoresbysund"{\r
+            ec{"Illokkortoormiut"}\r
+        }\r
+        "America:Sitka"{\r
+            ec{"Sitka"}\r
+        }\r
+        "America:St_Barthelemy"{\r
+            ec{"Sen-Bartelemi"}\r
+        }\r
+        "America:St_Johns"{\r
+            ec{"Sent-Džons"}\r
+        }\r
+        "America:St_Kitts"{\r
+            ec{"Sent-Kits"}\r
+        }\r
+        "America:St_Lucia"{\r
+            ec{"Sent-Lýusiýa"}\r
+        }\r
+        "America:St_Thomas"{\r
+            ec{"Sent-Tomas"}\r
+        }\r
+        "America:St_Vincent"{\r
+            ec{"Sent-Winsent"}\r
+        }\r
+        "America:Swift_Current"{\r
+            ec{"Swift-Karent"}\r
+        }\r
+        "America:Tegucigalpa"{\r
+            ec{"Tegusigalpa"}\r
+        }\r
+        "America:Thule"{\r
+            ec{"Tule"}\r
+        }\r
+        "America:Thunder_Bay"{\r
+            ec{"Tander-Beý"}\r
+        }\r
+        "America:Tijuana"{\r
+            ec{"Tihuana"}\r
+        }\r
+        "America:Toronto"{\r
+            ec{"Toronto"}\r
+        }\r
+        "America:Tortola"{\r
+            ec{"Tortola"}\r
+        }\r
+        "America:Vancouver"{\r
+            ec{"Wankuwer"}\r
+        }\r
+        "America:Whitehorse"{\r
+            ec{"Waýthors"}\r
+        }\r
+        "America:Winnipeg"{\r
+            ec{"Winipeg"}\r
+        }\r
+        "America:Yakutat"{\r
+            ec{"Ýakutat"}\r
+        }\r
+        "America:Yellowknife"{\r
+            ec{"Ýellounaýf"}\r
+        }\r
+        "Antarctica:Casey"{\r
+            ec{"Keýsi"}\r
+        }\r
+        "Antarctica:Davis"{\r
+            ec{"Deýwis"}\r
+        }\r
+        "Antarctica:DumontDUrville"{\r
+            ec{"Dýumon-d-Ýurwil"}\r
+        }\r
+        "Antarctica:Macquarie"{\r
+            ec{"Makkuori"}\r
+        }\r
+        "Antarctica:Mawson"{\r
+            ec{"Mouson"}\r
+        }\r
+        "Antarctica:McMurdo"{\r
+            ec{"Mak-Merdo"}\r
+        }\r
+        "Antarctica:Palmer"{\r
+            ec{"Palmer"}\r
+        }\r
+        "Antarctica:Rothera"{\r
+            ec{"Rotera"}\r
+        }\r
+        "Antarctica:Syowa"{\r
+            ec{"Sýowa"}\r
+        }\r
+        "Antarctica:Troll"{\r
+            ec{"Trol"}\r
+        }\r
+        "Antarctica:Vostok"{\r
+            ec{"Wostok"}\r
+        }\r
+        "Arctic:Longyearbyen"{\r
+            ec{"Longir"}\r
+        }\r
+        "Asia:Aden"{\r
+            ec{"Aden"}\r
+        }\r
+        "Asia:Almaty"{\r
+            ec{"Almaty"}\r
+        }\r
+        "Asia:Amman"{\r
+            ec{"Amman"}\r
+        }\r
+        "Asia:Anadyr"{\r
+            ec{"Anadyr"}\r
+        }\r
+        "Asia:Aqtau"{\r
+            ec{"Aktau"}\r
+        }\r
+        "Asia:Aqtobe"{\r
+            ec{"Aktobe"}\r
+        }\r
+        "Asia:Ashgabat"{\r
+            ec{"Aşgabat"}\r
+        }\r
+        "Asia:Atyrau"{\r
+            ec{"Atyrau"}\r
+        }\r
+        "Asia:Baghdad"{\r
+            ec{"Bagdat"}\r
+        }\r
+        "Asia:Bahrain"{\r
+            ec{"Bahreýn"}\r
+        }\r
+        "Asia:Baku"{\r
+            ec{"Baku"}\r
+        }\r
+        "Asia:Bangkok"{\r
+            ec{"Bangkok"}\r
+        }\r
+        "Asia:Barnaul"{\r
+            ec{"Barnaul"}\r
+        }\r
+        "Asia:Beirut"{\r
+            ec{"Beýrut"}\r
+        }\r
+        "Asia:Bishkek"{\r
+            ec{"Bişkek"}\r
+        }\r
+        "Asia:Brunei"{\r
+            ec{"Bruneý"}\r
+        }\r
+        "Asia:Calcutta"{\r
+            ec{"Kalkutta"}\r
+        }\r
+        "Asia:Chita"{\r
+            ec{"Çita"}\r
+        }\r
+        "Asia:Choibalsan"{\r
+            ec{"Çoýbalsan"}\r
+        }\r
+        "Asia:Colombo"{\r
+            ec{"Kolombo"}\r
+        }\r
+        "Asia:Damascus"{\r
+            ec{"Damask"}\r
+        }\r
+        "Asia:Dhaka"{\r
+            ec{"Dakka"}\r
+        }\r
+        "Asia:Dili"{\r
+            ec{"Dili"}\r
+        }\r
+        "Asia:Dubai"{\r
+            ec{"Dubaý"}\r
+        }\r
+        "Asia:Dushanbe"{\r
+            ec{"Duşanbe"}\r
+        }\r
+        "Asia:Famagusta"{\r
+            ec{"Famagusta"}\r
+        }\r
+        "Asia:Gaza"{\r
+            ec{"Gaza"}\r
+        }\r
+        "Asia:Hebron"{\r
+            ec{"Hewron"}\r
+        }\r
+        "Asia:Hong_Kong"{\r
+            ec{"Gonkong"}\r
+        }\r
+        "Asia:Hovd"{\r
+            ec{"Howd"}\r
+        }\r
+        "Asia:Irkutsk"{\r
+            ec{"Irkutsk"}\r
+        }\r
+        "Asia:Jakarta"{\r
+            ec{"Jakarta"}\r
+        }\r
+        "Asia:Jayapura"{\r
+            ec{"Jaýapura"}\r
+        }\r
+        "Asia:Jerusalem"{\r
+            ec{"Iýerusalim"}\r
+        }\r
+        "Asia:Kabul"{\r
+            ec{"Kabul"}\r
+        }\r
+        "Asia:Kamchatka"{\r
+            ec{"Kamçatka"}\r
+        }\r
+        "Asia:Karachi"{\r
+            ec{"Karaçi"}\r
+        }\r
+        "Asia:Katmandu"{\r
+            ec{"Katmandu"}\r
+        }\r
+        "Asia:Khandyga"{\r
+            ec{"Handyga"}\r
+        }\r
+        "Asia:Krasnoyarsk"{\r
+            ec{"Krasnoýarsk"}\r
+        }\r
+        "Asia:Kuala_Lumpur"{\r
+            ec{"Kuala-Lumpur"}\r
+        }\r
+        "Asia:Kuching"{\r
+            ec{"Kuçing"}\r
+        }\r
+        "Asia:Kuwait"{\r
+            ec{"Kuweýt"}\r
+        }\r
+        "Asia:Macau"{\r
+            ec{"Makao"}\r
+        }\r
+        "Asia:Magadan"{\r
+            ec{"Magadan"}\r
+        }\r
+        "Asia:Makassar"{\r
+            ec{"Makasar"}\r
+        }\r
+        "Asia:Manila"{\r
+            ec{"Manila"}\r
+        }\r
+        "Asia:Muscat"{\r
+            ec{"Maskat"}\r
+        }\r
+        "Asia:Nicosia"{\r
+            ec{"Nikosiýa"}\r
+        }\r
+        "Asia:Novokuznetsk"{\r
+            ec{"Nowokuznetsk"}\r
+        }\r
+        "Asia:Novosibirsk"{\r
+            ec{"Nowosibirsk"}\r
+        }\r
+        "Asia:Omsk"{\r
+            ec{"Omsk"}\r
+        }\r
+        "Asia:Oral"{\r
+            ec{"Oral"}\r
+        }\r
+        "Asia:Phnom_Penh"{\r
+            ec{"Pnompen"}\r
+        }\r
+        "Asia:Pontianak"{\r
+            ec{"Pontianak"}\r
+        }\r
+        "Asia:Pyongyang"{\r
+            ec{"Phenýan"}\r
+        }\r
+        "Asia:Qatar"{\r
+            ec{"Katar"}\r
+        }\r
+        "Asia:Qyzylorda"{\r
+            ec{"Gyzylorda"}\r
+        }\r
+        "Asia:Rangoon"{\r
+            ec{"Rangun"}\r
+        }\r
+        "Asia:Riyadh"{\r
+            ec{"Er-Riýad"}\r
+        }\r
+        "Asia:Saigon"{\r
+            ec{"Hoşimin"}\r
+        }\r
+        "Asia:Sakhalin"{\r
+            ec{"Sahalin"}\r
+        }\r
+        "Asia:Samarkand"{\r
+            ec{"Samarkand"}\r
+        }\r
+        "Asia:Seoul"{\r
+            ec{"Seul"}\r
+        }\r
+        "Asia:Shanghai"{\r
+            ec{"Şanhaý"}\r
+        }\r
+        "Asia:Singapore"{\r
+            ec{"Singapur"}\r
+        }\r
+        "Asia:Srednekolymsk"{\r
+            ec{"Srednekolymsk"}\r
+        }\r
+        "Asia:Taipei"{\r
+            ec{"Taýbeý"}\r
+        }\r
+        "Asia:Tashkent"{\r
+            ec{"Taşkent"}\r
+        }\r
+        "Asia:Tbilisi"{\r
+            ec{"Tbilisi"}\r
+        }\r
+        "Asia:Tehran"{\r
+            ec{"Tähran"}\r
+        }\r
+        "Asia:Thimphu"{\r
+            ec{"Timpu"}\r
+        }\r
+        "Asia:Tokyo"{\r
+            ec{"Tokio"}\r
+        }\r
+        "Asia:Tomsk"{\r
+            ec{"Tomsk"}\r
+        }\r
+        "Asia:Ulaanbaatar"{\r
+            ec{"Ulan-Bator"}\r
+        }\r
+        "Asia:Urumqi"{\r
+            ec{"Urumçi"}\r
+        }\r
+        "Asia:Ust-Nera"{\r
+            ec{"Ust-Nera"}\r
+        }\r
+        "Asia:Vientiane"{\r
+            ec{"Wýentýan"}\r
+        }\r
+        "Asia:Vladivostok"{\r
+            ec{"Wladiwostok"}\r
+        }\r
+        "Asia:Yakutsk"{\r
+            ec{"Ýakutsk"}\r
+        }\r
+        "Asia:Yekaterinburg"{\r
+            ec{"Ýekaterinburg"}\r
+        }\r
+        "Asia:Yerevan"{\r
+            ec{"Ýerewan"}\r
+        }\r
+        "Atlantic:Azores"{\r
+            ec{"Azor adalary"}\r
+        }\r
+        "Atlantic:Bermuda"{\r
+            ec{"Bermuda"}\r
+        }\r
+        "Atlantic:Canary"{\r
+            ec{"Kanar adalary"}\r
+        }\r
+        "Atlantic:Cape_Verde"{\r
+            ec{"Kabo-Werde"}\r
+        }\r
+        "Atlantic:Faeroe"{\r
+            ec{"Farer adalary"}\r
+        }\r
+        "Atlantic:Madeira"{\r
+            ec{"Madeýra adalary"}\r
+        }\r
+        "Atlantic:Reykjavik"{\r
+            ec{"Reýkýawik"}\r
+        }\r
+        "Atlantic:South_Georgia"{\r
+            ec{"Günorta Georgiýa"}\r
+        }\r
+        "Atlantic:St_Helena"{\r
+            ec{"Keramatly Ýelena adasy"}\r
+        }\r
+        "Atlantic:Stanley"{\r
+            ec{"Stenli"}\r
+        }\r
+        "Australia:Adelaide"{\r
+            ec{"Adelaida"}\r
+        }\r
+        "Australia:Brisbane"{\r
+            ec{"Brisben"}\r
+        }\r
+        "Australia:Broken_Hill"{\r
+            ec{"Broken-Hil"}\r
+        }\r
+        "Australia:Currie"{\r
+            ec{"Kerri"}\r
+        }\r
+        "Australia:Darwin"{\r
+            ec{"Darwin"}\r
+        }\r
+        "Australia:Eucla"{\r
+            ec{"Ýukla"}\r
+        }\r
+        "Australia:Hobart"{\r
+            ec{"Hobart"}\r
+        }\r
+        "Australia:Lindeman"{\r
+            ec{"Lindeman"}\r
+        }\r
+        "Australia:Lord_Howe"{\r
+            ec{"Lord-Hau"}\r
+        }\r
+        "Australia:Melbourne"{\r
+            ec{"Melburn"}\r
+        }\r
+        "Australia:Perth"{\r
+            ec{"Pert"}\r
+        }\r
+        "Australia:Sydney"{\r
+            ec{"Sidneý"}\r
+        }\r
+        "Etc:UTC"{\r
+            ls{"Utgaşdyrylýan ähliumumy wagt"}\r
+        }\r
+        "Etc:Unknown"{\r
+            ec{"Näbelli şäher"}\r
+        }\r
+        "Europe:Amsterdam"{\r
+            ec{"Amsterdam"}\r
+        }\r
+        "Europe:Andorra"{\r
+            ec{"Andorra"}\r
+        }\r
+        "Europe:Astrakhan"{\r
+            ec{"Astrahan"}\r
+        }\r
+        "Europe:Athens"{\r
+            ec{"Afiny"}\r
+        }\r
+        "Europe:Belgrade"{\r
+            ec{"Belgrad"}\r
+        }\r
+        "Europe:Berlin"{\r
+            ec{"Berlin"}\r
+        }\r
+        "Europe:Bratislava"{\r
+            ec{"Bratislawa"}\r
+        }\r
+        "Europe:Brussels"{\r
+            ec{"Brýussel"}\r
+        }\r
+        "Europe:Bucharest"{\r
+            ec{"Buharest"}\r
+        }\r
+        "Europe:Budapest"{\r
+            ec{"Budapeşt"}\r
+        }\r
+        "Europe:Busingen"{\r
+            ec{"Býuzingen"}\r
+        }\r
+        "Europe:Chisinau"{\r
+            ec{"Kişinýow"}\r
+        }\r
+        "Europe:Copenhagen"{\r
+            ec{"Kopengagen"}\r
+        }\r
+        "Europe:Dublin"{\r
+            ec{"Dublin"}\r
+            ld{"Irlandiýa standart wagty"}\r
+        }\r
+        "Europe:Gibraltar"{\r
+            ec{"Gibraltar"}\r
+        }\r
+        "Europe:Guernsey"{\r
+            ec{"Gernsi"}\r
+        }\r
+        "Europe:Helsinki"{\r
+            ec{"Helsinki"}\r
+        }\r
+        "Europe:Isle_of_Man"{\r
+            ec{"Men adasy"}\r
+        }\r
+        "Europe:Istanbul"{\r
+            ec{"Stambul"}\r
+        }\r
+        "Europe:Jersey"{\r
+            ec{"Jersi"}\r
+        }\r
+        "Europe:Kaliningrad"{\r
+            ec{"Kaliningrad"}\r
+        }\r
+        "Europe:Kiev"{\r
+            ec{"Kiýew"}\r
+        }\r
+        "Europe:Kirov"{\r
+            ec{"Kirow"}\r
+        }\r
+        "Europe:Lisbon"{\r
+            ec{"Lissabon"}\r
+        }\r
+        "Europe:Ljubljana"{\r
+            ec{"Lýublýana"}\r
+        }\r
+        "Europe:London"{\r
+            ec{"London"}\r
+            ld{"Beýik Britaniýa tomusky wagty"}\r
+        }\r
+        "Europe:Luxembourg"{\r
+            ec{"Lýuksemburg"}\r
+        }\r
+        "Europe:Madrid"{\r
+            ec{"Madrid"}\r
+        }\r
+        "Europe:Malta"{\r
+            ec{"Malta"}\r
+        }\r
+        "Europe:Mariehamn"{\r
+            ec{"Mariýehamn"}\r
+        }\r
+        "Europe:Minsk"{\r
+            ec{"Minsk"}\r
+        }\r
+        "Europe:Monaco"{\r
+            ec{"Monako"}\r
+        }\r
+        "Europe:Moscow"{\r
+            ec{"Moskwa"}\r
+        }\r
+        "Europe:Oslo"{\r
+            ec{"Oslo"}\r
+        }\r
+        "Europe:Paris"{\r
+            ec{"Pariž"}\r
+        }\r
+        "Europe:Podgorica"{\r
+            ec{"Podgorisa"}\r
+        }\r
+        "Europe:Prague"{\r
+            ec{"Praga"}\r
+        }\r
+        "Europe:Riga"{\r
+            ec{"Riga"}\r
+        }\r
+        "Europe:Rome"{\r
+            ec{"Rim"}\r
+        }\r
+        "Europe:Samara"{\r
+            ec{"Samara"}\r
+        }\r
+        "Europe:San_Marino"{\r
+            ec{"San-Marino"}\r
+        }\r
+        "Europe:Sarajevo"{\r
+            ec{"Saraýewo"}\r
+        }\r
+        "Europe:Saratov"{\r
+            ec{"Saratow"}\r
+        }\r
+        "Europe:Simferopol"{\r
+            ec{"Simferopol"}\r
+        }\r
+        "Europe:Skopje"{\r
+            ec{"Skopýe"}\r
+        }\r
+        "Europe:Sofia"{\r
+            ec{"Sofiýa"}\r
+        }\r
+        "Europe:Stockholm"{\r
+            ec{"Stokgolm"}\r
+        }\r
+        "Europe:Tallinn"{\r
+            ec{"Tallin"}\r
+        }\r
+        "Europe:Tirane"{\r
+            ec{"Tirana"}\r
+        }\r
+        "Europe:Ulyanovsk"{\r
+            ec{"Ulýanowsk"}\r
+        }\r
+        "Europe:Uzhgorod"{\r
+            ec{"Užgorod"}\r
+        }\r
+        "Europe:Vaduz"{\r
+            ec{"Waduz"}\r
+        }\r
+        "Europe:Vatican"{\r
+            ec{"Watikan"}\r
+        }\r
+        "Europe:Vienna"{\r
+            ec{"Wena"}\r
+        }\r
+        "Europe:Vilnius"{\r
+            ec{"Wilnýus"}\r
+        }\r
+        "Europe:Volgograd"{\r
+            ec{"Wolgograd"}\r
+        }\r
+        "Europe:Warsaw"{\r
+            ec{"Warşawa"}\r
+        }\r
+        "Europe:Zagreb"{\r
+            ec{"Zagreb"}\r
+        }\r
+        "Europe:Zaporozhye"{\r
+            ec{"Zaporožýe"}\r
+        }\r
+        "Europe:Zurich"{\r
+            ec{"Sýurih"}\r
+        }\r
+        "Indian:Antananarivo"{\r
+            ec{"Antananariwu"}\r
+        }\r
+        "Indian:Chagos"{\r
+            ec{"Çagos"}\r
+        }\r
+        "Indian:Christmas"{\r
+            ec{"Roždestwo"}\r
+        }\r
+        "Indian:Cocos"{\r
+            ec{"Kokos"}\r
+        }\r
+        "Indian:Comoro"{\r
+            ec{"Komor adalary"}\r
+        }\r
+        "Indian:Kerguelen"{\r
+            ec{"Kergelen"}\r
+        }\r
+        "Indian:Mahe"{\r
+            ec{"Maýe"}\r
+        }\r
+        "Indian:Maldives"{\r
+            ec{"Maldiwler"}\r
+        }\r
+        "Indian:Mauritius"{\r
+            ec{"Mawrikiý"}\r
+        }\r
+        "Indian:Mayotte"{\r
+            ec{"Maýotta"}\r
+        }\r
+        "Indian:Reunion"{\r
+            ec{"Reýunýon"}\r
+        }\r
+        "Pacific:Apia"{\r
+            ec{"Apia"}\r
+        }\r
+        "Pacific:Auckland"{\r
+            ec{"Oklend"}\r
+        }\r
+        "Pacific:Bougainville"{\r
+            ec{"Bugenwil"}\r
+        }\r
+        "Pacific:Chatham"{\r
+            ec{"Çatem"}\r
+        }\r
+        "Pacific:Easter"{\r
+            ec{"Pashi adasy"}\r
+        }\r
+        "Pacific:Efate"{\r
+            ec{"Efate"}\r
+        }\r
+        "Pacific:Enderbury"{\r
+            ec{"Enderberi"}\r
+        }\r
+        "Pacific:Fakaofo"{\r
+            ec{"Fakaofo"}\r
+        }\r
+        "Pacific:Fiji"{\r
+            ec{"Fiji"}\r
+        }\r
+        "Pacific:Funafuti"{\r
+            ec{"Funafuti"}\r
+        }\r
+        "Pacific:Galapagos"{\r
+            ec{"Galapagos adalary"}\r
+        }\r
+        "Pacific:Gambier"{\r
+            ec{"Gambýe"}\r
+        }\r
+        "Pacific:Guadalcanal"{\r
+            ec{"Gwadalkanal"}\r
+        }\r
+        "Pacific:Guam"{\r
+            ec{"Guam"}\r
+        }\r
+        "Pacific:Honolulu"{\r
+            ec{"Gonolulu"}\r
+        }\r
+        "Pacific:Johnston"{\r
+            ec{"Jonston"}\r
+        }\r
+        "Pacific:Kiritimati"{\r
+            ec{"Kiritimati"}\r
+        }\r
+        "Pacific:Kosrae"{\r
+            ec{"Kosraýe"}\r
+        }\r
+        "Pacific:Kwajalein"{\r
+            ec{"Kwajaleýn"}\r
+        }\r
+        "Pacific:Majuro"{\r
+            ec{"Majuro"}\r
+        }\r
+        "Pacific:Marquesas"{\r
+            ec{"Markiz adalary"}\r
+        }\r
+        "Pacific:Midway"{\r
+            ec{"Midueý"}\r
+        }\r
+        "Pacific:Nauru"{\r
+            ec{"Nauru"}\r
+        }\r
+        "Pacific:Niue"{\r
+            ec{"Niue"}\r
+        }\r
+        "Pacific:Norfolk"{\r
+            ec{"Norfolk"}\r
+        }\r
+        "Pacific:Noumea"{\r
+            ec{"Numea"}\r
+        }\r
+        "Pacific:Pago_Pago"{\r
+            ec{"Pago-Pago"}\r
+        }\r
+        "Pacific:Palau"{\r
+            ec{"Palau"}\r
+        }\r
+        "Pacific:Pitcairn"{\r
+            ec{"Pitkern"}\r
+        }\r
+        "Pacific:Ponape"{\r
+            ec{"Ponape"}\r
+        }\r
+        "Pacific:Port_Moresby"{\r
+            ec{"Port-Morsbi"}\r
+        }\r
+        "Pacific:Rarotonga"{\r
+            ec{"Rarotonga"}\r
+        }\r
+        "Pacific:Saipan"{\r
+            ec{"Saýpan"}\r
+        }\r
+        "Pacific:Tahiti"{\r
+            ec{"Taiti"}\r
+        }\r
+        "Pacific:Tarawa"{\r
+            ec{"Tarawa"}\r
+        }\r
+        "Pacific:Tongatapu"{\r
+            ec{"Tongatapu"}\r
+        }\r
+        "Pacific:Truk"{\r
+            ec{"Çuuk"}\r
+        }\r
+        "Pacific:Wake"{\r
+            ec{"Weýk"}\r
+        }\r
+        "Pacific:Wallis"{\r
+            ec{"Uollis"}\r
+        }\r
+        "meta:Afghanistan"{\r
+            ls{"Owganystan wagty"}\r
+        }\r
+        "meta:Africa_Central"{\r
+            ls{"Merkezi Afrika wagty"}\r
+        }\r
+        "meta:Africa_Eastern"{\r
+            ls{"Gündogar Afrika wagty"}\r
+        }\r
+        "meta:Africa_Southern"{\r
+            ls{"Günorta Afrika standart wagty"}\r
+        }\r
+        "meta:Africa_Western"{\r
+            ld{"Günbatar Afrika tomusky wagty"}\r
+            lg{"Günbatar Afrika wagty"}\r
+            ls{"Günbatar Afrika standart wagty"}\r
+        }\r
+        "meta:Alaska"{\r
+            ld{"Alýaska tomusky wagty"}\r
+            lg{"Alýaska wagty"}\r
+            ls{"Alýaska standart wagty"}\r
+        }\r
+        "meta:Amazon"{\r
+            ld{"Amazon tomusky wagty"}\r
+            lg{"Amazon wagty"}\r
+            ls{"Amazon standart wagty"}\r
+        }\r
+        "meta:America_Central"{\r
+            ld{"Merkezi Amerika tomusky wagty"}\r
+            lg{"Merkezi Amerika"}\r
+            ls{"Merkezi Amerika standart wagty"}\r
+        }\r
+        "meta:America_Eastern"{\r
+            ld{"Demirgazyk Amerika gündogar tomusky wagty"}\r
+            lg{"Demirgazyk Amerika gündogar wagty"}\r
+            ls{"Demirgazyk Amerika gündogar standart wagty"}\r
+        }\r
+        "meta:America_Mountain"{\r
+            ld{"Demirgazyk Amerika dag tomusky wagty"}\r
+            lg{"Demirgazyk Amerika dag wagty"}\r
+            ls{"Demirgazyk Amerika dag standart wagty"}\r
+        }\r
+        "meta:America_Pacific"{\r
+            ld{"Demirgazyk Amerika Ýuwaş umman tomusky wagty"}\r
+            lg{"Demirgazyk Amerika Ýuwaş umman wagty"}\r
+            ls{"Demirgazyk Amerika Ýuwaş umman standart wagty"}\r
+        }\r
+        "meta:Apia"{\r
+            ld{"Apia tomusky wagty"}\r
+            lg{"Apia wagty"}\r
+            ls{"Apia standart wagty"}\r
+        }\r
+        "meta:Arabian"{\r
+            ld{"Arap ýurtlary tomusky wagty"}\r
+            lg{"Arap ýurtlary wagty"}\r
+            ls{"Arap ýurtlary standart wagty"}\r
+        }\r
+        "meta:Argentina"{\r
+            ld{"Argentina tomusky wagty"}\r
+            lg{"Argentina wagty"}\r
+            ls{"Argentina standart wagty"}\r
+        }\r
+        "meta:Argentina_Western"{\r
+            ld{"Günbatar Argentina tomusky wagty"}\r
+            lg{"Günbatar Argentina wagty"}\r
+            ls{"Günbatar Argentina standart wagty"}\r
+        }\r
+        "meta:Armenia"{\r
+            ld{"Ermenistan tomusky wagty"}\r
+            lg{"Ermenistan wagty"}\r
+            ls{"Ermenistan standart wagty"}\r
+        }\r
+        "meta:Atlantic"{\r
+            ld{"Atlantik tomusky wagty"}\r
+            lg{"Atlantik wagty"}\r
+            ls{"Atlantik standart wagty"}\r
+        }\r
+        "meta:Australia_Central"{\r
+            ld{"Merkezi Awstraliýa tomusky wagty"}\r
+            lg{"Merkezi Awstraliýa wagty"}\r
+            ls{"Merkezi Awstraliýa standart wagty"}\r
+        }\r
+        "meta:Australia_CentralWestern"{\r
+            ld{"Merkezi Awstraliýa günbatar tomusky wagty"}\r
+            lg{"Merkezi Awstraliýa günbatar wagty"}\r
+            ls{"Merkezi Awstraliýa günbatar standart wagty"}\r
+        }\r
+        "meta:Australia_Eastern"{\r
+            ld{"Gündogar Awstraliýa tomusky wagty"}\r
+            lg{"Gündogar Awstraliýa wagty"}\r
+            ls{"Gündogar Awstraliýa standart wagty"}\r
+        }\r
+        "meta:Australia_Western"{\r
+            ld{"Günbatar Awstraliýa tomusky wagty"}\r
+            lg{"Günbatar Awstraliýa wagty"}\r
+            ls{"Günbatar Awstraliýa standart wagty"}\r
+        }\r
+        "meta:Azerbaijan"{\r
+            ld{"Azerbaýjan tomusky wagty"}\r
+            lg{"Azerbaýjan wagty"}\r
+            ls{"Azerbaýjan standart wagty"}\r
+        }\r
+        "meta:Azores"{\r
+            ld{"Azor adalary tomusky wagty"}\r
+            lg{"Azor adalary wagty"}\r
+            ls{"Azor adalary standart wagty"}\r
+        }\r
+        "meta:Bangladesh"{\r
+            ld{"Bangladeş tomusky wagty"}\r
+            lg{"Bangladeş wagty"}\r
+            ls{"Bangladeş standart wagty"}\r
+        }\r
+        "meta:Bhutan"{\r
+            ls{"Butan wagty"}\r
+        }\r
+        "meta:Bolivia"{\r
+            ls{"Boliwiýa wagty"}\r
+        }\r
+        "meta:Brasilia"{\r
+            ld{"Braziliýa tomusky wagty"}\r
+            lg{"Braziliýa wagty"}\r
+            ls{"Braziliýa standart wagty"}\r
+        }\r
+        "meta:Brunei"{\r
+            ls{"Bruneý-Darussalam wagty"}\r
+        }\r
+        "meta:Cape_Verde"{\r
+            ld{"Kabo-Werde tomusky wagty"}\r
+            lg{"Kabo-Werde wagty"}\r
+            ls{"Kabo-Werde standart wagty"}\r
+        }\r
+        "meta:Chamorro"{\r
+            ls{"Çamorro wagty"}\r
+        }\r
+        "meta:Chatham"{\r
+            ld{"Çatem tomusky wagty"}\r
+            lg{"Çatem wagty"}\r
+            ls{"Çatem standart wagty"}\r
+        }\r
+        "meta:Chile"{\r
+            ld{"Çili tomusky wagty"}\r
+            lg{"Çili wagty"}\r
+            ls{"Çili standart wagty"}\r
+        }\r
+        "meta:China"{\r
+            ld{"Hytaý tomusky wagty"}\r
+            lg{"Hytaý wagty"}\r
+            ls{"Hytaý standart wagty"}\r
+        }\r
+        "meta:Choibalsan"{\r
+            ld{"Çoýbalsan tomusky wagt"}\r
+            lg{"Çoýbalsan wagty"}\r
+            ls{"Çoýbalsan standart wagty"}\r
+        }\r
+        "meta:Christmas"{\r
+            ls{"Roždestwo adasy wagty"}\r
+        }\r
+        "meta:Cocos"{\r
+            ls{"Kokos adalary wagty"}\r
+        }\r
+        "meta:Colombia"{\r
+            ld{"Kolumbiýa tomusky wagty"}\r
+            lg{"Kolumbiýa wagty"}\r
+            ls{"Kolumbiýa standart wagty"}\r
+        }\r
+        "meta:Cook"{\r
+            ld{"Kuk adalary tomusky wagty"}\r
+            lg{"Kuk adalary wagty"}\r
+            ls{"Kuk adalary standart wagty"}\r
+        }\r
+        "meta:Cuba"{\r
+            ld{"Kuba tomusky wagty"}\r
+            lg{"Kuba wagty"}\r
+            ls{"Kuba standart wagty"}\r
+        }\r
+        "meta:Davis"{\r
+            ls{"Deýwis wagty"}\r
+        }\r
+        "meta:DumontDUrville"{\r
+            ls{"Dýumon-d-Ýurwil wagty"}\r
+        }\r
+        "meta:East_Timor"{\r
+            ls{"Gündogar Timor wagty"}\r
+        }\r
+        "meta:Easter"{\r
+            ld{"Pasha adasy tomusky wagty"}\r
+            lg{"Pasha adasy wagty"}\r
+            ls{"Pasha adasy standart wagty"}\r
+        }\r
+        "meta:Ecuador"{\r
+            ls{"Ekwador wagty"}\r
+        }\r
+        "meta:Europe_Central"{\r
+            ld{"Merkezi Ýewropa tomusky wagty"}\r
+            lg{"Merkezi Ýewropa wagty"}\r
+            ls{"Merkezi Ýewropa standart wagty"}\r
+        }\r
+        "meta:Europe_Eastern"{\r
+            ld{"Gündogar Ýewropa tomusky wagty"}\r
+            lg{"Gündogar Ýewropa wagty"}\r
+            ls{"Gündogar Ýewropa standart wagty"}\r
+        }\r
+        "meta:Europe_Further_Eastern"{\r
+            ls{"Uzak Gündogar Ýewropa wagty"}\r
+        }\r
+        "meta:Europe_Western"{\r
+            ld{"Günbatar Ýewropa tomusky wagty"}\r
+            lg{"Günbatar Ýewropa wagty"}\r
+            ls{"Günbatar Ýewropa standart wagty"}\r
+        }\r
+        "meta:Falkland"{\r
+            ld{"Folklend adalary tomusky wagty"}\r
+            lg{"Folklend adalary wagty"}\r
+            ls{"Folklend adalary standart wagty"}\r
+        }\r
+        "meta:Fiji"{\r
+            ld{"Fiji tomusky wagty"}\r
+            lg{"Fiji wagty"}\r
+            ls{"Fiji standart wagty"}\r
+        }\r
+        "meta:French_Guiana"{\r
+            ls{"Fransuz Gwianasy wagty"}\r
+        }\r
+        "meta:French_Southern"{\r
+            ls{"Fransuz Günorta we Antarktika ýerleri wagty"}\r
+        }\r
+        "meta:GMT"{\r
+            ls{"Grinwiç boýunça orta wagt"}\r
+        }\r
+        "meta:Galapagos"{\r
+            ls{"Galapagos adalary wagty"}\r
+        }\r
+        "meta:Gambier"{\r
+            ls{"Gambýe wagty"}\r
+        }\r
+        "meta:Georgia"{\r
+            ld{"Gruziýa tomusky wagty"}\r
+            lg{"Gruziýa wagty"}\r
+            ls{"Gruziýa standart wagty"}\r
+        }\r
+        "meta:Gilbert_Islands"{\r
+            ls{"Gilberta adalary wagty"}\r
+        }\r
+        "meta:Greenland_Eastern"{\r
+            ld{"Gündogar Grenlandiýa tomusky wagty"}\r
+            lg{"Gündogar Grenlandiýa wagty"}\r
+            ls{"Gündogar Grenlandiýa standart wagty"}\r
+        }\r
+        "meta:Greenland_Western"{\r
+            ld{"Günbatar Grenlandiýa tomusky wagty"}\r
+            lg{"Günbatar Grenlandiýa wagty"}\r
+            ls{"Günbatar Grenlandiýa standart wagty"}\r
+        }\r
+        "meta:Gulf"{\r
+            ls{"Pars aýlagy standart wagty"}\r
+        }\r
+        "meta:Guyana"{\r
+            ls{"Gaýana wagty"}\r
+        }\r
+        "meta:Hawaii_Aleutian"{\r
+            ld{"Gawaý-Aleut tomusky wagty"}\r
+            lg{"Gawaý-Aleut wagty"}\r
+            ls{"Gawaý-Aleut standart wagty"}\r
+        }\r
+        "meta:Hong_Kong"{\r
+            ld{"Gonkong tomusky wagty"}\r
+            lg{"Gonkong wagty"}\r
+            ls{"Gonkong standart wagty"}\r
+        }\r
+        "meta:Hovd"{\r
+            ld{"Howd tomusky wagty"}\r
+            lg{"Howd wagty"}\r
+            ls{"Howd standart wagty"}\r
+        }\r
+        "meta:India"{\r
+            ls{"Hindistan standart wagty"}\r
+        }\r
+        "meta:Indian_Ocean"{\r
+            ls{"Hindi ummany wagty"}\r
+        }\r
+        "meta:Indochina"{\r
+            ls{"Hindihytaý wagty"}\r
+        }\r
+        "meta:Indonesia_Central"{\r
+            ls{"Merkezi Indoneziýa wagty"}\r
+        }\r
+        "meta:Indonesia_Eastern"{\r
+            ls{"Gündogar Indoneziýa wagty"}\r
+        }\r
+        "meta:Indonesia_Western"{\r
+            ls{"Günbatar Indoneziýa wagty"}\r
+        }\r
+        "meta:Iran"{\r
+            ld{"Eýran tomusky wagty"}\r
+            lg{"Eýran wagty"}\r
+            ls{"Eýran standart wagty"}\r
+        }\r
+        "meta:Irkutsk"{\r
+            ld{"Irkutsk tomusky wagty"}\r
+            lg{"Irkutsk wagty"}\r
+            ls{"Irkutsk standart wagty"}\r
+        }\r
+        "meta:Israel"{\r
+            ld{"Ysraýyl tomusky wagty"}\r
+            lg{"Ysraýyl wagty"}\r
+            ls{"Ysraýyl standart wagty"}\r
+        }\r
+        "meta:Japan"{\r
+            ld{"Ýaponiýa tomusky wagty"}\r
+            lg{"Ýaponiýa wagty"}\r
+            ls{"Ýaponiýa standart wagty"}\r
+        }\r
+        "meta:Kazakhstan_Eastern"{\r
+            ls{"Gündogar Gazagystan wagty"}\r
+        }\r
+        "meta:Kazakhstan_Western"{\r
+            ls{"Günbatar Gazagystan wagty"}\r
+        }\r
+        "meta:Korea"{\r
+            ld{"Koreýa tomusky wagty"}\r
+            lg{"Koreýa wagty"}\r
+            ls{"Koreýa standart wagty"}\r
+        }\r
+        "meta:Kosrae"{\r
+            ls{"Kosraýe wagty"}\r
+        }\r
+        "meta:Krasnoyarsk"{\r
+            ld{"Krasnoýarsk tomusky wagty"}\r
+            lg{"Krasnoýarsk wagty"}\r
+            ls{"Krasnoýarsk standart wagty"}\r
+        }\r
+        "meta:Kyrgystan"{\r
+            ls{"Gyrgyzystan wagty"}\r
+        }\r
+        "meta:Line_Islands"{\r
+            ls{"Laýn adalary wagty"}\r
+        }\r
+        "meta:Lord_Howe"{\r
+            ld{"Lord-Hau tomusky wagty"}\r
+            lg{"Lord-Hau wagty"}\r
+            ls{"Lord-Hau standart wagty"}\r
+        }\r
+        "meta:Macquarie"{\r
+            ls{"Makkuori adasy wagty"}\r
+        }\r
+        "meta:Magadan"{\r
+            ld{"Magadan tomusky wagty"}\r
+            lg{"Magadan wagty"}\r
+            ls{"Magadan standart wagty"}\r
+        }\r
+        "meta:Malaysia"{\r
+            ls{"Malaýziýa wagty"}\r
+        }\r
+        "meta:Maldives"{\r
+            ls{"Maldiwler wagty"}\r
+        }\r
+        "meta:Marquesas"{\r
+            ls{"Markiz adalary wagty"}\r
+        }\r
+        "meta:Marshall_Islands"{\r
+            ls{"Marşall adalary wagty"}\r
+        }\r
+        "meta:Mauritius"{\r
+            ld{"Mawrikiý tomusky wagty"}\r
+            lg{"Mawrikiý wagty"}\r
+            ls{"Mawrikiý standart wagty"}\r
+        }\r
+        "meta:Mawson"{\r
+            ls{"Mouson wagty"}\r
+        }\r
+        "meta:Mexico_Northwest"{\r
+            ld{"Demirgazyk-günbatar Meksika tomusky wagty"}\r
+            lg{"Demirgazyk-günbatar Meksika wagty"}\r
+            ls{"Demirgazyk-günbatar Meksika standart wagty"}\r
+        }\r
+        "meta:Mexico_Pacific"{\r
+            ld{"Meksikan Ýuwaş umman tomusky wagty"}\r
+            lg{"Meksikan Ýuwaş umman wagty"}\r
+            ls{"Meksikan Ýuwaş umman standart wagty"}\r
+        }\r
+        "meta:Mongolia"{\r
+            ld{"Ulan-Bator tomusky wagty"}\r
+            lg{"Ulan-Bator wagty"}\r
+            ls{"Ulan-Bator standart wagty"}\r
+        }\r
+        "meta:Moscow"{\r
+            ld{"Moskwa tomusky wagty"}\r
+            lg{"Moskwa wagty"}\r
+            ls{"Moskwa standart wagty"}\r
+        }\r
+        "meta:Myanmar"{\r
+            ls{"Mýanma wagty"}\r
+        }\r
+        "meta:Nauru"{\r
+            ls{"Nauru wagty"}\r
+        }\r
+        "meta:Nepal"{\r
+            ls{"Nepal wagty"}\r
+        }\r
+        "meta:New_Caledonia"{\r
+            ld{"Täze Kaledoniýa tomusky wagty"}\r
+            lg{"Täze Kaledoniýa wagty"}\r
+            ls{"Täze Kaledoniýa standart wagty"}\r
+        }\r
+        "meta:New_Zealand"{\r
+            ld{"Täze Zelandiýa tomusky wagty"}\r
+            lg{"Täze Zelandiýa wagty"}\r
+            ls{"Täze Zelandiýa standart wagty"}\r
+        }\r
+        "meta:Newfoundland"{\r
+            ld{"Nýufaundlend tomusky wagty"}\r
+            lg{"Nýufaundlend wagty"}\r
+            ls{"Nýufaundlend standart wagty"}\r
+        }\r
+        "meta:Niue"{\r
+            ls{"Niue wagty"}\r
+        }\r
+        "meta:Norfolk"{\r
+            ls{"Norfolk adasy wagty"}\r
+        }\r
+        "meta:Noronha"{\r
+            ld{"Fernandu-di-Noronýa tomusky wagty"}\r
+            lg{"Fernandu-di-Noronýa wagty"}\r
+            ls{"Fernandu-di-Noronýa standart wagty"}\r
+        }\r
+        "meta:Novosibirsk"{\r
+            ld{"Nowosibisk tomusky wagty"}\r
+            lg{"Nowosibirsk wagty"}\r
+            ls{"Nowosibirsk standart wagty"}\r
+        }\r
+        "meta:Omsk"{\r
+            ld{"Omsk tomusky wagty"}\r
+            lg{"Omsk wagty"}\r
+            ls{"Omsk standart wagty"}\r
+        }\r
+        "meta:Pakistan"{\r
+            ld{"Pakistan tomusky wagty"}\r
+            lg{"Pakistan wagty"}\r
+            ls{"Pakistan standart wagty"}\r
+        }\r
+        "meta:Palau"{\r
+            ls{"Palau wagty"}\r
+        }\r
+        "meta:Papua_New_Guinea"{\r
+            ls{"Papua - Täze Gwineýa wagty"}\r
+        }\r
+        "meta:Paraguay"{\r
+            ld{"Paragwaý tomusky wagty"}\r
+            lg{"Paragwaý wagty"}\r
+            ls{"Paragwaý standart wagty"}\r
+        }\r
+        "meta:Peru"{\r
+            ld{"Peru tomusky wagty"}\r
+            lg{"Peru wagty"}\r
+            ls{"Peru standart wagty"}\r
+        }\r
+        "meta:Philippines"{\r
+            ld{"Filippinler tomusky wagty"}\r
+            lg{"Filippinler wagty"}\r
+            ls{"Filippinler standart wagty"}\r
+        }\r
+        "meta:Phoenix_Islands"{\r
+            ls{"Feniks adalary wagty"}\r
+        }\r
+        "meta:Pierre_Miquelon"{\r
+            ld{"Sen-Pýer we Mikelon tomusky wagty"}\r
+            lg{"Sen-Pýer we Mikelon"}\r
+            ls{"Sen-Pýer we Mikelon standart wagty"}\r
+        }\r
+        "meta:Pitcairn"{\r
+            ls{"Pitkern wagty"}\r
+        }\r
+        "meta:Ponape"{\r
+            ls{"Ponape wagty"}\r
+        }\r
+        "meta:Pyongyang"{\r
+            ls{"Phenýan wagty"}\r
+        }\r
+        "meta:Reunion"{\r
+            ls{"Reýunýon wagty"}\r
+        }\r
+        "meta:Rothera"{\r
+            ls{"Rotera wagty"}\r
+        }\r
+        "meta:Sakhalin"{\r
+            ld{"Sahalin tomusky wagty"}\r
+            lg{"Sahalin wagty"}\r
+            ls{"Sahalin standart wagty"}\r
+        }\r
+        "meta:Samoa"{\r
+            ld{"Samoa tomusky wagty"}\r
+            lg{"Samoa wagty"}\r
+            ls{"Samoa standart wagty"}\r
+        }\r
+        "meta:Seychelles"{\r
+            ls{"Seýşel adalary wagty"}\r
+        }\r
+        "meta:Singapore"{\r
+            ls{"Singapur wagty"}\r
+        }\r
+        "meta:Solomon"{\r
+            ls{"Solomon adalary wagty"}\r
+        }\r
+        "meta:South_Georgia"{\r
+            ls{"Günorta Georgiýa wagty"}\r
+        }\r
+        "meta:Suriname"{\r
+            ls{"Surinam wagty"}\r
+        }\r
+        "meta:Syowa"{\r
+            ls{"Sýowa wagty"}\r
+        }\r
+        "meta:Tahiti"{\r
+            ls{"Taiti wagty"}\r
+        }\r
+        "meta:Taipei"{\r
+            ld{"Taýbeý tomusky wagty"}\r
+            lg{"Taýbeý wagty"}\r
+            ls{"Taýbeý standart wagty"}\r
+        }\r
+        "meta:Tajikistan"{\r
+            ls{"Täjigistan wagty"}\r
+        }\r
+        "meta:Tokelau"{\r
+            ls{"Tokelau wagty"}\r
+        }\r
+        "meta:Tonga"{\r
+            ld{"Tonga tomusky wagty"}\r
+            lg{"Tonga wagty"}\r
+            ls{"Tonga standart wagty"}\r
+        }\r
+        "meta:Truk"{\r
+            ls{"Çuuk wagty"}\r
+        }\r
+        "meta:Turkmenistan"{\r
+            ld{"Türkmenistan tomusky wagty"}\r
+            lg{"Türkmenistan wagty"}\r
+            ls{"Türkmenistan standart wagty"}\r
+        }\r
+        "meta:Tuvalu"{\r
+            ls{"Tuwalu wagty"}\r
+        }\r
+        "meta:Uruguay"{\r
+            ld{"Urugwaý tomusky wagty"}\r
+            lg{"Urugwaý wagty"}\r
+            ls{"Urugwaý standart wagty"}\r
+        }\r
+        "meta:Uzbekistan"{\r
+            ld{"Özbegistan tomusky wagty"}\r
+            lg{"Özbegistan wagty"}\r
+            ls{"Özbegistan standart wagty"}\r
+        }\r
+        "meta:Vanuatu"{\r
+            ld{"Wanuatu tomusky wagty"}\r
+            lg{"Wanuatu wagty"}\r
+            ls{"Wanuatu standart wagty"}\r
+        }\r
+        "meta:Venezuela"{\r
+            ls{"Wenesuela wagty"}\r
+        }\r
+        "meta:Vladivostok"{\r
+            ld{"Wladiwostok tomusky wagty"}\r
+            lg{"Wladiwostok wagty"}\r
+            ls{"Wladiwostok standart wagty"}\r
+        }\r
+        "meta:Volgograd"{\r
+            ld{"Wolgograd tomusky wagty"}\r
+            lg{"Wolgograd wagty"}\r
+            ls{"Wolgograd standart wagty"}\r
+        }\r
+        "meta:Vostok"{\r
+            ls{"Wostok wagty"}\r
+        }\r
+        "meta:Wake"{\r
+            ls{"Weýk adasy wagty"}\r
+        }\r
+        "meta:Wallis"{\r
+            ls{"Uollis we Futuna wagty"}\r
+        }\r
+        "meta:Yakutsk"{\r
+            ld{"Ýakutsk tomusky wagty"}\r
+            lg{"Ýakutsk wagty"}\r
+            ls{"Ýakutsk standart wagty"}\r
+        }\r
+        "meta:Yekaterinburg"{\r
+            ld{"Ýekaterinburg tomusky wagty"}\r
+            lg{"Ýekaterinburg wagty"}\r
+            ls{"Ýekaterinburg standart wagty"}\r
+        }\r
+        fallbackFormat{"{1} ({0})"}\r
+        gmtFormat{"GMT{0}"}\r
+        gmtZeroFormat{"GMT"}\r
+        hourFormat{"+HH:mm;-HH:mm"}\r
+        regionFormat{"{0} wagty"}\r
+        regionFormatDaylight{"{0} tomusky wagty"}\r
+        regionFormatStandard{"{0} standart wagty"}\r
+    }\r
+}\r
index ecd6b28..d491228 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 to{\r
-    Version{"2.1.38.39"}\r
+    Version{"2.1.44.88"}\r
     zoneStrings{\r
         "Africa:Abidjan"{\r
             ec{"Abidjan"}\r
index c512441..0ab1843 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 tr{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.91"}\r
     zoneStrings{\r
         "Africa:Abidjan"{\r
             ec{"Abidjan"}\r
index 93ad80c..a9b4ee8 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 tt{\r
-    Version{"2.1.38.72"}\r
+    Version{"2.1.44.88"}\r
     zoneStrings{\r
         "Etc:UTC"{\r
             ls{"Бөтендөнья килештерелгән вакыты"}\r
index c66e03a..a74f30e 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 ug{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.88"}\r
     zoneStrings{\r
         "Africa:Sao_Tome"{\r
             ec{"سان-تومې"}\r
index 7ac8fd0..93a99df 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 uk{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.65"}\r
     zoneStrings{\r
         "Africa:Abidjan"{\r
             ec{"Абіджан"}\r
@@ -16,7 +16,7 @@ uk{
             ec{"Алжир"}\r
         }\r
         "Africa:Asmera"{\r
-            ec{"Ð\90Ñ\81мара"}\r
+            ec{"Ð\90Ñ\81мера"}\r
         }\r
         "Africa:Bamako"{\r
             ec{"Бамако"}\r
@@ -31,7 +31,7 @@ uk{
             ec{"Бісау"}\r
         }\r
         "Africa:Blantyre"{\r
-            ec{"Ð\91ланÑ\82ир"}\r
+            ec{"Ð\91ланÑ\82айр"}\r
         }\r
         "Africa:Brazzaville"{\r
             ec{"Браззавіль"}\r
@@ -217,7 +217,7 @@ uk{
             ec{"Беліз"}\r
         }\r
         "America:Blanc-Sablon"{\r
-            ec{"Бланк-Саблон"}\r
+            ec{"Блан-Саблон"}\r
         }\r
         "America:Boa_Vista"{\r
             ec{"Боа-Віста"}\r
@@ -250,7 +250,7 @@ uk{
             ec{"Каєнна"}\r
         }\r
         "America:Cayman"{\r
-            ec{"Ð\9aаймановÑ\96 Ð¾строви"}\r
+            ec{"Ð\9aаймановÑ\96 Ð\9eстрови"}\r
         }\r
         "America:Chicago"{\r
             ec{"Чікаґо"}\r
@@ -454,7 +454,7 @@ uk{
             ec{"Монтевідео"}\r
         }\r
         "America:Montserrat"{\r
-            ec{"Монсеррат"}\r
+            ec{"Ð\9cонÑ\82Ñ\81еÑ\80Ñ\80аÑ\82"}\r
         }\r
         "America:Nassau"{\r
             ec{"Насау"}\r
@@ -1281,7 +1281,7 @@ uk{
             ec{"Тонґатапу"}\r
         }\r
         "Pacific:Truk"{\r
-            ec{"ТÑ\80ук"}\r
+            ec{"ЧÑ\83ук"}\r
         }\r
         "Pacific:Wake"{\r
             ec{"Вейк"}\r
@@ -1818,7 +1818,7 @@ uk{
             ls{"за часом у Сінґапурі"}\r
         }\r
         "meta:Solomon"{\r
-            ls{"за Ñ\87аÑ\81ом Ð½Ð° Ð¡Ð¾Ð»Ð¾Ð¼Ð¾Ð½Ð¾Ð²Ð¸Ñ\85 Ð¾стровах"}\r
+            ls{"за Ñ\87аÑ\81ом Ð½Ð° Ð¡Ð¾Ð»Ð¾Ð¼Ð¾Ð½Ð¾Ð²Ð¸Ñ\85 Ð\9eстровах"}\r
         }\r
         "meta:South_Georgia"{\r
             ls{"за часом на острові Південна Джорджія"}\r
index 118f373..54c7743 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 ur{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.3"}\r
     zoneStrings{\r
         "Africa:Abidjan"{\r
             ec{"عابدجان"}\r
@@ -1019,7 +1019,7 @@ ur{
             ec{"جرسی"}\r
         }\r
         "Europe:Kaliningrad"{\r
-            ec{"كالينينغراد"}\r
+            ec{"کالينينغراد"}\r
         }\r
         "Europe:Kiev"{\r
             ec{"کیوو"}\r
@@ -1898,7 +1898,7 @@ ur{
         gmtZeroFormat{"GMT"}\r
         hourFormat{"+HH:mm;-HH:mm"}\r
         regionFormat{"{0} وقت"}\r
-        regionFormatDaylight{"{0} (+1)"}\r
-        regionFormatStandard{"{0} (+0)"}\r
+        regionFormatDaylight{"{0} ڈے لائٹ ٹائم"}\r
+        regionFormatStandard{"{0} اسٹینڈرڈ ٹائم"}\r
     }\r
 }\r
index 32e10d5..a389a20 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 ur_IN{\r
-    Version{"2.1.38.39"}\r
+    Version{"2.1.43.65"}\r
     zoneStrings{\r
         "Africa:Accra"{\r
             ec{"اکرا"}\r
index 8a95752..e41504e 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 uz{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.88"}\r
     zoneStrings{\r
         "Africa:Abidjan"{\r
             ec{"Abidjan"}\r
index 57d5c30..b1a968f 100644 (file)
@@ -2,7 +2,7 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 uz_Cyrl{\r
     %%Parent{"root"}\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.2"}\r
     zoneStrings{\r
         "Africa:Asmera"{\r
             ec{"Asmara"}\r
index b2ac0ef..3f70804 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 vi{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.65"}\r
     zoneStrings{\r
         "Africa:Abidjan"{\r
             ec{"Abidjan"}\r
index 1c0c861..9966cc3 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 wo{\r
-    Version{"2.1.38.71"}\r
+    Version{"2.1.43.94"}\r
     zoneStrings{\r
         "Africa:Dakar"{\r
             ec{"Dakar"}\r
diff --git a/source/data/zone/xh.txt b/source/data/zone/xh.txt
new file mode 100644 (file)
index 0000000..64c4b4d
--- /dev/null
@@ -0,0 +1,5 @@
+// © 2016 and later: Unicode, Inc. and others.\r
+// License & terms of use: http://www.unicode.org/copyright.html#License\r
+xh{\r
+    Version{"2.1.44.88"}\r
+}\r
index eb0f317..31760f0 100644 (file)
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 yo{\r
-    Version{"2.1.39.11"}\r
+    Version{"2.1.44.88"}\r
 }\r
index 2a491b0..11a4b81 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 yue{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.91"}\r
     zoneStrings{\r
         "Africa:Abidjan"{\r
             ec{"阿比讓"}\r
index b639892..5daf40e 100644 (file)
@@ -2,7 +2,7 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 yue_Hans{\r
     %%Parent{"root"}\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.91"}\r
     zoneStrings{\r
         "Africa:Abidjan"{\r
             ec{"阿比让"}\r
index 1affd80..470d4c0 100644 (file)
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 zgh{\r
-    Version{"2.1.39.11"}\r
+    Version{"2.1.43.94"}\r
 }\r
index ceb2cc1..6880652 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 zh{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.76"}\r
     zoneStrings{\r
         "Africa:Abidjan"{\r
             ec{"阿比让"}\r
index fae5a58..be6584c 100644 (file)
@@ -2,7 +2,7 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 zh_Hant{\r
     %%Parent{"root"}\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.91"}\r
     zoneStrings{\r
         "Africa:Abidjan"{\r
             ec{"阿比讓"}\r
index f365060..4e30709 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 zh_Hant_HK{\r
-    Version{"2.1.39.11"}\r
+    Version{"2.1.43.65"}\r
     zoneStrings{\r
         "Africa:Abidjan"{\r
             ec{"阿比贊"}\r
@@ -106,7 +106,7 @@ zh_Hant_HK{
             ec{"卡宴"}\r
         }\r
         "America:Chihuahua"{\r
-            ec{"芝華華"}\r
+            ec{"芝娃娃"}\r
         }\r
         "America:Cordoba"{\r
             ec{"科爾多瓦"}\r
@@ -174,9 +174,6 @@ zh_Hant_HK{
         "America:Inuvik"{\r
             ec{"伊努維克"}\r
         }\r
-        "America:Kentucky:Monticello"{\r
-            ec{"肯塔基州蒙蒂塞洛"}\r
-        }\r
         "America:Louisville"{\r
             ec{"路易維爾"}\r
         }\r
@@ -358,7 +355,7 @@ zh_Hant_HK{
             ec{"葉卡捷琳堡"}\r
         }\r
         "Asia:Yerevan"{\r
-            ec{"耶烈萬"}\r
+            ec{"埃里温"}\r
         }\r
         "Atlantic:Canary"{\r
             ec{"加那利"}\r
@@ -607,6 +604,10 @@ zh_Hant_HK{
             lg{"費爾南多迪諾羅尼亞時間"}\r
             ls{"費爾南多迪諾羅尼亞標準時間"}\r
         }\r
+        "meta:Omsk"{\r
+            ld{"鄂木斯克夏令時間"}\r
+            ls{"鄂木斯克標準時間"}\r
+        }\r
         "meta:Papua_New_Guinea"{\r
             ls{"巴布亞新畿內亞時間"}\r
         }\r
index 43c2f1f..953afbf 100644 (file)
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 zh_Hant_MO{\r
     %%Parent{"zh_Hant_HK"}\r
-    Version{"2.1.38.39"}\r
+    Version{"2.1.43.65"}\r
 }\r
index dd4a96c..dd20bb1 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 zu{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.65"}\r
     zoneStrings{\r
         "Africa:Abidjan"{\r
             ec{"i-Abidjan"}\r
index 7d4e21b..fb5eb14 100644 (file)
@@ -81,6 +81,7 @@ collationsets.o \
 collationcompare.o collationfastlatin.o collationkeys.o rulebasedcollator.o collationroot.o \
 collationrootelements.o collationdatabuilder.o \
 collationweights.o collationruleparser.o collationbuilder.o collationfastlatinbuilder.o \
+listformatter.o ulistformatter.o \
 strmatch.o usearch.o search.o stsearch.o \
 translit.o utrans.o esctrn.o unesctrn.o funcrepl.o strrepl.o tridpars.o \
 cpdtrans.o rbt.o rbt_data.o rbt_pars.o rbt_rule.o rbt_set.o \
@@ -110,7 +111,8 @@ double-conversion-fast-dtoa.o double-conversion-strtod.o \
 numparse_stringsegment.o numparse_parsednumber.o numparse_impl.o \
 numparse_symbols.o numparse_decimal.o numparse_scientific.o numparse_currency.o \
 numparse_affixes.o numparse_compositions.o numparse_validators.o \
-
+numrange_fluent.o numrange_impl.o \
+erarules.o
 
 ## Header files to install
 HEADERS = $(srcdir)/unicode/*.h
index d36a2cc..3950d1a 100644 (file)
@@ -511,8 +511,8 @@ BucketList *AlphabeticIndex::createBucketList(UErrorCode &errorCode) const {
                                           ces, errorCode) &&
                 current.charAt(current.length() - 1) != 0xFFFF /* !current.endsWith("\uffff") */) {
             // "AE-ligature" or "Sch" etc.
-            for (int32_t i = bucketList->size() - 2;; --i) {
-                Bucket *singleBucket = getBucket(*bucketList, i);
+            for (int32_t j = bucketList->size() - 2;; --j) {
+                Bucket *singleBucket = getBucket(*bucketList, j);
                 if (singleBucket->labelType_ != U_ALPHAINDEX_NORMAL) {
                     // There is no single-character bucket since the last
                     // underflow or inflow label.
@@ -608,8 +608,8 @@ BucketList *AlphabeticIndex::createBucketList(UErrorCode &errorCode) const {
     }
     // Do not call publicBucketList->setDeleter():
     // This vector shares its objects with the bucketList.
-    for (int32_t i = 0; i < bucketList->size(); ++i) {
-        bucket = getBucket(*bucketList, i);
+    for (int32_t j = 0; j < bucketList->size(); ++j) {
+        bucket = getBucket(*bucketList, j);
         if (bucket->displayBucket_ == NULL) {
             publicBucketList->addElement(bucket, errorCode);
         }
index d06469e..6e382b8 100644 (file)
@@ -391,12 +391,12 @@ void AnyTransliterator::registerIDs() {
                 UnicodeString id;
                 TransliteratorIDParser::STVtoID(UnicodeString(TRUE, ANY, 3), target, variant, id);
                 ec = U_ZERO_ERROR;
-                AnyTransliterator* t = new AnyTransliterator(id, target, variant,
+                AnyTransliterator* tl = new AnyTransliterator(id, target, variant,
                                                              targetScript, ec);
                 if (U_FAILURE(ec)) {
-                    delete t;
+                    delete tl;
                 } else {
-                    Transliterator::_registerInstance(t);
+                    Transliterator::_registerInstance(tl);
                     Transliterator::_registerSpecialInverse(target, UnicodeString(TRUE, NULL_ID, 4), FALSE);
                 }
             }
index 526a5a7..7a2a6ee 100644 (file)
@@ -3797,7 +3797,7 @@ Calendar::setWeekData(const Locale& desiredLocale, const char *type, UErrorCode&
         Locale max = Locale::createFromName(maxLocaleID);
         useLocale = Locale(max.getLanguage(),max.getCountry());
     } else {
-        useLocale = Locale(desiredLocale);
+        useLocale = desiredLocale;
     }
 
     /* The code here is somewhat of a hack, since week data and weekend data aren't really tied to
index 25c8745..d9c6b46 100644 (file)
@@ -448,6 +448,13 @@ Collator* U_EXPORT2 Collator::createInstance(const Locale& desiredLocale,
 #endif
     {
         coll = makeInstance(desiredLocale, status);
+        // Either returns NULL with U_FAILURE(status), or non-NULL with U_SUCCESS(status)
+    }
+    // The use of *coll in setAttributesFromKeywords can cause the NULL check to be
+    // optimized out of the delete even though setAttributesFromKeywords returns
+    // immediately if U_FAILURE(status), so we add a check here.
+    if (U_FAILURE(status)) {
+        return NULL;
     }
     setAttributesFromKeywords(desiredLocale, *coll, status);
     if (U_FAILURE(status)) {
@@ -986,8 +993,8 @@ Collator::internalCompareUTF8(const char *left, int32_t leftLength,
         return UCOL_EQUAL;
     }
     return compareUTF8(
-            StringPiece(left, (leftLength < 0) ? uprv_strlen(left) : leftLength),
-            StringPiece(right, (rightLength < 0) ? uprv_strlen(right) : rightLength),
+            StringPiece(left, (leftLength < 0) ? static_cast<int32_t>(uprv_strlen(left)) : leftLength),
+            StringPiece(right, (rightLength < 0) ? static_cast<int32_t>(uprv_strlen(right)) : rightLength),
             errorCode);
 }
 
index 4b9e6b5..b5c322f 100644 (file)
@@ -403,13 +403,13 @@ CollationKeys::writeSortKeyUpToQuaternary(CollationIterator &iter,
                     uint8_t *secs = secondaries.data();
                     int32_t last = secondaries.length() - 1;
                     if(secSegmentStart < last) {
-                        uint8_t *p = secs + secSegmentStart;
-                        uint8_t *q = secs + last;
+                        uint8_t *q = secs + secSegmentStart;
+                        uint8_t *r = secs + last;
                         do {
-                            uint8_t b = *p;
-                            *p++ = *q;
-                            *q-- = b;
-                        } while(p < q);
+                            uint8_t b = *q;
+                            *q++ = *r;
+                            *r-- = b;
+                        } while(q < r);
                     }
                     secondaries.appendByte(p == Collation::NO_CE_PRIMARY ?
                         Collation::LEVEL_SEPARATOR_BYTE : Collation::MERGE_SEPARATOR_BYTE);
index d98f18a..5579ba8 100644 (file)
@@ -166,7 +166,7 @@ int32_t CharsetRecog_mbcs::match_mbcs(InputText *det, const uint16_t commonChars
                 doubleByteCharCount++;
 
                 if (commonChars != 0) {
-                    if (binarySearch(commonChars, commonCharsLen, iter.charValue) >= 0){
+                    if (binarySearch(commonChars, commonCharsLen, static_cast<uint16_t>(iter.charValue)) >= 0){
                         commonCharCount += 1;
                     }
                 }
index a274d5e..af9c837 100644 (file)
@@ -17,7 +17,6 @@
 #include <iostream>
 #endif
 
-
 #include "unicode/locid.h"
 #include "unicode/plurrule.h"
 #include "unicode/strenum.h"
@@ -30,7 +29,6 @@
 
 U_NAMESPACE_BEGIN
 
-
 static const UChar gNumberPatternSeparator = 0x3B; // ;
 
 U_CDECL_BEGIN
@@ -65,66 +63,86 @@ static const char gDecimalFormatTag[]="decimalFormat";
 static const char gCurrUnitPtnTag[]="CurrencyUnitPatterns";
 
 CurrencyPluralInfo::CurrencyPluralInfo(UErrorCode& status)
-:   fPluralCountToCurrencyUnitPattern(NULL),
-    fPluralRules(NULL),
-    fLocale(NULL) {
+:   fPluralCountToCurrencyUnitPattern(nullptr),
+    fPluralRules(nullptr),
+    fLocale(nullptr),
+    fInternalStatus(U_ZERO_ERROR) {
     initialize(Locale::getDefault(), status);
 }
 
 CurrencyPluralInfo::CurrencyPluralInfo(const Locale& locale, UErrorCode& status)
-:   fPluralCountToCurrencyUnitPattern(NULL),
-    fPluralRules(NULL),
-    fLocale(NULL) {
+:   fPluralCountToCurrencyUnitPattern(nullptr),
+    fPluralRules(nullptr),
+    fLocale(nullptr),
+    fInternalStatus(U_ZERO_ERROR) {
     initialize(locale, status);
 }
 
 CurrencyPluralInfo::CurrencyPluralInfo(const CurrencyPluralInfo& info) 
 :   UObject(info),
-    fPluralCountToCurrencyUnitPattern(NULL),
-    fPluralRules(NULL),
-    fLocale(NULL) {
+    fPluralCountToCurrencyUnitPattern(nullptr),
+    fPluralRules(nullptr),
+    fLocale(nullptr),
+    fInternalStatus(U_ZERO_ERROR) {
     *this = info;
 }
 
-
 CurrencyPluralInfo&
 CurrencyPluralInfo::operator=(const CurrencyPluralInfo& info) {
     if (this == &info) {
         return *this;
     }
 
+    fInternalStatus = info.fInternalStatus;
+    if (U_FAILURE(fInternalStatus)) {
+        // bail out early if the object we were copying from was already 'invalid'.
+        return *this;
+    }
+
     deleteHash(fPluralCountToCurrencyUnitPattern);
-    UErrorCode status = U_ZERO_ERROR;
-    fPluralCountToCurrencyUnitPattern = initHash(status);
+    fPluralCountToCurrencyUnitPattern = initHash(fInternalStatus);
     copyHash(info.fPluralCountToCurrencyUnitPattern, 
-             fPluralCountToCurrencyUnitPattern, status);
-    if ( U_FAILURE(status) ) {
+             fPluralCountToCurrencyUnitPattern, fInternalStatus);
+    if ( U_FAILURE(fInternalStatus) ) {
         return *this;
     }
 
     delete fPluralRules;
+    fPluralRules = nullptr;
     delete fLocale;
-    if (info.fPluralRules) {
+    fLocale = nullptr;
+
+    if (info.fPluralRules != nullptr) {
         fPluralRules = info.fPluralRules->clone();
-    } else {
-        fPluralRules = NULL;
+        if (fPluralRules == nullptr) {
+            fInternalStatus = U_MEMORY_ALLOCATION_ERROR;
+            return *this;
+        }
     }
-    if (info.fLocale) {
+    if (info.fLocale != nullptr) {
         fLocale = info.fLocale->clone();
-    } else {
-        fLocale = NULL;
+        if (fLocale == nullptr) {
+            // Note: If clone had an error parameter, then we could check/set that instead.
+            fInternalStatus = U_MEMORY_ALLOCATION_ERROR;
+            return *this;
+        }
+        // If the other locale wasn't bogus, but our clone'd locale is bogus, then OOM happened
+        // during the call to clone().
+        if (!info.fLocale->isBogus() && fLocale->isBogus()) {
+            fInternalStatus = U_MEMORY_ALLOCATION_ERROR;
+            return *this;
+        }
     }
     return *this;
 }
 
-
 CurrencyPluralInfo::~CurrencyPluralInfo() {
     deleteHash(fPluralCountToCurrencyUnitPattern);
-    fPluralCountToCurrencyUnitPattern = NULL;
+    fPluralCountToCurrencyUnitPattern = nullptr;
     delete fPluralRules;
     delete fLocale;
-    fPluralRules = NULL;
-    fLocale = NULL;
+    fPluralRules = nullptr;
+    fLocale = nullptr;
 }
 
 UBool
@@ -148,7 +166,14 @@ CurrencyPluralInfo::operator==(const CurrencyPluralInfo& info) const {
 
 CurrencyPluralInfo*
 CurrencyPluralInfo::clone() const {
-    return new CurrencyPluralInfo(*this);
+    CurrencyPluralInfo* newObj = new CurrencyPluralInfo(*this);
+    // Since clone doesn't have a 'status' parameter, the best we can do is return nullptr
+    // if the new object was not full constructed properly (an error occurred).
+    if (newObj != nullptr && U_FAILURE(newObj->fInternalStatus)) {
+        delete newObj;
+        newObj = nullptr;
+    }
+    return newObj;
 }
 
 const PluralRules* 
@@ -161,15 +186,15 @@ CurrencyPluralInfo::getCurrencyPluralPattern(const UnicodeString&  pluralCount,
                                              UnicodeString& result) const {
     const UnicodeString* currencyPluralPattern = 
         (UnicodeString*)fPluralCountToCurrencyUnitPattern->get(pluralCount);
-    if (currencyPluralPattern == NULL) {
+    if (currencyPluralPattern == nullptr) {
         // fall back to "other"
         if (pluralCount.compare(gPluralCountOther, 5)) {
             currencyPluralPattern = 
                 (UnicodeString*)fPluralCountToCurrencyUnitPattern->get(UnicodeString(TRUE, gPluralCountOther, 5));
         }
-        if (currencyPluralPattern == NULL) {
+        if (currencyPluralPattern == nullptr) {
             // no currencyUnitPatterns defined, 
-            // fallback to predefined defult.
+            // fallback to predefined default.
             // This should never happen when ICU resource files are
             // available, since currencyUnitPattern of "other" is always
             // defined in root.
@@ -190,14 +215,11 @@ void
 CurrencyPluralInfo::setPluralRules(const UnicodeString& ruleDescription,
                                    UErrorCode& status) {
     if (U_SUCCESS(status)) {
-        if (fPluralRules) {
-            delete fPluralRules;
-        }
+        delete fPluralRules;
         fPluralRules = PluralRules::createRules(ruleDescription, status);
     }
 }
 
-
 void
 CurrencyPluralInfo::setCurrencyPluralPattern(const UnicodeString& pluralCount,
                                              const UnicodeString& pattern,
@@ -206,31 +228,44 @@ CurrencyPluralInfo::setCurrencyPluralPattern(const UnicodeString& pluralCount,
         UnicodeString* oldValue = static_cast<UnicodeString*>(
             fPluralCountToCurrencyUnitPattern->get(pluralCount));
         delete oldValue;
-        fPluralCountToCurrencyUnitPattern->put(pluralCount, new UnicodeString(pattern), status);
+        LocalPointer<UnicodeString> p(new UnicodeString(pattern), status);
+        if (U_SUCCESS(status)) {
+            // the p object allocated above will be owned by fPluralCountToCurrencyUnitPattern
+            // after the call to put(), even if the method returns failure.
+            fPluralCountToCurrencyUnitPattern->put(pluralCount, p.orphan(), status);
+        }
     }
 }
 
-
 void
 CurrencyPluralInfo::setLocale(const Locale& loc, UErrorCode& status) {
     initialize(loc, status);
 }
 
-
 void 
 CurrencyPluralInfo::initialize(const Locale& loc, UErrorCode& status) {
     if (U_FAILURE(status)) {
         return;
     }
     delete fLocale;
+    fLocale = nullptr;    
+    delete fPluralRules;
+    fPluralRules = nullptr;
+
     fLocale = loc.clone();
-    if (fPluralRules) {
-        delete fPluralRules;
+    if (fLocale == nullptr) {
+        status = U_MEMORY_ALLOCATION_ERROR;
+        return;
+    }
+    // If the locale passed in wasn't bogus, but our clone'd locale is bogus, then OOM happened
+    // during the call to loc.clone().
+    if (!loc.isBogus() && fLocale->isBogus()) {
+        status = U_MEMORY_ALLOCATION_ERROR;
+        return;
     }
     fPluralRules = PluralRules::forLocale(loc, status);
     setupCurrencyPluralPattern(loc, status);
 }
-
    
 void
 CurrencyPluralInfo::setupCurrencyPluralPattern(const Locale& loc, UErrorCode& status) {
@@ -238,31 +273,32 @@ CurrencyPluralInfo::setupCurrencyPluralPattern(const Locale& loc, UErrorCode& st
         return;
     }
 
-    if (fPluralCountToCurrencyUnitPattern) {
-        deleteHash(fPluralCountToCurrencyUnitPattern);
-    }
+    deleteHash(fPluralCountToCurrencyUnitPattern);
     fPluralCountToCurrencyUnitPattern = initHash(status);
     if (U_FAILURE(status)) {
         return;
     }
 
-    NumberingSystem *ns = NumberingSystem::createInstance(loc,status);
+    LocalPointer<NumberingSystem> ns(NumberingSystem::createInstance(loc, status), status);
+    if (U_FAILURE(status)) {
+        return;
+    }
     UErrorCode ec = U_ZERO_ERROR;
-    UResourceBundle *rb = ures_open(NULL, loc.getName(), &ec);
-    UResourceBundle *numElements = ures_getByKeyWithFallback(rb, gNumberElementsTag, NULL, &ec);
-    rb = ures_getByKeyWithFallback(numElements, ns->getName(), rb, &ec);
-    rb = ures_getByKeyWithFallback(rb, gPatternsTag, rb, &ec);
+    LocalUResourceBundlePointer rb(ures_open(nullptr, loc.getName(), &ec));
+    LocalUResourceBundlePointer numElements(ures_getByKeyWithFallback(rb.getAlias(), gNumberElementsTag, nullptr, &ec));
+    ures_getByKeyWithFallback(numElements.getAlias(), ns->getName(), rb.getAlias(), &ec);
+    ures_getByKeyWithFallback(rb.getAlias(), gPatternsTag, rb.getAlias(), &ec);
     int32_t ptnLen;
-    const UChar* numberStylePattern = ures_getStringByKeyWithFallback(rb, gDecimalFormatTag, &ptnLen, &ec);
+    const UChar* numberStylePattern = ures_getStringByKeyWithFallback(rb.getAlias(), gDecimalFormatTag, &ptnLen, &ec);
     // Fall back to "latn" if num sys specific pattern isn't there.
-    if ( ec == U_MISSING_RESOURCE_ERROR && uprv_strcmp(ns->getName(),gLatnTag)) {
+    if ( ec == U_MISSING_RESOURCE_ERROR && (uprv_strcmp(ns->getName(), gLatnTag) != 0)) {
         ec = U_ZERO_ERROR;
-        rb = ures_getByKeyWithFallback(numElements, gLatnTag, rb, &ec);
-        rb = ures_getByKeyWithFallback(rb, gPatternsTag, rb, &ec);
-        numberStylePattern = ures_getStringByKeyWithFallback(rb, gDecimalFormatTag, &ptnLen, &ec);
+        ures_getByKeyWithFallback(numElements.getAlias(), gLatnTag, rb.getAlias(), &ec);
+        ures_getByKeyWithFallback(rb.getAlias(), gPatternsTag, rb.getAlias(), &ec);
+        numberStylePattern = ures_getStringByKeyWithFallback(rb.getAlias(), gDecimalFormatTag, &ptnLen, &ec);
     }
     int32_t numberStylePatternLen = ptnLen;
-    const UChar* negNumberStylePattern = NULL;
+    const UChar* negNumberStylePattern = nullptr;
     int32_t negNumberStylePatternLen = 0;
     // TODO: Java
     // parse to check whether there is ";" separator in the numberStylePattern
@@ -279,127 +315,127 @@ CurrencyPluralInfo::setupCurrencyPluralPattern(const Locale& loc, UErrorCode& st
         }
     }
 
-    ures_close(numElements);
-    ures_close(rb);
-    delete ns;
-
     if (U_FAILURE(ec)) {
+        // If OOM occurred during the above code, then we want to report that back to the caller.
+        if (ec == U_MEMORY_ALLOCATION_ERROR) {
+            status = ec;
+        }
         return;
     }
 
-    UResourceBundle *currRb = ures_open(U_ICUDATA_CURR, loc.getName(), &ec);
-    UResourceBundle *currencyRes = ures_getByKeyWithFallback(currRb, gCurrUnitPtnTag, NULL, &ec);
+    LocalUResourceBundlePointer currRb(ures_open(U_ICUDATA_CURR, loc.getName(), &ec));
+    LocalUResourceBundlePointer currencyRes(ures_getByKeyWithFallback(currRb.getAlias(), gCurrUnitPtnTag, nullptr, &ec));
     
 #ifdef CURRENCY_PLURAL_INFO_DEBUG
     std::cout << "in set up\n";
 #endif
-    StringEnumeration* keywords = fPluralRules->getKeywords(ec);
+    LocalPointer<StringEnumeration> keywords(fPluralRules->getKeywords(ec), ec);
     if (U_SUCCESS(ec)) {
         const char* pluralCount;
-        while ((pluralCount = keywords->next(NULL, ec)) != NULL) {
-            if ( U_SUCCESS(ec) ) {
-                int32_t ptnLen;
-                UErrorCode err = U_ZERO_ERROR;
-                const UChar* patternChars = ures_getStringByKeyWithFallback(
-                    currencyRes, pluralCount, &ptnLen, &err);
-                if (U_SUCCESS(err) && ptnLen > 0) {
-                    UnicodeString* pattern = new UnicodeString(patternChars, ptnLen);
+        while (((pluralCount = keywords->next(nullptr, ec)) != nullptr) && U_SUCCESS(ec)) {
+            int32_t ptnLength;
+            UErrorCode err = U_ZERO_ERROR;
+            const UChar* patternChars = ures_getStringByKeyWithFallback(currencyRes.getAlias(), pluralCount, &ptnLength, &err);
+            if (err == U_MEMORY_ALLOCATION_ERROR || patternChars == nullptr) {
+                ec = err;
+                break;
+            }
+            if (U_SUCCESS(err) && ptnLength > 0) {
+                UnicodeString* pattern = new UnicodeString(patternChars, ptnLength);
+                if (pattern == nullptr) {
+                    ec = U_MEMORY_ALLOCATION_ERROR;
+                    break;
+                }
 #ifdef CURRENCY_PLURAL_INFO_DEBUG
-                    char result_1[1000];
-                    pattern->extract(0, pattern->length(), result_1, "UTF-8");
-                    std::cout << "pluralCount: " << pluralCount << "; pattern: " << result_1 << "\n";
+                char result_1[1000];
+                pattern->extract(0, pattern->length(), result_1, "UTF-8");
+                std::cout << "pluralCount: " << pluralCount << "; pattern: " << result_1 << "\n";
 #endif
-                    pattern->findAndReplace(UnicodeString(TRUE, gPart0, 3), 
-                      UnicodeString(numberStylePattern, numberStylePatternLen));
-                    pattern->findAndReplace(UnicodeString(TRUE, gPart1, 3), UnicodeString(TRUE, gTripleCurrencySign, 3));
-
-                    if (hasSeparator) {
-                        UnicodeString negPattern(patternChars, ptnLen);
-                        negPattern.findAndReplace(UnicodeString(TRUE, gPart0, 3), 
-                          UnicodeString(negNumberStylePattern, negNumberStylePatternLen));
-                        negPattern.findAndReplace(UnicodeString(TRUE, gPart1, 3), UnicodeString(TRUE, gTripleCurrencySign, 3));
-                        pattern->append(gNumberPatternSeparator);
-                        pattern->append(negPattern);
-                    }
+                pattern->findAndReplace(UnicodeString(TRUE, gPart0, 3), 
+                    UnicodeString(numberStylePattern, numberStylePatternLen));
+                pattern->findAndReplace(UnicodeString(TRUE, gPart1, 3), UnicodeString(TRUE, gTripleCurrencySign, 3));
+
+                if (hasSeparator) {
+                    UnicodeString negPattern(patternChars, ptnLength);
+                    negPattern.findAndReplace(UnicodeString(TRUE, gPart0, 3), 
+                        UnicodeString(negNumberStylePattern, negNumberStylePatternLen));
+                    negPattern.findAndReplace(UnicodeString(TRUE, gPart1, 3), UnicodeString(TRUE, gTripleCurrencySign, 3));
+                    pattern->append(gNumberPatternSeparator);
+                    pattern->append(negPattern);
+                }
 #ifdef CURRENCY_PLURAL_INFO_DEBUG
-                    pattern->extract(0, pattern->length(), result_1, "UTF-8");
-                    std::cout << "pluralCount: " << pluralCount << "; pattern: " << result_1 << "\n";
+                pattern->extract(0, pattern->length(), result_1, "UTF-8");
+                std::cout << "pluralCount: " << pluralCount << "; pattern: " << result_1 << "\n";
 #endif
-
-                    fPluralCountToCurrencyUnitPattern->put(UnicodeString(pluralCount, -1, US_INV), pattern, status);
-                }
+                // the 'pattern' object allocated above will be owned by the fPluralCountToCurrencyUnitPattern after the call to
+                // put(), even if the method returns failure.
+                fPluralCountToCurrencyUnitPattern->put(UnicodeString(pluralCount, -1, US_INV), pattern, status);
             }
         }
     }
-    delete keywords;
-    ures_close(currencyRes);
-    ures_close(currRb);
+    // If OOM occurred during the above code, then we want to report that back to the caller.
+    if (ec == U_MEMORY_ALLOCATION_ERROR) {
+        status = ec;
+    }
 }
 
-
-
 void
-CurrencyPluralInfo::deleteHash(Hashtable* hTable) 
-{
-    if ( hTable == NULL ) {
+CurrencyPluralInfo::deleteHash(Hashtable* hTable) {
+    if ( hTable == nullptr ) {
         return;
     }
     int32_t pos = UHASH_FIRST;
-    const UHashElement* element = NULL;
-    while ( (element = hTable->nextElement(pos)) != NULL ) {
+    const UHashElement* element = nullptr;
+    while ( (element = hTable->nextElement(pos)) != nullptr ) {
         const UHashTok valueTok = element->value;
         const UnicodeString* value = (UnicodeString*)valueTok.pointer;
         delete value;
     }
     delete hTable;
-    hTable = NULL;
+    hTable = nullptr;
 }
 
-
 Hashtable*
 CurrencyPluralInfo::initHash(UErrorCode& status) {
-    if ( U_FAILURE(status) ) {
-        return NULL;
-    }
-    Hashtable* hTable;
-    if ( (hTable = new Hashtable(TRUE, status)) == NULL ) {
-        status = U_MEMORY_ALLOCATION_ERROR;
-        return NULL;
+    if (U_FAILURE(status)) {
+        return nullptr;
     }
-    if ( U_FAILURE(status) ) {
-        delete hTable; 
-        return NULL;
+    LocalPointer<Hashtable> hTable(new Hashtable(TRUE, status), status);
+    if (U_FAILURE(status)) {
+        return nullptr;
     }
     hTable->setValueComparator(ValueComparator);
-    return hTable;
+    return hTable.orphan();
 }
 
-
 void
 CurrencyPluralInfo::copyHash(const Hashtable* source,
                            Hashtable* target,
                            UErrorCode& status) {
-    if ( U_FAILURE(status) ) {
+    if (U_FAILURE(status)) {
         return;
     }
     int32_t pos = UHASH_FIRST;
-    const UHashElement* element = NULL;
-    if ( source ) {
-        while ( (element = source->nextElement(pos)) != NULL ) {
+    const UHashElement* element = nullptr;
+    if (source) {
+        while ( (element = source->nextElement(pos)) != nullptr ) {
             const UHashTok keyTok = element->key;
             const UnicodeString* key = (UnicodeString*)keyTok.pointer;
             const UHashTok valueTok = element->value;
             const UnicodeString* value = (UnicodeString*)valueTok.pointer;
-            UnicodeString* copy = new UnicodeString(*value);
-            target->put(UnicodeString(*key), copy, status);
-            if ( U_FAILURE(status) ) {
+            LocalPointer<UnicodeString> copy(new UnicodeString(*value), status);
+            if (U_FAILURE(status)) {
+                return;
+            }
+            // The HashTable owns the 'copy' object after the call to put().
+            target->put(UnicodeString(*key), copy.orphan(), status);
+            if (U_FAILURE(status)) {
                 return;
             }
         }
     }
 }
 
-
 U_NAMESPACE_END
 
 #endif
index 3de6856..7f3490d 100644 (file)
@@ -27,9 +27,14 @@ CurrencyUnit::CurrencyUnit(ConstChar16Ptr _isoCode, UErrorCode& ec) {
     // The constructor always leaves the CurrencyUnit in a valid state (with a 3-character currency code).
     // Note: in ICU4J Currency.getInstance(), we check string length for 3, but in ICU4C we allow a
     // non-NUL-terminated string to be passed as an argument, so it is not possible to check length.
+    // However, we allow a NUL-terminated empty string, which should have the same behavior as nullptr.
+    // Consider NUL-terminated strings of length 1 or 2 as invalid.
     const char16_t* isoCodeToUse;
-    if (U_FAILURE(ec) || _isoCode == nullptr) {
+    if (U_FAILURE(ec) || _isoCode == nullptr || _isoCode[0] == 0) {
         isoCodeToUse = kDefaultCurrency;
+    } else if (_isoCode[1] == 0 || _isoCode[2] == 0) {
+        isoCodeToUse = kDefaultCurrency;
+        ec = U_ILLEGAL_ARGUMENT_ERROR;
     } else if (!uprv_isInvariantUString(_isoCode, 3)) {
         // TODO: Perform a more strict ASCII check like in ICU4J isAlpha3Code?
         isoCodeToUse = kDefaultCurrency;
index e6785ab..d8b1ecd 100644 (file)
@@ -436,7 +436,7 @@ DecimalFormatSymbols::initialize(const Locale& loc, UErrorCode& status,
     sink.resolveMissingMonetarySeparators(fSymbols);
 
     // Resolve codePointZero
-    UChar32 tempCodePointZero;
+    UChar32 tempCodePointZero = -1;
     for (int32_t i=0; i<=9; i++) {
         const UnicodeString& stringDigit = getConstDigitSymbol(i);
         if (stringDigit.countChar32() != 1) {
index a2638bb..edd8910 100644 (file)
@@ -1057,12 +1057,19 @@ UBool DecimalFormat::areSignificantDigitsUsed() const {
 
 void DecimalFormat::setSignificantDigitsUsed(UBool useSignificantDigits) {
     // These are the default values from the old implementation.
+    if (useSignificantDigits) {
+        if (fields->properties->minimumSignificantDigits != -1 ||
+            fields->properties->maximumSignificantDigits != -1) {
+            return;
+        }
+    } else {
+        if (fields->properties->minimumSignificantDigits == -1 &&
+            fields->properties->maximumSignificantDigits == -1) {
+            return;
+        }
+    }
     int32_t minSig = useSignificantDigits ? 1 : -1;
     int32_t maxSig = useSignificantDigits ? 6 : -1;
-    if (fields->properties->minimumSignificantDigits == minSig &&
-        fields->properties->maximumSignificantDigits == maxSig) {
-        return;
-    }
     fields->properties->minimumSignificantDigits = minSig;
     fields->properties->maximumSignificantDigits = maxSig;
     touchNoError();
@@ -1175,7 +1182,12 @@ void DecimalFormat::setPropertiesFromPattern(const UnicodeString& pattern, int32
 }
 
 const numparse::impl::NumberParserImpl* DecimalFormat::getParser(UErrorCode& status) const {
-    if (U_FAILURE(status)) { return nullptr; }
+    // TODO: Move this into umutex.h? (similar logic also in numrange_fluent.cpp)
+    // See ICU-20146
+
+    if (U_FAILURE(status)) {
+        return nullptr;
+    }
 
     // First try to get the pre-computed parser
     auto* ptr = fields->atomicParser.load();
@@ -1185,13 +1197,17 @@ const numparse::impl::NumberParserImpl* DecimalFormat::getParser(UErrorCode& sta
 
     // Try computing the parser on our own
     auto* temp = NumberParserImpl::createParserFromProperties(*fields->properties, *fields->symbols, false, status);
+    if (U_FAILURE(status)) {
+        return nullptr;
+    }
     if (temp == nullptr) {
         status = U_MEMORY_ALLOCATION_ERROR;
-        // although we may still dereference, call sites should be guarded
+        return nullptr;
     }
 
-    // Note: ptr starts as nullptr; during compare_exchange, it is set to what is actually stored in the
-    // atomic if another thread beat us to computing the parser object.
+    // Note: ptr starts as nullptr; during compare_exchange,
+    // it is set to what is actually stored in the atomic
+    // if another thread beat us to computing the parser object.
     auto* nonConstThis = const_cast<DecimalFormat*>(this);
     if (!nonConstThis->fields->atomicParser.compare_exchange_strong(ptr, temp)) {
         // Another thread beat us to computing the parser
index 455a8e1..ab61cf4 100644 (file)
@@ -1311,7 +1311,7 @@ DateFormatSymbols::initZoneStringsArray(void) {
         UDate now = Calendar::getNow();
         UnicodeString tzDispName;
 
-        while ((tzid = tzids->snext(status))) {
+        while ((tzid = tzids->snext(status)) != 0) {
             if (U_FAILURE(status)) {
                 break;
             }
@@ -2224,8 +2224,8 @@ DateFormatSymbols::initializeData(const Locale& locale, const char *type, UError
                             ++typeMapPtr;
                         }
                         if (typeMapPtr->usageTypeName != NULL && compResult == 0) {
-                            fCapitalization[typeMapPtr->usageTypeEnumValue][0] = intVector[0];
-                            fCapitalization[typeMapPtr->usageTypeEnumValue][1] = intVector[1];
+                            fCapitalization[typeMapPtr->usageTypeEnumValue][0] = static_cast<UBool>(intVector[0]);
+                            fCapitalization[typeMapPtr->usageTypeEnumValue][1] = static_cast<UBool>(intVector[1]);
                         }
                     }
                 }
index 743b534..d952cbf 100644 (file)
@@ -877,8 +877,7 @@ DateIntervalFormat::getDateTimeSkeleton(const UnicodeString& skeleton,
         if ( MCount < 3 ) {
             normalizedDateSkeleton.append(CAP_M);
         } else {
-            int32_t i;
-            for ( i = 0; i < MCount && i < MAX_M_COUNT; ++i ) {
+            for ( int32_t j = 0; j < MCount && j < MAX_M_COUNT; ++j) {
                  normalizedDateSkeleton.append(CAP_M);
             }
         }
@@ -887,8 +886,7 @@ DateIntervalFormat::getDateTimeSkeleton(const UnicodeString& skeleton,
         if ( ECount <= 3 ) {
             normalizedDateSkeleton.append(CAP_E);
         } else {
-            int32_t i;
-            for ( i = 0; i < ECount && i < MAX_E_COUNT; ++i ) {
+            for ( int32_t j = 0; j < ECount && j < MAX_E_COUNT; ++j ) {
                  normalizedDateSkeleton.append(CAP_E);
             }
         }
index c863a68..a289fc7 100644 (file)
@@ -594,7 +594,7 @@ DateIntervalInfo::getBestSkeleton(const UnicodeString& skeleton,
     const UHashElement* elem = NULL;
     while ( (elem = fIntervalPatterns->nextElement(pos)) != NULL ) {
         const UHashTok keyTok = elem->key;
-        UnicodeString* skeleton = (UnicodeString*)keyTok.pointer;
+        UnicodeString* newSkeleton = (UnicodeString*)keyTok.pointer;
 #ifdef DTITVINF_DEBUG
     skeleton->extract(0,  skeleton->length(), result, "UTF-8");
     sprintf(mesg, "available skeletons: skeleton: %s; \n", result);
@@ -606,7 +606,7 @@ DateIntervalInfo::getBestSkeleton(const UnicodeString& skeleton,
         for ( i = 0; i < fieldLength; ++i ) {
             skeletonFieldWidth[i] = 0;
         }
-        parseSkeleton(*skeleton, skeletonFieldWidth);
+        parseSkeleton(*newSkeleton, skeletonFieldWidth);
         // calculate distance
         int32_t distance = 0;
         int8_t fieldDifference = 1;
@@ -632,7 +632,7 @@ DateIntervalInfo::getBestSkeleton(const UnicodeString& skeleton,
             }
         }
         if ( distance < bestDistance ) {
-            bestSkeleton = skeleton;
+            bestSkeleton = newSkeleton;
             bestDistance = distance;
             bestMatchDistanceInfo = fieldDifference;
         }
index aefd704..d7b60d3 100644 (file)
@@ -18,6 +18,7 @@
 #include "unicode/decimfmt.h"
 #include "unicode/dtfmtsym.h"
 #include "unicode/dtptngen.h"
+#include "unicode/localpointer.h"
 #include "unicode/simpleformatter.h"
 #include "unicode/smpdtfmt.h"
 #include "unicode/udat.h"
@@ -88,17 +89,17 @@ static void ures_a_open(UResourceBundleAIterator *aiter, UResourceBundle *bund,
     aiter->num = ures_getSize(aiter->bund);
     aiter->cursor = 0;
 #if !defined(U_SORT_ASCII_BUNDLE_ITERATOR)
-    aiter->entries = NULL;
+    aiter->entries = nullptr;
 #else
     aiter->entries = (UResAEntry*)uprv_malloc(sizeof(UResAEntry)*aiter->num);
     for(int i=0;i<aiter->num;i++) {
-        aiter->entries[i].item = ures_getByIndex(aiter->bund, i, NULL, status);
+        aiter->entries[i].item = ures_getByIndex(aiter->bund, i, nullptr, status);
         const char *akey = ures_getKey(aiter->entries[i].item);
         int32_t len = uprv_strlen(akey)+1;
         aiter->entries[i].key = (UChar*)uprv_malloc(len*sizeof(UChar));
         u_charsToUChars(akey, aiter->entries[i].key, len);
     }
-    uprv_sortArray(aiter->entries, aiter->num, sizeof(UResAEntry), ures_a_codepointSort, NULL, TRUE, status);
+    uprv_sortArray(aiter->entries, aiter->num, sizeof(UResAEntry), ures_a_codepointSort, nullptr, TRUE, status);
 #endif
 }
 
@@ -115,7 +116,7 @@ static const UChar *ures_a_getNextString(UResourceBundleAIterator *aiter, int32_
 #if !defined(U_SORT_ASCII_BUNDLE_ITERATOR)
     return ures_getNextString(aiter->bund, len, key, err);
 #else
-    if(U_FAILURE(*err)) return NULL;
+    if(U_FAILURE(*err)) return nullptr;
     UResourceBundle *item = aiter->entries[aiter->cursor].item;
     const UChar* ret = ures_getString(item, len, err);
     *key = ures_getKey(item);
@@ -302,49 +303,48 @@ DateTimePatternGenerator::createInstance(UErrorCode& status) {
 DateTimePatternGenerator* U_EXPORT2
 DateTimePatternGenerator::createInstance(const Locale& locale, UErrorCode& status) {
     if (U_FAILURE(status)) {
-        return NULL;
+        return nullptr;
     }
     LocalPointer<DateTimePatternGenerator> result(
             new DateTimePatternGenerator(locale, status), status);
-    return U_SUCCESS(status) ? result.orphan() : NULL;
+    return U_SUCCESS(status) ? result.orphan() : nullptr;
 }
 
 DateTimePatternGenerator*  U_EXPORT2
 DateTimePatternGenerator::createEmptyInstance(UErrorCode& status) {
-    DateTimePatternGenerator *result = new DateTimePatternGenerator(status);
-    if (result == NULL) {
-        status = U_MEMORY_ALLOCATION_ERROR;
-    }
     if (U_FAILURE(status)) {
-        delete result;
-        result = NULL;
+        return nullptr;
     }
-    return result;
+    LocalPointer<DateTimePatternGenerator> result(
+            new DateTimePatternGenerator(status), status);
+    return U_SUCCESS(status) ? result.orphan() : nullptr;
 }
 
 DateTimePatternGenerator::DateTimePatternGenerator(UErrorCode &status) :
-    skipMatcher(NULL),
-    fAvailableFormatKeyHash(NULL)
+    skipMatcher(nullptr),
+    fAvailableFormatKeyHash(nullptr),
+    internalErrorCode(U_ZERO_ERROR)
 {
     fp = new FormatParser();
     dtMatcher = new DateTimeMatcher();
     distanceInfo = new DistanceInfo();
     patternMap = new PatternMap();
-    if (fp == NULL || dtMatcher == NULL || distanceInfo == NULL || patternMap == NULL) {
-        status = U_MEMORY_ALLOCATION_ERROR;
+    if (fp == nullptr || dtMatcher == nullptr || distanceInfo == nullptr || patternMap == nullptr) {
+        internalErrorCode = status = U_MEMORY_ALLOCATION_ERROR;
     }
 }
 
 DateTimePatternGenerator::DateTimePatternGenerator(const Locale& locale, UErrorCode &status) :
-    skipMatcher(NULL),
-    fAvailableFormatKeyHash(NULL)
+    skipMatcher(nullptr),
+    fAvailableFormatKeyHash(nullptr),
+    internalErrorCode(U_ZERO_ERROR)
 {
     fp = new FormatParser();
     dtMatcher = new DateTimeMatcher();
     distanceInfo = new DistanceInfo();
     patternMap = new PatternMap();
-    if (fp == NULL || dtMatcher == NULL || distanceInfo == NULL || patternMap == NULL) {
-        status = U_MEMORY_ALLOCATION_ERROR;
+    if (fp == nullptr || dtMatcher == nullptr || distanceInfo == nullptr || patternMap == nullptr) {
+        internalErrorCode = status = U_MEMORY_ALLOCATION_ERROR;
     }
     else {
         initData(locale, status);
@@ -353,13 +353,17 @@ DateTimePatternGenerator::DateTimePatternGenerator(const Locale& locale, UErrorC
 
 DateTimePatternGenerator::DateTimePatternGenerator(const DateTimePatternGenerator& other) :
     UObject(),
-    skipMatcher(NULL),
-    fAvailableFormatKeyHash(NULL)
+    skipMatcher(nullptr),
+    fAvailableFormatKeyHash(nullptr),
+    internalErrorCode(U_ZERO_ERROR)
 {
     fp = new FormatParser();
     dtMatcher = new DateTimeMatcher();
     distanceInfo = new DistanceInfo();
     patternMap = new PatternMap();
+    if (fp == nullptr || dtMatcher == nullptr || distanceInfo == nullptr || patternMap == nullptr) {
+        internalErrorCode = U_MEMORY_ALLOCATION_ERROR;
+    }
     *this=other;
 }
 
@@ -369,6 +373,7 @@ DateTimePatternGenerator::operator=(const DateTimePatternGenerator& other) {
     if (&other == this) {
         return *this;
     }
+    internalErrorCode = other.internalErrorCode;
     pLocale = other.pLocale;
     fDefaultHourFormatChar = other.fDefaultHourFormatChar;
     *fp = *(other.fp);
@@ -380,11 +385,16 @@ DateTimePatternGenerator::operator=(const DateTimePatternGenerator& other) {
     dateTimeFormat.getTerminatedBuffer();
     decimal.getTerminatedBuffer();
     delete skipMatcher;
-    if ( other.skipMatcher == NULL ) {
-        skipMatcher = NULL;
+    if ( other.skipMatcher == nullptr ) {
+        skipMatcher = nullptr;
     }
     else {
         skipMatcher = new DateTimeMatcher(*other.skipMatcher);
+        if (skipMatcher == nullptr)
+        {
+            internalErrorCode = U_MEMORY_ALLOCATION_ERROR;
+            return *this;
+        }
     }
     for (int32_t i=0; i< UDATPG_FIELD_COUNT; ++i ) {
         appendItemFormats[i] = other.appendItemFormats[i];
@@ -394,9 +404,8 @@ DateTimePatternGenerator::operator=(const DateTimePatternGenerator& other) {
             fieldDisplayNames[i][j].getTerminatedBuffer(); // NUL-terminate for the C API.
         }
     }
-    UErrorCode status = U_ZERO_ERROR;
-    patternMap->copyFrom(*other.patternMap, status);
-    copyHashtable(other.fAvailableFormatKeyHash, status);
+    patternMap->copyFrom(*other.patternMap, internalErrorCode);
+    copyHashtable(other.fAvailableFormatKeyHash, internalErrorCode);
     return *this;
 }
 
@@ -431,21 +440,21 @@ DateTimePatternGenerator::operator!=(const DateTimePatternGenerator& other) cons
 }
 
 DateTimePatternGenerator::~DateTimePatternGenerator() {
-    if (fAvailableFormatKeyHash!=NULL) {
+    if (fAvailableFormatKeyHash!=nullptr) {
         delete fAvailableFormatKeyHash;
     }
 
-    if (fp != NULL) delete fp;
-    if (dtMatcher != NULL) delete dtMatcher;
-    if (distanceInfo != NULL) delete distanceInfo;
-    if (patternMap != NULL) delete patternMap;
-    if (skipMatcher != NULL) delete skipMatcher;
+    if (fp != nullptr) delete fp;
+    if (dtMatcher != nullptr) delete dtMatcher;
+    if (distanceInfo != nullptr) delete distanceInfo;
+    if (patternMap != nullptr) delete patternMap;
+    if (skipMatcher != nullptr) delete skipMatcher;
 }
 
 namespace {
 
 UInitOnce initOnce = U_INITONCE_INITIALIZER;
-UHashtable *localeToAllowedHourFormatsMap = NULL;
+UHashtable *localeToAllowedHourFormatsMap = nullptr;
 
 // Value deleter for hashmap.
 U_CFUNC void U_CALLCONV deleteAllowedHourFormats(void *ptr) {
@@ -474,8 +483,8 @@ void
 DateTimePatternGenerator::initData(const Locale& locale, UErrorCode &status) {
     //const char *baseLangName = locale.getBaseName(); // unused
 
-    skipMatcher = NULL;
-    fAvailableFormatKeyHash=NULL;
+    skipMatcher = nullptr;
+    fAvailableFormatKeyHash=nullptr;
     addCanonicalItems(status);
     addICUPatterns(locale, status);
     addCLDRData(locale, status);
@@ -483,6 +492,8 @@ DateTimePatternGenerator::initData(const Locale& locale, UErrorCode &status) {
     setDecimalSymbols(locale, status);
     umtx_initOnce(initOnce, loadAllowedHourFormatsData, status);
     getAllowedHourFormats(locale, status);
+    // If any of the above methods failed then the object is in an invalid state.
+    internalErrorCode = status;
 } // DateTimePatternGenerator::initData
 
 namespace {
@@ -505,7 +516,7 @@ struct AllowedHourFormatsSink : public ResourceSink {
                     LocalMemory<int32_t> list;
                     int32_t length;
                     if (value.getType() == URES_STRING) {
-                        if (list.allocateInsteadAndReset(2) == NULL) {
+                        if (list.allocateInsteadAndReset(2) == nullptr) {
                             errorCode = U_MEMORY_ALLOCATION_ERROR;
                             return;
                         }
@@ -515,7 +526,7 @@ struct AllowedHourFormatsSink : public ResourceSink {
                     else {
                         ResourceArray allowedFormats = value.getArray(errorCode);
                         length = allowedFormats.getSize();
-                        if (list.allocateInsteadAndReset(length + 1) == NULL) {
+                        if (list.allocateInsteadAndReset(length + 1) == nullptr) {
                             errorCode = U_MEMORY_ALLOCATION_ERROR;
                             return;
                         }
@@ -555,9 +566,14 @@ AllowedHourFormatsSink::~AllowedHourFormatsSink() {}
 U_CFUNC void U_CALLCONV DateTimePatternGenerator::loadAllowedHourFormatsData(UErrorCode &status) {
     if (U_FAILURE(status)) { return; }
     localeToAllowedHourFormatsMap = uhash_open(
-        uhash_hashChars, uhash_compareChars, NULL, &status);
+        uhash_hashChars, uhash_compareChars, nullptr, &status);
+    if (U_FAILURE(status)) { return; }
+
     uhash_setValueDeleter(localeToAllowedHourFormatsMap, deleteAllowedHourFormats);
-    LocalUResourceBundlePointer rb(ures_openDirect(NULL, "supplementalData", &status));
+    ucln_i18n_registerCleanup(UCLN_I18N_ALLOWED_HOUR_FORMATS, allowedHourFormatsCleanup);
+
+    LocalUResourceBundlePointer rb(ures_openDirect(nullptr, "supplementalData", &status));
+    if (U_FAILURE(status)) { return; }
 
     AllowedHourFormatsSink sink;
     // TODO: Currently in the enumeration each table allocates a new array.
@@ -566,9 +582,7 @@ U_CFUNC void U_CALLCONV DateTimePatternGenerator::loadAllowedHourFormatsData(UEr
     // into the hashmap, store 6 single-value sub-arrays right at the beginning of the
     // vector (at index enum*2) for easy data sharing, copy sub-arrays into runtime
     // object. Remember to clean up the vector, too.
-    ures_getAllItemsWithFallback(rb.getAlias(), "timeData", sink, status);
-
-    ucln_i18n_registerCleanup(UCLN_I18N_ALLOWED_HOUR_FORMATS, allowedHourFormatsCleanup);
+    ures_getAllItemsWithFallback(rb.getAlias(), "timeData", sink, status);    
 }
 
 void DateTimePatternGenerator::getAllowedHourFormats(const Locale &locale, UErrorCode &status) {
@@ -589,17 +603,17 @@ void DateTimePatternGenerator::getAllowedHourFormats(const Locale &locale, UErro
     const char *language = maxLocale.getLanguage();
 
     CharString langCountry;
-    langCountry.append(language, uprv_strlen(language), status);
+    langCountry.append(language, static_cast<int32_t>(uprv_strlen(language)), status);
     langCountry.append('_', status);
-    langCountry.append(country, uprv_strlen(country), status);
+    langCountry.append(country, static_cast<int32_t>(uprv_strlen(country)), status);
 
     int32_t *allowedFormats;
     allowedFormats = (int32_t *)uhash_get(localeToAllowedHourFormatsMap, langCountry.data());
-    if (allowedFormats == NULL) {
+    if (allowedFormats == nullptr) {
         allowedFormats = (int32_t *)uhash_get(localeToAllowedHourFormatsMap, const_cast<char *>(country));
     }
 
-    if (allowedFormats != NULL) {  // Lookup is successful
+    if (allowedFormats != nullptr) {  // Lookup is successful
         for (int32_t i = 0; i < UPRV_LENGTHOF(fAllowedHourFormats); ++i) {
             fAllowedHourFormats[i] = allowedFormats[i];
             if (allowedFormats[i] == ALLOWED_HOUR_FORMAT_UNKNOWN) {
@@ -615,10 +629,10 @@ void DateTimePatternGenerator::getAllowedHourFormats(const Locale &locale, UErro
 UnicodeString
 DateTimePatternGenerator::getSkeleton(const UnicodeString& pattern, UErrorCode&
 /*status*/) {
-    FormatParser fp;
+    FormatParser fp2;
     DateTimeMatcher matcher;
     PtnSkeleton localSkeleton;
-    matcher.set(pattern, &fp, localSkeleton);
+    matcher.set(pattern, &fp2, localSkeleton);
     return localSkeleton.getSkeleton();
 }
 
@@ -634,10 +648,10 @@ DateTimePatternGenerator::staticGetSkeleton(
 
 UnicodeString
 DateTimePatternGenerator::getBaseSkeleton(const UnicodeString& pattern, UErrorCode& /*status*/) {
-    FormatParser fp;
+    FormatParser fp2;
     DateTimeMatcher matcher;
     PtnSkeleton localSkeleton;
-    matcher.set(pattern, &fp, localSkeleton);
+    matcher.set(pattern, &fp2, localSkeleton);
     return localSkeleton.getBaseSkeleton();
 }
 
@@ -663,7 +677,7 @@ DateTimePatternGenerator::addICUPatterns(const Locale& locale, UErrorCode& statu
         DateFormat::EStyle style = (DateFormat::EStyle)i;
         df = DateFormat::createDateInstance(style, locale);
         SimpleDateFormat* sdf;
-        if (df != NULL && (sdf = dynamic_cast<SimpleDateFormat*>(df)) != NULL) {
+        if (df != nullptr && (sdf = dynamic_cast<SimpleDateFormat*>(df)) != nullptr) {
             sdf->toPattern(dfPattern);
             addPattern(dfPattern, FALSE, conflictingString, status);
         }
@@ -672,7 +686,7 @@ DateTimePatternGenerator::addICUPatterns(const Locale& locale, UErrorCode& statu
         if (U_FAILURE(status)) { return; }
 
         df = DateFormat::createTimeInstance(style, locale);
-        if (df != NULL && (sdf = dynamic_cast<SimpleDateFormat*>(df)) != NULL) {
+        if (df != nullptr && (sdf = dynamic_cast<SimpleDateFormat*>(df)) != nullptr) {
             sdf->toPattern(dfPattern);
             addPattern(dfPattern, FALSE, conflictingString, status);
 
@@ -747,13 +761,14 @@ DateTimePatternGenerator::getCalendarTypeToUse(const Locale& locale, CharString&
         ures_getFunctionalEquivalent(
             localeWithCalendarKey,
             ULOC_LOCALE_IDENTIFIER_CAPACITY,
-            NULL,
+            nullptr,
             "calendar",
             "calendar",
             locale.getName(),
-            NULL,
+            nullptr,
             FALSE,
             &err);
+        if (U_FAILURE(err)) { return; }
         localeWithCalendarKey[ULOC_LOCALE_IDENTIFIER_CAPACITY-1] = 0; // ensure null termination
         // now get the calendar key value from that locale
         char calendarType[ULOC_KEYWORDS_CAPACITY];
@@ -763,7 +778,8 @@ DateTimePatternGenerator::getCalendarTypeToUse(const Locale& locale, CharString&
             calendarType,
             ULOC_KEYWORDS_CAPACITY,
             &err);
-        if (U_SUCCESS(err) && calendarTypeLen < ULOC_KEYWORDS_CAPACITY) {
+        if (U_FAILURE(err)) { return; }
+        if (calendarTypeLen < ULOC_KEYWORDS_CAPACITY) {
             destination.clear().append(calendarType, -1, err);
             if (U_FAILURE(err)) { return; }
         }
@@ -774,7 +790,7 @@ DateTimePatternGenerator::getCalendarTypeToUse(const Locale& locale, CharString&
 void
 DateTimePatternGenerator::consumeShortTimePattern(const UnicodeString& shortTimePattern,
         UErrorCode& status) {
-
+    if (U_FAILURE(status)) { return; }
     // set fDefaultHourFormatChar to the hour format character from this pattern
     int32_t tfIdx, tfLen = shortTimePattern.length();
     UBool ignoreChars = FALSE;
@@ -782,7 +798,7 @@ DateTimePatternGenerator::consumeShortTimePattern(const UnicodeString& shortTime
         UChar tfChar = shortTimePattern.charAt(tfIdx);
         if ( tfChar == SINGLE_QUOTE ) {
             ignoreChars = !ignoreChars; // toggle (handle quoted literals & '' for single quote)
-        } else if ( !ignoreChars && u_strchr(hourFormatChars, tfChar) != NULL ) {
+        } else if ( !ignoreChars && u_strchr(hourFormatChars, tfChar) != nullptr ) {
             fDefaultHourFormatChar = tfChar;
             break;
         }
@@ -872,9 +888,9 @@ struct DateTimePatternGenerator::AppendItemNamesSink : public ResourceSink {
                 valueStr.getTerminatedBuffer();
             }
             for (int32_t j = 1; j < UDATPG_WIDTH_COUNT; j++) {
-                UnicodeString& valueStr = dtpg.getMutableFieldDisplayName((UDateTimePatternField)i, (UDateTimePGDisplayWidth)j);
-                if (valueStr.isEmpty()) {
-                    valueStr = dtpg.getFieldDisplayName((UDateTimePatternField)i, (UDateTimePGDisplayWidth)(j-1));
+                UnicodeString& valueStr2 = dtpg.getMutableFieldDisplayName((UDateTimePatternField)i, (UDateTimePGDisplayWidth)j);
+                if (valueStr2.isEmpty()) {
+                    valueStr2 = dtpg.getFieldDisplayName((UDateTimePatternField)i, (UDateTimePGDisplayWidth)(j-1));
                 }
             }
         }
@@ -921,7 +937,7 @@ DateTimePatternGenerator::addCLDRData(const Locale& locale, UErrorCode& errorCod
     UnicodeString rbPattern, value, field;
     CharString path;
 
-    LocalUResourceBundlePointer rb(ures_open(NULL, locale.getName(), &errorCode));
+    LocalUResourceBundlePointer rb(ures_open(nullptr, locale.getName(), &errorCode));
     if (U_FAILURE(errorCode)) { return; }
 
     CharString calendarTypeToUse; // to be filled in with the type to use, if all goes well
@@ -966,12 +982,13 @@ DateTimePatternGenerator::addCLDRData(const Locale& locale, UErrorCode& errorCod
 
 void
 DateTimePatternGenerator::initHashtable(UErrorCode& err) {
-    if (fAvailableFormatKeyHash!=NULL) {
+    if (U_FAILURE(err)) { return; }
+    if (fAvailableFormatKeyHash!=nullptr) {
         return;
     }
-    if ((fAvailableFormatKeyHash = new Hashtable(FALSE, err))==NULL) {
-        err=U_MEMORY_ALLOCATION_ERROR;
-        return;
+    LocalPointer<Hashtable> hash(new Hashtable(FALSE, err), err);
+    if (U_SUCCESS(err)) {
+        fAvailableFormatKeyHash = hash.orphan();
     }
 }
 
@@ -1028,7 +1045,14 @@ DateTimePatternGenerator::getBestPattern(const UnicodeString& patternForm, UErro
 
 UnicodeString
 DateTimePatternGenerator::getBestPattern(const UnicodeString& patternForm, UDateTimePatternMatchOptions options, UErrorCode& status) {
-    const UnicodeString *bestPattern=NULL;
+    if (U_FAILURE(status)) {
+        return UnicodeString();
+    }
+    if (U_FAILURE(internalErrorCode)) {
+        status = internalErrorCode;
+        return UnicodeString();
+    }
+    const UnicodeString *bestPattern = nullptr;
     UnicodeString dtFormat;
     UnicodeString resultPattern;
     int32_t flags = kDTPGNoFlags;
@@ -1044,16 +1068,23 @@ DateTimePatternGenerator::getBestPattern(const UnicodeString& patternForm, UDate
 
     resultPattern.remove();
     dtMatcher->set(patternFormMapped, fp);
-    const PtnSkeleton* specifiedSkeleton=NULL;
-    bestPattern=getBestRaw(*dtMatcher, -1, distanceInfo, &specifiedSkeleton);
+    const PtnSkeleton* specifiedSkeleton = nullptr;
+    bestPattern=getBestRaw(*dtMatcher, -1, distanceInfo, status, &specifiedSkeleton);
+    if (U_FAILURE(status)) {
+        return UnicodeString();
+    }
+
     if ( distanceInfo->missingFieldMask==0 && distanceInfo->extraFieldMask==0 ) {
         resultPattern = adjustFieldTypes(*bestPattern, specifiedSkeleton, flags, options);
 
         return resultPattern;
     }
     int32_t neededFields = dtMatcher->getFieldMask();
-    UnicodeString datePattern=getBestAppending(neededFields & dateMask, flags, options);
-    UnicodeString timePattern=getBestAppending(neededFields & timeMask, flags, options);
+    UnicodeString datePattern=getBestAppending(neededFields & dateMask, flags, status, options);
+    UnicodeString timePattern=getBestAppending(neededFields & timeMask, flags, status, options);
+    if (U_FAILURE(status)) {
+        return UnicodeString();
+    }
     if (datePattern.length()==0) {
         if (timePattern.length()==0) {
             resultPattern.remove();
@@ -1074,7 +1105,7 @@ DateTimePatternGenerator::getBestPattern(const UnicodeString& patternForm, UDate
 
 /*
  * Map a skeleton that may have metacharacters jJC to one without, by replacing
- * the metacharacters with locale-appropriate fields of of h/H/k/K and of a/b/B
+ * the metacharacters with locale-appropriate fields of h/H/k/K and of a/b/B
  * (depends on fDefaultHourFormatChar and fAllowedHourFormats being set, which in
  * turn depends on initData having been run). This method also updates the flags
  * as necessary. Returns the updated skeleton.
@@ -1159,9 +1190,16 @@ UnicodeString
 DateTimePatternGenerator::replaceFieldTypes(const UnicodeString& pattern,
                                             const UnicodeString& skeleton,
                                             UDateTimePatternMatchOptions options,
-                                            UErrorCode& /*status*/) {
+                                            UErrorCode& status) {
+    if (U_FAILURE(status)) {
+        return UnicodeString();
+    }
+    if (U_FAILURE(internalErrorCode)) {
+        status = internalErrorCode;
+        return UnicodeString();
+    }
     dtMatcher->set(skeleton, fp);
-    UnicodeString result = adjustFieldTypes(pattern, NULL, kDTPGNoFlags, options);
+    UnicodeString result = adjustFieldTypes(pattern, nullptr, kDTPGNoFlags, options);
     return result;
 }
 
@@ -1204,20 +1242,24 @@ DateTimePatternGenerator::getDateTimeFormat() const {
 
 void
 DateTimePatternGenerator::setDateTimeFromCalendar(const Locale& locale, UErrorCode& status) {
+    if (U_FAILURE(status)) { return; }
+
     const UChar *resStr;
     int32_t resStrLen = 0;
 
-    Calendar* fCalendar = Calendar::createInstance(locale, status);
+    LocalPointer<Calendar> fCalendar(Calendar::createInstance(locale, status), status);
     if (U_FAILURE(status)) { return; }
 
-    LocalUResourceBundlePointer calData(ures_open(NULL, locale.getBaseName(), &status));
+    LocalUResourceBundlePointer calData(ures_open(nullptr, locale.getBaseName(), &status));
+    if (U_FAILURE(status)) { return; }
     ures_getByKey(calData.getAlias(), DT_DateTimeCalendarTag, calData.getAlias(), &status);
+    if (U_FAILURE(status)) { return; }
 
     LocalUResourceBundlePointer dateTimePatterns;
-    if (fCalendar != NULL && fCalendar->getType() != NULL && *fCalendar->getType() != '\0'
+    if (fCalendar->getType() != nullptr && *fCalendar->getType() != '\0'
             && uprv_strcmp(fCalendar->getType(), DT_DateTimeGregorianTag) != 0) {
         dateTimePatterns.adoptInstead(ures_getByKeyWithFallback(calData.getAlias(), fCalendar->getType(),
-                                                                NULL, &status));
+                                                                nullptr, &status));
         ures_getByKeyWithFallback(dateTimePatterns.getAlias(), DT_DateTimePatternsTag,
                                   dateTimePatterns.getAlias(), &status);
     }
@@ -1238,8 +1280,6 @@ DateTimePatternGenerator::setDateTimeFromCalendar(const Locale& locale, UErrorCo
     }
     resStr = ures_getStringByIndex(dateTimePatterns.getAlias(), (int32_t)DateFormat::kDateTime, &resStrLen, &status);
     setDateTimeFormat(UnicodeString(TRUE, resStr, resStrLen));
-
-    delete fCalendar;
 }
 
 void
@@ -1259,7 +1299,12 @@ DateTimePatternGenerator::addPattern(
     UnicodeString &conflictingPattern,
     UErrorCode& status)
 {
-    return addPatternWithSkeleton(pattern, NULL, override, conflictingPattern, status);
+    if (U_FAILURE(internalErrorCode)) {
+        status = internalErrorCode;
+        return UDATPG_NO_CONFLICT;
+    }
+
+    return addPatternWithSkeleton(pattern, nullptr, override, conflictingPattern, status);
 }
 
 // For DateTimePatternGenerator::addPatternWithSkeleton -
@@ -1280,13 +1325,17 @@ DateTimePatternGenerator::addPatternWithSkeleton(
     UnicodeString& conflictingPattern,
     UErrorCode& status)
 {
+    if (U_FAILURE(internalErrorCode)) {
+        status = internalErrorCode;
+        return UDATPG_NO_CONFLICT;
+    }
 
     UnicodeString basePattern;
     PtnSkeleton   skeleton;
     UDateTimePatternConflict conflictingStatus = UDATPG_NO_CONFLICT;
 
     DateTimeMatcher matcher;
-    if ( skeletonToUse == NULL ) {
+    if ( skeletonToUse == nullptr ) {
         matcher.set(pattern, fp, skeleton);
         matcher.getBasePattern(basePattern);
     } else {
@@ -1302,7 +1351,7 @@ DateTimePatternGenerator::addPatternWithSkeleton(
     // availableFormats items from root, which should not override any previous entry with the same base.
     UBool entryHadSpecifiedSkeleton;
     const UnicodeString *duplicatePattern = patternMap->getPatternFromBasePattern(basePattern, entryHadSpecifiedSkeleton);
-    if (duplicatePattern != NULL && (!entryHadSpecifiedSkeleton || (skeletonToUse != NULL && !override))) {
+    if (duplicatePattern != nullptr && (!entryHadSpecifiedSkeleton || (skeletonToUse != nullptr && !override))) {
         conflictingStatus = UDATPG_BASE_CONFLICT;
         conflictingPattern = *duplicatePattern;
         if (!override) {
@@ -1313,16 +1362,16 @@ DateTimePatternGenerator::addPatternWithSkeleton(
     // items from CLDR data. In that case, we don't want an item from a parent locale to replace an item with
     // same skeleton from the specified locale, so skip the current item if skeletonWasSpecified is true for
     // the previously-specified conflicting item.
-    const PtnSkeleton* entrySpecifiedSkeleton = NULL;
+    const PtnSkeleton* entrySpecifiedSkeleton = nullptr;
     duplicatePattern = patternMap->getPatternFromSkeleton(skeleton, &entrySpecifiedSkeleton);
-    if (duplicatePattern != NULL ) {
+    if (duplicatePattern != nullptr ) {
         conflictingStatus = UDATPG_CONFLICT;
         conflictingPattern = *duplicatePattern;
-        if (!override || (skeletonToUse != NULL && entrySpecifiedSkeleton != NULL)) {
+        if (!override || (skeletonToUse != nullptr && entrySpecifiedSkeleton != nullptr)) {
             return conflictingStatus;
         }
     }
-    patternMap->add(basePattern, skeleton, pattern, skeletonToUse != NULL, status);
+    patternMap->add(basePattern, skeleton, pattern, skeletonToUse != nullptr, status);
     if(U_FAILURE(status)) {
         return conflictingStatus;
     }
@@ -1369,13 +1418,16 @@ const UnicodeString*
 DateTimePatternGenerator::getBestRaw(DateTimeMatcher& source,
                                      int32_t includeMask,
                                      DistanceInfo* missingFields,
+                                     UErrorCode &status,
                                      const PtnSkeleton** specifiedSkeletonPtr) {
     int32_t bestDistance = 0x7fffffff;
     DistanceInfo tempInfo;
-    const UnicodeString *bestPattern=NULL;
-    const PtnSkeleton* specifiedSkeleton=NULL;
+    const UnicodeString *bestPattern=nullptr;
+    const PtnSkeleton* specifiedSkeleton=nullptr;
+
+    PatternMapIterator it(status);
+    if (U_FAILURE(status)) { return nullptr; }
 
-    PatternMapIterator it;
     for (it.set(*patternMap); it.hasNext(); ) {
         DateTimeMatcher trial = it.next();
         if (trial.equals(skipMatcher)) {
@@ -1485,8 +1537,8 @@ DateTimePatternGenerator::adjustFieldTypes(const UnicodeString& pattern,
                         c = fDefaultHourFormatChar;
                     }
                     field.remove();
-                    for (int32_t i=adjFieldLen; i>0; --i) {
-                        field+=c;
+                    for (int32_t j=adjFieldLen; j>0; --j) {
+                        field += c;
                     }
             }
             newPattern+=field;
@@ -1496,14 +1548,21 @@ DateTimePatternGenerator::adjustFieldTypes(const UnicodeString& pattern,
 }
 
 UnicodeString
-DateTimePatternGenerator::getBestAppending(int32_t missingFields, int32_t flags, UDateTimePatternMatchOptions options) {
+DateTimePatternGenerator::getBestAppending(int32_t missingFields, int32_t flags, UErrorCode &status, UDateTimePatternMatchOptions options) {
+    if (U_FAILURE(status)) {
+        return UnicodeString();
+    }
     UnicodeString  resultPattern, tempPattern;
-    UErrorCode err=U_ZERO_ERROR;
+    const UnicodeString* tempPatternPtr;
     int32_t lastMissingFieldMask=0;
     if (missingFields!=0) {
         resultPattern=UnicodeString();
-        const PtnSkeleton* specifiedSkeleton=NULL;
-        tempPattern = *getBestRaw(*dtMatcher, missingFields, distanceInfo, &specifiedSkeleton);
+        const PtnSkeleton* specifiedSkeleton=nullptr;
+        tempPatternPtr = getBestRaw(*dtMatcher, missingFields, distanceInfo, status, &specifiedSkeleton);
+        if (U_FAILURE(status)) {
+            return UnicodeString();
+        }
+        tempPattern = *tempPatternPtr;
         resultPattern = adjustFieldTypes(tempPattern, specifiedSkeleton, flags, options);
         if ( distanceInfo->missingFieldMask==0 ) {
             return resultPattern;
@@ -1519,19 +1578,26 @@ DateTimePatternGenerator::getBestAppending(int32_t missingFields, int32_t flags,
                 continue;
             }
             int32_t startingMask = distanceInfo->missingFieldMask;
-            tempPattern = *getBestRaw(*dtMatcher, distanceInfo->missingFieldMask, distanceInfo, &specifiedSkeleton);
+            tempPatternPtr = getBestRaw(*dtMatcher, distanceInfo->missingFieldMask, distanceInfo, status, &specifiedSkeleton);
+            if (U_FAILURE(status)) {
+                return UnicodeString();
+            }
+            tempPattern = *tempPatternPtr;
             tempPattern = adjustFieldTypes(tempPattern, specifiedSkeleton, flags, options);
             int32_t foundMask=startingMask& ~distanceInfo->missingFieldMask;
             int32_t topField=getTopBitNumber(foundMask);
-            UnicodeString appendName;
-            getAppendName((UDateTimePatternField)topField, appendName);
-            const UnicodeString *values[3] = {
-                &resultPattern,
-                &tempPattern,
-                &appendName
-            };
-            SimpleFormatter(appendItemFormats[topField], 2, 3, err).
-                    formatAndReplace(values, 3, resultPattern, NULL, 0, err);
+
+            if (appendItemFormats[topField].length() != 0) {
+                UnicodeString appendName;
+                getAppendName((UDateTimePatternField)topField, appendName);
+                const UnicodeString *values[3] = {
+                    &resultPattern,
+                    &tempPattern,
+                    &appendName
+                };
+                SimpleFormatter(appendItemFormats[topField], 2, 3, status).
+                    formatAndReplace(values, 3, resultPattern, nullptr, 0, status);
+            }
             lastMissingFieldMask = distanceInfo->missingFieldMask;
         }
     }
@@ -1539,7 +1605,7 @@ DateTimePatternGenerator::getBestAppending(int32_t missingFields, int32_t flags,
 }
 
 int32_t
-DateTimePatternGenerator::getTopBitNumber(int32_t foundMask) {
+DateTimePatternGenerator::getTopBitNumber(int32_t foundMask) const {
     if ( foundMask==0 ) {
         return 0;
     }
@@ -1568,22 +1634,21 @@ DateTimePatternGenerator::isAvailableFormatSet(const UnicodeString &key) const {
 
 void
 DateTimePatternGenerator::copyHashtable(Hashtable *other, UErrorCode &status) {
-
-    if (other == NULL) {
+    if (other == nullptr || U_FAILURE(status)) {
         return;
     }
-    if (fAvailableFormatKeyHash != NULL) {
+    if (fAvailableFormatKeyHash != nullptr) {
         delete fAvailableFormatKeyHash;
-        fAvailableFormatKeyHash = NULL;
+        fAvailableFormatKeyHash = nullptr;
     }
     initHashtable(status);
     if(U_FAILURE(status)){
         return;
     }
     int32_t pos = UHASH_FIRST;
-    const UHashElement* elem = NULL;
+    const UHashElement* elem = nullptr;
     // walk through the hash table and create a deep clone
-    while((elem = other->nextElement(pos))!= NULL){
+    while((elem = other->nextElement(pos))!= nullptr){
         const UHashTok otherKeyTok = elem->key;
         UnicodeString* otherKey = (UnicodeString*)otherKeyTok.pointer;
         fAvailableFormatKeyHash->puti(*otherKey, 1, status);
@@ -1595,8 +1660,17 @@ DateTimePatternGenerator::copyHashtable(Hashtable *other, UErrorCode &status) {
 
 StringEnumeration*
 DateTimePatternGenerator::getSkeletons(UErrorCode& status) const {
-    StringEnumeration* skeletonEnumerator = new DTSkeletonEnumeration(*patternMap, DT_SKELETON, status);
-    return skeletonEnumerator;
+    if (U_FAILURE(status)) {
+        return nullptr;
+    }
+    if (U_FAILURE(internalErrorCode)) {
+        status = internalErrorCode;
+        return nullptr;
+    }
+    LocalPointer<StringEnumeration> skeletonEnumerator(
+        new DTSkeletonEnumeration(*patternMap, DT_SKELETON, status), status);
+
+    return U_SUCCESS(status) ? skeletonEnumerator.orphan() : nullptr;
 }
 
 const UnicodeString&
@@ -1607,47 +1681,70 @@ DateTimePatternGenerator::getPatternForSkeleton(const UnicodeString& skeleton) c
         return emptyString;
     }
     curElem = patternMap->getHeader(skeleton.charAt(0));
-    while ( curElem != NULL ) {
+    while ( curElem != nullptr ) {
         if ( curElem->skeleton->getSkeleton()==skeleton ) {
             return curElem->pattern;
         }
-        curElem=curElem->next;
+        curElem = curElem->next.getAlias();
     }
     return emptyString;
 }
 
 StringEnumeration*
 DateTimePatternGenerator::getBaseSkeletons(UErrorCode& status) const {
-    StringEnumeration* baseSkeletonEnumerator = new DTSkeletonEnumeration(*patternMap, DT_BASESKELETON, status);
-    return baseSkeletonEnumerator;
+    if (U_FAILURE(status)) {
+        return nullptr;
+    }
+    if (U_FAILURE(internalErrorCode)) {
+        status = internalErrorCode;
+        return nullptr;
+    }
+    LocalPointer<StringEnumeration> baseSkeletonEnumerator(
+        new DTSkeletonEnumeration(*patternMap, DT_BASESKELETON, status), status);
+
+    return U_SUCCESS(status) ? baseSkeletonEnumerator.orphan() : nullptr;
 }
 
 StringEnumeration*
 DateTimePatternGenerator::getRedundants(UErrorCode& status) {
-    StringEnumeration* output = new DTRedundantEnumeration();
+    if (U_FAILURE(status)) { return nullptr; }
+    if (U_FAILURE(internalErrorCode)) {
+        status = internalErrorCode;
+        return nullptr;
+    }
+    LocalPointer<StringEnumeration> output(new DTRedundantEnumeration(), status);
+    if (U_FAILURE(status)) { return nullptr; }
     const UnicodeString *pattern;
-    PatternMapIterator it;
+    PatternMapIterator it(status);
+    if (U_FAILURE(status)) { return nullptr; }
+
     for (it.set(*patternMap); it.hasNext(); ) {
         DateTimeMatcher current = it.next();
         pattern = patternMap->getPatternFromSkeleton(*(it.getSkeleton()));
         if ( isCanonicalItem(*pattern) ) {
             continue;
         }
-        if ( skipMatcher == NULL ) {
+        if ( skipMatcher == nullptr ) {
             skipMatcher = new DateTimeMatcher(current);
+            if (skipMatcher == nullptr) {
+                status = U_MEMORY_ALLOCATION_ERROR;
+                return nullptr;
+            }
         }
         else {
             *skipMatcher = current;
         }
         UnicodeString trial = getBestPattern(current.getPattern(), status);
+        if (U_FAILURE(status)) { return nullptr; }
         if (trial == *pattern) {
-            ((DTRedundantEnumeration *)output)->add(*pattern, status);
+            ((DTRedundantEnumeration *)output.getAlias())->add(*pattern, status);
+            if (U_FAILURE(status)) { return nullptr; }
         }
         if (current.equals(skipMatcher)) {
             continue;
         }
     }
-    return output;
+    return output.orphan();
 }
 
 UBool
@@ -1671,45 +1768,54 @@ DateTimePatternGenerator::clone() const {
 
 PatternMap::PatternMap() {
    for (int32_t i=0; i < MAX_PATTERN_ENTRIES; ++i ) {
-      boot[i]=NULL;
+       boot[i] = nullptr;
    }
    isDupAllowed = TRUE;
 }
 
 void
 PatternMap::copyFrom(const PatternMap& other, UErrorCode& status) {
+    if (U_FAILURE(status)) {
+        return;
+    }
     this->isDupAllowed = other.isDupAllowed;
-    for (int32_t bootIndex=0; bootIndex<MAX_PATTERN_ENTRIES; ++bootIndex ) {
-        PtnElem *curElem, *otherElem, *prevElem=NULL;
+    for (int32_t bootIndex = 0; bootIndex < MAX_PATTERN_ENTRIES; ++bootIndex) {
+        PtnElem *curElem, *otherElem, *prevElem=nullptr;
         otherElem = other.boot[bootIndex];
-        while (otherElem!=NULL) {
-            if ((curElem = new PtnElem(otherElem->basePattern, otherElem->pattern))==NULL) {
-                // out of memory
-                status = U_MEMORY_ALLOCATION_ERROR;
-                return;
+        while (otherElem != nullptr) {
+            LocalPointer<PtnElem> newElem(new PtnElem(otherElem->basePattern, otherElem->pattern), status);
+            if (U_FAILURE(status)) {
+                return; // out of memory
             }
-            if ( this->boot[bootIndex]== NULL ) {
-                this->boot[bootIndex] = curElem;
+            newElem->skeleton.adoptInsteadAndCheckErrorCode(new PtnSkeleton(*(otherElem->skeleton)), status);
+            if (U_FAILURE(status)) {
+                return; // out of memory
             }
-            if ((curElem->skeleton=new PtnSkeleton(*(otherElem->skeleton))) == NULL ) {
-                // out of memory
-                status = U_MEMORY_ALLOCATION_ERROR;
-                return;
-            }
-            curElem->skeletonWasSpecified = otherElem->skeletonWasSpecified;
-            if (prevElem!=NULL) {
-                prevElem->next=curElem;
+            newElem->skeletonWasSpecified = otherElem->skeletonWasSpecified;
+
+            // Release ownership from the LocalPointer of the PtnElem object.
+            // The PtnElem will now be owned by either the boot (for the first entry in the linked-list)
+            // or owned by the previous PtnElem object in the linked-list.
+            curElem = newElem.orphan();
+
+            if (this->boot[bootIndex] == nullptr) {
+                this->boot[bootIndex] = curElem;
+            } else {
+                if (prevElem != nullptr) {
+                    prevElem->next.adoptInstead(curElem);
+                } else {
+                    U_ASSERT(false);
+                }
             }
-            curElem->next=NULL;
             prevElem = curElem;
-            otherElem = otherElem->next;
+            otherElem = otherElem->next.getAlias();
         }
 
     }
 }
 
 PtnElem*
-PatternMap::getHeader(UChar baseChar) {
+PatternMap::getHeader(UChar baseChar) const {
     PtnElem* curElem;
 
     if ( (baseChar >= CAP_A) && (baseChar <= CAP_Z) ) {
@@ -1720,7 +1826,7 @@ PatternMap::getHeader(UChar baseChar) {
             curElem = boot[26+baseChar-LOW_A];
         }
         else {
-            return NULL;
+            return nullptr;
         }
     }
     return curElem;
@@ -1728,9 +1834,9 @@ PatternMap::getHeader(UChar baseChar) {
 
 PatternMap::~PatternMap() {
    for (int32_t i=0; i < MAX_PATTERN_ENTRIES; ++i ) {
-       if (boot[i]!=NULL ) {
+       if (boot[i] != nullptr ) {
            delete boot[i];
-           boot[i]=NULL;
+           boot[i] = nullptr;
        }
    }
 }  // PatternMap destructor
@@ -1759,39 +1865,45 @@ PatternMap::add(const UnicodeString& basePattern,
          }
     }
 
-    if (baseElem == NULL) {
-        if ((curElem = new PtnElem(basePattern, value)) == NULL ) {
-            // out of memory
-            status = U_MEMORY_ALLOCATION_ERROR;
-            return;
+    if (baseElem == nullptr) {
+        LocalPointer<PtnElem> newElem(new PtnElem(basePattern, value), status);
+        if (U_FAILURE(status)) {
+            return; // out of memory
         }
+        newElem->skeleton.adoptInsteadAndCheckErrorCode(new PtnSkeleton(skeleton), status);
+        if (U_FAILURE(status)) {
+            return; // out of memory
+        }
+        newElem->skeletonWasSpecified = skeletonWasSpecified;
         if (baseChar >= LOW_A) {
-            boot[26 + (baseChar-LOW_A)] = curElem;
+            boot[26 + (baseChar - LOW_A)] = newElem.orphan(); // the boot array now owns the PtnElem.
         }
         else {
-            boot[baseChar-CAP_A] = curElem;
+            boot[baseChar - CAP_A] = newElem.orphan(); // the boot array now owns the PtnElem.
         }
-        curElem->skeleton = new PtnSkeleton(skeleton);
-        curElem->skeletonWasSpecified = skeletonWasSpecified;
     }
-    if ( baseElem != NULL ) {
+    if ( baseElem != nullptr ) {
         curElem = getDuplicateElem(basePattern, skeleton, baseElem);
 
-        if (curElem == NULL) {
+        if (curElem == nullptr) {
             // add new element to the list.
             curElem = baseElem;
-            while( curElem -> next != NULL )
+            while( curElem -> next != nullptr )
             {
-                curElem = curElem->next;
+                curElem = curElem->next.getAlias();
             }
-            if ((curElem->next = new PtnElem(basePattern, value)) == NULL ) {
-                // out of memory
-                status = U_MEMORY_ALLOCATION_ERROR;
-                return;
+
+            LocalPointer<PtnElem> newElem(new PtnElem(basePattern, value), status);
+            if (U_FAILURE(status)) {
+                return; // out of memory
             }
-            curElem=curElem->next;
-            curElem->skeleton = new PtnSkeleton(skeleton);
-            curElem->skeletonWasSpecified = skeletonWasSpecified;
+            newElem->skeleton.adoptInsteadAndCheckErrorCode(new PtnSkeleton(skeleton), status);
+            if (U_FAILURE(status)) {
+                return; // out of memory
+            }
+            newElem->skeletonWasSpecified = skeletonWasSpecified;
+            curElem->next.adoptInstead(newElem.orphan());
+            curElem = curElem->next.getAlias();
         }
         else {
             // Pattern exists in the list already.
@@ -1809,11 +1921,11 @@ PatternMap::add(const UnicodeString& basePattern,
 
 // Find the pattern from the given basePattern string.
 const UnicodeString *
-PatternMap::getPatternFromBasePattern(UnicodeString& basePattern, UBool& skeletonWasSpecified) { // key to search for
+PatternMap::getPatternFromBasePattern(const UnicodeString& basePattern, UBool& skeletonWasSpecified) const { // key to search for
    PtnElem *curElem;
 
-   if ((curElem=getHeader(basePattern.charAt(0)))==NULL) {
-       return NULL;  // no match
+   if ((curElem=getHeader(basePattern.charAt(0)))==nullptr) {
+       return nullptr;  // no match
    }
 
    do  {
@@ -1821,10 +1933,10 @@ PatternMap::getPatternFromBasePattern(UnicodeString& basePattern, UBool& skeleto
           skeletonWasSpecified = curElem->skeletonWasSpecified;
           return &(curElem->pattern);
        }
-       curElem=curElem->next;
-   }while (curElem != NULL);
+       curElem = curElem->next.getAlias();
+   } while (curElem != nullptr);
 
-   return NULL;
+   return nullptr;
 }  // PatternMap::getFromBasePattern
 
 
@@ -1835,69 +1947,69 @@ PatternMap::getPatternFromBasePattern(UnicodeString& basePattern, UBool& skeleto
 // optimum distance value in getBestRaw. When this is called from public getRedundants (specifiedSkeletonPtr is NULL),
 // for now it will continue to compare based on baseOriginal so as not to change the behavior unnecessarily.
 const UnicodeString *
-PatternMap::getPatternFromSkeleton(PtnSkeleton& skeleton, const PtnSkeleton** specifiedSkeletonPtr) { // key to search for
+PatternMap::getPatternFromSkeleton(const PtnSkeleton& skeleton, const PtnSkeleton** specifiedSkeletonPtr) const { // key to search for
    PtnElem *curElem;
 
    if (specifiedSkeletonPtr) {
-       *specifiedSkeletonPtr = NULL;
+       *specifiedSkeletonPtr = nullptr;
    }
 
    // find boot entry
    UChar baseChar = skeleton.getFirstChar();
-   if ((curElem=getHeader(baseChar))==NULL) {
-       return NULL;  // no match
+   if ((curElem=getHeader(baseChar))==nullptr) {
+       return nullptr;  // no match
    }
 
    do  {
        UBool equal;
-       if (specifiedSkeletonPtr != NULL) { // called from DateTimePatternGenerator::getBestRaw or addPattern, use original
+       if (specifiedSkeletonPtr != nullptr) { // called from DateTimePatternGenerator::getBestRaw or addPattern, use original
            equal = curElem->skeleton->original == skeleton.original;
        } else { // called from DateTimePatternGenerator::getRedundants, use baseOriginal
            equal = curElem->skeleton->baseOriginal == skeleton.baseOriginal;
        }
        if (equal) {
            if (specifiedSkeletonPtr && curElem->skeletonWasSpecified) {
-               *specifiedSkeletonPtr = curElem->skeleton;
+               *specifiedSkeletonPtr = curElem->skeleton.getAlias();
            }
            return &(curElem->pattern);
        }
-       curElem=curElem->next;
-   }while (curElem != NULL);
+       curElem = curElem->next.getAlias();
+   } while (curElem != nullptr);
 
-   return NULL;
+   return nullptr;
 }
 
 UBool
-PatternMap::equals(const PatternMap& other) {
+PatternMap::equals(const PatternMap& other) const {
     if ( this==&other ) {
         return TRUE;
     }
-    for (int32_t bootIndex=0; bootIndex<MAX_PATTERN_ENTRIES; ++bootIndex ) {
-        if ( boot[bootIndex]==other.boot[bootIndex] ) {
+    for (int32_t bootIndex = 0; bootIndex < MAX_PATTERN_ENTRIES; ++bootIndex) {
+        if (boot[bootIndex] == other.boot[bootIndex]) {
             continue;
         }
-        if ( (boot[bootIndex]==NULL)||(other.boot[bootIndex]==NULL) ) {
+        if ((boot[bootIndex] == nullptr) || (other.boot[bootIndex] == nullptr)) {
             return FALSE;
         }
         PtnElem *otherElem = other.boot[bootIndex];
         PtnElem *myElem = boot[bootIndex];
-        while ((otherElem!=NULL) || (myElem!=NULL)) {
+        while ((otherElem != nullptr) || (myElem != nullptr)) {
             if ( myElem == otherElem ) {
                 break;
             }
-            if ((otherElem==NULL) || (myElem==NULL)) {
+            if ((otherElem == nullptr) || (myElem == nullptr)) {
                 return FALSE;
             }
             if ( (myElem->basePattern != otherElem->basePattern) ||
                  (myElem->pattern != otherElem->pattern) ) {
                 return FALSE;
             }
-            if ((myElem->skeleton!=otherElem->skeleton)&&
+            if ((myElem->skeleton.getAlias() != otherElem->skeleton.getAlias()) &&
                 !myElem->skeleton->equals(*(otherElem->skeleton))) {
                 return FALSE;
             }
-            myElem = myElem->next;
-            otherElem=otherElem->next;
+            myElem = myElem->next.getAlias();
+            otherElem = otherElem->next.getAlias();
         }
     }
     return TRUE;
@@ -1909,21 +2021,21 @@ PtnElem*
 PatternMap::getDuplicateElem(
             const UnicodeString &basePattern,
             const PtnSkeleton &skeleton,
-            PtnElem *baseElem)  {
+            PtnElem *baseElem) {
    PtnElem *curElem;
 
-   if ( baseElem == (PtnElem *)NULL )  {
-         return (PtnElem*)NULL;
+   if ( baseElem == nullptr ) {
+         return nullptr;
    }
    else {
          curElem = baseElem;
    }
    do {
      if ( basePattern.compare(curElem->basePattern)==0 ) {
-        UBool isEqual=TRUE;
-        for (int32_t i=0; i<UDATPG_FIELD_COUNT; ++i) {
+         UBool isEqual = TRUE;
+         for (int32_t i = 0; i < UDATPG_FIELD_COUNT; ++i) {
             if (curElem->skeleton->type[i] != skeleton.type[i] ) {
-                isEqual=FALSE;
+                isEqual = FALSE;
                 break;
             }
         }
@@ -1931,11 +2043,11 @@ PatternMap::getDuplicateElem(
             return curElem;
         }
      }
-     curElem = curElem->next;
-   } while( curElem != (PtnElem *)NULL );
+     curElem = curElem->next.getAlias();
+   } while( curElem != nullptr );
 
    // end of the list
-   return (PtnElem*)NULL;
+   return nullptr;
 
 }  // PatternMap::getDuplicateElem
 
@@ -1976,7 +2088,7 @@ DateTimeMatcher::set(const UnicodeString& pattern, FormatParser* fp, PtnSkeleton
             continue;
         }
         int32_t canonicalIndex = fp->getCanonicalIndex(value);
-        if (canonicalIndex < 0 ) {
+        if (canonicalIndex < 0) {
             continue;
         }
         const dtTypeElem *row = &dtTypes[canonicalIndex];
@@ -1986,8 +2098,9 @@ DateTimeMatcher::set(const UnicodeString& pattern, FormatParser* fp, PtnSkeleton
         int32_t repeatCount = row->minLen;
         skeletonResult.baseOriginal.populate(field, repeatChar, repeatCount);
         int16_t subField = row->type;
-        if ( row->type > 0) {
-            subField += value.length();
+        if (row->type > 0) {
+            U_ASSERT(value.length() < INT16_MAX);
+            subField += static_cast<int16_t>(value.length());
         }
         skeletonResult.type[field] = subField;
     }
@@ -2031,8 +2144,8 @@ DateTimeMatcher::getPattern() {
 }
 
 int32_t
-DateTimeMatcher::getDistance(const DateTimeMatcher& other, int32_t includeMask, DistanceInfo& distanceInfo) {
-    int32_t result=0;
+DateTimeMatcher::getDistance(const DateTimeMatcher& other, int32_t includeMask, DistanceInfo& distanceInfo) const {
+    int32_t result = 0;
     distanceInfo.clear();
     for (int32_t i=0; i<UDATPG_FIELD_COUNT; ++i ) {
         int32_t myType = (includeMask&(1<<i))==0 ? 0 : skeleton.type[i];
@@ -2071,13 +2184,13 @@ DateTimeMatcher::copyFrom() {
 
 UBool
 DateTimeMatcher::equals(const DateTimeMatcher* other) const {
-    if (other==NULL) { return FALSE; }
+    if (other==nullptr) { return FALSE; }
     return skeleton.original == other->skeleton.original;
 }
 
 int32_t
-DateTimeMatcher::getFieldMask() {
-    int32_t result=0;
+DateTimeMatcher::getFieldMask() const {
+    int32_t result = 0;
 
     for (int32_t i=0; i<UDATPG_FIELD_COUNT; ++i) {
         if (skeleton.type[i]!=0) {
@@ -2094,7 +2207,7 @@ DateTimeMatcher::getSkeletonPtr() {
 
 FormatParser::FormatParser () {
     status = START;
-    itemNumber=0;
+    itemNumber = 0;
 }
 
 
@@ -2106,7 +2219,7 @@ FormatParser::~FormatParser () {
 // Note: the startPos may
 FormatParser::TokenStatus
 FormatParser::setTokens(const UnicodeString& pattern, int32_t startPos, int32_t *len) {
-    int32_t  curLoc = startPos;
+    int32_t curLoc = startPos;
     if ( curLoc >= pattern.length()) {
         return DONE;
     }
@@ -2132,10 +2245,10 @@ FormatParser::setTokens(const UnicodeString& pattern, int32_t startPos, int32_t
 
 void
 FormatParser::set(const UnicodeString& pattern) {
-    int32_t startPos=0;
-    TokenStatus result=START;
-    int32_t len=0;
-    itemNumber =0;
+    int32_t startPos = 0;
+    TokenStatus result = START;
+    int32_t len = 0;
+    itemNumber = 0;
 
     do {
         result = setTokens( pattern, startPos, &len );
@@ -2186,14 +2299,14 @@ FormatParser::getCanonicalIndex(const UnicodeString& s, UBool strict) {
 
 UBool
 FormatParser::isQuoteLiteral(const UnicodeString& s) {
-    return (UBool)(s.charAt(0)==SINGLE_QUOTE);
+    return (UBool)(s.charAt(0) == SINGLE_QUOTE);
 }
 
-// This function aussumes the current itemIndex points to the quote literal.
+// This function assumes the current itemIndex points to the quote literal.
 // Please call isQuoteLiteral prior to this function.
 void
 FormatParser::getQuoteLiteral(UnicodeString& quote, int32_t *itemIndex) {
-    int32_t i=*itemIndex;
+    int32_t i = *itemIndex;
 
     quote.remove();
     if (items[i].charAt(0)==SINGLE_QUOTE) {
@@ -2222,7 +2335,7 @@ FormatParser::getQuoteLiteral(UnicodeString& quote, int32_t *itemIndex) {
 }
 
 UBool
-FormatParser::isPatternSeparator(UnicodeString& field) {
+FormatParser::isPatternSeparator(const UnicodeString& field) const {
     for (int32_t i=0; i<field.length(); ++i ) {
         UChar c= field.charAt(i);
         if ( (c==SINGLE_QUOTE) || (c==BACKSLASH) || (c==SPACE) || (c==COLON) ||
@@ -2239,21 +2352,19 @@ FormatParser::isPatternSeparator(UnicodeString& field) {
 DistanceInfo::~DistanceInfo() {}
 
 void
-DistanceInfo::setTo(DistanceInfo &other) {
+DistanceInfo::setTo(const DistanceInfo& other) {
     missingFieldMask = other.missingFieldMask;
     extraFieldMask= other.extraFieldMask;
 }
 
-PatternMapIterator::PatternMapIterator() {
-    bootIndex = 0;
-    nodePtr = NULL;
-    patternMap=NULL;
-    matcher= new DateTimeMatcher();
+PatternMapIterator::PatternMapIterator(UErrorCode& status) :
+    bootIndex(0), nodePtr(nullptr), matcher(nullptr), patternMap(nullptr)
+{
+    if (U_FAILURE(status)) { return; }
+    matcher.adoptInsteadAndCheckErrorCode(new DateTimeMatcher(), status);
 }
 
-
 PatternMapIterator::~PatternMapIterator() {
-    delete matcher;
 }
 
 void
@@ -2262,36 +2373,36 @@ PatternMapIterator::set(PatternMap& newPatternMap) {
 }
 
 PtnSkeleton*
-PatternMapIterator::getSkeleton() {
-    if ( nodePtr == NULL ) {
-        return NULL;
+PatternMapIterator::getSkeleton() const {
+    if ( nodePtr == nullptr ) {
+        return nullptr;
     }
     else {
-        return nodePtr->skeleton;
+        return nodePtr->skeleton.getAlias();
     }
 }
 
 UBool
-PatternMapIterator::hasNext() {
-    int32_t headIndex=bootIndex;
-    PtnElem *curPtr=nodePtr;
+PatternMapIterator::hasNext() const {
+    int32_t headIndex = bootIndex;
+    PtnElem *curPtr = nodePtr;
 
-    if (patternMap==NULL) {
+    if (patternMap==nullptr) {
         return FALSE;
     }
     while ( headIndex < MAX_PATTERN_ENTRIES ) {
-        if ( curPtr != NULL ) {
-            if ( curPtr->next != NULL ) {
+        if ( curPtr != nullptr ) {
+            if ( curPtr->next != nullptr ) {
                 return TRUE;
             }
             else {
                 headIndex++;
-                curPtr=NULL;
+                curPtr=nullptr;
                 continue;
             }
         }
         else {
-            if ( patternMap->boot[headIndex] != NULL ) {
+            if ( patternMap->boot[headIndex] != nullptr ) {
                 return TRUE;
             }
             else {
@@ -2299,7 +2410,6 @@ PatternMapIterator::hasNext() {
                 continue;
             }
         }
-
     }
     return FALSE;
 }
@@ -2307,19 +2417,19 @@ PatternMapIterator::hasNext() {
 DateTimeMatcher&
 PatternMapIterator::next() {
     while ( bootIndex < MAX_PATTERN_ENTRIES ) {
-        if ( nodePtr != NULL ) {
-            if ( nodePtr->next != NULL ) {
-                nodePtr = nodePtr->next;
+        if ( nodePtr != nullptr ) {
+            if ( nodePtr->next != nullptr ) {
+                nodePtr = nodePtr->next.getAlias();
                 break;
             }
             else {
                 bootIndex++;
-                nodePtr=NULL;
+                nodePtr=nullptr;
                 continue;
             }
         }
         else {
-            if ( patternMap->boot[bootIndex] != NULL ) {
+            if ( patternMap->boot[bootIndex] != nullptr ) {
                 nodePtr = patternMap->boot[bootIndex];
                 break;
             }
@@ -2329,7 +2439,7 @@ PatternMapIterator::next() {
             }
         }
     }
-    if (nodePtr!=NULL) {
+    if (nodePtr!=nullptr) {
         matcher->copyFrom(*nodePtr->skeleton);
     }
     else {
@@ -2468,36 +2578,28 @@ PtnSkeleton::~PtnSkeleton() {
 }
 
 PtnElem::PtnElem(const UnicodeString &basePat, const UnicodeString &pat) :
-basePattern(basePat),
-skeleton(NULL),
-pattern(pat),
-next(NULL)
+    basePattern(basePat), skeleton(nullptr), pattern(pat), next(nullptr)
 {
 }
 
 PtnElem::~PtnElem() {
-
-    if (next!=NULL) {
-        delete next;
-    }
-    delete skeleton;
 }
 
-DTSkeletonEnumeration::DTSkeletonEnumeration(PatternMap &patternMap, dtStrEnum type, UErrorCode& status) {
+DTSkeletonEnumeration::DTSkeletonEnumeration(PatternMap& patternMap, dtStrEnum type, UErrorCode& status) : fSkeletons(nullptr) {
     PtnElem  *curElem;
     PtnSkeleton *curSkeleton;
     UnicodeString s;
     int32_t bootIndex;
 
     pos=0;
-    fSkeletons = new UVector(status);
+    fSkeletons.adoptInsteadAndCheckErrorCode(new UVector(status), status);
     if (U_FAILURE(status)) {
-        delete fSkeletons;
         return;
     }
+
     for (bootIndex=0; bootIndex<MAX_PATTERN_ENTRIES; ++bootIndex ) {
         curElem = patternMap.boot[bootIndex];
-        while (curElem!=NULL) {
+        while (curElem!=nullptr) {
             switch(type) {
                 case DT_BASESKELETON:
                     s=curElem->basePattern;
@@ -2506,32 +2608,36 @@ DTSkeletonEnumeration::DTSkeletonEnumeration(PatternMap &patternMap, dtStrEnum t
                     s=curElem->pattern;
                     break;
                 case DT_SKELETON:
-                    curSkeleton=curElem->skeleton;
+                    curSkeleton=curElem->skeleton.getAlias();
                     s=curSkeleton->getSkeleton();
                     break;
             }
             if ( !isCanonicalItem(s) ) {
-                fSkeletons->addElement(new UnicodeString(s), status);
+                LocalPointer<UnicodeString> newElem(new UnicodeString(s), status);
+                if (U_FAILURE(status)) { 
+                    return;
+                }
+                fSkeletons->addElement(newElem.getAlias(), status);
                 if (U_FAILURE(status)) {
-                    delete fSkeletons;
-                    fSkeletons = NULL;
+                    fSkeletons.adoptInstead(nullptr);
                     return;
                 }
+                newElem.orphan(); // fSkeletons vector now owns the UnicodeString.
             }
-            curElem = curElem->next;
+            curElem = curElem->next.getAlias();
         }
     }
-    if ((bootIndex==MAX_PATTERN_ENTRIES) && (curElem!=NULL) ) {
+    if ((bootIndex==MAX_PATTERN_ENTRIES) && (curElem!=nullptr) ) {
         status = U_BUFFER_OVERFLOW_ERROR;
     }
 }
 
 const UnicodeString*
 DTSkeletonEnumeration::snext(UErrorCode& status) {
-    if (U_SUCCESS(status) && pos < fSkeletons->size()) {
+    if (U_SUCCESS(status) && fSkeletons.isValid() && pos < fSkeletons->size()) {
         return (const UnicodeString*)fSkeletons->elementAt(pos++);
     }
-    return NULL;
+    return nullptr;
 }
 
 void
@@ -2541,7 +2647,7 @@ DTSkeletonEnumeration::reset(UErrorCode& /*status*/) {
 
 int32_t
 DTSkeletonEnumeration::count(UErrorCode& /*status*/) const {
-   return (fSkeletons==NULL) ? 0 : fSkeletons->size();
+   return (fSkeletons.isNull()) ? 0 : fSkeletons->size();
 }
 
 UBool
@@ -2559,44 +2665,45 @@ DTSkeletonEnumeration::isCanonicalItem(const UnicodeString& item) {
 
 DTSkeletonEnumeration::~DTSkeletonEnumeration() {
     UnicodeString *s;
-    for (int32_t i=0; i<fSkeletons->size(); ++i) {
-        if ((s=(UnicodeString *)fSkeletons->elementAt(i))!=NULL) {
-            delete s;
+    if (fSkeletons.isValid()) {
+        for (int32_t i = 0; i < fSkeletons->size(); ++i) {
+            if ((s = (UnicodeString *)fSkeletons->elementAt(i)) != nullptr) {
+                delete s;
+            }
         }
     }
-    delete fSkeletons;
 }
 
-DTRedundantEnumeration::DTRedundantEnumeration() {
-    pos=0;
-    fPatterns = NULL;
+DTRedundantEnumeration::DTRedundantEnumeration() : pos(0), fPatterns(nullptr) {
 }
 
 void
 DTRedundantEnumeration::add(const UnicodeString& pattern, UErrorCode& status) {
-    if (U_FAILURE(status)) return;
-    if (fPatterns == NULL)  {
-        fPatterns = new UVector(status);
+    if (U_FAILURE(status)) { return; }
+    if (fPatterns.isNull())  {
+        fPatterns.adoptInsteadAndCheckErrorCode(new UVector(status), status);
         if (U_FAILURE(status)) {
-            delete fPatterns;
-            fPatterns = NULL;
             return;
        }
     }
-    fPatterns->addElement(new UnicodeString(pattern), status);
+    LocalPointer<UnicodeString> newElem(new UnicodeString(pattern), status);
+    if (U_FAILURE(status)) {
+        return;
+    }
+    fPatterns->addElement(newElem.getAlias(), status);
     if (U_FAILURE(status)) {
-        delete fPatterns;
-        fPatterns = NULL;
+        fPatterns.adoptInstead(nullptr);
         return;
     }
+    newElem.orphan(); // fPatterns now owns the string.
 }
 
 const UnicodeString*
 DTRedundantEnumeration::snext(UErrorCode& status) {
-    if (U_SUCCESS(status) && pos < fPatterns->size()) {
+    if (U_SUCCESS(status) && fPatterns.isValid() && pos < fPatterns->size()) {
         return (const UnicodeString*)fPatterns->elementAt(pos++);
     }
-    return NULL;
+    return nullptr;
 }
 
 void
@@ -2606,11 +2713,11 @@ DTRedundantEnumeration::reset(UErrorCode& /*status*/) {
 
 int32_t
 DTRedundantEnumeration::count(UErrorCode& /*status*/) const {
-       return (fPatterns==NULL) ? 0 : fPatterns->size();
+    return (fPatterns.isNull()) ? 0 : fPatterns->size();
 }
 
 UBool
-DTRedundantEnumeration::isCanonicalItem(const UnicodeString& item) {
+DTRedundantEnumeration::isCanonicalItem(const UnicodeString& item) const {
     if ( item.length() != 1 ) {
         return FALSE;
     }
@@ -2624,12 +2731,13 @@ DTRedundantEnumeration::isCanonicalItem(const UnicodeString& item) {
 
 DTRedundantEnumeration::~DTRedundantEnumeration() {
     UnicodeString *s;
-    for (int32_t i=0; i<fPatterns->size(); ++i) {
-        if ((s=(UnicodeString *)fPatterns->elementAt(i))!=NULL) {
-            delete s;
+    if (fPatterns.isValid()) {
+        for (int32_t i = 0; i < fPatterns->size(); ++i) {
+            if ((s = (UnicodeString *)fPatterns->elementAt(i)) != nullptr) {
+                delete s;
+            }
         }
-    }
-    delete fPatterns;
+    }    
 }
 
 U_NAMESPACE_END
index 2ea31a7..95219f0 100644 (file)
@@ -116,7 +116,7 @@ typedef struct dtTypeElem {
     int16_t                type;
     int16_t                minLen;
     int16_t                weight;
-}dtTypeElem;
+} dtTypeElem;
 
 // A compact storage mechanism for skeleton field strings.  Several dozen of these will be created
 // for a typical DateTimePatternGenerator instance.
@@ -172,30 +172,28 @@ public:
     virtual ~PtnSkeleton();
 };
 
-
 class PtnElem : public UMemory {
 public:
     UnicodeString basePattern;
-    PtnSkeleton   *skeleton;
+    LocalPointer<PtnSkeleton> skeleton;
     UnicodeString pattern;
     UBool         skeletonWasSpecified; // if specified in availableFormats, not derived
-    PtnElem       *next;
+    LocalPointer<PtnElem> next;
 
     PtnElem(const UnicodeString &basePattern, const UnicodeString &pattern);
     virtual ~PtnElem();
-
 };
 
 class FormatParser : public UMemory {
 public:
     UnicodeString items[MAX_DT_TOKEN];
-    int32_t  itemNumber;
+    int32_t itemNumber;
 
     FormatParser();
     virtual ~FormatParser();
     void set(const UnicodeString& patternString);
     void getQuoteLiteral(UnicodeString& quote, int32_t *itemIndex);
-    UBool isPatternSeparator(UnicodeString& field);
+    UBool isPatternSeparator(const UnicodeString& field) const;
     static UBool isQuoteLiteral(const UnicodeString& s);
     static int32_t getCanonicalIndex(const UnicodeString& s) { return getCanonicalIndex(s, TRUE); }
     static int32_t getCanonicalIndex(const UnicodeString& s, UBool strict);
@@ -206,7 +204,7 @@ private:
        ADD_TOKEN,
        SYNTAX_ERROR,
        DONE
-   } ToeknStatus;
+   } TokenStatus;
 
    TokenStatus status;
    virtual TokenStatus setTokens(const UnicodeString& pattern, int32_t startPos, int32_t *len);
@@ -220,7 +218,7 @@ public:
     DistanceInfo() {}
     virtual ~DistanceInfo();
     void clear() { missingFieldMask = extraFieldMask = 0; }
-    void setTo(DistanceInfo& other);
+    void setTo(const DistanceInfo& other);
     void addMissing(int32_t field) { missingFieldMask |= (1<<field); }
     void addExtra(int32_t field) { extraFieldMask |= (1<<field); }
 };
@@ -237,11 +235,11 @@ public:
     void copyFrom();
     PtnSkeleton* getSkeletonPtr();
     UBool equals(const DateTimeMatcher* other) const;
-    int32_t getDistance(const DateTimeMatcher& other, int32_t includeMask, DistanceInfo& distanceInfo);
+    int32_t getDistance(const DateTimeMatcher& other, int32_t includeMask, DistanceInfo& distanceInfo) const;
     DateTimeMatcher();
     DateTimeMatcher(const DateTimeMatcher& other);
     virtual ~DateTimeMatcher();
-    int32_t getFieldMask();
+    int32_t getFieldMask() const;
 };
 
 class PatternMap : public UMemory {
@@ -250,34 +248,34 @@ public:
     PatternMap();
     virtual  ~PatternMap();
     void  add(const UnicodeString& basePattern, const PtnSkeleton& skeleton, const UnicodeString& value, UBool skeletonWasSpecified, UErrorCode& status);
-    const UnicodeString* getPatternFromBasePattern(UnicodeString& basePattern, UBool& skeletonWasSpecified);
-    const UnicodeString* getPatternFromSkeleton(PtnSkeleton& skeleton, const PtnSkeleton** specifiedSkeletonPtr = 0);
+    const UnicodeString* getPatternFromBasePattern(const UnicodeString& basePattern, UBool& skeletonWasSpecified) const;
+    const UnicodeString* getPatternFromSkeleton(const PtnSkeleton& skeleton, const PtnSkeleton** specifiedSkeletonPtr = 0) const;
     void copyFrom(const PatternMap& other, UErrorCode& status);
-    PtnElem* getHeader(UChar baseChar);
-    UBool equals(const PatternMap& other);
+    PtnElem* getHeader(UChar baseChar) const;
+    UBool equals(const PatternMap& other) const;
 private:
     UBool isDupAllowed;
-    PtnElem*  getDuplicateElem(const UnicodeString &basePattern, const PtnSkeleton& skeleton, PtnElem *baseElem);
+    PtnElem*  getDuplicateElem(const UnicodeStringbasePattern, const PtnSkeleton& skeleton, PtnElem *baseElem);
 }; // end  PatternMap
 
 class PatternMapIterator : public UMemory {
 public:
-    PatternMapIterator();
+    PatternMapIterator(UErrorCode &status);
     virtual ~PatternMapIterator();
     void set(PatternMap& patternMap);
-    PtnSkeleton* getSkeleton();
-    UBool hasNext();
+    PtnSkeleton* getSkeleton() const;
+    UBool hasNext() const;
     DateTimeMatcher& next();
 private:
     int32_t bootIndex;
     PtnElem *nodePtr;
-    DateTimeMatcher *matcher;
+    LocalPointer<DateTimeMatcher> matcher;
     PatternMap *patternMap;
 };
 
 class DTSkeletonEnumeration : public StringEnumeration {
 public:
-    DTSkeletonEnumeration(PatternMap &patternMap, dtStrEnum type, UErrorCode& status);
+    DTSkeletonEnumeration(PatternMappatternMap, dtStrEnum type, UErrorCode& status);
     virtual ~DTSkeletonEnumeration();
     static UClassID U_EXPORT2 getStaticClassID(void);
     virtual UClassID getDynamicClassID(void) const;
@@ -287,7 +285,7 @@ public:
 private:
     int32_t pos;
     UBool isCanonicalItem(const UnicodeString& item);
-    UVector *fSkeletons;
+    LocalPointer<UVector> fSkeletons;
 };
 
 class DTRedundantEnumeration : public StringEnumeration {
@@ -302,8 +300,8 @@ public:
     void add(const UnicodeString &pattern, UErrorCode& status);
 private:
     int32_t pos;
-    UBool isCanonicalItem(const UnicodeString& item);
-    UVector *fPatterns;
+    UBool isCanonicalItem(const UnicodeString& item) const;
+    LocalPointer<UVector> fPatterns;
 };
 
 U_NAMESPACE_END
diff --git a/source/i18n/erarules.cpp b/source/i18n/erarules.cpp
new file mode 100644 (file)
index 0000000..f6cbc25
--- /dev/null
@@ -0,0 +1,309 @@
+// © 2018 and later: Unicode, Inc. and others.
+// License & terms of use: http://www.unicode.org/copyright.html
+
+#include "unicode/utypes.h"
+
+#if !UCONFIG_NO_FORMATTING
+
+#include <stdlib.h>
+#include "unicode/ucal.h"
+#include "unicode/ures.h"
+#include "unicode/ustring.h"
+#include "cmemory.h"
+#include "cstring.h"
+#include "erarules.h"
+#include "gregoimp.h"
+#include "uassert.h"
+
+U_NAMESPACE_BEGIN
+
+static const int32_t MAX_ENCODED_START_YEAR = 32767;
+static const int32_t MIN_ENCODED_START_YEAR = -32768;
+static const int32_t MIN_ENCODED_START = -2147483391;   // encodeDate(MIN_ENCODED_START_YEAR, 1, 1, ...);
+
+static const int32_t YEAR_MASK = 0xFFFF0000;
+static const int32_t MONTH_MASK = 0x0000FF00;
+static const int32_t DAY_MASK = 0x000000FF;
+
+static const int32_t MAX_INT32 = 0x7FFFFFFF;
+static const int32_t MIN_INT32 = 0xFFFFFFFF;
+
+static const UChar VAL_FALSE[] = {0x66, 0x61, 0x6c, 0x73, 0x65};    // "false"
+static const UChar VAL_FALSE_LEN = 5;
+
+static UBool isSet(int startDate) {
+    return startDate != 0;
+}
+
+static UBool isValidRuleStartDate(int32_t year, int32_t month, int32_t day) {
+    return year >= MIN_ENCODED_START_YEAR && year <= MAX_ENCODED_START_YEAR
+            && month >= 1 && month <= 12 && day >=1 && day <= 31;
+}
+
+/**
+ * Encode year/month/date to a single integer.
+ * year is high 16 bits (-32768 to 32767), month is
+ * next 8 bits and day of month is last 8 bits.
+ *
+ * @param year  year
+ * @param month month (1-base)
+ * @param day   day of month
+ * @return  an encoded date.
+ */
+static int32_t encodeDate(int32_t year, int32_t month, int32_t day) {
+    return year << 16 | month << 8 | day;
+}
+
+static void decodeDate(int32_t encodedDate, int32_t (&fields)[3]) {
+    if (encodedDate == MIN_ENCODED_START) {
+        fields[0] = MIN_INT32;
+        fields[1] = 1;
+        fields[2] = 1;
+    } else {
+        fields[0] = (encodedDate & YEAR_MASK) >> 16;
+        fields[1] = (encodedDate & MONTH_MASK) >> 8;
+        fields[2] = encodedDate & DAY_MASK;
+    }
+}
+
+/**
+ * Compare an encoded date with another date specified by year/month/day.
+ * @param encoded   An encoded date
+ * @param year      Year of another date
+ * @param month     Month of another date
+ * @param day       Day of another date
+ * @return -1 when encoded date is earlier, 0 when two dates are same,
+ *          and 1 when encoded date is later.
+ */
+static int32_t compareEncodedDateWithYMD(int encoded, int year, int month, int day) {
+    if (year < MIN_ENCODED_START_YEAR) {
+        if (encoded == MIN_ENCODED_START) {
+            if (year > MIN_INT32 || month > 1 || day > 1) {
+                return -1;
+            }
+            return 0;
+        } else {
+            return 1;
+        }
+    } else if (year > MAX_ENCODED_START_YEAR) {
+        return -1;
+    } else {
+        int tmp = encodeDate(year, month, day);
+        if (encoded < tmp) {
+            return -1;
+        } else if (encoded == tmp) {
+            return 0;
+        } else {
+            return 1;
+        }
+    }
+}
+
+EraRules::EraRules(LocalMemory<int32_t>& eraStartDates, int32_t numEras)
+    : numEras(numEras) {
+    startDates.moveFrom(eraStartDates);
+    initCurrentEra();
+}
+
+EraRules::~EraRules() {
+}
+
+EraRules* EraRules::createInstance(const char *calType, UBool includeTentativeEra, UErrorCode& status) {
+    if(U_FAILURE(status)) {
+        return nullptr;
+    }
+    LocalUResourceBundlePointer rb(ures_openDirect(nullptr, "supplementalData", &status));
+    ures_getByKey(rb.getAlias(), "calendarData", rb.getAlias(), &status);
+    ures_getByKey(rb.getAlias(), calType, rb.getAlias(), &status);
+    ures_getByKey(rb.getAlias(), "eras", rb.getAlias(), &status);
+
+    if (U_FAILURE(status)) {
+        return nullptr;
+    }
+
+    int32_t numEras = ures_getSize(rb.getAlias());
+    int32_t firstTentativeIdx = MAX_INT32;
+
+    LocalMemory<int32_t> startDates(static_cast<int32_t *>(uprv_malloc(numEras * sizeof(int32_t))));
+    if (startDates.isNull()) {
+        status = U_MEMORY_ALLOCATION_ERROR;
+        return nullptr;
+    }
+    uprv_memset(startDates.getAlias(), 0 , numEras * sizeof(int32_t));
+
+    while (ures_hasNext(rb.getAlias())) {
+        LocalUResourceBundlePointer eraRuleRes(ures_getNextResource(rb.getAlias(), nullptr, &status));
+        if (U_FAILURE(status)) {
+            return nullptr;
+        }
+        const char *eraIdxStr = ures_getKey(eraRuleRes.getAlias());
+        char *endp;
+        int32_t eraIdx = (int32_t)strtol(eraIdxStr, &endp, 10);
+        if ((size_t)(endp - eraIdxStr) != uprv_strlen(eraIdxStr)) {
+            status = U_INVALID_FORMAT_ERROR;
+            return nullptr;
+        }
+        if (eraIdx < 0 || eraIdx >= numEras) {
+            status = U_INVALID_FORMAT_ERROR;
+            return nullptr;
+        }
+        if (isSet(startDates[eraIdx])) {
+            // start date of the index was already set
+            status = U_INVALID_FORMAT_ERROR;
+            return nullptr;
+        }
+
+        UBool hasName = TRUE;
+        UBool hasEnd = TRUE;
+        int32_t len;
+        while (ures_hasNext(eraRuleRes.getAlias())) {
+            LocalUResourceBundlePointer res(ures_getNextResource(eraRuleRes.getAlias(), nullptr, &status));
+            if (U_FAILURE(status)) {
+                return nullptr;
+            }
+            const char *key = ures_getKey(res.getAlias());
+            if (uprv_strcmp(key, "start") == 0) {
+                const int32_t *fields = ures_getIntVector(res.getAlias(), &len, &status);
+                if (U_FAILURE(status)) {
+                    return nullptr;
+                }
+                if (len != 3 || !isValidRuleStartDate(fields[0], fields[1], fields[2])) {
+                    status = U_INVALID_FORMAT_ERROR;
+                    return nullptr;
+                }
+                startDates[eraIdx] = encodeDate(fields[0], fields[1], fields[2]);
+            } else if (uprv_strcmp(key, "named") == 0) {
+                const UChar *val = ures_getString(res.getAlias(), &len, &status);
+                if (u_strncmp(val, VAL_FALSE, VAL_FALSE_LEN) == 0) {
+                    hasName = FALSE;
+                }
+            } else if (uprv_strcmp(key, "end") == 0) {
+                hasEnd = TRUE;
+            }
+        }
+
+        if (isSet(startDates[eraIdx])) {
+            if (hasEnd) {
+                // This implementation assumes either start or end is available, not both.
+                // For now, just ignore the end rule.
+            }
+        } else {
+            if (hasEnd) {
+                if (eraIdx != 0) {
+                    // This implementation does not support end only rule for eras other than
+                    // the first one.
+                    status = U_INVALID_FORMAT_ERROR;
+                    return nullptr;
+                }
+                U_ASSERT(eraIdx == 0);
+                startDates[eraIdx] = MIN_ENCODED_START;
+            } else {
+                status = U_INVALID_FORMAT_ERROR;
+                return nullptr;
+            }
+        }
+
+        if (hasName) {
+            if (eraIdx >= firstTentativeIdx) {
+                status = U_INVALID_FORMAT_ERROR;
+                return nullptr;
+            }
+        } else {
+            if (eraIdx < firstTentativeIdx) {
+                firstTentativeIdx = eraIdx;
+            }
+        }
+    }
+
+    EraRules *result;
+    if (firstTentativeIdx < MAX_INT32 && !includeTentativeEra) {
+        result = new EraRules(startDates, firstTentativeIdx);
+    } else {
+        result = new EraRules(startDates, numEras);
+    }
+
+    if (result == nullptr) {
+        status = U_MEMORY_ALLOCATION_ERROR;
+    }
+    return result;
+}
+
+void EraRules::getStartDate(int32_t eraIdx, int32_t (&fields)[3], UErrorCode& status) const {
+    if(U_FAILURE(status)) {
+        return;
+    }
+    if (eraIdx < 0 || eraIdx >= numEras) {
+        status = U_ILLEGAL_ARGUMENT_ERROR;
+        return;
+    }
+    decodeDate(startDates[eraIdx], fields);
+}
+
+int32_t EraRules::getStartYear(int32_t eraIdx, UErrorCode& status) const {
+    int year = MAX_INT32;   // bogus value
+    if(U_FAILURE(status)) {
+        return year;
+    }
+    if (eraIdx < 0 || eraIdx >= numEras) {
+        status = U_ILLEGAL_ARGUMENT_ERROR;
+        return year;
+    }
+    int fields[3];
+    decodeDate(startDates[eraIdx], fields);
+    year = fields[0];
+
+    return year;
+}
+
+int32_t EraRules::getEraIndex(int32_t year, int32_t month, int32_t day, UErrorCode& status) const {
+    if(U_FAILURE(status)) {
+        return -1;
+    }
+
+    if (month < 1 || month > 12 || day < 1 || day > 31) {
+        status = U_ILLEGAL_ARGUMENT_ERROR;
+        return -1;
+    }
+    int32_t high = numEras; // last index + 1
+    int32_t low;
+
+    // Short circuit for recent years.  Most modern computations will
+    // occur in the last few eras.
+    if (compareEncodedDateWithYMD(startDates[getCurrentEraIndex()], year, month, day) <= 0) {
+        low = getCurrentEraIndex();
+    } else {
+        low = 0;
+    }
+
+    // Do binary search
+    while (low < high - 1) {
+        int i = (low + high) / 2;
+        if (compareEncodedDateWithYMD(startDates[i], year, month, day) <= 0) {
+            low = i;
+        } else {
+            high = i;
+        }
+    }
+    return low;
+}
+
+void EraRules::initCurrentEra() {
+    UDate now = ucal_getNow();
+    int year, month0, dom, dow, doy, mid;
+    Grego::timeToFields(now, year, month0, dom, dow, doy, mid);
+    int currentEncodedDate = encodeDate(year, month0 + 1 /* changes to 1-base */, dom);
+    int eraIdx = numEras - 1;
+    while (eraIdx > 0) {
+        if (currentEncodedDate >= startDates[eraIdx]) {
+            break;
+        }
+        eraIdx--;
+    }
+    // Note: current era could be before the first era.
+    // In this case, this implementation returns the first era index (0).
+    currentEra = eraIdx;}
+
+U_NAMESPACE_END
+#endif /* #if !UCONFIG_NO_FORMATTING */
+
+
diff --git a/source/i18n/erarules.h b/source/i18n/erarules.h
new file mode 100644 (file)
index 0000000..4ed8640
--- /dev/null
@@ -0,0 +1,92 @@
+// © 2018 and later: Unicode, Inc. and others.
+// License & terms of use: http://www.unicode.org/copyright.html
+
+#ifndef ERARULES_H_
+#define ERARULES_H_
+
+#include "unicode/utypes.h"
+
+#if !UCONFIG_NO_FORMATTING
+
+#include "unicode/localpointer.h"
+#include "unicode/uobject.h"
+#include "cmemory.h"
+
+U_NAMESPACE_BEGIN
+
+// Export an explicit template instantiation of LocalMemory used as a data member of EraRules.
+// When building DLLs for Windows this is required even though no direct access leaks out of the i18n library.
+// See digitlst.h, pluralaffix.h, datefmt.h, and others for similar examples.
+#if U_PF_WINDOWS <= U_PLATFORM && U_PLATFORM <= U_PF_CYGWIN
+// Ignore warning 4661 as LocalPointerBase does not use operator== or operator!=
+#pragma warning(suppress: 4661)
+template class U_I18N_API LocalPointerBase<int32_t>;
+template class U_I18N_API LocalMemory<int32_t>;
+#endif
+
+class U_I18N_API EraRules : public UMemory {
+public:
+    ~EraRules();
+
+    static EraRules* createInstance(const char *calType, UBool includeTentativeEra, UErrorCode& status);
+
+    /**
+     * Gets number of effective eras
+     * @return  number of effective eras
+     */
+    inline int32_t getNumberOfEras() const {
+        return numEras;
+    }
+
+    /**
+     * Gets start date of an era
+     * @param eraIdx    Era index
+     * @param fields    Receives date fields. The result includes values of year, month,
+     *                  day of month in this order. When an era has no start date, the result
+     *                  will be January 1st in year whose value is minimum integer.
+     * @param status    Receives status.
+     */
+    void getStartDate(int32_t eraIdx, int32_t (&fields)[3], UErrorCode& status) const;
+
+    /**
+     * Gets start year of an era
+     * @param eraIdx    Era index
+     * @param status    Receives status.
+     * @return The first year of an era. When a era has no start date, minimum int32
+     *          value is returned.
+     */
+    int32_t getStartYear(int32_t eraIdx, UErrorCode& status) const;
+
+    /**
+     * Returns era index for the specified year/month/day.
+     * @param year  Year
+     * @param month Month (1-base)
+     * @param day   Day of month
+     * @param status    Receives status
+     * @return  era index (or 0, when the specified date is before the first era)
+     */
+    int32_t getEraIndex(int32_t year, int32_t month, int32_t day, UErrorCode& status) const;
+
+    /**
+     * Gets the current era index. This is calculated only once for an instance of
+     * EraRules.
+     *
+     * @return era index of current era (or 0, when current date is before the first era)
+     */
+    inline int32_t getCurrentEraIndex() const {
+        return currentEra;
+    }
+
+private:
+    EraRules(LocalMemory<int32_t>& eraStartDates, int32_t numEra);
+
+    void initCurrentEra();
+
+    LocalMemory<int32_t> startDates;
+    int32_t numEras;
+    int32_t currentEra;
+};
+
+U_NAMESPACE_END
+#endif /* #if !UCONFIG_NO_FORMATTING */
+#endif /* ERARULES_H_ */
index 2e9d562..a6827e0 100644 (file)
 #ifndef FPHDLIMP_H
 #define FPHDLIMP_H
 
+#include "unicode/utypes.h"
+
 #if !UCONFIG_NO_FORMATTING
 
-#include "unicode/utypes.h"
 #include "unicode/fieldpos.h"
 #include "unicode/fpositer.h"
 
index 0485cca..71faeb0 100644 (file)
@@ -541,8 +541,8 @@ int32_t GregorianCalendar::handleComputeMonthStart(int32_t eyear, int32_t month,
     }
 
     UBool isLeap = eyear%4 == 0;
-    int32_t y = eyear-1;
-    int32_t julianDay = 365*y + ClockMath::floorDivide(y, 4) + (kJan1_1JulianDay - 3);
+    int64_t y = (int64_t)eyear-1;
+    int64_t julianDay = 365*y + ClockMath::floorDivide(y, (int64_t)4) + (kJan1_1JulianDay - 3);
 
     nonConstThis->fIsGregorian = (eyear >= fGregorianCutoverYear);
 #if defined (U_DEBUG_CAL)
@@ -572,7 +572,7 @@ int32_t GregorianCalendar::handleComputeMonthStart(int32_t eyear, int32_t month,
         julianDay += isLeap?kLeapNumDays[month]:kNumDays[month];
     }
 
-    return julianDay;
+    return static_cast<int32_t>(julianDay);
 }
 
 int32_t GregorianCalendar::handleGetMonthLength(int32_t extendedYear, int32_t month)  const
index afaacda..06eb323 100644 (file)
@@ -299,8 +299,8 @@ inline int32_t Grego::millisToJulianDay(double millis) {
 }
 
 inline int32_t Grego::gregorianShift(int32_t eyear) {
-  int32_t y = eyear-1;
-  int32_t gregShift = ClockMath::floorDivide(y, 400) - ClockMath::floorDivide(y, 100) + 2;
+  int64_t y = (int64_t)eyear-1;
+  int32_t gregShift = static_cast<int32_t>(ClockMath::floorDivide(y, (int64_t)400) - ClockMath::floorDivide(y, (int64_t)100) + 2);
   return gregShift;
 }
 
index 0af58a6..0e222a5 100644 (file)
@@ -2,6 +2,8 @@
 <Project DefaultTargets="Build" ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
   <!-- The following import will include the 'default' configuration options for VS projects. -->
   <Import Project="..\allinone\Build.Windows.ProjectConfiguration.props" />
+  <!-- The following import will include the library configuration options for VS projects. -->
+  <Import Project="..\allinone\Build.Windows.Library.ProjectConfiguration.props" />
   <PropertyGroup Label="Globals">
     <ProjectGuid>{0178B127-6269-407D-B112-93877BB62776}</ProjectGuid>
   </PropertyGroup>
@@ -93,7 +95,7 @@
       <ProgramDataBaseFileName>.\x86\Release/</ProgramDataBaseFileName>
     </ClCompile>
     <Link>
-      <OutputFile>..\..\bin\icuin62.dll</OutputFile>
+      <OutputFile>..\..\bin\icuin63.dll</OutputFile>
       <AdditionalLibraryDirectories>.\..\..\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
       <ProgramDatabaseFile>.\..\..\lib\icuin.pdb</ProgramDatabaseFile>
       <RandomizedBaseAddress>false</RandomizedBaseAddress>
       <DebugInformationFormat>EditAndContinue</DebugInformationFormat>
     </ClCompile>
     <Link>
-      <OutputFile>..\..\bin\icuin62d.dll</OutputFile>
+      <OutputFile>..\..\bin\icuin63d.dll</OutputFile>
       <AdditionalLibraryDirectories>.\..\..\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
       <ProgramDatabaseFile>.\..\..\lib\icuind.pdb</ProgramDatabaseFile>
       <RandomizedBaseAddress>false</RandomizedBaseAddress>
       <ProgramDataBaseFileName>.\x64\Release/</ProgramDataBaseFileName>
     </ClCompile>
     <Link>
-      <OutputFile>..\..\bin64\icuin62.dll</OutputFile>
+      <OutputFile>..\..\bin64\icuin63.dll</OutputFile>
       <AdditionalLibraryDirectories>.\..\..\lib64;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
       <ProgramDatabaseFile>.\..\..\lib64\icuin.pdb</ProgramDatabaseFile>
       <ImportLibrary>..\..\lib64\icuin.lib</ImportLibrary>
       <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
     </ClCompile>
     <Link>
-      <OutputFile>..\..\bin64\icuin62d.dll</OutputFile>
+      <OutputFile>..\..\bin64\icuin63d.dll</OutputFile>
       <AdditionalLibraryDirectories>.\..\..\lib64;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
       <ProgramDatabaseFile>.\..\..\lib64\icuind.pdb</ProgramDatabaseFile>
       <ImportLibrary>..\..\lib64\icuind.lib</ImportLibrary>
     </Link>
   </ItemDefinitionGroup>
   <ItemGroup>
+    <ClCompile Include="erarules.cpp" />
     <ClCompile Include="region.cpp" />
     <ClCompile Include="uregion.cpp" />
     <ClCompile Include="alphaindex.cpp" />
     <ClCompile Include="indiancal.cpp" />
     <ClCompile Include="islamcal.cpp" />
     <ClCompile Include="japancal.cpp" />
+    <ClCompile Include="listformatter.cpp" />
+    <ClCompile Include="ulistformatter.cpp" />
     <ClCompile Include="measfmt.cpp" />
     <ClCompile Include="measunit.cpp" />
     <ClCompile Include="measure.cpp" />
     <ClCompile Include="numparse_affixes.cpp" />
     <ClCompile Include="numparse_compositions.cpp" />
     <ClCompile Include="numparse_validators.cpp" />
+    <ClCompile Include="numrange_fluent.cpp" />
+    <ClCompile Include="numrange_impl.cpp" />
     <ClCompile Include="numfmt.cpp" />
     <ClCompile Include="numsys.cpp" />
     <ClCompile Include="olsontz.cpp" />
     <ClInclude Include="collationtailoring.h" />
     <ClInclude Include="collationweights.h" />
     <ClInclude Include="dayperiodrules.h" />
+    <ClInclude Include="erarules.h" />
     <ClInclude Include="numsys_impl.h" />
     <ClInclude Include="region_impl.h" />
     <ClInclude Include="selfmtimpl.h" />
     <ClInclude Include="numparse_validators.h" />
     <ClInclude Include="numparse_types.h" />
     <ClInclude Include="numparse_utils.h" />
+    <ClInclude Include="numrange_impl.h" />
   </ItemGroup>
   <ItemGroup>
     <ResourceCompile Include="i18n.rc" />
index 494c8e1..c8f9845 100644 (file)
     <ClCompile Include="japancal.cpp">
       <Filter>formatting</Filter>
     </ClCompile>
+    <ClCompile Include="listformatter.cpp">
+      <Filter>formatting</Filter>
+    </ClCompile>
+    <ClCompile Include="ulistformatter.cpp">
+      <Filter>formatting</Filter>
+    </ClCompile>
     <ClCompile Include="measfmt.cpp">
       <Filter>formatting</Filter>
     </ClCompile>
     <ClCompile Include="numparse_validators.cpp">
       <Filter>formatting</Filter>
     </ClCompile>
+    <ClCompile Include="numrange_fluent.cpp">
+      <Filter>formatting</Filter>
+    </ClCompile>
+    <ClCompile Include="numrange_impl.cpp">
+      <Filter>formatting</Filter>
+    </ClCompile>
     <ClCompile Include="dayperiodrules.cpp">
       <Filter>formatting</Filter>
     </ClCompile>
+    <ClCompile Include="erarules.cpp">
+      <Filter>formatting</Filter>
+    </ClCompile>
   </ItemGroup>
   <ItemGroup>
     <ClCompile Include="bocsu.cpp">
     <ClInclude Include="numparse_utils.h">
       <Filter>formatting</Filter>
     </ClInclude>
+    <ClInclude Include="numrange_impl.h">
+      <Filter>formatting</Filter>
+    </ClInclude>
     <ClInclude Include="olsontz.h">
       <Filter>formatting</Filter>
     </ClInclude>
     <ClInclude Include="utf8collationiterator.h">
       <Filter>collation</Filter>
     </ClInclude>
+    <ClInclude Include="erarules.h">
+      <Filter>formatting</Filter>
+    </ClInclude>
   </ItemGroup>
   <ItemGroup>
     <ResourceCompile Include="i18n.rc">
index 6379486..49604f7 100644 (file)
@@ -2,6 +2,8 @@
 <Project DefaultTargets="Build" ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
   <!-- The following import will include the 'default' configuration options for VS UWP projects. -->
   <Import Project="..\allinone\Build.Windows.UWP.ProjectConfiguration.props" />
+  <!-- The following import will include the library configuration options for VS projects. -->
+  <Import Project="..\allinone\Build.Windows.Library.ProjectConfiguration.props" />
   <ItemGroup Label="ProjectConfigurations">
     <ProjectConfiguration Include="Debug|Win32">
       <Configuration>Debug</Configuration>
@@ -87,7 +89,7 @@
       <CompileAsWinRT>false</CompileAsWinRT>
       <AdditionalOptions>/utf-8 %(AdditionalOptions)</AdditionalOptions>
     </ClCompile>
-    <ResourceCompile>      
+    <ResourceCompile>
       <Culture>0x0409</Culture>
       <AdditionalIncludeDirectories>../common;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
     </ResourceCompile>
       <ProgramDataBaseFileName>.\x86\ReleaseUWP/</ProgramDataBaseFileName>
     </ClCompile>
     <Link>
-      <OutputFile>..\..\bin32uwp\icuin62.dll</OutputFile>
+      <OutputFile>..\..\bin32uwp\icuin63.dll</OutputFile>
       <ProgramDatabaseFile>.\..\..\lib32uwp\icuin.pdb</ProgramDatabaseFile>
       <ImportLibrary>..\..\lib32uwp\icuin.lib</ImportLibrary>
       <AdditionalDependencies>..\..\lib32uwp\icuuc.lib;%(AdditionalDependencies)</AdditionalDependencies>
       <ProgramDataBaseFileName>.\x86\DebugUWP/</ProgramDataBaseFileName>
     </ClCompile>
     <Link>
-      <OutputFile>..\..\bin32uwp\icuin62d.dll</OutputFile>
+      <OutputFile>..\..\bin32uwp\icuin63d.dll</OutputFile>
       <ProgramDatabaseFile>.\..\..\lib32uwp\icuind.pdb</ProgramDatabaseFile>
       <ImportLibrary>..\..\lib32uwp\icuind.lib</ImportLibrary>
       <AdditionalDependencies>..\..\lib32uwp\icuucd.lib;%(AdditionalDependencies)</AdditionalDependencies>
       <ProgramDataBaseFileName>.\x64\ReleaseUWP/</ProgramDataBaseFileName>
     </ClCompile>
     <Link>
-      <OutputFile>..\..\bin64uwp\icuin62.dll</OutputFile>
+      <OutputFile>..\..\bin64uwp\icuin63.dll</OutputFile>
       <ProgramDatabaseFile>.\..\..\lib64uwp\icuin.pdb</ProgramDatabaseFile>
       <ImportLibrary>..\..\lib64uwp\icuin.lib</ImportLibrary>
       <AdditionalDependencies>..\..\lib64uwp\icuuc.lib;%(AdditionalDependencies)</AdditionalDependencies>
       <ProgramDataBaseFileName>.\x64\DebugUWP/</ProgramDataBaseFileName>
     </ClCompile>
     <Link>
-      <OutputFile>..\..\bin64uwp\icuin62d.dll</OutputFile>
+      <OutputFile>..\..\bin64uwp\icuin63d.dll</OutputFile>
       <ProgramDatabaseFile>.\..\..\lib64uwp\icuind.pdb</ProgramDatabaseFile>
       <ImportLibrary>..\..\lib64uwp\icuind.lib</ImportLibrary>
       <AdditionalDependencies>..\..\lib64uwp\icuucd.lib;%(AdditionalDependencies)</AdditionalDependencies>
       <ProgramDataBaseFileName>.\ARM\ReleaseUWP/</ProgramDataBaseFileName>
     </ClCompile>
     <Link>
-      <OutputFile>..\..\binARMuwp\icuin62.dll</OutputFile>
+      <OutputFile>..\..\binARMuwp\icuin63.dll</OutputFile>
       <ProgramDatabaseFile>.\..\..\libARMuwp\icuin.pdb</ProgramDatabaseFile>
       <ImportLibrary>..\..\libARMuwp\icuin.lib</ImportLibrary>
       <AdditionalDependencies>..\..\libARMuwp\icuuc.lib;%(AdditionalDependencies)</AdditionalDependencies>
       <ProgramDataBaseFileName>.\ARM\DebugUWP/</ProgramDataBaseFileName>
     </ClCompile>
     <Link>
-      <OutputFile>..\..\binARMuwp\icuin62d.dll</OutputFile>
+      <OutputFile>..\..\binARMuwp\icuin63d.dll</OutputFile>
       <ProgramDatabaseFile>.\..\..\libARMuwp\icuind.pdb</ProgramDatabaseFile>
       <ImportLibrary>..\..\libARMuwp\icuind.lib</ImportLibrary>
       <AdditionalDependencies>..\..\libARMuwp\icuucd.lib;%(AdditionalDependencies)</AdditionalDependencies>
     </Link>
   </ItemDefinitionGroup>
   <ItemGroup>
+    <ClCompile Include="erarules.cpp" />
     <ClCompile Include="region.cpp" />
     <ClCompile Include="uregion.cpp" />
     <ClCompile Include="alphaindex.cpp" />
     <ClCompile Include="indiancal.cpp" />
     <ClCompile Include="islamcal.cpp" />
     <ClCompile Include="japancal.cpp" />
+    <ClCompile Include="listformatter.cpp" />
+    <ClCompile Include="ulistformatter.cpp" />
     <ClCompile Include="measfmt.cpp" />
     <ClCompile Include="measunit.cpp" />
     <ClCompile Include="measure.cpp" />
     <ClCompile Include="numparse_affixes.cpp" />
     <ClCompile Include="numparse_compositions.cpp" />
     <ClCompile Include="numparse_validators.cpp" />
+    <ClCompile Include="numrange_fluent.cpp" />
+    <ClCompile Include="numrange_impl.cpp" />
     <ClCompile Include="numfmt.cpp" />
     <ClCompile Include="numsys.cpp" />
     <ClCompile Include="olsontz.cpp" />
     <ClInclude Include="collationtailoring.h" />
     <ClInclude Include="collationweights.h" />
     <ClInclude Include="dayperiodrules.h" />
+    <ClInclude Include="erarules.h" />
     <ClInclude Include="numsys_impl.h" />
     <ClInclude Include="region_impl.h" />
     <ClInclude Include="selfmtimpl.h" />
     <ClInclude Include="numparse_validators.h" />
     <ClInclude Include="numparse_types.h" />
     <ClInclude Include="numparse_utils.h" />
+    <ClInclude Include="numrange_impl.h" />
   </ItemGroup>
   <ItemGroup>
     <ResourceCompile Include="i18n.rc" />
   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
   <ImportGroup Label="ExtensionTargets">
   </ImportGroup>
-</Project>
+</Project>
\ No newline at end of file
index 278f9ef..ae1098f 100644 (file)
@@ -347,12 +347,15 @@ IndianCalendar::inDaylightTime(UErrorCode& status) const
     return (UBool)(U_SUCCESS(status) ? (internalGet(UCAL_DST_OFFSET) != 0) : FALSE);
 }
 
-// default century
-const UDate     IndianCalendar::fgSystemDefaultCentury          = DBL_MIN;
-const int32_t   IndianCalendar::fgSystemDefaultCenturyYear      = -1;
 
-UDate           IndianCalendar::fgSystemDefaultCenturyStart     = DBL_MIN;
-int32_t         IndianCalendar::fgSystemDefaultCenturyStartYear = -1;
+/**
+ * The system maintains a static default century start date and Year.  They are
+ * initialized the first time they are used.  Once the system default century date
+ * and year are set, they do not change.
+ */
+static UDate           gSystemDefaultCenturyStart       = DBL_MIN;
+static int32_t         gSystemDefaultCenturyStartYear   = -1;
+static icu::UInitOnce  gSystemDefaultCenturyInit        = U_INITONCE_INITIALIZER;
 
 
 UBool IndianCalendar::haveDefaultCentury() const
@@ -360,87 +363,45 @@ UBool IndianCalendar::haveDefaultCentury() const
     return TRUE;
 }
 
-UDate IndianCalendar::defaultCenturyStart() const
+static void U_CALLCONV
+initializeSystemDefaultCentury()
 {
-    return internalGetDefaultCenturyStart();
-}
+    // initialize systemDefaultCentury and systemDefaultCenturyYear based
+    // on the current time.  They'll be set to 80 years before
+    // the current time.
+    UErrorCode status = U_ZERO_ERROR;
 
-int32_t IndianCalendar::defaultCenturyStartYear() const
-{
-    return internalGetDefaultCenturyStartYear();
-}
+    IndianCalendar calendar ( Locale ( "@calendar=Indian" ), status);
+    if ( U_SUCCESS ( status ) ) {
+        calendar.setTime ( Calendar::getNow(), status );
+        calendar.add ( UCAL_YEAR, -80, status );
 
-UDate
-IndianCalendar::internalGetDefaultCenturyStart() const
-{
-    // lazy-evaluate systemDefaultCenturyStart
-    UBool needsUpdate;
-    { 
-        Mutex m;
-        needsUpdate = (fgSystemDefaultCenturyStart == fgSystemDefaultCentury);
-    }
+        UDate    newStart = calendar.getTime ( status );
+        int32_t  newYear  = calendar.get ( UCAL_YEAR, status );
 
-    if (needsUpdate) {
-        initializeSystemDefaultCentury();
+        gSystemDefaultCenturyStart = newStart;
+        gSystemDefaultCenturyStartYear = newYear;
     }
+    // We have no recourse upon failure.
+}
 
-    // use defaultCenturyStart unless it's the flag value;
-    // then use systemDefaultCenturyStart
 
-    return fgSystemDefaultCenturyStart;
+UDate
+IndianCalendar::defaultCenturyStart() const
+{
+    // lazy-evaluate systemDefaultCenturyStart
+    umtx_initOnce(gSystemDefaultCenturyInit, &initializeSystemDefaultCentury);
+    return gSystemDefaultCenturyStart;
 }
 
 int32_t
-IndianCalendar::internalGetDefaultCenturyStartYear() const
+IndianCalendar::defaultCenturyStartYear() const
 {
     // lazy-evaluate systemDefaultCenturyStartYear
-    UBool needsUpdate;
-    { 
-        Mutex m;
-
-        needsUpdate = (fgSystemDefaultCenturyStart == fgSystemDefaultCentury);
-    }
-
-    if (needsUpdate) {
-        initializeSystemDefaultCentury();
-    }
-
-    // use defaultCenturyStart unless it's the flag value;
-    // then use systemDefaultCenturyStartYear
-
-    return    fgSystemDefaultCenturyStartYear;
+    umtx_initOnce(gSystemDefaultCenturyInit, &initializeSystemDefaultCentury);
+    return    gSystemDefaultCenturyStartYear;
 }
 
-void
-IndianCalendar::initializeSystemDefaultCentury()
-{
-    // initialize systemDefaultCentury and systemDefaultCenturyYear based
-    // on the current time.  They'll be set to 80 years before
-    // the current time.
-    // No point in locking as it should be idempotent.
-    if (fgSystemDefaultCenturyStart == fgSystemDefaultCentury) {
-        UErrorCode status = U_ZERO_ERROR;
-
-        IndianCalendar calendar(Locale("@calendar=Indian"),status);
-        if (U_SUCCESS(status)) {
-            calendar.setTime(Calendar::getNow(), status);
-            calendar.add(UCAL_YEAR, -80, status);
-
-            UDate    newStart = calendar.getTime(status);
-            int32_t  newYear  = calendar.get(UCAL_YEAR, status);
-
-            {
-                Mutex m;
-
-                fgSystemDefaultCenturyStart = newStart;
-                fgSystemDefaultCenturyStartYear = newYear;
-            }
-        }
-
-        // We have no recourse upon failure unless we want to propagate the failure
-        // out.
-    }
-}
 
 UOBJECT_DEFINE_RTTI_IMPLEMENTATION(IndianCalendar)
 
index b5e0f96..e36d4eb 100644 (file)
@@ -68,7 +68,7 @@ U_NAMESPACE_BEGIN
  */
 
 
-class IndianCalendar : public Calendar {
+class U_I18N_API IndianCalendar : public Calendar {
 public:
   /**
    * Useful constants for IndianCalendar.
@@ -274,10 +274,10 @@ public:
    * @return   The class ID for all objects of this class.
    * @internal
    */
-  U_I18N_API static UClassID U_EXPORT2 getStaticClassID(void);
+  static UClassID U_EXPORT2 getStaticClassID(void);
 
   /**
-   * return the calendar type, "buddhist".
+   * return the calendar type, "indian".
    *
    * @return calendar type
    * @internal
@@ -320,49 +320,6 @@ protected:
    * @internal
    */
   virtual int32_t defaultCenturyStartYear() const;
-
- private: // default century stuff.
-  /**
-   * The system maintains a static default century start date.  This is initialized
-   * the first time it is used.  Before then, it is set to SYSTEM_DEFAULT_CENTURY to
-   * indicate an uninitialized state.  Once the system default century date and year
-   * are set, they do not change.
-   */
-  static UDate         fgSystemDefaultCenturyStart;
-
-  /**
-   * See documentation for systemDefaultCenturyStart.
-   */
-  static int32_t          fgSystemDefaultCenturyStartYear;
-
-  /**
-   * Default value that indicates the defaultCenturyStartYear is unitialized
-   */
-  static const int32_t    fgSystemDefaultCenturyYear;
-
-  /**
-   * start of default century, as a date
-   */
-  static const UDate        fgSystemDefaultCentury;
-
-  /**
-   * Returns the beginning date of the 100-year window that dates 
-   * with 2-digit years are considered to fall within.
-   */
-  UDate         internalGetDefaultCenturyStart(void) const;
-
-  /**
-   * Returns the first year of the 100-year window that dates with 
-   * 2-digit years are considered to fall within.
-   */
-  int32_t          internalGetDefaultCenturyStartYear(void) const;
-
-  /**
-   * Initializes the 100-year window that dates with 2-digit years
-   * are considered to fall within so that its start date is 80 years
-   * before the current time.
-   */
-  static void  initializeSystemDefaultCentury(void);
 };
 
 U_NAMESPACE_END
index 17b4e07..5159be3 100644 (file)
 #include "unicode/utypes.h"
 
 #if !UCONFIG_NO_FORMATTING
-
+#if U_PLATFORM_HAS_WINUWP_API == 0
+#include <stdlib.h> // getenv() is not available in UWP env
+#endif
 #include "cmemory.h"
+#include "erarules.h"
 #include "japancal.h"
 #include "unicode/gregocal.h"
 #include "umutex.h"
 #include "uassert.h"
-
-//#define U_DEBUG_JCAL
-
-#ifdef U_DEBUG_JCAL
-#include <stdio.h>
-#endif
+#include "ucln_in.h"
+#include "cstring.h"
+
+static icu::EraRules * gJapaneseEraRules = nullptr;
+static icu::UInitOnce gJapaneseEraRulesInitOnce = U_INITONCE_INITIALIZER;
+static int32_t gCurrentEra = 0;
+
+U_CDECL_BEGIN
+static UBool japanese_calendar_cleanup(void) {
+    if (gJapaneseEraRules) {
+        delete gJapaneseEraRules;
+        gJapaneseEraRules = nullptr;
+    }
+    gCurrentEra = 0;
+    gJapaneseEraRulesInitOnce.reset();
+    return TRUE;
+}
+U_CDECL_END
 
 U_NAMESPACE_BEGIN
 
 UOBJECT_DEFINE_RTTI_IMPLEMENTATION(JapaneseCalendar)
 
-//  Gregorian date of each emperor's ascension
-//  Years are AD, months are 1-based.
-static const struct { 
-    int16_t year;
-    int8_t  month;
-    int8_t  day;
-} kEraInfo[] =  {
-    //  Year  Month Day
-    {   645,    6, 19 },   // Taika   0
-    {   650,    2, 15 },   // Hakuchi 1
-    {   672,    1,  1 },   // Hakuho  2
-    {   686,    7, 20 },   // Shucho  3
-    {   701,    3, 21 },   // Taiho   4
-    {   704,    5, 10 },   // Keiun   5
-    {   708,    1, 11 },   // Wado    6
-    {   715,    9,  2 },   // Reiki   7
-    {   717,   11, 17 },   // Yoro    8
-    {   724,    2,  4 },   // Jinki   9
-    {   729,    8,  5 },   // Tempyo  10
-    {   749,    4, 14 },   // Tempyo-kampo 11
-    {   749,    7,  2 },   // Tempyo-shoho 12
-    {   757,    8, 18 },   // Tempyo-hoji  13
-    {   765,    1,  7 },   // Tempho-jingo 14
-    {   767,    8, 16 },   // Jingo-keiun  15
-    {   770,   10,  1 },   // Hoki         16
-    {   781,    1,  1 },   // Ten-o        17
-    {   782,    8, 19 },   // Enryaku      18
-    {   806,    5, 18 },   // Daido        19
-    {   810,    9, 19 },   // Konin        20
-    {   824,    1,  5 },   // Tencho
-    {   834,    1,  3 },   // Showa
-    {   848,    6, 13 },   // Kajo
-    {   851,    4, 28 },   // Ninju
-    {   854,   11, 30 },   // Saiko
-    {   857,    2, 21 },   // Tennan
-    {   859,    4, 15 },   // Jogan
-    {   877,    4, 16 },   // Genkei
-    {   885,    2, 21 },   // Ninna
-    {   889,    4, 27 },   // Kampyo       30
-    {   898,    4, 26 },   // Shotai
-    {   901,    7, 15 },   // Engi
-    {   923,    4, 11 },   // Encho
-    {   931,    4, 26 },   // Shohei
-    {   938,    5, 22 },   // Tengyo
-    {   947,    4, 22 },   // Tenryaku
-    {   957,   10, 27 },   // Tentoku
-    {   961,    2, 16 },   // Owa
-    {   964,    7, 10 },   // Koho
-    {   968,    8, 13 },   // Anna        40
-    {   970,    3, 25 },   // Tenroku
-    {   973,   12, 20 },   // Ten-en
-    {   976,    7, 13 },   // Jogen
-    {   978,   11, 29 },   // Tengen
-    {   983,    4, 15 },   // Eikan
-    {   985,    4, 27 },   // Kanna
-    {   987,    4,  5 },   // Ei-en
-    {   989,    8,  8 },   // Eiso
-    {   990,   11,  7 },   // Shoryaku
-    {   995,    2, 22 },   // Chotoku      50
-    {   999,    1, 13 },   // Choho
-    {  1004,    7, 20 },   // Kanko
-    {  1012,   12, 25 },   // Chowa
-    {  1017,    4, 23 },   // Kannin
-    {  1021,    2,  2 },   // Jian
-    {  1024,    7, 13 },   // Manju
-    {  1028,    7, 25 },   // Chogen
-    {  1037,    4, 21 },   // Choryaku
-    {  1040,   11, 10 },   // Chokyu
-    {  1044,   11, 24 },   // Kantoku      60
-    {  1046,    4, 14 },   // Eisho
-    {  1053,    1, 11 },   // Tengi
-    {  1058,    8, 29 },   // Kohei
-    {  1065,    8,  2 },   // Jiryaku
-    {  1069,    4, 13 },   // Enkyu
-    {  1074,    8, 23 },   // Shoho
-    {  1077,   11, 17 },   // Shoryaku
-    {  1081,    2, 10 },   // Eiho
-    {  1084,    2,  7 },   // Otoku
-    {  1087,    4,  7 },   // Kanji       70
-    {  1094,   12, 15 },   // Kaho
-    {  1096,   12, 17 },   // Eicho
-    {  1097,   11, 21 },   // Shotoku
-    {  1099,    8, 28 },   // Kowa
-    {  1104,    2, 10 },   // Choji
-    {  1106,    4,  9 },   // Kasho
-    {  1108,    8,  3 },   // Tennin
-    {  1110,    7, 13 },   // Ten-ei
-    {  1113,    7, 13 },   // Eikyu
-    {  1118,    4,  3 },   // Gen-ei      80
-    {  1120,    4, 10 },   // Hoan
-    {  1124,    4,  3 },   // Tenji
-    {  1126,    1, 22 },   // Daiji
-    {  1131,    1, 29 },   // Tensho
-    {  1132,    8, 11 },   // Chosho
-    {  1135,    4, 27 },   // Hoen
-    {  1141,    7, 10 },   // Eiji
-    {  1142,    4, 28 },   // Koji
-    {  1144,    2, 23 },   // Tenyo
-    {  1145,    7, 22 },   // Kyuan      90
-    {  1151,    1, 26 },   // Ninpei
-    {  1154,   10, 28 },   // Kyuju
-    {  1156,    4, 27 },   // Hogen
-    {  1159,    4, 20 },   // Heiji
-    {  1160,    1, 10 },   // Eiryaku
-    {  1161,    9,  4 },   // Oho
-    {  1163,    3, 29 },   // Chokan
-    {  1165,    6,  5 },   // Eiman
-    {  1166,    8, 27 },   // Nin-an
-    {  1169,    4,  8 },   // Kao       100
-    {  1171,    4, 21 },   // Shoan
-    {  1175,    7, 28 },   // Angen
-    {  1177,    8,  4 },   // Jisho
-    {  1181,    7, 14 },   // Yowa
-    {  1182,    5, 27 },   // Juei
-    {  1184,    4, 16 },   // Genryuku
-    {  1185,    8, 14 },   // Bunji
-    {  1190,    4, 11 },   // Kenkyu
-    {  1199,    4, 27 },   // Shoji
-    {  1201,    2, 13 },   // Kennin     110
-    {  1204,    2, 20 },   // Genkyu
-    {  1206,    4, 27 },   // Ken-ei
-    {  1207,   10, 25 },   // Shogen
-    {  1211,    3,  9 },   // Kenryaku
-    {  1213,   12,  6 },   // Kenpo
-    {  1219,    4, 12 },   // Shokyu
-    {  1222,    4, 13 },   // Joo
-    {  1224,   11, 20 },   // Gennin
-    {  1225,    4, 20 },   // Karoku
-    {  1227,   12, 10 },   // Antei      120
-    {  1229,    3,  5 },   // Kanki
-    {  1232,    4,  2 },   // Joei
-    {  1233,    4, 15 },   // Tempuku
-    {  1234,   11,  5 },   // Bunryaku
-    {  1235,    9, 19 },   // Katei
-    {  1238,   11, 23 },   // Ryakunin
-    {  1239,    2,  7 },   // En-o
-    {  1240,    7, 16 },   // Ninji
-    {  1243,    2, 26 },   // Kangen
-    {  1247,    2, 28 },   // Hoji      130
-    {  1249,    3, 18 },   // Kencho
-    {  1256,   10,  5 },   // Kogen
-    {  1257,    3, 14 },   // Shoka
-    {  1259,    3, 26 },   // Shogen
-    {  1260,    4, 13 },   // Bun-o
-    {  1261,    2, 20 },   // Kocho
-    {  1264,    2, 28 },   // Bun-ei
-    {  1275,    4, 25 },   // Kenji
-    {  1278,    2, 29 },   // Koan
-    {  1288,    4, 28 },   // Shoo      140
-    {  1293,    8, 55 },   // Einin
-    {  1299,    4, 25 },   // Shoan
-    {  1302,   11, 21 },   // Kengen
-    {  1303,    8,  5 },   // Kagen
-    {  1306,   12, 14 },   // Tokuji
-    {  1308,   10,  9 },   // Enkei
-    {  1311,    4, 28 },   // Ocho
-    {  1312,    3, 20 },   // Showa
-    {  1317,    2,  3 },   // Bunpo
-    {  1319,    4, 28 },   // Geno      150
-    {  1321,    2, 23 },   // Genkyo
-    {  1324,   12,  9 },   // Shochu
-    {  1326,    4, 26 },   // Kareki
-    {  1329,    8, 29 },   // Gentoku
-    {  1331,    8,  9 },   // Genko
-    {  1334,    1, 29 },   // Kemmu
-    {  1336,    2, 29 },   // Engen
-    {  1340,    4, 28 },   // Kokoku
-    {  1346,   12,  8 },   // Shohei
-    {  1370,    7, 24 },   // Kentoku       160
-    {  1372,    4,  1 },   // Bunch\u0169
-    {  1375,    5, 27 },   // Tenju
-    {  1379,    3, 22 },   // Koryaku
-    {  1381,    2, 10 },   // Kowa
-    {  1384,    4, 28 },   // Gench\u0169
-    {  1384,    2, 27 },   // Meitoku
-    {  1387,    8, 23 },   // Kakei
-    {  1389,    2,  9 },   // Koo
-    {  1390,    3, 26 },   // Meitoku
-    {  1394,    7,  5 },   // Oei           170
-    {  1428,    4, 27 },   // Shocho
-    {  1429,    9,  5 },   // Eikyo
-    {  1441,    2, 17 },   // Kakitsu
-    {  1444,    2,  5 },   // Bun-an
-    {  1449,    7, 28 },   // Hotoku
-    {  1452,    7, 25 },   // Kyotoku
-    {  1455,    7, 25 },   // Kosho
-    {  1457,    9, 28 },   // Choroku
-    {  1460,   12, 21 },   // Kansho
-    {  1466,    2, 28 },   // Bunsho        180
-    {  1467,    3,  3 },   // Onin
-    {  1469,    4, 28 },   // Bunmei
-    {  1487,    7, 29 },   // Chokyo
-    {  1489,    8, 21 },   // Entoku
-    {  1492,    7, 19 },   // Meio
-    {  1501,    2, 29 },   // Bunki
-    {  1504,    2, 30 },   // Eisho
-    {  1521,    8, 23 },   // Taiei
-    {  1528,    8, 20 },   // Kyoroku
-    {  1532,    7, 29 },   // Tenmon       190
-    {  1555,   10, 23 },   // Koji
-    {  1558,    2, 28 },   // Eiroku
-    {  1570,    4, 23 },   // Genki
-    {  1573,    7, 28 },   // Tensho
-    {  1592,   12,  8 },   // Bunroku
-    {  1596,   10, 27 },   // Keicho
-    {  1615,    7, 13 },   // Genwa
-    {  1624,    2, 30 },   // Kan-ei
-    {  1644,   12, 16 },   // Shoho
-    {  1648,    2, 15 },   // Keian       200
-    {  1652,    9, 18 },   // Shoo
-    {  1655,    4, 13 },   // Meiryaku
-    {  1658,    7, 23 },   // Manji
-    {  1661,    4, 25 },   // Kanbun
-    {  1673,    9, 21 },   // Enpo
-    {  1681,    9, 29 },   // Tenwa
-    {  1684,    2, 21 },   // Jokyo
-    {  1688,    9, 30 },   // Genroku
-    {  1704,    3, 13 },   // Hoei
-    {  1711,    4, 25 },   // Shotoku      210
-    {  1716,    6, 22 },   // Kyoho
-    {  1736,    4, 28 },   // Genbun
-    {  1741,    2, 27 },   // Kanpo
-    {  1744,    2, 21 },   // Enkyo
-    {  1748,    7, 12 },   // Kan-en
-    {  1751,   10, 27 },   // Horyaku
-    {  1764,    6,  2 },   // Meiwa
-    {  1772,   11, 16 },   // An-ei
-    {  1781,    4,  2 },   // Tenmei
-    {  1789,    1, 25 },   // Kansei      220
-    {  1801,    2,  5 },   // Kyowa
-    {  1804,    2, 11 },   // Bunka
-    {  1818,    4, 22 },   // Bunsei
-    {  1830,   12, 10 },   // Tenpo
-    {  1844,   12,  2 },   // Koka
-    {  1848,    2, 28 },   // Kaei
-    {  1854,   11, 27 },   // Ansei
-    {  1860,    3, 18 },   // Man-en
-    {  1861,    2, 19 },   // Bunkyu
-    {  1864,    2, 20 },   // Genji        230
-    {  1865,    4,  7 },   // Keio     231
-    {  1868,    9,  8 },   // Meiji    232
-    {  1912,    7, 30 },   // Taisho   233
-    {  1926,   12, 25 },   // Showa    234
-    {  1989,    1,  8 }   // Heisei    235
-};
-
-#define kEraCount UPRV_LENGTHOF(kEraInfo)
-
-/**
- * The current era, for reference. 
- */
-static const int32_t kCurrentEra = (kEraCount-1);  // int32_t to match the calendar field type
-
 static const int32_t kGregorianEpoch = 1970;    // used as the default value of EXTENDED_YEAR
+static const char* TENTATIVE_ERA_VAR_NAME = "ICU_ENABLE_TENTATIVE_ERA";
+
+// Initialize global Japanese era data
+static void U_CALLCONV initializeEras(UErrorCode &status) {
+    // Although start date of next Japanese era is planned ahead, a name of
+    // new era might not be available. This implementation allows tester to
+    // check a new era without era names by settings below (in priority order).
+    // By default, such tentative era is disabled.
+
+    // 1. Environment variable ICU_ENABLE_TENTATIVE_ERA=true or false
+
+    UBool includeTentativeEra = FALSE;
+
+#if U_PLATFORM_HAS_WINUWP_API == 1
+    // UWP doesn't allow access to getenv(), but we can call GetEnvironmentVariableW to do the same thing.
+    UChar varName[26] = {};
+    u_charsToUChars(TENTATIVE_ERA_VAR_NAME, varName, static_cast<int32_t>(uprv_strlen(TENTATIVE_ERA_VAR_NAME)));
+    WCHAR varValue[5] = {};
+    DWORD ret = GetEnvironmentVariableW(reinterpret_cast<WCHAR*>(varName), varValue, UPRV_LENGTHOF(varValue));
+    if ((ret == 4) && (_wcsicmp(varValue, L"true") == 0)) {
+        includeTentativeEra = TRUE;
+    }
+#else
+    char *envVarVal = getenv(TENTATIVE_ERA_VAR_NAME);
+    if (envVarVal != NULL && uprv_stricmp(envVarVal, "true") == 0) {
+        includeTentativeEra = TRUE;
+    }
+#endif
+    gJapaneseEraRules = EraRules::createInstance("japanese", includeTentativeEra, status);
+    if (U_FAILURE(status)) {
+        return;
+    }
+    gCurrentEra = gJapaneseEraRules->getCurrentEraIndex();
+}
+
+static void init(UErrorCode &status) {
+    umtx_initOnce(gJapaneseEraRulesInitOnce, &initializeEras, status);
+    ucln_i18n_registerCleanup(UCLN_I18N_JAPANESE_CALENDAR, japanese_calendar_cleanup);
+}
 
 /* Some platforms don't like to export constants, like old Palm OS and some z/OS configurations. */
 uint32_t JapaneseCalendar::getCurrentEra() {
-    return kCurrentEra;
+    return gCurrentEra;
 }
 
 JapaneseCalendar::JapaneseCalendar(const Locale& aLocale, UErrorCode& success)
 :   GregorianCalendar(aLocale, success)
 {
+    init(success);
     setTimeInMillis(getNow(), success); // Call this again now that the vtable is set up properly.
 }
 
@@ -306,6 +108,9 @@ JapaneseCalendar::~JapaneseCalendar()
 JapaneseCalendar::JapaneseCalendar(const JapaneseCalendar& source)
 : GregorianCalendar(source)
 {
+    UErrorCode status = U_ZERO_ERROR;
+    init(status);
+    U_ASSERT(U_SUCCESS(status));
 }
 
 JapaneseCalendar& JapaneseCalendar::operator= ( const JapaneseCalendar& right)
@@ -332,10 +137,14 @@ int32_t JapaneseCalendar::getDefaultMonthInYear(int32_t eyear)
     int32_t month = 0;
 
     // Find out if we are at the edge of an era
-
-    if(eyear == kEraInfo[era].year) {
+    int32_t eraStart[3] = { 0,0,0 };
+    UErrorCode status = U_ZERO_ERROR;
+    gJapaneseEraRules->getStartDate(era, eraStart, status);
+    U_ASSERT(U_SUCCESS(status));
+    if(eyear == eraStart[0]) {
         // Yes, we're in the first year of this era.
-        return kEraInfo[era].month-1;
+        return eraStart[1]  // month
+                -1;         // return 0-based month
     }
 
     return month;
@@ -346,9 +155,13 @@ int32_t JapaneseCalendar::getDefaultDayInMonth(int32_t eyear, int32_t month)
     int32_t era = internalGetEra();
     int32_t day = 1;
 
-    if(eyear == kEraInfo[era].year) {
-        if(month == (kEraInfo[era].month-1)) {
-            return kEraInfo[era].day;
+    int32_t eraStart[3] = { 0,0,0 };
+    UErrorCode status = U_ZERO_ERROR;
+    gJapaneseEraRules->getStartDate(era, eraStart, status);
+    U_ASSERT(U_SUCCESS(status));
+    if(eyear == eraStart[0]) {
+        if(month == eraStart[1] - 1) {
+            return eraStart[2];
         }
     }
 
@@ -358,7 +171,7 @@ int32_t JapaneseCalendar::getDefaultDayInMonth(int32_t eyear, int32_t month)
 
 int32_t JapaneseCalendar::internalGetEra() const
 {
-    return internalGet(UCAL_ERA, kCurrentEra);
+    return internalGet(UCAL_ERA, gCurrentEra);
 }
 
 int32_t JapaneseCalendar::handleGetExtendedYear()
@@ -369,12 +182,18 @@ int32_t JapaneseCalendar::handleGetExtendedYear()
 
     if (newerField(UCAL_EXTENDED_YEAR, UCAL_YEAR) == UCAL_EXTENDED_YEAR &&
         newerField(UCAL_EXTENDED_YEAR, UCAL_ERA) == UCAL_EXTENDED_YEAR) {
-            year = internalGet(UCAL_EXTENDED_YEAR, kGregorianEpoch);
-        } else {
-            // Subtract one because year starts at 1
-            year = internalGet(UCAL_YEAR) + kEraInfo[internalGetEra()].year - 1;
-        }
-        return year;
+        year = internalGet(UCAL_EXTENDED_YEAR, kGregorianEpoch);
+    } else {
+        UErrorCode status = U_ZERO_ERROR;
+        int32_t eraStartYear = gJapaneseEraRules->getStartYear(internalGet(UCAL_ERA, gCurrentEra), status);
+        U_ASSERT(U_SUCCESS(status));
+
+        // extended year is a gregorian year, where 1 = 1AD,  0 = 1BC, -1 = 2BC, etc
+        year = internalGet(UCAL_YEAR, 1)    // pin to minimum of year 1 (first year)
+            + eraStartYear                  // add gregorian starting year
+            - 1;                            // Subtract one because year starts at 1
+    }
+    return year;
 }
 
 
@@ -383,79 +202,10 @@ void JapaneseCalendar::handleComputeFields(int32_t julianDay, UErrorCode& status
     //Calendar::timeToFields(theTime, quick, status);
     GregorianCalendar::handleComputeFields(julianDay, status);
     int32_t year = internalGet(UCAL_EXTENDED_YEAR); // Gregorian year
+    int32_t eraIdx = gJapaneseEraRules->getEraIndex(year, internalGet(UCAL_MONTH) + 1, internalGet(UCAL_DAY_OF_MONTH), status);
 
-    int32_t low = 0;
-
-    // Short circuit for recent years.  Most modern computations will
-    // occur in the current era and won't require the binary search.
-    // Note that if the year is == the current era year, then we use
-    // the binary search to handle the month/dom comparison.
-#ifdef U_DEBUG_JCAL
-    fprintf(stderr, "==  %d \n", year);
-#endif
-
-    if (year > kEraInfo[kCurrentEra].year) {
-        low = kCurrentEra;
-#ifdef U_DEBUG_JCAL
-        fprintf(stderr, " low=%d (special)\n", low);
-#endif
-    } else {
-        // Binary search
-        int32_t high = kEraCount;
-
-#ifdef U_DEBUG_JCAL
-        fprintf(stderr, " high=%d\n", high);
-#endif
-        while (low < high - 1) {
-            int32_t i = (low + high) / 2;
-            int32_t diff = year - kEraInfo[i].year;
-
-#ifdef U_DEBUG_JCAL
-            fprintf(stderr, "  d=%d   low=%d, high=%d. Considering %d:M%d D%d Y%d. { we are ?:M%d D%d Y%d }\n",
-                diff,low, high, i, kEraInfo[i].month-1, kEraInfo[i].day,  kEraInfo[i].year, internalGet(UCAL_MONTH), internalGet(UCAL_DATE),year);
-#endif
-
-            // If years are the same, then compare the months, and if those
-            // are the same, compare days of month.  In the ERAS array
-            // months are 1-based for easier maintenance.
-            if (diff == 0) {
-                diff = internalGet(UCAL_MONTH) - (kEraInfo[i].month - 1);
-#ifdef U_DEBUG_JCAL
-                fprintf(stderr, "diff now %d (M)  = %d - %d - 1\n", diff, internalGet(UCAL_MONTH), kEraInfo[i].month);
-#endif
-                if (diff == 0) {
-                    diff = internalGet(UCAL_DATE) - kEraInfo[i].day;
-#ifdef U_DEBUG_JCAL
-                    fprintf(stderr, "diff now %d (D)\n", diff);
-#endif
-                }
-            }
-            if (diff >= 0) {
-                low = i;
-            } else {
-                high = i;
-            }
-#ifdef U_DEBUG_JCAL
-            fprintf(stderr, ". low=%d, high=%d, i=%d, diff=%d.. %d\n", low, high, i, diff, year);
-#endif
-
-        }
-    }
-
-#ifdef U_DEBUG_JCAL
-    fprintf(stderr, "  low[era]=%d,.. %d\n", low, year);
-#endif
-    // Now we've found the last era that starts before this date, so
-    // adjust the year to count from the start of that era.  Note that
-    // all dates before the first era will fall into the first era by
-    // the algorithm.
-
-    internalSet(UCAL_ERA, low);
-    internalSet(UCAL_YEAR, year - kEraInfo[low].year + 1);
-#ifdef U_DEBUG_JCAL
-    fprintf(stderr, "  Set ERA=%d, year=%d\n", low, year-kEraInfo[low].year+1);
-#endif
-
+    internalSet(UCAL_ERA, eraIdx);
+    internalSet(UCAL_YEAR, year - gJapaneseEraRules->getStartYear(eraIdx, status) + 1);
 }
 
 /*
@@ -483,7 +233,7 @@ int32_t JapaneseCalendar::handleGetLimit(UCalendarDateFields field, ELimitType l
         if (limitType == UCAL_LIMIT_MINIMUM || limitType == UCAL_LIMIT_GREATEST_MINIMUM) {
             return 0;
         }
-        return kCurrentEra;
+        return gCurrentEra;
     case UCAL_YEAR:
         {
             switch (limitType) {
@@ -494,7 +244,12 @@ int32_t JapaneseCalendar::handleGetLimit(UCalendarDateFields field, ELimitType l
                 return 1;
             case  UCAL_LIMIT_COUNT: //added to avoid warning
             case UCAL_LIMIT_MAXIMUM:
-                return GregorianCalendar::handleGetLimit(UCAL_YEAR, UCAL_LIMIT_MAXIMUM) - kEraInfo[kCurrentEra].year;
+            {
+                UErrorCode status = U_ZERO_ERROR;
+                int32_t eraStartYear = gJapaneseEraRules->getStartYear(gCurrentEra, status);
+                U_ASSERT(U_SUCCESS(status));
+                return GregorianCalendar::handleGetLimit(UCAL_YEAR, UCAL_LIMIT_MAXIMUM) - eraStartYear;
+            }
             default:
                 return 1;    // Error condition, invalid limitType
             }
@@ -510,15 +265,18 @@ int32_t JapaneseCalendar::getActualMaximum(UCalendarDateFields field, UErrorCode
         if (U_FAILURE(status)) {
             return 0; // error case... any value
         }
-        if (era == kCurrentEra) {
+        if (era == gCurrentEra) {
             // TODO: Investigate what value should be used here - revisit after 4.0.
             return handleGetLimit(UCAL_YEAR, UCAL_LIMIT_MAXIMUM);
         } else {
-            int32_t nextEraYear = kEraInfo[era + 1].year;
-            int32_t nextEraMonth = kEraInfo[era + 1].month;
-            int32_t nextEraDate = kEraInfo[era + 1].day;
-
-            int32_t maxYear = nextEraYear - kEraInfo[era].year + 1; // 1-base
+            int32_t nextEraStart[3] = { 0,0,0 };
+            gJapaneseEraRules->getStartDate(era + 1, nextEraStart, status);
+            int32_t nextEraYear = nextEraStart[0];
+            int32_t nextEraMonth = nextEraStart[1]; // 1-base
+            int32_t nextEraDate = nextEraStart[2];
+
+            int32_t eraStartYear = gJapaneseEraRules->getStartYear(era, status);
+            int32_t maxYear = nextEraYear - eraStartYear + 1;   // 1-base
             if (nextEraMonth == 1 && nextEraDate == 1) {
                 // Subtract 1, because the next era starts at Jan 1
                 maxYear--;
index f05b2ac..7a6d132 100644 (file)
@@ -49,10 +49,18 @@ U_NAMESPACE_BEGIN
  * July 30, 1912 (Taisho), December 25, 1926 (Showa), and January 7, 1989 (Heisei).  Constants
  * for these eras, suitable for use in the <code>UCAL_ERA</code> field, are provided
  * in this class.  Note that the <em>number</em> used for each era is more or
- * less arbitrary.  Currently, the era starting in 1053 AD is era #0; however this
- * may change in the future as we add more historical data.  Use the predefined
- * constants rather than using actual, absolute numbers.
+ * less arbitrary.  Currently, the era starting in 645 AD is era #0; however this
+ * may change in the future.  Use the predefined constants rather than using actual,
+ * absolute numbers.
  * <p>
+ * Since ICU4C 63, start date of each era is imported from CLDR. CLDR era data
+ * may contain tentative era in near future with placeholder names. By default,
+ * such era data is not enabled. ICU4C users who want to test the behavior of
+ * the future era can enable this one of following settings (in the priority
+ * order):
+ * <ol>
+ * <li>Environment variable <code>ICU_ENABLE_TENTATIVE_ERA=true</code>.</li>
+ * </nl>
  * @internal
  */
 class JapaneseCalendar : public GregorianCalendar {
similarity index 71%
rename from source/common/listformatter.cpp
rename to source/i18n/listformatter.cpp
index 33a8ac2..3b49c05 100644 (file)
 *   created by: Umesh P. Nair
 */
 
+#include "cmemory.h"
+#include "unicode/fpositer.h"  // FieldPositionIterator
 #include "unicode/listformatter.h"
 #include "unicode/simpleformatter.h"
+#include "unicode/ulistformatter.h"
+#include "fphdlimp.h"
 #include "mutex.h"
 #include "hash.h"
 #include "cstring.h"
+#include "uarrsort.h"
 #include "ulocimp.h"
 #include "charstr.h"
-#include "ucln_cmn.h"
+#include "ucln_in.h"
 #include "uresimp.h"
 #include "resource.h"
 
@@ -61,14 +66,14 @@ ListFormatInternal(const ListFormatInternal &other) :
 
 
 
-static Hashtable* listPatternHash = NULL;
+static Hashtable* listPatternHash = nullptr;
 static UMutex listFormatterMutex = U_MUTEX_INITIALIZER;
 static const char STANDARD_STYLE[] = "standard";
 
 U_CDECL_BEGIN
 static UBool U_CALLCONV uprv_listformatter_cleanup() {
     delete listPatternHash;
-    listPatternHash = NULL;
+    listPatternHash = nullptr;
     return TRUE;
 }
 
@@ -81,7 +86,7 @@ U_CDECL_END
 
 ListFormatter::ListFormatter(const ListFormatter& other) :
         owned(other.owned), data(other.data) {
-    if (other.owned != NULL) {
+    if (other.owned != nullptr) {
         owned = new ListFormatInternal(*other.owned);
         data = owned;
     }
@@ -96,7 +101,7 @@ ListFormatter& ListFormatter::operator=(const ListFormatter& other) {
         owned = new ListFormatInternal(*other.owned);
         data = owned;
     } else {
-        owned = NULL;
+        owned = nullptr;
         data = other.data;
     }
     return *this;
@@ -108,53 +113,53 @@ void ListFormatter::initializeHash(UErrorCode& errorCode) {
     }
 
     listPatternHash = new Hashtable();
-    if (listPatternHash == NULL) {
+    if (listPatternHash == nullptr) {
         errorCode = U_MEMORY_ALLOCATION_ERROR;
         return;
     }
 
     listPatternHash->setValueDeleter(uprv_deleteListFormatInternal);
-    ucln_common_registerCleanup(UCLN_COMMON_LIST_FORMATTER, uprv_listformatter_cleanup);
+    ucln_i18n_registerCleanup(UCLN_I18N_LIST_FORMATTER, uprv_listformatter_cleanup);
 
 }
 
 const ListFormatInternal* ListFormatter::getListFormatInternal(
         const Locale& locale, const char *style, UErrorCode& errorCode) {
     if (U_FAILURE(errorCode)) {
-        return NULL;
+        return nullptr;
     }
     CharString keyBuffer(locale.getName(), errorCode);
     keyBuffer.append(':', errorCode).append(style, errorCode);
     UnicodeString key(keyBuffer.data(), -1, US_INV);
-    ListFormatInternal* result = NULL;
+    ListFormatInternal* result = nullptr;
     {
         Mutex m(&listFormatterMutex);
-        if (listPatternHash == NULL) {
+        if (listPatternHash == nullptr) {
             initializeHash(errorCode);
             if (U_FAILURE(errorCode)) {
-                return NULL;
+                return nullptr;
             }
         }
         result = static_cast<ListFormatInternal*>(listPatternHash->get(key));
     }
-    if (result != NULL) {
+    if (result != nullptr) {
         return result;
     }
     result = loadListFormatInternal(locale, style, errorCode);
     if (U_FAILURE(errorCode)) {
-        return NULL;
+        return nullptr;
     }
 
     {
         Mutex m(&listFormatterMutex);
         ListFormatInternal* temp = static_cast<ListFormatInternal*>(listPatternHash->get(key));
-        if (temp != NULL) {
+        if (temp != nullptr) {
             delete result;
             result = temp;
         } else {
             listPatternHash->put(key, result, errorCode);
             if (U_FAILURE(errorCode)) {
-                return NULL;
+                return nullptr;
             }
         }
     }
@@ -235,11 +240,11 @@ ListFormatter::ListPatternsSink::~ListPatternsSink() {}
 
 ListFormatInternal* ListFormatter::loadListFormatInternal(
         const Locale& locale, const char * style, UErrorCode& errorCode) {
-    UResourceBundle* rb = ures_open(NULL, locale.getName(), &errorCode);
+    UResourceBundle* rb = ures_open(nullptr, locale.getName(), &errorCode);
     rb = ures_getByKeyWithFallback(rb, "listPattern", rb, &errorCode);
     if (U_FAILURE(errorCode)) {
         ures_close(rb);
-        return NULL;
+        return nullptr;
     }
     ListFormatter::ListPatternsSink sink;
     char currentStyle[kStyleLenMax+1];
@@ -255,20 +260,20 @@ ListFormatInternal* ListFormatter::loadListFormatInternal(
     }
     ures_close(rb);
     if (U_FAILURE(errorCode)) {
-        return NULL;
+        return nullptr;
     }
     if (sink.two.isEmpty() || sink.start.isEmpty() || sink.middle.isEmpty() || sink.end.isEmpty()) {
         errorCode = U_MISSING_RESOURCE_ERROR;
-        return NULL;
+        return nullptr;
     }
     ListFormatInternal* result = new ListFormatInternal(sink.two, sink.start, sink.middle, sink.end, errorCode);
-    if (result == NULL) {
+    if (result == nullptr) {
         errorCode = U_MEMORY_ALLOCATION_ERROR;
-        return NULL;
+        return nullptr;
     }
     if (U_FAILURE(errorCode)) {
         delete result;
-        return NULL;
+        return nullptr;
     }
     return result;
 }
@@ -283,15 +288,14 @@ ListFormatter* ListFormatter::createInstance(const Locale& locale, UErrorCode& e
 }
 
 ListFormatter* ListFormatter::createInstance(const Locale& locale, const char *style, UErrorCode& errorCode) {
-    Locale tempLocale = locale;
-    const ListFormatInternal* listFormatInternal = getListFormatInternal(tempLocale, style, errorCode);
+    const ListFormatInternal* listFormatInternal = getListFormatInternal(locale, style, errorCode);
     if (U_FAILURE(errorCode)) {
-        return NULL;
+        return nullptr;
     }
     ListFormatter* p = new ListFormatter(listFormatInternal);
-    if (p == NULL) {
+    if (p == nullptr) {
         errorCode = U_MEMORY_ALLOCATION_ERROR;
-        return NULL;
+        return nullptr;
     }
     return p;
 }
@@ -301,7 +305,7 @@ ListFormatter::ListFormatter(const ListFormatData& listFormatData, UErrorCode &e
     data = owned;
 }
 
-ListFormatter::ListFormatter(const ListFormatInternal* listFormatterInternal) : owned(NULL), data(listFormatterInternal) {
+ListFormatter::ListFormatter(const ListFormatInternal* listFormatterInternal) : owned(nullptr), data(listFormatterInternal) {
 }
 
 ListFormatter::~ListFormatter() {
@@ -323,6 +327,8 @@ static void joinStringsAndReplace(
         UnicodeString &result,
         UBool recordOffset,
         int32_t &offset,
+        int32_t *offsetFirst,
+        int32_t *offsetSecond,
         UErrorCode& errorCode) {
     if (U_FAILURE(errorCode)) {
         return;
@@ -348,6 +354,8 @@ static void joinStringsAndReplace(
     } else if (offset >= 0) {
         offset += offsets[0];
     }
+    if (offsetFirst != nullptr) *offsetFirst = offsets[0];
+    if (offsetSecond != nullptr) *offsetSecond = offsets[1];
 }
 
 UnicodeString& ListFormatter::format(
@@ -359,18 +367,43 @@ UnicodeString& ListFormatter::format(
     return format(items, nItems, appendTo, -1, offset, errorCode);
 }
 
+#if !UCONFIG_NO_FORMATTING
 UnicodeString& ListFormatter::format(
         const UnicodeString items[],
         int32_t nItems,
+        UnicodeString & appendTo,
+        FieldPositionIterator* posIter,
+        UErrorCode& errorCode) const {
+  int32_t offset;
+  FieldPositionIteratorHandler handler(posIter, errorCode);
+  return format_(items, nItems, appendTo, -1, offset, &handler, errorCode);
+};
+#endif
+
+UnicodeString& ListFormatter::format(
+        const UnicodeString items[],
+        int32_t nItems,
+        UnicodeString& appendTo,
+        int32_t index,
+        int32_t &offset,
+        UErrorCode& errorCode) const {
+  return format_(items, nItems, appendTo, index, offset, nullptr, errorCode);
+}
+
+UnicodeString& ListFormatter::format_(
+        const UnicodeString items[],
+        int32_t nItems,
         UnicodeString& appendTo,
         int32_t index,
         int32_t &offset,
+        FieldPositionHandler* handler,
         UErrorCode& errorCode) const {
+#if !UCONFIG_NO_FORMATTING
     offset = -1;
     if (U_FAILURE(errorCode)) {
         return appendTo;
     }
-    if (data == NULL) {
+    if (data == nullptr) {
         errorCode = U_INVALID_STATE_ERROR;
         return appendTo;
     }
@@ -382,6 +415,11 @@ UnicodeString& ListFormatter::format(
         if (index == 0) {
             offset = appendTo.length();
         }
+        if (handler != nullptr) {
+            handler->addAttribute(ULISTFMT_ELEMENT_FIELD,
+                                  appendTo.length(),
+                                  appendTo.length() + items[0].length());
+        }
         appendTo.append(items[0]);
         return appendTo;
     }
@@ -389,6 +427,12 @@ UnicodeString& ListFormatter::format(
     if (index == 0) {
         offset = 0;
     }
+    int32_t offsetFirst;
+    int32_t offsetSecond;
+    int32_t prefixLength = 0;
+    // for n items, there are 2 * (n + 1) boundary including 0 and the upper
+    // edge.
+    MaybeStackArray<int32_t, 10> offsets((handler != nullptr) ? 2 * (nItems + 1): 0);
     joinStringsAndReplace(
             nItems == 2 ? data->twoPattern : data->startPattern,
             result,
@@ -396,7 +440,14 @@ UnicodeString& ListFormatter::format(
             result,
             index == 1,
             offset,
+            &offsetFirst,
+            &offsetSecond,
             errorCode);
+    if (handler != nullptr) {
+        offsets[0] = 0;
+        prefixLength += offsetFirst;
+        offsets[1] = offsetSecond - prefixLength;
+    }
     if (nItems > 2) {
         for (int32_t i = 2; i < nItems - 1; ++i) {
              joinStringsAndReplace(
@@ -406,7 +457,13 @@ UnicodeString& ListFormatter::format(
                      result,
                      index == i,
                      offset,
+                     &offsetFirst,
+                     &offsetSecond,
                      errorCode);
+            if (handler != nullptr) {
+                prefixLength += offsetFirst;
+                offsets[i] = offsetSecond - prefixLength;
+            }
         }
         joinStringsAndReplace(
                 data->endPattern,
@@ -415,7 +472,45 @@ UnicodeString& ListFormatter::format(
                 result,
                 index == nItems - 1,
                 offset,
+                &offsetFirst,
+                &offsetSecond,
                 errorCode);
+        if (handler != nullptr) {
+            prefixLength += offsetFirst;
+            offsets[nItems - 1] = offsetSecond - prefixLength;
+        }
+    }
+    if (handler != nullptr) {
+        // If there are already some data in appendTo, we need to adjust the index
+        // by shifting that lenght while insert into handler.
+        int32_t shift = appendTo.length() + prefixLength;
+        // Output the ULISTFMT_ELEMENT_FIELD in the order of the input elements
+        for (int32_t i = 0; i < nItems; ++i) {
+            offsets[i + nItems] = offsets[i] + items[i].length() + shift;
+            offsets[i] += shift;
+            handler->addAttribute(
+                ULISTFMT_ELEMENT_FIELD,  // id
+                offsets[i],  // index
+                offsets[i + nItems]);  // limit
+        }
+        // The locale pattern may reorder the items (such as in ur-IN locale),
+        // so we cannot assume the array is in accendning order.
+        // To handle the edging case, just insert the two ends into the array
+        // and sort. Then we output ULISTFMT_LITERAL_FIELD if the indecies
+        // between the even and odd position are not the same in the sorted array.
+        offsets[2 * nItems] = shift - prefixLength;
+        offsets[2 * nItems + 1] = result.length() + shift - prefixLength;
+        uprv_sortArray(offsets.getAlias(), 2 * (nItems + 1), sizeof(int32_t),
+               uprv_int32Comparator, nullptr,
+               false, &errorCode);
+        for (int32_t i = 0; i <= nItems; ++i) {
+          if (offsets[i * 2] != offsets[i * 2 + 1]) {
+            handler->addAttribute(
+                ULISTFMT_LITERAL_FIELD,  // id
+                offsets[i * 2],  // index
+                offsets[i * 2 + 1]);  // limit
+          }
+        }
     }
     if (U_SUCCESS(errorCode)) {
         if (offset >= 0) {
@@ -423,6 +518,7 @@ UnicodeString& ListFormatter::format(
         }
         appendTo += result;
     }
+#endif  
     return appendTo;
 }
 
index 5970262..9830dc8 100644 (file)
@@ -47,7 +47,7 @@ U_NAMESPACE_BEGIN
 
 static constexpr int32_t PER_UNIT_INDEX = StandardPlural::COUNT;
 static constexpr int32_t PATTERN_COUNT = PER_UNIT_INDEX + 1;
-static constexpr int32_t MEAS_UNIT_COUNT = 138;  // see assertion in MeasureFormatCacheData constructor
+static constexpr int32_t MEAS_UNIT_COUNT = 142;  // see assertion in MeasureFormatCacheData constructor
 static constexpr int32_t WIDTH_INDEX_COUNT = UMEASFMT_WIDTH_NARROW + 1;
 
 UOBJECT_DEFINE_RTTI_IMPLEMENTATION(MeasureFormat)
@@ -618,7 +618,7 @@ MeasureFormat::MeasureFormat(
         : cache(NULL),
           numberFormat(NULL),
           pluralRules(NULL),
-          width(w),
+          fWidth(w),
           listFormatter(NULL) {
     initMeasureFormat(locale, w, NULL, status);
 }
@@ -631,7 +631,7 @@ MeasureFormat::MeasureFormat(
         : cache(NULL),
           numberFormat(NULL),
           pluralRules(NULL),
-          width(w),
+          fWidth(w),
           listFormatter(NULL) {
     initMeasureFormat(locale, w, nfToAdopt, status);
 }
@@ -641,7 +641,7 @@ MeasureFormat::MeasureFormat(const MeasureFormat &other) :
         cache(other.cache),
         numberFormat(other.numberFormat),
         pluralRules(other.pluralRules),
-        width(other.width),
+        fWidth(other.fWidth),
         listFormatter(NULL) {
     cache->addRef();
     numberFormat->addRef();
@@ -659,7 +659,7 @@ MeasureFormat &MeasureFormat::operator=(const MeasureFormat &other) {
     SharedObject::copyPtr(other.cache, cache);
     SharedObject::copyPtr(other.numberFormat, numberFormat);
     SharedObject::copyPtr(other.pluralRules, pluralRules);
-    width = other.width;
+    fWidth = other.fWidth;
     delete listFormatter;
     if (other.listFormatter != NULL) {
         listFormatter = new ListFormatter(*other.listFormatter);
@@ -673,7 +673,7 @@ MeasureFormat::MeasureFormat() :
         cache(NULL),
         numberFormat(NULL),
         pluralRules(NULL),
-        width(UMEASFMT_WIDTH_SHORT),
+        fWidth(UMEASFMT_WIDTH_SHORT),
         listFormatter(NULL) {
 }
 
@@ -703,7 +703,7 @@ UBool MeasureFormat::operator==(const Format &other) const {
     // don't have to check it here.
 
     // differing widths aren't equivalent
-    if (width != rhs.width) {
+    if (fWidth != rhs.fWidth) {
         return FALSE;
     }
     // Width the same check locales.
@@ -805,7 +805,7 @@ UnicodeString &MeasureFormat::formatMeasures(
     if (measureCount == 1) {
         return formatMeasure(measures[0], **numberFormat, appendTo, pos, status);
     }
-    if (width == UMEASFMT_WIDTH_NUMERIC) {
+    if (fWidth == UMEASFMT_WIDTH_NUMERIC) {
         Formattable hms[3];
         int32_t bitMap = toHMS(measures, measureCount, hms, status);
         if (bitMap > 0) {
@@ -839,7 +839,7 @@ UnicodeString &MeasureFormat::formatMeasures(
 }
 
 UnicodeString MeasureFormat::getUnitDisplayName(const MeasureUnit& unit, UErrorCode& /*status*/) const {
-    UMeasureFormatWidth width = getRegularWidth(this->width);
+    UMeasureFormatWidth width = getRegularWidth(fWidth);
     const UChar* const* styleToDnam = cache->dnams[unit.getIndex()];
     const UChar* dnam = styleToDnam[width];
     if (dnam == NULL) {
@@ -895,11 +895,11 @@ void MeasureFormat::initMeasureFormat(
             return;
         }
     }
-    width = w;
+    fWidth = w;
     delete listFormatter;
     listFormatter = ListFormatter::createInstance(
             locale,
-            listStyles[getRegularWidth(width)],
+            listStyles[getRegularWidth(fWidth)],
             status);
 }
 
@@ -922,7 +922,7 @@ UBool MeasureFormat::setMeasureFormatLocale(const Locale &locale, UErrorCode &st
     if (U_FAILURE(status) || locale == getLocale(status)) {
         return FALSE;
     }
-    initMeasureFormat(locale, width, NULL, status);
+    initMeasureFormat(locale, fWidth, NULL, status);
     return U_SUCCESS(status);
 } 
 
@@ -956,7 +956,7 @@ UnicodeString &MeasureFormat::formatMeasure(
     if (isCurrency(amtUnit)) {
         UChar isoCode[4];
         u_charsToUChars(amtUnit.getSubtype(), isoCode, 4);
-        return cache->getCurrencyFormat(width)->format(
+        return cache->getCurrencyFormat(fWidth)->format(
                 new CurrencyAmount(amtNumber, isoCode, status),
                 appendTo,
                 pos,
@@ -965,7 +965,7 @@ UnicodeString &MeasureFormat::formatMeasure(
     UnicodeString formattedNumber;
     StandardPlural::Form pluralForm = QuantityFormatter::selectPlural(
             amtNumber, nf, **pluralRules, formattedNumber, pos, status);
-    const SimpleFormatter *formatter = getPluralFormatter(amtUnit, width, pluralForm, status);
+    const SimpleFormatter *formatter = getPluralFormatter(amtUnit, fWidth, pluralForm, status);
     return QuantityFormatter::format(*formatter, formattedNumber, appendTo, pos, status);
 }
 
@@ -1016,7 +1016,6 @@ UnicodeString &MeasureFormat::formatNumeric(
         return appendTo;
         break;
     }
-    return appendTo;
 }
 
 static void appendRange(
@@ -1173,7 +1172,7 @@ int32_t MeasureFormat::withPerUnitAndAppend(
     if (U_FAILURE(status)) {
         return offset;
     }
-    const SimpleFormatter *perUnitFormatter = getFormatterOrNull(perUnit, width, PER_UNIT_INDEX);
+    const SimpleFormatter *perUnitFormatter = getFormatterOrNull(perUnit, fWidth, PER_UNIT_INDEX);
     if (perUnitFormatter != NULL) {
         const UnicodeString *params[] = {&formatted};
         perUnitFormatter->formatAndAppend(
@@ -1185,9 +1184,9 @@ int32_t MeasureFormat::withPerUnitAndAppend(
                 status);
         return offset;
     }
-    const SimpleFormatter *perFormatter = getPerFormatter(width, status);
+    const SimpleFormatter *perFormatter = getPerFormatter(fWidth, status);
     const SimpleFormatter *pattern =
-            getPluralFormatter(perUnit, width, StandardPlural::ONE, status);
+            getPluralFormatter(perUnit, fWidth, StandardPlural::ONE, status);
     if (U_FAILURE(status)) {
         return offset;
     }
index 211d959..d68d504 100644 (file)
@@ -39,23 +39,23 @@ static const int32_t gOffsets[] = {
     2,
     7,
     16,
-    20,
-    24,
-    321,
-    331,
-    342,
-    346,
-    352,
-    356,
-    376,
-    377,
-    388,
-    391,
-    397,
+    22,
+    26,
+    325,
+    336,
+    347,
+    351,
+    357,
+    361,
+    381,
+    382,
+    393,
+    396,
     402,
-    406,
-    410,
-    435
+    408,
+    412,
+    416,
+    441
 };
 
 static const int32_t gIndexes[] = {
@@ -63,23 +63,23 @@ static const int32_t gIndexes[] = {
     2,
     7,
     16,
-    20,
-    24,
-    24,
-    34,
-    45,
-    49,
-    55,
-    59,
-    79,
-    80,
-    91,
+    22,
+    26,
+    26,
+    37,
+    48,
+    52,
+    58,
+    62,
+    82,
+    83,
     94,
-    100,
-    105,
+    97,
+    103,
     109,
     113,
-    138
+    117,
+    142
 };
 
 // Must be sorted alphabetically.
@@ -128,6 +128,8 @@ static const char * const gSubTypes[] = {
     "milligram-per-deciliter",
     "millimole-per-liter",
     "part-per-million",
+    "percent",
+    "permille",
     "liter-per-100kilometers",
     "liter-per-kilometer",
     "mile-per-gallon",
@@ -388,9 +390,11 @@ static const char * const gSubTypes[] = {
     "UYN",
     "UYP",
     "UYU",
+    "UYW",
     "UZS",
     "VEB",
     "VEF",
+    "VES",
     "VNC",
     "VND",
     "VUV",
@@ -437,6 +441,7 @@ static const char * const gSubTypes[] = {
     "kilobyte",
     "megabit",
     "megabyte",
+    "petabyte",
     "terabit",
     "terabyte",
     "century",
@@ -505,6 +510,7 @@ static const char * const gSubTypes[] = {
     "megawatt",
     "milliwatt",
     "watt",
+    "atmosphere",
     "hectopascal",
     "inch-hg",
     "millibar",
@@ -547,14 +553,14 @@ static const char * const gSubTypes[] = {
 
 // Must be sorted by first value and then second value.
 static int32_t unitPerUnitToSingleUnit[][4] = {
-        {363, 333, 17, 0},
-        {365, 339, 17, 2},
-        {367, 333, 17, 3},
-        {367, 424, 4, 2},
-        {367, 425, 4, 3},
-        {382, 422, 3, 1},
-        {385, 11, 16, 4},
-        {427, 363, 4, 1}
+        {368, 338, 17, 0},
+        {370, 344, 17, 2},
+        {372, 338, 17, 3},
+        {372, 430, 4, 2},
+        {372, 431, 4, 3},
+        {387, 428, 3, 1},
+        {390, 11, 16, 5},
+        {433, 368, 4, 1}
 };
 
 // Shortcuts to the base unit in order to make the default constructor fast
@@ -641,6 +647,14 @@ MeasureUnit *MeasureUnit::createPartPerMillion(UErrorCode &status) {
     return MeasureUnit::create(3, 3, status);
 }
 
+MeasureUnit *MeasureUnit::createPercent(UErrorCode &status) {
+    return MeasureUnit::create(3, 4, status);
+}
+
+MeasureUnit *MeasureUnit::createPermille(UErrorCode &status) {
+    return MeasureUnit::create(3, 5, status);
+}
+
 MeasureUnit *MeasureUnit::createLiterPer100Kilometers(UErrorCode &status) {
     return MeasureUnit::create(4, 0, status);
 }
@@ -689,14 +703,18 @@ MeasureUnit *MeasureUnit::createMegabyte(UErrorCode &status) {
     return MeasureUnit::create(6, 7, status);
 }
 
-MeasureUnit *MeasureUnit::createTerabit(UErrorCode &status) {
+MeasureUnit *MeasureUnit::createPetabyte(UErrorCode &status) {
     return MeasureUnit::create(6, 8, status);
 }
 
-MeasureUnit *MeasureUnit::createTerabyte(UErrorCode &status) {
+MeasureUnit *MeasureUnit::createTerabit(UErrorCode &status) {
     return MeasureUnit::create(6, 9, status);
 }
 
+MeasureUnit *MeasureUnit::createTerabyte(UErrorCode &status) {
+    return MeasureUnit::create(6, 10, status);
+}
+
 MeasureUnit *MeasureUnit::createCentury(UErrorCode &status) {
     return MeasureUnit::create(7, 0, status);
 }
@@ -949,26 +967,30 @@ MeasureUnit *MeasureUnit::createWatt(UErrorCode &status) {
     return MeasureUnit::create(15, 5, status);
 }
 
-MeasureUnit *MeasureUnit::createHectopascal(UErrorCode &status) {
+MeasureUnit *MeasureUnit::createAtmosphere(UErrorCode &status) {
     return MeasureUnit::create(16, 0, status);
 }
 
-MeasureUnit *MeasureUnit::createInchHg(UErrorCode &status) {
+MeasureUnit *MeasureUnit::createHectopascal(UErrorCode &status) {
     return MeasureUnit::create(16, 1, status);
 }
 
-MeasureUnit *MeasureUnit::createMillibar(UErrorCode &status) {
+MeasureUnit *MeasureUnit::createInchHg(UErrorCode &status) {
     return MeasureUnit::create(16, 2, status);
 }
 
-MeasureUnit *MeasureUnit::createMillimeterOfMercury(UErrorCode &status) {
+MeasureUnit *MeasureUnit::createMillibar(UErrorCode &status) {
     return MeasureUnit::create(16, 3, status);
 }
 
-MeasureUnit *MeasureUnit::createPoundPerSquareInch(UErrorCode &status) {
+MeasureUnit *MeasureUnit::createMillimeterOfMercury(UErrorCode &status) {
     return MeasureUnit::create(16, 4, status);
 }
 
+MeasureUnit *MeasureUnit::createPoundPerSquareInch(UErrorCode &status) {
+    return MeasureUnit::create(16, 5, status);
+}
+
 MeasureUnit *MeasureUnit::createKilometerPerHour(UErrorCode &status) {
     return MeasureUnit::create(17, 0, status);
 }
index 8b3807e..8ff86a2 100644 (file)
@@ -1078,7 +1078,7 @@ void MessageFormat::format(int32_t msgStart, const void *plNumber,
                 // that formats the number without subtracting the offset.
                 appendTo.formatAndAppend(pluralNumber.formatter, *arg, success);
             }
-        } else if ((formatter = getCachedFormatter(i -2))) {
+        } else if ((formatter = getCachedFormatter(i -2)) != 0) {
             // Handles all ArgType.SIMPLE, and formatters from setFormat() and its siblings.
             if (dynamic_cast<const ChoiceFormat*>(formatter) ||
                 dynamic_cast<const PluralFormat*>(formatter) ||
index c75ecf0..3ad0291 100644 (file)
@@ -39,14 +39,14 @@ NFRule::NFRule(const RuleBasedNumberFormat* _rbnf, const UnicodeString &_ruleTex
   , radix(10)
   , exponent(0)
   , decimalPoint(0)
-  , ruleText(_ruleText)
+  , fRuleText(_ruleText)
   , sub1(NULL)
   , sub2(NULL)
   , formatter(_rbnf)
   , rulePatternFormat(NULL)
 {
-    if (!ruleText.isEmpty()) {
-        parseRuleDescriptor(ruleText, status);
+    if (!fRuleText.isEmpty()) {
+        parseRuleDescriptor(fRuleText, status);
     }
 }
 
@@ -122,7 +122,7 @@ NFRule::makeRules(UnicodeString& description,
         status = U_MEMORY_ALLOCATION_ERROR;
         return;
     }
-    description = rule1->ruleText;
+    description = rule1->fRuleText;
 
     // check the description to see whether there's text enclosed
     // in brackets
@@ -314,7 +314,7 @@ NFRule::parseRuleDescriptor(UnicodeString& description, UErrorCode& status)
             if (c == gSlash) {
                 val = 0;
                 ++p;
-                int64_t ll_10 = 10;
+                ll_10 = 10;
                 while (p < descriptorLength) {
                     c = descriptor.charAt(p);
                     if (c >= gZero && c <= gNine) {
@@ -418,7 +418,7 @@ NFRule::extractSubstitutions(const NFRuleSet* ruleSet,
     if (U_FAILURE(status)) {
         return;
     }
-    this->ruleText = ruleText;
+    fRuleText = ruleText;
     sub1 = extractSubstitution(ruleSet, predecessor, status);
     if (sub1 == NULL) {
         // Small optimization. There is no need to create a redundant NullSubstitution.
@@ -427,15 +427,15 @@ NFRule::extractSubstitutions(const NFRuleSet* ruleSet,
     else {
         sub2 = extractSubstitution(ruleSet, predecessor, status);
     }
-    int32_t pluralRuleStart = this->ruleText.indexOf(gDollarOpenParenthesis, -1, 0);
-    int32_t pluralRuleEnd = (pluralRuleStart >= 0 ? this->ruleText.indexOf(gClosedParenthesisDollar, -1, pluralRuleStart) : -1);
+    int32_t pluralRuleStart = fRuleText.indexOf(gDollarOpenParenthesis, -1, 0);
+    int32_t pluralRuleEnd = (pluralRuleStart >= 0 ? fRuleText.indexOf(gClosedParenthesisDollar, -1, pluralRuleStart) : -1);
     if (pluralRuleEnd >= 0) {
-        int32_t endType = this->ruleText.indexOf(gComma, pluralRuleStart);
+        int32_t endType = fRuleText.indexOf(gComma, pluralRuleStart);
         if (endType < 0) {
             status = U_PARSE_ERROR;
             return;
         }
-        UnicodeString type(this->ruleText.tempSubString(pluralRuleStart + 2, endType - pluralRuleStart - 2));
+        UnicodeString type(fRuleText.tempSubString(pluralRuleStart + 2, endType - pluralRuleStart - 2));
         UPluralType pluralType;
         if (type.startsWith(UNICODE_STRING_SIMPLE("cardinal"))) {
             pluralType = UPLURAL_TYPE_CARDINAL;
@@ -448,7 +448,7 @@ NFRule::extractSubstitutions(const NFRuleSet* ruleSet,
             return;
         }
         rulePatternFormat = formatter->createPluralFormat(pluralType,
-                this->ruleText.tempSubString(endType + 1, pluralRuleEnd - endType - 1), status);
+                fRuleText.tempSubString(endType + 1, pluralRuleEnd - endType - 1), status);
     }
 }
 
@@ -484,16 +484,16 @@ NFRule::extractSubstitution(const NFRuleSet* ruleSet,
 
     // special-case the ">>>" token, since searching for the > at the
     // end will actually find the > in the middle
-    if (ruleText.indexOf(gGreaterGreaterGreater, 3, 0) == subStart) {
+    if (fRuleText.indexOf(gGreaterGreaterGreater, 3, 0) == subStart) {
         subEnd = subStart + 2;
 
         // otherwise the substitution token ends with the same character
         // it began with
     } else {
-        UChar c = ruleText.charAt(subStart);
-        subEnd = ruleText.indexOf(c, subStart + 1);
+        UChar c = fRuleText.charAt(subStart);
+        subEnd = fRuleText.indexOf(c, subStart + 1);
         // special case for '<%foo<<'
-        if (c == gLessThan && subEnd != -1 && subEnd < ruleText.length() - 1 && ruleText.charAt(subEnd+1) == c) {
+        if (c == gLessThan && subEnd != -1 && subEnd < fRuleText.length() - 1 && fRuleText.charAt(subEnd+1) == c) {
             // ordinals use "=#,##0==%abbrev=" as their rule.  Notice that the '==' in the middle
             // occurs because of the juxtaposition of two different rules.  The check for '<' is a hack
             // to get around this.  Having the duplicate at the front would cause problems with
@@ -513,12 +513,12 @@ NFRule::extractSubstitution(const NFRuleSet* ruleSet,
     // some text bounded by substitution token characters).  Use
     // makeSubstitution() to create the right kind of substitution
     UnicodeString subToken;
-    subToken.setTo(ruleText, subStart, subEnd + 1 - subStart);
+    subToken.setTo(fRuleText, subStart, subEnd + 1 - subStart);
     result = NFSubstitution::makeSubstitution(subStart, this, predecessor, ruleSet,
         this->formatter, subToken, status);
 
     // remove the substitution from the rule text
-    ruleText.removeBetween(subStart, subEnd+1);
+    fRuleText.removeBetween(subStart, subEnd+1);
 
     return result;
 }
@@ -601,7 +601,7 @@ NFRule::indexOfAnyRulePrefix() const
 {
     int result = -1;
     for (int i = 0; RULE_PREFIXES[i]; i++) {
-        int32_t pos = ruleText.indexOf(*RULE_PREFIXES[i]);
+        int32_t pos = fRuleText.indexOf(*RULE_PREFIXES[i]);
         if (pos != -1 && (result == -1 || pos < result)) {
             result = pos;
         }
@@ -637,7 +637,7 @@ NFRule::operator==(const NFRule& rhs) const
     return baseValue == rhs.baseValue
         && radix == rhs.radix
         && exponent == rhs.exponent
-        && ruleText == rhs.ruleText
+        && fRuleText == rhs.fRuleText
         && util_equalSubstitutions(sub1, rhs.sub1)
         && util_equalSubstitutions(sub2, rhs.sub2);
 }
@@ -690,14 +690,14 @@ NFRule::_appendRuleText(UnicodeString& result) const
     // if the rule text begins with a space, write an apostrophe
     // (whitespace after the rule descriptor is ignored; the
     // apostrophe is used to make the whitespace significant)
-    if (ruleText.charAt(0) == gSpace && (sub1 == NULL || sub1->getPos() != 0)) {
+    if (fRuleText.charAt(0) == gSpace && (sub1 == NULL || sub1->getPos() != 0)) {
         result.append(gTick);
     }
 
     // now, write the rule's rule text, inserting appropriate
     // substitution tokens in the appropriate places
     UnicodeString ruleTextCopy;
-    ruleTextCopy.setTo(ruleText);
+    ruleTextCopy.setTo(fRuleText);
 
     UnicodeString temp;
     if (sub2 != NULL) {
@@ -743,24 +743,24 @@ NFRule::doFormat(int64_t number, UnicodeString& toInsertInto, int32_t pos, int32
     // into the right places in toInsertInto (notice we do the
     // substitutions in reverse order so that the offsets don't get
     // messed up)
-    int32_t pluralRuleStart = ruleText.length();
+    int32_t pluralRuleStart = fRuleText.length();
     int32_t lengthOffset = 0;
     if (!rulePatternFormat) {
-        toInsertInto.insert(pos, ruleText);
+        toInsertInto.insert(pos, fRuleText);
     }
     else {
-        pluralRuleStart = ruleText.indexOf(gDollarOpenParenthesis, -1, 0);
-        int pluralRuleEnd = ruleText.indexOf(gClosedParenthesisDollar, -1, pluralRuleStart);
+        pluralRuleStart = fRuleText.indexOf(gDollarOpenParenthesis, -1, 0);
+        int pluralRuleEnd = fRuleText.indexOf(gClosedParenthesisDollar, -1, pluralRuleStart);
         int initialLength = toInsertInto.length();
-        if (pluralRuleEnd < ruleText.length() - 1) {
-            toInsertInto.insert(pos, ruleText.tempSubString(pluralRuleEnd + 2));
+        if (pluralRuleEnd < fRuleText.length() - 1) {
+            toInsertInto.insert(pos, fRuleText.tempSubString(pluralRuleEnd + 2));
         }
         toInsertInto.insert(pos,
             rulePatternFormat->format((int32_t)(number/util64_pow(radix, exponent)), status));
         if (pluralRuleStart > 0) {
-            toInsertInto.insert(pos, ruleText.tempSubString(0, pluralRuleStart));
+            toInsertInto.insert(pos, fRuleText.tempSubString(0, pluralRuleStart));
         }
-        lengthOffset = ruleText.length() - (toInsertInto.length() - initialLength);
+        lengthOffset = fRuleText.length() - (toInsertInto.length() - initialLength);
     }
 
     if (sub2 != NULL) {
@@ -789,17 +789,17 @@ NFRule::doFormat(double number, UnicodeString& toInsertInto, int32_t pos, int32_
     // [again, we have two copies of this routine that do the same thing
     // so that we don't sacrifice precision in a long by casting it
     // to a double]
-    int32_t pluralRuleStart = ruleText.length();
+    int32_t pluralRuleStart = fRuleText.length();
     int32_t lengthOffset = 0;
     if (!rulePatternFormat) {
-        toInsertInto.insert(pos, ruleText);
+        toInsertInto.insert(pos, fRuleText);
     }
     else {
-        pluralRuleStart = ruleText.indexOf(gDollarOpenParenthesis, -1, 0);
-        int pluralRuleEnd = ruleText.indexOf(gClosedParenthesisDollar, -1, pluralRuleStart);
+        pluralRuleStart = fRuleText.indexOf(gDollarOpenParenthesis, -1, 0);
+        int pluralRuleEnd = fRuleText.indexOf(gClosedParenthesisDollar, -1, pluralRuleStart);
         int initialLength = toInsertInto.length();
-        if (pluralRuleEnd < ruleText.length() - 1) {
-            toInsertInto.insert(pos, ruleText.tempSubString(pluralRuleEnd + 2));
+        if (pluralRuleEnd < fRuleText.length() - 1) {
+            toInsertInto.insert(pos, fRuleText.tempSubString(pluralRuleEnd + 2));
         }
         double pluralVal = number;
         if (0 <= pluralVal && pluralVal < 1) {
@@ -812,9 +812,9 @@ NFRule::doFormat(double number, UnicodeString& toInsertInto, int32_t pos, int32_
         }
         toInsertInto.insert(pos, rulePatternFormat->format((int32_t)(pluralVal), status));
         if (pluralRuleStart > 0) {
-            toInsertInto.insert(pos, ruleText.tempSubString(0, pluralRuleStart));
+            toInsertInto.insert(pos, fRuleText.tempSubString(0, pluralRuleStart));
         }
-        lengthOffset = ruleText.length() - (toInsertInto.length() - initialLength);
+        lengthOffset = fRuleText.length() - (toInsertInto.length() - initialLength);
     }
 
     if (sub2 != NULL) {
@@ -908,15 +908,15 @@ NFRule::doParse(const UnicodeString& text,
     ParsePosition pp;
     UnicodeString workText(text);
 
-    int32_t sub1Pos = sub1 != NULL ? sub1->getPos() : ruleText.length();
-    int32_t sub2Pos = sub2 != NULL ? sub2->getPos() : ruleText.length();
+    int32_t sub1Pos = sub1 != NULL ? sub1->getPos() : fRuleText.length();
+    int32_t sub2Pos = sub2 != NULL ? sub2->getPos() : fRuleText.length();
 
     // check to see whether the text before the first substitution
     // matches the text at the beginning of the string being
     // parsed.  If it does, strip that off the front of workText;
     // otherwise, dump out with a mismatch
     UnicodeString prefix;
-    prefix.setTo(ruleText, 0, sub1Pos);
+    prefix.setTo(fRuleText, 0, sub1Pos);
 
 #ifdef RBNF_DEBUG
     fprintf(stderr, "doParse %p ", this);
@@ -1000,7 +1000,7 @@ NFRule::doParse(const UnicodeString& text,
         // the substitution, giving us a new partial parse result
         pp.setIndex(0);
 
-        temp.setTo(ruleText, sub1Pos, sub2Pos - sub1Pos);
+        temp.setTo(fRuleText, sub1Pos, sub2Pos - sub1Pos);
         double partialResult = matchToDelimiter(workText, start, tempBaseValue,
             temp, pp, sub1,
             nonNumericalExecutedRuleMask,
@@ -1021,7 +1021,7 @@ NFRule::doParse(const UnicodeString& text,
             // partial result with whatever it gets back from its
             // substitution if there's a successful match, giving us
             // a real result
-            temp.setTo(ruleText, sub2Pos, ruleText.length() - sub2Pos);
+            temp.setTo(fRuleText, sub2Pos, fRuleText.length() - sub2Pos);
             partialResult = matchToDelimiter(workText2, 0, partialResult,
                 temp, pp2, sub2,
                 nonNumericalExecutedRuleMask,
@@ -1039,18 +1039,18 @@ NFRule::doParse(const UnicodeString& text,
             else {
                 // commented out because ParsePosition doesn't have error index in 1.1.x
                 // restored for ICU4C port
-                int32_t temp = pp2.getErrorIndex() + sub1Pos + pp.getIndex();
-                if (temp> parsePosition.getErrorIndex()) {
-                    parsePosition.setErrorIndex(temp);
+                int32_t i_temp = pp2.getErrorIndex() + sub1Pos + pp.getIndex();
+                if (i_temp> parsePosition.getErrorIndex()) {
+                    parsePosition.setErrorIndex(i_temp);
                 }
             }
         }
         else {
             // commented out because ParsePosition doesn't have error index in 1.1.x
             // restored for ICU4C port
-            int32_t temp = sub1Pos + pp.getErrorIndex();
-            if (temp > parsePosition.getErrorIndex()) {
-                parsePosition.setErrorIndex(temp);
+            int32_t i_temp = sub1Pos + pp.getErrorIndex();
+            if (i_temp > parsePosition.getErrorIndex()) {
+                parsePosition.setErrorIndex(i_temp);
             }
         }
         // keep trying to match things until the outer matchToDelimiter()
@@ -1483,11 +1483,11 @@ NFRule::findText(const UnicodeString& str,
         rulePatternFormat->parseType(str, this, result, position);
         int start = position.getBeginIndex();
         if (start >= 0) {
-            int32_t pluralRuleStart = ruleText.indexOf(gDollarOpenParenthesis, -1, 0);
-            int32_t pluralRuleSuffix = ruleText.indexOf(gClosedParenthesisDollar, -1, pluralRuleStart) + 2;
+            int32_t pluralRuleStart = fRuleText.indexOf(gDollarOpenParenthesis, -1, 0);
+            int32_t pluralRuleSuffix = fRuleText.indexOf(gClosedParenthesisDollar, -1, pluralRuleStart) + 2;
             int32_t matchLen = position.getEndIndex() - start;
-            UnicodeString prefix(ruleText.tempSubString(0, pluralRuleStart));
-            UnicodeString suffix(ruleText.tempSubString(pluralRuleSuffix));
+            UnicodeString prefix(fRuleText.tempSubString(0, pluralRuleStart));
+            UnicodeString suffix(fRuleText.tempSubString(pluralRuleSuffix));
             if (str.compare(start - prefix.length(), prefix.length(), prefix, 0, prefix.length()) == 0
                     && str.compare(start + matchLen, suffix.length(), suffix, 0, suffix.length()) == 0)
             {
index 698b75b..ed33eaa 100644 (file)
@@ -109,7 +109,7 @@ private:
     int32_t radix;
     int16_t exponent;
     UChar decimalPoint;
-    UnicodeString ruleText;
+    UnicodeString fRuleText;
     NFSubstitution* sub1;
     NFSubstitution* sub2;
     const RuleBasedNumberFormat* formatter;
index 40278e1..10942c3 100644 (file)
@@ -273,13 +273,13 @@ void CompactHandler::processQuantity(DecimalQuantity &quantity, MicroProps &micr
     if (U_FAILURE(status)) { return; }
 
     // Treat zero as if it had magnitude 0
-    int magnitude;
+    int32_t magnitude;
     if (quantity.isZero()) {
         magnitude = 0;
         micros.rounder.apply(quantity, status);
     } else {
         // TODO: Revisit chooseMultiplierAndApply
-        int multiplier = micros.rounder.chooseMultiplierAndApply(quantity, data, status);
+        int32_t multiplier = micros.rounder.chooseMultiplierAndApply(quantity, data, status);
         magnitude = quantity.isZero() ? 0 : quantity.getMagnitude();
         magnitude -= multiplier;
     }
index 9d80e33..2c4182b 100644 (file)
@@ -1154,8 +1154,31 @@ const char16_t* DecimalQuantity::checkHealth() const {
 }
 
 bool DecimalQuantity::operator==(const DecimalQuantity& other) const {
-    // FIXME: Make a faster implementation.
-    return toString() == other.toString();
+    bool basicEquals =
+            scale == other.scale
+            && precision == other.precision
+            && flags == other.flags
+            && lOptPos == other.lOptPos
+            && lReqPos == other.lReqPos
+            && rReqPos == other.rReqPos
+            && rOptPos == other.rOptPos
+            && isApproximate == other.isApproximate;
+    if (!basicEquals) {
+        return false;
+    }
+
+    if (precision == 0) {
+        return true;
+    } else if (isApproximate) {
+        return origDouble == other.origDouble && origDelta == other.origDelta;
+    } else {
+        for (int m = getUpperDisplayMagnitude(); m >= getLowerDisplayMagnitude(); m--) {
+            if (getDigit(m) != other.getDigit(m)) {
+                return false;
+            }
+        }
+        return true;
+    }
 }
 
 UnicodeString DecimalQuantity::toString() const {
index 6754fe1..12fe706 100644 (file)
@@ -15,6 +15,7 @@ using namespace icu::number::impl;
 
 namespace {
 
+alignas(DecimalFormatProperties)
 char kRawDefaultProperties[sizeof(DecimalFormatProperties)];
 
 icu::UInitOnce gDefaultPropertiesInitOnce = U_INITONCE_INITIALIZER;
index 687adb6..a66e3bd 100644 (file)
@@ -363,6 +363,7 @@ UnlocalizedNumberFormatter::UnlocalizedNumberFormatter(const NFS<UNF>& other)
     // No additional fields to assign
 }
 
+// Make default copy constructor call the NumberFormatterSettings copy constructor.
 UnlocalizedNumberFormatter::UnlocalizedNumberFormatter(UNF&& src) U_NOEXCEPT
         : UNF(static_cast<NFS<UNF>&&>(src)) {}
 
@@ -383,6 +384,7 @@ UnlocalizedNumberFormatter& UnlocalizedNumberFormatter::operator=(UNF&& src) U_N
     return *this;
 }
 
+// Make default copy constructor call the NumberFormatterSettings copy constructor.
 LocalizedNumberFormatter::LocalizedNumberFormatter(const LNF& other)
         : LNF(static_cast<const NFS<LNF>&>(other)) {}
 
@@ -405,7 +407,8 @@ LocalizedNumberFormatter::LocalizedNumberFormatter(NFS<LNF>&& src) U_NOEXCEPT
 
 LocalizedNumberFormatter& LocalizedNumberFormatter::operator=(const LNF& other) {
     NFS<LNF>::operator=(static_cast<const NFS<LNF>&>(other));
-    // No additional fields to assign (let call count and compiled formatter reset to defaults)
+    // Reset to default values.
+    clear();
     return *this;
 }
 
@@ -417,20 +420,26 @@ LocalizedNumberFormatter& LocalizedNumberFormatter::operator=(LNF&& src) U_NOEXC
         // Formatter is compiled
         lnfMoveHelper(static_cast<LNF&&>(src));
     } else {
-        // Reset to default values.
-        auto* callCount = reinterpret_cast<u_atomic_int32_t*>(fUnsafeCallCount);
-        umtx_storeRelease(*callCount, 0);
-        fCompiled = nullptr;
+        clear();
     }
     return *this;
 }
 
+void LocalizedNumberFormatter::clear() {
+    // Reset to default values.
+    auto* callCount = reinterpret_cast<u_atomic_int32_t*>(fUnsafeCallCount);
+    umtx_storeRelease(*callCount, 0);
+    delete fCompiled;
+    fCompiled = nullptr;
+}
+
 void LocalizedNumberFormatter::lnfMoveHelper(LNF&& src) {
     // Copy over the compiled formatter and set call count to INT32_MIN as in computeCompiled().
     // Don't copy the call count directly because doing so requires a loadAcquire/storeRelease.
     // The bits themselves appear to be platform-dependent, so copying them might not be safe.
     auto* callCount = reinterpret_cast<u_atomic_int32_t*>(fUnsafeCallCount);
     umtx_storeRelease(*callCount, INT32_MIN);
+    delete fCompiled;
     fCompiled = src.fCompiled;
     // Reset the source object to leave it in a safe state.
     auto* srcCallCount = reinterpret_cast<u_atomic_int32_t*>(src.fUnsafeCallCount);
@@ -657,9 +666,9 @@ LocalizedNumberFormatter::formatDecimalQuantity(const DecimalQuantity& dq, UErro
 
 void LocalizedNumberFormatter::formatImpl(impl::UFormattedNumberData* results, UErrorCode& status) const {
     if (computeCompiled(status)) {
-        fCompiled->apply(results->quantity, results->string, status);
+        fCompiled->format(results->quantity, results->string, status);
     } else {
-        NumberFormatterImpl::applyStatic(fMacros, results->quantity, results->string, status);
+        NumberFormatterImpl::formatStatic(fMacros, results->quantity, results->string, status);
     }
 }
 
@@ -706,7 +715,11 @@ bool LocalizedNumberFormatter::computeCompiled(UErrorCode& status) const {
 
     if (currentCount == fMacros.threshold && fMacros.threshold > 0) {
         // Build the data structure and then use it (slow to fast path).
-        const NumberFormatterImpl* compiled = NumberFormatterImpl::fromMacros(fMacros, status);
+        const NumberFormatterImpl* compiled = new NumberFormatterImpl(fMacros, status);
+        if (compiled == nullptr) {
+            status = U_MEMORY_ALLOCATION_ERROR;
+            return false;
+        }
         U_ASSERT(fCompiled == nullptr);
         const_cast<LocalizedNumberFormatter*>(this)->fCompiled = compiled;
         umtx_storeRelease(*callCount, INT32_MIN);
@@ -776,7 +789,7 @@ Appendable& FormattedNumber::appendTo(Appendable& appendable) {
     return appendTo(appendable, localStatus);
 }
 
-Appendable& FormattedNumber::appendTo(Appendable& appendable, UErrorCode& status) {
+Appendable& FormattedNumber::appendTo(Appendable& appendable, UErrorCode& status) const {
     if (U_FAILURE(status)) {
         return appendable;
     }
index 3f88712..60c18ee 100644 (file)
@@ -67,14 +67,18 @@ getCurrencyFormatInfo(const Locale& locale, const char* isoCode, UErrorCode& sta
 MicroPropsGenerator::~MicroPropsGenerator() = default;
 
 
-NumberFormatterImpl* NumberFormatterImpl::fromMacros(const MacroProps& macros, UErrorCode& status) {
-    return new NumberFormatterImpl(macros, true, status);
+NumberFormatterImpl::NumberFormatterImpl(const MacroProps& macros, UErrorCode& status)
+    : NumberFormatterImpl(macros, true, status) {
 }
 
-void NumberFormatterImpl::applyStatic(const MacroProps& macros, DecimalQuantity& inValue,
-                                      NumberStringBuilder& outString, UErrorCode& status) {
+int32_t NumberFormatterImpl::formatStatic(const MacroProps& macros, DecimalQuantity& inValue,
+                                       NumberStringBuilder& outString, UErrorCode& status) {
     NumberFormatterImpl impl(macros, false, status);
-    impl.applyUnsafe(inValue, outString, status);
+    MicroProps& micros = impl.preProcessUnsafe(inValue, status);
+    if (U_FAILURE(status)) { return 0; }
+    int32_t length = writeNumber(micros, inValue, outString, 0, status);
+    length += writeAffixes(micros, outString, 0, length, status);
+    return length;
 }
 
 int32_t NumberFormatterImpl::getPrefixSuffixStatic(const MacroProps& macros, int8_t signum,
@@ -89,22 +93,40 @@ int32_t NumberFormatterImpl::getPrefixSuffixStatic(const MacroProps& macros, int
 // The "unsafe" method simply re-uses fMicros, eliminating the extra copy operation.
 // See MicroProps::processQuantity() for details.
 
-void NumberFormatterImpl::apply(DecimalQuantity& inValue, NumberStringBuilder& outString,
+int32_t NumberFormatterImpl::format(DecimalQuantity& inValue, NumberStringBuilder& outString,
                                 UErrorCode& status) const {
-    if (U_FAILURE(status)) { return; }
     MicroProps micros;
-    if (!fMicroPropsGenerator) { return; }
-    fMicroPropsGenerator->processQuantity(inValue, micros, status);
-    if (U_FAILURE(status)) { return; }
-    microsToString(micros, inValue, outString, status);
+    preProcess(inValue, micros, status);
+    if (U_FAILURE(status)) { return 0; }
+    int32_t length = writeNumber(micros, inValue, outString, 0, status);
+    length += writeAffixes(micros, outString, 0, length, status);
+    return length;
 }
 
-void NumberFormatterImpl::applyUnsafe(DecimalQuantity& inValue, NumberStringBuilder& outString,
-                                      UErrorCode& status) {
+void NumberFormatterImpl::preProcess(DecimalQuantity& inValue, MicroProps& microsOut,
+                                     UErrorCode& status) const {
     if (U_FAILURE(status)) { return; }
+    if (fMicroPropsGenerator == nullptr) {
+        status = U_INTERNAL_PROGRAM_ERROR;
+        return;
+    }
+    fMicroPropsGenerator->processQuantity(inValue, microsOut, status);
+    microsOut.rounder.apply(inValue, status);
+    microsOut.integerWidth.apply(inValue, status);
+}
+
+MicroProps& NumberFormatterImpl::preProcessUnsafe(DecimalQuantity& inValue, UErrorCode& status) {
+    if (U_FAILURE(status)) {
+        return fMicros; // must always return a value
+    }
+    if (fMicroPropsGenerator == nullptr) {
+        status = U_INTERNAL_PROGRAM_ERROR;
+        return fMicros; // must always return a value
+    }
     fMicroPropsGenerator->processQuantity(inValue, fMicros, status);
-    if (U_FAILURE(status)) { return; }
-    microsToString(fMicros, inValue, outString, status);
+    fMicros.rounder.apply(inValue, status);
+    fMicros.integerWidth.apply(inValue, status);
+    return fMicros;
 }
 
 int32_t NumberFormatterImpl::getPrefixSuffix(int8_t signum, StandardPlural::Form plural,
@@ -115,7 +137,7 @@ int32_t NumberFormatterImpl::getPrefixSuffix(int8_t signum, StandardPlural::Form
     const Modifier* modifier = fImmutablePatternModifier->getModifier(signum, plural);
     modifier->apply(outString, 0, 0, status);
     if (U_FAILURE(status)) { return 0; }
-    return modifier->getPrefixLength(status);
+    return modifier->getPrefixLength();
 }
 
 int32_t NumberFormatterImpl::getPrefixSuffixUnsafe(int8_t signum, StandardPlural::Form plural,
@@ -126,7 +148,7 @@ int32_t NumberFormatterImpl::getPrefixSuffixUnsafe(int8_t signum, StandardPlural
     fPatternModifier->setNumberProperties(signum, plural);
     fPatternModifier->apply(outString, 0, 0, status);
     if (U_FAILURE(status)) { return 0; }
-    return fPatternModifier->getPrefixLength(status);
+    return fPatternModifier->getPrefixLength();
 }
 
 NumberFormatterImpl::NumberFormatterImpl(const MacroProps& macros, bool safe, UErrorCode& status) {
@@ -344,25 +366,23 @@ NumberFormatterImpl::macrosToMicroGenerator(const MacroProps& macros, bool safe,
     // Outer modifier (CLDR units and currency long names)
     if (isCldrUnit) {
         fLongNameHandler.adoptInstead(
-                new LongNameHandler(
-                        LongNameHandler::forMeasureUnit(
-                                macros.locale,
-                                macros.unit,
-                                macros.perUnit,
-                                unitWidth,
-                                resolvePluralRules(macros.rules, macros.locale, status),
-                                chain,
-                                status)));
+                LongNameHandler::forMeasureUnit(
+                        macros.locale,
+                        macros.unit,
+                        macros.perUnit,
+                        unitWidth,
+                        resolvePluralRules(macros.rules, macros.locale, status),
+                        chain,
+                        status));
         chain = fLongNameHandler.getAlias();
     } else if (isCurrency && unitWidth == UNUM_UNIT_WIDTH_FULL_NAME) {
         fLongNameHandler.adoptInstead(
-                new LongNameHandler(
-                        LongNameHandler::forCurrencyLongNames(
-                                macros.locale,
-                                currency,
-                                resolvePluralRules(macros.rules, macros.locale, status),
-                                chain,
-                                status)));
+                LongNameHandler::forCurrencyLongNames(
+                        macros.locale,
+                        currency,
+                        resolvePluralRules(macros.rules, macros.locale, status),
+                        chain,
+                        status));
         chain = fLongNameHandler.getAlias();
     } else {
         // No outer modifier required
@@ -404,50 +424,46 @@ NumberFormatterImpl::resolvePluralRules(const PluralRules* rulesPtr, const Local
     return fRules.getAlias();
 }
 
-int32_t NumberFormatterImpl::microsToString(const MicroProps& micros, DecimalQuantity& quantity,
-                                            NumberStringBuilder& string, UErrorCode& status) {
-    micros.rounder.apply(quantity, status);
-    micros.integerWidth.apply(quantity, status);
-    int32_t length = writeNumber(micros, quantity, string, status);
-    // NOTE: When range formatting is added, these modifiers can bubble up.
-    // For now, apply them all here at once.
+int32_t NumberFormatterImpl::writeAffixes(const MicroProps& micros, NumberStringBuilder& string,
+                                          int32_t start, int32_t end, UErrorCode& status) {
     // Always apply the inner modifier (which is "strong").
-    length += micros.modInner->apply(string, 0, length, status);
+    int32_t length = micros.modInner->apply(string, start, end, status);
     if (micros.padding.isValid()) {
         length += micros.padding
-                .padAndApply(*micros.modMiddle, *micros.modOuter, string, 0, length, status);
+                .padAndApply(*micros.modMiddle, *micros.modOuter, string, start, length + end, status);
     } else {
-        length += micros.modMiddle->apply(string, 0, length, status);
-        length += micros.modOuter->apply(string, 0, length, status);
+        length += micros.modMiddle->apply(string, start, length + end, status);
+        length += micros.modOuter->apply(string, start, length + end, status);
     }
     return length;
 }
 
 int32_t NumberFormatterImpl::writeNumber(const MicroProps& micros, DecimalQuantity& quantity,
-                                         NumberStringBuilder& string, UErrorCode& status) {
+                                         NumberStringBuilder& string, int32_t index,
+                                         UErrorCode& status) {
     int32_t length = 0;
     if (quantity.isInfinite()) {
         length += string.insert(
-                length,
+                length + index,
                 micros.symbols->getSymbol(DecimalFormatSymbols::ENumberFormatSymbol::kInfinitySymbol),
                 UNUM_INTEGER_FIELD,
                 status);
 
     } else if (quantity.isNaN()) {
         length += string.insert(
-                length,
+                length + index,
                 micros.symbols->getSymbol(DecimalFormatSymbols::ENumberFormatSymbol::kNaNSymbol),
                 UNUM_INTEGER_FIELD,
                 status);
 
     } else {
         // Add the integer digits
-        length += writeIntegerDigits(micros, quantity, string, status);
+        length += writeIntegerDigits(micros, quantity, string, length + index, status);
 
         // Add the decimal point
         if (quantity.getLowerDisplayMagnitude() < 0 || micros.decimal == UNUM_DECIMAL_SEPARATOR_ALWAYS) {
             length += string.insert(
-                    length,
+                    length + index,
                     micros.useCurrency ? micros.symbols->getSymbol(
                             DecimalFormatSymbols::ENumberFormatSymbol::kMonetarySeparatorSymbol) : micros
                             .symbols
@@ -458,21 +474,22 @@ int32_t NumberFormatterImpl::writeNumber(const MicroProps& micros, DecimalQuanti
         }
 
         // Add the fraction digits
-        length += writeFractionDigits(micros, quantity, string, status);
+        length += writeFractionDigits(micros, quantity, string, length + index, status);
     }
 
     return length;
 }
 
 int32_t NumberFormatterImpl::writeIntegerDigits(const MicroProps& micros, DecimalQuantity& quantity,
-                                                NumberStringBuilder& string, UErrorCode& status) {
+                                                NumberStringBuilder& string, int32_t index,
+                                                UErrorCode& status) {
     int length = 0;
     int integerCount = quantity.getUpperDisplayMagnitude() + 1;
     for (int i = 0; i < integerCount; i++) {
         // Add grouping separator
         if (micros.grouping.groupAtPosition(i, quantity)) {
             length += string.insert(
-                    0,
+                    index,
                     micros.useCurrency ? micros.symbols->getSymbol(
                             DecimalFormatSymbols::ENumberFormatSymbol::kMonetaryGroupingSeparatorSymbol)
                                        : micros.symbols->getSymbol(
@@ -484,20 +501,21 @@ int32_t NumberFormatterImpl::writeIntegerDigits(const MicroProps& micros, Decima
         // Get and append the next digit value
         int8_t nextDigit = quantity.getDigit(i);
         length += utils::insertDigitFromSymbols(
-                string, 0, nextDigit, *micros.symbols, UNUM_INTEGER_FIELD, status);
+                string, index, nextDigit, *micros.symbols, UNUM_INTEGER_FIELD, status);
     }
     return length;
 }
 
 int32_t NumberFormatterImpl::writeFractionDigits(const MicroProps& micros, DecimalQuantity& quantity,
-                                                 NumberStringBuilder& string, UErrorCode& status) {
+                                                 NumberStringBuilder& string, int32_t index,
+                                                 UErrorCode& status) {
     int length = 0;
     int fractionCount = -quantity.getLowerDisplayMagnitude();
     for (int i = 0; i < fractionCount; i++) {
         // Get and append the next digit value
         int8_t nextDigit = quantity.getDigit(-i - 1);
         length += utils::insertDigitFromSymbols(
-                string, string.length(), nextDigit, *micros.symbols, UNUM_FRACTION_FIELD, status);
+                string, length + index, nextDigit, *micros.symbols, UNUM_FRACTION_FIELD, status);
     }
     return length;
 }
index 744fece..fda38c9 100644 (file)
@@ -29,14 +29,14 @@ class NumberFormatterImpl : public UMemory {
      * Builds a "safe" MicroPropsGenerator, which is thread-safe and can be used repeatedly.
      * The caller owns the returned NumberFormatterImpl.
      */
-    static NumberFormatterImpl *fromMacros(const MacroProps &macros, UErrorCode &status);
+    NumberFormatterImpl(const MacroProps &macros, UErrorCode &status);
 
     /**
      * Builds and evaluates an "unsafe" MicroPropsGenerator, which is cheaper but can be used only once.
      */
-    static void
-    applyStatic(const MacroProps &macros, DecimalQuantity &inValue, NumberStringBuilder &outString,
-                UErrorCode &status);
+    static int32_t
+    formatStatic(const MacroProps &macros, DecimalQuantity &inValue, NumberStringBuilder &outString,
+                 UErrorCode &status);
 
     /**
      * Prints only the prefix and suffix; used for DecimalFormat getters.
@@ -51,7 +51,12 @@ class NumberFormatterImpl : public UMemory {
     /**
      * Evaluates the "safe" MicroPropsGenerator created by "fromMacros".
      */
-    void apply(DecimalQuantity& inValue, NumberStringBuilder& outString, UErrorCode& status) const;
+    int32_t format(DecimalQuantity& inValue, NumberStringBuilder& outString, UErrorCode& status) const;
+
+    /**
+     * Like format(), but saves the result into an output MicroProps without additional processing.
+     */
+    void preProcess(DecimalQuantity& inValue, MicroProps& microsOut, UErrorCode& status) const;
 
     /**
      * Like getPrefixSuffixStatic() but uses the safe compiled object.
@@ -59,6 +64,19 @@ class NumberFormatterImpl : public UMemory {
     int32_t getPrefixSuffix(int8_t signum, StandardPlural::Form plural, NumberStringBuilder& outString,
                             UErrorCode& status) const;
 
+    /**
+     * Synthesizes the output string from a MicroProps and DecimalQuantity.
+     * This method formats only the main number, not affixes.
+     */
+    static int32_t writeNumber(const MicroProps& micros, DecimalQuantity& quantity,
+                               NumberStringBuilder& string, int32_t index, UErrorCode& status);
+
+    /**
+     * Adds the affixes.  Intended to be called immediately after formatNumber.
+     */
+    static int32_t writeAffixes(const MicroProps& micros, NumberStringBuilder& string, int32_t start,
+                                int32_t end, UErrorCode& status);
+
   private:
     // Head of the MicroPropsGenerator linked list:
     const MicroPropsGenerator *fMicroPropsGenerator = nullptr;
@@ -85,7 +103,7 @@ class NumberFormatterImpl : public UMemory {
 
     NumberFormatterImpl(const MacroProps &macros, bool safe, UErrorCode &status);
 
-    void applyUnsafe(DecimalQuantity &inValue, NumberStringBuilder &outString, UErrorCode &status);
+    MicroProps& preProcessUnsafe(DecimalQuantity &inValue, UErrorCode &status);
 
     int32_t getPrefixSuffixUnsafe(int8_t signum, StandardPlural::Form plural,
                                   NumberStringBuilder& outString, UErrorCode& status);
@@ -113,31 +131,13 @@ class NumberFormatterImpl : public UMemory {
     const MicroPropsGenerator *
     macrosToMicroGenerator(const MacroProps &macros, bool safe, UErrorCode &status);
 
-    /**
-     * Synthesizes the output string from a MicroProps and DecimalQuantity.
-     *
-     * @param micros
-     *            The MicroProps after the quantity has been consumed. Will not be mutated.
-     * @param quantity
-     *            The DecimalQuantity to be rendered. May be mutated.
-     * @param string
-     *            The output string. Will be mutated.
-     */
-    static int32_t
-    microsToString(const MicroProps &micros, DecimalQuantity &quantity, NumberStringBuilder &string,
-                   UErrorCode &status);
-
-    static int32_t
-    writeNumber(const MicroProps &micros, DecimalQuantity &quantity, NumberStringBuilder &string,
-                UErrorCode &status);
-
     static int32_t
     writeIntegerDigits(const MicroProps &micros, DecimalQuantity &quantity, NumberStringBuilder &string,
-                       UErrorCode &status);
+                       int32_t index, UErrorCode &status);
 
     static int32_t
     writeFractionDigits(const MicroProps &micros, DecimalQuantity &quantity, NumberStringBuilder &string,
-                        UErrorCode &status);
+                        int32_t index, UErrorCode &status);
 };
 
 }  // namespace impl
index 4a1cceb..da32cca 100644 (file)
@@ -80,7 +80,7 @@ void Grouper::setLocaleData(const impl::ParsedPatternInfo &patternInfo, const Lo
     if (fMinGrouping == -2) {
         fMinGrouping = getMinGroupingForLocale(locale);
     } else if (fMinGrouping == -3) {
-        fMinGrouping = uprv_max(2, getMinGroupingForLocale(locale));
+        fMinGrouping = static_cast<int16_t>(uprv_max(2, getMinGroupingForLocale(locale)));
     } else {
         // leave fMinGrouping alone
     }
index 26f9af4..fd8e8d3 100644 (file)
@@ -39,7 +39,7 @@ static int32_t getIndex(const char* pluralKeyword, UErrorCode& status) {
 
 static UnicodeString getWithPlural(
         const UnicodeString* strings,
-        int32_t plural,
+        StandardPlural::Form plural,
         UErrorCode& status) {
     UnicodeString result = strings[plural];
     if (result.isBogus()) {
@@ -156,7 +156,7 @@ UnicodeString getPerUnitFormat(const Locale& locale, const UNumberUnitWidth &wid
 
 } // namespace
 
-LongNameHandler
+LongNameHandler*
 LongNameHandler::forMeasureUnit(const Locale &loc, const MeasureUnit &unitRef, const MeasureUnit &perUnit,
                                 const UNumberUnitWidth &width, const PluralRules *rules,
                                 const MicroPropsGenerator *parent, UErrorCode &status) {
@@ -173,20 +173,28 @@ LongNameHandler::forMeasureUnit(const Locale &loc, const MeasureUnit &unitRef, c
         }
     }
 
-    LongNameHandler result(rules, parent);
+    auto* result = new LongNameHandler(rules, parent);
+    if (result == nullptr) {
+        status = U_MEMORY_ALLOCATION_ERROR;
+        return nullptr;
+    }
     UnicodeString simpleFormats[ARRAY_LENGTH];
     getMeasureData(loc, unit, width, simpleFormats, status);
     if (U_FAILURE(status)) { return result; }
     // TODO: What field to use for units?
-    simpleFormatsToModifiers(simpleFormats, UNUM_FIELD_COUNT, result.fModifiers, status);
+    result->simpleFormatsToModifiers(simpleFormats, UNUM_FIELD_COUNT, status);
     return result;
 }
 
-LongNameHandler
+LongNameHandler*
 LongNameHandler::forCompoundUnit(const Locale &loc, const MeasureUnit &unit, const MeasureUnit &perUnit,
                                  const UNumberUnitWidth &width, const PluralRules *rules,
                                  const MicroPropsGenerator *parent, UErrorCode &status) {
-    LongNameHandler result(rules, parent);
+    auto* result = new LongNameHandler(rules, parent);
+    if (result == nullptr) {
+        status = U_MEMORY_ALLOCATION_ERROR;
+        return nullptr;
+    }
     UnicodeString primaryData[ARRAY_LENGTH];
     getMeasureData(loc, unit, width, primaryData, status);
     if (U_FAILURE(status)) { return result; }
@@ -213,46 +221,52 @@ LongNameHandler::forCompoundUnit(const Locale &loc, const MeasureUnit &unit, con
         if (U_FAILURE(status)) { return result; }
     }
     // TODO: What field to use for units?
-    multiSimpleFormatsToModifiers(primaryData, perUnitFormat, UNUM_FIELD_COUNT, result.fModifiers, status);
+    result->multiSimpleFormatsToModifiers(primaryData, perUnitFormat, UNUM_FIELD_COUNT, status);
     return result;
 }
 
-LongNameHandler LongNameHandler::forCurrencyLongNames(const Locale &loc, const CurrencyUnit &currency,
+LongNameHandler* LongNameHandler::forCurrencyLongNames(const Locale &loc, const CurrencyUnit &currency,
                                                       const PluralRules *rules,
                                                       const MicroPropsGenerator *parent,
                                                       UErrorCode &status) {
-    LongNameHandler result(rules, parent);
+    auto* result = new LongNameHandler(rules, parent);
+    if (result == nullptr) {
+        status = U_MEMORY_ALLOCATION_ERROR;
+        return nullptr;
+    }
     UnicodeString simpleFormats[ARRAY_LENGTH];
     getCurrencyLongNameData(loc, currency, simpleFormats, status);
-    if (U_FAILURE(status)) { return result; }
-    simpleFormatsToModifiers(simpleFormats, UNUM_CURRENCY_FIELD, result.fModifiers, status);
+    if (U_FAILURE(status)) { return nullptr; }
+    result->simpleFormatsToModifiers(simpleFormats, UNUM_CURRENCY_FIELD, status);
     return result;
 }
 
 void LongNameHandler::simpleFormatsToModifiers(const UnicodeString *simpleFormats, Field field,
-                                               SimpleModifier *output, UErrorCode &status) {
+                                               UErrorCode &status) {
     for (int32_t i = 0; i < StandardPlural::Form::COUNT; i++) {
-        UnicodeString simpleFormat = getWithPlural(simpleFormats, i, status);
+        StandardPlural::Form plural = static_cast<StandardPlural::Form>(i);
+        UnicodeString simpleFormat = getWithPlural(simpleFormats, plural, status);
         if (U_FAILURE(status)) { return; }
         SimpleFormatter compiledFormatter(simpleFormat, 0, 1, status);
         if (U_FAILURE(status)) { return; }
-        output[i] = SimpleModifier(compiledFormatter, field, false);
+        fModifiers[i] = SimpleModifier(compiledFormatter, field, false, {this, 0, plural});
     }
 }
 
 void LongNameHandler::multiSimpleFormatsToModifiers(const UnicodeString *leadFormats, UnicodeString trailFormat,
-                                                    Field field, SimpleModifier *output, UErrorCode &status) {
+                                                    Field field, UErrorCode &status) {
     SimpleFormatter trailCompiled(trailFormat, 1, 1, status);
     if (U_FAILURE(status)) { return; }
     for (int32_t i = 0; i < StandardPlural::Form::COUNT; i++) {
-        UnicodeString leadFormat = getWithPlural(leadFormats, i, status);
+        StandardPlural::Form plural = static_cast<StandardPlural::Form>(i);
+        UnicodeString leadFormat = getWithPlural(leadFormats, plural, status);
         if (U_FAILURE(status)) { return; }
         UnicodeString compoundFormat;
         trailCompiled.format(leadFormat, compoundFormat, status);
         if (U_FAILURE(status)) { return; }
         SimpleFormatter compoundCompiled(compoundFormat, 0, 1, status);
         if (U_FAILURE(status)) { return; }
-        output[i] = SimpleModifier(compoundCompiled, field, false);
+        fModifiers[i] = SimpleModifier(compoundCompiled, field, false, {this, 0, plural});
     }
 }
 
@@ -265,4 +279,8 @@ void LongNameHandler::processQuantity(DecimalQuantity &quantity, MicroProps &mic
     micros.modOuter = &fModifiers[utils::getStandardPlural(rules, copy)];
 }
 
+const Modifier* LongNameHandler::getModifier(int8_t /*signum*/, StandardPlural::Form plural) const {
+    return &fModifiers[plural];
+}
+
 #endif /* #if !UCONFIG_NO_FORMATTING */
index 1d1e7dd..a71d0ca 100644 (file)
 U_NAMESPACE_BEGIN namespace number {
 namespace impl {
 
-class LongNameHandler : public MicroPropsGenerator, public UMemory {
+class LongNameHandler : public MicroPropsGenerator, public ModifierStore, public UMemory {
   public:
-    static LongNameHandler
+    static LongNameHandler*
     forCurrencyLongNames(const Locale &loc, const CurrencyUnit &currency, const PluralRules *rules,
                          const MicroPropsGenerator *parent, UErrorCode &status);
 
-    static LongNameHandler
+    static LongNameHandler*
     forMeasureUnit(const Locale &loc, const MeasureUnit &unit, const MeasureUnit &perUnit,
                    const UNumberUnitWidth &width, const PluralRules *rules,
                    const MicroPropsGenerator *parent, UErrorCode &status);
@@ -28,6 +28,8 @@ class LongNameHandler : public MicroPropsGenerator, public UMemory {
     void
     processQuantity(DecimalQuantity &quantity, MicroProps &micros, UErrorCode &status) const U_OVERRIDE;
 
+    const Modifier* getModifier(int8_t signum, StandardPlural::Form plural) const U_OVERRIDE;
+
   private:
     SimpleModifier fModifiers[StandardPlural::Form::COUNT];
     const PluralRules *rules;
@@ -36,15 +38,14 @@ class LongNameHandler : public MicroPropsGenerator, public UMemory {
     LongNameHandler(const PluralRules *rules, const MicroPropsGenerator *parent)
             : rules(rules), parent(parent) {}
 
-    static LongNameHandler
+    static LongNameHandler*
     forCompoundUnit(const Locale &loc, const MeasureUnit &unit, const MeasureUnit &perUnit,
                     const UNumberUnitWidth &width, const PluralRules *rules,
                     const MicroPropsGenerator *parent, UErrorCode &status);
 
-    static void simpleFormatsToModifiers(const UnicodeString *simpleFormats, Field field,
-                                         SimpleModifier *output, UErrorCode &status);
-    static void multiSimpleFormatsToModifiers(const UnicodeString *leadFormats, UnicodeString trailFormat,
-                                         Field field, SimpleModifier *output, UErrorCode &status);
+    void simpleFormatsToModifiers(const UnicodeString *simpleFormats, Field field, UErrorCode &status);
+    void multiSimpleFormatsToModifiers(const UnicodeString *leadFormats, UnicodeString trailFormat,
+                                       Field field, UErrorCode &status);
 };
 
 }  // namespace impl
index d260632..2c9a8e5 100644 (file)
@@ -225,8 +225,8 @@ MacroProps NumberPropertyMapper::oldToNew(const DecimalFormatProperties& propert
         // TODO: Overriding here is a bit of a hack. Should this logic go earlier?
         if (macros.precision.fType == Precision::PrecisionType::RND_FRACTION) {
             // For the purposes of rounding, get the original min/max int/frac, since the local
-            // variables
-            // have been manipulated for display purposes.
+            // variables have been manipulated for display purposes.
+            int maxInt_ = properties.maximumIntegerDigits;
             int minInt_ = properties.minimumIntegerDigits;
             int minFrac_ = properties.minimumFractionDigits;
             int maxFrac_ = properties.maximumFractionDigits;
@@ -237,9 +237,15 @@ MacroProps NumberPropertyMapper::oldToNew(const DecimalFormatProperties& propert
                 // Patterns like "#.##E0" (no zeros in the mantissa), which mean round to maxFrac+1
                 macros.precision = Precision::constructSignificant(1, maxFrac_ + 1).withMode(roundingMode);
             } else {
-                // All other scientific patterns, which mean round to minInt+maxFrac
-                macros.precision = Precision::constructSignificant(
-                        minInt_ + minFrac_, minInt_ + maxFrac_).withMode(roundingMode);
+                int maxSig_ = minInt_ + maxFrac_;
+                // Bug #20058: if maxInt_ > minInt_ > 1, then minInt_ should be 1.
+                if (maxInt_ > minInt_ && minInt_ > 1) {
+                    minInt_ = 1;
+                }
+                int minSig_ = minInt_ + minFrac_;
+                // To avoid regression, maxSig is not reset when minInt_ set to 1.
+                // TODO: Reset maxSig_ = 1 + minFrac_ to follow the spec.
+                macros.precision = Precision::constructSignificant(minSig_, maxSig_).withMode(roundingMode);
             }
         }
     }
index 4385499..d92ec63 100644 (file)
@@ -53,6 +53,21 @@ void U_CALLCONV initDefaultCurrencySpacing(UErrorCode &status) {
 
 Modifier::~Modifier() = default;
 
+Modifier::Parameters::Parameters()
+        : obj(nullptr) {}
+
+Modifier::Parameters::Parameters(
+    const ModifierStore* _obj, int8_t _signum, StandardPlural::Form _plural)
+        : obj(_obj), signum(_signum), plural(_plural) {}
+
+ModifierStore::~ModifierStore() = default;
+
+AdoptingModifierStore::~AdoptingModifierStore()  {
+    for (const Modifier *mod : mods) {
+        delete mod;
+    }
+}
+
 
 int32_t ConstantAffixModifier::apply(NumberStringBuilder &output, int leftIndex, int rightIndex,
                                      UErrorCode &status) const {
@@ -62,13 +77,11 @@ int32_t ConstantAffixModifier::apply(NumberStringBuilder &output, int leftIndex,
     return length;
 }
 
-int32_t ConstantAffixModifier::getPrefixLength(UErrorCode &status) const {
-    (void)status;
+int32_t ConstantAffixModifier::getPrefixLength() const {
     return fPrefix.length();
 }
 
-int32_t ConstantAffixModifier::getCodePointCount(UErrorCode &status) const {
-    (void)status;
+int32_t ConstantAffixModifier::getCodePointCount() const {
     return fPrefix.countChar32() + fSuffix.countChar32();
 }
 
@@ -76,8 +89,38 @@ bool ConstantAffixModifier::isStrong() const {
     return fStrong;
 }
 
+bool ConstantAffixModifier::containsField(UNumberFormatFields field) const {
+    (void)field;
+    // This method is not currently used.
+    U_ASSERT(false);
+    return false;
+}
+
+void ConstantAffixModifier::getParameters(Parameters& output) const {
+    (void)output;
+    // This method is not currently used.
+    U_ASSERT(false);
+}
+
+bool ConstantAffixModifier::semanticallyEquivalent(const Modifier& other) const {
+    auto* _other = dynamic_cast<const ConstantAffixModifier*>(&other);
+    if (_other == nullptr) {
+        return false;
+    }
+    return fPrefix == _other->fPrefix
+        && fSuffix == _other->fSuffix
+        && fField == _other->fField
+        && fStrong == _other->fStrong;
+}
+
+
 SimpleModifier::SimpleModifier(const SimpleFormatter &simpleFormatter, Field field, bool strong)
-        : fCompiledPattern(simpleFormatter.compiledPattern), fField(field), fStrong(strong) {
+        : SimpleModifier(simpleFormatter, field, strong, {}) {}
+
+SimpleModifier::SimpleModifier(const SimpleFormatter &simpleFormatter, Field field, bool strong,
+                               const Modifier::Parameters parameters)
+        : fCompiledPattern(simpleFormatter.compiledPattern), fField(field), fStrong(strong),
+          fParameters(parameters) {
     int32_t argLimit = SimpleFormatter::getArgumentLimit(
             fCompiledPattern.getBuffer(), fCompiledPattern.length());
     if (argLimit == 0) {
@@ -90,15 +133,19 @@ SimpleModifier::SimpleModifier(const SimpleFormatter &simpleFormatter, Field fie
     } else {
         U_ASSERT(argLimit == 1);
         if (fCompiledPattern.charAt(1) != 0) {
+            // Found prefix
             fPrefixLength = fCompiledPattern.charAt(1) - ARG_NUM_LIMIT;
             fSuffixOffset = 3 + fPrefixLength;
         } else {
+            // No prefix
             fPrefixLength = 0;
             fSuffixOffset = 2;
         }
         if (3 + fPrefixLength < fCompiledPattern.length()) {
+            // Found suffix
             fSuffixLength = fCompiledPattern.charAt(fSuffixOffset) - ARG_NUM_LIMIT;
         } else {
+            // No suffix
             fSuffixLength = 0;
         }
     }
@@ -113,13 +160,11 @@ int32_t SimpleModifier::apply(NumberStringBuilder &output, int leftIndex, int ri
     return formatAsPrefixSuffix(output, leftIndex, rightIndex, fField, status);
 }
 
-int32_t SimpleModifier::getPrefixLength(UErrorCode &status) const {
-    (void)status;
+int32_t SimpleModifier::getPrefixLength() const {
     return fPrefixLength;
 }
 
-int32_t SimpleModifier::getCodePointCount(UErrorCode &status) const {
-    (void)status;
+int32_t SimpleModifier::getCodePointCount() const {
     int32_t count = 0;
     if (fPrefixLength > 0) {
         count += fCompiledPattern.countChar32(2, fPrefixLength);
@@ -134,10 +179,35 @@ bool SimpleModifier::isStrong() const {
     return fStrong;
 }
 
+bool SimpleModifier::containsField(UNumberFormatFields field) const {
+    (void)field;
+    // This method is not currently used.
+    U_ASSERT(false);
+    return false;
+}
+
+void SimpleModifier::getParameters(Parameters& output) const {
+    output = fParameters;
+}
+
+bool SimpleModifier::semanticallyEquivalent(const Modifier& other) const {
+    auto* _other = dynamic_cast<const SimpleModifier*>(&other);
+    if (_other == nullptr) {
+        return false;
+    }
+    if (fParameters.obj != nullptr) {
+        return fParameters.obj == _other->fParameters.obj;
+    }
+    return fCompiledPattern == _other->fCompiledPattern
+        && fField == _other->fField
+        && fStrong == _other->fStrong;
+}
+
+
 int32_t
 SimpleModifier::formatAsPrefixSuffix(NumberStringBuilder &result, int32_t startIndex, int32_t endIndex,
                                      Field field, UErrorCode &status) const {
-    if (fSuffixOffset == -1) {
+    if (fSuffixOffset == -1 && fPrefixLength + fSuffixLength > 0) {
         // There is no argument for the inner number; overwrite the entire segment with our string.
         return result.splice(startIndex, endIndex, fCompiledPattern, 2, 2 + fPrefixLength, field, status);
     } else {
@@ -157,6 +227,65 @@ SimpleModifier::formatAsPrefixSuffix(NumberStringBuilder &result, int32_t startI
     }
 }
 
+
+int32_t
+SimpleModifier::formatTwoArgPattern(const SimpleFormatter& compiled, NumberStringBuilder& result,
+                                    int32_t index, int32_t* outPrefixLength, int32_t* outSuffixLength,
+                                    Field field, UErrorCode& status) {
+    const UnicodeString& compiledPattern = compiled.compiledPattern;
+    int32_t argLimit = SimpleFormatter::getArgumentLimit(
+            compiledPattern.getBuffer(), compiledPattern.length());
+    if (argLimit != 2) {
+        status = U_INTERNAL_PROGRAM_ERROR;
+        return 0;
+    }
+    int32_t offset = 1; // offset into compiledPattern
+    int32_t length = 0; // chars added to result
+
+    int32_t prefixLength = compiledPattern.charAt(offset);
+    offset++;
+    if (prefixLength < ARG_NUM_LIMIT) {
+        // No prefix
+        prefixLength = 0;
+    } else {
+        prefixLength -= ARG_NUM_LIMIT;
+        result.insert(index + length, compiledPattern, offset, offset + prefixLength, field, status);
+        offset += prefixLength;
+        length += prefixLength;
+        offset++;
+    }
+
+    int32_t infixLength = compiledPattern.charAt(offset);
+    offset++;
+    if (infixLength < ARG_NUM_LIMIT) {
+        // No infix
+        infixLength = 0;
+    } else {
+        infixLength -= ARG_NUM_LIMIT;
+        result.insert(index + length, compiledPattern, offset, offset + infixLength, field, status);
+        offset += infixLength;
+        length += infixLength;
+        offset++;
+    }
+
+    int32_t suffixLength;
+    if (offset == compiledPattern.length()) {
+        // No suffix
+        suffixLength = 0;
+    } else {
+        suffixLength = compiledPattern.charAt(offset) -  ARG_NUM_LIMIT;
+        offset++;
+        result.insert(index + length, compiledPattern, offset, offset + suffixLength, field, status);
+        length += suffixLength;
+    }
+
+    *outPrefixLength = prefixLength;
+    *outSuffixLength = suffixLength;
+
+    return length;
+}
+
+
 int32_t ConstantMultiFieldModifier::apply(NumberStringBuilder &output, int leftIndex, int rightIndex,
                                           UErrorCode &status) const {
     int32_t length = output.insert(leftIndex, fPrefix, status);
@@ -171,13 +300,11 @@ int32_t ConstantMultiFieldModifier::apply(NumberStringBuilder &output, int leftI
     return length;
 }
 
-int32_t ConstantMultiFieldModifier::getPrefixLength(UErrorCode &status) const {
-    (void)status;
+int32_t ConstantMultiFieldModifier::getPrefixLength() const {
     return fPrefix.length();
 }
 
-int32_t ConstantMultiFieldModifier::getCodePointCount(UErrorCode &status) const {
-    (void)status;
+int32_t ConstantMultiFieldModifier::getCodePointCount() const {
     return fPrefix.codePointCount() + fSuffix.codePointCount();
 }
 
@@ -185,6 +312,29 @@ bool ConstantMultiFieldModifier::isStrong() const {
     return fStrong;
 }
 
+bool ConstantMultiFieldModifier::containsField(UNumberFormatFields field) const {
+    return fPrefix.containsField(field) || fSuffix.containsField(field);
+}
+
+void ConstantMultiFieldModifier::getParameters(Parameters& output) const {
+    output = fParameters;
+}
+
+bool ConstantMultiFieldModifier::semanticallyEquivalent(const Modifier& other) const {
+    auto* _other = dynamic_cast<const ConstantMultiFieldModifier*>(&other);
+    if (_other == nullptr) {
+        return false;
+    }
+    if (fParameters.obj != nullptr) {
+        return fParameters.obj == _other->fParameters.obj;
+    }
+    return fPrefix.contentEquals(_other->fPrefix)
+        && fSuffix.contentEquals(_other->fSuffix)
+        && fOverwrite == _other->fOverwrite
+        && fStrong == _other->fStrong;
+}
+
+
 CurrencySpacingEnabledModifier::CurrencySpacingEnabledModifier(const NumberStringBuilder &prefix,
                                                                const NumberStringBuilder &suffix,
                                                                bool overwrite,
index a553100..65ada93 100644 (file)
@@ -31,12 +31,18 @@ class U_I18N_API ConstantAffixModifier : public Modifier, public UObject {
     int32_t apply(NumberStringBuilder &output, int32_t leftIndex, int32_t rightIndex,
                   UErrorCode &status) const U_OVERRIDE;
 
-    int32_t getPrefixLength(UErrorCode &status) const U_OVERRIDE;
+    int32_t getPrefixLength() const U_OVERRIDE;
 
-    int32_t getCodePointCount(UErrorCode &status) const U_OVERRIDE;
+    int32_t getCodePointCount() const U_OVERRIDE;
 
     bool isStrong() const U_OVERRIDE;
 
+    bool containsField(UNumberFormatFields field) const U_OVERRIDE;
+
+    void getParameters(Parameters& output) const U_OVERRIDE;
+
+    bool semanticallyEquivalent(const Modifier& other) const U_OVERRIDE;
+
   private:
     UnicodeString fPrefix;
     UnicodeString fSuffix;
@@ -52,21 +58,30 @@ class U_I18N_API SimpleModifier : public Modifier, public UMemory {
   public:
     SimpleModifier(const SimpleFormatter &simpleFormatter, Field field, bool strong);
 
+    SimpleModifier(const SimpleFormatter &simpleFormatter, Field field, bool strong,
+                   const Modifier::Parameters parameters);
+
     // Default constructor for LongNameHandler.h
     SimpleModifier();
 
     int32_t apply(NumberStringBuilder &output, int32_t leftIndex, int32_t rightIndex,
                   UErrorCode &status) const U_OVERRIDE;
 
-    int32_t getPrefixLength(UErrorCode &status) const U_OVERRIDE;
+    int32_t getPrefixLength() const U_OVERRIDE;
 
-    int32_t getCodePointCount(UErrorCode &status) const U_OVERRIDE;
+    int32_t getCodePointCount() const U_OVERRIDE;
 
     bool isStrong() const U_OVERRIDE;
 
+    bool containsField(UNumberFormatFields field) const U_OVERRIDE;
+
+    void getParameters(Parameters& output) const U_OVERRIDE;
+
+    bool semanticallyEquivalent(const Modifier& other) const U_OVERRIDE;
+
     /**
      * TODO: This belongs in SimpleFormatterImpl. The only reason I haven't moved it there yet is because
-     * DoubleSidedStringBuilder is an internal class and SimpleFormatterImpl feels like it should not depend on it.
+     * NumberStringBuilder is an internal class and SimpleFormatterImpl feels like it should not depend on it.
      *
      * <p>
      * Formats a value that is already stored inside the StringBuilder <code>result</code> between the indices
@@ -85,16 +100,33 @@ class U_I18N_API SimpleModifier : public Modifier, public UMemory {
      * @return The number of characters (UTF-16 code points) that were added to the StringBuilder.
      */
     int32_t
-    formatAsPrefixSuffix(NumberStringBuilder &result, int32_t startIndex, int32_t endIndex, Field field,
-                         UErrorCode &status) const;
+    formatAsPrefixSuffix(NumberStringBuilder& result, int32_t startIndex, int32_t endIndex, Field field,
+                         UErrorCode& status) const;
+
+    /**
+     * TODO: Like above, this belongs with the rest of the SimpleFormatterImpl code.
+     * I put it here so that the SimpleFormatter uses in NumberStringBuilder are near each other.
+     *
+     * <p>
+     * Applies the compiled two-argument pattern to the NumberStringBuilder.
+     *
+     * <p>
+     * This method is optimized for the case where the prefix and suffix are often empty, such as
+     * in the range pattern like "{0}-{1}".
+     */
+    static int32_t
+    formatTwoArgPattern(const SimpleFormatter& compiled, NumberStringBuilder& result,
+                        int32_t index, int32_t* outPrefixLength, int32_t* outSuffixLength,
+                        Field field, UErrorCode& status);
 
   private:
     UnicodeString fCompiledPattern;
     Field fField;
-    bool fStrong;
-    int32_t fPrefixLength;
-    int32_t fSuffixOffset;
-    int32_t fSuffixLength;
+    bool fStrong = false;
+    int32_t fPrefixLength = 0;
+    int32_t fSuffixOffset = -1;
+    int32_t fSuffixLength = 0;
+    Modifier::Parameters fParameters;
 };
 
 /**
@@ -107,6 +139,18 @@ class U_I18N_API ConstantMultiFieldModifier : public Modifier, public UMemory {
             const NumberStringBuilder &prefix,
             const NumberStringBuilder &suffix,
             bool overwrite,
+            bool strong,
+            const Modifier::Parameters parameters)
+      : fPrefix(prefix),
+        fSuffix(suffix),
+        fOverwrite(overwrite),
+        fStrong(strong),
+        fParameters(parameters) {}
+
+    ConstantMultiFieldModifier(
+            const NumberStringBuilder &prefix,
+            const NumberStringBuilder &suffix,
+            bool overwrite,
             bool strong)
       : fPrefix(prefix),
         fSuffix(suffix),
@@ -116,12 +160,18 @@ class U_I18N_API ConstantMultiFieldModifier : public Modifier, public UMemory {
     int32_t apply(NumberStringBuilder &output, int32_t leftIndex, int32_t rightIndex,
                   UErrorCode &status) const U_OVERRIDE;
 
-    int32_t getPrefixLength(UErrorCode &status) const U_OVERRIDE;
+    int32_t getPrefixLength() const U_OVERRIDE;
 
-    int32_t getCodePointCount(UErrorCode &status) const U_OVERRIDE;
+    int32_t getCodePointCount() const U_OVERRIDE;
 
     bool isStrong() const U_OVERRIDE;
 
+    bool containsField(UNumberFormatFields field) const U_OVERRIDE;
+
+    void getParameters(Parameters& output) const U_OVERRIDE;
+
+    bool semanticallyEquivalent(const Modifier& other) const U_OVERRIDE;
+
   protected:
     // NOTE: In Java, these are stored as array pointers. In C++, the NumberStringBuilder is stored by
     // value and is treated internally as immutable.
@@ -129,6 +179,7 @@ class U_I18N_API ConstantMultiFieldModifier : public Modifier, public UMemory {
     NumberStringBuilder fSuffix;
     bool fOverwrite;
     bool fStrong;
+    Modifier::Parameters fParameters;
 };
 
 /** Identical to {@link ConstantMultiFieldModifier}, but supports currency spacing. */
@@ -192,13 +243,11 @@ class U_I18N_API EmptyModifier : public Modifier, public UMemory {
         return 0;
     }
 
-    int32_t getPrefixLength(UErrorCode &status) const U_OVERRIDE {
-        (void)status;
+    int32_t getPrefixLength() const U_OVERRIDE {
         return 0;
     }
 
-    int32_t getCodePointCount(UErrorCode &status) const U_OVERRIDE {
-        (void)status;
+    int32_t getCodePointCount() const U_OVERRIDE {
         return 0;
     }
 
@@ -206,55 +255,75 @@ class U_I18N_API EmptyModifier : public Modifier, public UMemory {
         return fStrong;
     }
 
+    bool containsField(UNumberFormatFields field) const U_OVERRIDE {
+        (void)field;
+        return false;
+    }
+
+    void getParameters(Parameters& output) const U_OVERRIDE {
+        output.obj = nullptr;
+    }
+
+    bool semanticallyEquivalent(const Modifier& other) const U_OVERRIDE {
+        return other.getCodePointCount() == 0;
+    }
+
   private:
     bool fStrong;
 };
 
 /**
- * A ParameterizedModifier by itself is NOT a Modifier. Rather, it wraps a data structure containing two or more
- * Modifiers and returns the modifier appropriate for the current situation.
+ * This implementation of ModifierStore adopts Modifer pointers.
  */
-class U_I18N_API ParameterizedModifier : public UMemory {
+class U_I18N_API AdoptingModifierStore : public ModifierStore, public UMemory {
   public:
-    // NOTE: mods is zero-initialized (to nullptr)
-    ParameterizedModifier() : mods() {
-    }
+    virtual ~AdoptingModifierStore();
 
-    // No copying!
-    ParameterizedModifier(const ParameterizedModifier &other) = delete;
+    static constexpr StandardPlural::Form DEFAULT_STANDARD_PLURAL = StandardPlural::OTHER;
 
-    ~ParameterizedModifier() {
-        for (const Modifier *mod : mods) {
-            delete mod;
-        }
-    }
+    AdoptingModifierStore() = default;
 
-    void adoptPositiveNegativeModifiers(
-            const Modifier *positive, const Modifier *zero, const Modifier *negative) {
-        mods[2] = positive;
-        mods[1] = zero;
-        mods[0] = negative;
-    }
+    // No copying!
+    AdoptingModifierStore(const AdoptingModifierStore &other) = delete;
 
-    /** The modifier is ADOPTED. */
-    void adoptSignPluralModifier(int8_t signum, StandardPlural::Form plural, const Modifier *mod) {
+    /**
+     * Sets the Modifier with the specified signum and plural form.
+     */
+    void adoptModifier(int8_t signum, StandardPlural::Form plural, const Modifier *mod) {
+        U_ASSERT(mods[getModIndex(signum, plural)] == nullptr);
         mods[getModIndex(signum, plural)] = mod;
     }
 
+    /**
+     * Sets the Modifier with the specified signum.
+     * The modifier will apply to all plural forms.
+     */
+    void adoptModifierWithoutPlural(int8_t signum, const Modifier *mod) {
+        U_ASSERT(mods[getModIndex(signum, DEFAULT_STANDARD_PLURAL)] == nullptr);
+        mods[getModIndex(signum, DEFAULT_STANDARD_PLURAL)] = mod;
+    }
+
     /** Returns a reference to the modifier; no ownership change. */
-    const Modifier *getModifier(int8_t signum) const {
-        return mods[signum + 1];
+    const Modifier *getModifier(int8_t signum, StandardPlural::Form plural) const U_OVERRIDE {
+        const Modifier* modifier = mods[getModIndex(signum, plural)];
+        if (modifier == nullptr && plural != DEFAULT_STANDARD_PLURAL) {
+            modifier = mods[getModIndex(signum, DEFAULT_STANDARD_PLURAL)];
+        }
+        return modifier;
     }
 
     /** Returns a reference to the modifier; no ownership change. */
-    const Modifier *getModifier(int8_t signum, StandardPlural::Form plural) const {
-        return mods[getModIndex(signum, plural)];
+    const Modifier *getModifierWithoutPlural(int8_t signum) const {
+        return mods[getModIndex(signum, DEFAULT_STANDARD_PLURAL)];
     }
 
   private:
-    const Modifier *mods[3 * StandardPlural::COUNT];
+    // NOTE: mods is zero-initialized (to nullptr)
+    const Modifier *mods[3 * StandardPlural::COUNT] = {};
 
     inline static int32_t getModIndex(int8_t signum, StandardPlural::Form plural) {
+        U_ASSERT(signum >= -1 && signum <= 1);
+        U_ASSERT(plural >= 0 && plural < StandardPlural::COUNT);
         return static_cast<int32_t>(plural) * 3 + (signum + 1);
     }
 };
index a27142c..ecb50dd 100644 (file)
@@ -143,14 +143,14 @@ void Scale::applyReciprocalTo(impl::DecimalQuantity& quantity) const {
 
 void
 MultiplierFormatHandler::setAndChain(const Scale& multiplier, const MicroPropsGenerator* parent) {
-    this->multiplier = multiplier;
-    this->parent = parent;
+    fMultiplier = multiplier;
+    fParent = parent;
 }
 
 void MultiplierFormatHandler::processQuantity(DecimalQuantity& quantity, MicroProps& micros,
                                               UErrorCode& status) const {
-    parent->processQuantity(quantity, micros, status);
-    multiplier.applyTo(quantity);
+    fParent->processQuantity(quantity, micros, status);
+    fMultiplier.applyTo(quantity);
 }
 
 #endif /* #if !UCONFIG_NO_FORMATTING */
index 82c30c7..d8235dc 100644 (file)
@@ -28,8 +28,8 @@ class U_I18N_API MultiplierFormatHandler : public MicroPropsGenerator, public UM
                          UErrorCode& status) const U_OVERRIDE;
 
   private:
-    Scale multiplier;
-    const MicroPropsGenerator *parent;
+    Scale fMultiplier;
+    const MicroPropsGenerator *fParent;
 };
 
 
index 97e7b60..31684d7 100644 (file)
@@ -62,7 +62,7 @@ Padder Padder::forProperties(const DecimalFormatProperties& properties) {
 int32_t Padder::padAndApply(const Modifier &mod1, const Modifier &mod2,
                             NumberStringBuilder &string, int32_t leftIndex, int32_t rightIndex,
                             UErrorCode &status) const {
-    int32_t modLength = mod1.getCodePointCount(status) + mod2.getCodePointCount(status);
+    int32_t modLength = mod1.getCodePointCount() + mod2.getCodePointCount();
     int32_t requiredPadding = fWidth - modLength - string.codePointCount();
     U_ASSERT(leftIndex == 0 &&
              rightIndex == string.length()); // fix the previous line to remove this assertion
index 6417e14..4c61a0d 100644 (file)
@@ -24,11 +24,11 @@ MutablePatternModifier::MutablePatternModifier(bool isStrong)
         : fStrong(isStrong) {}
 
 void MutablePatternModifier::setPatternInfo(const AffixPatternProvider* patternInfo) {
-    this->patternInfo = patternInfo;
+    fPatternInfo = patternInfo;
 }
 
 void MutablePatternModifier::setPatternAttributes(UNumberSignDisplay signDisplay, bool perMille) {
-    this->signDisplay = signDisplay;
+    fSignDisplay = signDisplay;
     this->perMilleReplacesPercent = perMille;
 }
 
@@ -36,20 +36,20 @@ void MutablePatternModifier::setSymbols(const DecimalFormatSymbols* symbols,
                                         const CurrencySymbols* currencySymbols,
                                         const UNumberUnitWidth unitWidth, const PluralRules* rules) {
     U_ASSERT((rules != nullptr) == needsPlurals());
-    this->symbols = symbols;
-    this->currencySymbols = currencySymbols;
-    this->unitWidth = unitWidth;
-    this->rules = rules;
+    fSymbols = symbols;
+    fCurrencySymbols = currencySymbols;
+    fUnitWidth = unitWidth;
+    fRules = rules;
 }
 
 void MutablePatternModifier::setNumberProperties(int8_t signum, StandardPlural::Form plural) {
-    this->signum = signum;
-    this->plural = plural;
+    fSignum = signum;
+    fPlural = plural;
 }
 
 bool MutablePatternModifier::needsPlurals() const {
     UErrorCode statusLocal = U_ZERO_ERROR;
-    return patternInfo->containsSymbolType(AffixPatternType::TYPE_CURRENCY_TRIPLE, statusLocal);
+    return fPatternInfo->containsSymbolType(AffixPatternType::TYPE_CURRENCY_TRIPLE, statusLocal);
     // Silently ignore any error codes.
 }
 
@@ -69,7 +69,7 @@ MutablePatternModifier::createImmutableAndChain(const MicroPropsGenerator* paren
             StandardPlural::Form::MANY,
             StandardPlural::Form::OTHER};
 
-    auto pm = new ParameterizedModifier();
+    auto pm = new AdoptingModifierStore();
     if (pm == nullptr) {
         status = U_MEMORY_ALLOCATION_ERROR;
         return nullptr;
@@ -79,26 +79,25 @@ MutablePatternModifier::createImmutableAndChain(const MicroPropsGenerator* paren
         // Slower path when we require the plural keyword.
         for (StandardPlural::Form plural : STANDARD_PLURAL_VALUES) {
             setNumberProperties(1, plural);
-            pm->adoptSignPluralModifier(1, plural, createConstantModifier(status));
+            pm->adoptModifier(1, plural, createConstantModifier(status));
             setNumberProperties(0, plural);
-            pm->adoptSignPluralModifier(0, plural, createConstantModifier(status));
+            pm->adoptModifier(0, plural, createConstantModifier(status));
             setNumberProperties(-1, plural);
-            pm->adoptSignPluralModifier(-1, plural, createConstantModifier(status));
+            pm->adoptModifier(-1, plural, createConstantModifier(status));
         }
         if (U_FAILURE(status)) {
             delete pm;
             return nullptr;
         }
-        return new ImmutablePatternModifier(pm, rules, parent);  // adopts pm
+        return new ImmutablePatternModifier(pm, fRules, parent);  // adopts pm
     } else {
         // Faster path when plural keyword is not needed.
         setNumberProperties(1, StandardPlural::Form::COUNT);
-        Modifier* positive = createConstantModifier(status);
+        pm->adoptModifierWithoutPlural(1, createConstantModifier(status));
         setNumberProperties(0, StandardPlural::Form::COUNT);
-        Modifier* zero = createConstantModifier(status);
+        pm->adoptModifierWithoutPlural(0, createConstantModifier(status));
         setNumberProperties(-1, StandardPlural::Form::COUNT);
-        Modifier* negative = createConstantModifier(status);
-        pm->adoptPositiveNegativeModifiers(positive, zero, negative);
+        pm->adoptModifierWithoutPlural(-1, createConstantModifier(status));
         if (U_FAILURE(status)) {
             delete pm;
             return nullptr;
@@ -112,15 +111,15 @@ ConstantMultiFieldModifier* MutablePatternModifier::createConstantModifier(UErro
     NumberStringBuilder b;
     insertPrefix(a, 0, status);
     insertSuffix(b, 0, status);
-    if (patternInfo->hasCurrencySign()) {
+    if (fPatternInfo->hasCurrencySign()) {
         return new CurrencySpacingEnabledModifier(
-                a, b, !patternInfo->hasBody(), fStrong, *symbols, status);
+                a, b, !fPatternInfo->hasBody(), fStrong, *fSymbols, status);
     } else {
-        return new ConstantMultiFieldModifier(a, b, !patternInfo->hasBody(), fStrong);
+        return new ConstantMultiFieldModifier(a, b, !fPatternInfo->hasBody(), fStrong);
     }
 }
 
-ImmutablePatternModifier::ImmutablePatternModifier(ParameterizedModifier* pm, const PluralRules* rules,
+ImmutablePatternModifier::ImmutablePatternModifier(AdoptingModifierStore* pm, const PluralRules* rules,
                                                    const MicroPropsGenerator* parent)
         : pm(pm), rules(rules), parent(parent) {}
 
@@ -132,7 +131,7 @@ void ImmutablePatternModifier::processQuantity(DecimalQuantity& quantity, MicroP
 
 void ImmutablePatternModifier::applyToMicros(MicroProps& micros, DecimalQuantity& quantity) const {
     if (rules == nullptr) {
-        micros.modMiddle = pm->getModifier(quantity.signum());
+        micros.modMiddle = pm->getModifierWithoutPlural(quantity.signum());
     } else {
         // TODO: Fix this. Avoid the copy.
         DecimalQuantity copy(quantity);
@@ -144,7 +143,7 @@ void ImmutablePatternModifier::applyToMicros(MicroProps& micros, DecimalQuantity
 
 const Modifier* ImmutablePatternModifier::getModifier(int8_t signum, StandardPlural::Form plural) const {
     if (rules == nullptr) {
-        return pm->getModifier(signum);
+        return pm->getModifierWithoutPlural(signum);
     } else {
         return pm->getModifier(signum, plural);
     }
@@ -153,13 +152,13 @@ const Modifier* ImmutablePatternModifier::getModifier(int8_t signum, StandardPlu
 
 /** Used by the unsafe code path. */
 MicroPropsGenerator& MutablePatternModifier::addToChain(const MicroPropsGenerator* parent) {
-    this->parent = parent;
+    fParent = parent;
     return *this;
 }
 
 void MutablePatternModifier::processQuantity(DecimalQuantity& fq, MicroProps& micros,
                                              UErrorCode& status) const {
-    parent->processQuantity(fq, micros, status);
+    fParent->processQuantity(fq, micros, status);
     // The unsafe code path performs self-mutation, so we need a const_cast.
     // This method needs to be const because it overrides a const method in the parent class.
     auto nonConstThis = const_cast<MutablePatternModifier*>(this);
@@ -167,7 +166,7 @@ void MutablePatternModifier::processQuantity(DecimalQuantity& fq, MicroProps& mi
         // TODO: Fix this. Avoid the copy.
         DecimalQuantity copy(fq);
         micros.rounder.apply(copy, status);
-        nonConstThis->setNumberProperties(fq.signum(), utils::getStandardPlural(rules, copy));
+        nonConstThis->setNumberProperties(fq.signum(), utils::getStandardPlural(fRules, copy));
     } else {
         nonConstThis->setNumberProperties(fq.signum(), StandardPlural::Form::COUNT);
     }
@@ -183,7 +182,7 @@ int32_t MutablePatternModifier::apply(NumberStringBuilder& output, int32_t leftI
     int32_t suffixLen = nonConstThis->insertSuffix(output, rightIndex + prefixLen, status);
     // If the pattern had no decimal stem body (like #,##0.00), overwrite the value.
     int32_t overwriteLen = 0;
-    if (!patternInfo->hasBody()) {
+    if (!fPatternInfo->hasBody()) {
         overwriteLen = output.splice(
                 leftIndex + prefixLen,
                 rightIndex + prefixLen,
@@ -199,28 +198,30 @@ int32_t MutablePatternModifier::apply(NumberStringBuilder& output, int32_t leftI
             prefixLen,
             rightIndex + overwriteLen + prefixLen,
             suffixLen,
-            *symbols,
+            *fSymbols,
             status);
     return prefixLen + overwriteLen + suffixLen;
 }
 
-int32_t MutablePatternModifier::getPrefixLength(UErrorCode& status) const {
+int32_t MutablePatternModifier::getPrefixLength() const {
     // The unsafe code path performs self-mutation, so we need a const_cast.
     // This method needs to be const because it overrides a const method in the parent class.
     auto nonConstThis = const_cast<MutablePatternModifier*>(this);
 
     // Enter and exit CharSequence Mode to get the length.
+    UErrorCode status = U_ZERO_ERROR; // status fails only with an iilegal argument exception
     nonConstThis->prepareAffix(true);
     int result = AffixUtils::unescapedCodePointCount(currentAffix, *this, status);  // prefix length
     return result;
 }
 
-int32_t MutablePatternModifier::getCodePointCount(UErrorCode& status) const {
+int32_t MutablePatternModifier::getCodePointCount() const {
     // The unsafe code path performs self-mutation, so we need a const_cast.
     // This method needs to be const because it overrides a const method in the parent class.
     auto nonConstThis = const_cast<MutablePatternModifier*>(this);
 
     // Render the affixes to get the length
+    UErrorCode status = U_ZERO_ERROR; // status fails only with an iilegal argument exception
     nonConstThis->prepareAffix(true);
     int result = AffixUtils::unescapedCodePointCount(currentAffix, *this, status);  // prefix length
     nonConstThis->prepareAffix(false);
@@ -232,6 +233,26 @@ bool MutablePatternModifier::isStrong() const {
     return fStrong;
 }
 
+bool MutablePatternModifier::containsField(UNumberFormatFields field) const {
+    (void)field;
+    // This method is not currently used.
+    U_ASSERT(false);
+    return false;
+}
+
+void MutablePatternModifier::getParameters(Parameters& output) const {
+    (void)output;
+    // This method is not currently used.
+    U_ASSERT(false);
+}
+
+bool MutablePatternModifier::semanticallyEquivalent(const Modifier& other) const {
+    (void)other;
+    // This method is not currently used.
+    U_ASSERT(false);
+    return false;
+}
+
 int32_t MutablePatternModifier::insertPrefix(NumberStringBuilder& sb, int position, UErrorCode& status) {
     prepareAffix(true);
     int length = AffixUtils::unescape(currentAffix, sb, position, *this, status);
@@ -247,40 +268,40 @@ int32_t MutablePatternModifier::insertSuffix(NumberStringBuilder& sb, int positi
 /** This method contains the heart of the logic for rendering LDML affix strings. */
 void MutablePatternModifier::prepareAffix(bool isPrefix) {
     PatternStringUtils::patternInfoToStringBuilder(
-            *patternInfo, isPrefix, signum, signDisplay, plural, perMilleReplacesPercent, currentAffix);
+            *fPatternInfo, isPrefix, fSignum, fSignDisplay, fPlural, perMilleReplacesPercent, currentAffix);
 }
 
 UnicodeString MutablePatternModifier::getSymbol(AffixPatternType type) const {
     UErrorCode localStatus = U_ZERO_ERROR;
     switch (type) {
         case AffixPatternType::TYPE_MINUS_SIGN:
-            return symbols->getSymbol(DecimalFormatSymbols::ENumberFormatSymbol::kMinusSignSymbol);
+            return fSymbols->getSymbol(DecimalFormatSymbols::ENumberFormatSymbol::kMinusSignSymbol);
         case AffixPatternType::TYPE_PLUS_SIGN:
-            return symbols->getSymbol(DecimalFormatSymbols::ENumberFormatSymbol::kPlusSignSymbol);
+            return fSymbols->getSymbol(DecimalFormatSymbols::ENumberFormatSymbol::kPlusSignSymbol);
         case AffixPatternType::TYPE_PERCENT:
-            return symbols->getSymbol(DecimalFormatSymbols::ENumberFormatSymbol::kPercentSymbol);
+            return fSymbols->getSymbol(DecimalFormatSymbols::ENumberFormatSymbol::kPercentSymbol);
         case AffixPatternType::TYPE_PERMILLE:
-            return symbols->getSymbol(DecimalFormatSymbols::ENumberFormatSymbol::kPerMillSymbol);
+            return fSymbols->getSymbol(DecimalFormatSymbols::ENumberFormatSymbol::kPerMillSymbol);
         case AffixPatternType::TYPE_CURRENCY_SINGLE: {
             // UnitWidth ISO and HIDDEN overrides the singular currency symbol.
-            if (unitWidth == UNumberUnitWidth::UNUM_UNIT_WIDTH_ISO_CODE) {
-                return currencySymbols->getIntlCurrencySymbol(localStatus);
-            } else if (unitWidth == UNumberUnitWidth::UNUM_UNIT_WIDTH_HIDDEN) {
+            if (fUnitWidth == UNumberUnitWidth::UNUM_UNIT_WIDTH_ISO_CODE) {
+                return fCurrencySymbols->getIntlCurrencySymbol(localStatus);
+            } else if (fUnitWidth == UNumberUnitWidth::UNUM_UNIT_WIDTH_HIDDEN) {
                 return UnicodeString();
-            } else if (unitWidth == UNumberUnitWidth::UNUM_UNIT_WIDTH_NARROW) {
-                return currencySymbols->getNarrowCurrencySymbol(localStatus);
+            } else if (fUnitWidth == UNumberUnitWidth::UNUM_UNIT_WIDTH_NARROW) {
+                return fCurrencySymbols->getNarrowCurrencySymbol(localStatus);
             } else {
-                return currencySymbols->getCurrencySymbol(localStatus);
+                return fCurrencySymbols->getCurrencySymbol(localStatus);
             }
         }
         case AffixPatternType::TYPE_CURRENCY_DOUBLE:
-            return currencySymbols->getIntlCurrencySymbol(localStatus);
+            return fCurrencySymbols->getIntlCurrencySymbol(localStatus);
         case AffixPatternType::TYPE_CURRENCY_TRIPLE:
             // NOTE: This is the code path only for patterns containing "¤¤¤".
             // Plural currencies set via the API are formatted in LongNameHandler.
             // This code path is used by DecimalFormat via CurrencyPluralInfo.
-            U_ASSERT(plural != StandardPlural::Form::COUNT);
-            return currencySymbols->getPluralName(plural, localStatus);
+            U_ASSERT(fPlural != StandardPlural::Form::COUNT);
+            return fCurrencySymbols->getPluralName(fPlural, localStatus);
         case AffixPatternType::TYPE_CURRENCY_QUAD:
             return UnicodeString(u"\uFFFD");
         case AffixPatternType::TYPE_CURRENCY_QUINT:
index f1359bd..ea80d63 100644 (file)
 U_NAMESPACE_BEGIN
 
 // Export an explicit template instantiation of the LocalPointer that is used as a
-// data member of ParameterizedModifier.
+// data member of AdoptingModifierStore.
 // (When building DLLs for Windows this is required.)
 #if U_PF_WINDOWS <= U_PLATFORM && U_PLATFORM <= U_PF_CYGWIN
 // Ignore warning 4661 as LocalPointerBase does not use operator== or operator!=
 #pragma warning(suppress: 4661)
-template class U_I18N_API LocalPointerBase<number::impl::ParameterizedModifier>;
-template class U_I18N_API LocalPointer<number::impl::ParameterizedModifier>;
+template class U_I18N_API LocalPointerBase<number::impl::AdoptingModifierStore>;
+template class U_I18N_API LocalPointer<number::impl::AdoptingModifierStore>;
 #endif
 
 namespace number {
@@ -45,10 +45,10 @@ class U_I18N_API ImmutablePatternModifier : public MicroPropsGenerator, public U
     const Modifier* getModifier(int8_t signum, StandardPlural::Form plural) const;
 
   private:
-    ImmutablePatternModifier(ParameterizedModifier* pm, const PluralRules* rules,
+    ImmutablePatternModifier(AdoptingModifierStore* pm, const PluralRules* rules,
                              const MicroPropsGenerator* parent);
 
-    const LocalPointer<ParameterizedModifier> pm;
+    const LocalPointer<AdoptingModifierStore> pm;
     const PluralRules* rules;
     const MicroPropsGenerator* parent;
 
@@ -178,12 +178,18 @@ class U_I18N_API MutablePatternModifier
     int32_t apply(NumberStringBuilder &output, int32_t leftIndex, int32_t rightIndex,
                   UErrorCode &status) const U_OVERRIDE;
 
-    int32_t getPrefixLength(UErrorCode &status) const U_OVERRIDE;
+    int32_t getPrefixLength() const U_OVERRIDE;
 
-    int32_t getCodePointCount(UErrorCode &status) const U_OVERRIDE;
+    int32_t getCodePointCount() const U_OVERRIDE;
 
     bool isStrong() const U_OVERRIDE;
 
+    bool containsField(UNumberFormatFields field) const U_OVERRIDE;
+
+    void getParameters(Parameters& output) const U_OVERRIDE;
+
+    bool semanticallyEquivalent(const Modifier& other) const U_OVERRIDE;
+
     /**
      * Returns the string that substitutes a given symbol type in a pattern.
      */
@@ -196,22 +202,22 @@ class U_I18N_API MutablePatternModifier
     const bool fStrong;
 
     // Pattern details (initialized in setPatternInfo and setPatternAttributes)
-    const AffixPatternProvider *patternInfo;
-    UNumberSignDisplay signDisplay;
+    const AffixPatternProvider *fPatternInfo;
+    UNumberSignDisplay fSignDisplay;
     bool perMilleReplacesPercent;
 
     // Symbol details (initialized in setSymbols)
-    const DecimalFormatSymbols *symbols;
-    UNumberUnitWidth unitWidth;
-    const CurrencySymbols *currencySymbols;
-    const PluralRules *rules;
+    const DecimalFormatSymbols *fSymbols;
+    UNumberUnitWidth fUnitWidth;
+    const CurrencySymbols *fCurrencySymbols;
+    const PluralRules *fRules;
 
     // Number details (initialized in setNumberProperties)
-    int8_t signum;
-    StandardPlural::Form plural;
+    int8_t fSignum;
+    StandardPlural::Form fPlural;
 
     // QuantityChain details (initialized in addToChain)
-    const MicroPropsGenerator *parent;
+    const MicroPropsGenerator *fParent;
 
     // Transient fields for rendering
     UnicodeString currentAffix;
index e9adfb4..009e4df 100644 (file)
@@ -76,17 +76,16 @@ int32_t ScientificModifier::apply(NumberStringBuilder &output, int32_t /*leftInd
     return i - rightIndex;
 }
 
-int32_t ScientificModifier::getPrefixLength(UErrorCode &status) const {
-    (void)status;
+int32_t ScientificModifier::getPrefixLength() const {
     // TODO: Localized exponent separator location.
     return 0;
 }
 
-int32_t ScientificModifier::getCodePointCount(UErrorCode &status) const {
-    (void)status;
-    // This method is not used for strong modifiers.
-    U_ASSERT(false);
-    return 0;
+int32_t ScientificModifier::getCodePointCount() const {
+    // NOTE: This method is only called one place, NumberRangeFormatterImpl.
+    // The call site only cares about != 0 and != 1.
+    // Return a very large value so that if this method is used elsewhere, we should notice.
+    return 999;
 }
 
 bool ScientificModifier::isStrong() const {
@@ -94,6 +93,27 @@ bool ScientificModifier::isStrong() const {
     return true;
 }
 
+bool ScientificModifier::containsField(UNumberFormatFields field) const {
+    (void)field;
+    // This method is not used for inner modifiers.
+    U_ASSERT(false);
+    return false;
+}
+
+void ScientificModifier::getParameters(Parameters& output) const {
+    // Not part of any plural sets
+    output.obj = nullptr;
+}
+
+bool ScientificModifier::semanticallyEquivalent(const Modifier& other) const {
+    auto* _other = dynamic_cast<const ScientificModifier*>(&other);
+    if (_other == nullptr) {
+        return false;
+    }
+    // TODO: Check for locale symbols and settings as well? Could be less efficient.
+    return fExponent == _other->fExponent;
+}
+
 // Note: Visual Studio does not compile this function without full name space. Why?
 icu::number::impl::ScientificHandler::ScientificHandler(const Notation *notation, const DecimalFormatSymbols *symbols,
        const MicroPropsGenerator *parent) : 
index 974ab3a..e377bd9 100644 (file)
@@ -24,12 +24,18 @@ class U_I18N_API ScientificModifier : public UMemory, public Modifier {
     int32_t apply(NumberStringBuilder &output, int32_t leftIndex, int32_t rightIndex,
                   UErrorCode &status) const U_OVERRIDE;
 
-    int32_t getPrefixLength(UErrorCode &status) const U_OVERRIDE;
+    int32_t getPrefixLength() const U_OVERRIDE;
 
-    int32_t getCodePointCount(UErrorCode &status) const U_OVERRIDE;
+    int32_t getCodePointCount() const U_OVERRIDE;
 
     bool isStrong() const U_OVERRIDE;
 
+    bool containsField(UNumberFormatFields field) const U_OVERRIDE;
+
+    void getParameters(Parameters& output) const U_OVERRIDE;
+
+    bool semanticallyEquivalent(const Modifier& other) const U_OVERRIDE;
+
   private:
     int32_t fExponent;
     const ScientificHandler *fHandler;
index 37770d1..74ba33f 100644 (file)
@@ -241,6 +241,9 @@ NumberStringBuilder::insert(int32_t index, const NumberStringBuilder &other, UEr
 }
 
 int32_t NumberStringBuilder::prepareForInsert(int32_t index, int32_t count, UErrorCode &status) {
+    U_ASSERT(index >= 0);
+    U_ASSERT(index <= fLength);
+    U_ASSERT(count >= 0);
     if (index == 0 && fZero - count >= 0) {
         // Append to start
         fZero -= count;
@@ -485,4 +488,13 @@ void NumberStringBuilder::getAllFieldPositions(FieldPositionIteratorHandler& fpi
     }
 }
 
+bool NumberStringBuilder::containsField(Field field) const {
+    for (int32_t i = 0; i < fLength; i++) {
+        if (field == fieldAt(i)) {
+            return true;
+        }
+    }
+    return false;
+}
+
 #endif /* #if !UCONFIG_NO_FORMATTING */
index cd8ce2f..b14ad9e 100644 (file)
@@ -106,6 +106,8 @@ class U_I18N_API NumberStringBuilder : public UMemory {
 
     void getAllFieldPositions(FieldPositionIteratorHandler& fpih, UErrorCode& status) const;
 
+    bool containsField(Field field) const;
+
   private:
     bool fUsingHeap = false;
     ValueOrHeapArray<char16_t> fChars;
index 57da72f..00a6818 100644 (file)
@@ -16,6 +16,7 @@
 #include "uassert.h"
 #include "unicode/platform.h"
 #include "unicode/uniset.h"
+#include "standardplural.h"
 
 U_NAMESPACE_BEGIN namespace number {
 namespace impl {
@@ -45,6 +46,7 @@ class Modifier;
 class MutablePatternModifier;
 class DecimalQuantity;
 class NumberStringBuilder;
+class ModifierStore;
 struct MicroProps;
 
 
@@ -127,12 +129,13 @@ class U_I18N_API AffixPatternProvider {
     virtual bool hasBody() const = 0;
 };
 
+
 /**
  * A Modifier is an object that can be passed through the formatting pipeline until it is finally applied to the string
  * builder. A Modifier usually contains a prefix and a suffix that are applied, but it could contain something else,
  * like a {@link com.ibm.icu.text.SimpleFormatter} pattern.
  *
- * A Modifier is usually immutable, except in cases such as {@link MurkyModifier}, which are mutable for performance
+ * A Modifier is usually immutable, except in cases such as {@link MutablePatternModifier}, which are mutable for performance
  * reasons.
  *
  * Exported as U_I18N_API because it is a base class for other exported types
@@ -162,12 +165,12 @@ class U_I18N_API Modifier {
      *
      * @return The number of characters (UTF-16 code units) in the prefix.
      */
-    virtual int32_t getPrefixLength(UErrorCode& status) const = 0;
+    virtual int32_t getPrefixLength() const = 0;
 
     /**
      * Returns the number of code points in the modifier, prefix plus suffix.
      */
-    virtual int32_t getCodePointCount(UErrorCode& status) const = 0;
+    virtual int32_t getCodePointCount() const = 0;
 
     /**
      * Whether this modifier is strong. If a modifier is strong, it should always be applied immediately and not allowed
@@ -177,8 +180,57 @@ class U_I18N_API Modifier {
      * @return Whether the modifier is strong.
      */
     virtual bool isStrong() const = 0;
+
+    /**
+     * Whether the modifier contains at least one occurrence of the given field.
+     */
+    virtual bool containsField(UNumberFormatFields field) const = 0;
+
+    /**
+     * A fill-in for getParameters(). obj will always be set; if non-null, the other
+     * two fields are also safe to read.
+     */
+    struct U_I18N_API Parameters {
+        const ModifierStore* obj = nullptr;
+        int8_t signum;
+        StandardPlural::Form plural;
+
+        Parameters();
+        Parameters(const ModifierStore* _obj, int8_t _signum, StandardPlural::Form _plural);
+    };
+
+    /**
+     * Gets a set of "parameters" for this Modifier.
+     *
+     * TODO: Make this return a `const Parameters*` more like Java?
+     */
+    virtual void getParameters(Parameters& output) const = 0;
+
+    /**
+     * Returns whether this Modifier is *semantically equivalent* to the other Modifier;
+     * in many cases, this is the same as equal, but parameters should be ignored.
+     */
+    virtual bool semanticallyEquivalent(const Modifier& other) const = 0;
 };
 
+
+/**
+ * This is *not* a modifier; rather, it is an object that can return modifiers
+ * based on given parameters.
+ *
+ * Exported as U_I18N_API because it is a base class for other exported types.
+ */
+class U_I18N_API ModifierStore {
+  public:
+    virtual ~ModifierStore();
+
+    /**
+     * Returns a Modifier with the given parameters (best-effort).
+     */
+    virtual const Modifier* getModifier(int8_t signum, StandardPlural::Form plural) const = 0;
+};
+
+
 /**
  * This interface is used when all number formatting settings, including the locale, are known, except for the quantity
  * itself. The {@link #processQuantity} method performs the final step in the number processing pipeline: it uses the
index cf0ce6f..626a5d1 100644 (file)
@@ -1326,13 +1326,13 @@ NumberFormat::makeInstance(const Locale& desiredLocale,
 
         // if the locale has "@compat=host", create a host-specific NumberFormat
         if (U_SUCCESS(status) && count > 0 && uprv_strcmp(buffer, "host") == 0) {
-            Win32NumberFormat *f = NULL;
             UBool curr = TRUE;
 
             switch (style) {
             case UNUM_DECIMAL:
                 curr = FALSE;
                 // fall-through
+                U_FALLTHROUGH;
 
             case UNUM_CURRENCY:
             case UNUM_CURRENCY_ISO: // do not support plural formatting here
@@ -1340,14 +1340,13 @@ NumberFormat::makeInstance(const Locale& desiredLocale,
             case UNUM_CURRENCY_ACCOUNTING:
             case UNUM_CASH_CURRENCY:
             case UNUM_CURRENCY_STANDARD:
-                f = new Win32NumberFormat(desiredLocale, curr, status);
-
+            {
+                LocalPointer<Win32NumberFormat> f(new Win32NumberFormat(desiredLocale, curr, status), status);
                 if (U_SUCCESS(status)) {
-                    return f;
+                    return f.orphan();
                 }
-
-                delete f;
-                break;
+            }
+            break;
             default:
                 break;
             }
@@ -1417,8 +1416,7 @@ NumberFormat::makeInstance(const Locale& desiredLocale,
         }
     }
 
-
-    NumberFormat *f;
+    LocalPointer<NumberFormat> f;
     if (ns->isAlgorithmic()) {
         UnicodeString nsDesc;
         UnicodeString nsRuleSetGroup;
@@ -1453,7 +1451,7 @@ NumberFormat::makeInstance(const Locale& desiredLocale,
             return NULL;
         }
         r->setDefaultRuleSet(nsRuleSetName,status);
-        f = r;
+        f.adoptInstead(r);
     } else {
         // replace single currency sign in the pattern with double currency sign
         // if the style is UNUM_CURRENCY_ISO
@@ -1462,9 +1460,22 @@ NumberFormat::makeInstance(const Locale& desiredLocale,
                                    UnicodeString(TRUE, gDoubleCurrencySign, 2));
         }
 
-        // "new DecimalFormat()" does not adopt the symbols if its memory allocation fails.
-        DecimalFormatSymbols *syms = symbolsToAdopt.orphan();
-        DecimalFormat* df = new DecimalFormat(pattern, syms, style, status);
+        // "new DecimalFormat()" does not adopt the symbols argument if its memory allocation fails.
+        // So we can't use adoptInsteadAndCheckErrorCode as we need to know if the 'new' failed.
+        DecimalFormatSymbols *syms = symbolsToAdopt.getAlias();
+        LocalPointer<DecimalFormat> df(new DecimalFormat(pattern, syms, style, status));
+
+        if (df.isValid()) {
+            // if the DecimalFormat object was successfully new'ed, then it will own symbolsToAdopt, even if the status is a failure.
+            symbolsToAdopt.orphan();
+        }
+        else {
+            status = U_MEMORY_ALLOCATION_ERROR;
+        }
+
+        if (U_FAILURE(status)) {
+            return nullptr;
+        }
 
         // if it is cash currency style, setCurrencyUsage with usage
         if (style == UNUM_CASH_CURRENCY){
@@ -1472,25 +1483,18 @@ NumberFormat::makeInstance(const Locale& desiredLocale,
         }
 
         if (U_FAILURE(status)) {
-            delete df;
-            return NULL;
+            return nullptr;
         }
 
-        f = df;
-        if (f == NULL) {
-            delete syms;
-            status = U_MEMORY_ALLOCATION_ERROR;
-            return NULL;
-        }
+        f.adoptInstead(df.orphan());
     }
 
     f->setLocaleIDs(ures_getLocaleByType(ownedResource.getAlias(), ULOC_VALID_LOCALE, &status),
                     ures_getLocaleByType(ownedResource.getAlias(), ULOC_ACTUAL_LOCALE, &status));
     if (U_FAILURE(status)) {
-        delete f;
         return NULL;
     }
-    return f;
+    return f.orphan();
 }
 
 /**
index ae8196e..598ace5 100644 (file)
@@ -111,7 +111,9 @@ bool CombinedCurrencyMatcher::matchCurrency(StringSegment& segment, ParsedNumber
 
     int32_t overlap2;
     if (!fCurrency2.isEmpty()) {
-        overlap2 = segment.getCaseSensitivePrefixLength(fCurrency2);
+        // ISO codes should be accepted case-insensitive.
+        // https://unicode-org.atlassian.net/browse/ICU-13696
+        overlap2 = segment.getCommonPrefixLength(fCurrency2);
     } else {
         overlap2 = -1;
     }
index 5fa52f6..3192a39 100644 (file)
@@ -159,10 +159,10 @@ NumberParserImpl::createParserFromProperties(const number::impl::DecimalFormatPr
 
     // ICU-TC meeting, April 11, 2018: accept percent/permille only if it is in the pattern,
     // and to maintain regressive behavior, divide by 100 even if no percent sign is present.
-    if (affixProvider->containsSymbolType(AffixPatternType::TYPE_PERCENT, status)) {
+    if (!isStrict && affixProvider->containsSymbolType(AffixPatternType::TYPE_PERCENT, status)) {
         parser->addMatcher(parser->fLocalMatchers.percent = {symbols});
     }
-    if (affixProvider->containsSymbolType(AffixPatternType::TYPE_PERMILLE, status)) {
+    if (!isStrict && affixProvider->containsSymbolType(AffixPatternType::TYPE_PERMILLE, status)) {
         parser->addMatcher(parser->fLocalMatchers.permille = {symbols});
     }
 
index 611695e..de38957 100644 (file)
@@ -56,6 +56,11 @@ bool ScientificMatcher::match(StringSegment& segment, ParsedNumber& result, UErr
         return false;
     }
 
+    // Only accept one exponent per string.
+    if (0 != (result.flags & FLAG_HAS_EXPONENT)) {
+        return false;
+    }
+
     // First match the scientific separator, and then match another number after it.
     // NOTE: This is guarded by the smoke test; no need to check fExponentSeparatorString length again.
     int overlap1 = segment.getCommonPrefixLength(fExponentSeparatorString);
diff --git a/source/i18n/numrange_fluent.cpp b/source/i18n/numrange_fluent.cpp
new file mode 100644 (file)
index 0000000..12b006c
--- /dev/null
@@ -0,0 +1,472 @@
+// © 2018 and later: Unicode, Inc. and others.
+// License & terms of use: http://www.unicode.org/copyright.html
+
+#include "unicode/utypes.h"
+
+#if !UCONFIG_NO_FORMATTING
+
+// Allow implicit conversion from char16_t* to UnicodeString for this file:
+// Helpful in toString methods and elsewhere.
+#define UNISTR_FROM_STRING_EXPLICIT
+
+#include "numrange_impl.h"
+#include "util.h"
+#include "number_utypes.h"
+
+using namespace icu;
+using namespace icu::number;
+using namespace icu::number::impl;
+
+
+// This function needs to be declared in this namespace so it can be friended.
+// NOTE: In Java, this logic is handled in the resolve() function.
+void icu::number::impl::touchRangeLocales(RangeMacroProps& macros) {
+    macros.formatter1.fMacros.locale = macros.locale;
+    macros.formatter2.fMacros.locale = macros.locale;
+}
+
+
+template<typename Derived>
+Derived NumberRangeFormatterSettings<Derived>::numberFormatterBoth(const UnlocalizedNumberFormatter& formatter) const& {
+    Derived copy(*this);
+    copy.fMacros.formatter1 = formatter;
+    copy.fMacros.singleFormatter = true;
+    touchRangeLocales(copy.fMacros);
+    return copy;
+}
+
+template<typename Derived>
+Derived NumberRangeFormatterSettings<Derived>::numberFormatterBoth(const UnlocalizedNumberFormatter& formatter) && {
+    Derived move(std::move(*this));
+    move.fMacros.formatter1 = formatter;
+    move.fMacros.singleFormatter = true;
+    touchRangeLocales(move.fMacros);
+    return move;
+}
+
+template<typename Derived>
+Derived NumberRangeFormatterSettings<Derived>::numberFormatterBoth(UnlocalizedNumberFormatter&& formatter) const& {
+    Derived copy(*this);
+    copy.fMacros.formatter1 = std::move(formatter);
+    copy.fMacros.singleFormatter = true;
+    touchRangeLocales(copy.fMacros);
+    return copy;
+}
+
+template<typename Derived>
+Derived NumberRangeFormatterSettings<Derived>::numberFormatterBoth(UnlocalizedNumberFormatter&& formatter) && {
+    Derived move(std::move(*this));
+    move.fMacros.formatter1 = std::move(formatter);
+    move.fMacros.singleFormatter = true;
+    touchRangeLocales(move.fMacros);
+    return move;
+}
+
+template<typename Derived>
+Derived NumberRangeFormatterSettings<Derived>::numberFormatterFirst(const UnlocalizedNumberFormatter& formatter) const& {
+    Derived copy(*this);
+    copy.fMacros.formatter1 = formatter;
+    copy.fMacros.singleFormatter = false;
+    touchRangeLocales(copy.fMacros);
+    return copy;
+}
+
+template<typename Derived>
+Derived NumberRangeFormatterSettings<Derived>::numberFormatterFirst(const UnlocalizedNumberFormatter& formatter) && {
+    Derived move(std::move(*this));
+    move.fMacros.formatter1 = formatter;
+    move.fMacros.singleFormatter = false;
+    touchRangeLocales(move.fMacros);
+    return move;
+}
+
+template<typename Derived>
+Derived NumberRangeFormatterSettings<Derived>::numberFormatterFirst(UnlocalizedNumberFormatter&& formatter) const& {
+    Derived copy(*this);
+    copy.fMacros.formatter1 = std::move(formatter);
+    copy.fMacros.singleFormatter = false;
+    touchRangeLocales(copy.fMacros);
+    return copy;
+}
+
+template<typename Derived>
+Derived NumberRangeFormatterSettings<Derived>::numberFormatterFirst(UnlocalizedNumberFormatter&& formatter) && {
+    Derived move(std::move(*this));
+    move.fMacros.formatter1 = std::move(formatter);
+    move.fMacros.singleFormatter = false;
+    touchRangeLocales(move.fMacros);
+    return move;
+}
+
+template<typename Derived>
+Derived NumberRangeFormatterSettings<Derived>::numberFormatterSecond(const UnlocalizedNumberFormatter& formatter) const& {
+    Derived copy(*this);
+    copy.fMacros.formatter2 = formatter;
+    copy.fMacros.singleFormatter = false;
+    touchRangeLocales(copy.fMacros);
+    return copy;
+}
+
+template<typename Derived>
+Derived NumberRangeFormatterSettings<Derived>::numberFormatterSecond(const UnlocalizedNumberFormatter& formatter) && {
+    Derived move(std::move(*this));
+    move.fMacros.formatter2 = formatter;
+    move.fMacros.singleFormatter = false;
+    touchRangeLocales(move.fMacros);
+    return move;
+}
+
+template<typename Derived>
+Derived NumberRangeFormatterSettings<Derived>::numberFormatterSecond(UnlocalizedNumberFormatter&& formatter) const& {
+    Derived copy(*this);
+    copy.fMacros.formatter2 = std::move(formatter);
+    copy.fMacros.singleFormatter = false;
+    touchRangeLocales(copy.fMacros);
+    return copy;
+}
+
+template<typename Derived>
+Derived NumberRangeFormatterSettings<Derived>::numberFormatterSecond(UnlocalizedNumberFormatter&& formatter) && {
+    Derived move(std::move(*this));
+    move.fMacros.formatter2 = std::move(formatter);
+    move.fMacros.singleFormatter = false;
+    touchRangeLocales(move.fMacros);
+    return move;
+}
+
+template<typename Derived>
+Derived NumberRangeFormatterSettings<Derived>::collapse(UNumberRangeCollapse collapse) const& {
+    Derived copy(*this);
+    copy.fMacros.collapse = collapse;
+    return copy;
+}
+
+template<typename Derived>
+Derived NumberRangeFormatterSettings<Derived>::collapse(UNumberRangeCollapse collapse) && {
+    Derived move(std::move(*this));
+    move.fMacros.collapse = collapse;
+    return move;
+}
+
+template<typename Derived>
+Derived NumberRangeFormatterSettings<Derived>::identityFallback(UNumberRangeIdentityFallback identityFallback) const& {
+    Derived copy(*this);
+    copy.fMacros.identityFallback = identityFallback;
+    return copy;
+}
+
+template<typename Derived>
+Derived NumberRangeFormatterSettings<Derived>::identityFallback(UNumberRangeIdentityFallback identityFallback) && {
+    Derived move(std::move(*this));
+    move.fMacros.identityFallback = identityFallback;
+    return move;
+}
+
+// Declare all classes that implement NumberRangeFormatterSettings
+// See https://stackoverflow.com/a/495056/1407170
+template
+class icu::number::NumberRangeFormatterSettings<icu::number::UnlocalizedNumberRangeFormatter>;
+template
+class icu::number::NumberRangeFormatterSettings<icu::number::LocalizedNumberRangeFormatter>;
+
+
+UnlocalizedNumberRangeFormatter NumberRangeFormatter::with() {
+    UnlocalizedNumberRangeFormatter result;
+    return result;
+}
+
+LocalizedNumberRangeFormatter NumberRangeFormatter::withLocale(const Locale& locale) {
+    return with().locale(locale);
+}
+
+
+template<typename T> using NFS = NumberRangeFormatterSettings<T>;
+using LNF = LocalizedNumberRangeFormatter;
+using UNF = UnlocalizedNumberRangeFormatter;
+
+UnlocalizedNumberRangeFormatter::UnlocalizedNumberRangeFormatter(const UNF& other)
+        : UNF(static_cast<const NFS<UNF>&>(other)) {}
+
+UnlocalizedNumberRangeFormatter::UnlocalizedNumberRangeFormatter(const NFS<UNF>& other)
+        : NFS<UNF>(other) {
+    // No additional fields to assign
+}
+
+// Make default copy constructor call the NumberRangeFormatterSettings copy constructor.
+UnlocalizedNumberRangeFormatter::UnlocalizedNumberRangeFormatter(UNF&& src) U_NOEXCEPT
+        : UNF(static_cast<NFS<UNF>&&>(src)) {}
+
+UnlocalizedNumberRangeFormatter::UnlocalizedNumberRangeFormatter(NFS<UNF>&& src) U_NOEXCEPT
+        : NFS<UNF>(std::move(src)) {
+    // No additional fields to assign
+}
+
+UnlocalizedNumberRangeFormatter& UnlocalizedNumberRangeFormatter::operator=(const UNF& other) {
+    NFS<UNF>::operator=(static_cast<const NFS<UNF>&>(other));
+    // No additional fields to assign
+    return *this;
+}
+
+UnlocalizedNumberRangeFormatter& UnlocalizedNumberRangeFormatter::operator=(UNF&& src) U_NOEXCEPT {
+    NFS<UNF>::operator=(static_cast<NFS<UNF>&&>(src));
+    // No additional fields to assign
+    return *this;
+}
+
+// Make default copy constructor call the NumberRangeFormatterSettings copy constructor.
+LocalizedNumberRangeFormatter::LocalizedNumberRangeFormatter(const LNF& other)
+        : LNF(static_cast<const NFS<LNF>&>(other)) {}
+
+LocalizedNumberRangeFormatter::LocalizedNumberRangeFormatter(const NFS<LNF>& other)
+        : NFS<LNF>(other) {
+    // No additional fields to assign
+}
+
+LocalizedNumberRangeFormatter::LocalizedNumberRangeFormatter(LocalizedNumberRangeFormatter&& src) U_NOEXCEPT
+        : LNF(static_cast<NFS<LNF>&&>(src)) {}
+
+LocalizedNumberRangeFormatter::LocalizedNumberRangeFormatter(NFS<LNF>&& src) U_NOEXCEPT
+        : NFS<LNF>(std::move(src)) {
+    // Steal the compiled formatter
+    LNF&& _src = static_cast<LNF&&>(src);
+    auto* stolen = _src.fAtomicFormatter.exchange(nullptr);
+    delete fAtomicFormatter.exchange(stolen);
+}
+
+LocalizedNumberRangeFormatter& LocalizedNumberRangeFormatter::operator=(const LNF& other) {
+    NFS<LNF>::operator=(static_cast<const NFS<LNF>&>(other));
+    // Do not steal; just clear
+    delete fAtomicFormatter.exchange(nullptr);
+    return *this;
+}
+
+LocalizedNumberRangeFormatter& LocalizedNumberRangeFormatter::operator=(LNF&& src) U_NOEXCEPT {
+    NFS<LNF>::operator=(static_cast<NFS<LNF>&&>(src));
+    // Steal the compiled formatter
+    auto* stolen = src.fAtomicFormatter.exchange(nullptr);
+    delete fAtomicFormatter.exchange(stolen);
+    return *this;
+}
+
+
+LocalizedNumberRangeFormatter::~LocalizedNumberRangeFormatter() {
+    delete fAtomicFormatter.exchange(nullptr);
+}
+
+LocalizedNumberRangeFormatter::LocalizedNumberRangeFormatter(const RangeMacroProps& macros, const Locale& locale) {
+    fMacros = macros;
+    fMacros.locale = locale;
+    touchRangeLocales(fMacros);
+}
+
+LocalizedNumberRangeFormatter::LocalizedNumberRangeFormatter(RangeMacroProps&& macros, const Locale& locale) {
+    fMacros = std::move(macros);
+    fMacros.locale = locale;
+    touchRangeLocales(fMacros);
+}
+
+LocalizedNumberRangeFormatter UnlocalizedNumberRangeFormatter::locale(const Locale& locale) const& {
+    return LocalizedNumberRangeFormatter(fMacros, locale);
+}
+
+LocalizedNumberRangeFormatter UnlocalizedNumberRangeFormatter::locale(const Locale& locale)&& {
+    return LocalizedNumberRangeFormatter(std::move(fMacros), locale);
+}
+
+
+FormattedNumberRange LocalizedNumberRangeFormatter::formatFormattableRange(
+        const Formattable& first, const Formattable& second, UErrorCode& status) const {
+    if (U_FAILURE(status)) {
+        return FormattedNumberRange(U_ILLEGAL_ARGUMENT_ERROR);
+    }
+
+    auto results = new UFormattedNumberRangeData();
+    if (results == nullptr) {
+        status = U_MEMORY_ALLOCATION_ERROR;
+        return FormattedNumberRange(status);
+    }
+
+    first.populateDecimalQuantity(results->quantity1, status);
+    if (U_FAILURE(status)) {
+        return FormattedNumberRange(status);
+    }
+
+    second.populateDecimalQuantity(results->quantity2, status);
+    if (U_FAILURE(status)) {
+        return FormattedNumberRange(status);
+    }
+
+    formatImpl(*results, first == second, status);
+
+    // Do not save the results object if we encountered a failure.
+    if (U_SUCCESS(status)) {
+        return FormattedNumberRange(results);
+    } else {
+        delete results;
+        return FormattedNumberRange(status);
+    }
+}
+
+void LocalizedNumberRangeFormatter::formatImpl(
+        UFormattedNumberRangeData& results, bool equalBeforeRounding, UErrorCode& status) const {
+    auto* impl = getFormatter(status);
+    if (U_FAILURE(status)) {
+        return;
+    }
+    if (impl == nullptr) {
+        status = U_INTERNAL_PROGRAM_ERROR;
+        return;
+    }
+    impl->format(results, equalBeforeRounding, status);
+}
+
+const impl::NumberRangeFormatterImpl*
+LocalizedNumberRangeFormatter::getFormatter(UErrorCode& status) const {
+    // TODO: Move this into umutex.h? (similar logic also in decimfmt.cpp)
+    // See ICU-20146
+
+    if (U_FAILURE(status)) {
+        return nullptr;
+    }
+
+    // First try to get the pre-computed formatter
+    auto* ptr = fAtomicFormatter.load();
+    if (ptr != nullptr) {
+        return ptr;
+    }
+
+    // Try computing the formatter on our own
+    auto* temp = new NumberRangeFormatterImpl(fMacros, status);
+    if (U_FAILURE(status)) {
+        return nullptr;
+    }
+    if (temp == nullptr) {
+        status = U_MEMORY_ALLOCATION_ERROR;
+        return nullptr;
+    }
+
+    // Note: ptr starts as nullptr; during compare_exchange,
+    // it is set to what is actually stored in the atomic
+    // if another thread beat us to computing the formatter object.
+    auto* nonConstThis = const_cast<LocalizedNumberRangeFormatter*>(this);
+    if (!nonConstThis->fAtomicFormatter.compare_exchange_strong(ptr, temp)) {
+        // Another thread beat us to computing the formatter
+        delete temp;
+        return ptr;
+    } else {
+        // Our copy of the formatter got stored in the atomic
+        return temp;
+    }
+
+}
+
+
+FormattedNumberRange::FormattedNumberRange(FormattedNumberRange&& src) U_NOEXCEPT
+        : fResults(src.fResults), fErrorCode(src.fErrorCode) {
+    // Disown src.fResults to prevent double-deletion
+    src.fResults = nullptr;
+    src.fErrorCode = U_INVALID_STATE_ERROR;
+}
+
+FormattedNumberRange& FormattedNumberRange::operator=(FormattedNumberRange&& src) U_NOEXCEPT {
+    delete fResults;
+    fResults = src.fResults;
+    fErrorCode = src.fErrorCode;
+    // Disown src.fResults to prevent double-deletion
+    src.fResults = nullptr;
+    src.fErrorCode = U_INVALID_STATE_ERROR;
+    return *this;
+}
+
+UnicodeString FormattedNumberRange::toString(UErrorCode& status) const {
+    if (U_FAILURE(status)) {
+        return ICU_Utility::makeBogusString();
+    }
+    if (fResults == nullptr) {
+        status = fErrorCode;
+        return ICU_Utility::makeBogusString();
+    }
+    return fResults->string.toUnicodeString();
+}
+
+Appendable& FormattedNumberRange::appendTo(Appendable& appendable, UErrorCode& status) const {
+    if (U_FAILURE(status)) {
+        return appendable;
+    }
+    if (fResults == nullptr) {
+        status = fErrorCode;
+        return appendable;
+    }
+    appendable.appendString(fResults->string.chars(), fResults->string.length());
+    return appendable;
+}
+
+UBool FormattedNumberRange::nextFieldPosition(FieldPosition& fieldPosition, UErrorCode& status) const {
+    if (U_FAILURE(status)) {
+        return FALSE;
+    }
+    if (fResults == nullptr) {
+        status = fErrorCode;
+        return FALSE;
+    }
+    // NOTE: MSVC sometimes complains when implicitly converting between bool and UBool
+    return fResults->string.nextFieldPosition(fieldPosition, status) ? TRUE : FALSE;
+}
+
+void FormattedNumberRange::getAllFieldPositions(FieldPositionIterator& iterator, UErrorCode& status) const {
+    FieldPositionIteratorHandler fpih(&iterator, status);
+    getAllFieldPositionsImpl(fpih, status);
+}
+
+void FormattedNumberRange::getAllFieldPositionsImpl(
+        FieldPositionIteratorHandler& fpih, UErrorCode& status) const {
+    if (U_FAILURE(status)) {
+        return;
+    }
+    if (fResults == nullptr) {
+        status = fErrorCode;
+        return;
+    }
+    fResults->string.getAllFieldPositions(fpih, status);
+}
+
+UnicodeString FormattedNumberRange::getFirstDecimal(UErrorCode& status) const {
+    if (U_FAILURE(status)) {
+        return ICU_Utility::makeBogusString();
+    }
+    if (fResults == nullptr) {
+        status = fErrorCode;
+        return ICU_Utility::makeBogusString();
+    }
+    return fResults->quantity1.toScientificString();
+}
+
+UnicodeString FormattedNumberRange::getSecondDecimal(UErrorCode& status) const {
+    if (U_FAILURE(status)) {
+        return ICU_Utility::makeBogusString();
+    }
+    if (fResults == nullptr) {
+        status = fErrorCode;
+        return ICU_Utility::makeBogusString();
+    }
+    return fResults->quantity2.toScientificString();
+}
+
+UNumberRangeIdentityResult FormattedNumberRange::getIdentityResult(UErrorCode& status) const {
+    if (U_FAILURE(status)) {
+        return UNUM_IDENTITY_RESULT_NOT_EQUAL;
+    }
+    if (fResults == nullptr) {
+        status = fErrorCode;
+        return UNUM_IDENTITY_RESULT_NOT_EQUAL;
+    }
+    return fResults->identityResult;
+}
+
+FormattedNumberRange::~FormattedNumberRange() {
+    delete fResults;
+}
+
+
+
+#endif /* #if !UCONFIG_NO_FORMATTING */
diff --git a/source/i18n/numrange_impl.cpp b/source/i18n/numrange_impl.cpp
new file mode 100644 (file)
index 0000000..21365bf
--- /dev/null
@@ -0,0 +1,486 @@
+// © 2018 and later: Unicode, Inc. and others.
+// License & terms of use: http://www.unicode.org/copyright.html
+
+#include "unicode/utypes.h"
+
+#if !UCONFIG_NO_FORMATTING
+
+// Allow implicit conversion from char16_t* to UnicodeString for this file:
+// Helpful in toString methods and elsewhere.
+#define UNISTR_FROM_STRING_EXPLICIT
+
+#include "unicode/numberrangeformatter.h"
+#include "numrange_impl.h"
+#include "patternprops.h"
+#include "uresimp.h"
+#include "util.h"
+
+using namespace icu;
+using namespace icu::number;
+using namespace icu::number::impl;
+
+namespace {
+
+// Helper function for 2-dimensional switch statement
+constexpr int8_t identity2d(UNumberRangeIdentityFallback a, UNumberRangeIdentityResult b) {
+    return static_cast<int8_t>(a) | (static_cast<int8_t>(b) << 4);
+}
+
+
+struct NumberRangeData {
+    SimpleFormatter rangePattern;
+    SimpleFormatter approximatelyPattern;
+};
+
+class NumberRangeDataSink : public ResourceSink {
+  public:
+    NumberRangeDataSink(NumberRangeData& data) : fData(data) {}
+
+    void put(const char* key, ResourceValue& value, UBool /*noFallback*/, UErrorCode& status) U_OVERRIDE {
+        ResourceTable miscTable = value.getTable(status);
+        if (U_FAILURE(status)) { return; }
+        for (int i = 0; miscTable.getKeyAndValue(i, key, value); i++) {
+            if (uprv_strcmp(key, "range") == 0) {
+                if (fData.rangePattern.getArgumentLimit() != 0) {
+                    continue; // have already seen this pattern
+                }
+                fData.rangePattern = {value.getUnicodeString(status), status};
+            } else if (uprv_strcmp(key, "approximately") == 0) {
+                if (fData.approximatelyPattern.getArgumentLimit() != 0) {
+                    continue; // have already seen this pattern
+                }
+                fData.approximatelyPattern = {value.getUnicodeString(status), status};
+            }
+        }
+    }
+
+  private:
+    NumberRangeData& fData;
+};
+
+void getNumberRangeData(const char* localeName, const char* nsName, NumberRangeData& data, UErrorCode& status) {
+    if (U_FAILURE(status)) { return; }
+    LocalUResourceBundlePointer rb(ures_open(NULL, localeName, &status));
+    if (U_FAILURE(status)) { return; }
+    NumberRangeDataSink sink(data);
+
+    CharString dataPath;
+    dataPath.append("NumberElements/", -1, status);
+    dataPath.append(nsName, -1, status);
+    dataPath.append("/miscPatterns", -1, status);
+    ures_getAllItemsWithFallback(rb.getAlias(), dataPath.data(), sink, status);
+    if (U_FAILURE(status)) { return; }
+
+    // TODO: Is it necessary to manually fall back to latn, or does the data sink take care of that?
+
+    if (data.rangePattern.getArgumentLimit() == 0) {
+        // No data!
+        data.rangePattern = {u"{0}–{1}", status};
+    }
+    if (data.approximatelyPattern.getArgumentLimit() == 0) {
+        // No data!
+        data.approximatelyPattern = {u"~{0}", status};
+    }
+}
+
+class PluralRangesDataSink : public ResourceSink {
+  public:
+    PluralRangesDataSink(StandardPluralRanges& output) : fOutput(output) {}
+
+    void put(const char* /*key*/, ResourceValue& value, UBool /*noFallback*/, UErrorCode& status) U_OVERRIDE {
+        ResourceArray entriesArray = value.getArray(status);
+        if (U_FAILURE(status)) { return; }
+        fOutput.setCapacity(entriesArray.getSize());
+        for (int i = 0; entriesArray.getValue(i, value); i++) {
+            ResourceArray pluralFormsArray = value.getArray(status);
+            if (U_FAILURE(status)) { return; }
+            pluralFormsArray.getValue(0, value);
+            StandardPlural::Form first = StandardPlural::fromString(value.getUnicodeString(status), status);
+            if (U_FAILURE(status)) { return; }
+            pluralFormsArray.getValue(1, value);
+            StandardPlural::Form second = StandardPlural::fromString(value.getUnicodeString(status), status);
+            if (U_FAILURE(status)) { return; }
+            pluralFormsArray.getValue(2, value);
+            StandardPlural::Form result = StandardPlural::fromString(value.getUnicodeString(status), status);
+            if (U_FAILURE(status)) { return; }
+            fOutput.addPluralRange(first, second, result);
+        }
+    }
+
+  private:
+    StandardPluralRanges& fOutput;
+};
+
+void getPluralRangesData(const Locale& locale, StandardPluralRanges& output, UErrorCode& status) {
+    if (U_FAILURE(status)) { return; }
+    LocalUResourceBundlePointer rb(ures_openDirect(nullptr, "pluralRanges", &status));
+    if (U_FAILURE(status)) { return; }
+
+    CharString dataPath;
+    dataPath.append("locales/", -1, status);
+    dataPath.append(locale.getLanguage(), -1, status);
+    if (U_FAILURE(status)) { return; }
+    int32_t setLen;
+    // Not all languages are covered: fail gracefully
+    UErrorCode internalStatus = U_ZERO_ERROR;
+    const UChar* set = ures_getStringByKeyWithFallback(rb.getAlias(), dataPath.data(), &setLen, &internalStatus);
+    if (U_FAILURE(internalStatus)) { return; }
+
+    dataPath.clear();
+    dataPath.append("rules/", -1, status);
+    dataPath.appendInvariantChars(set, setLen, status);
+    if (U_FAILURE(status)) { return; }
+    PluralRangesDataSink sink(output);
+    ures_getAllItemsWithFallback(rb.getAlias(), dataPath.data(), sink, status);
+    if (U_FAILURE(status)) { return; }
+}
+
+} // namespace
+
+
+void StandardPluralRanges::initialize(const Locale& locale, UErrorCode& status) {
+    getPluralRangesData(locale, *this, status);
+}
+
+void StandardPluralRanges::addPluralRange(
+        StandardPlural::Form first,
+        StandardPlural::Form second,
+        StandardPlural::Form result) {
+    U_ASSERT(fTriplesLen < fTriples.getCapacity());
+    fTriples[fTriplesLen] = {first, second, result};
+    fTriplesLen++;
+}
+
+void StandardPluralRanges::setCapacity(int32_t length) {
+    if (length > fTriples.getCapacity()) {
+        fTriples.resize(length, 0);
+    }
+}
+
+StandardPlural::Form
+StandardPluralRanges::resolve(StandardPlural::Form first, StandardPlural::Form second) const {
+    for (int32_t i=0; i<fTriplesLen; i++) {
+        const auto& triple = fTriples[i];
+        if (triple.first == first && triple.second == second) {
+            return triple.result;
+        }
+    }
+    // Default fallback
+    return StandardPlural::OTHER;
+}
+
+
+NumberRangeFormatterImpl::NumberRangeFormatterImpl(const RangeMacroProps& macros, UErrorCode& status)
+    : formatterImpl1(macros.formatter1.fMacros, status),
+      formatterImpl2(macros.formatter2.fMacros, status),
+      fSameFormatters(macros.singleFormatter),
+      fCollapse(macros.collapse),
+      fIdentityFallback(macros.identityFallback) {
+
+    // TODO: As of this writing (ICU 63), there is no locale that has different number miscPatterns
+    // based on numbering system.  Therefore, data is loaded only from latn.  If this changes,
+    // this part of the code should be updated to load from the local numbering system.
+    // The numbering system could come from the one specified in the NumberFormatter passed to
+    // numberFormatterBoth() or similar.
+    // See ICU-20144
+
+    NumberRangeData data;
+    getNumberRangeData(macros.locale.getName(), "latn", data, status);
+    if (U_FAILURE(status)) { return; }
+    fRangeFormatter = data.rangePattern;
+    fApproximatelyModifier = {data.approximatelyPattern, UNUM_FIELD_COUNT, false};
+
+    // TODO: Get locale from PluralRules instead?
+    fPluralRanges.initialize(macros.locale, status);
+    if (U_FAILURE(status)) { return; }
+}
+
+void NumberRangeFormatterImpl::format(UFormattedNumberRangeData& data, bool equalBeforeRounding, UErrorCode& status) const {
+    if (U_FAILURE(status)) {
+        return;
+    }
+
+    MicroProps micros1;
+    MicroProps micros2;
+    formatterImpl1.preProcess(data.quantity1, micros1, status);
+    if (fSameFormatters) {
+        formatterImpl1.preProcess(data.quantity2, micros2, status);
+    } else {
+        formatterImpl2.preProcess(data.quantity2, micros2, status);
+    }
+    if (U_FAILURE(status)) {
+        return;
+    }
+
+    // If any of the affixes are different, an identity is not possible
+    // and we must use formatRange().
+    // TODO: Write this as MicroProps operator==() ?
+    // TODO: Avoid the redundancy of these equality operations with the
+    // ones in formatRange?
+    if (!micros1.modInner->semanticallyEquivalent(*micros2.modInner)
+            || !micros1.modMiddle->semanticallyEquivalent(*micros2.modMiddle)
+            || !micros1.modOuter->semanticallyEquivalent(*micros2.modOuter)) {
+        formatRange(data, micros1, micros2, status);
+        data.identityResult = UNUM_IDENTITY_RESULT_NOT_EQUAL;
+        return;
+    }
+
+    // Check for identity
+    if (equalBeforeRounding) {
+        data.identityResult = UNUM_IDENTITY_RESULT_EQUAL_BEFORE_ROUNDING;
+    } else if (data.quantity1 == data.quantity2) {
+        data.identityResult = UNUM_IDENTITY_RESULT_EQUAL_AFTER_ROUNDING;
+    } else {
+        data.identityResult = UNUM_IDENTITY_RESULT_NOT_EQUAL;
+    }
+
+    switch (identity2d(fIdentityFallback, data.identityResult)) {
+        case identity2d(UNUM_IDENTITY_FALLBACK_RANGE,
+                        UNUM_IDENTITY_RESULT_NOT_EQUAL):
+        case identity2d(UNUM_IDENTITY_FALLBACK_RANGE,
+                        UNUM_IDENTITY_RESULT_EQUAL_AFTER_ROUNDING):
+        case identity2d(UNUM_IDENTITY_FALLBACK_RANGE,
+                        UNUM_IDENTITY_RESULT_EQUAL_BEFORE_ROUNDING):
+        case identity2d(UNUM_IDENTITY_FALLBACK_APPROXIMATELY,
+                        UNUM_IDENTITY_RESULT_NOT_EQUAL):
+        case identity2d(UNUM_IDENTITY_FALLBACK_APPROXIMATELY_OR_SINGLE_VALUE,
+                        UNUM_IDENTITY_RESULT_NOT_EQUAL):
+        case identity2d(UNUM_IDENTITY_FALLBACK_SINGLE_VALUE,
+                        UNUM_IDENTITY_RESULT_NOT_EQUAL):
+            formatRange(data, micros1, micros2, status);
+            break;
+
+        case identity2d(UNUM_IDENTITY_FALLBACK_APPROXIMATELY,
+                        UNUM_IDENTITY_RESULT_EQUAL_AFTER_ROUNDING):
+        case identity2d(UNUM_IDENTITY_FALLBACK_APPROXIMATELY,
+                        UNUM_IDENTITY_RESULT_EQUAL_BEFORE_ROUNDING):
+        case identity2d(UNUM_IDENTITY_FALLBACK_APPROXIMATELY_OR_SINGLE_VALUE,
+                        UNUM_IDENTITY_RESULT_EQUAL_AFTER_ROUNDING):
+            formatApproximately(data, micros1, micros2, status);
+            break;
+
+        case identity2d(UNUM_IDENTITY_FALLBACK_APPROXIMATELY_OR_SINGLE_VALUE,
+                        UNUM_IDENTITY_RESULT_EQUAL_BEFORE_ROUNDING):
+        case identity2d(UNUM_IDENTITY_FALLBACK_SINGLE_VALUE,
+                        UNUM_IDENTITY_RESULT_EQUAL_AFTER_ROUNDING):
+        case identity2d(UNUM_IDENTITY_FALLBACK_SINGLE_VALUE,
+                        UNUM_IDENTITY_RESULT_EQUAL_BEFORE_ROUNDING):
+            formatSingleValue(data, micros1, micros2, status);
+            break;
+
+        default:
+            U_ASSERT(false);
+            break;
+    }
+}
+
+
+void NumberRangeFormatterImpl::formatSingleValue(UFormattedNumberRangeData& data,
+                                                 MicroProps& micros1, MicroProps& micros2,
+                                                 UErrorCode& status) const {
+    if (U_FAILURE(status)) { return; }
+    if (fSameFormatters) {
+        int32_t length = NumberFormatterImpl::writeNumber(micros1, data.quantity1, data.string, 0, status);
+        NumberFormatterImpl::writeAffixes(micros1, data.string, 0, length, status);
+    } else {
+        formatRange(data, micros1, micros2, status);
+    }
+}
+
+
+void NumberRangeFormatterImpl::formatApproximately (UFormattedNumberRangeData& data,
+                                                    MicroProps& micros1, MicroProps& micros2,
+                                                    UErrorCode& status) const {
+    if (U_FAILURE(status)) { return; }
+    if (fSameFormatters) {
+        int32_t length = NumberFormatterImpl::writeNumber(micros1, data.quantity1, data.string, 0, status);
+        // HEURISTIC: Desired modifier order: inner, middle, approximately, outer.
+        length += micros1.modInner->apply(data.string, 0, length, status);
+        length += micros1.modMiddle->apply(data.string, 0, length, status);
+        length += fApproximatelyModifier.apply(data.string, 0, length, status);
+        micros1.modOuter->apply(data.string, 0, length, status);
+    } else {
+        formatRange(data, micros1, micros2, status);
+    }
+}
+
+
+void NumberRangeFormatterImpl::formatRange(UFormattedNumberRangeData& data,
+                                           MicroProps& micros1, MicroProps& micros2,
+                                           UErrorCode& status) const {
+    if (U_FAILURE(status)) { return; }
+
+    // modInner is always notation (scientific); collapsable in ALL.
+    // modOuter is always units; collapsable in ALL, AUTO, and UNIT.
+    // modMiddle could be either; collapsable in ALL and sometimes AUTO and UNIT.
+    // Never collapse an outer mod but not an inner mod.
+    bool collapseOuter, collapseMiddle, collapseInner;
+    switch (fCollapse) {
+        case UNUM_RANGE_COLLAPSE_ALL:
+        case UNUM_RANGE_COLLAPSE_AUTO:
+        case UNUM_RANGE_COLLAPSE_UNIT:
+        {
+            // OUTER MODIFIER
+            collapseOuter = micros1.modOuter->semanticallyEquivalent(*micros2.modOuter);
+
+            if (!collapseOuter) {
+                // Never collapse inner mods if outer mods are not collapsable
+                collapseMiddle = false;
+                collapseInner = false;
+                break;
+            }
+
+            // MIDDLE MODIFIER
+            collapseMiddle = micros1.modMiddle->semanticallyEquivalent(*micros2.modMiddle);
+
+            if (!collapseMiddle) {
+                // Never collapse inner mods if outer mods are not collapsable
+                collapseInner = false;
+                break;
+            }
+
+            // MIDDLE MODIFIER HEURISTICS
+            // (could disable collapsing of the middle modifier)
+            // The modifiers are equal by this point, so we can look at just one of them.
+            const Modifier* mm = micros1.modMiddle;
+            if (fCollapse == UNUM_RANGE_COLLAPSE_UNIT) {
+                // Only collapse if the modifier is a unit.
+                // TODO: Make a better way to check for a unit?
+                // TODO: Handle case where the modifier has both notation and unit (compact currency)?
+                if (!mm->containsField(UNUM_CURRENCY_FIELD) && !mm->containsField(UNUM_PERCENT_FIELD)) {
+                    collapseMiddle = false;
+                }
+            } else if (fCollapse == UNUM_RANGE_COLLAPSE_AUTO) {
+                // Heuristic as of ICU 63: collapse only if the modifier is more than one code point.
+                if (mm->getCodePointCount() <= 1) {
+                    collapseMiddle = false;
+                }
+            }
+
+            if (!collapseMiddle || fCollapse != UNUM_RANGE_COLLAPSE_ALL) {
+                collapseInner = false;
+                break;
+            }
+
+            // INNER MODIFIER
+            collapseInner = micros1.modInner->semanticallyEquivalent(*micros2.modInner);
+
+            // All done checking for collapsability.
+            break;
+        }
+
+        default:
+            collapseOuter = false;
+            collapseMiddle = false;
+            collapseInner = false;
+            break;
+    }
+
+    NumberStringBuilder& string = data.string;
+    int32_t lengthPrefix = 0;
+    int32_t length1 = 0;
+    int32_t lengthInfix = 0;
+    int32_t length2 = 0;
+    int32_t lengthSuffix = 0;
+
+    // Use #define so that these are evaluated at the call site.
+    #define UPRV_INDEX_0 (lengthPrefix)
+    #define UPRV_INDEX_1 (lengthPrefix + length1)
+    #define UPRV_INDEX_2 (lengthPrefix + length1 + lengthInfix)
+    #define UPRV_INDEX_3 (lengthPrefix + length1 + lengthInfix + length2)
+
+    int32_t lengthRange = SimpleModifier::formatTwoArgPattern(
+        fRangeFormatter,
+        string,
+        0,
+        &lengthPrefix,
+        &lengthSuffix,
+        UNUM_FIELD_COUNT,
+        status);
+    if (U_FAILURE(status)) { return; }
+    lengthInfix = lengthRange - lengthPrefix - lengthSuffix;
+    U_ASSERT(lengthInfix > 0);
+
+    // SPACING HEURISTIC
+    // Add spacing unless all modifiers are collapsed.
+    // TODO: add API to control this?
+    // TODO: Use a data-driven heuristic like currency spacing?
+    // TODO: Use Unicode [:whitespace:] instead of PatternProps whitespace? (consider speed implications)
+    {
+        bool repeatInner = !collapseInner && micros1.modInner->getCodePointCount() > 0;
+        bool repeatMiddle = !collapseMiddle && micros1.modMiddle->getCodePointCount() > 0;
+        bool repeatOuter = !collapseOuter && micros1.modOuter->getCodePointCount() > 0;
+        if (repeatInner || repeatMiddle || repeatOuter) {
+            // Add spacing if there is not already spacing
+            if (!PatternProps::isWhiteSpace(string.charAt(UPRV_INDEX_1))) {
+                lengthInfix += string.insertCodePoint(UPRV_INDEX_1, u'\u0020', UNUM_FIELD_COUNT, status);
+            }
+            if (!PatternProps::isWhiteSpace(string.charAt(UPRV_INDEX_2 - 1))) {
+                lengthInfix += string.insertCodePoint(UPRV_INDEX_2, u'\u0020', UNUM_FIELD_COUNT, status);
+            }
+        }
+    }
+
+    length1 += NumberFormatterImpl::writeNumber(micros1, data.quantity1, string, UPRV_INDEX_0, status);
+    length2 += NumberFormatterImpl::writeNumber(micros2, data.quantity2, string, UPRV_INDEX_2, status);
+
+    // TODO: Support padding?
+
+    if (collapseInner) {
+        // Note: this is actually a mix of prefix and suffix, but adding to infix length works
+        const Modifier& mod = resolveModifierPlurals(*micros1.modInner, *micros2.modInner);
+        lengthInfix += mod.apply(string, UPRV_INDEX_0, UPRV_INDEX_3, status);
+    } else {
+        length1 += micros1.modInner->apply(string, UPRV_INDEX_0, UPRV_INDEX_1, status);
+        length2 += micros2.modInner->apply(string, UPRV_INDEX_2, UPRV_INDEX_3, status);
+    }
+
+    if (collapseMiddle) {
+        // Note: this is actually a mix of prefix and suffix, but adding to infix length works
+        const Modifier& mod = resolveModifierPlurals(*micros1.modMiddle, *micros2.modMiddle);
+        lengthInfix += mod.apply(string, UPRV_INDEX_0, UPRV_INDEX_3, status);
+    } else {
+        length1 += micros1.modMiddle->apply(string, UPRV_INDEX_0, UPRV_INDEX_1, status);
+        length2 += micros2.modMiddle->apply(string, UPRV_INDEX_2, UPRV_INDEX_3, status);
+    }
+
+    if (collapseOuter) {
+        // Note: this is actually a mix of prefix and suffix, but adding to infix length works
+        const Modifier& mod = resolveModifierPlurals(*micros1.modOuter, *micros2.modOuter);
+        lengthInfix += mod.apply(string, UPRV_INDEX_0, UPRV_INDEX_3, status);
+    } else {
+        length1 += micros1.modOuter->apply(string, UPRV_INDEX_0, UPRV_INDEX_1, status);
+        length2 += micros2.modOuter->apply(string, UPRV_INDEX_2, UPRV_INDEX_3, status);
+    }
+}
+
+
+const Modifier&
+NumberRangeFormatterImpl::resolveModifierPlurals(const Modifier& first, const Modifier& second) const {
+    Modifier::Parameters parameters;
+    first.getParameters(parameters);
+    if (parameters.obj == nullptr) {
+        // No plural form; return a fallback (e.g., the first)
+        return first;
+    }
+    StandardPlural::Form firstPlural = parameters.plural;
+
+    second.getParameters(parameters);
+    if (parameters.obj == nullptr) {
+        // No plural form; return a fallback (e.g., the first)
+        return first;
+    }
+    StandardPlural::Form secondPlural = parameters.plural;
+
+    // Get the required plural form from data
+    StandardPlural::Form resultPlural = fPluralRanges.resolve(firstPlural, secondPlural);
+
+    // Get and return the new Modifier
+    const Modifier* mod = parameters.obj->getModifier(parameters.signum, resultPlural);
+    U_ASSERT(mod != nullptr);
+    return *mod;
+}
+
+
+
+#endif /* #if !UCONFIG_NO_FORMATTING */
diff --git a/source/i18n/numrange_impl.h b/source/i18n/numrange_impl.h
new file mode 100644 (file)
index 0000000..787fc65
--- /dev/null
@@ -0,0 +1,114 @@
+// © 2018 and later: Unicode, Inc. and others.
+// License & terms of use: http://www.unicode.org/copyright.html
+
+#include "unicode/utypes.h"
+
+#if !UCONFIG_NO_FORMATTING
+#ifndef __SOURCE_NUMRANGE_TYPES_H__
+#define __SOURCE_NUMRANGE_TYPES_H__
+
+#include "unicode/numberformatter.h"
+#include "unicode/numberrangeformatter.h"
+#include "unicode/simpleformatter.h"
+#include "number_types.h"
+#include "number_decimalquantity.h"
+#include "number_formatimpl.h"
+#include "number_stringbuilder.h"
+
+U_NAMESPACE_BEGIN namespace number {
+namespace impl {
+
+
+/**
+ * Class similar to UFormattedNumberData.
+ *
+ * Has incomplete magic number logic that will need to be finished
+ * if this is to be exposed as C API in the future.
+ */
+struct UFormattedNumberRangeData : public UMemory {
+    // The magic number to identify incoming objects.
+    // Reads in ASCII as "FDR" (FormatteDnumberRange with room at the end)
+    static constexpr int32_t kMagic = 0x46445200;
+
+    // Data members:
+    int32_t fMagic = kMagic;
+    DecimalQuantity quantity1;
+    DecimalQuantity quantity2;
+    NumberStringBuilder string;
+    UNumberRangeIdentityResult identityResult = UNUM_IDENTITY_RESULT_COUNT;
+
+    // No C conversion methods (no C API yet)
+};
+
+
+class StandardPluralRanges : public UMemory {
+  public:
+    void initialize(const Locale& locale, UErrorCode& status);
+    StandardPlural::Form resolve(StandardPlural::Form first, StandardPlural::Form second) const;
+
+    /** Used for data loading. */
+    void addPluralRange(
+        StandardPlural::Form first,
+        StandardPlural::Form second,
+        StandardPlural::Form result);
+
+    /** Used for data loading. */
+    void setCapacity(int32_t length);
+
+  private:
+    struct StandardPluralRangeTriple {
+        StandardPlural::Form first;
+        StandardPlural::Form second;
+        StandardPlural::Form result;
+    };
+
+    // TODO: An array is simple here, but it results in linear lookup time.
+    // Certain locales have 20-30 entries in this list.
+    // Consider changing to a smarter data structure.
+    typedef MaybeStackArray<StandardPluralRangeTriple, 3> PluralRangeTriples;
+    PluralRangeTriples fTriples;
+    int32_t fTriplesLen = 0;
+};
+
+
+class NumberRangeFormatterImpl : public UMemory {
+  public:
+    NumberRangeFormatterImpl(const RangeMacroProps& macros, UErrorCode& status);
+
+    void format(UFormattedNumberRangeData& data, bool equalBeforeRounding, UErrorCode& status) const;
+
+  private:
+    NumberFormatterImpl formatterImpl1;
+    NumberFormatterImpl formatterImpl2;
+    bool fSameFormatters;
+
+    UNumberRangeCollapse fCollapse;
+    UNumberRangeIdentityFallback fIdentityFallback;
+
+    SimpleFormatter fRangeFormatter;
+    SimpleModifier fApproximatelyModifier;
+
+    StandardPluralRanges fPluralRanges;
+
+    void formatSingleValue(UFormattedNumberRangeData& data,
+                           MicroProps& micros1, MicroProps& micros2,
+                           UErrorCode& status) const;
+
+    void formatApproximately(UFormattedNumberRangeData& data,
+                             MicroProps& micros1, MicroProps& micros2,
+                             UErrorCode& status) const;
+
+    void formatRange(UFormattedNumberRangeData& data,
+                     MicroProps& micros1, MicroProps& micros2,
+                     UErrorCode& status) const;
+
+    const Modifier& resolveModifierPlurals(const Modifier& first, const Modifier& second) const;
+};
+
+
+} // namespace impl
+} // namespace number
+U_NAMESPACE_END
+
+#endif //__SOURCE_NUMRANGE_TYPES_H__
+#endif /* #if !UCONFIG_NO_FORMATTING */
index 893ba53..162c50a 100644 (file)
@@ -79,43 +79,45 @@ NumberingSystem* U_EXPORT2
 NumberingSystem::createInstance(int32_t radix_in, UBool isAlgorithmic_in, const UnicodeString & desc_in, UErrorCode &status) {
 
     if (U_FAILURE(status)) {
-        return NULL;
+        return nullptr;
     }
 
     if ( radix_in < 2 ) {
         status = U_ILLEGAL_ARGUMENT_ERROR;
-        return NULL;
+        return nullptr;
     }
 
     if ( !isAlgorithmic_in ) {
        if ( desc_in.countChar32() != radix_in ) {
            status = U_ILLEGAL_ARGUMENT_ERROR;
-           return NULL;
+           return nullptr;
        }
     }
 
-    NumberingSystem *ns = new NumberingSystem();
+    LocalPointer<NumberingSystem> ns(new NumberingSystem(), status);
+    if (U_FAILURE(status)) {
+        return nullptr;
+    }
 
     ns->setRadix(radix_in);
     ns->setDesc(desc_in);
     ns->setAlgorithmic(isAlgorithmic_in);
-    ns->setName(NULL);
-    return ns;
-    
-}
+    ns->setName(nullptr);
 
+    return ns.orphan();
+}
 
 NumberingSystem* U_EXPORT2
 NumberingSystem::createInstance(const Locale & inLocale, UErrorCode& status) {
 
     if (U_FAILURE(status)) {
-        return NULL;
+        return nullptr;
     }
 
     UBool nsResolved = TRUE;
     UBool usingFallback = FALSE;
     char buffer[ULOC_KEYWORDS_CAPACITY];
-    int32_t count = inLocale.getKeywordValue("numbers",buffer, sizeof(buffer),status);
+    int32_t count = inLocale.getKeywordValue("numbers", buffer, sizeof(buffer), status);
     if (U_FAILURE(status) || status == U_STRING_NOT_TERMINATED_WARNING) {
         // the "numbers" keyword exceeds ULOC_KEYWORDS_CAPACITY; ignore and use default.
         count = 0;
@@ -129,20 +131,30 @@ NumberingSystem::createInstance(const Locale & inLocale, UErrorCode& status) {
             nsResolved = FALSE;
         }
     } else {
-        uprv_strcpy(buffer,gDefault);
+        uprv_strcpy(buffer, gDefault);
         nsResolved = FALSE;
     }
 
     if (!nsResolved) { // Resolve the numbering system ( default, native, traditional or finance ) into a "real" numbering system
         UErrorCode localStatus = U_ZERO_ERROR;
-        UResourceBundle *resource = ures_open(NULL, inLocale.getName(), &localStatus);
-        UResourceBundle *numberElementsRes = ures_getByKey(resource,gNumberElements,NULL,&localStatus);
+        LocalUResourceBundlePointer resource(ures_open(nullptr, inLocale.getName(), &localStatus));
+        LocalUResourceBundlePointer numberElementsRes(ures_getByKey(resource.getAlias(), gNumberElements, nullptr, &localStatus));
+        // Don't stomp on the catastrophic failure of OOM.
+        if (localStatus == U_MEMORY_ALLOCATION_ERROR) {
+            status = U_MEMORY_ALLOCATION_ERROR;
+            return nullptr;
+        }
         while (!nsResolved) {
             localStatus = U_ZERO_ERROR;
             count = 0;
-            const UChar *nsName = ures_getStringByKeyWithFallback(numberElementsRes, buffer, &count, &localStatus);
+            const UChar *nsName = ures_getStringByKeyWithFallback(numberElementsRes.getAlias(), buffer, &count, &localStatus);
+            // Don't stomp on the catastrophic failure of OOM.
+            if (localStatus == U_MEMORY_ALLOCATION_ERROR) {
+                status = U_MEMORY_ALLOCATION_ERROR;
+                return nullptr;
+            }
             if ( count > 0 && count < ULOC_KEYWORDS_CAPACITY ) { // numbering system found
-                u_UCharsToChars(nsName,buffer,count); 
+                u_UCharsToChars(nsName, buffer, count);
                 buffer[count] = '\0'; // Make sure it is null terminated.
                 nsResolved = TRUE;
             } 
@@ -158,16 +170,17 @@ NumberingSystem::createInstance(const Locale & inLocale, UErrorCode& status) {
                 }
             }
         }
-        ures_close(numberElementsRes);
-        ures_close(resource);
     }
 
     if (usingFallback) {
         status = U_USING_FALLBACK_WARNING;
         NumberingSystem *ns = new NumberingSystem();
+        if (ns == nullptr) {
+            status = U_MEMORY_ALLOCATION_ERROR;
+        }
         return ns;
     } else {
-        return NumberingSystem::createInstanceByName(buffer,status);
+        return NumberingSystem::createInstanceByName(buffer, status);
     }
  }
 
@@ -178,36 +191,37 @@ NumberingSystem::createInstance(UErrorCode& status) {
 
 NumberingSystem* U_EXPORT2
 NumberingSystem::createInstanceByName(const char *name, UErrorCode& status) {
-    UResourceBundle *numberingSystemsInfo = NULL;
-    UResourceBundle *nsTop, *nsCurrent;
     int32_t radix = 10;
     int32_t algorithmic = 0;
 
-    numberingSystemsInfo = ures_openDirect(NULL,gNumberingSystems, &status);
-    nsCurrent = ures_getByKey(numberingSystemsInfo,gNumberingSystems,NULL,&status);
-    nsTop = ures_getByKey(nsCurrent,name,NULL,&status);
-    UnicodeString nsd = ures_getUnicodeStringByKey(nsTop,gDesc,&status);
+    LocalUResourceBundlePointer numberingSystemsInfo(ures_openDirect(nullptr, gNumberingSystems, &status));
+    LocalUResourceBundlePointer nsCurrent(ures_getByKey(numberingSystemsInfo.getAlias(), gNumberingSystems, nullptr, &status));
+    LocalUResourceBundlePointer nsTop(ures_getByKey(nsCurrent.getAlias(), name, nullptr, &status));
 
-    ures_getByKey(nsTop,gRadix,nsCurrent,&status);
-    radix = ures_getInt(nsCurrent,&status);
+    UnicodeString nsd = ures_getUnicodeStringByKey(nsTop.getAlias(), gDesc, &status);
 
-    ures_getByKey(nsTop,gAlgorithmic,nsCurrent,&status);
-    algorithmic = ures_getInt(nsCurrent,&status);
+    ures_getByKey(nsTop.getAlias(), gRadix, nsCurrent.getAlias(), &status);
+    radix = ures_getInt(nsCurrent.getAlias(), &status);
 
-    UBool isAlgorithmic = ( algorithmic == 1 );
+    ures_getByKey(nsTop.getAlias(), gAlgorithmic, nsCurrent.getAlias(), &status);
+    algorithmic = ures_getInt(nsCurrent.getAlias(), &status);
 
-    ures_close(nsCurrent);
-    ures_close(nsTop);
-    ures_close(numberingSystemsInfo);
+    UBool isAlgorithmic = ( algorithmic == 1 );
 
     if (U_FAILURE(status)) {
-        status = U_UNSUPPORTED_ERROR;
-        return NULL;
+        // Don't stomp on the catastrophic failure of OOM.
+        if (status != U_MEMORY_ALLOCATION_ERROR) {
+            status = U_UNSUPPORTED_ERROR;
+        }
+        return nullptr;
     }
 
-    NumberingSystem* ns = NumberingSystem::createInstance(radix,isAlgorithmic,nsd,status);
+    LocalPointer<NumberingSystem> ns(NumberingSystem::createInstance(radix, isAlgorithmic, nsd, status), status);
+    if (U_FAILURE(status)) {
+        return nullptr;
+    }
     ns->setName(name);
-    return ns;
+    return ns.orphan();
 }
 
     /**
@@ -241,11 +255,11 @@ void NumberingSystem::setDesc(const UnicodeString &d) {
     desc.setTo(d);
 }
 void NumberingSystem::setName(const char *n) {
-    if ( n == NULL ) {
+    if ( n == nullptr ) {
         name[0] = (char) 0;
     } else {
         uprv_strncpy(name,n,NUMSYS_NAME_CAPACITY);
-        name[NUMSYS_NAME_CAPACITY] = (char)0; // Make sure it is null terminated.
+        name[NUMSYS_NAME_CAPACITY] = '\0'; // Make sure it is null terminated.
     }
 }
 UBool NumberingSystem::isAlgorithmic() const {
@@ -254,43 +268,57 @@ UBool NumberingSystem::isAlgorithmic() const {
 
 StringEnumeration* NumberingSystem::getAvailableNames(UErrorCode &status) {
     // TODO(ticket #11908): Init-once static cache, with u_cleanup() callback.
-    static StringEnumeration* availableNames = NULL;
+    static StringEnumeration* availableNames = nullptr;
 
     if (U_FAILURE(status)) {
-        return NULL;
+        return nullptr;
     }
 
-    if ( availableNames == NULL ) {
+    if ( availableNames == nullptr ) {
         // TODO: Simple array of UnicodeString objects, based on length of table resource?
-        LocalPointer<UVector> numsysNames(new UVector(uprv_deleteUObject, NULL, status), status);
+        LocalPointer<UVector> numsysNames(new UVector(uprv_deleteUObject, nullptr, status), status);
         if (U_FAILURE(status)) {
-            return NULL;
+            return nullptr;
         }
         
         UErrorCode rbstatus = U_ZERO_ERROR;
-        UResourceBundle *numberingSystemsInfo = ures_openDirect(NULL, "numberingSystems", &rbstatus);
-        numberingSystemsInfo = ures_getByKey(numberingSystemsInfo,"numberingSystems",numberingSystemsInfo,&rbstatus);
-        if(U_FAILURE(rbstatus)) {
-            status = U_MISSING_RESOURCE_ERROR;
+        UResourceBundle *numberingSystemsInfo = ures_openDirect(nullptr, "numberingSystems", &rbstatus);
+        numberingSystemsInfo = ures_getByKey(numberingSystemsInfo, "numberingSystems", numberingSystemsInfo, &rbstatus);
+        if (U_FAILURE(rbstatus)) {
+            // Don't stomp on the catastrophic failure of OOM.
+            if (rbstatus == U_MEMORY_ALLOCATION_ERROR) {
+                status = rbstatus;
+            } else {
+                status = U_MISSING_RESOURCE_ERROR;
+            }
             ures_close(numberingSystemsInfo);
-            return NULL;
+            return nullptr;
         }
 
-        while ( ures_hasNext(numberingSystemsInfo) ) {
-            UResourceBundle *nsCurrent = ures_getNextResource(numberingSystemsInfo,NULL,&rbstatus);
-            const char *nsName = ures_getKey(nsCurrent);
-            numsysNames->addElement(new UnicodeString(nsName, -1, US_INV),status);
-            ures_close(nsCurrent);
+        while ( ures_hasNext(numberingSystemsInfo) && U_SUCCESS(status) ) {
+            LocalUResourceBundlePointer nsCurrent(ures_getNextResource(numberingSystemsInfo, nullptr, &rbstatus));
+            if (rbstatus == U_MEMORY_ALLOCATION_ERROR) {
+                status = rbstatus; // we want to report OOM failure back to the caller.
+                break;
+            }
+            const char *nsName = ures_getKey(nsCurrent.getAlias());
+            LocalPointer<UnicodeString> newElem(new UnicodeString(nsName, -1, US_INV), status);
+            if (U_SUCCESS(status)) {
+                numsysNames->addElement(newElem.getAlias(), status);
+                if (U_SUCCESS(status)) {
+                    newElem.orphan(); // on success, the numsysNames vector owns newElem.
+                }
+            }
         }
 
         ures_close(numberingSystemsInfo);
         if (U_FAILURE(status)) {
-            return NULL;
+            return nullptr;
         }
         availableNames = new NumsysNameEnumeration(numsysNames.getAlias(), status);
-        if (availableNames == NULL) {
+        if (availableNames == nullptr) {
             status = U_MEMORY_ALLOCATION_ERROR;
-            return NULL;
+            return nullptr;
         }
         numsysNames.orphan();  // The names got adopted.
     }
@@ -305,10 +333,10 @@ NumsysNameEnumeration::NumsysNameEnumeration(UVector *numsysNames, UErrorCode& /
 
 const UnicodeString*
 NumsysNameEnumeration::snext(UErrorCode& status) {
-    if (U_SUCCESS(status) && pos < fNumsysNames->size()) {
+    if (U_SUCCESS(status) && (fNumsysNames != nullptr) && (pos < fNumsysNames->size())) {
         return (const UnicodeString*)fNumsysNames->elementAt(pos++);
     }
-    return NULL;
+    return nullptr;
 }
 
 void
@@ -318,7 +346,7 @@ NumsysNameEnumeration::reset(UErrorCode& /*status*/) {
 
 int32_t
 NumsysNameEnumeration::count(UErrorCode& /*status*/) const {
-    return (fNumsysNames==NULL) ? 0 : fNumsysNames->size();
+    return (fNumsysNames==nullptr) ? 0 : fNumsysNames->size();
 }
 
 NumsysNameEnumeration::~NumsysNameEnumeration() {
index 3e5cc33..b798286 100644 (file)
@@ -37,7 +37,7 @@ public:
     virtual int32_t count(UErrorCode& status) const;
 private:
     int32_t pos;
-    UVector *fNumsysNames;
+    UVector *fNumsysNames = nullptr;
 };
 
 U_NAMESPACE_END
index 00a59d1..8c68d8b 100644 (file)
@@ -140,7 +140,7 @@ OlsonTimeZone::OlsonTimeZone(const UResourceBundle* top,
         // Pre-32bit second transitions
         ures_getByKey(res, kTRANSPRE32, &r, &ec);
         transitionTimesPre32 = ures_getIntVector(&r, &len, &ec);
-        transitionCountPre32 = len >> 1;
+        transitionCountPre32 = static_cast<int16_t>(len >> 1);
         if (ec == U_MISSING_RESOURCE_ERROR) {
             // No pre-32bit transitions
             transitionTimesPre32 = NULL;
@@ -153,7 +153,7 @@ OlsonTimeZone::OlsonTimeZone(const UResourceBundle* top,
         // 32bit second transitions
         ures_getByKey(res, kTRANS, &r, &ec);
         transitionTimes32 = ures_getIntVector(&r, &len, &ec);
-        transitionCount32 = len;
+        transitionCount32 = static_cast<int16_t>(len);
         if (ec == U_MISSING_RESOURCE_ERROR) {
             // No 32bit transitions
             transitionTimes32 = NULL;
@@ -166,7 +166,7 @@ OlsonTimeZone::OlsonTimeZone(const UResourceBundle* top,
         // Post-32bit second transitions
         ures_getByKey(res, kTRANSPOST32, &r, &ec);
         transitionTimesPost32 = ures_getIntVector(&r, &len, &ec);
-        transitionCountPost32 = len >> 1;
+        transitionCountPost32 = static_cast<int16_t>(len >> 1);
         if (ec == U_MISSING_RESOURCE_ERROR) {
             // No pre-32bit transitions
             transitionTimesPost32 = NULL;
index aedb924..ba5450c 100644 (file)
@@ -65,13 +65,15 @@ UOBJECT_DEFINE_RTTI_IMPLEMENTATION(PluralKeywordEnumeration)
 
 PluralRules::PluralRules(UErrorCode& /*status*/)
 :   UObject(),
-    mRules(NULL)
+    mRules(nullptr),
+    mInternalStatus(U_ZERO_ERROR)
 {
 }
 
 PluralRules::PluralRules(const PluralRules& other)
 : UObject(other),
-    mRules(NULL)
+    mRules(nullptr),
+    mInternalStatus(U_ZERO_ERROR)
 {
     *this=other;
 }
@@ -86,54 +88,67 @@ SharedPluralRules::~SharedPluralRules() {
 
 PluralRules*
 PluralRules::clone() const {
-    return new PluralRules(*this);
+    PluralRules* newObj = new PluralRules(*this);
+    // Since clone doesn't have a 'status' parameter, the best we can do is return nullptr if
+    // the newly created object was not fully constructed properly (an error occurred).
+    if (newObj != nullptr && U_FAILURE(newObj->mInternalStatus)) {
+        delete newObj;
+        newObj = nullptr;
+    }
+    return newObj;
 }
 
 PluralRules&
 PluralRules::operator=(const PluralRules& other) {
     if (this != &other) {
         delete mRules;
-        if (other.mRules==NULL) {
-            mRules = NULL;
+        mRules = nullptr;
+        mInternalStatus = other.mInternalStatus;
+        if (U_FAILURE(mInternalStatus)) {
+            // bail out early if the object we were copying from was already 'invalid'.
+            return *this;
         }
-        else {
+        if (other.mRules != nullptr) {
             mRules = new RuleChain(*other.mRules);
+            if (mRules == nullptr) {
+                mInternalStatus = U_MEMORY_ALLOCATION_ERROR;
+            }
+            else if (U_FAILURE(mRules->fInternalStatus)) {
+                // If the RuleChain wasn't fully copied, then set our status to failure as well.
+                mInternalStatus = mRules->fInternalStatus;
+            }
         }
     }
-
     return *this;
 }
 
 StringEnumeration* PluralRules::getAvailableLocales(UErrorCode &status) {
-    StringEnumeration *result = new PluralAvailableLocalesEnumeration(status);
-    if (result == NULL && U_SUCCESS(status)) {
-        status = U_MEMORY_ALLOCATION_ERROR;
+    if (U_FAILURE(status)) {
+        return nullptr;
     }
+    LocalPointer<StringEnumeration> result(new PluralAvailableLocalesEnumeration(status), status);
     if (U_FAILURE(status)) {
-        delete result;
-        result = NULL;
+        return nullptr;
     }
-    return result;
+    return result.orphan();
 }
 
 
 PluralRules* U_EXPORT2
 PluralRules::createRules(const UnicodeString& description, UErrorCode& status) {
     if (U_FAILURE(status)) {
-        return NULL;
+        return nullptr;
     }
-
     PluralRuleParser parser;
-    PluralRules *newRules = new PluralRules(status);
-    if (U_SUCCESS(status) && newRules == NULL) {
-        status = U_MEMORY_ALLOCATION_ERROR;
+    LocalPointer<PluralRules> newRules(new PluralRules(status), status);
+    if (U_FAILURE(status)) {
+        return nullptr;
     }
-    parser.parse(description, newRules, status);
+    parser.parse(description, newRules.getAlias(), status);
     if (U_FAILURE(status)) {
-        delete newRules;
-        newRules = NULL;
+        newRules.adoptInstead(nullptr);
     }
-    return newRules;
+    return newRules.orphan();
 }
 
 
@@ -149,19 +164,17 @@ template<> U_I18N_API
 const SharedPluralRules *LocaleCacheKey<SharedPluralRules>::createObject(
         const void * /*unused*/, UErrorCode &status) const {
     const char *localeId = fLoc.getName();
-    PluralRules *pr = PluralRules::internalForLocale(
-            localeId, UPLURAL_TYPE_CARDINAL, status);
+    LocalPointer<PluralRules> pr(PluralRules::internalForLocale(localeId, UPLURAL_TYPE_CARDINAL, status), status);
     if (U_FAILURE(status)) {
-        return NULL;
+        return nullptr;
     }
-    SharedPluralRules *result = new SharedPluralRules(pr);
-    if (result == NULL) {
-        status = U_MEMORY_ALLOCATION_ERROR;
-        delete pr;
-        return NULL;
+    LocalPointer<SharedPluralRules> result(new SharedPluralRules(pr.getAlias()), status);
+    if (U_FAILURE(status)) {
+        return nullptr;
     }
+    pr.orphan(); // result was successfully created so it nows pr.
     result->addRef();
-    return result;
+    return result.orphan();
 }
 
 /* end plural rules cache */
@@ -171,13 +184,13 @@ const SharedPluralRules* U_EXPORT2
 PluralRules::createSharedInstance(
         const Locale& locale, UPluralType type, UErrorCode& status) {
     if (U_FAILURE(status)) {
-        return NULL;
+        return nullptr;
     }
     if (type != UPLURAL_TYPE_CARDINAL) {
         status = U_UNSUPPORTED_ERROR;
-        return NULL;
+        return nullptr;
     }
-    const SharedPluralRules *result = NULL;
+    const SharedPluralRules *result = nullptr;
     UnifiedCache::getByLocale(locale, result, status);
     return result;
 }
@@ -195,11 +208,11 @@ PluralRules::forLocale(const Locale& locale, UPluralType type, UErrorCode& statu
     const SharedPluralRules *shared = createSharedInstance(
             locale, type, status);
     if (U_FAILURE(status)) {
-        return NULL;
+        return nullptr;
     }
     PluralRules *result = (*shared)->clone();
     shared->removeRef();
-    if (result == NULL) {
+    if (result == nullptr) {
         status = U_MEMORY_ALLOCATION_ERROR;
     }
     return result;
@@ -208,20 +221,23 @@ PluralRules::forLocale(const Locale& locale, UPluralType type, UErrorCode& statu
 PluralRules* U_EXPORT2
 PluralRules::internalForLocale(const Locale& locale, UPluralType type, UErrorCode& status) {
     if (U_FAILURE(status)) {
-        return NULL;
+        return nullptr;
     }
     if (type >= UPLURAL_TYPE_COUNT) {
         status = U_ILLEGAL_ARGUMENT_ERROR;
-        return NULL;
+        return nullptr;
     }
-    PluralRules *newObj = new PluralRules(status);
-    if (newObj==NULL || U_FAILURE(status)) {
-        delete newObj;
-        return NULL;
+    LocalPointer<PluralRules> newObj(new PluralRules(status), status);
+    if (U_FAILURE(status)) {
+        return nullptr;
     }
     UnicodeString locRule = newObj->getRuleFromResource(locale, type, status);
-    // TODO: which errors, if any, should be returned?
+    // TODO: which other errors, if any, should be returned?
     if (locRule.length() == 0) {
+        // If an out-of-memory error occurred, then stop and report the failure.
+        if (status == U_MEMORY_ALLOCATION_ERROR) {
+            return nullptr;
+        }
         // Locales with no specific rules (all numbers have the "other" category
         //   will return a U_MISSING_RESOURCE_ERROR at this point. This is not
         //   an error.
@@ -229,13 +245,13 @@ PluralRules::internalForLocale(const Locale& locale, UPluralType type, UErrorCod
         status = U_ZERO_ERROR;
     }
     PluralRuleParser parser;
-    parser.parse(locRule, newObj, status);
+    parser.parse(locRule, newObj.getAlias(), status);
         //  TODO: should rule parse errors be returned, or
         //        should we silently use default rules?
         //        Original impl used default rules.
         //        Ask the question to ICU Core.
 
-    return newObj;
+    return newObj.orphan();
 }
 
 UnicodeString
@@ -250,7 +266,7 @@ PluralRules::select(double number) const {
 
 UnicodeString
 PluralRules::select(const IFixedDecimal &number) const {
-    if (mRules == NULL) {
+    if (mRules == nullptr) {
         return UnicodeString(TRUE, PLURAL_DEFAULT_RULE, -1);
     }
     else {
@@ -262,14 +278,18 @@ PluralRules::select(const IFixedDecimal &number) const {
 
 StringEnumeration*
 PluralRules::getKeywords(UErrorCode& status) const {
-    if (U_FAILURE(status))  return NULL;
-    StringEnumeration* nameEnumerator = new PluralKeywordEnumeration(mRules, status);
     if (U_FAILURE(status)) {
-      delete nameEnumerator;
-      return NULL;
+        return nullptr;
     }
-
-    return nameEnumerator;
+    if (U_FAILURE(mInternalStatus)) {
+        status = mInternalStatus;
+        return nullptr;
+    }
+    LocalPointer<StringEnumeration> nameEnumerator(new PluralKeywordEnumeration(mRules, status), status);
+    if (U_FAILURE(status)) {
+        return nullptr;
+    }
+    return nameEnumerator.orphan();
 }
 
 double
@@ -367,8 +387,15 @@ getSamplesFromString(const UnicodeString &samples, double *dest,
 int32_t
 PluralRules::getSamples(const UnicodeString &keyword, double *dest,
                         int32_t destCapacity, UErrorCode& status) {
+    if (destCapacity == 0 || U_FAILURE(status)) {
+        return 0;
+    }
+    if (U_FAILURE(mInternalStatus)) {
+        status = mInternalStatus;
+        return 0;
+    }
     RuleChain *rc = rulesForKeyword(keyword);
-    if (rc == NULL || destCapacity == 0 || U_FAILURE(status)) {
+    if (rc == nullptr) {
         return 0;
     }
     int32_t numSamples = getSamplesFromString(rc->fIntegerSamples, dest, destCapacity, status);
@@ -381,7 +408,7 @@ PluralRules::getSamples(const UnicodeString &keyword, double *dest,
 
 RuleChain *PluralRules::rulesForKeyword(const UnicodeString &keyword) const {
     RuleChain *rc;
-    for (rc = mRules; rc != NULL; rc = rc->fNext) {
+    for (rc = mRules; rc != nullptr; rc = rc->fNext) {
         if (rc->fKeyword == keyword) {
             break;
         }
@@ -395,7 +422,7 @@ PluralRules::isKeyword(const UnicodeString& keyword) const {
     if (0 == keyword.compare(PLURAL_KEYWORD_OTHER, 5)) {
         return true;
     }
-    return rulesForKeyword(keyword) != NULL;
+    return rulesForKeyword(keyword) != nullptr;
 }
 
 UnicodeString
@@ -421,13 +448,13 @@ PluralRules::operator==(const PluralRules& other) const  {
         return FALSE;
     }
     myKeywordList->reset(status);
-    while ((ptrKeyword=myKeywordList->snext(status))!=NULL) {
+    while ((ptrKeyword=myKeywordList->snext(status))!=nullptr) {
         if (!other.isKeyword(*ptrKeyword)) {
             return FALSE;
         }
     }
     otherKeywordList->reset(status);
-    while ((ptrKeyword=otherKeywordList->snext(status))!=NULL) {
+    while ((ptrKeyword=otherKeywordList->snext(status))!=nullptr) {
         if (!this->isKeyword(*ptrKeyword)) {
             return FALSE;
         }
@@ -460,29 +487,33 @@ PluralRuleParser::parse(const UnicodeString& ruleData, PluralRules *prules, UErr
         }
         switch (type) {
         case tAnd:
-            U_ASSERT(curAndConstraint != NULL);
-            curAndConstraint = curAndConstraint->add();
+            U_ASSERT(curAndConstraint != nullptr);
+            curAndConstraint = curAndConstraint->add(status);
             break;
         case tOr:
             {
-                U_ASSERT(currentChain != NULL);
+                U_ASSERT(currentChain != nullptr);
                 OrConstraint *orNode=currentChain->ruleHeader;
-                while (orNode->next != NULL) {
+                while (orNode->next != nullptr) {
                     orNode = orNode->next;
                 }
                 orNode->next= new OrConstraint();
+                if (orNode->next == nullptr) {
+                    status = U_MEMORY_ALLOCATION_ERROR;
+                    break;
+                }
                 orNode=orNode->next;
-                orNode->next=NULL;
-                curAndConstraint = orNode->add();
+                orNode->next=nullptr;
+                curAndConstraint = orNode->add(status);
             }
             break;
         case tIs:
-            U_ASSERT(curAndConstraint != NULL);
+            U_ASSERT(curAndConstraint != nullptr);
             U_ASSERT(curAndConstraint->value == -1);
-            U_ASSERT(curAndConstraint->rangeList == NULL);
+            U_ASSERT(curAndConstraint->rangeList == nullptr);
             break;
         case tNot:
-            U_ASSERT(curAndConstraint != NULL);
+            U_ASSERT(curAndConstraint != nullptr);
             curAndConstraint->negated=TRUE;
             break;
 
@@ -492,23 +523,29 @@ PluralRuleParser::parse(const UnicodeString& ruleData, PluralRules *prules, UErr
         case tIn:
         case tWithin:
         case tEqual:
-            U_ASSERT(curAndConstraint != NULL);
-            curAndConstraint->rangeList = new UVector32(status);
-            curAndConstraint->rangeList->addElement(-1, status);  // range Low
-            curAndConstraint->rangeList->addElement(-1, status);  // range Hi
-            rangeLowIdx = 0;
-            rangeHiIdx  = 1;
-            curAndConstraint->value=PLURAL_RANGE_HIGH;
-            curAndConstraint->integerOnly = (type != tWithin);
+            {
+                U_ASSERT(curAndConstraint != nullptr);
+                LocalPointer<UVector32> newRangeList(new UVector32(status), status);
+                if (U_FAILURE(status)) {
+                    break;
+                }
+                curAndConstraint->rangeList = newRangeList.orphan();
+                curAndConstraint->rangeList->addElement(-1, status);  // range Low
+                curAndConstraint->rangeList->addElement(-1, status);  // range Hi
+                rangeLowIdx = 0;
+                rangeHiIdx  = 1;
+                curAndConstraint->value=PLURAL_RANGE_HIGH;
+                curAndConstraint->integerOnly = (type != tWithin);
+            }
             break;
         case tNumber:
-            U_ASSERT(curAndConstraint != NULL);
+            U_ASSERT(curAndConstraint != nullptr);
             if ( (curAndConstraint->op==AndConstraint::MOD)&&
                  (curAndConstraint->opNum == -1 ) ) {
                 curAndConstraint->opNum=getNumberValue(token);
             }
             else {
-                if (curAndConstraint->rangeList == NULL) {
+                if (curAndConstraint->rangeList == nullptr) {
                     // this is for an 'is' rule
                     curAndConstraint->value = getNumberValue(token);
                 } else {
@@ -534,7 +571,7 @@ PluralRuleParser::parse(const UnicodeString& ruleData, PluralRules *prules, UErr
         case tComma:
             // TODO: rule syntax checking is inadequate, can happen with badly formed rules.
             //       Catch cases like "n mod 10, is 1" here instead.
-            if (curAndConstraint == NULL || curAndConstraint->rangeList == NULL) {
+            if (curAndConstraint == nullptr || curAndConstraint->rangeList == nullptr) {
                 status = U_UNEXPECTED_TOKEN;
                 break;
             }
@@ -545,7 +582,7 @@ PluralRuleParser::parse(const UnicodeString& ruleData, PluralRules *prules, UErr
             curAndConstraint->rangeList->addElement(-1, status);  // range Hi
             break;
         case tMod:
-            U_ASSERT(curAndConstraint != NULL);
+            U_ASSERT(curAndConstraint != nullptr);
             curAndConstraint->op=AndConstraint::MOD;
             break;
         case tVariableN:
@@ -553,24 +590,24 @@ PluralRuleParser::parse(const UnicodeString& ruleData, PluralRules *prules, UErr
         case tVariableF:
         case tVariableT:
         case tVariableV:
-            U_ASSERT(curAndConstraint != NULL);
+            U_ASSERT(curAndConstraint != nullptr);
             curAndConstraint->digitsType = type;
             break;
         case tKeyword:
             {
             RuleChain *newChain = new RuleChain;
-            if (newChain == NULL) {
+            if (newChain == nullptr) {
                 status = U_MEMORY_ALLOCATION_ERROR;
                 break;
             }
             newChain->fKeyword = token;
-            if (prules->mRules == NULL) {
+            if (prules->mRules == nullptr) {
                 prules->mRules = newChain;
             } else {
                 // The new rule chain goes at the end of the linked list of rule chains,
                 //   unless there is an "other" keyword & chain. "other" must remain last.
                 RuleChain *insertAfter = prules->mRules;
-                while (insertAfter->fNext!=NULL &&
+                while (insertAfter->fNext!=nullptr &&
                        insertAfter->fNext->fKeyword.compare(PLURAL_KEYWORD_OTHER, 5) != 0 ){
                     insertAfter=insertAfter->fNext;
                 }
@@ -578,8 +615,12 @@ PluralRuleParser::parse(const UnicodeString& ruleData, PluralRules *prules, UErr
                 insertAfter->fNext = newChain;
             }
             OrConstraint *orNode = new OrConstraint();
+            if (orNode == nullptr) {
+                status = U_MEMORY_ALLOCATION_ERROR;
+                break;
+            }
             newChain->ruleHeader = orNode;
-            curAndConstraint = orNode->add();
+            curAndConstraint = orNode->add(status);
             currentChain = newChain;
             }
             break;
@@ -629,7 +670,7 @@ PluralRules::getRuleFromResource(const Locale& locale, UPluralType type, UErrorC
     if (U_FAILURE(errCode)) {
         return emptyStr;
     }
-    LocalUResourceBundlePointer rb(ures_openDirect(NULL, "plurals", &errCode));
+    LocalUResourceBundlePointer rb(ures_openDirect(nullptr, "plurals", &errCode));
     if(U_FAILURE(errCode)) {
         return emptyStr;
     }
@@ -646,7 +687,7 @@ PluralRules::getRuleFromResource(const Locale& locale, UPluralType type, UErrorC
         errCode = U_ILLEGAL_ARGUMENT_ERROR;
         return emptyStr;
     }
-    LocalUResourceBundlePointer locRes(ures_getByKey(rb.getAlias(), typeKey, NULL, &errCode));
+    LocalUResourceBundlePointer locRes(ures_getByKey(rb.getAlias(), typeKey, nullptr, &errCode));
     if(U_FAILURE(errCode)) {
         return emptyStr;
     }
@@ -654,25 +695,25 @@ PluralRules::getRuleFromResource(const Locale& locale, UPluralType type, UErrorC
     const char *curLocaleName=locale.getName();
     const UChar* s = ures_getStringByKey(locRes.getAlias(), curLocaleName, &resLen, &errCode);
 
-    if (s == NULL) {
+    if (s == nullptr) {
         // Check parent locales.
         UErrorCode status = U_ZERO_ERROR;
         char parentLocaleName[ULOC_FULLNAME_CAPACITY];
-        const char *curLocaleName=locale.getName();
-        uprv_strcpy(parentLocaleName, curLocaleName);
+        const char *curLocaleName2=locale.getName();
+        uprv_strcpy(parentLocaleName, curLocaleName2);
 
         while (uloc_getParent(parentLocaleName, parentLocaleName,
                                        ULOC_FULLNAME_CAPACITY, &status) > 0) {
             resLen=0;
             s = ures_getStringByKey(locRes.getAlias(), parentLocaleName, &resLen, &status);
-            if (s != NULL) {
+            if (s != nullptr) {
                 errCode = U_ZERO_ERROR;
                 break;
             }
             status = U_ZERO_ERROR;
         }
     }
-    if (s==NULL) {
+    if (s==nullptr) {
         return emptyStr;
     }
 
@@ -680,18 +721,18 @@ PluralRules::getRuleFromResource(const Locale& locale, UPluralType type, UErrorC
     u_UCharsToChars(s, setKey, resLen + 1);
     // printf("\n PluralRule: %s\n", setKey);
 
-    LocalUResourceBundlePointer ruleRes(ures_getByKey(rb.getAlias(), "rules", NULL, &errCode));
+    LocalUResourceBundlePointer ruleRes(ures_getByKey(rb.getAlias(), "rules", nullptr, &errCode));
     if(U_FAILURE(errCode)) {
         return emptyStr;
     }
-    LocalUResourceBundlePointer setRes(ures_getByKey(ruleRes.getAlias(), setKey, NULL, &errCode));
+    LocalUResourceBundlePointer setRes(ures_getByKey(ruleRes.getAlias(), setKey, nullptr, &errCode));
     if (U_FAILURE(errCode)) {
         return emptyStr;
     }
 
     int32_t numberKeys = ures_getSize(setRes.getAlias());
     UnicodeString result;
-    const char *key=NULL;
+    const char *key=nullptr;
     for(int32_t i=0; i<numberKeys; ++i) {   // Keys are zero, one, few, ...
         UnicodeString rules = ures_getNextUnicodeString(setRes.getAlias(), &key, &errCode);
         UnicodeString uKey(key, -1, US_INV);
@@ -707,54 +748,46 @@ PluralRules::getRuleFromResource(const Locale& locale, UPluralType type, UErrorC
 UnicodeString
 PluralRules::getRules() const {
     UnicodeString rules;
-    if (mRules != NULL) {
+    if (mRules != nullptr) {
         mRules->dumpRules(rules);
     }
     return rules;
 }
 
-
-AndConstraint::AndConstraint() {
-    op = AndConstraint::NONE;
-    opNum=-1;
-    value = -1;
-    rangeList = NULL;
-    negated = FALSE;
-    integerOnly = FALSE;
-    digitsType = none;
-    next=NULL;
-}
-
-
 AndConstraint::AndConstraint(const AndConstraint& other) {
+    this->fInternalStatus = other.fInternalStatus;
+    if (U_FAILURE(fInternalStatus)) {
+        return; // stop early if the object we are copying from is invalid.
+    }
     this->op = other.op;
     this->opNum=other.opNum;
     this->value=other.value;
-    this->rangeList=NULL;
-    if (other.rangeList != NULL) {
-        UErrorCode status = U_ZERO_ERROR;
-        this->rangeList = new UVector32(status);
-        this->rangeList->assign(*other.rangeList, status);
+    if (other.rangeList != nullptr) {
+        LocalPointer<UVector32> newRangeList(new UVector32(fInternalStatus), fInternalStatus);
+        if (U_FAILURE(fInternalStatus)) {
+            return;
+        }
+        this->rangeList = newRangeList.orphan();
+        this->rangeList->assign(*other.rangeList, fInternalStatus);
     }
     this->integerOnly=other.integerOnly;
     this->negated=other.negated;
     this->digitsType = other.digitsType;
-    if (other.next==NULL) {
-        this->next=NULL;
-    }
-    else {
+    if (other.next != nullptr) {
         this->next = new AndConstraint(*other.next);
+        if (this->next == nullptr) {
+            fInternalStatus = U_MEMORY_ALLOCATION_ERROR;
+        }
     }
 }
 
 AndConstraint::~AndConstraint() {
     delete rangeList;
-    if (next!=NULL) {
-        delete next;
-    }
+    rangeList = nullptr;
+    delete next;
+    next = nullptr;
 }
 
-
 UBool
 AndConstraint::isFulfilled(const IFixedDecimal &number) {
     UBool result = TRUE;
@@ -776,7 +809,7 @@ AndConstraint::isFulfilled(const IFixedDecimal &number) {
         if (op == MOD) {
             n = fmod(n, opNum);
         }
-        if (rangeList == NULL) {
+        if (rangeList == nullptr) {
             result = value == -1 ||    // empty rule
                      n == value;       //  'is' rule
             break;
@@ -796,53 +829,67 @@ AndConstraint::isFulfilled(const IFixedDecimal &number) {
     return result;
 }
 
-
 AndConstraint*
-AndConstraint::add()
-{
+AndConstraint::add(UErrorCode& status) {
+    if (U_FAILURE(fInternalStatus)) {
+        status = fInternalStatus;
+        return nullptr;
+    }
     this->next = new AndConstraint();
+    if (this->next == nullptr) {
+        status = U_MEMORY_ALLOCATION_ERROR;
+    }
     return this->next;
 }
 
-OrConstraint::OrConstraint() {
-    childNode=NULL;
-    next=NULL;
-}
 
 OrConstraint::OrConstraint(const OrConstraint& other) {
-    if ( other.childNode == NULL ) {
-        this->childNode = NULL;
+    this->fInternalStatus = other.fInternalStatus;
+    if (U_FAILURE(fInternalStatus)) {
+        return; // stop early if the object we are copying from is invalid.
     }
-    else {
+    if ( other.childNode != nullptr ) {
         this->childNode = new AndConstraint(*(other.childNode));
+        if (this->childNode == nullptr) {
+            fInternalStatus = U_MEMORY_ALLOCATION_ERROR;
+            return;
+        }
     }
-    if (other.next == NULL ) {
-        this->next = NULL;
-    }
-    else {
+    if (other.next != nullptr ) {
         this->next = new OrConstraint(*(other.next));
+        if (this->next == nullptr) {
+            fInternalStatus = U_MEMORY_ALLOCATION_ERROR;
+            return;
+        }
+        if (U_FAILURE(this->next->fInternalStatus)) {
+            this->fInternalStatus = this->next->fInternalStatus;
+        }
     }
 }
 
 OrConstraint::~OrConstraint() {
-    if (childNode!=NULL) {
-        delete childNode;
-    }
-    if (next!=NULL) {
-        delete next;
-    }
+    delete childNode;
+    childNode = nullptr;
+    delete next;
+    next = nullptr;
 }
 
 AndConstraint*
-OrConstraint::add()
-{
+OrConstraint::add(UErrorCode& status) {
+    if (U_FAILURE(fInternalStatus)) {
+        status = fInternalStatus;
+        return nullptr;
+    }
     OrConstraint *curOrConstraint=this;
     {
-        while (curOrConstraint->next!=NULL) {
+        while (curOrConstraint->next!=nullptr) {
             curOrConstraint = curOrConstraint->next;
         }
-        U_ASSERT(curOrConstraint->childNode == NULL);
+        U_ASSERT(curOrConstraint->childNode == nullptr);
         curOrConstraint->childNode = new AndConstraint();
+        if (curOrConstraint->childNode == nullptr) {
+            status = U_MEMORY_ALLOCATION_ERROR;
+        }
     }
     return curOrConstraint->childNode;
 }
@@ -852,10 +899,10 @@ OrConstraint::isFulfilled(const IFixedDecimal &number) {
     OrConstraint* orRule=this;
     UBool result=FALSE;
 
-    while (orRule!=NULL && !result) {
+    while (orRule!=nullptr && !result) {
         result=TRUE;
         AndConstraint* andRule = orRule->childNode;
-        while (andRule!=NULL && result) {
+        while (andRule!=nullptr && result) {
             result = andRule->isFulfilled(number);
             andRule=andRule->next;
         }
@@ -866,19 +913,33 @@ OrConstraint::isFulfilled(const IFixedDecimal &number) {
 }
 
 
-RuleChain::RuleChain(): fKeyword(), fNext(NULL), ruleHeader(NULL), fDecimalSamples(), fIntegerSamples(),
-                        fDecimalSamplesUnbounded(FALSE), fIntegerSamplesUnbounded(FALSE) {
-}
-
 RuleChain::RuleChain(const RuleChain& other) :
-        fKeyword(other.fKeyword), fNext(NULL), ruleHeader(NULL), fDecimalSamples(other.fDecimalSamples),
+        fKeyword(other.fKeyword), fDecimalSamples(other.fDecimalSamples),
         fIntegerSamples(other.fIntegerSamples), fDecimalSamplesUnbounded(other.fDecimalSamplesUnbounded),
-        fIntegerSamplesUnbounded(other.fIntegerSamplesUnbounded) {
-    if (other.ruleHeader != NULL) {
+        fIntegerSamplesUnbounded(other.fIntegerSamplesUnbounded), fInternalStatus(other.fInternalStatus) {
+    if (U_FAILURE(this->fInternalStatus)) {
+        return; // stop early if the object we are copying from is invalid. 
+    }
+    if (other.ruleHeader != nullptr) {
         this->ruleHeader = new OrConstraint(*(other.ruleHeader));
+        if (this->ruleHeader == nullptr) {
+            this->fInternalStatus = U_MEMORY_ALLOCATION_ERROR;
+        }
+        else if (U_FAILURE(this->ruleHeader->fInternalStatus)) {
+            // If the OrConstraint wasn't fully copied, then set our status to failure as well.
+            this->fInternalStatus = this->ruleHeader->fInternalStatus;
+            return; // exit early.
+        }
     }
-    if (other.fNext != NULL ) {
+    if (other.fNext != nullptr ) {
         this->fNext = new RuleChain(*other.fNext);
+        if (this->fNext == nullptr) {
+            this->fInternalStatus = U_MEMORY_ALLOCATION_ERROR;
+        }
+        else if (U_FAILURE(this->fNext->fInternalStatus)) {
+            // If the RuleChain wasn't fully copied, then set our status to failure as well.
+            this->fInternalStatus = this->fNext->fInternalStatus;
+        }
     }
 }
 
@@ -887,11 +948,10 @@ RuleChain::~RuleChain() {
     delete ruleHeader;
 }
 
-
 UnicodeString
 RuleChain::select(const IFixedDecimal &number) const {
     if (!number.isNaN() && !number.isInfinite()) {
-        for (const RuleChain *rules = this; rules != NULL; rules = rules->fNext) {
+        for (const RuleChain *rules = this; rules != nullptr; rules = rules->fNext) {
              if (rules->ruleHeader->isFulfilled(number)) {
                  return rules->fKeyword;
              }
@@ -923,17 +983,17 @@ void
 RuleChain::dumpRules(UnicodeString& result) {
     UChar digitString[16];
 
-    if ( ruleHeader != NULL ) {
+    if ( ruleHeader != nullptr ) {
         result +=  fKeyword;
         result += COLON;
         result += SPACE;
         OrConstraint* orRule=ruleHeader;
-        while ( orRule != NULL ) {
+        while ( orRule != nullptr ) {
             AndConstraint* andRule=orRule->childNode;
-            while ( andRule != NULL ) {
-                if ((andRule->op==AndConstraint::NONE) &&  (andRule->rangeList==NULL) && (andRule->value == -1)) {
+            while ( andRule != nullptr ) {
+                if ((andRule->op==AndConstraint::NONE) &&  (andRule->rangeList==nullptr) && (andRule->value == -1)) {
                     // Empty Rules.
-                } else if ( (andRule->op==AndConstraint::NONE) && (andRule->rangeList==NULL) ) {
+                } else if ( (andRule->op==AndConstraint::NONE) && (andRule->rangeList==nullptr) ) {
                     result += tokenString(andRule->digitsType);
                     result += UNICODE_STRING_SIMPLE(" is ");
                     if (andRule->negated) {
@@ -950,7 +1010,7 @@ RuleChain::dumpRules(UnicodeString& result) {
                         uprv_itou(digitString,16, andRule->opNum,10,0);
                         result += UnicodeString(digitString);
                     }
-                    if (andRule->rangeList==NULL) {
+                    if (andRule->rangeList==nullptr) {
                         if (andRule->negated) {
                             result += UNICODE_STRING_SIMPLE(" is not ");
                             uprv_itou(digitString,16, andRule->value,10,0);
@@ -993,16 +1053,16 @@ RuleChain::dumpRules(UnicodeString& result) {
                         }
                     }
                 }
-                if ( (andRule=andRule->next) != NULL) {
+                if ( (andRule=andRule->next) != nullptr) {
                     result += UNICODE_STRING_SIMPLE(" and ");
                 }
             }
-            if ( (orRule = orRule->next) != NULL ) {
+            if ( (orRule = orRule->next) != nullptr ) {
                 result += UNICODE_STRING_SIMPLE(" or ");
             }
         }
     }
-    if ( fNext != NULL ) {
+    if ( fNext != nullptr ) {
         result += UNICODE_STRING_SIMPLE("; ");
         fNext->dumpRules(result);
     }
@@ -1011,6 +1071,9 @@ RuleChain::dumpRules(UnicodeString& result) {
 
 UErrorCode
 RuleChain::getKeywords(int32_t capacityOfKeywords, UnicodeString* keywords, int32_t& arraySize) const {
+    if (U_FAILURE(fInternalStatus)) {
+        return fInternalStatus;
+    }
     if ( arraySize < capacityOfKeywords-1 ) {
         keywords[arraySize++]=fKeyword;
     }
@@ -1018,7 +1081,7 @@ RuleChain::getKeywords(int32_t capacityOfKeywords, UnicodeString* keywords, int3
         return U_BUFFER_OVERFLOW_ERROR;
     }
 
-    if ( fNext != NULL ) {
+    if ( fNext != nullptr ) {
         return fNext->getKeywords(capacityOfKeywords, keywords, arraySize);
     }
     else {
@@ -1032,7 +1095,7 @@ RuleChain::isKeyword(const UnicodeString& keywordParam) const {
         return TRUE;
     }
 
-    if ( fNext != NULL ) {
+    if ( fNext != nullptr ) {
         return fNext->isKeyword(keywordParam);
     }
     else {
@@ -1043,7 +1106,7 @@ RuleChain::isKeyword(const UnicodeString& keywordParam) const {
 
 PluralRuleParser::PluralRuleParser() :
         ruleIndex(0), token(), type(none), prevType(none),
-        curAndConstraint(NULL), currentChain(NULL), rangeLowIdx(-1), rangeHiIdx(-1)
+        curAndConstraint(nullptr), currentChain(nullptr), rangeLowIdx(-1), rangeHiIdx(-1)
 {
 }
 
@@ -1341,21 +1404,36 @@ PluralKeywordEnumeration::PluralKeywordEnumeration(RuleChain *header, UErrorCode
         return;
     }
     fKeywordNames.setDeleter(uprv_deleteUObject);
-    UBool  addKeywordOther=TRUE;
-    RuleChain *node=header;
-    while(node!=NULL) {
-        fKeywordNames.addElement(new UnicodeString(node->fKeyword), status);
+    UBool  addKeywordOther = TRUE;
+    RuleChain *node = header;
+    while (node != nullptr) {
+        auto newElem = new UnicodeString(node->fKeyword);
+        if (newElem == nullptr) {
+            status = U_MEMORY_ALLOCATION_ERROR;
+            return;
+        }
+        fKeywordNames.addElement(newElem, status);
         if (U_FAILURE(status)) {
+            delete newElem;
             return;
         }
         if (0 == node->fKeyword.compare(PLURAL_KEYWORD_OTHER, 5)) {
-            addKeywordOther= FALSE;
+            addKeywordOther = FALSE;
         }
-        node=node->fNext;
+        node = node->fNext;
     }
 
     if (addKeywordOther) {
-        fKeywordNames.addElement(new UnicodeString(PLURAL_KEYWORD_OTHER), status);
+        auto newElem = new UnicodeString(PLURAL_KEYWORD_OTHER);
+        if (newElem == nullptr) {
+            status = U_MEMORY_ALLOCATION_ERROR;
+            return;
+        }
+        fKeywordNames.addElement(newElem, status);
+        if (U_FAILURE(status)) {
+            delete newElem;
+            return;
+        }
     }
 }
 
@@ -1364,7 +1442,7 @@ PluralKeywordEnumeration::snext(UErrorCode& status) {
     if (U_SUCCESS(status) && pos < fKeywordNames.size()) {
         return (const UnicodeString*)fKeywordNames.elementAt(pos++);
     }
-    return NULL;
+    return nullptr;
 }
 
 void
@@ -1374,7 +1452,7 @@ PluralKeywordEnumeration::reset(UErrorCode& /*status*/) {
 
 int32_t
 PluralKeywordEnumeration::count(UErrorCode& /*status*/) const {
-       return fKeywordNames.size();
+    return fKeywordNames.size();
 }
 
 PluralKeywordEnumeration::~PluralKeywordEnumeration() {
@@ -1634,41 +1712,39 @@ int32_t FixedDecimal::getVisibleFractionDigitCount() const {
 
 
 PluralAvailableLocalesEnumeration::PluralAvailableLocalesEnumeration(UErrorCode &status) {
-    fLocales = NULL;
-    fRes = NULL;
     fOpenStatus = status;
     if (U_FAILURE(status)) {
         return;
     }
-    fOpenStatus = U_ZERO_ERROR;
-    LocalUResourceBundlePointer rb(ures_openDirect(NULL, "plurals", &fOpenStatus));
-    fLocales = ures_getByKey(rb.getAlias(), "locales", NULL, &fOpenStatus);
+    fOpenStatus = U_ZERO_ERROR; // clear any warnings.
+    LocalUResourceBundlePointer rb(ures_openDirect(nullptr, "plurals", &fOpenStatus));
+    fLocales = ures_getByKey(rb.getAlias(), "locales", nullptr, &fOpenStatus);
 }
 
 PluralAvailableLocalesEnumeration::~PluralAvailableLocalesEnumeration() {
     ures_close(fLocales);
     ures_close(fRes);
-    fLocales = NULL;
-    fRes = NULL;
+    fLocales = nullptr;
+    fRes = nullptr;
 }
 
 const char *PluralAvailableLocalesEnumeration::next(int32_t *resultLength, UErrorCode &status) {
     if (U_FAILURE(status)) {
-        return NULL;
+        return nullptr;
     }
     if (U_FAILURE(fOpenStatus)) {
         status = fOpenStatus;
-        return NULL;
+        return nullptr;
     }
     fRes = ures_getNextResource(fLocales, fRes, &status);
-    if (fRes == NULL || U_FAILURE(status)) {
+    if (fRes == nullptr || U_FAILURE(status)) {
         if (status == U_INDEX_OUTOFBOUNDS_ERROR) {
             status = U_ZERO_ERROR;
         }
-        return NULL;
+        return nullptr;
     }
     const char *result = ures_getKey(fRes);
-    if (resultLength != NULL) {
+    if (resultLength != nullptr) {
         *resultLength = static_cast<int32_t>(uprv_strlen(result));
     }
     return result;
index 3ab445d..3a919ea 100644 (file)
@@ -181,7 +181,6 @@ private:
        kRangeList,
        kSamples
     };
-
 };
 
 enum PluralOperand {
@@ -311,32 +310,36 @@ public:
         NONE,
         MOD
     } RuleOp;
-    RuleOp  op;
-    int32_t opNum;           // for mod expressions, the right operand of the mod.
-    int32_t     value;       // valid for 'is' rules only.
-    UVector32   *rangeList;  // for 'in', 'within' rules. Null otherwise.
-    UBool   negated;           // TRUE for negated rules.
-    UBool   integerOnly;     // TRUE for 'within' rules.
-    tokenType digitsType;    // n | i | v | f constraint.
-    AndConstraint *next;
-
-    AndConstraint();
+    RuleOp op = AndConstraint::NONE;
+    int32_t opNum = -1;             // for mod expressions, the right operand of the mod.
+    int32_t value = -1;             // valid for 'is' rules only.
+    UVector32 *rangeList = nullptr; // for 'in', 'within' rules. Null otherwise.
+    UBool negated = FALSE;          // TRUE for negated rules.
+    UBool integerOnly = FALSE;      // TRUE for 'within' rules.
+    tokenType digitsType = none;    // n | i | v | f constraint.
+    AndConstraint *next = nullptr;
+    // Internal error status, used for errors that occur during the copy constructor.
+    UErrorCode fInternalStatus = U_ZERO_ERROR;    
+
+    AndConstraint() = default;
     AndConstraint(const AndConstraint& other);
     virtual ~AndConstraint();
-    AndConstraint* add();
+    AndConstraint* add(UErrorCode& status);
     // UBool isFulfilled(double number);
     UBool isFulfilled(const IFixedDecimal &number);
 };
 
 class OrConstraint : public UMemory  {
 public:
-    AndConstraint *childNode;
-    OrConstraint *next;
-    OrConstraint();
+    AndConstraint *childNode = nullptr;
+    OrConstraint *next = nullptr;
+    // Internal error status, used for errors that occur during the copy constructor.
+    UErrorCode fInternalStatus = U_ZERO_ERROR;
 
+    OrConstraint() = default;
     OrConstraint(const OrConstraint& other);
     virtual ~OrConstraint();
-    AndConstraint* add();
+    AndConstraint* add(UErrorCode& status);
     // UBool isFulfilled(double number);
     UBool isFulfilled(const IFixedDecimal &number);
 };
@@ -344,15 +347,16 @@ public:
 class RuleChain : public UMemory  {
 public:
     UnicodeString   fKeyword;
-    RuleChain      *fNext;
-    OrConstraint   *ruleHeader;
+    RuleChain      *fNext = nullptr;
+    OrConstraint   *ruleHeader = nullptr;
     UnicodeString   fDecimalSamples;  // Samples strings from rule source
     UnicodeString   fIntegerSamples;  //   without @decimal or @integer, otherwise unprocessed.
-    UBool           fDecimalSamplesUnbounded;
-    UBool           fIntegerSamplesUnbounded;
-
+    UBool           fDecimalSamplesUnbounded = FALSE;
+    UBool           fIntegerSamplesUnbounded = FALSE;
+    // Internal error status, used for errors that occur during the copy constructor.
+    UErrorCode      fInternalStatus = U_ZERO_ERROR;
 
-    RuleChain();
+    RuleChain() = default;
     RuleChain(const RuleChain& other);
     virtual ~RuleChain();
 
@@ -386,8 +390,8 @@ class U_I18N_API PluralAvailableLocalesEnumeration: public StringEnumeration {
     virtual int32_t count(UErrorCode& status) const;
   private:
     UErrorCode      fOpenStatus;
-    UResourceBundle *fLocales;
-    UResourceBundle *fRes;
+    UResourceBundle *fLocales = nullptr;
+    UResourceBundle *fRes = nullptr;
 };
 
 U_NAMESPACE_END
index 68bbf1a..27afc1f 100644 (file)
@@ -680,7 +680,7 @@ StringLocalizationInfo::getDisplayName(int32_t localeIndex, int32_t ruleIndex) c
 RuleBasedNumberFormat::RuleBasedNumberFormat(const UnicodeString& description, 
                                              const UnicodeString& locs,
                                              const Locale& alocale, UParseError& perror, UErrorCode& status)
-  : ruleSets(NULL)
+  : fRuleSets(NULL)
   , ruleSetDescriptions(NULL)
   , numRuleSets(0)
   , defaultRuleSet(NULL)
@@ -689,7 +689,7 @@ RuleBasedNumberFormat::RuleBasedNumberFormat(const UnicodeString& description,
   , decimalFormatSymbols(NULL)
   , defaultInfinityRule(NULL)
   , defaultNaNRule(NULL)
-  , roundingMode(DecimalFormat::ERoundingMode::kRoundUnnecessary)
+  , fRoundingMode(DecimalFormat::ERoundingMode::kRoundUnnecessary)
   , lenient(FALSE)
   , lenientParseRules(NULL)
   , localizations(NULL)
@@ -705,7 +705,7 @@ RuleBasedNumberFormat::RuleBasedNumberFormat(const UnicodeString& description,
 RuleBasedNumberFormat::RuleBasedNumberFormat(const UnicodeString& description, 
                                              const UnicodeString& locs,
                                              UParseError& perror, UErrorCode& status)
-  : ruleSets(NULL)
+  : fRuleSets(NULL)
   , ruleSetDescriptions(NULL)
   , numRuleSets(0)
   , defaultRuleSet(NULL)
@@ -714,7 +714,7 @@ RuleBasedNumberFormat::RuleBasedNumberFormat(const UnicodeString& description,
   , decimalFormatSymbols(NULL)
   , defaultInfinityRule(NULL)
   , defaultNaNRule(NULL)
-  , roundingMode(DecimalFormat::ERoundingMode::kRoundUnnecessary)
+  , fRoundingMode(DecimalFormat::ERoundingMode::kRoundUnnecessary)
   , lenient(FALSE)
   , lenientParseRules(NULL)
   , localizations(NULL)
@@ -730,7 +730,7 @@ RuleBasedNumberFormat::RuleBasedNumberFormat(const UnicodeString& description,
 RuleBasedNumberFormat::RuleBasedNumberFormat(const UnicodeString& description, 
                                              LocalizationInfo* info,
                                              const Locale& alocale, UParseError& perror, UErrorCode& status)
-  : ruleSets(NULL)
+  : fRuleSets(NULL)
   , ruleSetDescriptions(NULL)
   , numRuleSets(0)
   , defaultRuleSet(NULL)
@@ -739,7 +739,7 @@ RuleBasedNumberFormat::RuleBasedNumberFormat(const UnicodeString& description,
   , decimalFormatSymbols(NULL)
   , defaultInfinityRule(NULL)
   , defaultNaNRule(NULL)
-  , roundingMode(DecimalFormat::ERoundingMode::kRoundUnnecessary)
+  , fRoundingMode(DecimalFormat::ERoundingMode::kRoundUnnecessary)
   , lenient(FALSE)
   , lenientParseRules(NULL)
   , localizations(NULL)
@@ -754,7 +754,7 @@ RuleBasedNumberFormat::RuleBasedNumberFormat(const UnicodeString& description,
 RuleBasedNumberFormat::RuleBasedNumberFormat(const UnicodeString& description, 
                          UParseError& perror, 
                          UErrorCode& status) 
-  : ruleSets(NULL)
+  : fRuleSets(NULL)
   , ruleSetDescriptions(NULL)
   , numRuleSets(0)
   , defaultRuleSet(NULL)
@@ -763,7 +763,7 @@ RuleBasedNumberFormat::RuleBasedNumberFormat(const UnicodeString& description,
   , decimalFormatSymbols(NULL)
   , defaultInfinityRule(NULL)
   , defaultNaNRule(NULL)
-  , roundingMode(DecimalFormat::ERoundingMode::kRoundUnnecessary)
+  , fRoundingMode(DecimalFormat::ERoundingMode::kRoundUnnecessary)
   , lenient(FALSE)
   , lenientParseRules(NULL)
   , localizations(NULL)
@@ -779,7 +779,7 @@ RuleBasedNumberFormat::RuleBasedNumberFormat(const UnicodeString& description,
                          const Locale& aLocale,
                          UParseError& perror, 
                          UErrorCode& status) 
-  : ruleSets(NULL)
+  : fRuleSets(NULL)
   , ruleSetDescriptions(NULL)
   , numRuleSets(0)
   , defaultRuleSet(NULL)
@@ -788,7 +788,7 @@ RuleBasedNumberFormat::RuleBasedNumberFormat(const UnicodeString& description,
   , decimalFormatSymbols(NULL)
   , defaultInfinityRule(NULL)
   , defaultNaNRule(NULL)
-  , roundingMode(DecimalFormat::ERoundingMode::kRoundUnnecessary)
+  , fRoundingMode(DecimalFormat::ERoundingMode::kRoundUnnecessary)
   , lenient(FALSE)
   , lenientParseRules(NULL)
   , localizations(NULL)
@@ -801,7 +801,7 @@ RuleBasedNumberFormat::RuleBasedNumberFormat(const UnicodeString& description,
 }
 
 RuleBasedNumberFormat::RuleBasedNumberFormat(URBNFRuleSetTag tag, const Locale& alocale, UErrorCode& status)
-  : ruleSets(NULL)
+  : fRuleSets(NULL)
   , ruleSetDescriptions(NULL)
   , numRuleSets(0)
   , defaultRuleSet(NULL)
@@ -810,7 +810,7 @@ RuleBasedNumberFormat::RuleBasedNumberFormat(URBNFRuleSetTag tag, const Locale&
   , decimalFormatSymbols(NULL)
   , defaultInfinityRule(NULL)
   , defaultNaNRule(NULL)
-  , roundingMode(DecimalFormat::ERoundingMode::kRoundUnnecessary)
+  , fRoundingMode(DecimalFormat::ERoundingMode::kRoundUnnecessary)
   , lenient(FALSE)
   , lenientParseRules(NULL)
   , localizations(NULL)
@@ -868,7 +868,7 @@ RuleBasedNumberFormat::RuleBasedNumberFormat(URBNFRuleSetTag tag, const Locale&
 
 RuleBasedNumberFormat::RuleBasedNumberFormat(const RuleBasedNumberFormat& rhs)
   : NumberFormat(rhs)
-  , ruleSets(NULL)
+  , fRuleSets(NULL)
   , ruleSetDescriptions(NULL)
   , numRuleSets(0)
   , defaultRuleSet(NULL)
@@ -877,7 +877,7 @@ RuleBasedNumberFormat::RuleBasedNumberFormat(const RuleBasedNumberFormat& rhs)
   , decimalFormatSymbols(NULL)
   , defaultInfinityRule(NULL)
   , defaultNaNRule(NULL)
-  , roundingMode(DecimalFormat::ERoundingMode::kRoundUnnecessary)
+  , fRoundingMode(DecimalFormat::ERoundingMode::kRoundUnnecessary)
   , lenient(FALSE)
   , lenientParseRules(NULL)
   , localizations(NULL)
@@ -950,8 +950,8 @@ RuleBasedNumberFormat::operator==(const Format& other) const
                     ? FALSE
                     : *localizations == rhs.localizations))) {
 
-            NFRuleSet** p = ruleSets;
-            NFRuleSet** q = rhs.ruleSets;
+            NFRuleSet** p = fRuleSets;
+            NFRuleSet** q = rhs.fRuleSets;
             if (p == NULL) {
                 return q == NULL;
             } else if (q == NULL) {
@@ -972,8 +972,8 @@ UnicodeString
 RuleBasedNumberFormat::getRules() const
 {
     UnicodeString result;
-    if (ruleSets != NULL) {
-        for (NFRuleSet** p = ruleSets; *p; ++p) {
+    if (fRuleSets != NULL) {
+        for (NFRuleSet** p = fRuleSets; *p; ++p) {
             (*p)->appendRules(result);
         }
     }
@@ -987,9 +987,9 @@ RuleBasedNumberFormat::getRuleSetName(int32_t index) const
         UnicodeString string(TRUE, localizations->getRuleSetName(index), (int32_t)-1);
         return string;
     }
-    else if (ruleSets) {
+    else if (fRuleSets) {
         UnicodeString result;
-        for (NFRuleSet** p = ruleSets; *p; ++p) {
+        for (NFRuleSet** p = fRuleSets; *p; ++p) {
             NFRuleSet* rs = *p;
             if (rs->isPublic()) {
                 if (--index == -1) {
@@ -1010,8 +1010,8 @@ RuleBasedNumberFormat::getNumberOfRuleSetNames() const
     if (localizations) {
         result = localizations->getNumberOfRuleSets();
     }
-    else if (ruleSets) {
-        for (NFRuleSet** p = ruleSets; *p; ++p) {
+    else if (fRuleSets) {
+        for (NFRuleSet** p = fRuleSets; *p; ++p) {
             if ((**p).isPublic()) {
                 ++result;
             }
@@ -1098,8 +1098,8 @@ RuleBasedNumberFormat::getRuleSetDisplayName(const UnicodeString& ruleSetName, c
 NFRuleSet*
 RuleBasedNumberFormat::findRuleSet(const UnicodeString& name, UErrorCode& status) const
 {
-    if (U_SUCCESS(status) && ruleSets) {
-        for (NFRuleSet** p = ruleSets; *p; ++p) {
+    if (U_SUCCESS(status) && fRuleSets) {
+        for (NFRuleSet** p = fRuleSets; *p; ++p) {
             NFRuleSet* rs = *p;
             if (rs->isNamed(name)) {
                 return rs;
@@ -1132,11 +1132,17 @@ RuleBasedNumberFormat::format(const DecimalQuantity &number,
             // The DecimalFormat will provide more accurate results.
 
             // TODO this section should probably be optimized. The DecimalFormat is shared in ICU4J.
-            NumberFormat *decimalFormat = NumberFormat::createInstance(locale, UNUM_DECIMAL, status);
+            LocalPointer<NumberFormat> decimalFormat(NumberFormat::createInstance(locale, UNUM_DECIMAL, status), status);
+            if (decimalFormat.isNull()) {
+                return appendTo;
+            }
             Formattable f;
-            f.adoptDecimalQuantity(new DecimalQuantity(number));
+            LocalPointer<DecimalQuantity> decimalQuantity(new DecimalQuantity(number), status);
+            if (decimalQuantity.isNull()) {
+                return appendTo;
+            }
+            f.adoptDecimalQuantity(decimalQuantity.orphan()); // f now owns decimalQuantity.
             decimalFormat->format(f, appendTo, posIter, status);
-            delete decimalFormat;
         }
     }
     return appendTo;
@@ -1165,11 +1171,17 @@ RuleBasedNumberFormat::format(const DecimalQuantity &number,
             // The DecimalFormat will provide more accurate results.
 
             // TODO this section should probably be optimized. The DecimalFormat is shared in ICU4J.
-            NumberFormat *decimalFormat = NumberFormat::createInstance(locale, UNUM_DECIMAL, status);
+            LocalPointer<NumberFormat> decimalFormat(NumberFormat::createInstance(locale, UNUM_DECIMAL, status), status);
+            if (decimalFormat.isNull()) {
+                return appendTo;
+            }
             Formattable f;
-            f.adoptDecimalQuantity(new DecimalQuantity(number));
+            LocalPointer<DecimalQuantity> decimalQuantity(new DecimalQuantity(number), status);
+            if (decimalQuantity.isNull()) {
+                return appendTo;
+            }
+            f.adoptDecimalQuantity(decimalQuantity.orphan()); // f now owns decimalQuantity.
             decimalFormat->format(f, appendTo, pos, status);
-            delete decimalFormat;
         }
     }
     return appendTo;
@@ -1312,11 +1324,19 @@ RuleBasedNumberFormat::format(int64_t number, NFRuleSet *ruleSet, UnicodeString&
 
             // TODO this section should probably be optimized. The DecimalFormat is shared in ICU4J.
             NumberFormat *decimalFormat = NumberFormat::createInstance(locale, UNUM_DECIMAL, status);
+            if (decimalFormat == nullptr) {
+                return toAppendTo;
+            }
             Formattable f;
             FieldPosition pos(FieldPosition::DONT_CARE);
-            DecimalQuantity *digitList = new DecimalQuantity();
-            digitList->setToLong(number);
-            f.adoptDecimalQuantity(digitList);
+            DecimalQuantity *decimalQuantity = new DecimalQuantity();
+            if (decimalQuantity == nullptr) {
+                status = U_MEMORY_ALLOCATION_ERROR;
+                delete decimalFormat;
+                return toAppendTo;
+            }
+            decimalQuantity->setToLong(number);
+            f.adoptDecimalQuantity(decimalQuantity); // f now owns decimalQuantity.
             decimalFormat->format(f, toAppendTo, pos, status);
             delete decimalFormat;
         }
@@ -1358,7 +1378,7 @@ RuleBasedNumberFormat::parse(const UnicodeString& text,
                              Formattable& result,
                              ParsePosition& parsePosition) const
 {
-    if (!ruleSets) {
+    if (!fRuleSets) {
         parsePosition.setErrorIndex(0);
         return;
     }
@@ -1369,7 +1389,7 @@ RuleBasedNumberFormat::parse(const UnicodeString& text,
     ParsePosition high_pp(0);
     Formattable high_result;
 
-    for (NFRuleSet** p = ruleSets; *p; ++p) {
+    for (NFRuleSet** p = fRuleSets; *p; ++p) {
         NFRuleSet *rp = *p;
         if (rp->isPublic() && rp->isParseable()) {
             ParsePosition working_pp(0);
@@ -1457,7 +1477,7 @@ void
 RuleBasedNumberFormat::initDefaultRuleSet()
 {
     defaultRuleSet = NULL;
-    if (!ruleSets) {
+    if (!fRuleSets) {
         return;
     }
 
@@ -1465,7 +1485,7 @@ RuleBasedNumberFormat::initDefaultRuleSet()
     const UnicodeString ordinal(UNICODE_STRING_SIMPLE("%digits-ordinal"));
     const UnicodeString duration(UNICODE_STRING_SIMPLE("%duration"));
 
-    NFRuleSet**p = &ruleSets[0];
+    NFRuleSet**p = &fRuleSets[0];
     while (*p) {
         if ((*p)->isNamed(spellout) || (*p)->isNamed(ordinal) || (*p)->isNamed(duration)) {
             defaultRuleSet = *p;
@@ -1477,7 +1497,7 @@ RuleBasedNumberFormat::initDefaultRuleSet()
 
     defaultRuleSet = *--p;
     if (!defaultRuleSet->isPublic()) {
-        while (p != ruleSets) {
+        while (p != fRuleSets) {
             if ((*--p)->isPublic()) {
                 defaultRuleSet = *p;
                 break;
@@ -1547,7 +1567,7 @@ RuleBasedNumberFormat::init(const UnicodeString& rules, LocalizationInfo* locali
             // from the description
             lenientParseRules = new UnicodeString();
             /* test for NULL */
-            if (lenientParseRules == 0) {
+            if (lenientParseRules == nullptr) {
                 status = U_MEMORY_ALLOCATION_ERROR;
                 return;
             }
@@ -1568,15 +1588,15 @@ RuleBasedNumberFormat::init(const UnicodeString& rules, LocalizationInfo* locali
     ++numRuleSets;
 
     // our rule list is an array of the appropriate size
-    ruleSets = (NFRuleSet **)uprv_malloc((numRuleSets + 1) * sizeof(NFRuleSet *));
+    fRuleSets = (NFRuleSet **)uprv_malloc((numRuleSets + 1) * sizeof(NFRuleSet *));
     /* test for NULL */
-    if (ruleSets == 0) {
+    if (fRuleSets == 0) {
         status = U_MEMORY_ALLOCATION_ERROR;
         return;
     }
 
     for (int i = 0; i <= numRuleSets; ++i) {
-        ruleSets[i] = NULL;
+        fRuleSets[i] = NULL;
     }
 
     // divide up the descriptions into individual rule-set descriptions
@@ -1592,7 +1612,7 @@ RuleBasedNumberFormat::init(const UnicodeString& rules, LocalizationInfo* locali
     }
 
     ruleSetDescriptions = new UnicodeString[numRuleSets];
-    if (ruleSetDescriptions == 0) {
+    if (ruleSetDescriptions == nullptr) {
         status = U_MEMORY_ALLOCATION_ERROR;
         return;
     }
@@ -1602,8 +1622,8 @@ RuleBasedNumberFormat::init(const UnicodeString& rules, LocalizationInfo* locali
         int32_t start = 0;
         for (int32_t p = description.indexOf(gSemiPercent, 2, 0); p != -1; p = description.indexOf(gSemiPercent, 2, start)) {
             ruleSetDescriptions[curRuleSet].setTo(description, start, p + 1 - start);
-            ruleSets[curRuleSet] = new NFRuleSet(this, ruleSetDescriptions, curRuleSet, status);
-            if (ruleSets[curRuleSet] == 0) {
+            fRuleSets[curRuleSet] = new NFRuleSet(this, ruleSetDescriptions, curRuleSet, status);
+            if (fRuleSets[curRuleSet] == nullptr) {
                 status = U_MEMORY_ALLOCATION_ERROR;
                 return;
             }
@@ -1611,8 +1631,8 @@ RuleBasedNumberFormat::init(const UnicodeString& rules, LocalizationInfo* locali
             start = p + 1;
         }
         ruleSetDescriptions[curRuleSet].setTo(description, start, description.length() - start);
-        ruleSets[curRuleSet] = new NFRuleSet(this, ruleSetDescriptions, curRuleSet, status);
-        if (ruleSets[curRuleSet] == 0) {
+        fRuleSets[curRuleSet] = new NFRuleSet(this, ruleSetDescriptions, curRuleSet, status);
+        if (fRuleSets[curRuleSet] == nullptr) {
             status = U_MEMORY_ALLOCATION_ERROR;
             return;
         }
@@ -1630,11 +1650,11 @@ RuleBasedNumberFormat::init(const UnicodeString& rules, LocalizationInfo* locali
     initDefaultRuleSet();
 
     // finally, we can go back through the temporary descriptions
-    // list and finish seting up the substructure (and we throw
+    // list and finish setting up the substructure (and we throw
     // away the temporary descriptions as we go)
     {
         for (int i = 0; i < numRuleSets; i++) {
-            ruleSets[i]->parseRules(ruleSetDescriptions[i], status);
+            fRuleSets[i]->parseRules(ruleSetDescriptions[i], status);
         }
     }
 
@@ -1680,7 +1700,7 @@ RuleBasedNumberFormat::setContext(UDisplayContext value, UErrorCode& status)
         if ( capitalizationBrkIter == NULL && (value==UDISPCTX_CAPITALIZATION_FOR_BEGINNING_OF_SENTENCE ||
                 (value==UDISPCTX_CAPITALIZATION_FOR_UI_LIST_OR_MENU && capitalizationForUIListMenu) ||
                 (value==UDISPCTX_CAPITALIZATION_FOR_STANDALONE && capitalizationForStandAlone)) ) {
-            UErrorCode status = U_ZERO_ERROR;
+            status = U_ZERO_ERROR;
             capitalizationBrkIter = BreakIterator::createSentenceInstance(locale, status);
             if (U_FAILURE(status)) {
                 delete capitalizationBrkIter;
@@ -1704,8 +1724,8 @@ RuleBasedNumberFormat::initCapitalizationContextInfo(const Locale& thelocale)
         int32_t len = 0;
         const int32_t * intVector = ures_getIntVector(rb, &len, &status);
         if (U_SUCCESS(status) && intVector != NULL && len >= 2) {
-            capitalizationForUIListMenu = intVector[0];
-            capitalizationForStandAlone = intVector[1];
+            capitalizationForUIListMenu = static_cast<UBool>(intVector[0]);
+            capitalizationForStandAlone = static_cast<UBool>(intVector[1]);
         }
     }
     ures_close(rb);
@@ -1740,7 +1760,7 @@ RuleBasedNumberFormat::stripWhitespace(UnicodeString& description)
             start = p + 1;
         }
 
-        // when we get here, we've seeked off the end of the sring, and
+        // when we get here, we've seeked off the end of the string, and
         // we terminate the loop (we continue until *start* is -1 rather
         // than until *p* is -1, because otherwise we'd miss the last
         // rule in the description)
@@ -1756,12 +1776,12 @@ RuleBasedNumberFormat::stripWhitespace(UnicodeString& description)
 void
 RuleBasedNumberFormat::dispose()
 {
-    if (ruleSets) {
-        for (NFRuleSet** p = ruleSets; *p; ++p) {
+    if (fRuleSets) {
+        for (NFRuleSet** p = fRuleSets; *p; ++p) {
             delete *p;
         }
-        uprv_free(ruleSets);
-        ruleSets = NULL;
+        uprv_free(fRuleSets);
+        fRuleSets = NULL;
     }
 
     if (ruleSetDescriptions) {
@@ -1811,7 +1831,7 @@ const RuleBasedCollator*
 RuleBasedNumberFormat::getCollator() const
 {
 #if !UCONFIG_NO_COLLATION
-    if (!ruleSets) {
+    if (!fRuleSets) {
         return NULL;
     }
 
@@ -1820,7 +1840,7 @@ RuleBasedNumberFormat::getCollator() const
         // create a default collator based on the formatter's locale,
         // then pull out that collator's rules, append any additional
         // rules specified in the description, and create a _new_
-        // collator based on the combinaiton of those rules
+        // collator based on the combination of those rules
 
         UErrorCode status = U_ZERO_ERROR;
 
@@ -1863,13 +1883,10 @@ RuleBasedNumberFormat::initializeDecimalFormatSymbols(UErrorCode &status)
     // lazy-evaluate the DecimalFormatSymbols object.  This object
     // is shared by all DecimalFormat instances belonging to this
     // formatter
-    if (decimalFormatSymbols == NULL) {
-        DecimalFormatSymbols* temp = new DecimalFormatSymbols(locale, status);
+    if (decimalFormatSymbols == nullptr) {
+        LocalPointer<DecimalFormatSymbols> temp(new DecimalFormatSymbols(locale, status), status);
         if (U_SUCCESS(status)) {
-            decimalFormatSymbols = temp;
-        }
-        else {
-            delete temp;
+            decimalFormatSymbols = temp.orphan();
         }
     }
     return decimalFormatSymbols;
@@ -1889,17 +1906,14 @@ NFRule*
 RuleBasedNumberFormat::initializeDefaultInfinityRule(UErrorCode &status)
 {
     if (U_FAILURE(status)) {
-        return NULL;
+        return nullptr;
     }
     if (defaultInfinityRule == NULL) {
         UnicodeString rule(UNICODE_STRING_SIMPLE("Inf: "));
         rule.append(getDecimalFormatSymbols()->getSymbol(DecimalFormatSymbols::kInfinitySymbol));
-        NFRule* temp = new NFRule(this, rule, status);
+        LocalPointer<NFRule> temp(new NFRule(this, rule, status), status);
         if (U_SUCCESS(status)) {
-            defaultInfinityRule = temp;
-        }
-        else {
-            delete temp;
+            defaultInfinityRule = temp.orphan();
         }
     }
     return defaultInfinityRule;
@@ -1915,17 +1929,14 @@ NFRule*
 RuleBasedNumberFormat::initializeDefaultNaNRule(UErrorCode &status)
 {
     if (U_FAILURE(status)) {
-        return NULL;
+        return nullptr;
     }
-    if (defaultNaNRule == NULL) {
+    if (defaultNaNRule == nullptr) {
         UnicodeString rule(UNICODE_STRING_SIMPLE("NaN: "));
         rule.append(getDecimalFormatSymbols()->getSymbol(DecimalFormatSymbols::kNaNSymbol));
-        NFRule* temp = new NFRule(this, rule, status);
+        LocalPointer<NFRule> temp(new NFRule(this, rule, status), status);
         if (U_SUCCESS(status)) {
-            defaultNaNRule = temp;
-        }
-        else {
-            delete temp;
+            defaultNaNRule = temp.orphan();
         }
     }
     return defaultNaNRule;
@@ -1963,15 +1974,15 @@ RuleBasedNumberFormat::adoptDecimalFormatSymbols(DecimalFormatSymbols* symbolsTo
         defaultNaNRule = NULL;
         initializeDefaultNaNRule(status); // Reset with the new DecimalFormatSymbols
 
-        if (ruleSets) {
+        if (fRuleSets) {
             for (int32_t i = 0; i < numRuleSets; i++) {
-                ruleSets[i]->setDecimalFormatSymbols(*symbolsToAdopt, status);
+                fRuleSets[i]->setDecimalFormatSymbols(*symbolsToAdopt, status);
             }
         }
     }
 }
 
-// Setting the symbols is equlivalent to adopting a newly created localized symbols.
+// Setting the symbols is equivalent to adopting a newly created localized symbols.
 void
 RuleBasedNumberFormat::setDecimalFormatSymbols(const DecimalFormatSymbols& symbols)
 {
@@ -1983,7 +1994,11 @@ RuleBasedNumberFormat::createPluralFormat(UPluralType pluralType,
                                           const UnicodeString &pattern,
                                           UErrorCode& status) const
 {
-    return new PluralFormat(locale, pluralType, pattern, status);
+    auto *pf = new PluralFormat(locale, pluralType, pattern, status);
+    if (pf == nullptr) {
+        status = U_MEMORY_ALLOCATION_ERROR;
+    }
+    return pf;
 }
 
 /**
@@ -1991,7 +2006,7 @@ RuleBasedNumberFormat::createPluralFormat(UPluralType pluralType,
  * @return A rounding mode
  */
 DecimalFormat::ERoundingMode RuleBasedNumberFormat::getRoundingMode() const {
-    return roundingMode;
+    return fRoundingMode;
 }
 
 /**
@@ -2000,7 +2015,7 @@ DecimalFormat::ERoundingMode RuleBasedNumberFormat::getRoundingMode() const {
  * @param roundingMode A rounding mode
  */
 void RuleBasedNumberFormat::setRoundingMode(DecimalFormat::ERoundingMode roundingMode) {
-    this->roundingMode = roundingMode;
+    fRoundingMode = roundingMode;
 }
 
 U_NAMESPACE_END
index b998c69..671149f 100644 (file)
@@ -29,262 +29,10 @@ class TransliterationRuleData;
 
 /**
  * <code>RuleBasedTransliterator</code> is a transliterator
- * that reads a set of rules in order to determine how to perform
- * translations. Rule sets are stored in resource bundles indexed by
- * name. Rules within a rule set are separated by semicolons (';').
- * To include a literal semicolon, prefix it with a backslash ('\').
- * Whitespace, as defined by <code>Character.isWhitespace()</code>,
- * is ignored. If the first non-blank character on a line is '#',
- * the entire line is ignored as a comment. </p>
- * 
- * <p>Each set of rules consists of two groups, one forward, and one
- * reverse. This is a convention that is not enforced; rules for one
- * direction may be omitted, with the result that translations in
- * that direction will not modify the source text. In addition,
- * bidirectional forward-reverse rules may be specified for
- * symmetrical transformations.</p>
- * 
- * <p><b>Rule syntax</b> </p>
- * 
- * <p>Rule statements take one of the following forms: </p>
- * 
- * <dl>
- *     <dt><code>$alefmadda=\u0622;</code></dt>
- *     <dd><strong>Variable definition.</strong> The name on the
- *         left is assigned the text on the right. In this example,
- *         after this statement, instances of the left hand name,
- *         &quot;<code>$alefmadda</code>&quot;, will be replaced by
- *         the Unicode character U+0622. Variable names must begin
- *         with a letter and consist only of letters, digits, and
- *         underscores. Case is significant. Duplicate names cause
- *         an exception to be thrown, that is, variables cannot be
- *         redefined. The right hand side may contain well-formed
- *         text of any length, including no text at all (&quot;<code>$empty=;</code>&quot;).
- *         The right hand side may contain embedded <code>UnicodeSet</code>
- *         patterns, for example, &quot;<code>$softvowel=[eiyEIY]</code>&quot;.</dd>
- *     <dd>&nbsp;</dd>
- *     <dt><code>ai&gt;$alefmadda;</code></dt>
- *     <dd><strong>Forward translation rule.</strong> This rule
- *         states that the string on the left will be changed to the
- *         string on the right when performing forward
- *         transliteration.</dd>
- *     <dt>&nbsp;</dt>
- *     <dt><code>ai<$alefmadda;</code></dt>
- *     <dd><strong>Reverse translation rule.</strong> This rule
- *         states that the string on the right will be changed to
- *         the string on the left when performing reverse
- *         transliteration.</dd>
- * </dl>
- * 
- * <dl>
- *     <dt><code>ai<>$alefmadda;</code></dt>
- *     <dd><strong>Bidirectional translation rule.</strong> This
- *         rule states that the string on the right will be changed
- *         to the string on the left when performing forward
- *         transliteration, and vice versa when performing reverse
- *         transliteration.</dd>
- * </dl>
- * 
- * <p>Translation rules consist of a <em>match pattern</em> and an <em>output
- * string</em>. The match pattern consists of literal characters,
- * optionally preceded by context, and optionally followed by
- * context. Context characters, like literal pattern characters,
- * must be matched in the text being transliterated. However, unlike
- * literal pattern characters, they are not replaced by the output
- * text. For example, the pattern &quot;<code>abc{def}</code>&quot;
- * indicates the characters &quot;<code>def</code>&quot; must be
- * preceded by &quot;<code>abc</code>&quot; for a successful match.
- * If there is a successful match, &quot;<code>def</code>&quot; will
- * be replaced, but not &quot;<code>abc</code>&quot;. The final '<code>}</code>'
- * is optional, so &quot;<code>abc{def</code>&quot; is equivalent to
- * &quot;<code>abc{def}</code>&quot;. Another example is &quot;<code>{123}456</code>&quot;
- * (or &quot;<code>123}456</code>&quot;) in which the literal
- * pattern &quot;<code>123</code>&quot; must be followed by &quot;<code>456</code>&quot;.
- * </p>
- * 
- * <p>The output string of a forward or reverse rule consists of
- * characters to replace the literal pattern characters. If the
- * output string contains the character '<code>|</code>', this is
- * taken to indicate the location of the <em>cursor</em> after
- * replacement. The cursor is the point in the text at which the
- * next replacement, if any, will be applied. The cursor is usually
- * placed within the replacement text; however, it can actually be
- * placed into the precending or following context by using the
- * special character '<code>@</code>'. Examples:</p>
- * 
- * <blockquote>
- *     <p><code>a {foo} z &gt; | @ bar; # foo -&gt; bar, move cursor
- *     before a<br>
- *     {foo} xyz &gt; bar @@|; #&nbsp;foo -&gt; bar, cursor between
- *     y and z</code></p>
- * </blockquote>
- * 
- * <p><b>UnicodeSet</b></p>
- * 
- * <p><code>UnicodeSet</code> patterns may appear anywhere that
- * makes sense. They may appear in variable definitions.
- * Contrariwise, <code>UnicodeSet</code> patterns may themselves
- * contain variable references, such as &quot;<code>$a=[a-z];$not_a=[^$a]</code>&quot;,
- * or &quot;<code>$range=a-z;$ll=[$range]</code>&quot;.</p>
- * 
- * <p><code>UnicodeSet</code> patterns may also be embedded directly
- * into rule strings. Thus, the following two rules are equivalent:</p>
- * 
- * <blockquote>
- *     <p><code>$vowel=[aeiou]; $vowel&gt;'*'; # One way to do this<br>
- *     [aeiou]&gt;'*';
- *     &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#
- *     Another way</code></p>
- * </blockquote>
- * 
- * <p>See {@link UnicodeSet} for more documentation and examples.</p>
- * 
- * <p><b>Segments</b></p>
- * 
- * <p>Segments of the input string can be matched and copied to the
- * output string. This makes certain sets of rules simpler and more
- * general, and makes reordering possible. For example:</p>
- * 
- * <blockquote>
- *     <p><code>([a-z]) &gt; $1 $1;
- *     &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#
- *     double lowercase letters<br>
- *     ([:Lu:]) ([:Ll:]) &gt; $2 $1; # reverse order of Lu-Ll pairs</code></p>
- * </blockquote>
- * 
- * <p>The segment of the input string to be copied is delimited by
- * &quot;<code>(</code>&quot; and &quot;<code>)</code>&quot;. Up to
- * nine segments may be defined. Segments may not overlap. In the
- * output string, &quot;<code>$1</code>&quot; through &quot;<code>$9</code>&quot;
- * represent the input string segments, in left-to-right order of
- * definition.</p>
- * 
- * <p><b>Anchors</b></p>
- * 
- * <p>Patterns can be anchored to the beginning or the end of the text. This is done with the
- * special characters '<code>^</code>' and '<code>$</code>'. For example:</p>
- * 
- * <blockquote>
- *   <p><code>^ a&nbsp;&nbsp; &gt; 'BEG_A'; &nbsp;&nbsp;# match 'a' at start of text<br>
- *   &nbsp; a&nbsp;&nbsp; &gt; 'A';&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # match other instances
- *   of 'a'<br>
- *   &nbsp; z $ &gt; 'END_Z'; &nbsp;&nbsp;# match 'z' at end of text<br>
- *   &nbsp; z&nbsp;&nbsp; &gt; 'Z';&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # match other instances
- *   of 'z'</code></p>
- * </blockquote>
- * 
- * <p>It is also possible to match the beginning or the end of the text using a <code>UnicodeSet</code>.
- * This is done by including a virtual anchor character '<code>$</code>' at the end of the
- * set pattern. Although this is usually the match chafacter for the end anchor, the set will
- * match either the beginning or the end of the text, depending on its placement. For
- * example:</p>
- * 
- * <blockquote>
- *   <p><code>$x = [a-z$]; &nbsp;&nbsp;# match 'a' through 'z' OR anchor<br>
- *   $x 1&nbsp;&nbsp;&nbsp; &gt; 2;&nbsp;&nbsp; # match '1' after a-z or at the start<br>
- *   &nbsp;&nbsp; 3 $x &gt; 4; &nbsp;&nbsp;# match '3' before a-z or at the end</code></p>
- * </blockquote>
- * 
- * <p><b>Example</b> </p>
- * 
- * <p>The following example rules illustrate many of the features of
- * the rule language. </p>
- * 
- * <table border="0" cellpadding="4">
- *     <tr>
- *         <td valign="top">Rule 1.</td>
- *         <td valign="top" nowrap><code>abc{def}&gt;x|y</code></td>
- *     </tr>
- *     <tr>
- *         <td valign="top">Rule 2.</td>
- *         <td valign="top" nowrap><code>xyz&gt;r</code></td>
- *     </tr>
- *     <tr>
- *         <td valign="top">Rule 3.</td>
- *         <td valign="top" nowrap><code>yz&gt;q</code></td>
- *     </tr>
- * </table>
- * 
- * <p>Applying these rules to the string &quot;<code>adefabcdefz</code>&quot;
- * yields the following results: </p>
- * 
- * <table border="0" cellpadding="4">
- *     <tr>
- *         <td valign="top" nowrap><code>|adefabcdefz</code></td>
- *         <td valign="top">Initial state, no rules match. Advance
- *         cursor.</td>
- *     </tr>
- *     <tr>
- *         <td valign="top" nowrap><code>a|defabcdefz</code></td>
- *         <td valign="top">Still no match. Rule 1 does not match
- *         because the preceding context is not present.</td>
- *     </tr>
- *     <tr>
- *         <td valign="top" nowrap><code>ad|efabcdefz</code></td>
- *         <td valign="top">Still no match. Keep advancing until
- *         there is a match...</td>
- *     </tr>
- *     <tr>
- *         <td valign="top" nowrap><code>ade|fabcdefz</code></td>
- *         <td valign="top">...</td>
- *     </tr>
- *     <tr>
- *         <td valign="top" nowrap><code>adef|abcdefz</code></td>
- *         <td valign="top">...</td>
- *     </tr>
- *     <tr>
- *         <td valign="top" nowrap><code>adefa|bcdefz</code></td>
- *         <td valign="top">...</td>
- *     </tr>
- *     <tr>
- *         <td valign="top" nowrap><code>adefab|cdefz</code></td>
- *         <td valign="top">...</td>
- *     </tr>
- *     <tr>
- *         <td valign="top" nowrap><code>adefabc|defz</code></td>
- *         <td valign="top">Rule 1 matches; replace &quot;<code>def</code>&quot;
- *         with &quot;<code>xy</code>&quot; and back up the cursor
- *         to before the '<code>y</code>'.</td>
- *     </tr>
- *     <tr>
- *         <td valign="top" nowrap><code>adefabcx|yz</code></td>
- *         <td valign="top">Although &quot;<code>xyz</code>&quot; is
- *         present, rule 2 does not match because the cursor is
- *         before the '<code>y</code>', not before the '<code>x</code>'.
- *         Rule 3 does match. Replace &quot;<code>yz</code>&quot;
- *         with &quot;<code>q</code>&quot;.</td>
- *     </tr>
- *     <tr>
- *         <td valign="top" nowrap><code>adefabcxq|</code></td>
- *         <td valign="top">The cursor is at the end;
- *         transliteration is complete.</td>
- *     </tr>
- * </table>
- * 
- * <p>The order of rules is significant. If multiple rules may match
- * at some point, the first matching rule is applied. </p>
- * 
- * <p>Forward and reverse rules may have an empty output string.
- * Otherwise, an empty left or right hand side of any statement is a
- * syntax error. </p>
- * 
- * <p>Single quotes are used to quote any character other than a
- * digit or letter. To specify a single quote itself, inside or
- * outside of quotes, use two single quotes in a row. For example,
- * the rule &quot;<code>'&gt;'&gt;o''clock</code>&quot; changes the
- * string &quot;<code>&gt;</code>&quot; to the string &quot;<code>o'clock</code>&quot;.
- * </p>
- * 
- * <p><b>Notes</b> </p>
- * 
- * <p>While a RuleBasedTransliterator is being built, it checks that
- * the rules are added in proper order. For example, if the rule
- * &quot;a&gt;x&quot; is followed by the rule &quot;ab&gt;y&quot;,
- * then the second rule will throw an exception. The reason is that
- * the second rule can never be triggered, since the first rule
- * always matches anything it matches. In other words, the first
- * rule <em>masks</em> the second rule. </p>
- * 
+ * built from a set of rules as defined for
+ * Transliterator::createFromRules().
+ * See the C++ class Transliterator documentation for the rule syntax.
+ *
  * @author Alan Liu
  * @internal Use transliterator factory methods instead since this class will be removed in that release.
  */
index 6ed89b1..9932dbd 100644 (file)
@@ -194,9 +194,9 @@ const UnicodeFunctor* ParseData::lookupMatcher(UChar32 ch) const {
     const UnicodeFunctor* set = NULL;
     int32_t i = ch - data->variablesBase;
     if (i >= 0 && i < variablesVector->size()) {
-        int32_t i = ch - data->variablesBase;
-        set = (i < variablesVector->size()) ?
-            (UnicodeFunctor*) variablesVector->elementAt(i) : 0;
+        int32_t j = ch - data->variablesBase;
+        set = (j < variablesVector->size()) ?
+            (UnicodeFunctor*) variablesVector->elementAt(j) : 0;
     }
     return set;
 }
@@ -1108,8 +1108,8 @@ void TransliteratorParser::parseRules(const UnicodeString& rule,
             }
             
             data->variableNames.removeAll();
-            int32_t pos = UHASH_FIRST;
-            const UHashElement* he = variableNames.nextElement(pos);
+            int32_t p = UHASH_FIRST;
+            const UHashElement* he = variableNames.nextElement(p);
             while (he != NULL) {
                 UnicodeString* tempus = (UnicodeString*)(((UnicodeString*)(he->value.pointer))->clone());
                 if (tempus == NULL) {
@@ -1118,7 +1118,7 @@ void TransliteratorParser::parseRules(const UnicodeString& rule,
                 }
                 data->variableNames.put(*((UnicodeString*)(he->key.pointer)),
                     tempus, status);
-                he = variableNames.nextElement(pos);
+                he = variableNames.nextElement(p);
             }
         }
         variablesVector.removeAllElements();   // keeps them from getting deleted when we succeed
index ca1008c..a674d22 100644 (file)
@@ -28,6 +28,7 @@
 #include "patternprops.h"
 #include "putilimp.h"
 #include "cmemory.h"
+#include "cstr.h"
 #include "cstring.h"
 #include "uvectr32.h"
 #include "uvectr64.h"
@@ -3892,7 +3893,7 @@ void RegexCompile::stripNOPs() {
 //
 //------------------------------------------------------------------------------
 void RegexCompile::error(UErrorCode e) {
-    if (U_SUCCESS(*fStatus)) {
+    if (U_SUCCESS(*fStatus) || e == U_MEMORY_ALLOCATION_ERROR) {
         *fStatus = e;
         // Hmm. fParseErr (UParseError) line & offset fields are int32_t in public
         // API (see common/unicode/parseerr.h), while fLineNum and fCharNum are
@@ -4370,209 +4371,209 @@ static inline void addIdentifierIgnorable(UnicodeSet *set, UErrorCode& ec) {
 //     Includes trying the Java "properties" that aren't supported as
 //     normal ICU UnicodeSet properties
 //
-static const UChar posSetPrefix[] = {0x5b, 0x5c, 0x70, 0x7b, 0}; // "[\p{"
-static const UChar negSetPrefix[] = {0x5b, 0x5c, 0x50, 0x7b, 0}; // "[\P{"
 UnicodeSet *RegexCompile::createSetForProperty(const UnicodeString &propName, UBool negated) {
-    UnicodeString   setExpr;
-    UnicodeSet      *set;
-    uint32_t        usetFlags = 0;
 
     if (U_FAILURE(*fStatus)) {
-        return NULL;
+        return nullptr;
     }
+    LocalPointer<UnicodeSet> set;
+    UErrorCode status = U_ZERO_ERROR;
 
-    //
-    //  First try the property as we received it
-    //
-    if (negated) {
-        setExpr.append(negSetPrefix, -1);
-    } else {
-        setExpr.append(posSetPrefix, -1);
-    }
-    setExpr.append(propName);
-    setExpr.append(chRBrace);
-    setExpr.append(chRBracket);
-    if (fModeFlags & UREGEX_CASE_INSENSITIVE) {
-        usetFlags |= USET_CASE_INSENSITIVE;
-    }
-    set = new UnicodeSet(setExpr, usetFlags, NULL, *fStatus);
-    if (U_SUCCESS(*fStatus)) {
-       return set;
-    }
-    delete set;
-    set = NULL;
-
-    //
-    //  The property as it was didn't work.
-
-    //  Do [:word:]. It is not recognized as a property by UnicodeSet.  "word" not standard POSIX
-    //     or standard Java, but many other regular expression packages do recognize it.
-
-    if (propName.caseCompare(UNICODE_STRING_SIMPLE("word"), 0) == 0) {
-        *fStatus = U_ZERO_ERROR;
-        set = new UnicodeSet(*(fRXPat->fStaticSets[URX_ISWORD_SET]));
-        if (set == NULL) {
-            *fStatus = U_MEMORY_ALLOCATION_ERROR;
-            return set;
+    do {      // non-loop, exists to allow breaks from the block.
+        //
+        //  First try the property as we received it
+        //
+        UnicodeString   setExpr;
+        uint32_t        usetFlags = 0;
+        setExpr.append(u"[\\p{", -1);
+        setExpr.append(propName);
+        setExpr.append(u"}]", -1);
+        if (fModeFlags & UREGEX_CASE_INSENSITIVE) {
+            usetFlags |= USET_CASE_INSENSITIVE;
         }
-        if (negated) {
-            set->complement();
+        set.adoptInsteadAndCheckErrorCode(new UnicodeSet(setExpr, usetFlags, NULL, status), status);
+        if (U_SUCCESS(status) || status == U_MEMORY_ALLOCATION_ERROR) {
+            break;
         }
-        return set;
-    }
 
+        //
+        //  The incoming property wasn't directly recognized by ICU.
 
-    //    Do Java fixes -
-    //       InGreek -> InGreek or Coptic, that being the official Unicode name for that block.
-    //       InCombiningMarksforSymbols -> InCombiningDiacriticalMarksforSymbols.
-    //
-    //       Note on Spaces:  either "InCombiningMarksForSymbols" or "InCombining Marks for Symbols"
-    //                        is accepted by Java.  The property part of the name is compared
-    //                        case-insenstively.  The spaces must be exactly as shown, either
-    //                        all there, or all omitted, with exactly one at each position
-    //                        if they are present.  From checking against JDK 1.6
-    //
-    //       This code should be removed when ICU properties support the Java  compatibility names
-    //          (ICU 4.0?)
-    //
-    UnicodeString mPropName = propName;
-    if (mPropName.caseCompare(UNICODE_STRING_SIMPLE("InGreek"), 0) == 0) {
-        mPropName = UNICODE_STRING_SIMPLE("InGreek and Coptic");
-    }
-    if (mPropName.caseCompare(UNICODE_STRING_SIMPLE("InCombining Marks for Symbols"), 0) == 0 ||
-        mPropName.caseCompare(UNICODE_STRING_SIMPLE("InCombiningMarksforSymbols"), 0) == 0) {
-        mPropName = UNICODE_STRING_SIMPLE("InCombining Diacritical Marks for Symbols");
-    }
-    else if (mPropName.compare(UNICODE_STRING_SIMPLE("all")) == 0) {
-        mPropName = UNICODE_STRING_SIMPLE("javaValidCodePoint");
-    }
+        //  Check [:word:] and [:all:]. These are not recognized as a properties by ICU UnicodeSet.
+        //     Java accepts 'word' with mixed case.
+        //     Java accepts 'all' only in all lower case.
 
-    //    See if the property looks like a Java "InBlockName", which
-    //    we will recast as "Block=BlockName"
-    //
-    if (mPropName.startsWith(u"In", 2) && propName.length()>=3) {
-        setExpr.truncate(4);   // Leaves "[\p{", or "[\P{"
-        setExpr.append(u"Block=", -1);
-        setExpr.append(UnicodeString(mPropName, 2));  // Property with the leading "In" removed.
-        setExpr.append(chRBrace);
-        setExpr.append(chRBracket);
-        *fStatus = U_ZERO_ERROR;
-        set = new UnicodeSet(setExpr, usetFlags, NULL, *fStatus);
-        if (U_SUCCESS(*fStatus)) {
-            return set;
+        status = U_ZERO_ERROR;
+        if (propName.caseCompare(u"word", -1, 0) == 0) {
+            set.adoptInsteadAndCheckErrorCode(new UnicodeSet(*(fRXPat->fStaticSets[URX_ISWORD_SET])), status);
+            break;
+        }
+        if (propName.compare(u"all", -1) == 0) {
+            set.adoptInsteadAndCheckErrorCode(new UnicodeSet(0, 0x10ffff), status);
+            break;
         }
-        delete set;
-        set = NULL;
-    }
 
-    if (propName.startsWith(UNICODE_STRING_SIMPLE("java")) ||
-        propName.compare(UNICODE_STRING_SIMPLE("all")) == 0)
-    {
-        UErrorCode localStatus = U_ZERO_ERROR;
-        //setExpr.remove();
-        set = new UnicodeSet();
-        //
-        //  Try the various Java specific properties.
-        //   These all begin with "java"
+
+        //    Do Java InBlock expressions
         //
-        if (mPropName.compare(UNICODE_STRING_SIMPLE("javaDefined")) == 0) {
-            addCategory(set, U_GC_CN_MASK, localStatus);
-            set->complement();
-        }
-        else if (mPropName.compare(UNICODE_STRING_SIMPLE("javaDigit")) == 0) {
-            addCategory(set, U_GC_ND_MASK, localStatus);
-        }
-        else if (mPropName.compare(UNICODE_STRING_SIMPLE("javaIdentifierIgnorable")) == 0) {
-            addIdentifierIgnorable(set, localStatus);
-        }
-        else if (mPropName.compare(UNICODE_STRING_SIMPLE("javaISOControl")) == 0) {
-            set->add(0, 0x1F).add(0x7F, 0x9F);
-        }
-        else if (mPropName.compare(UNICODE_STRING_SIMPLE("javaJavaIdentifierPart")) == 0) {
-            addCategory(set, U_GC_L_MASK, localStatus);
-            addCategory(set, U_GC_SC_MASK, localStatus);
-            addCategory(set, U_GC_PC_MASK, localStatus);
-            addCategory(set, U_GC_ND_MASK, localStatus);
-            addCategory(set, U_GC_NL_MASK, localStatus);
-            addCategory(set, U_GC_MC_MASK, localStatus);
-            addCategory(set, U_GC_MN_MASK, localStatus);
-            addIdentifierIgnorable(set, localStatus);
-        }
-        else if (mPropName.compare(UNICODE_STRING_SIMPLE("javaJavaIdentifierStart")) == 0) {
-            addCategory(set, U_GC_L_MASK, localStatus);
-            addCategory(set, U_GC_NL_MASK, localStatus);
-            addCategory(set, U_GC_SC_MASK, localStatus);
-            addCategory(set, U_GC_PC_MASK, localStatus);
-        }
-        else if (mPropName.compare(UNICODE_STRING_SIMPLE("javaLetter")) == 0) {
-            addCategory(set, U_GC_L_MASK, localStatus);
-        }
-        else if (mPropName.compare(UNICODE_STRING_SIMPLE("javaLetterOrDigit")) == 0) {
-            addCategory(set, U_GC_L_MASK, localStatus);
-            addCategory(set, U_GC_ND_MASK, localStatus);
-        }
-        else if (mPropName.compare(UNICODE_STRING_SIMPLE("javaLowerCase")) == 0) {
-            addCategory(set, U_GC_LL_MASK, localStatus);
-        }
-        else if (mPropName.compare(UNICODE_STRING_SIMPLE("javaMirrored")) == 0) {
-            set->applyIntPropertyValue(UCHAR_BIDI_MIRRORED, 1, localStatus);
-        }
-        else if (mPropName.compare(UNICODE_STRING_SIMPLE("javaSpaceChar")) == 0) {
-            addCategory(set, U_GC_Z_MASK, localStatus);
-        }
-        else if (mPropName.compare(UNICODE_STRING_SIMPLE("javaSupplementaryCodePoint")) == 0) {
-            set->add(0x10000, UnicodeSet::MAX_VALUE);
-        }
-        else if (mPropName.compare(UNICODE_STRING_SIMPLE("javaTitleCase")) == 0) {
-            addCategory(set, U_GC_LT_MASK, localStatus);
-        }
-        else if (mPropName.compare(UNICODE_STRING_SIMPLE("javaUnicodeIdentifierStart")) == 0) {
-            addCategory(set, U_GC_L_MASK, localStatus);
-            addCategory(set, U_GC_NL_MASK, localStatus);
-        }
-        else if (mPropName.compare(UNICODE_STRING_SIMPLE("javaUnicodeIdentifierPart")) == 0) {
-            addCategory(set, U_GC_L_MASK, localStatus);
-            addCategory(set, U_GC_PC_MASK, localStatus);
-            addCategory(set, U_GC_ND_MASK, localStatus);
-            addCategory(set, U_GC_NL_MASK, localStatus);
-            addCategory(set, U_GC_MC_MASK, localStatus);
-            addCategory(set, U_GC_MN_MASK, localStatus);
-            addIdentifierIgnorable(set, localStatus);
-        }
-        else if (mPropName.compare(UNICODE_STRING_SIMPLE("javaUpperCase")) == 0) {
-            addCategory(set, U_GC_LU_MASK, localStatus);
-        }
-        else if (mPropName.compare(UNICODE_STRING_SIMPLE("javaValidCodePoint")) == 0) {
-            set->add(0, UnicodeSet::MAX_VALUE);
-        }
-        else if (mPropName.compare(UNICODE_STRING_SIMPLE("javaWhitespace")) == 0) {
-            addCategory(set, U_GC_Z_MASK, localStatus);
-            set->removeAll(UnicodeSet().add(0xa0).add(0x2007).add(0x202f));
-            set->add(9, 0x0d).add(0x1c, 0x1f);
-        }
-        else if (mPropName.compare(UNICODE_STRING_SIMPLE("all")) == 0) {
-            set->add(0, UnicodeSet::MAX_VALUE);
+        UnicodeString mPropName = propName;
+        if (mPropName.startsWith(u"In", 2) && mPropName.length() >= 3) {
+            status = U_ZERO_ERROR;
+            set.adoptInsteadAndCheckErrorCode(new UnicodeSet(), status);
+            if (U_FAILURE(status)) {
+                break;
+            }
+            UnicodeString blockName(mPropName, 2);  // Property with the leading "In" removed.
+            set->applyPropertyAlias(UnicodeString(u"Block"), blockName, status);
+            break;
         }
 
-        if (U_SUCCESS(localStatus) && !set->isEmpty()) {
-            *fStatus = U_ZERO_ERROR;
-            if (usetFlags & USET_CASE_INSENSITIVE) {
+        //  Check for the Java form "IsBooleanPropertyValue", which we will recast
+        //  as "BooleanPropertyValue". The property value can be either a
+        //  a General Category or a Script Name.
+
+        if (propName.startsWith(u"Is", 2) && propName.length()>=3) {
+            mPropName.remove(0, 2);      // Strip the "Is"
+            if (mPropName.indexOf(u'=') >= 0) {
+                // Reject any "Is..." property expression containing an '=', that is,
+                // any non-binary property expression.
+                status = U_REGEX_PROPERTY_SYNTAX;
+                break;
+            }
+
+            if (mPropName.caseCompare(u"assigned", -1, 0) == 0) {
+                mPropName.setTo(u"unassigned", -1);
+                negated = !negated;
+            } else if (mPropName.caseCompare(u"TitleCase", -1, 0) == 0) {
+                mPropName.setTo(u"Titlecase_Letter", -1);
+            }
+
+            mPropName.insert(0, u"[\\p{", -1);
+            mPropName.append(u"}]", -1);
+            set.adoptInsteadAndCheckErrorCode(new UnicodeSet(mPropName, *fStatus), status);
+
+            if (U_SUCCESS(status) && !set->isEmpty() && (usetFlags & USET_CASE_INSENSITIVE)) {
                 set->closeOver(USET_CASE_INSENSITIVE);
             }
-            if (negated) {
+            break;
+
+        }
+
+        if (propName.startsWith(u"java", -1)) {
+            status = U_ZERO_ERROR;
+            set.adoptInsteadAndCheckErrorCode(new UnicodeSet(), status);
+            if (U_FAILURE(status)) {
+                break;
+            }
+            //
+            //  Try the various Java specific properties.
+            //   These all begin with "java"
+            //
+            if (propName.compare(u"javaDefined", -1) == 0) {
+                addCategory(set.getAlias(), U_GC_CN_MASK, status);
                 set->complement();
             }
-            return set;
+            else if (propName.compare(u"javaDigit", -1) == 0) {
+                addCategory(set.getAlias(), U_GC_ND_MASK, status);
+            }
+            else if (propName.compare(u"javaIdentifierIgnorable", -1) == 0) {
+                addIdentifierIgnorable(set.getAlias(), status);
+            }
+            else if (propName.compare(u"javaISOControl", -1) == 0) {
+                set->add(0, 0x1F).add(0x7F, 0x9F);
+            }
+            else if (propName.compare(u"javaJavaIdentifierPart", -1) == 0) {
+                addCategory(set.getAlias(), U_GC_L_MASK, status);
+                addCategory(set.getAlias(), U_GC_SC_MASK, status);
+                addCategory(set.getAlias(), U_GC_PC_MASK, status);
+                addCategory(set.getAlias(), U_GC_ND_MASK, status);
+                addCategory(set.getAlias(), U_GC_NL_MASK, status);
+                addCategory(set.getAlias(), U_GC_MC_MASK, status);
+                addCategory(set.getAlias(), U_GC_MN_MASK, status);
+                addIdentifierIgnorable(set.getAlias(), status);
+            }
+            else if (propName.compare(u"javaJavaIdentifierStart", -1) == 0) {
+                addCategory(set.getAlias(), U_GC_L_MASK, status);
+                addCategory(set.getAlias(), U_GC_NL_MASK, status);
+                addCategory(set.getAlias(), U_GC_SC_MASK, status);
+                addCategory(set.getAlias(), U_GC_PC_MASK, status);
+            }
+            else if (propName.compare(u"javaLetter", -1) == 0) {
+                addCategory(set.getAlias(), U_GC_L_MASK, status);
+            }
+            else if (propName.compare(u"javaLetterOrDigit", -1) == 0) {
+                addCategory(set.getAlias(), U_GC_L_MASK, status);
+                addCategory(set.getAlias(), U_GC_ND_MASK, status);
+            }
+            else if (propName.compare(u"javaLowerCase", -1) == 0) {
+                addCategory(set.getAlias(), U_GC_LL_MASK, status);
+            }
+            else if (propName.compare(u"javaMirrored", -1) == 0) {
+                set->applyIntPropertyValue(UCHAR_BIDI_MIRRORED, 1, status);
+            }
+            else if (propName.compare(u"javaSpaceChar", -1) == 0) {
+                addCategory(set.getAlias(), U_GC_Z_MASK, status);
+            }
+            else if (propName.compare(u"javaSupplementaryCodePoint", -1) == 0) {
+                set->add(0x10000, UnicodeSet::MAX_VALUE);
+            }
+            else if (propName.compare(u"javaTitleCase", -1) == 0) {
+                addCategory(set.getAlias(), U_GC_LT_MASK, status);
+            }
+            else if (propName.compare(u"javaUnicodeIdentifierStart", -1) == 0) {
+                addCategory(set.getAlias(), U_GC_L_MASK, status);
+                addCategory(set.getAlias(), U_GC_NL_MASK, status);
+            }
+            else if (propName.compare(u"javaUnicodeIdentifierPart", -1) == 0) {
+                addCategory(set.getAlias(), U_GC_L_MASK, status);
+                addCategory(set.getAlias(), U_GC_PC_MASK, status);
+                addCategory(set.getAlias(), U_GC_ND_MASK, status);
+                addCategory(set.getAlias(), U_GC_NL_MASK, status);
+                addCategory(set.getAlias(), U_GC_MC_MASK, status);
+                addCategory(set.getAlias(), U_GC_MN_MASK, status);
+                addIdentifierIgnorable(set.getAlias(), status);
+            }
+            else if (propName.compare(u"javaUpperCase", -1) == 0) {
+                addCategory(set.getAlias(), U_GC_LU_MASK, status);
+            }
+            else if (propName.compare(u"javaValidCodePoint", -1) == 0) {
+                set->add(0, UnicodeSet::MAX_VALUE);
+            }
+            else if (propName.compare(u"javaWhitespace", -1) == 0) {
+                addCategory(set.getAlias(), U_GC_Z_MASK, status);
+                set->removeAll(UnicodeSet().add(0xa0).add(0x2007).add(0x202f));
+                set->add(9, 0x0d).add(0x1c, 0x1f);
+            } else {
+                status = U_REGEX_PROPERTY_SYNTAX;
+            }
+
+            if (U_SUCCESS(status) && !set->isEmpty() && (usetFlags & USET_CASE_INSENSITIVE)) {
+                set->closeOver(USET_CASE_INSENSITIVE);
+            }
+            break;
+        }
+
+        // Unrecognized property. ICU didn't like it as it was, and none of the Java compatibility
+        // extensions matched it.
+        status = U_REGEX_PROPERTY_SYNTAX;
+    } while (false);   // End of do loop block. Code above breaks out of the block on success or hard failure.
+
+    if (U_SUCCESS(status)) {
+        U_ASSERT(set.isValid());
+        if (negated) {
+            set->complement();
         }
-        delete set;
-        set = NULL;
+        return set.orphan();
+    } else {
+        if (status == U_ILLEGAL_ARGUMENT_ERROR) {
+            status = U_REGEX_PROPERTY_SYNTAX;
+        }
+        error(status);
+        return nullptr;
     }
-    error(*fStatus);
-    return NULL;
 }
 
 
-
 //
 //  SetEval   Part of the evaluation of [set expressions].
 //            Perform any pending (stacked) operations with precedence
index 66de31d..343ef78 100644 (file)
@@ -168,10 +168,18 @@ void U_CALLCONV Region::loadRegionData(UErrorCode &status) {
         continents->addElement(continentName,status);
     }
 
+    UResourceBundle *groupingBundle = nullptr;
     while ( ures_hasNext(groupingContainment.getAlias()) ) {
-        UnicodeString *groupingName = new UnicodeString(ures_getNextUnicodeString(groupingContainment.getAlias(),NULL,&status));
-        groupings->addElement(groupingName,status);
+        groupingBundle = ures_getNextResource(groupingContainment.getAlias(), groupingBundle, &status);
+        if (U_FAILURE(status)) {
+            break;
+        }
+        UnicodeString *groupingName = new UnicodeString(ures_getKey(groupingBundle), -1, US_INV);
+        if (groupingName) {
+            groupings->addElement(groupingName,status);
+        }
     }
+    ures_close(groupingBundle);
 
     for ( int32_t i = 0 ; i < allRegions->size() ; i++ ) {
         LocalPointer<Region> r(new Region(), status);
@@ -182,7 +190,7 @@ void U_CALLCONV Region::loadRegionData(UErrorCode &status) {
         r->idStr = *regionName;
 
         r->idStr.extract(0,r->idStr.length(),r->id,sizeof(r->id),US_INV);
-        r->type = URGN_TERRITORY; // Only temporary - figure out the real type later once the aliases are known.
+        r->fType = URGN_TERRITORY; // Only temporary - figure out the real type later once the aliases are known.
 
         Formattable result;
         UErrorCode ps = U_ZERO_ERROR;
@@ -190,7 +198,7 @@ void U_CALLCONV Region::loadRegionData(UErrorCode &status) {
         if ( U_SUCCESS(ps) ) {
             r->code = result.getLong(); // Convert string to number
             uhash_iput(newNumericCodeMap.getAlias(),r->code,(void *)(r.getAlias()),&status);
-            r->type = URGN_SUBCONTINENT;
+            r->fType = URGN_SUBCONTINENT;
         } else {
             r->code = -1;
         }
@@ -231,9 +239,9 @@ void U_CALLCONV Region::loadRegionData(UErrorCode &status) {
                 } else {
                     aliasFromRegion->code = -1;
                 }
-                aliasFromRegion->type = URGN_DEPRECATED;
+                aliasFromRegion->fType = URGN_DEPRECATED;
             } else {
-                aliasFromRegion->type = URGN_DEPRECATED;
+                aliasFromRegion->fType = URGN_DEPRECATED;
             }
 
             {
@@ -290,26 +298,26 @@ void U_CALLCONV Region::loadRegionData(UErrorCode &status) {
     UnicodeString WORLD_ID_STRING(WORLD_ID);
     r = (Region *) uhash_get(newRegionIDMap.getAlias(),(void *)&WORLD_ID_STRING);
     if ( r ) {
-        r->type = URGN_WORLD;
+        r->fType = URGN_WORLD;
     }
 
     UnicodeString UNKNOWN_REGION_ID_STRING(UNKNOWN_REGION_ID);
     r = (Region *) uhash_get(newRegionIDMap.getAlias(),(void *)&UNKNOWN_REGION_ID_STRING);
     if ( r ) {
-        r->type = URGN_UNKNOWN;
+        r->fType = URGN_UNKNOWN;
     }
 
     for ( int32_t i = 0 ; i < continents->size() ; i++ ) {
         r = (Region *) uhash_get(newRegionIDMap.getAlias(),(void *)continents->elementAt(i));
         if ( r ) {
-            r->type = URGN_CONTINENT;
+            r->fType = URGN_CONTINENT;
         }
     }
 
     for ( int32_t i = 0 ; i < groupings->size() ; i++ ) {
         r = (Region *) uhash_get(newRegionIDMap.getAlias(),(void *)groupings->elementAt(i));
         if ( r ) {
-            r->type = URGN_GROUPING;
+            r->fType = URGN_GROUPING;
         }
     }
 
@@ -319,7 +327,7 @@ void U_CALLCONV Region::loadRegionData(UErrorCode &status) {
     UnicodeString OUTLYING_OCEANIA_REGION_ID_STRING(OUTLYING_OCEANIA_REGION_ID);
     r = (Region *) uhash_get(newRegionIDMap.getAlias(),(void *)&OUTLYING_OCEANIA_REGION_ID_STRING);
     if ( r ) {
-        r->type = URGN_SUBCONTINENT;
+        r->fType = URGN_SUBCONTINENT;
     }
 
     // Load territory containment info from the supplemental data.
@@ -356,7 +364,7 @@ void U_CALLCONV Region::loadRegionData(UErrorCode &status) {
                 // Set the parent region to be the containing region of the child.
                 // Regions of type GROUPING can't be set as the parent, since another region
                 // such as a SUBCONTINENT, CONTINENT, or WORLD must always be the parent.
-                if ( parentRegion->type != URGN_GROUPING) {
+                if ( parentRegion->fType != URGN_GROUPING) {
                     childRegion->containingRegion = parentRegion;
                 }
             }
@@ -367,15 +375,15 @@ void U_CALLCONV Region::loadRegionData(UErrorCode &status) {
     int32_t pos = UHASH_FIRST;
     while ( const UHashElement* element = uhash_nextElement(newRegionIDMap.getAlias(),&pos)) {
         Region *ar = (Region *)element->value.pointer;
-        if ( availableRegions[ar->type] == NULL ) {
+        if ( availableRegions[ar->fType] == NULL ) {
             LocalPointer<UVector> newAr(new UVector(uprv_deleteUObject, uhash_compareUnicodeString, status), status);
-            availableRegions[ar->type] = newAr.orphan();
+            availableRegions[ar->fType] = newAr.orphan();
         }
         LocalPointer<UnicodeString> arString(new UnicodeString(ar->idStr), status);
         if( U_FAILURE(status) ) {
             return;  // error out
         }
-        availableRegions[ar->type]->addElement((void *)arString.orphan(),status);
+        availableRegions[ar->fType]->addElement((void *)arString.orphan(),status);
     }
     
     ucln_i18n_registerCleanup(UCLN_I18N_REGION, region_cleanup);
@@ -416,7 +424,7 @@ void Region::cleanupRegionData() {
 
 Region::Region ()
         : code(-1),
-          type(URGN_UNKNOWN),
+          fType(URGN_UNKNOWN),
           containingRegion(NULL),
           containedRegions(NULL),
           preferredValues(NULL) {
@@ -481,7 +489,7 @@ Region::getInstance(const char *region_code, UErrorCode &status) {
         return NULL;
     }
 
-    if ( r->type == URGN_DEPRECATED && r->preferredValues->size() == 1) {
+    if ( r->fType == URGN_DEPRECATED && r->preferredValues->size() == 1) {
         StringEnumeration *pv = r->getPreferredValues(status);
         pv->reset(status);
         const UnicodeString *ustr = pv->snext(status);
@@ -529,7 +537,7 @@ Region::getInstance (int32_t code, UErrorCode &status) {
         return NULL;
     }
 
-    if ( r->type == URGN_DEPRECATED && r->preferredValues->size() == 1) {
+    if ( r->fType == URGN_DEPRECATED && r->preferredValues->size() == 1) {
         StringEnumeration *pv = r->getPreferredValues(status);
         pv->reset(status);
         const UnicodeString *ustr = pv->snext(status);
@@ -580,7 +588,7 @@ Region::getContainingRegion(URegionType type) const {
         return NULL;
     }
 
-    return ( containingRegion->type == type )? containingRegion: containingRegion->getContainingRegion(type);
+    return ( containingRegion->fType == type)? containingRegion: containingRegion->getContainingRegion(type);
 }
 
 /**
@@ -618,9 +626,9 @@ Region::getContainedRegions( URegionType type, UErrorCode &status ) const {
     StringEnumeration *cr = getContainedRegions(status);
 
     for ( int32_t i = 0 ; i < cr->count(status) ; i++ ) {
-        const char *id = cr->next(NULL,status);
-        const Region *r = Region::getInstance(id,status);
-        if ( r->getType() == type ) {
+        const char *regionId = cr->next(NULL,status);
+        const Region *r = Region::getInstance(regionId,status);
+        if ( r->getType() == type) {
             result->addElement((void *)&r->idStr,status);
         } else {
             StringEnumeration *children = r->getContainedRegions(type, status);
@@ -672,7 +680,7 @@ Region::contains(const Region &other) const {
 StringEnumeration*
 Region::getPreferredValues(UErrorCode &status) const {
     umtx_initOnce(gRegionDataInitOnce, &loadRegionData, status); // returns immediately if U_FAILURE(status)
-    if (U_FAILURE(status) ||  type != URGN_DEPRECATED) {
+    if (U_FAILURE(status) || fType != URGN_DEPRECATED) {
         return NULL;
     }
     return new RegionNameEnumeration(preferredValues,status);
@@ -697,7 +705,7 @@ Region::getNumericCode() const {
  */
 URegionType
 Region::getType() const {
-    return type;
+    return fType;
 }
 
 RegionNameEnumeration::RegionNameEnumeration(UVector *fNameList, UErrorCode& status) {
index aad026c..1a4da0f 100644 (file)
@@ -51,13 +51,13 @@ U_NAMESPACE_BEGIN
 // RelativeDateTimeFormatter specific data for a single locale
 class RelativeDateTimeCacheData: public SharedObject {
 public:
-    RelativeDateTimeCacheData() : combinedDateAndTime(NULL) {
+    RelativeDateTimeCacheData() : combinedDateAndTime(nullptr) {
         // Initialize the cache arrays
         for (int32_t style = 0; style < UDAT_STYLE_COUNT; ++style) {
-            for (int32_t relUnit = 0; relUnit < UDAT_RELATIVE_UNIT_COUNT; ++relUnit) {
+            for (int32_t relUnit = 0; relUnit < UDAT_REL_UNIT_COUNT; ++relUnit) {
                 for (int32_t pl = 0; pl < StandardPlural::COUNT; ++pl) {
-                    relativeUnitsFormatters[style][relUnit][0][pl] = NULL;
-                    relativeUnitsFormatters[style][relUnit][1][pl] = NULL;
+                    relativeUnitsFormatters[style][relUnit][0][pl] = nullptr;
+                    relativeUnitsFormatters[style][relUnit][1][pl] = nullptr;
                 }
             }
         }
@@ -74,7 +74,7 @@ public:
     // e.g., Next Tuesday; Yesterday; etc. For third index, 0
     // means past, e.g., 5 days ago; 1 means future, e.g., in 5 days.
     SimpleFormatter *relativeUnitsFormatters[UDAT_STYLE_COUNT]
-        [UDAT_RELATIVE_UNIT_COUNT][2][StandardPlural::COUNT];
+        [UDAT_REL_UNIT_COUNT][2][StandardPlural::COUNT];
 
     const UnicodeString& getAbsoluteUnitString(int32_t fStyle,
                                                UDateAbsoluteUnit unit,
@@ -83,6 +83,10 @@ public:
                                                     UDateRelativeUnit unit,
                                                     int32_t pastFutureIndex,
                                                     int32_t pluralUnit) const;
+    const SimpleFormatter* getRelativeDateTimeUnitFormatter(int32_t fStyle,
+                                                    URelativeDateTimeUnit unit,
+                                                    int32_t pastFutureIndex,
+                                                    int32_t pluralUnit) const;
 
     const UnicodeString emptyString;
 
@@ -107,7 +111,7 @@ private:
 RelativeDateTimeCacheData::~RelativeDateTimeCacheData() {
     // clear out the cache arrays
     for (int32_t style = 0; style < UDAT_STYLE_COUNT; ++style) {
-        for (int32_t relUnit = 0; relUnit < UDAT_RELATIVE_UNIT_COUNT; ++relUnit) {
+        for (int32_t relUnit = 0; relUnit < UDAT_REL_UNIT_COUNT; ++relUnit) {
             for (int32_t pl = 0; pl < StandardPlural::COUNT; ++pl) {
                 delete relativeUnitsFormatters[style][relUnit][0][pl];
                 delete relativeUnitsFormatters[style][relUnit][1][pl];
@@ -131,20 +135,41 @@ const UnicodeString& RelativeDateTimeCacheData::getAbsoluteUnitString(
     return emptyString;
 }
 
- // Use fallback cache for SimpleFormatter relativeUnits.
  const SimpleFormatter* RelativeDateTimeCacheData::getRelativeUnitFormatter(
         int32_t fStyle,
         UDateRelativeUnit unit,
         int32_t pastFutureIndex,
         int32_t pluralUnit) const {
+   URelativeDateTimeUnit rdtunit = UDAT_REL_UNIT_COUNT;
+   switch (unit) {
+       case UDAT_RELATIVE_YEARS:   rdtunit = UDAT_REL_UNIT_YEAR; break;
+       case UDAT_RELATIVE_MONTHS:  rdtunit = UDAT_REL_UNIT_MONTH; break;
+       case UDAT_RELATIVE_WEEKS:   rdtunit = UDAT_REL_UNIT_WEEK; break;
+       case UDAT_RELATIVE_DAYS:    rdtunit = UDAT_REL_UNIT_DAY; break;
+       case UDAT_RELATIVE_HOURS:   rdtunit = UDAT_REL_UNIT_HOUR; break;
+       case UDAT_RELATIVE_MINUTES: rdtunit = UDAT_REL_UNIT_MINUTE; break;
+       case UDAT_RELATIVE_SECONDS: rdtunit = UDAT_REL_UNIT_SECOND; break;
+       default: // a unit that the above method does not handle
+            return nullptr;
+   }
+
+   return getRelativeDateTimeUnitFormatter(fStyle, rdtunit, pastFutureIndex, pluralUnit);
+ }
+
+ // Use fallback cache for SimpleFormatter relativeUnits.
+ const SimpleFormatter* RelativeDateTimeCacheData::getRelativeDateTimeUnitFormatter(
+        int32_t fStyle,
+        URelativeDateTimeUnit unit,
+        int32_t pastFutureIndex,
+        int32_t pluralUnit) const {
     int32_t style = fStyle;
     do {
-        if (relativeUnitsFormatters[style][unit][pastFutureIndex][pluralUnit] != NULL) {
+        if (relativeUnitsFormatters[style][unit][pastFutureIndex][pluralUnit] != nullptr) {
             return relativeUnitsFormatters[style][unit][pastFutureIndex][pluralUnit];
         }
         style = fallBackCache[style];
     } while (style != -1);
-    return NULL;  // No formatter found.
+    return nullptr;  // No formatter found.
  }
 
 static UBool getStringWithFallback(
@@ -217,23 +242,35 @@ struct RelDateTimeFmtDataSink : public ResourceSink {
         // Converts the generic units to UDAT_RELATIVE version.
         switch (genUnit) {
             case SECOND:
-                return UDAT_RELATIVE_SECONDS;
+                return UDAT_REL_UNIT_SECOND;
             case MINUTE:
-                return UDAT_RELATIVE_MINUTES;
+                return UDAT_REL_UNIT_MINUTE;
             case HOUR:
-                return UDAT_RELATIVE_HOURS;
+                return UDAT_REL_UNIT_HOUR;
             case DAY:
-                return UDAT_RELATIVE_DAYS;
+                return UDAT_REL_UNIT_DAY;
             case WEEK:
-                return UDAT_RELATIVE_WEEKS;
+                return UDAT_REL_UNIT_WEEK;
             case MONTH:
-                return UDAT_RELATIVE_MONTHS;
-            /*
-             * case QUARTER:
-             * return UDATE_RELATIVE_QUARTERS;
-             */
+                return UDAT_REL_UNIT_MONTH;
+            case QUARTER:
+                return UDAT_REL_UNIT_QUARTER;
             case YEAR:
-                return UDAT_RELATIVE_YEARS;
+                return UDAT_REL_UNIT_YEAR;
+            case SUNDAY:
+                return UDAT_REL_UNIT_SUNDAY;
+            case MONDAY:
+                return UDAT_REL_UNIT_MONDAY;
+            case TUESDAY:
+                return UDAT_REL_UNIT_TUESDAY;
+            case WEDNESDAY:
+                return UDAT_REL_UNIT_WEDNESDAY;
+            case THURSDAY:
+                return UDAT_REL_UNIT_THURSDAY;
+            case FRIDAY:
+                return UDAT_REL_UNIT_FRIDAY;
+            case SATURDAY:
+                return UDAT_REL_UNIT_SATURDAY;
             default:
                 return -1;
         }
@@ -248,10 +285,8 @@ struct RelDateTimeFmtDataSink : public ResourceSink {
                 return UDAT_ABSOLUTE_WEEK;
             case MONTH:
                 return UDAT_ABSOLUTE_MONTH;
-            /* TODO: Add in QUARTER
-             *  case QUARTER:
-             * return UDAT_ABSOLUTE_QUARTER;
-             */
+            case QUARTER:
+                return UDAT_ABSOLUTE_QUARTER;
             case YEAR:
                 return UDAT_ABSOLUTE_YEAR;
             case SUNDAY:
@@ -312,7 +347,7 @@ struct RelDateTimeFmtDataSink : public ResourceSink {
 
     // Utility functions
     static UDateRelativeDateTimeFormatterStyle styleFromString(const char *s) {
-        int32_t len = uprv_strlen(s);
+        int32_t len = static_cast<int32_t>(uprv_strlen(s));
         if (len >= 7 && uprv_strcmp(s + len - 7, "-narrow") == 0) {
             return UDAT_STYLE_NARROW;
         }
@@ -430,7 +465,7 @@ struct RelDateTimeFmtDataSink : public ResourceSink {
                 }
 
                 int32_t relUnitIndex = relUnitFromGeneric(genericUnit);
-                if (relUnitIndex == UDAT_RELATIVE_SECONDS && uprv_strcmp(key, "0") == 0 &&
+                if (relUnitIndex == UDAT_REL_UNIT_SECOND && uprv_strcmp(key, "0") == 0 &&
                     outputData.absoluteUnits[style][UDAT_ABSOLUTE_NOW][UDAT_DIRECTION_PLAIN].isEmpty()) {
                     // Handle "NOW"
                     outputData.absoluteUnits[style][UDAT_ABSOLUTE_NOW]
@@ -463,10 +498,10 @@ struct RelDateTimeFmtDataSink : public ResourceSink {
                         outputData.relativeUnitsFormatters[style][relUnitIndex]
                         [pastFutureIndex];
                     // Only set if not already established.
-                    if (patterns[pluralIndex] == NULL) {
+                    if (patterns[pluralIndex] == nullptr) {
                         patterns[pluralIndex] = new SimpleFormatter(
                             value.getUnicodeString(errorCode), 0, 1, errorCode);
-                        if (patterns[pluralIndex] == NULL) {
+                        if (patterns[pluralIndex] == nullptr) {
                             errorCode = U_MEMORY_ALLOCATION_ERROR;
                         }
                     }
@@ -546,7 +581,7 @@ struct RelDateTimeFmtDataSink : public ResourceSink {
                 consumeAlias(key, value, errorCode);
             } else {
                 style = styleFromString(key);
-                int32_t unitSize = uprv_strlen(key) - styleSuffixLength(style);
+                int32_t unitSize = static_cast<int32_t>(uprv_strlen(key)) - styleSuffixLength(style);
                 genericUnit = unitOrNegativeFromString(key, unitSize);
                 if (style >= 0 && genericUnit != INVALID_UNIT) {
                     consumeTimeUnit(key, value, errorCode);
@@ -570,8 +605,14 @@ static void loadWeekdayNames(UnicodeString absoluteUnits[UDAT_STYLE_COUNT]
                                  [UDAT_ABSOLUTE_UNIT_COUNT][UDAT_DIRECTION_COUNT],
                              const char* localeId,
                              UErrorCode& status) {
+    if (U_FAILURE(status)) {
+        return;
+    }
     Locale locale(localeId);
     DateFormatSymbols dfSym(locale, status);
+    if (U_FAILURE(status)) {
+        return;
+    }
     for (int32_t style = 0; style < UDAT_STYLE_COUNT; ++style) {
         DateFormatSymbols::DtWidthType dtfmtWidth = styleToDateFormatSymbolWidth[style];
         int32_t count;
@@ -595,6 +636,9 @@ static UBool loadUnitData(
     RelDateTimeFmtDataSink sink(cacheData);
 
     ures_getAllItemsWithFallback(resource, "fields", sink, status);
+    if (U_FAILURE(status)) {
+        return false;
+    }
 
     // Get the weekday names from DateFormatSymbols.
     loadWeekdayNames(cacheData.absoluteUnits, localeId, status);
@@ -619,7 +663,7 @@ static UBool getDateTimePattern(
             .append("/DateTimePatterns", status);
     LocalUResourceBundlePointer topLevel(
             ures_getByKeyWithFallback(
-                    resource, pathBuffer.data(), NULL, &status));
+                    resource, pathBuffer.data(), nullptr, &status));
     if (U_FAILURE(status)) {
         return FALSE;
     }
@@ -636,68 +680,68 @@ static UBool getDateTimePattern(
 template<> U_I18N_API
 const RelativeDateTimeCacheData *LocaleCacheKey<RelativeDateTimeCacheData>::createObject(const void * /*unused*/, UErrorCode &status) const {
     const char *localeId = fLoc.getName();
-    LocalUResourceBundlePointer topLevel(ures_open(NULL, localeId, &status));
+    LocalUResourceBundlePointer topLevel(ures_open(nullptr, localeId, &status));
     if (U_FAILURE(status)) {
-        return NULL;
+        return nullptr;
     }
     LocalPointer<RelativeDateTimeCacheData> result(
             new RelativeDateTimeCacheData());
     if (result.isNull()) {
         status = U_MEMORY_ALLOCATION_ERROR;
-        return NULL;
+        return nullptr;
     }
     if (!loadUnitData(
             topLevel.getAlias(),
             *result,
             localeId,
             status)) {
-        return NULL;
+        return nullptr;
     }
     UnicodeString dateTimePattern;
     if (!getDateTimePattern(topLevel.getAlias(), dateTimePattern, status)) {
-        return NULL;
+        return nullptr;
     }
     result->adoptCombinedDateAndTime(
             new SimpleFormatter(dateTimePattern, 2, 2, status));
     if (U_FAILURE(status)) {
-        return NULL;
+        return nullptr;
     }
     result->addRef();
     return result.orphan();
 }
 
 RelativeDateTimeFormatter::RelativeDateTimeFormatter(UErrorCode& status) :
-        fCache(NULL),
-        fNumberFormat(NULL),
-        fPluralRules(NULL),
+        fCache(nullptr),
+        fNumberFormat(nullptr),
+        fPluralRules(nullptr),
         fStyle(UDAT_STYLE_LONG),
         fContext(UDISPCTX_CAPITALIZATION_NONE),
-        fOptBreakIterator(NULL) {
-    init(NULL, NULL, status);
+        fOptBreakIterator(nullptr) {
+    init(nullptr, nullptr, status);
 }
 
 RelativeDateTimeFormatter::RelativeDateTimeFormatter(
         const Locale& locale, UErrorCode& status) :
-        fCache(NULL),
-        fNumberFormat(NULL),
-        fPluralRules(NULL),
+        fCache(nullptr),
+        fNumberFormat(nullptr),
+        fPluralRules(nullptr),
         fStyle(UDAT_STYLE_LONG),
         fContext(UDISPCTX_CAPITALIZATION_NONE),
-        fOptBreakIterator(NULL),
+        fOptBreakIterator(nullptr),
         fLocale(locale) {
-    init(NULL, NULL, status);
+    init(nullptr, nullptr, status);
 }
 
 RelativeDateTimeFormatter::RelativeDateTimeFormatter(
         const Locale& locale, NumberFormat *nfToAdopt, UErrorCode& status) :
-        fCache(NULL),
-        fNumberFormat(NULL),
-        fPluralRules(NULL),
+        fCache(nullptr),
+        fNumberFormat(nullptr),
+        fPluralRules(nullptr),
         fStyle(UDAT_STYLE_LONG),
         fContext(UDISPCTX_CAPITALIZATION_NONE),
-        fOptBreakIterator(NULL),
+        fOptBreakIterator(nullptr),
         fLocale(locale) {
-    init(nfToAdopt, NULL, status);
+    init(nfToAdopt, nullptr, status);
 }
 
 RelativeDateTimeFormatter::RelativeDateTimeFormatter(
@@ -706,12 +750,12 @@ RelativeDateTimeFormatter::RelativeDateTimeFormatter(
         UDateRelativeDateTimeFormatterStyle styl,
         UDisplayContext capitalizationContext,
         UErrorCode& status) :
-        fCache(NULL),
-        fNumberFormat(NULL),
-        fPluralRules(NULL),
+        fCache(nullptr),
+        fNumberFormat(nullptr),
+        fPluralRules(nullptr),
         fStyle(styl),
         fContext(capitalizationContext),
-        fOptBreakIterator(NULL),
+        fOptBreakIterator(nullptr),
         fLocale(locale) {
     if (U_FAILURE(status)) {
         return;
@@ -727,7 +771,7 @@ RelativeDateTimeFormatter::RelativeDateTimeFormatter(
         }
         init(nfToAdopt, bi, status);
     } else {
-        init(nfToAdopt, NULL, status);
+        init(nfToAdopt, nullptr, status);
     }
 }
 
@@ -744,7 +788,7 @@ RelativeDateTimeFormatter::RelativeDateTimeFormatter(
     fCache->addRef();
     fNumberFormat->addRef();
     fPluralRules->addRef();
-    if (fOptBreakIterator != NULL) {
+    if (fOptBreakIterator != nullptr) {
       fOptBreakIterator->addRef();
     }
 }
@@ -764,16 +808,16 @@ RelativeDateTimeFormatter& RelativeDateTimeFormatter::operator=(
 }
 
 RelativeDateTimeFormatter::~RelativeDateTimeFormatter() {
-    if (fCache != NULL) {
+    if (fCache != nullptr) {
         fCache->removeRef();
     }
-    if (fNumberFormat != NULL) {
+    if (fNumberFormat != nullptr) {
         fNumberFormat->removeRef();
     }
-    if (fPluralRules != NULL) {
+    if (fPluralRules != nullptr) {
         fPluralRules->removeRef();
     }
-    if (fOptBreakIterator != NULL) {
+    if (fOptBreakIterator != nullptr) {
         fOptBreakIterator->removeRef();
     }
 }
@@ -812,7 +856,7 @@ UnicodeString& RelativeDateTimeFormatter::format(
 
     const SimpleFormatter* formatter =
         fCache->getRelativeUnitFormatter(fStyle, unit, bFuture, pluralIndex);
-    if (formatter == NULL) {
+    if (formatter == nullptr) {
         // TODO: WARN - look at quantity formatter's action with an error.
         status = U_INVALID_FORMAT_ERROR;
         return appendTo;
@@ -828,33 +872,35 @@ UnicodeString& RelativeDateTimeFormatter::formatNumeric(
     if (U_FAILURE(status)) {
         return appendTo;
     }
-    // TODO:
-    // The full implementation of this depends on CLDR data that is not yet available,
-    // see: http://unicode.org/cldr/trac/ticket/9165 Add more relative field data.
-    // In the meantime do a quick bring-up by calling the old format method; this
-    // leaves some holes (even for data that is currently available, such as quarter).
-    // When the new CLDR data is available, update the data storage accordingly,
-    // rewrite this to use it directly, and rewrite the old format method to call this
-    // new one; that is covered by http://bugs.icu-project.org/trac/ticket/12171.
-    UDateRelativeUnit relunit = UDAT_RELATIVE_UNIT_COUNT;
-    switch (unit) {
-        case UDAT_REL_UNIT_YEAR:    relunit = UDAT_RELATIVE_YEARS; break;
-        case UDAT_REL_UNIT_MONTH:   relunit = UDAT_RELATIVE_MONTHS; break;
-        case UDAT_REL_UNIT_WEEK:    relunit = UDAT_RELATIVE_WEEKS; break;
-        case UDAT_REL_UNIT_DAY:     relunit = UDAT_RELATIVE_DAYS; break;
-        case UDAT_REL_UNIT_HOUR:    relunit = UDAT_RELATIVE_HOURS; break;
-        case UDAT_REL_UNIT_MINUTE:  relunit = UDAT_RELATIVE_MINUTES; break;
-        case UDAT_REL_UNIT_SECOND:  relunit = UDAT_RELATIVE_SECONDS; break;
-        default: // a unit that the above method does not handle
-            status = U_UNSUPPORTED_ERROR;
-            return appendTo;
-    }
     UDateDirection direction = UDAT_DIRECTION_NEXT;
     if (std::signbit(offset)) { // needed to handle -0.0
         direction = UDAT_DIRECTION_LAST;
         offset = -offset;
     }
-    return format(offset, direction, relunit, appendTo, status);
+    if (direction != UDAT_DIRECTION_LAST && direction != UDAT_DIRECTION_NEXT) {
+        status = U_ILLEGAL_ARGUMENT_ERROR;
+        return appendTo;
+    }
+    int32_t bFuture = direction == UDAT_DIRECTION_NEXT ? 1 : 0;
+    FieldPosition pos(FieldPosition::DONT_CARE);
+
+    UnicodeString result;
+    UnicodeString formattedNumber;
+
+    StandardPlural::Form pluralIndex = QuantityFormatter::selectPlural(
+        offset, **fNumberFormat, **fPluralRules, formattedNumber, pos,
+        status);
+
+    const SimpleFormatter* formatter =
+        fCache->getRelativeDateTimeUnitFormatter(fStyle, unit, bFuture, pluralIndex);
+    if (formatter == nullptr) {
+        // TODO: WARN - look at quantity formatter's action with an error.
+        status = U_INVALID_FORMAT_ERROR;
+        return appendTo;
+    }
+    formatter->format(formattedNumber, result, status);
+    adjustForContext(result);
+    return appendTo.append(result);
 }
 
 UnicodeString& RelativeDateTimeFormatter::format(
@@ -871,7 +917,7 @@ UnicodeString& RelativeDateTimeFormatter::format(
     // Get string using fallback.
     UnicodeString result;
     result.fastCopyFrom(fCache->getAbsoluteUnitString(fStyle, unit, direction));
-    if (fOptBreakIterator != NULL) {
+    if (fOptBreakIterator != nullptr) {
         adjustForContext(result);
     }
     return appendTo.append(result);
@@ -908,6 +954,7 @@ UnicodeString& RelativeDateTimeFormatter::format(
     UDateAbsoluteUnit absunit = UDAT_ABSOLUTE_UNIT_COUNT;
     switch (unit) {
         case UDAT_REL_UNIT_YEAR:    absunit = UDAT_ABSOLUTE_YEAR; break;
+        case UDAT_REL_UNIT_QUARTER: absunit = UDAT_ABSOLUTE_QUARTER; break;
         case UDAT_REL_UNIT_MONTH:   absunit = UDAT_ABSOLUTE_MONTH; break;
         case UDAT_REL_UNIT_WEEK:    absunit = UDAT_ABSOLUTE_WEEK; break;
         case UDAT_REL_UNIT_DAY:     absunit = UDAT_ABSOLUTE_DAY; break;
@@ -930,7 +977,7 @@ UnicodeString& RelativeDateTimeFormatter::format(
         const UnicodeString &unitFormatString =
             fCache->getAbsoluteUnitString(fStyle, absunit, direction);
         if (!unitFormatString.isEmpty()) {
-            if (fOptBreakIterator != NULL) {
+            if (fOptBreakIterator != nullptr) {
                 UnicodeString result(unitFormatString);
                 adjustForContext(result);
                 return appendTo.append(result);
@@ -951,7 +998,7 @@ UnicodeString& RelativeDateTimeFormatter::combineDateAndTime(
 }
 
 void RelativeDateTimeFormatter::adjustForContext(UnicodeString &str) const {
-    if (fOptBreakIterator == NULL
+    if (fOptBreakIterator == nullptr
         || str.length() == 0 || !u_islower(str.char32At(0))) {
         return;
     }
@@ -992,7 +1039,7 @@ void RelativeDateTimeFormatter::init(
         shared->removeRef();
     } else {
         SharedNumberFormat *shared = new SharedNumberFormat(nf.getAlias());
-        if (shared == NULL) {
+        if (shared == nullptr) {
             status = U_MEMORY_ALLOCATION_ERROR;
             return;
         }
@@ -1003,7 +1050,7 @@ void RelativeDateTimeFormatter::init(
         SharedObject::clearPtr(fOptBreakIterator);
     } else {
         SharedBreakIterator *shared = new SharedBreakIterator(bi.getAlias());
-        if (shared == NULL) {
+        if (shared == nullptr) {
             status = U_MEMORY_ALLOCATION_ERROR;
             return;
         }
@@ -1026,13 +1073,13 @@ ureldatefmt_open( const char*          locale,
                   UErrorCode*          status )
 {
     if (U_FAILURE(*status)) {
-        return NULL;
+        return nullptr;
     }
     LocalPointer<RelativeDateTimeFormatter> formatter(new RelativeDateTimeFormatter(Locale(locale),
                                                               (NumberFormat*)nfToAdopt, width,
                                                               capitalizationContext, *status), *status);
     if (U_FAILURE(*status)) {
-        return NULL;
+        return nullptr;
     }
     return (URelativeDateTimeFormatter*)formatter.orphan();
 }
@@ -1054,13 +1101,13 @@ ureldatefmt_formatNumeric( const URelativeDateTimeFormatter* reldatefmt,
     if (U_FAILURE(*status)) {
         return 0;
     }
-    if (result == NULL ? resultCapacity != 0 : resultCapacity < 0) {
+    if (result == nullptr ? resultCapacity != 0 : resultCapacity < 0) {
         *status = U_ILLEGAL_ARGUMENT_ERROR;
         return 0;
     }
     UnicodeString res;
-    if (result != NULL) {
-        // NULL destination for pure preflighting: empty dummy string
+    if (result != nullptr) {
+        // nullptr destination for pure preflighting: empty dummy string
         // otherwise, alias the destination buffer (copied from udat_format)
         res.setTo(result, 0, resultCapacity);
     }
@@ -1082,13 +1129,13 @@ ureldatefmt_format( const URelativeDateTimeFormatter* reldatefmt,
     if (U_FAILURE(*status)) {
         return 0;
     }
-    if (result == NULL ? resultCapacity != 0 : resultCapacity < 0) {
+    if (result == nullptr ? resultCapacity != 0 : resultCapacity < 0) {
         *status = U_ILLEGAL_ARGUMENT_ERROR;
         return 0;
     }
     UnicodeString res;
-    if (result != NULL) {
-        // NULL destination for pure preflighting: empty dummy string
+    if (result != nullptr) {
+        // nullptr destination for pure preflighting: empty dummy string
         // otherwise, alias the destination buffer (copied from udat_format)
         res.setTo(result, 0, resultCapacity);
     }
@@ -1112,9 +1159,9 @@ ureldatefmt_combineDateAndTime( const URelativeDateTimeFormatter* reldatefmt,
     if (U_FAILURE(*status)) {
         return 0;
     }
-    if (result == NULL ? resultCapacity != 0 : resultCapacity < 0 ||
-            (relativeDateString == NULL ? relativeDateStringLen != 0 : relativeDateStringLen < -1) ||
-            (timeString == NULL ? timeStringLen != 0 : timeStringLen < -1)) {
+    if (result == nullptr ? resultCapacity != 0 : resultCapacity < 0 ||
+            (relativeDateString == nullptr ? relativeDateStringLen != 0 : relativeDateStringLen < -1) ||
+            (timeString == nullptr ? timeStringLen != 0 : timeStringLen < -1)) {
         *status = U_ILLEGAL_ARGUMENT_ERROR;
         return 0;
     }
index 839198b..5e7dddd 100644 (file)
@@ -430,7 +430,7 @@ RelativeDateFormat::setContext(UDisplayContext value, UErrorCode& status)
         if ( fCapitalizationBrkIter == NULL && (value==UDISPCTX_CAPITALIZATION_FOR_BEGINNING_OF_SENTENCE ||
                 (value==UDISPCTX_CAPITALIZATION_FOR_UI_LIST_OR_MENU && fCapitalizationOfRelativeUnitsForUIListMenu) ||
                 (value==UDISPCTX_CAPITALIZATION_FOR_STANDALONE && fCapitalizationOfRelativeUnitsForStandAlone)) ) {
-            UErrorCode status = U_ZERO_ERROR;
+            status = U_ZERO_ERROR;
             fCapitalizationBrkIter = BreakIterator::createSentenceInstance(fLocale, status);
             if (U_FAILURE(status)) {
                 delete fCapitalizationBrkIter;
@@ -456,8 +456,8 @@ RelativeDateFormat::initCapitalizationContextInfo(const Locale& thelocale)
         const int32_t * intVector = ures_getIntVector(rb.getAlias(),
                                                       &len, &status);
         if (U_SUCCESS(status) && intVector != NULL && len >= 2) {
-            fCapitalizationOfRelativeUnitsForUIListMenu = intVector[0];
-            fCapitalizationOfRelativeUnitsForStandAlone = intVector[1];
+            fCapitalizationOfRelativeUnitsForUIListMenu = static_cast<UBool>(intVector[0]);
+            fCapitalizationOfRelativeUnitsForStandAlone = static_cast<UBool>(intVector[1]);
         }
     }
 #endif
index c3b3044..aa5f923 100644 (file)
@@ -235,7 +235,6 @@ public:
      */
     virtual const DateFormatSymbols* getDateFormatSymbols(void) const;
 
-    /* Cannot use #ifndef U_HIDE_DRAFT_API for the following draft method since it is virtual */
     /**
      * Set a particular UDisplayContext value in the formatter, such as
      * UDISPCTX_CAPITALIZATION_FOR_STANDALONE. Note: For getContext, see
index efa3909..cfdc1fe 100644 (file)
@@ -801,7 +801,7 @@ UBool RegexMatcher::find(UErrorCode &status) {
 
     case START_LINE:
         {
-            UChar32  c;
+            UChar32 ch;
             if (startPos == fAnchorStart) {
                 MatchAt(startPos, FALSE, status);
                 if (U_FAILURE(status)) {
@@ -811,17 +811,17 @@ UBool RegexMatcher::find(UErrorCode &status) {
                     return TRUE;
                 }
                 UTEXT_SETNATIVEINDEX(fInputText, startPos);
-                c = UTEXT_NEXT32(fInputText);
+                ch = UTEXT_NEXT32(fInputText);
                 startPos = UTEXT_GETNATIVEINDEX(fInputText);
             } else {
                 UTEXT_SETNATIVEINDEX(fInputText, startPos);
-                c = UTEXT_PREVIOUS32(fInputText);
+                ch = UTEXT_PREVIOUS32(fInputText);
                 UTEXT_SETNATIVEINDEX(fInputText, startPos);
             }
 
             if (fPattern->fFlags & UREGEX_UNIX_LINES) {
                 for (;;) {
-                    if (c == 0x0a) {
+                    if (ch == 0x0a) {
                             MatchAt(startPos, FALSE, status);
                             if (U_FAILURE(status)) {
                                 return FALSE;
@@ -836,7 +836,7 @@ UBool RegexMatcher::find(UErrorCode &status) {
                         fHitEnd = TRUE;
                         return FALSE;
                     }
-                    c = UTEXT_NEXT32(fInputText);
+                    ch = UTEXT_NEXT32(fInputText);
                     startPos = UTEXT_GETNATIVEINDEX(fInputText);
                     // Note that it's perfectly OK for a pattern to have a zero-length
                     //   match at the end of a string, so we must make sure that the loop
@@ -846,8 +846,8 @@ UBool RegexMatcher::find(UErrorCode &status) {
                 }
             } else {
                 for (;;) {
-                    if (isLineTerminator(c)) {
-                        if (c == 0x0d && startPos < fActiveLimit && UTEXT_CURRENT32(fInputText) == 0x0a) {
+                    if (isLineTerminator(ch)) {
+                        if (ch == 0x0d && startPos < fActiveLimit && UTEXT_CURRENT32(fInputText) == 0x0a) {
                             (void)UTEXT_NEXT32(fInputText);
                             startPos = UTEXT_GETNATIVEINDEX(fInputText);
                         }
@@ -865,7 +865,7 @@ UBool RegexMatcher::find(UErrorCode &status) {
                         fHitEnd = TRUE;
                         return FALSE;
                     }
-                    c = UTEXT_NEXT32(fInputText);
+                    ch = UTEXT_NEXT32(fInputText);
                     startPos = UTEXT_GETNATIVEINDEX(fInputText);
                     // Note that it's perfectly OK for a pattern to have a zero-length
                     //   match at the end of a string, so we must make sure that the loop
@@ -1034,7 +1034,7 @@ UBool RegexMatcher::findUsingChunk(UErrorCode &status) {
                 return FALSE;
         }
     }
-        U_ASSERT(FALSE);
+    U_ASSERT(FALSE);
 
     case START_STRING:
     case START_CHAR:
@@ -1067,7 +1067,7 @@ UBool RegexMatcher::findUsingChunk(UErrorCode &status) {
 
     case START_LINE:
     {
-        UChar32  c;
+        UChar32 ch;
         if (startPos == fAnchorStart) {
             MatchChunkAt(startPos, FALSE, status);
             if (U_FAILURE(status)) {
@@ -1081,8 +1081,8 @@ UBool RegexMatcher::findUsingChunk(UErrorCode &status) {
 
         if (fPattern->fFlags & UREGEX_UNIX_LINES) {
             for (;;) {
-                c = inputBuf[startPos-1];
-                if (c == 0x0a) {
+                ch = inputBuf[startPos-1];
+                if (ch == 0x0a) {
                     MatchChunkAt(startPos, FALSE, status);
                     if (U_FAILURE(status)) {
                         return FALSE;
@@ -1105,9 +1105,9 @@ UBool RegexMatcher::findUsingChunk(UErrorCode &status) {
             }
         } else {
             for (;;) {
-                c = inputBuf[startPos-1];
-                if (isLineTerminator(c)) {
-                    if (c == 0x0d && startPos < fActiveLimit && inputBuf[startPos] == 0x0a) {
+                ch = inputBuf[startPos-1];
+                if (isLineTerminator(ch)) {
+                    if (ch == 0x0d && startPos < fActiveLimit && inputBuf[startPos] == 0x0a) {
                         startPos++;
                     }
                     MatchChunkAt(startPos, FALSE, status);
@@ -2774,7 +2774,7 @@ void RegexMatcher::MatchAt(int64_t startIdx, UBool toEnd, UErrorCode &status) {
     int64_t             *pat           = fPattern->fCompiledPat->getBuffer();
 
     const UChar         *litText       = fPattern->fLiteralText.getBuffer();
-    UVector             *sets          = fPattern->fSets;
+    UVector             *fSets         = fPattern->fSets;
 
     fFrameSize = fPattern->fFrameSize;
     REStackFrame        *fp            = resetStack();
@@ -3376,7 +3376,7 @@ GC_Done:
 
                 // There is input left.  Pick up one char and test it for set membership.
                 UChar32 c = UTEXT_NEXT32(fInputText);
-                U_ASSERT(opValue > 0 && opValue < sets->size());
+                U_ASSERT(opValue > 0 && opValue < fSets->size());
                 if (c<256) {
                     Regex8BitSet *s8 = &fPattern->fSets8[opValue];
                     if (s8->contains(c)) {
@@ -3384,7 +3384,7 @@ GC_Done:
                         break;
                     }
                 } else {
-                    UnicodeSet *s = (UnicodeSet *)sets->elementAt(opValue);
+                    UnicodeSet *s = (UnicodeSet *)fSets->elementAt(opValue);
                     if (s->contains(c)) {
                         // The character is in the set.  A Match.
                         fp->fInputIdx = UTEXT_GETNATIVEINDEX(fInputText);
@@ -3671,9 +3671,9 @@ GC_Done:
                 if (newFP == (int64_t *)fp) {
                     break;
                 }
-                int32_t i;
-                for (i=0; i<fFrameSize; i++) {
-                    newFP[i] = ((int64_t *)fp)[i];
+                int32_t j;
+                for (j=0; j<fFrameSize; j++) {
+                    newFP[j] = ((int64_t *)fp)[j];
                 }
                 fp = (REStackFrame *)newFP;
                 fStack->setSize(newStackSize);
@@ -3830,9 +3830,9 @@ GC_Done:
                     //   This makes the capture groups from within the look-ahead
                     //   expression available.
                     int64_t *newFP = fStack->getBuffer() + newStackSize - fFrameSize;
-                    int32_t i;
-                    for (i=0; i<fFrameSize; i++) {
-                        newFP[i] = ((int64_t *)fp)[i];
+                    int32_t j;
+                    for (j=0; j<fFrameSize; j++) {
+                        newFP[j] = ((int64_t *)fp)[j];
                     }
                     fp = (REStackFrame *)newFP;
                     fStack->setSize(newStackSize);
@@ -4123,9 +4123,9 @@ GC_Done:
             //   This op scans through all matching input.
             //   The following LOOP_C op emulates stack unwinding if the following pattern fails.
             {
-                U_ASSERT(opValue > 0 && opValue < sets->size());
+                U_ASSERT(opValue > 0 && opValue < fSets->size());
                 Regex8BitSet *s8 = &fPattern->fSets8[opValue];
-                UnicodeSet   *s  = (UnicodeSet *)sets->elementAt(opValue);
+                UnicodeSet   *s  = (UnicodeSet *)fSets->elementAt(opValue);
 
                 // Loop through input, until either the input is exhausted or
                 //   we reach a character that is not a member of the set.
@@ -4350,7 +4350,7 @@ void RegexMatcher::MatchChunkAt(int32_t startIdx, UBool toEnd, UErrorCode &statu
     int64_t             *pat           = fPattern->fCompiledPat->getBuffer();
 
     const UChar         *litText       = fPattern->fLiteralText.getBuffer();
-    UVector             *sets          = fPattern->fSets;
+    UVector             *fSets         = fPattern->fSets;
 
     const UChar         *inputBuf      = fInputText->chunkContents;
 
@@ -4928,7 +4928,7 @@ GC_Done:
                     break;
                 }
 
-                U_ASSERT(opValue > 0 && opValue < sets->size());
+                U_ASSERT(opValue > 0 && opValue < fSets->size());
 
                 // There is input left.  Pick up one char and test it for set membership.
                 UChar32  c;
@@ -4940,7 +4940,7 @@ GC_Done:
                         break;
                     }
                 } else {
-                    UnicodeSet *s = (UnicodeSet *)sets->elementAt(opValue);
+                    UnicodeSet *s = (UnicodeSet *)fSets->elementAt(opValue);
                     if (s->contains(c)) {
                         // The character is in the set.  A Match.
                         break;
@@ -5214,9 +5214,9 @@ GC_Done:
                 if (newFP == (int64_t *)fp) {
                     break;
                 }
-                int32_t i;
-                for (i=0; i<fFrameSize; i++) {
-                    newFP[i] = ((int64_t *)fp)[i];
+                int32_t j;
+                for (j=0; j<fFrameSize; j++) {
+                    newFP[j] = ((int64_t *)fp)[j];
                 }
                 fp = (REStackFrame *)newFP;
                 fStack->setSize(newStackSize);
@@ -5361,9 +5361,9 @@ GC_Done:
                     //   This makes the capture groups from within the look-ahead
                     //   expression available.
                     int64_t *newFP = fStack->getBuffer() + newStackSize - fFrameSize;
-                    int32_t i;
-                    for (i=0; i<fFrameSize; i++) {
-                        newFP[i] = ((int64_t *)fp)[i];
+                    int32_t j;
+                    for (j=0; j<fFrameSize; j++) {
+                        newFP[j] = ((int64_t *)fp)[j];
                     }
                     fp = (REStackFrame *)newFP;
                     fStack->setSize(newStackSize);
@@ -5623,9 +5623,9 @@ GC_Done:
             //   This op scans through all matching input.
             //   The following LOOP_C op emulates stack unwinding if the following pattern fails.
             {
-                U_ASSERT(opValue > 0 && opValue < sets->size());
+                U_ASSERT(opValue > 0 && opValue < fSets->size());
                 Regex8BitSet *s8 = &fPattern->fSets8[opValue];
-                UnicodeSet   *s  = (UnicodeSet *)sets->elementAt(opValue);
+                UnicodeSet   *s  = (UnicodeSet *)fSets->elementAt(opValue);
 
                 // Loop through input, until either the input is exhausted or
                 //   we reach a character that is not a member of the set.
index ab65f10..b057b6b 100644 (file)
@@ -764,9 +764,9 @@ RuleBasedCollator::internalCompareUTF8(const char *left, int32_t leftLength,
     // Make sure both or neither strings have a known length.
     // We do not optimize for mixed length/termination.
     if(leftLength >= 0) {
-        if(rightLength < 0) { rightLength = uprv_strlen(right); }
+        if(rightLength < 0) { rightLength = static_cast<int32_t>(uprv_strlen(right)); }
     } else {
-        if(rightLength >= 0) { leftLength = uprv_strlen(left); }
+        if(rightLength >= 0) { leftLength = static_cast<int32_t>(uprv_strlen(left)); }
     }
     return doCompare(reinterpret_cast<const uint8_t *>(left), leftLength,
                      reinterpret_cast<const uint8_t *>(right), rightLength, errorCode);
@@ -862,9 +862,9 @@ public:
         } else {
             str.setTo(text, (int32_t)(spanLimit - text));
             {
-                ReorderingBuffer buffer(nfcImpl, str);
-                if(buffer.init(str.length(), errorCode)) {
-                    nfcImpl.makeFCD(spanLimit, textLimit, &buffer, errorCode);
+                ReorderingBuffer r_buffer(nfcImpl, str);
+                if(r_buffer.init(str.length(), errorCode)) {
+                    nfcImpl.makeFCD(spanLimit, textLimit, &r_buffer, errorCode);
                 }
             }
             if(U_SUCCESS(errorCode)) {
index 073e839..54ead80 100644 (file)
@@ -298,7 +298,7 @@ uhash_compareScriptSet(UElement key0, UElement key1) {
     icu::ScriptSet *s0 = static_cast<icu::ScriptSet *>(key0.pointer);
     icu::ScriptSet *s1 = static_cast<icu::ScriptSet *>(key1.pointer);
     int32_t diff = s0->countMembers() - s1->countMembers();
-    if (diff != 0) return diff;
+    if (diff != 0) return static_cast<UBool>(diff);
     int32_t i0 = s0->nextSetBit(0);
     int32_t i1 = s1->nextSetBit(0);
     while ((diff = i0-i1) == 0 && i0 > 0) {
index ca9a210..66a06ec 100644 (file)
@@ -12,6 +12,9 @@
 #define __SHARED_DATEFORMATSYMBOLS_H__
 
 #include "unicode/utypes.h"
+
+#if !UCONFIG_NO_FORMATTING
+
 #include "sharedobject.h"
 #include "unicode/dtfmtsym.h"
 
@@ -33,4 +36,6 @@ private:
 
 U_NAMESPACE_END
 
+#endif /* !UCONFIG_NO_FORMATTING */
+
 #endif
index b1b9088..2bc8e49 100644 (file)
@@ -244,9 +244,9 @@ SimpleDateFormat::NSOverride::~NSOverride() {
 void SimpleDateFormat::NSOverride::free() {
     NSOverride *cur = this;
     while (cur) {
-        NSOverride *next = cur->next;
+        NSOverride *next_temp = cur->next;
         delete cur;
-        cur = next;
+        cur = next_temp;
     }
 }
 
@@ -1304,15 +1304,15 @@ SimpleDateFormat::processOverrideString(const Locale &locale, const UnicodeStrin
 
         int32_t nsNameHash = nsName.hashCode();
         // See if the numbering system is in the override list, if not, then add it.
-        NSOverride *cur = overrideList;
+        NSOverride *curr = overrideList;
         const SharedNumberFormat *snf = NULL;
         UBool found = FALSE;
-        while ( cur && !found ) {
-            if ( cur->hash == nsNameHash ) {
-                snf = cur->snf;
+        while ( curr && !found ) {
+            if ( curr->hash == nsNameHash ) {
+                snf = curr->snf;
                 found = TRUE;
             }
-            cur = cur->next;
+            curr = curr->next;
         }
 
         if (!found) {
@@ -1824,14 +1824,14 @@ SimpleDateFormat::subFormat(UnicodeString &appendTo,
             // Stealing am/pm value to use as our array index.
             // It works out: am/midnight are both 0, pm/noon are both 1,
             // 12 am is 12 midnight, and 12 pm is 12 noon.
-            int32_t value = cal.get(UCAL_AM_PM, status);
+            int32_t val = cal.get(UCAL_AM_PM, status);
 
             if (count <= 3) {
-                toAppend = &fSymbols->fAbbreviatedDayPeriods[value];
+                toAppend = &fSymbols->fAbbreviatedDayPeriods[val];
             } else if (count == 4 || count > 5) {
-                toAppend = &fSymbols->fWideDayPeriods[value];
+                toAppend = &fSymbols->fWideDayPeriods[val];
             } else { // count == 5
-                toAppend = &fSymbols->fNarrowDayPeriods[value];
+                toAppend = &fSymbols->fNarrowDayPeriods[val];
             }
         }
 
@@ -2281,10 +2281,10 @@ SimpleDateFormat::parse(const UnicodeString& text, Calendar& cal, ParsePosition&
 
                     if (i+1 < fPattern.length()) {
                         // move to next pattern character
-                        UChar ch = fPattern.charAt(i+1);
+                        UChar c = fPattern.charAt(i+1);
 
                         // check for whitespace
-                        if (PatternProps::isWhiteSpace(ch)) {
+                        if (PatternProps::isWhiteSpace(c)) {
                             i++;
                             // Advance over run in pattern
                             while ((i+1)<fPattern.length() &&
@@ -3162,8 +3162,8 @@ int32_t SimpleDateFormat::subParse(const UnicodeString& text, int32_t& start, UC
             if (!strcmp(cal.getType(),"hebrew")) {
                 HebrewCalendar *hc = (HebrewCalendar*)&cal;
                 if (cal.isSet(UCAL_YEAR)) {
-                   UErrorCode status = U_ZERO_ERROR;
-                   if (!hc->isLeapYear(hc->get(UCAL_YEAR,status)) && value >= 6) {
+                   UErrorCode monthStatus = U_ZERO_ERROR;
+                   if (!hc->isLeapYear(hc->get(UCAL_YEAR, monthStatus)) && value >= 6) {
                        cal.set(UCAL_MONTH, value);
                    } else {
                        cal.set(UCAL_MONTH, value - 1);
@@ -3571,21 +3571,21 @@ int32_t SimpleDateFormat::subParse(const UnicodeString& text, int32_t& start, UC
             static const UChar alt_sep = DateFormatSymbols::ALTERNATE_TIME_SEPARATOR;
 
             // Try matching a time separator.
-            int32_t count = 1;
+            int32_t count_sep = 1;
             UnicodeString data[3];
             fSymbols->getTimeSeparatorString(data[0]);
 
             // Add the default, if different from the locale.
             if (data[0].compare(&def_sep, 1) != 0) {
-                data[count++].setTo(def_sep);
+                data[count_sep++].setTo(def_sep);
             }
 
             // If lenient, add also the alternate, if different from the locale.
             if (isLenient() && data[0].compare(&alt_sep, 1) != 0) {
-                data[count++].setTo(alt_sep);
+                data[count_sep++].setTo(alt_sep);
             }
 
-            return matchString(text, start, UCAL_FIELD_COUNT /* => nothing to set */, data, count, NULL, cal);
+            return matchString(text, start, UCAL_FIELD_COUNT /* => nothing to set */, data, count_sep, NULL, cal);
         }
 
     case UDAT_AM_PM_MIDNIGHT_NOON_FIELD:
@@ -3674,7 +3674,7 @@ int32_t SimpleDateFormat::subParse(const UnicodeString& text, int32_t& start, UC
     }
     parseInt(*src, number, pos, allowNegative,currentNumberFormat);
     if (pos.getIndex() != parseStart) {
-        int32_t value = number.getLong();
+        int32_t val = number.getLong();
 
         // Don't need suffix processing here (as in number processing at the beginning of the function);
         // the new fields being handled as numeric values (month, weekdays, quarters) should not have suffixes.
@@ -3682,7 +3682,7 @@ int32_t SimpleDateFormat::subParse(const UnicodeString& text, int32_t& start, UC
         if (!getBooleanAttribute(UDAT_PARSE_ALLOW_NUMERIC, status)) {
             // Check the range of the value
             int32_t bias = gFieldRangeBias[patternCharIndex];
-            if (bias >= 0 && (value > cal.getMaximum(field) + bias || value < cal.getMinimum(field) + bias)) {
+            if (bias >= 0 && (val > cal.getMaximum(field) + bias || val < cal.getMinimum(field) + bias)) {
                 return -start;
             }
         }
@@ -3696,35 +3696,35 @@ int32_t SimpleDateFormat::subParse(const UnicodeString& text, int32_t& start, UC
             if (!strcmp(cal.getType(),"hebrew")) {
                 HebrewCalendar *hc = (HebrewCalendar*)&cal;
                 if (cal.isSet(UCAL_YEAR)) {
-                   UErrorCode status = U_ZERO_ERROR;
-                   if (!hc->isLeapYear(hc->get(UCAL_YEAR,status)) && value >= 6) {
-                       cal.set(UCAL_MONTH, value);
+                   UErrorCode monthStatus = U_ZERO_ERROR;
+                   if (!hc->isLeapYear(hc->get(UCAL_YEAR, monthStatus)) && val >= 6) {
+                       cal.set(UCAL_MONTH, val);
                    } else {
-                       cal.set(UCAL_MONTH, value - 1);
+                       cal.set(UCAL_MONTH, val - 1);
                    }
                 } else {
-                    saveHebrewMonth = value;
+                    saveHebrewMonth = val;
                 }
             } else {
-                cal.set(UCAL_MONTH, value - 1);
+                cal.set(UCAL_MONTH, val - 1);
             }
             break;
         case UDAT_STANDALONE_MONTH_FIELD:
-            cal.set(UCAL_MONTH, value - 1);
+            cal.set(UCAL_MONTH, val - 1);
             break;
         case UDAT_DOW_LOCAL_FIELD:
         case UDAT_STANDALONE_DAY_FIELD:
-            cal.set(UCAL_DOW_LOCAL, value);
+            cal.set(UCAL_DOW_LOCAL, val);
             break;
         case UDAT_QUARTER_FIELD:
         case UDAT_STANDALONE_QUARTER_FIELD:
-             cal.set(UCAL_MONTH, (value - 1) * 3);
+             cal.set(UCAL_MONTH, (val - 1) * 3);
              break;
         case UDAT_RELATED_YEAR_FIELD:
-            cal.setRelatedYear(value);
+            cal.setRelatedYear(val);
             break;
         default:
-            cal.set(field, value);
+            cal.set(field, val);
             break;
         }
         return pos.getIndex();
@@ -3971,7 +3971,7 @@ SimpleDateFormat::setContext(UDisplayContext value, UErrorCode& status)
     if (U_SUCCESS(status)) {
         if ( fCapitalizationBrkIter == NULL && (value==UDISPCTX_CAPITALIZATION_FOR_BEGINNING_OF_SENTENCE ||
                 value==UDISPCTX_CAPITALIZATION_FOR_UI_LIST_OR_MENU || value==UDISPCTX_CAPITALIZATION_FOR_STANDALONE) ) {
-            UErrorCode status = U_ZERO_ERROR;
+            status = U_ZERO_ERROR;
             fCapitalizationBrkIter = BreakIterator::createSentenceInstance(fLocale, status);
             if (U_FAILURE(status)) {
                 delete fCapitalizationBrkIter;
index 12c3039..234f52c 100644 (file)
@@ -1031,8 +1031,8 @@ TimeZone::getEquivalentID(const UnicodeString& id, int32_t index) {
         UResourceBundle *ares = ures_getByKey(top, kNAMES, NULL, &ec); // dereference Zones section
         if (U_SUCCESS(ec)) {
             int32_t idLen = 0;
-            const UChar* id = ures_getStringByIndex(ares, zone, &idLen, &ec);
-            result.fastCopyFrom(UnicodeString(TRUE, id, idLen));
+            const UChar* id2 = ures_getStringByIndex(ares, zone, &idLen, &ec);
+            result.fastCopyFrom(UnicodeString(TRUE, id2, idLen));
             U_DEBUG_TZ_MSG(("gei(%d) -> %d, len%d, %s\n", index, zone, result.length(), u_errorName(ec)));
         }
         ures_close(ares);
@@ -1199,7 +1199,7 @@ TimeZone::getDisplayName(UBool daylight, EDisplayType style, const Locale& local
 {
     UErrorCode status = U_ZERO_ERROR;
     UDate date = Calendar::getNow();
-    UTimeZoneFormatTimeType timeType;
+    UTimeZoneFormatTimeType timeType = UTZFMT_TIME_TYPE_UNKNOWN;
     int32_t offset;
 
     if (style == GENERIC_LOCATION || style == LONG_GENERIC || style == SHORT_GENERIC) {
@@ -1612,7 +1612,7 @@ TimeZone::getWindowsID(const UnicodeString& id, UnicodeString& winid, UErrorCode
                     end = tzids + len;
                     hasNext = FALSE;
                 }
-                if (canonicalID.compare(start, end - start) == 0) {
+                if (canonicalID.compare(start, static_cast<int32_t>(end - start)) == 0) {
                     winid = UnicodeString(ures_getKey(winzone), -1 , US_INV);
                     found = TRUE;
                     break;
@@ -1673,7 +1673,7 @@ TimeZone::getIDForWindowsID(const UnicodeString& winid, const char* region, Unic
             if (end == NULL) {
                 id.setTo(tzids, -1);
             } else {
-                id.setTo(tzids, end - tzids);
+                id.setTo(tzids, static_cast<int32_t>(end - tzids));
             }
             gotID = TRUE;
         }
index 36dcebe..1a96ad3 100644 (file)
@@ -1330,12 +1330,12 @@ Transliterator* TransliteratorRegistry::instantiateEntry(const UnicodeString& ID
             int32_t passNumber = 1;
             for (int32_t i = 0; U_SUCCESS(status) && i < entry->u.dataVector->size(); i++) {
                 // TODO: Should passNumber be turned into a decimal-string representation (1 -> "1")?
-                Transliterator* t = new RuleBasedTransliterator(UnicodeString(CompoundTransliterator::PASS_STRING) + UnicodeString(passNumber++),
+                Transliterator* tl = new RuleBasedTransliterator(UnicodeString(CompoundTransliterator::PASS_STRING) + UnicodeString(passNumber++),
                     (TransliterationRuleData*)(entry->u.dataVector->elementAt(i)), FALSE);
-                if (t == 0)
+                if (tl == 0)
                     status = U_MEMORY_ALLOCATION_ERROR;
                 else
-                    rbts->addElement(t, status);
+                    rbts->addElement(tl, status);
             }
             if (U_FAILURE(status)) {
                 delete rbts;
index 3de84f4..769977a 100644 (file)
@@ -2648,12 +2648,12 @@ TimeZoneFormat::checkAbuttingHoursAndMinutes() {
         UVector *items = fGMTOffsetPatternItems[type];
         for (int32_t i = 0; i < items->size(); i++) {
             const GMTOffsetField* item = (GMTOffsetField*)items->elementAt(i);
-            GMTOffsetField::FieldType type = item->getType();
-            if (type != GMTOffsetField::TEXT) {
+            GMTOffsetField::FieldType fieldType = item->getType();
+            if (fieldType != GMTOffsetField::TEXT) {
                 if (afterH) {
                     fAbuttingOffsetHoursAndMinutes = TRUE;
                     break;
-                } else if (type == GMTOffsetField::HOUR) {
+                } else if (fieldType == GMTOffsetField::HOUR) {
                     afterH = TRUE;
                 }
             } else if (afterH) {
index c2e6852..5f5b7db 100644 (file)
@@ -407,7 +407,7 @@ TZGNCore::initialize(const Locale& locale, UErrorCode& status) {
 
     // target region
     const char* region = fLocale.getCountry();
-    int32_t regionLen = uprv_strlen(region);
+    int32_t regionLen = static_cast<int32_t>(uprv_strlen(region));
     if (regionLen == 0) {
         char loc[ULOC_FULLNAME_CAPACITY];
         uloc_addLikelySubtags(fLocale.getName(), loc, sizeof(loc), &status);
index 689fdeb..5a79c22 100644 (file)
@@ -87,7 +87,7 @@ static void sweepCache() {
     const UHashElement* elem;
     double now = (double)uprv_getUTCtime();
 
-    while ((elem = uhash_nextElement(gTimeZoneNamesCache, &pos))) {
+    while ((elem = uhash_nextElement(gTimeZoneNamesCache, &pos)) != 0) {
         TimeZoneNamesCacheEntry *entry = (TimeZoneNamesCacheEntry *)elem->value.pointer;
         if (entry->refCount <= 0 && (now - entry->lastAccess) > CACHE_EXPIRATION) {
             // delete this entry
index 7045f09..7bfbc04 100644 (file)
@@ -1285,7 +1285,7 @@ static void mergeTimeZoneKey(const UnicodeString& mzID, char* result) {
 
     char mzIdChar[ZID_KEY_MAX + 1];
     int32_t keyLen;
-    int32_t prefixLen = uprv_strlen(gMZPrefix);
+    int32_t prefixLen = static_cast<int32_t>(uprv_strlen(gMZPrefix));
     keyLen = mzID.extract(0, mzID.length(), mzIdChar, ZID_KEY_MAX + 1, US_INV);
     uprv_memcpy((void *)result, (void *)gMZPrefix, prefixLen);
     uprv_memcpy((void *)(result + prefixLen), (void *)mzIdChar, keyLen);
@@ -1453,7 +1453,7 @@ struct TimeZoneNamesImpl::ZoneStringsLoader : public ResourceSink {
     virtual ~ZoneStringsLoader();
 
     void* createKey(const char* key, UErrorCode& status) {
-        int32_t len = sizeof(char) * (uprv_strlen(key) + 1);
+        int32_t len = sizeof(char) * (static_cast<int32_t>(uprv_strlen(key)) + 1);
         char* newKey = (char*) uprv_malloc(len);
         if (newKey == NULL) {
             status = U_MEMORY_ALLOCATION_ERROR;
@@ -1469,7 +1469,7 @@ struct TimeZoneNamesImpl::ZoneStringsLoader : public ResourceSink {
     }
 
     UnicodeString mzIDFromKey(const char* key) {
-        return UnicodeString(key + MZ_PREFIX_LEN, uprv_strlen(key) - MZ_PREFIX_LEN, US_INV);
+        return UnicodeString(key + MZ_PREFIX_LEN, static_cast<int32_t>(uprv_strlen(key)) - MZ_PREFIX_LEN, US_INV);
     }
 
     UnicodeString tzIDFromKey(const char* key) {
@@ -1944,8 +1944,8 @@ TZDBNameSearchHandler::handleMatch(int32_t matchLength, const CharacterNode *nod
                     // metazone mapping for "CST" is America_Central,
                     // but if region is one of CN/MO/TW, "CST" is parsed
                     // as metazone China (China Standard Time).
-                    for (int32_t i = 0; i < ninfo->nRegions; i++) {
-                        const char *region = ninfo->parseRegions[i];
+                    for (int32_t j = 0; j < ninfo->nRegions; j++) {
+                        const char *region = ninfo->parseRegions[j];
                         if (uprv_strcmp(fRegion, region) == 0) {
                             match = ninfo;
                             matchRegion = TRUE;
@@ -2059,7 +2059,7 @@ static void U_CALLCONV prepareFind(UErrorCode &status) {
     const UnicodeString *mzID;
     StringEnumeration *mzIDs = TimeZoneNamesImpl::_getAvailableMetaZoneIDs(status);
     if (U_SUCCESS(status)) {
-        while ((mzID = mzIDs->snext(status)) && U_SUCCESS(status)) {
+        while ((mzID = mzIDs->snext(status)) != 0 && U_SUCCESS(status)) {
             const TZDBNames *names = TZDBTimeZoneNames::getMetaZoneNames(*mzID, status);
             if (U_FAILURE(status)) {
                 break;
@@ -2128,7 +2128,7 @@ TZDBTimeZoneNames::TZDBTimeZoneNames(const Locale& locale)
 : fLocale(locale) {
     UBool useWorld = TRUE;
     const char* region = fLocale.getCountry();
-    int32_t regionLen = uprv_strlen(region);
+    int32_t regionLen = static_cast<int32_t>(uprv_strlen(region));
     if (regionLen == 0) {
         UErrorCode status = U_ZERO_ERROR;
         char loc[ULOC_FULLNAME_CAPACITY];
index 318eafc..4c13b9f 100644 (file)
@@ -32,6 +32,7 @@ typedef enum ECleanupI18NType {
     UCLN_I18N_SPOOFDATA,
     UCLN_I18N_TRANSLITERATOR,
     UCLN_I18N_REGEX,
+    UCLN_I18N_JAPANESE_CALENDAR,
     UCLN_I18N_ISLAMIC_CALENDAR,
     UCLN_I18N_CHINESE_CALENDAR,
     UCLN_I18N_HEBREW_CALENDAR,
@@ -58,6 +59,7 @@ typedef enum ECleanupI18NType {
     UCLN_I18N_GENDERINFO,
     UCLN_I18N_CDFINFO,
     UCLN_I18N_REGION,
+    UCLN_I18N_LIST_FORMATTER,
     UCLN_I18N_COUNT /* This must be last */
 } ECleanupI18NType;
 
index 76975ec..56ed5b3 100644 (file)
@@ -400,11 +400,11 @@ CollationLoader::loadFromData(UErrorCode &errorCode) {
     // Try to fetch the optional rules string.
     {
         UErrorCode internalErrorCode = U_ZERO_ERROR;
-        int32_t length;
-        const UChar *s = ures_getStringByKey(data, "Sequence", &length,
+        int32_t len;
+        const UChar *s = ures_getStringByKey(data, "Sequence", &len,
                                              &internalErrorCode);
         if(U_SUCCESS(internalErrorCode)) {
-            t->rules.setTo(TRUE, s, length);
+            t->rules.setTo(TRUE, s, len);
         }
     }
 
@@ -426,10 +426,10 @@ CollationLoader::loadFromData(UErrorCode &errorCode) {
         LocalUResourceBundlePointer def(
                 ures_getByKeyWithFallback(actualBundle.getAlias(), "collations/default", NULL,
                                           &internalErrorCode));
-        int32_t length;
-        const UChar *s = ures_getString(def.getAlias(), &length, &internalErrorCode);
-        if(U_SUCCESS(internalErrorCode) && length < UPRV_LENGTHOF(defaultType)) {
-            u_UCharsToChars(s, defaultType, length + 1);
+        int32_t len;
+        const UChar *s = ures_getString(def.getAlias(), &len, &internalErrorCode);
+        if(U_SUCCESS(internalErrorCode) && len < UPRV_LENGTHOF(defaultType)) {
+            u_UCharsToChars(s, defaultType, len + 1);
         } else {
             uprv_strcpy(defaultType, "standard");
         }
index 5e06dd6..b47e321 100644 (file)
@@ -603,7 +603,7 @@ udat_getSymbols(const   UDateFormat     *fmt,
     } else {
         return -1;
     }
-    int32_t count;
+    int32_t count = 0;
     const UnicodeString *res = NULL;
 
     switch(type) {
index d406b8e..7f4e7b9 100644 (file)
@@ -372,7 +372,7 @@ ulocdata_getLocaleSeparator(ULocaleData *uld,
     p1=u_strstr(separator, sub1);
     if (p0!=NULL && p1!=NULL && p0<=p1) {
         separator = (const UChar *)p0 + subLen;
-        len = p1 - separator;
+        len = static_cast<int32_t>(p1 - separator);
         /* Desired separator is no longer zero-terminated; handle that if necessary */
         if (len < resultCapacity) {
             u_strncpy(result, separator, len);
index 1442f75..1c50ba2 100644 (file)
@@ -266,6 +266,8 @@ public:
          * Use getBucket() to get the bucket's properties.
          *
          * @param name the string to be sorted into an index bucket
+         * @param errorCode Error code, will be set with the reason if the
+         *                  operation fails.
          * @return the bucket number for the name
          * @stable ICU 51
          */
@@ -377,9 +379,10 @@ public:
 
 
    /**
-     * Get the default label used for abbreviated buckets <i>between</i> other index characters.
-     * For example, consider the labels when Latin and Greek are used:
-     *     X Y Z ... &#x0391; &#x0392; &#x0393;.
+     * Get the default label used for abbreviated buckets *between* other index characters.
+     * For example, consider the labels when Latin (X Y Z) and Greek (Α Β Γ) are used:
+     *
+     *     X Y Z ... Α Β Γ.
      *
      * @return inflow label
      * @stable ICU 4.8
@@ -700,6 +703,7 @@ public:
     /**
      * A (name, data) pair, to be sorted by name into one of the index buckets.
      * The user data is not used by the index implementation.
+     * \cond
      * @internal
      */
     struct Record: public UMemory {
@@ -708,6 +712,7 @@ public:
         Record(const UnicodeString &name, const void *data);
         ~Record();
     };
+    /** \endcond */
 #endif  /* U_HIDE_INTERNAL_API */
 
 private:
index 4802153..023cf05 100644 (file)
@@ -52,83 +52,64 @@ typedef int32_t UFieldResolutionTable[12][8];
 
 class BasicTimeZone;
 /**
- * <code>Calendar</code> is an abstract base class for converting between
- * a <code>UDate</code> object and a set of integer fields such as
- * <code>YEAR</code>, <code>MONTH</code>, <code>DAY</code>, <code>HOUR</code>,
- * and so on. (A <code>UDate</code> object represents a specific instant in
+ * `Calendar` is an abstract base class for converting between
+ * a `UDate` object and a set of integer fields such as
+ * `YEAR`, `MONTH`, `DAY`, `HOUR`, and so on.
+ * (A `UDate` object represents a specific instant in
  * time with millisecond precision. See UDate
- * for information about the <code>UDate</code> class.)
+ * for information about the `UDate` class.)
  *
- * <p>
- * Subclasses of <code>Calendar</code> interpret a <code>UDate</code>
+ * Subclasses of `Calendar` interpret a `UDate`
  * according to the rules of a specific calendar system.
- * The most commonly used subclass of <code>Calendar</code> is
- * <code>GregorianCalendar</code>. Other subclasses could represent
+ * The most commonly used subclass of `Calendar` is
+ * `GregorianCalendar`. Other subclasses could represent
  * the various types of lunar calendars in use in many parts of the world.
  *
- * <p>
- * <b>NOTE</b>: (ICU 2.6) The subclass interface should be considered unstable
- * - it WILL change.
+ * **NOTE**: (ICU 2.6) The subclass interface should be considered unstable -
+ * it WILL change.
  *
- * <p>
- * Like other locale-sensitive classes, <code>Calendar</code> provides a
- * static method, <code>createInstance</code>, for getting a generally useful
- * object of this type. <code>Calendar</code>'s <code>createInstance</code> method
- * returns the appropriate <code>Calendar</code> subclass whose
+ * Like other locale-sensitive classes, `Calendar` provides a
+ * static method, `createInstance`, for getting a generally useful
+ * object of this type. `Calendar`'s `createInstance` method
+ * returns the appropriate `Calendar` subclass whose
  * time fields have been initialized with the current date and time:
- * \htmlonly<blockquote>\endhtmlonly
- * <pre>
- * Calendar *rightNow = Calendar::createInstance(errCode);
- * </pre>
- * \htmlonly</blockquote>\endhtmlonly
  *
- * <p>
- * A <code>Calendar</code> object can produce all the time field values
+ *     Calendar *rightNow = Calendar::createInstance(errCode);
+ *
+ * A `Calendar` object can produce all the time field values
  * needed to implement the date-time formatting for a particular language
  * and calendar style (for example, Japanese-Gregorian, Japanese-Traditional).
  *
- * <p>
- * When computing a <code>UDate</code> from time fields, some special circumstances
+ * When computing a `UDate` from time fields, some special circumstances
  * may arise: there may be insufficient information to compute the
- * <code>UDate</code> (such as only year and month but no day in the month),
+ * `UDate` (such as only year and month but no day in the month),
  * there may be inconsistent information (such as "Tuesday, July 15, 1996"
  * -- July 15, 1996 is actually a Monday), or the input time might be ambiguous
  * because of time zone transition.
  *
- * <p>
- * <strong>Insufficient information.</strong> The calendar will use default
+ * **Insufficient information.** The calendar will use default
  * information to specify the missing fields. This may vary by calendar; for
  * the Gregorian calendar, the default for a field is the same as that of the
  * start of the epoch: i.e., YEAR = 1970, MONTH = JANUARY, DATE = 1, etc.
  *
- * <p>
- * <strong>Inconsistent information.</strong> If fields conflict, the calendar
+ * **Inconsistent information.** If fields conflict, the calendar
  * will give preference to fields set more recently. For example, when
  * determining the day, the calendar will look for one of the following
  * combinations of fields.  The most recent combination, as determined by the
  * most recently set single field, will be used.
  *
- * \htmlonly<blockquote>\endhtmlonly
- * <pre>
- * MONTH + DAY_OF_MONTH
- * MONTH + WEEK_OF_MONTH + DAY_OF_WEEK
- * MONTH + DAY_OF_WEEK_IN_MONTH + DAY_OF_WEEK
- * DAY_OF_YEAR
- * DAY_OF_WEEK + WEEK_OF_YEAR
- * </pre>
- * \htmlonly</blockquote>\endhtmlonly
+ *     MONTH + DAY_OF_MONTH
+ *     MONTH + WEEK_OF_MONTH + DAY_OF_WEEK
+ *     MONTH + DAY_OF_WEEK_IN_MONTH + DAY_OF_WEEK
+ *     DAY_OF_YEAR
+ *     DAY_OF_WEEK + WEEK_OF_YEAR
  *
  * For the time of day:
  *
- * \htmlonly<blockquote>\endhtmlonly
- * <pre>
- * HOUR_OF_DAY
- * AM_PM + HOUR
- * </pre>
- * \htmlonly</blockquote>\endhtmlonly
+ *     HOUR_OF_DAY
+ *     AM_PM + HOUR
  *
- * <p>
- * <strong>Ambiguous Wall Clock Time.</strong> When time offset from UTC has
+ * **Ambiguous Wall Clock Time.** When time offset from UTC has
  * changed, it produces an ambiguous time slot around the transition. For example,
  * many US locations observe daylight saving time. On the date switching to daylight
  * saving time in US, wall clock time jumps from 12:59 AM (standard) to 2:00 AM
@@ -138,64 +119,66 @@ class BasicTimeZone;
  * In this example, 1:30 AM is interpreted as 1:30 AM standard time (non-exist),
  * so the final result will be 2:30 AM daylight time.
  *
- * <p>On the date switching back to standard time, wall clock time is moved back one
+ * On the date switching back to standard time, wall clock time is moved back one
  * hour at 2:00 AM. So wall clock time from 1:00 AM to 1:59 AM occur twice. In this
  * case, the ICU Calendar resolves the time using the UTC offset after the transition
  * by default. For example, 1:30 AM on the date is resolved as 1:30 AM standard time.
  *
- * <p>Ambiguous wall clock time resolution behaviors can be customized by Calendar APIs
+ * Ambiguous wall clock time resolution behaviors can be customized by Calendar APIs
  * {@link #setRepeatedWallTimeOption} and {@link #setSkippedWallTimeOption}.
  * These methods are available in ICU 49 or later versions.
  *
- * <p>
- * <strong>Note:</strong> for some non-Gregorian calendars, different
+ * **Note:** for some non-Gregorian calendars, different
  * fields may be necessary for complete disambiguation. For example, a full
- * specification of the historial Arabic astronomical calendar requires year,
- * month, day-of-month <em>and</em> day-of-week in some cases.
+ * specification of the historical Arabic astronomical calendar requires year,
+ * month, day-of-month *and* day-of-week in some cases.
  *
- * <p>
- * <strong>Note:</strong> There are certain possible ambiguities in
+ * **Note:** There are certain possible ambiguities in
  * interpretation of certain singular times, which are resolved in the
  * following ways:
- * <ol>
- *     <li> 24:00:00 "belongs" to the following day. That is,
- *          23:59 on Dec 31, 1969 &lt; 24:00 on Jan 1, 1970 &lt; 24:01:00 on Jan 1, 1970
  *
- *     <li> Although historically not precise, midnight also belongs to "am",
- *          and noon belongs to "pm", so on the same day,
- *          12:00 am (midnight) &lt; 12:01 am, and 12:00 pm (noon) &lt; 12:01 pm
- * </ol>
+ *   1. 24:00:00 "belongs" to the following day. That is,
+ *      23:59 on Dec 31, 1969 < 24:00 on Jan 1, 1970 < 24:01:00 on Jan 1, 1970
+ *   2. Although historically not precise, midnight also belongs to "am",
+ *      and noon belongs to "pm", so on the same day,
+ *      12:00 am (midnight) < 12:01 am, and 12:00 pm (noon) < 12:01 pm
  *
- * <p>
  * The date or time format strings are not part of the definition of a
  * calendar, as those must be modifiable or overridable by the user at
- * runtime. Use {@link DateFormat}
- * to format dates.
+ * runtime. Use `DateFormat` to format dates.
  *
- * <p>
- * <code>Calendar</code> provides an API for field "rolling", where fields
+ * `Calendar` provides an API for field "rolling", where fields
  * can be incremented or decremented, but wrap around. For example, rolling the
- * month up in the date <code>December 12, <b>1996</b></code> results in
- * <code>January 12, <b>1996</b></code>.
+ * month up in the date December 12, **1996** results in
+ * January 12, **1996**.
  *
- * <p>
- * <code>Calendar</code> also provides a date arithmetic function for
+ * `Calendar` also provides a date arithmetic function for
  * adding the specified (signed) amount of time to a particular time field.
- * For example, subtracting 5 days from the date <code>September 12, 1996</code>
- * results in <code>September 7, 1996</code>.
+ * For example, subtracting 5 days from the date `September 12, 1996`
+ * results in `September 7, 1996`.
  *
- * <p><big><b>Supported range</b></big>
+ * ***Supported range***
  *
- * <p>The allowable range of <code>Calendar</code> has been
- * narrowed. <code>GregorianCalendar</code> used to attempt to support
- * the range of dates with millisecond values from
- * <code>Long.MIN_VALUE</code> to <code>Long.MAX_VALUE</code>.
- * The new <code>Calendar</code> protocol specifies the
+ * The allowable range of `Calendar` has been narrowed. `GregorianCalendar` used
+ * to attempt to support the range of dates with millisecond values from
+ * `Long.MIN_VALUE` to `Long.MAX_VALUE`. The new `Calendar` protocol specifies the
  * maximum range of supportable dates as those having Julian day numbers
- * of <code>-0x7F000000</code> to <code>+0x7F000000</code>. This
- * corresponds to years from ~5,800,000 BCE to ~5,800,000 CE. Programmers
- * should use the protected constants in <code>Calendar</code> to
- * specify an extremely early or extremely late date.</p>
+ * of `-0x7F000000` to `+0x7F000000`. This corresponds to years from ~5,800,000 BCE
+ * to ~5,800,000 CE. Programmers should use the protected constants in `Calendar` to
+ * specify an extremely early or extremely late date.
+ *
+ * <p>
+ * The Japanese calendar uses a combination of era name and year number.
+ * When an emperor of Japan abdicates and a new emperor ascends the throne,
+ * a new era is declared and year number is reset to 1. Even if the date of
+ * abdication is scheduled ahead of time, the new era name might not be
+ * announced until just before the date. In such case, ICU4C may include
+ * a start date of future era without actual era name, but not enabled
+ * by default. ICU4C users who want to test the behavior of the future era
+ * can enable the tentative era by:
+ * <ul>
+ * <li>Environment variable <code>ICU_ENABLE_TENTATIVE_ERA=true</code>.</li>
+ * </ul>
  *
  * @stable ICU 2.0
  */
@@ -903,7 +886,7 @@ public:
     /**
      * Sets the behavior for handling wall time repeating multiple times
      * at negative time zone offset transitions. For example, 1:30 AM on
-     * November 6, 2011 in US Eastern time (Ameirca/New_York) occurs twice;
+     * November 6, 2011 in US Eastern time (America/New_York) occurs twice;
      * 1:30 AM EDT, then 1:30 AM EST one hour later. When <code>UCAL_WALLTIME_FIRST</code>
      * is used, the wall time 1:30AM in this example will be interpreted as 1:30 AM EDT
      * (first occurrence). When <code>UCAL_WALLTIME_LAST</code> is used, it will be
@@ -1718,9 +1701,7 @@ protected:
     /**
      * Validate a single field of this calendar.  Subclasses should
      * override this method to validate any calendar-specific fields.
-     * Generic fields can be handled by
-     * <code>Calendar::validateField()</code>.
-     * @see #validateField(int, int, int, int&)
+     * Generic fields can be handled by `Calendar::validateField()`.
      * @internal
      */
     virtual void validateField(UCalendarDateFields field, UErrorCode &status);
@@ -2171,7 +2152,7 @@ private:
     TimeZone*   fZone;
 
     /**
-     * Option for rpeated wall time
+     * Option for repeated wall time
      * @see #setRepeatedWallTimeOption
      */
     UCalendarWallTimeOption fRepeatedWallTime;
@@ -2456,7 +2437,7 @@ private:
     BasicTimeZone* getBasicTimeZone() const;
 
     /**
-     * Find the previous zone transtion near the given time.
+     * Find the previous zone transition near the given time.
      * @param base The base time, inclusive
      * @param transitionTime Receives the result time
      * @param status The error status
index d035705..653434f 100644 (file)
@@ -235,16 +235,16 @@ public:
      * Returns TRUE if "other" is the same as "this".
      *
      * The base class implementation returns TRUE if "other" has the same type/class as "this":
-     * <code>typeid(*this) == typeid(other)</code>.
+     * `typeid(*this) == typeid(other)`.
      *
      * Subclass implementations should do something like the following:
-     * <pre>
-     *   if (this == &other) { return TRUE; }
-     *   if (!Collator::operator==(other)) { return FALSE; }  // not the same class
      *
-     *   const MyCollator &o = (const MyCollator&)other;
-     *   (compare this vs. o's subclass fields)
-     * </pre>
+     *     if (this == &other) { return TRUE; }
+     *     if (!Collator::operator==(other)) { return FALSE; }  // not the same class
+     *
+     *     const MyCollator &o = (const MyCollator&)other;
+     *     (compare this vs. o's subclass fields)
+     *
      * @param other Collator object to be compared
      * @return TRUE if other is the same as this.
      * @stable ICU 2.0
index 7dc92f6..9c1e918 100644 (file)
@@ -30,30 +30,31 @@ U_NAMESPACE_BEGIN
 class PluralRules;
 
 /**
- * <p><strong>IMPORTANT:</strong> New users are strongly encouraged to see if
+ * **IMPORTANT:** New users are strongly encouraged to see if
  * numberformatter.h fits their use case.  Although not deprecated, this header
  * is provided for backwards compatibility only.
- * <hr/>
+ *
+ * -----------------------------------------------------------------------------
  *
  * The CompactDecimalFormat produces abbreviated numbers, suitable for display in
  * environments will limited real estate. For example, 'Hits: 1.2B' instead of
  * 'Hits: 1,200,000,000'. The format will be appropriate for the given language,
  * such as "1,2 Mrd." for German.
- * <p>
+ *
  * For numbers under 1000 trillion (under 10^15, such as 123,456,789,012,345),
  * the result will be short for supported languages. However, the result may
  * sometimes exceed 7 characters, such as when there are combining marks or thin
  * characters. In such cases, the visual width in fonts should still be short.
- * <p>
+ *
  * By default, there are 3 significant digits. After creation, if more than
  * three significant digits are set (with setMaximumSignificantDigits), or if a
  * fixed number of digits are set (with setMaximumIntegerDigits or
  * setMaximumFractionDigits), then result may be wider.
- * <p>
+ *
  * At this time, parsing is not supported, and will produce a U_UNSUPPORTED_ERROR.
  * Resetting the pattern prefixes or suffixes is not supported; the method calls
  * are ignored.
- * <p>
+ *
  * @stable ICU 51
  */
 class U_I18N_API CompactDecimalFormat : public DecimalFormat {
@@ -61,9 +62,9 @@ public:
 
      /**
       * Returns a compact decimal instance for specified locale.
-     * <p>
-     * <strong>NOTE:</strong> New users are strongly encouraged to use
-     * {@link NumberFormatter} instead of NumberFormat.
+      *
+      * **NOTE:** New users are strongly encouraged to use
+      * `number::NumberFormatter` instead of NumberFormat.
       * @param inLocale the given locale.
       * @param style whether to use short or long style.
       * @param status error code returned  here.
index 33c18b0..7741c60 100644 (file)
@@ -2,7 +2,7 @@
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
  *******************************************************************************
- * Copyright (C) 2009-2015, International Business Machines Corporation and         *
+ * Copyright (C) 2009-2015, International Business Machines Corporation and    *
  * others. All Rights Reserved.                                                *
  *******************************************************************************
  */
@@ -240,18 +240,27 @@ private:
     /*
      * The plural rule is used to format currency plural name,
      * for example: "3.00 US Dollars".
-     * If there are 3 currency signs in the currency patttern,
+     * If there are 3 currency signs in the currency pattern,
      * the 3 currency signs will be replaced by currency plural name.
      */
     PluralRules* fPluralRules;
 
     // locale
     Locale* fLocale;
+
+private:
+    /**
+    * An internal status variable used to indicate that the object is in an 'invalid' state.
+    * Used by copy constructor, the assignment operator and the clone method.
+    */
+    UErrorCode fInternalStatus;
 };
 
 
 inline UBool
-CurrencyPluralInfo::operator!=(const CurrencyPluralInfo& info) const {              return !operator==(info);                                                   }  
+CurrencyPluralInfo::operator!=(const CurrencyPluralInfo& info) const {
+    return !operator==(info);
+}  
 
 U_NAMESPACE_END
 
index ca90acb..ac3bfed 100644 (file)
@@ -38,7 +38,7 @@ class U_I18N_API CurrencyUnit: public MeasureUnit {
  public:
     /**
      * Default constructor.  Initializes currency code to "XXX" (no currency).
-     * @draft ICU 60
+     * @stable ICU 60
      */
     CurrencyUnit();
 
@@ -59,17 +59,15 @@ class U_I18N_API CurrencyUnit: public MeasureUnit {
      */
     CurrencyUnit(const CurrencyUnit& other);
 
-#ifndef U_HIDE_DRAFT_API
     /**
      * Copy constructor from MeasureUnit. This constructor allows you to
      * restore a CurrencyUnit that was sliced to MeasureUnit.
      *
      * @param measureUnit The MeasureUnit to copy from.
      * @param ec Set to a failing value if the MeasureUnit is not a currency.
-     * @draft ICU 60
+     * @stable ICU 60
      */
     CurrencyUnit(const MeasureUnit& measureUnit, UErrorCode &ec);
-#endif  /* U_HIDE_DRAFT_API */
 
     /**
      * Assignment operator
index f8bcf54..81eb8f9 100644 (file)
@@ -43,13 +43,17 @@ U_NAMESPACE_BEGIN
 class TimeZone;
 class DateTimePatternGenerator;
 
-// explicit template instantiation. see digitlst.h
-// (When building DLLs for Windows this is required.)
-#if U_PF_WINDOWS <= U_PLATFORM && U_PLATFORM <= U_PF_CYGWIN
+/**
+ * \cond
+ * Export an explicit template instantiation. (See digitlst.h, datefmt.h, and others.)
+ * (When building DLLs for Windows this is required.)
+ */
+#if U_PF_WINDOWS <= U_PLATFORM && U_PLATFORM <= U_PF_CYGWIN && !defined(U_IN_DOXYGEN)
 template class U_I18N_API EnumSet<UDateFormatBooleanAttribute,
             0, 
             UDAT_BOOLEAN_ATTRIBUTE_COUNT>;
 #endif
+/** \endcond */
 
 /**
  * DateFormat is an abstract class for a family of classes that convert dates and
index 2f824ce..55e3d8a 100644 (file)
@@ -181,7 +181,6 @@ public:
      */
     DecimalFormatSymbols(const Locale& locale, UErrorCode& status);
 
-#ifndef U_HIDE_DRAFT_API
     /**
      * Creates a DecimalFormatSymbols instance for the given locale with digits and symbols
      * corresponding to the given NumberingSystem.
@@ -196,10 +195,9 @@ public:
      * @param ns        The numbering system.
      * @param status    Input/output parameter, set to success or
      *                  failure code upon return.
-     * @draft ICU 60
+     * @stable ICU 60
      */
     DecimalFormatSymbols(const Locale& locale, const NumberingSystem& ns, UErrorCode& status);
-#endif  /* U_HIDE_DRAFT_API */
 
     /**
      * Create a DecimalFormatSymbols object for the default locale.
@@ -406,7 +404,7 @@ public:
      * returning a const reference to one of the symbol strings.
      * The returned reference becomes invalid when the symbol is changed
      * or when the DecimalFormatSymbols are destroyed.
-     * Note: moved #ifndef U_HIDE_INTERNAL_API after this, since this is needed for inline in DecimalFormat
+     * Note: moved \#ifndef U_HIDE_INTERNAL_API after this, since this is needed for inline in DecimalFormat
      *
      * This is not currently stable API, but if you think it should be stable,
      * post a comment on the following ticket and the ICU team will take a look:
@@ -531,7 +529,7 @@ inline const UnicodeString& DecimalFormatSymbols::getConstDigitSymbol(int32_t di
     ENumberFormatSymbol key = static_cast<ENumberFormatSymbol>(kOneDigitSymbol + digit - 1);
     return fSymbols[key];
 }
-#endif
+#endif /* U_HIDE_INTERNAL_API */
 
 // -------------------------------------
 
index 3747f51..b3a5cc0 100644 (file)
@@ -63,19 +63,22 @@ class NumberParserImpl;
 }
 }
 
-// explicit template instantiation. see digitlst.h
-// (When building DLLs for Windows this is required.)
-#if U_PF_WINDOWS <= U_PLATFORM && U_PLATFORM <= U_PF_CYGWIN
+/**
+ * \cond
+ * explicit template instantiation. see digitlst.h
+ * (When building DLLs for Windows this is required.)
+ */
+#if U_PF_WINDOWS <= U_PLATFORM && U_PLATFORM <= U_PF_CYGWIN && !defined(U_IN_DOXYGEN)
 template class U_I18N_API    EnumSet<UNumberFormatAttribute,
             UNUM_MAX_NONBOOLEAN_ATTRIBUTE+1,
             UNUM_LIMIT_BOOLEAN_ATTRIBUTE>;
 #endif
+/** \endcond */
 
 /**
- * <p><strong>IMPORTANT:</strong> New users are strongly encouraged to see if
+ * **IMPORTANT:** New users are strongly encouraged to see if
  * numberformatter.h fits their use case.  Although not deprecated, this header
  * is provided for backwards compatibility only.
- * <hr/>
  *
  * DecimalFormat is a concrete subclass of NumberFormat that formats decimal
  * numbers. It has a variety of features designed to make it possible to parse
@@ -85,13 +88,13 @@ template class U_I18N_API    EnumSet<UNumberFormatAttribute,
  * ("1.23E4"), percentages ("12%"), and currency amounts ("$123", "USD123",
  * "123 US dollars").  All of these flavors can be easily localized.
  *
- * <p>To obtain a NumberFormat for a specific locale (including the default
+ * To obtain a NumberFormat for a specific locale (including the default
  * locale) call one of NumberFormat's factory methods such as
  * createInstance(). Do not call the DecimalFormat constructors directly, unless
  * you know what you are doing, since the NumberFormat factory methods may
  * return subclasses other than DecimalFormat.
  *
- * <p><strong>Example Usage</strong>
+ * **Example Usage**
  *
  * \code
  *     // Normally we would have a GUI with a menu for this
@@ -135,11 +138,11 @@ template class U_I18N_API    EnumSet<UNumberFormatAttribute,
  *         }
  *     }
  * \endcode
- * <P>
- * Another example use createInstance(style)
- * <P>
- * <pre>
- * <strong>// Print out a number using the localized number, currency,
+ *
+ * **Another example use createInstance(style)**
+ *
+ * \code
+ * // Print out a number using the localized number, currency,
  * // percent, scientific, integer, iso currency, and plural currency
  * // format for each locale</strong>
  * Locale* locale = new Locale("en", "US");
@@ -150,11 +153,13 @@ template class U_I18N_API    EnumSet<UNumberFormatAttribute,
  * for (int j=NumberFormat::kNumberStyle;
  *      j<=NumberFormat::kPluralCurrencyStyle;
  *      ++j) {
- *     NumberFormat* format = NumberFormat::createInstance(locale, j, success);
+ *     NumberFormat* form = NumberFormat::createInstance(locale, j, success);
  *     str.remove();
  *     cout << "format result " << form->format(myNumber, str) << endl;
  *     format->parse(form->format(myNumber, str), fmtable, success);
- * }</pre>
+ *     delete form;
+ * }
+ * \endcode
  *
  *
  * <p><strong>Patterns</strong>
@@ -690,7 +695,7 @@ class U_I18N_API DecimalFormat : public NumberFormat {
      * locale.
      * <p>
      * <strong>NOTE:</strong> New users are strongly encouraged to use
-     * {@link NumberFormatter} instead of DecimalFormat.
+     * #icu::number::NumberFormatter instead of DecimalFormat.
      * @param status    Output param set to success/failure code. If the
      *                  pattern is invalid this will be set to a failure code.
      * @stable ICU 2.0
@@ -708,7 +713,7 @@ class U_I18N_API DecimalFormat : public NumberFormat {
      * locale.
      * <p>
      * <strong>NOTE:</strong> New users are strongly encouraged to use
-     * {@link NumberFormatter} instead of DecimalFormat.
+     * #icu::number::NumberFormatter instead of DecimalFormat.
      * @param pattern   A non-localized pattern string.
      * @param status    Output param set to success/failure code. If the
      *                  pattern is invalid this will be set to a failure code.
@@ -728,7 +733,7 @@ class U_I18N_API DecimalFormat : public NumberFormat {
      * a NumberFormat factory method.
      * <p>
      * <strong>NOTE:</strong> New users are strongly encouraged to use
-     * {@link NumberFormatter} instead of DecimalFormat.
+     * #icu::number::NumberFormatter instead of DecimalFormat.
      *
      * @param pattern           a non-localized pattern string
      * @param symbolsToAdopt    the set of symbols to be used.  The caller should not
@@ -782,7 +787,7 @@ class U_I18N_API DecimalFormat : public NumberFormat {
      * May return U_UNSUPPORTED_ERROR if this instance does not support
      * the specified attribute.
      * @param attr the attribute to set
-     * @param newvalue new value
+     * @param newValue new value
      * @param status the error type
      * @return *this - for chaining (example: format.setAttribute(...).setAttribute(...) )
      * @stable ICU 51
@@ -839,7 +844,7 @@ class U_I18N_API DecimalFormat : public NumberFormat {
      * a NumberFormat factory method.
      * <p>
      * <strong>NOTE:</strong> New users are strongly encouraged to use
-     * {@link NumberFormatter} instead of DecimalFormat.
+     * #icu::number::NumberFormatter instead of DecimalFormat.
      *
      * @param pattern           a non-localized pattern string
      * @param symbolsToAdopt    the set of symbols to be used.  The caller should not
@@ -864,7 +869,7 @@ class U_I18N_API DecimalFormat : public NumberFormat {
      * a NumberFormat factory method.
      * <p>
      * <strong>NOTE:</strong> New users are strongly encouraged to use
-     * {@link NumberFormatter} instead of DecimalFormat.
+     * #icu::number::NumberFormatter instead of DecimalFormat.
      *
      * @param pattern           a non-localized pattern string
      * @param symbols   the set of symbols to be used
@@ -986,6 +991,7 @@ class U_I18N_API DecimalFormat : public NumberFormat {
      *                  Result is appended to existing contents.
      * @param pos       On input: an alignment field, if desired.
      *                  On output: the offsets of the alignment field.
+     * @param status    Output param filled with success/failure status.
      * @return          Reference to 'appendTo' parameter.
      * @internal
      */
@@ -1031,6 +1037,7 @@ class U_I18N_API DecimalFormat : public NumberFormat {
      *                  Result is appended to existing contents.
      * @param pos       On input: an alignment field, if desired.
      *                  On output: the offsets of the alignment field.
+     * @param status    Output param filled with success/failure status.
      * @return          Reference to 'appendTo' parameter.
      * @internal
      */
@@ -1726,7 +1733,7 @@ class U_I18N_API DecimalFormat : public NumberFormat {
     virtual void setDecimalPatternMatchRequired(UBool newValue);
 
     /**
-     * {@icu} Returns whether to ignore exponents when parsing.
+     * Returns whether to ignore exponents when parsing.
      *
      * @see #setParseNoExponent
      * @internal This API is a technical preview. It may change in an upcoming release.
@@ -1734,7 +1741,7 @@ class U_I18N_API DecimalFormat : public NumberFormat {
     virtual UBool isParseNoExponent() const;
 
     /**
-     * {@icu} Specifies whether to stop parsing when an exponent separator is encountered. For
+     * Specifies whether to stop parsing when an exponent separator is encountered. For
      * example, parses "123E4" to 123 (with parse position 3) instead of 1230000 (with parse position
      * 5).
      *
@@ -1744,7 +1751,7 @@ class U_I18N_API DecimalFormat : public NumberFormat {
     virtual void setParseNoExponent(UBool value);
 
     /**
-     * {@icu} Returns whether parsing is sensitive to case (lowercase/uppercase).
+     * Returns whether parsing is sensitive to case (lowercase/uppercase).
      *
      * @see #setParseCaseSensitive
      * @internal This API is a technical preview. It may change in an upcoming release.
@@ -1752,7 +1759,7 @@ class U_I18N_API DecimalFormat : public NumberFormat {
     virtual UBool isParseCaseSensitive() const;
 
     /**
-     * {@icu} Whether to pay attention to case when parsing; default is to ignore case (perform
+     * Whether to pay attention to case when parsing; default is to ignore case (perform
      * case-folding). For example, "A" == "a" in case-insensitive but not case-sensitive mode.
      *
      * Currency symbols are never case-folded. For example, "us$1.00" will not parse in case-insensitive
@@ -1763,7 +1770,7 @@ class U_I18N_API DecimalFormat : public NumberFormat {
     virtual void setParseCaseSensitive(UBool value);
 
     /**
-     * {@icu} Returns whether truncation of high-order integer digits should result in an error.
+     * Returns whether truncation of high-order integer digits should result in an error.
      * By default, setMaximumIntegerDigits truncates high-order digits silently.
      *
      * @see setFormatFailIfMoreThanMaxDigits
@@ -1772,7 +1779,7 @@ class U_I18N_API DecimalFormat : public NumberFormat {
     virtual UBool isFormatFailIfMoreThanMaxDigits() const;
 
     /**
-     * {@icu} Sets whether truncation of high-order integer digits should result in an error.
+     * Sets whether truncation of high-order integer digits should result in an error.
      * By default, setMaximumIntegerDigits truncates high-order digits silently.
      *
      * @internal This API is a technical preview. It may change in an upcoming release.
@@ -2017,16 +2024,17 @@ class U_I18N_API DecimalFormat : public NumberFormat {
     virtual void setCurrency(const char16_t* theCurrency);
 
     /**
-     * Sets the <tt>Currency Context</tt> object used to display currency.
+     * Sets the `Currency Usage` object used to display currency.
      * This takes effect immediately, if this format is a
      * currency format.
-     * @param currencyContext new currency context object to use.
+     * @param newUsage new currency usage object to use.
+     * @param ec input-output error code
      * @stable ICU 54
      */
     void setCurrencyUsage(UCurrencyUsage newUsage, UErrorCode* ec);
 
     /**
-     * Returns the <tt>Currency Context</tt> object used to display currency
+     * Returns the `Currency Usage` object used to display currency
      * @stable ICU 54
      */
     UCurrencyUsage getCurrencyUsage() const;
@@ -2050,7 +2058,7 @@ class U_I18N_API DecimalFormat : public NumberFormat {
     void formatToDecimalQuantity(const Formattable& number, number::impl::DecimalQuantity& output,
                                  UErrorCode& status) const;
 
-#endif
+#endif  /* U_HIDE_INTERNAL_API */
 
 #ifndef U_HIDE_DRAFT_API
     /**
@@ -2072,7 +2080,6 @@ class U_I18N_API DecimalFormat : public NumberFormat {
      * FormattedNumber result = df->toNumberFormatter().formatDouble(123, status);
      * </pre>
      *
-     * @param output The variable into which to store the LocalizedNumberFormatter.
      * @return The output variable, for chaining.
      * @draft ICU 62
      */
index feb465e..26ccc64 100644 (file)
@@ -498,27 +498,23 @@ public:
 private:
     /**
      * Constructor.
-     * @stable ICU 3.8
      */
     DateTimePatternGenerator(UErrorCode & status);
 
     /**
      * Constructor.
-     * @stable ICU 3.8
      */
     DateTimePatternGenerator(const Locale& locale, UErrorCode & status);
 
     /**
      * Copy constructor.
      * @param other DateTimePatternGenerator to copy
-     * @stable ICU 3.8
      */
     DateTimePatternGenerator(const DateTimePatternGenerator& other);
 
     /**
      * Default assignment operator.
      * @param other DateTimePatternGenerator to copy
-     * @stable ICU 3.8
      */
     DateTimePatternGenerator& operator=(const DateTimePatternGenerator& other);
 
@@ -542,6 +538,11 @@ private:
 
     int32_t fAllowedHourFormats[7];  // Actually an array of AllowedHourFormat enum type, ending with UNKNOWN.
 
+    // Internal error code used for recording/reporting errors that occur during methods that do not
+    // have a UErrorCode parameter. For example: the Copy Constructor, or the ::clone() method.
+    // When this is set to an error the object is in an invalid state.
+    UErrorCode internalErrorCode;
+
     /* internal flags masks for adjustFieldTypes etc. */
     enum {
         kDTPGNoFlags = 0,
@@ -569,11 +570,10 @@ private:
 #endif  // U_HIDE_DRAFT_API
     void getAppendName(UDateTimePatternField field, UnicodeString& value);
     UnicodeString mapSkeletonMetacharacters(const UnicodeString& patternForm, int32_t* flags, UErrorCode& status);
-    int32_t getCanonicalIndex(const UnicodeString& field);
-    const UnicodeString* getBestRaw(DateTimeMatcher& source, int32_t includeMask, DistanceInfo* missingFields, const PtnSkeleton** specifiedSkeletonPtr = 0);
+    const UnicodeString* getBestRaw(DateTimeMatcher& source, int32_t includeMask, DistanceInfo* missingFields, UErrorCode& status, const PtnSkeleton** specifiedSkeletonPtr = 0);
     UnicodeString adjustFieldTypes(const UnicodeString& pattern, const PtnSkeleton* specifiedSkeleton, int32_t flags, UDateTimePatternMatchOptions options = UDATPG_MATCH_NO_OPTIONS);
-    UnicodeString getBestAppending(int32_t missingFields, int32_t flags, UDateTimePatternMatchOptions options = UDATPG_MATCH_NO_OPTIONS);
-    int32_t getTopBitNumber(int32_t foundMask);
+    UnicodeString getBestAppending(int32_t missingFields, int32_t flags, UErrorCode& status, UDateTimePatternMatchOptions options = UDATPG_MATCH_NO_OPTIONS);
+    int32_t getTopBitNumber(int32_t foundMask) const;
     void setAvailableFormat(const UnicodeString &key, UErrorCode& status);
     UBool isAvailableFormatSet(const UnicodeString &key) const;
     void copyHashtable(Hashtable *other, UErrorCode &status);
index 2359b61..a06c23d 100644 (file)
@@ -658,7 +658,7 @@ public:
     /**
      *  Adopt, and set value from, a DecimalQuantity
      *     Internal Function, do not use.
-     *  @param dl the DecimalQuantity to be adopted
+     *  @param dq the DecimalQuantity to be adopted
      *  @internal
      */
     void adoptDecimalQuantity(number::impl::DecimalQuantity *dq);
index e3c27d0..d2773eb 100644 (file)
 #ifndef _GENDER
 #define _GENDER
 
+/**
+ * \file
+ * \brief C++ API: GenderInfo computes the gender of a list.
+ */
+
 #include "unicode/utypes.h"
 
 #if !UCONFIG_NO_FORMATTING
@@ -30,7 +35,7 @@ class GenderInfoTest;
 
 U_NAMESPACE_BEGIN
 
-// Forward Declaration
+/** \internal Forward Declaration  */
 void U_CALLCONV GenderInfo_initCache(UErrorCode &status);
 
 /**
similarity index 79%
rename from source/common/unicode/listformatter.h
rename to source/i18n/unicode/listformatter.h
index 180fbcb..5e36cf7 100644 (file)
@@ -26,6 +26,9 @@
 
 U_NAMESPACE_BEGIN
 
+class FieldPositionIterator;
+class FieldPositionHandler;
+
 /** @internal */
 class Hashtable;
 
@@ -33,7 +36,10 @@ class Hashtable;
 struct ListFormatInternal;
 
 /* The following can't be #ifndef U_HIDE_INTERNAL_API, needed for other .h file declarations */
-/** @internal */
+/**
+ * @internal
+ * \cond
+ */
 struct ListFormatData : public UMemory {
     UnicodeString twoPattern;
     UnicodeString startPattern;
@@ -43,6 +49,7 @@ struct ListFormatData : public UMemory {
   ListFormatData(const UnicodeString& two, const UnicodeString& start, const UnicodeString& middle, const UnicodeString& end) :
       twoPattern(two), startPattern(start), middlePattern(middle), endPattern(end) {}
 };
+/** \endcond */
 
 
 /**
@@ -61,7 +68,7 @@ struct ListFormatData : public UMemory {
  * The ListFormatter class is not intended for public subclassing.
  * @stable ICU 50
  */
-class U_COMMON_API ListFormatter : public UObject{
+class U_I18N_API ListFormatter : public UObject{
 
   public:
 
@@ -133,6 +140,27 @@ class U_COMMON_API ListFormatter : public UObject{
     UnicodeString& format(const UnicodeString items[], int32_t n_items,
         UnicodeString& appendTo, UErrorCode& errorCode) const;
 
+#ifndef U_HIDE_DRAFT_API
+    /**
+     * Format a list of strings.
+     *
+     * @param items     An array of strings to be combined and formatted.
+     * @param n_items   Length of the array items.
+     * @param appendTo  The string to which the formatted result will be
+     *                  appended.
+     * @param posIter   On return, can be used to iterate over positions of
+     *                  fields generated by this format call. Field values are
+     *                  defined in UListFormatterField. Can be NULL.
+     * @param errorCode ICU error code returned here.
+     * @return          Formatted string combining the elements of items,
+     *                  appended to appendTo.
+     * @draft ICU 63
+     */
+    UnicodeString& format(const UnicodeString items[], int32_t n_items,
+        UnicodeString & appendTo, FieldPositionIterator* posIter,
+        UErrorCode& errorCode) const;
+#endif  /* U_HIDE_DRAFT_API */
+
 #ifndef U_HIDE_INTERNAL_API
     /**
       @internal for MeasureFormat
@@ -160,6 +188,10 @@ class U_COMMON_API ListFormatter : public UObject{
     struct ListPatternsSink;
     static ListFormatInternal* loadListFormatInternal(const Locale& locale, const char* style, UErrorCode& errorCode);
 
+    UnicodeString& format_(
+        const UnicodeString items[], int32_t n_items, UnicodeString& appendTo,
+        int32_t index, int32_t &offset, FieldPositionHandler* handler, UErrorCode& errorCode) const;
+
     ListFormatter();
 
     ListFormatInternal* owned;
index 00f2d47..3167a76 100644 (file)
@@ -104,7 +104,7 @@ class U_I18N_API MeasureFormat : public Format {
      * Constructor.
      * <p>
      * <strong>NOTE:</strong> New users are strongly encouraged to use
-     * {@link NumberFormatter} instead of NumberFormat.
+     * {@link icu::number::NumberFormatter} instead of NumberFormat.
      * @stable ICU 53
      */
     MeasureFormat(
@@ -114,7 +114,7 @@ class U_I18N_API MeasureFormat : public Format {
      * Constructor.
      * <p>
      * <strong>NOTE:</strong> New users are strongly encouraged to use
-     * {@link NumberFormatter} instead of NumberFormat.
+     * {@link icu::number::NumberFormatter} instead of NumberFormat.
      * @stable ICU 53
      */
     MeasureFormat(
@@ -202,7 +202,7 @@ class U_I18N_API MeasureFormat : public Format {
      * formatted string is 3.5 meters per second.
      * @param measure The measure object. In above example, 3.5 meters.
      * @param perUnit The per unit. In above example, it is
-     *        *MeasureUnit::createSecond(status).
+     *        `*%MeasureUnit::createSecond(status)`.
      * @param appendTo formatted string appended here.
      * @param pos the field position.
      * @param status the error.
@@ -223,7 +223,7 @@ class U_I18N_API MeasureFormat : public Format {
      * @param unit  The unit for which to get a display name.
      * @param status the error.
      * @return  The display name in the locale and width specified in
-     *          {@link MeasureFormat#getInstance}, or null if there is no display name available
+     *          the MeasureFormat constructor, or null if there is no display name available
      *          for the specified unit.
      *
      * @stable ICU 58
@@ -236,7 +236,7 @@ class U_I18N_API MeasureFormat : public Format {
      * locale.
      * <p>
      * <strong>NOTE:</strong> New users are strongly encouraged to use
-     * {@link NumberFormatter} instead of NumberFormat.
+     * {@link icu::number::NumberFormatter} instead of NumberFormat.
      * @param locale desired locale
      * @param ec input-output error code
      * @return a formatter object, or NULL upon error
@@ -250,7 +250,7 @@ class U_I18N_API MeasureFormat : public Format {
      * locale.
      * <p>
      * <strong>NOTE:</strong> New users are strongly encouraged to use
-     * {@link NumberFormatter} instead of NumberFormat.
+     * {@link icu::number::NumberFormatter} instead of NumberFormat.
      * @param ec input-output error code
      * @return a formatter object, or NULL upon error
      * @stable ICU 3.0
@@ -348,7 +348,7 @@ class U_I18N_API MeasureFormat : public Format {
     const MeasureFormatCacheData *cache;
     const SharedNumberFormat *numberFormat;
     const SharedPluralRules *pluralRules;
-    UMeasureFormatWidth width;    
+    UMeasureFormatWidth fWidth;    
 
     // Declared outside of MeasureFormatSharedData because ListFormatter
     // objects are relatively cheap to copy; therefore, they don't need to be
index a92d24b..fac18f7 100644 (file)
@@ -368,6 +368,26 @@ class U_I18N_API MeasureUnit: public UObject {
      */
     static MeasureUnit *createPartPerMillion(UErrorCode &status);
 
+#ifndef U_HIDE_DRAFT_API
+    /**
+     * Returns unit of concentr: percent.
+     * Caller owns returned value and must free it.
+     * @param status ICU error code.
+     * @draft ICU 63
+     */
+    static MeasureUnit *createPercent(UErrorCode &status);
+#endif /* U_HIDE_DRAFT_API */
+
+#ifndef U_HIDE_DRAFT_API
+    /**
+     * Returns unit of concentr: permille.
+     * Caller owns returned value and must free it.
+     * @param status ICU error code.
+     * @draft ICU 63
+     */
+    static MeasureUnit *createPermille(UErrorCode &status);
+#endif /* U_HIDE_DRAFT_API */
+
     /**
      * Returns unit of consumption: liter-per-100kilometers.
      * Caller owns returned value and must free it.
@@ -464,6 +484,16 @@ class U_I18N_API MeasureUnit: public UObject {
      */
     static MeasureUnit *createMegabyte(UErrorCode &status);
 
+#ifndef U_HIDE_DRAFT_API
+    /**
+     * Returns unit of digital: petabyte.
+     * Caller owns returned value and must free it.
+     * @param status ICU error code.
+     * @draft ICU 63
+     */
+    static MeasureUnit *createPetabyte(UErrorCode &status);
+#endif /* U_HIDE_DRAFT_API */
+
     /**
      * Returns unit of digital: terabit.
      * Caller owns returned value and must free it.
@@ -984,6 +1014,16 @@ class U_I18N_API MeasureUnit: public UObject {
      */
     static MeasureUnit *createWatt(UErrorCode &status);
 
+#ifndef U_HIDE_DRAFT_API
+    /**
+     * Returns unit of pressure: atmosphere.
+     * Caller owns returned value and must free it.
+     * @param status ICU error code.
+     * @draft ICU 63
+     */
+    static MeasureUnit *createAtmosphere(UErrorCode &status);
+#endif /* U_HIDE_DRAFT_API */
+
     /**
      * Returns unit of pressure: hectopascal.
      * Caller owns returned value and must free it.
index fef8010..074d933 100644 (file)
@@ -124,7 +124,7 @@ class NumberFormat;
  * argNumber = '0' | ('1'..'9' ('0'..'9')*)
  *
  * argType = "number" | "date" | "time" | "spellout" | "ordinal" | "duration"
- * argStyle = "short" | "medium" | "long" | "full" | "integer" | "currency" | "percent" | argStyleText
+ * argStyle = "short" | "medium" | "long" | "full" | "integer" | "currency" | "percent" | argStyleText | "::" argSkeletonText
  * </pre>
  *
  * <ul>
@@ -166,7 +166,7 @@ class NumberFormat;
  *       <td colspan=2><i>(none)</i>
  *       <td><code>null</code>
  *    <tr>
- *       <td rowspan=5><code>number</code>
+ *       <td rowspan=6><code>number</code>
  *       <td><i>(none)</i>
  *       <td><code>NumberFormat.createInstance(getLocale(), status)</code>
  *    <tr>
@@ -182,6 +182,9 @@ class NumberFormat;
  *       <td><i>argStyleText</i>
  *       <td><code>new DecimalFormat(argStyleText, new DecimalFormatSymbols(getLocale(), status), status)</code>
  *    <tr>
+ *       <td><i>argSkeletonText</i>
+ *       <td><code>NumberFormatter::forSkeleton(argSkeletonText, status).locale(getLocale()).toFormat(status)</code>
+ *    <tr>
  *       <td rowspan=6><code>date</code>
  *       <td><i>(none)</i>
  *       <td><code>DateFormat.createDateInstance(kDefault, getLocale(), status)</code>
@@ -199,7 +202,7 @@ class NumberFormat;
  *       <td><code>DateFormat.createDateInstance(kFull, getLocale(), status)</code>
  *    <tr>
  *       <td><i>argStyleText</i>
- *       <td><code>new SimpleDateFormat(argStyleText, getLocale(), status)
+ *       <td><code>new SimpleDateFormat(argStyleText, getLocale(), status)</code>
  *    <tr>
  *       <td rowspan=6><code>time</code>
  *       <td><i>(none)</i>
@@ -218,7 +221,7 @@ class NumberFormat;
  *       <td><code>DateFormat.createTimeInstance(kFull, getLocale(), status)</code>
  *    <tr>
  *       <td><i>argStyleText</i>
- *       <td><code>new SimpleDateFormat(argStyleText, getLocale(), status)
+ *       <td><code>new SimpleDateFormat(argStyleText, getLocale(), status)</code>
  *    <tr>
  *       <td><code>spellout</code>
  *       <td><i>argStyleText (optional)</i>
index 3ab0831..469949a 100644 (file)
@@ -144,11 +144,31 @@ class MultiplierFormatHandler;
 class CurrencySymbols;
 class GeneratorHelpers;
 class DecNum;
+class NumberRangeFormatterImpl;
+struct RangeMacroProps;
+
+/**
+ * Used for NumberRangeFormatter and implemented in numrange_fluent.cpp.
+ * Declared here so it can be friended.
+ *
+ * @internal
+ */
+void touchRangeLocales(impl::RangeMacroProps& macros);
 
 } // namespace impl
 
-// Reserve extra names in case they are added as classes in the future:
+/**
+ * Extra name reserved in case it is needed in the future.
+ *
+ * @draft ICU 63
+ */
 typedef Notation CompactNotation;
+
+/**
+ * Extra name reserved in case it is needed in the future.
+ *
+ * @draft ICU 63
+ */
 typedef Notation SimpleNotation;
 
 /**
@@ -308,10 +328,15 @@ class U_I18N_API Notation : public UMemory {
 
     union NotationUnion {
         // For NTN_SCIENTIFIC
+        /** @internal */
         struct ScientificSettings {
+            /** @internal */
             int8_t fEngineeringInterval;
+            /** @internal */
             bool fRequireMinInt;
+            /** @internal */
             impl::digits_t fMinExponentDigits;
+            /** @internal */
             UNumberSignDisplay fExponentSignDisplay;
         } scientific;
 
@@ -407,15 +432,39 @@ class U_I18N_API ScientificNotation : public Notation {
     friend class impl::NumberPropertyMapper;
 };
 
-// Reserve extra names in case they are added as classes in the future:
+/**
+ * Extra name reserved in case it is needed in the future.
+ *
+ * @draft ICU 63
+ */
 typedef Precision SignificantDigitsPrecision;
 
 // Typedefs for ICU 60/61 compatibility.
 // These will be removed in ICU 64.
 // See http://bugs.icu-project.org/trac/ticket/13746
+
+/**
+ * This will be removed in ICU 64.  See ICU-13746.
+ * @deprecated ICU 63
+ */
 typedef Precision Rounder;
+
+/**
+ * This will be removed in ICU 64.  See ICU-13746.
+ * @deprecated ICU 63
+ */
 typedef FractionPrecision FractionRounder;
+
+/**
+ * This will be removed in ICU 64.  See ICU-13746.
+ * @deprecated ICU 63
+ */
 typedef IncrementPrecision IncrementRounder;
+
+/**
+ * This will be removed in ICU 64.  See ICU-13746.
+ * @deprecated ICU 63
+ */
 typedef CurrencyPrecision CurrencyRounder;
 
 /**
@@ -672,16 +721,25 @@ class U_I18N_API Precision : public UMemory {
     } fType;
 
     union PrecisionUnion {
+        /** @internal */
         struct FractionSignificantSettings {
             // For RND_FRACTION, RND_SIGNIFICANT, and RND_FRACTION_SIGNIFICANT
+            /** @internal */
             impl::digits_t fMinFrac;
+            /** @internal */
             impl::digits_t fMaxFrac;
+            /** @internal */
             impl::digits_t fMinSig;
+            /** @internal */
             impl::digits_t fMaxSig;
         } fracSig;
+        /** @internal */
         struct IncrementSettings {
+            /** @internal */
             double fIncrement;
+            /** @internal */
             impl::digits_t fMinFrac;
+            /** @internal */
             impl::digits_t fMaxFrac;
         } increment; // For RND_INCREMENT
         UCurrencyUsage currencyUsage; // For RND_CURRENCY
@@ -1205,7 +1263,7 @@ class U_I18N_API Grouper : public UMemory {
   public:
 #ifndef U_HIDE_INTERNAL_API
     /** @internal */
-    static Grouper forStrategy(UGroupingStrategy grouping);
+    static Grouper forStrategy(UNumberGroupingStrategy grouping);
 
     /**
      * Resolve the values in Properties to a Grouper object.
@@ -1216,7 +1274,7 @@ class U_I18N_API Grouper : public UMemory {
     // Future: static Grouper forProperties(DecimalFormatProperties& properties);
 
     /** @internal */
-    Grouper(int16_t grouping1, int16_t grouping2, int16_t minGrouping, UGroupingStrategy strategy)
+    Grouper(int16_t grouping1, int16_t grouping2, int16_t minGrouping, UNumberGroupingStrategy strategy)
             : fGrouping1(grouping1),
               fGrouping2(grouping2),
               fMinGrouping(minGrouping),
@@ -1251,10 +1309,10 @@ class U_I18N_API Grouper : public UMemory {
     int16_t fMinGrouping;
 
     /**
-     * The UGroupingStrategy that was used to create this Grouper, or UNUM_GROUPING_COUNT if this
-     * was not created from a UGroupingStrategy.
+     * The UNumberGroupingStrategy that was used to create this Grouper, or UNUM_GROUPING_COUNT if this
+     * was not created from a UNumberGroupingStrategy.
      */
-    UGroupingStrategy fStrategy;
+    UNumberGroupingStrategy fStrategy;
 
     Grouper() : fGrouping1(-3) {};
 
@@ -1423,7 +1481,8 @@ struct U_I18N_API MacroProps : public UMemory {
 
 /**
  * An abstract base class for specifying settings related to number formatting. This class is implemented by
- * {@link UnlocalizedNumberFormatter} and {@link LocalizedNumberFormatter}.
+ * {@link UnlocalizedNumberFormatter} and {@link LocalizedNumberFormatter}. This class is not intended for
+ * public subclassing.
  */
 template<typename Derived>
 class U_I18N_API NumberFormatterSettings {
@@ -1710,7 +1769,7 @@ class U_I18N_API NumberFormatterSettings {
      * The exact grouping widths will be chosen based on the locale.
      *
      * <p>
-     * Pass this method an element from the {@link UGroupingStrategy} enum. For example:
+     * Pass this method an element from the {@link UNumberGroupingStrategy} enum. For example:
      *
      * <pre>
      * NumberFormatter::with().grouping(UNUM_GROUPING_MIN2)
@@ -1724,7 +1783,7 @@ class U_I18N_API NumberFormatterSettings {
      * @return The fluent chain.
      * @draft ICU 61
      */
-    Derived grouping(UGroupingStrategy strategy) const &;
+    Derived grouping(UNumberGroupingStrategy strategy) const &;
 
     /**
      * Overload of grouping() for use on an rvalue reference.
@@ -1733,10 +1792,9 @@ class U_I18N_API NumberFormatterSettings {
      *            The grouping strategy to use.
      * @return The fluent chain.
      * @see #grouping
-     * @provisional This API might change or be removed in a future release.
      * @draft ICU 62
      */
-    Derived grouping(UGroupingStrategy strategy) &&;
+    Derived grouping(UNumberGroupingStrategy strategy) &&;
 
     /**
      * Specifies the minimum and maximum number of digits to render before the decimal mark.
@@ -1748,7 +1806,7 @@ class U_I18N_API NumberFormatterSettings {
      * </ul>
      *
      * <p>
-     * Pass this method the return value of {@link IntegerWidth#zeroFillTo(int)}. For example:
+     * Pass this method the return value of {@link IntegerWidth#zeroFillTo}. For example:
      *
      * <pre>
      * NumberFormatter::with().integerWidth(IntegerWidth::zeroFillTo(2))
@@ -2099,15 +2157,18 @@ class U_I18N_API NumberFormatterSettings {
 
     // NOTE: Uses default copy and move constructors.
 
-  protected:
+  private:
     impl::MacroProps fMacros;
 
-  private:
     // Don't construct me directly!  Use (Un)LocalizedNumberFormatter.
     NumberFormatterSettings() = default;
 
     friend class LocalizedNumberFormatter;
     friend class UnlocalizedNumberFormatter;
+
+    // Give NumberRangeFormatter access to the MacroProps
+    friend void impl::touchRangeLocales(impl::RangeMacroProps& macros);
+    friend class impl::NumberRangeFormatterImpl;
 };
 
 /**
@@ -2124,13 +2185,6 @@ class U_I18N_API UnlocalizedNumberFormatter
      * Associate the given locale with the number formatter. The locale is used for picking the appropriate symbols,
      * formats, and other data for number display.
      *
-     * <p>
-     * To use the Java default locale, call Locale::getDefault():
-     *
-     * <pre>
-     * NumberFormatter::with(). ... .locale(Locale::getDefault())
-     * </pre>
-     *
      * @param locale
      *            The locale to use when loading data for number formatting.
      * @return The fluent chain.
@@ -2156,7 +2210,6 @@ class U_I18N_API UnlocalizedNumberFormatter
      */
     UnlocalizedNumberFormatter() = default;
 
-    // Make default copy constructor call the NumberFormatterSettings copy constructor.
     /**
      * Returns a copy of this UnlocalizedNumberFormatter.
      * @draft ICU 60
@@ -2271,7 +2324,7 @@ class U_I18N_API LocalizedNumberFormatter
      */
     int32_t getCallCount() const;
 
-#endif
+#endif  /* U_HIDE_INTERNAL_API */
 
     /**
      * Creates a representation of this LocalizedNumberFormat as an icu::Format, enabling the use
@@ -2295,7 +2348,6 @@ class U_I18N_API LocalizedNumberFormatter
      */
     LocalizedNumberFormatter() = default;
 
-    // Make default copy constructor call the NumberFormatterSettings copy constructor.
     /**
      * Returns a copy of this LocalizedNumberFormatter.
      * @draft ICU 60
@@ -2333,11 +2385,12 @@ class U_I18N_API LocalizedNumberFormatter
      *
      * @param results
      *            The results object. This method will mutate it to save the results.
+     * @param status
      * @internal
      */
     void formatImpl(impl::UFormattedNumberData *results, UErrorCode &status) const;
 
-#endif
+#endif  /* U_HIDE_INTERNAL_API */
 
     /**
      * Destruct this LocalizedNumberFormatter, cleaning up any memory it might own.
@@ -2359,6 +2412,8 @@ class U_I18N_API LocalizedNumberFormatter
 
     LocalizedNumberFormatter(impl::MacroProps &&macros, const Locale &locale);
 
+    void clear();
+
     void lnfMoveHelper(LocalizedNumberFormatter&& src);
 
     /**
@@ -2430,7 +2485,7 @@ class U_I18N_API FormattedNumber : public UMemory {
      * @draft ICU 62
      * @see Appendable
      */
-    Appendable &appendTo(Appendable &appendable, UErrorCode& status);
+    Appendable &appendTo(Appendable &appendable, UErrorCode& status) const;
 
 #ifndef U_HIDE_DEPRECATED_API
     /**
@@ -2457,9 +2512,9 @@ class U_I18N_API FormattedNumber : public UMemory {
 #endif  /* U_HIDE_DEPRECATED_API */
 
     /**
-     * Determines the start and end indices of the next occurrence of the given <em>field</em> in the
-     * output string. This allows you to determine the locations of, for example, the integer part,
-     * fraction part, or symbols.
+     * Determines the start (inclusive) and end (exclusive) indices of the next occurrence of the given
+     * <em>field</em> in the output string. This allows you to determine the locations of, for example,
+     * the integer part, fraction part, or symbols.
      *
      * If a field occurs just once, calling this method will find that occurrence and return it. If a
      * field occurs multiple times, this method may be called repeatedly with the following pattern:
@@ -2478,7 +2533,7 @@ class U_I18N_API FormattedNumber : public UMemory {
      *            Input+output variable. On input, the "field" property determines which field to look
      *            up, and the "beginIndex" and "endIndex" properties determine where to begin the search.
      *            On output, the "beginIndex" is set to the beginning of the first occurrence of the
-     *            field with either begin or end indices after the input indices, "endIndex" is set to
+     *            field with either begin or end indices after the input indices; "endIndex" is set to
      *            the end of that occurrence of the field (exclusive index). If a field position is not
      *            found, the method returns FALSE and the FieldPosition may or may not be changed.
      * @param status
@@ -2537,7 +2592,7 @@ class U_I18N_API FormattedNumber : public UMemory {
      */
     void getAllFieldPositionsImpl(FieldPositionIteratorHandler& fpih, UErrorCode& status) const;
 
-#endif
+#endif  /* U_HIDE_INTERNAL_API */
 
     /**
      * Copying not supported; use move constructor instead.
diff --git a/source/i18n/unicode/numberrangeformatter.h b/source/i18n/unicode/numberrangeformatter.h
new file mode 100644 (file)
index 0000000..5054683
--- /dev/null
@@ -0,0 +1,866 @@
+// © 2018 and later: Unicode, Inc. and others.
+// License & terms of use: http://www.unicode.org/copyright.html
+
+#if !UCONFIG_NO_FORMATTING
+#ifndef __NUMBERRANGEFORMATTER_H__
+#define __NUMBERRANGEFORMATTER_H__
+
+#include <atomic>
+#include "unicode/appendable.h"
+#include "unicode/fieldpos.h"
+#include "unicode/fpositer.h"
+#include "unicode/numberformatter.h"
+
+#ifndef U_HIDE_DRAFT_API
+
+/**
+ * \file
+ * \brief C++ API: Library for localized formatting of number, currency, and unit ranges.
+ *
+ * The main entrypoint to the formatting of ranges of numbers, including currencies and other units of measurement.
+ * <p>
+ * Usage example:
+ * <p>
+ * <pre>
+ * NumberRangeFormatter::with()
+ *     .identityFallback(UNUM_IDENTITY_FALLBACK_APPROXIMATELY_OR_SINGLE_VALUE)
+ *     .numberFormatterFirst(NumberFormatter::with().adoptUnit(MeasureUnit::createMeter()))
+ *     .numberFormatterSecond(NumberFormatter::with().adoptUnit(MeasureUnit::createKilometer()))
+ *     .locale("en-GB")
+ *     .formatRange(750, 1.2, status)
+ *     .toString(status);
+ * // => "750 m - 1.2 km"
+ * </pre>
+ * <p>
+ * Like NumberFormatter, NumberRangeFormatter instances are immutable and thread-safe. This API is based on the
+ * <em>fluent</em> design pattern popularized by libraries such as Google's Guava.
+ *
+ * @author Shane Carr
+ */
+
+
+/**
+ * Defines how to merge fields that are identical across the range sign.
+ *
+ * @draft ICU 63
+ */
+typedef enum UNumberRangeCollapse {
+    /**
+     * Use locale data and heuristics to determine how much of the string to collapse. Could end up collapsing none,
+     * some, or all repeated pieces in a locale-sensitive way.
+     *
+     * The heuristics used for this option are subject to change over time.
+     *
+     * @draft ICU 63
+     */
+    UNUM_RANGE_COLLAPSE_AUTO,
+
+    /**
+     * Do not collapse any part of the number. Example: "3.2 thousand kilograms – 5.3 thousand kilograms"
+     *
+     * @draft ICU 63
+     */
+    UNUM_RANGE_COLLAPSE_NONE,
+
+    /**
+     * Collapse the unit part of the number, but not the notation, if present. Example: "3.2 thousand – 5.3 thousand
+     * kilograms"
+     *
+     * @draft ICU 63
+     */
+    UNUM_RANGE_COLLAPSE_UNIT,
+
+    /**
+     * Collapse any field that is equal across the range sign. May introduce ambiguity on the magnitude of the
+     * number. Example: "3.2 – 5.3 thousand kilograms"
+     *
+     * @draft ICU 63
+     */
+    UNUM_RANGE_COLLAPSE_ALL
+} UNumberRangeCollapse;
+
+/**
+ * Defines the behavior when the two numbers in the range are identical after rounding. To programmatically detect
+ * when the identity fallback is used, compare the lower and upper BigDecimals via FormattedNumber.
+ *
+ * @draft ICU 63
+ * @see NumberRangeFormatter
+ */
+typedef enum UNumberRangeIdentityFallback {
+    /**
+     * Show the number as a single value rather than a range. Example: "$5"
+     *
+     * @draft ICU 63
+     */
+    UNUM_IDENTITY_FALLBACK_SINGLE_VALUE,
+
+    /**
+     * Show the number using a locale-sensitive approximation pattern. If the numbers were the same before rounding,
+     * show the single value. Example: "~$5" or "$5"
+     *
+     * @draft ICU 63
+     */
+    UNUM_IDENTITY_FALLBACK_APPROXIMATELY_OR_SINGLE_VALUE,
+
+    /**
+     * Show the number using a locale-sensitive approximation pattern. Use the range pattern always, even if the
+     * inputs are the same. Example: "~$5"
+     *
+     * @draft ICU 63
+     */
+    UNUM_IDENTITY_FALLBACK_APPROXIMATELY,
+
+    /**
+     * Show the number as the range of two equal values. Use the range pattern always, even if the inputs are the
+     * same. Example (with RangeCollapse.NONE): "$5 – $5"
+     *
+     * @draft ICU 63
+     */
+    UNUM_IDENTITY_FALLBACK_RANGE
+} UNumberRangeIdentityFallback;
+
+/**
+ * Used in the result class FormattedNumberRange to indicate to the user whether the numbers formatted in the range
+ * were equal or not, and whether or not the identity fallback was applied.
+ *
+ * @draft ICU 63
+ * @see NumberRangeFormatter
+ */
+typedef enum UNumberRangeIdentityResult {
+    /**
+     * Used to indicate that the two numbers in the range were equal, even before any rounding rules were applied.
+     *
+     * @draft ICU 63
+     * @see NumberRangeFormatter
+     */
+    UNUM_IDENTITY_RESULT_EQUAL_BEFORE_ROUNDING,
+
+    /**
+     * Used to indicate that the two numbers in the range were equal, but only after rounding rules were applied.
+     *
+     * @draft ICU 63
+     * @see NumberRangeFormatter
+     */
+    UNUM_IDENTITY_RESULT_EQUAL_AFTER_ROUNDING,
+
+    /**
+     * Used to indicate that the two numbers in the range were not equal, even after rounding rules were applied.
+     *
+     * @draft ICU 63
+     * @see NumberRangeFormatter
+     */
+    UNUM_IDENTITY_RESULT_NOT_EQUAL,
+
+#ifndef U_HIDE_INTERNAL_API
+    /**
+     * The number of entries in this enum.
+     * @internal
+     */
+    UNUM_IDENTITY_RESULT_COUNT
+#endif
+
+} UNumberRangeIdentityResult;
+
+U_NAMESPACE_BEGIN
+
+namespace number {  // icu::number
+
+// Forward declarations:
+class UnlocalizedNumberRangeFormatter;
+class LocalizedNumberRangeFormatter;
+class FormattedNumberRange;
+
+namespace impl {
+
+// Forward declarations:
+struct RangeMacroProps;
+class DecimalQuantity;
+struct UFormattedNumberRangeData;
+class NumberRangeFormatterImpl;
+
+} // namespace impl
+
+/**
+ * \cond
+ * Export an explicit template instantiation. See datefmt.h
+ * (When building DLLs for Windows this is required.)
+ */
+#if U_PF_WINDOWS <= U_PLATFORM && U_PLATFORM <= U_PF_CYGWIN && !defined(U_IN_DOXYGEN)
+template struct U_I18N_API std::atomic<impl::NumberRangeFormatterImpl*>;
+#endif
+/** \endcond */
+
+// Other helper classes would go here, but there are none.
+
+namespace impl {  // icu::number::impl
+
+// Do not enclose entire MacroProps with #ifndef U_HIDE_INTERNAL_API, needed for a protected field
+/** @internal */
+struct U_I18N_API RangeMacroProps : public UMemory {
+    /** @internal */
+    UnlocalizedNumberFormatter formatter1; // = NumberFormatter::with();
+
+    /** @internal */
+    UnlocalizedNumberFormatter formatter2; // = NumberFormatter::with();
+
+    /** @internal */
+    bool singleFormatter = true;
+
+    /** @internal */
+    UNumberRangeCollapse collapse = UNUM_RANGE_COLLAPSE_AUTO;
+
+    /** @internal */
+    UNumberRangeIdentityFallback identityFallback = UNUM_IDENTITY_FALLBACK_APPROXIMATELY;
+
+    /** @internal */
+    Locale locale;
+
+    // NOTE: Uses default copy and move constructors.
+
+    /**
+     * Check all members for errors.
+     * @internal
+     */
+    bool copyErrorTo(UErrorCode &status) const {
+        return formatter1.copyErrorTo(status) || formatter2.copyErrorTo(status);
+    }
+};
+
+} // namespace impl
+
+/**
+ * An abstract base class for specifying settings related to number formatting. This class is implemented by
+ * {@link UnlocalizedNumberRangeFormatter} and {@link LocalizedNumberRangeFormatter}. This class is not intended for
+ * public subclassing.
+ */
+template<typename Derived>
+class U_I18N_API NumberRangeFormatterSettings {
+  public:
+    /**
+     * Sets the NumberFormatter instance to use for the numbers in the range. The same formatter is applied to both
+     * sides of the range.
+     * <p>
+     * The NumberFormatter instances must not have a locale applied yet; the locale specified on the
+     * NumberRangeFormatter will be used.
+     *
+     * @param formatter
+     *            The formatter to use for both numbers in the range.
+     * @return The fluent chain.
+     * @draft ICU 63
+     */
+    Derived numberFormatterBoth(const UnlocalizedNumberFormatter &formatter) const &;
+
+    /**
+     * Overload of numberFormatterBoth() for use on an rvalue reference.
+     *
+     * @param formatter
+     *            The formatter to use for both numbers in the range.
+     * @return The fluent chain.
+     * @see #numberFormatterBoth
+     * @draft ICU 63
+     */
+    Derived numberFormatterBoth(const UnlocalizedNumberFormatter &formatter) &&;
+
+    /**
+     * Overload of numberFormatterBoth() for use on an rvalue reference.
+     *
+     * @param formatter
+     *            The formatter to use for both numbers in the range.
+     * @return The fluent chain.
+     * @see #numberFormatterBoth
+     * @draft ICU 63
+     */
+    Derived numberFormatterBoth(UnlocalizedNumberFormatter &&formatter) const &;
+
+    /**
+     * Overload of numberFormatterBoth() for use on an rvalue reference.
+     *
+     * @param formatter
+     *            The formatter to use for both numbers in the range.
+     * @return The fluent chain.
+     * @see #numberFormatterBoth
+     * @draft ICU 63
+     */
+    Derived numberFormatterBoth(UnlocalizedNumberFormatter &&formatter) &&;
+
+    /**
+     * Sets the NumberFormatter instance to use for the first number in the range.
+     * <p>
+     * The NumberFormatter instances must not have a locale applied yet; the locale specified on the
+     * NumberRangeFormatter will be used.
+     *
+     * @param formatterFirst
+     *            The formatter to use for the first number in the range.
+     * @return The fluent chain.
+     * @draft ICU 63
+     */
+    Derived numberFormatterFirst(const UnlocalizedNumberFormatter &formatterFirst) const &;
+
+    /**
+     * Overload of numberFormatterFirst() for use on an rvalue reference.
+     *
+     * @param formatterFirst
+     *            The formatter to use for the first number in the range.
+     * @return The fluent chain.
+     * @see #numberFormatterFirst
+     * @draft ICU 63
+     */
+    Derived numberFormatterFirst(const UnlocalizedNumberFormatter &formatterFirst) &&;
+
+    /**
+     * Overload of numberFormatterFirst() for use on an rvalue reference.
+     *
+     * @param formatterFirst
+     *            The formatter to use for the first number in the range.
+     * @return The fluent chain.
+     * @see #numberFormatterFirst
+     * @draft ICU 63
+     */
+    Derived numberFormatterFirst(UnlocalizedNumberFormatter &&formatterFirst) const &;
+
+    /**
+     * Overload of numberFormatterFirst() for use on an rvalue reference.
+     *
+     * @param formatterFirst
+     *            The formatter to use for the first number in the range.
+     * @return The fluent chain.
+     * @see #numberFormatterFirst
+     * @draft ICU 63
+     */
+    Derived numberFormatterFirst(UnlocalizedNumberFormatter &&formatterFirst) &&;
+
+    /**
+     * Sets the NumberFormatter instance to use for the second number in the range.
+     * <p>
+     * The NumberFormatter instances must not have a locale applied yet; the locale specified on the
+     * NumberRangeFormatter will be used.
+     *
+     * @param formatterSecond
+     *            The formatter to use for the second number in the range.
+     * @return The fluent chain.
+     * @draft ICU 63
+     */
+    Derived numberFormatterSecond(const UnlocalizedNumberFormatter &formatterSecond) const &;
+
+    /**
+     * Overload of numberFormatterSecond() for use on an rvalue reference.
+     *
+     * @param formatterSecond
+     *            The formatter to use for the second number in the range.
+     * @return The fluent chain.
+     * @see #numberFormatterSecond
+     * @draft ICU 63
+     */
+    Derived numberFormatterSecond(const UnlocalizedNumberFormatter &formatterSecond) &&;
+
+    /**
+     * Overload of numberFormatterSecond() for use on an rvalue reference.
+     *
+     * @param formatterSecond
+     *            The formatter to use for the second number in the range.
+     * @return The fluent chain.
+     * @see #numberFormatterSecond
+     * @draft ICU 63
+     */
+    Derived numberFormatterSecond(UnlocalizedNumberFormatter &&formatterSecond) const &;
+
+    /**
+     * Overload of numberFormatterSecond() for use on an rvalue reference.
+     *
+     * @param formatterSecond
+     *            The formatter to use for the second number in the range.
+     * @return The fluent chain.
+     * @see #numberFormatterSecond
+     * @draft ICU 63
+     */
+    Derived numberFormatterSecond(UnlocalizedNumberFormatter &&formatterSecond) &&;
+
+    /**
+     * Sets the aggressiveness of "collapsing" fields across the range separator. Possible values:
+     * <p>
+     * <ul>
+     * <li>ALL: "3-5K miles"</li>
+     * <li>UNIT: "3K - 5K miles"</li>
+     * <li>NONE: "3K miles - 5K miles"</li>
+     * <li>AUTO: usually UNIT or NONE, depending on the locale and formatter settings</li>
+     * </ul>
+     * <p>
+     * The default value is AUTO.
+     *
+     * @param collapse
+     *            The collapsing strategy to use for this range.
+     * @return The fluent chain.
+     * @draft ICU 63
+     */
+    Derived collapse(UNumberRangeCollapse collapse) const &;
+
+    /**
+     * Overload of collapse() for use on an rvalue reference.
+     *
+     * @param collapse
+     *            The collapsing strategy to use for this range.
+     * @return The fluent chain.
+     * @see #collapse
+     * @draft ICU 63
+     */
+    Derived collapse(UNumberRangeCollapse collapse) &&;
+
+    /**
+     * Sets the behavior when the two sides of the range are the same. This could happen if the same two numbers are
+     * passed to the formatRange function, or if different numbers are passed to the function but they become the same
+     * after rounding rules are applied. Possible values:
+     * <p>
+     * <ul>
+     * <li>SINGLE_VALUE: "5 miles"</li>
+     * <li>APPROXIMATELY_OR_SINGLE_VALUE: "~5 miles" or "5 miles", depending on whether the number was the same before
+     * rounding was applied</li>
+     * <li>APPROXIMATELY: "~5 miles"</li>
+     * <li>RANGE: "5-5 miles" (with collapse=UNIT)</li>
+     * </ul>
+     * <p>
+     * The default value is APPROXIMATELY.
+     *
+     * @param identityFallback
+     *            The strategy to use when formatting two numbers that end up being the same.
+     * @return The fluent chain.
+     * @draft ICU 63
+     */
+    Derived identityFallback(UNumberRangeIdentityFallback identityFallback) const &;
+
+    /**
+     * Overload of identityFallback() for use on an rvalue reference.
+     *
+     * @param identityFallback
+     *            The strategy to use when formatting two numbers that end up being the same.
+     * @return The fluent chain.
+     * @see #identityFallback
+     * @draft ICU 63
+     */
+    Derived identityFallback(UNumberRangeIdentityFallback identityFallback) &&;
+
+    /**
+     * Sets the UErrorCode if an error occurred in the fluent chain.
+     * Preserves older error codes in the outErrorCode.
+     * @return TRUE if U_FAILURE(outErrorCode)
+     * @draft ICU 63
+     */
+    UBool copyErrorTo(UErrorCode &outErrorCode) const {
+        if (U_FAILURE(outErrorCode)) {
+            // Do not overwrite the older error code
+            return TRUE;
+        }
+        fMacros.copyErrorTo(outErrorCode);
+        return U_FAILURE(outErrorCode);
+    };
+
+    // NOTE: Uses default copy and move constructors.
+
+  private:
+    impl::RangeMacroProps fMacros;
+
+    // Don't construct me directly!  Use (Un)LocalizedNumberFormatter.
+    NumberRangeFormatterSettings() = default;
+
+    friend class LocalizedNumberRangeFormatter;
+    friend class UnlocalizedNumberRangeFormatter;
+};
+
+/**
+ * A NumberRangeFormatter that does not yet have a locale. In order to format, a locale must be specified.
+ *
+ * @see NumberRangeFormatter
+ * @draft ICU 63
+ */
+class U_I18N_API UnlocalizedNumberRangeFormatter
+        : public NumberRangeFormatterSettings<UnlocalizedNumberRangeFormatter>, public UMemory {
+
+  public:
+    /**
+     * Associate the given locale with the number range formatter. The locale is used for picking the
+     * appropriate symbols, formats, and other data for number display.
+     *
+     * @param locale
+     *            The locale to use when loading data for number formatting.
+     * @return The fluent chain.
+     * @draft ICU 63
+     */
+    LocalizedNumberRangeFormatter locale(const icu::Locale &locale) const &;
+
+    /**
+     * Overload of locale() for use on an rvalue reference.
+     *
+     * @param locale
+     *            The locale to use when loading data for number formatting.
+     * @return The fluent chain.
+     * @see #locale
+     * @draft ICU 63
+     */
+    LocalizedNumberRangeFormatter locale(const icu::Locale &locale) &&;
+
+    /**
+     * Default constructor: puts the formatter into a valid but undefined state.
+     *
+     * @draft ICU 63
+     */
+    UnlocalizedNumberRangeFormatter() = default;
+
+    /**
+     * Returns a copy of this UnlocalizedNumberRangeFormatter.
+     * @draft ICU 63
+     */
+    UnlocalizedNumberRangeFormatter(const UnlocalizedNumberRangeFormatter &other);
+
+    /**
+     * Move constructor:
+     * The source UnlocalizedNumberRangeFormatter will be left in a valid but undefined state.
+     * @draft ICU 63
+     */
+    UnlocalizedNumberRangeFormatter(UnlocalizedNumberRangeFormatter&& src) U_NOEXCEPT;
+
+    /**
+     * Copy assignment operator.
+     * @draft ICU 63
+     */
+    UnlocalizedNumberRangeFormatter& operator=(const UnlocalizedNumberRangeFormatter& other);
+
+    /**
+     * Move assignment operator:
+     * The source UnlocalizedNumberRangeFormatter will be left in a valid but undefined state.
+     * @draft ICU 63
+     */
+    UnlocalizedNumberRangeFormatter& operator=(UnlocalizedNumberRangeFormatter&& src) U_NOEXCEPT;
+
+  private:
+    explicit UnlocalizedNumberRangeFormatter(
+            const NumberRangeFormatterSettings<UnlocalizedNumberRangeFormatter>& other);
+
+    explicit UnlocalizedNumberRangeFormatter(
+            NumberRangeFormatterSettings<UnlocalizedNumberRangeFormatter>&& src) U_NOEXCEPT;
+
+    // To give the fluent setters access to this class's constructor:
+    friend class NumberRangeFormatterSettings<UnlocalizedNumberRangeFormatter>;
+
+    // To give NumberRangeFormatter::with() access to this class's constructor:
+    friend class NumberRangeFormatter;
+};
+
+/**
+ * A NumberRangeFormatter that has a locale associated with it; this means .formatRange() methods are available.
+ *
+ * @see NumberFormatter
+ * @draft ICU 63
+ */
+class U_I18N_API LocalizedNumberRangeFormatter
+        : public NumberRangeFormatterSettings<LocalizedNumberRangeFormatter>, public UMemory {
+  public:
+    /**
+     * Format the given Formattables to a string using the settings specified in the NumberRangeFormatter fluent setting
+     * chain.
+     *
+     * @param first
+     *            The first number in the range, usually to the left in LTR locales.
+     * @param second
+     *            The second number in the range, usually to the right in LTR locales.
+     * @param status
+     *            Set if an error occurs while formatting.
+     * @return A FormattedNumberRange object; call .toString() to get the string.
+     * @draft ICU 63
+     */
+    FormattedNumberRange formatFormattableRange(
+        const Formattable& first, const Formattable& second, UErrorCode& status) const;
+
+    /**
+     * Default constructor: puts the formatter into a valid but undefined state.
+     *
+     * @draft ICU 63
+     */
+    LocalizedNumberRangeFormatter() = default;
+
+    /**
+     * Returns a copy of this LocalizedNumberRangeFormatter.
+     * @draft ICU 63
+     */
+    LocalizedNumberRangeFormatter(const LocalizedNumberRangeFormatter &other);
+
+    /**
+     * Move constructor:
+     * The source LocalizedNumberRangeFormatter will be left in a valid but undefined state.
+     * @draft ICU 63
+     */
+    LocalizedNumberRangeFormatter(LocalizedNumberRangeFormatter&& src) U_NOEXCEPT;
+
+    /**
+     * Copy assignment operator.
+     * @draft ICU 63
+     */
+    LocalizedNumberRangeFormatter& operator=(const LocalizedNumberRangeFormatter& other);
+
+    /**
+     * Move assignment operator:
+     * The source LocalizedNumberRangeFormatter will be left in a valid but undefined state.
+     * @draft ICU 63
+     */
+    LocalizedNumberRangeFormatter& operator=(LocalizedNumberRangeFormatter&& src) U_NOEXCEPT;
+
+#ifndef U_HIDE_INTERNAL_API
+
+    /**
+     * @param results
+     *            The results object. This method will mutate it to save the results.
+     * @param equalBeforeRounding
+     *            Whether the number was equal before copying it into a DecimalQuantity.
+     *            Used for determining the identity fallback behavior.
+     * @param status
+     *            Set if an error occurs while formatting.
+     * @internal
+     */
+    void formatImpl(impl::UFormattedNumberRangeData& results, bool equalBeforeRounding,
+                    UErrorCode& status) const;
+
+#endif
+
+    /**
+     * Destruct this LocalizedNumberRangeFormatter, cleaning up any memory it might own.
+     * @draft ICU 63
+     */
+    ~LocalizedNumberRangeFormatter();
+
+  private:
+    std::atomic<impl::NumberRangeFormatterImpl*> fAtomicFormatter = {};
+
+    const impl::NumberRangeFormatterImpl* getFormatter(UErrorCode& stauts) const;
+
+    explicit LocalizedNumberRangeFormatter(
+        const NumberRangeFormatterSettings<LocalizedNumberRangeFormatter>& other);
+
+    explicit LocalizedNumberRangeFormatter(
+        NumberRangeFormatterSettings<LocalizedNumberRangeFormatter>&& src) U_NOEXCEPT;
+
+    LocalizedNumberRangeFormatter(const impl::RangeMacroProps &macros, const Locale &locale);
+
+    LocalizedNumberRangeFormatter(impl::RangeMacroProps &&macros, const Locale &locale);
+
+    void clear();
+
+    // To give the fluent setters access to this class's constructor:
+    friend class NumberRangeFormatterSettings<UnlocalizedNumberRangeFormatter>;
+    friend class NumberRangeFormatterSettings<LocalizedNumberRangeFormatter>;
+
+    // To give UnlocalizedNumberRangeFormatter::locale() access to this class's constructor:
+    friend class UnlocalizedNumberRangeFormatter;
+};
+
+/**
+ * The result of a number range formatting operation. This class allows the result to be exported in several data types,
+ * including a UnicodeString and a FieldPositionIterator.
+ *
+ * @draft ICU 63
+ */
+class U_I18N_API FormattedNumberRange : public UMemory {
+  public:
+    /**
+     * Returns a UnicodeString representation of the formatted number range.
+     *
+     * @param status
+     *            Set if an error occurs while formatting the number to the UnicodeString.
+     * @return a UnicodeString containing the localized number range.
+     * @draft ICU 63
+     */
+    UnicodeString toString(UErrorCode& status) const;
+
+    /**
+     * Appends the formatted number range to an Appendable.
+     *
+     * @param appendable
+     *            The Appendable to which to append the formatted number range string.
+     * @param status
+     *            Set if an error occurs while formatting the number range to the Appendable.
+     * @return The same Appendable, for chaining.
+     * @draft ICU 63
+     * @see Appendable
+     */
+    Appendable &appendTo(Appendable &appendable, UErrorCode& status) const;
+
+    /**
+     * Determines the start (inclusive) and end (exclusive) indices of the next occurrence of the given
+     * <em>field</em> in the output string. This allows you to determine the locations of, for example,
+     * the integer part, fraction part, or symbols.
+     *
+     * If both sides of the range have the same field, the field will occur twice, once before the
+     * range separator and once after the range separator, if applicable.
+     *
+     * If a field occurs just once, calling this method will find that occurrence and return it. If a
+     * field occurs multiple times, this method may be called repeatedly with the following pattern:
+     *
+     * <pre>
+     * FieldPosition fpos(UNUM_INTEGER_FIELD);
+     * while (formattedNumberRange.nextFieldPosition(fpos, status)) {
+     *   // do something with fpos.
+     * }
+     * </pre>
+     *
+     * This method is useful if you know which field to query. If you want all available field position
+     * information, use #getAllFieldPositions().
+     *
+     * @param fieldPosition
+     *            Input+output variable. See {@link FormattedNumber#nextFieldPosition}.
+     * @param status
+     *            Set if an error occurs while populating the FieldPosition.
+     * @return TRUE if a new occurrence of the field was found; FALSE otherwise.
+     * @draft ICU 63
+     * @see UNumberFormatFields
+     */
+    UBool nextFieldPosition(FieldPosition& fieldPosition, UErrorCode& status) const;
+
+    /**
+     * Export the formatted number range to a FieldPositionIterator. This allows you to determine which characters in
+     * the output string correspond to which <em>fields</em>, such as the integer part, fraction part, and sign.
+     *
+     * If information on only one field is needed, use #nextFieldPosition() instead.
+     *
+     * @param iterator
+     *            The FieldPositionIterator to populate with all of the fields present in the formatted number.
+     * @param status
+     *            Set if an error occurs while populating the FieldPositionIterator.
+     * @draft ICU 63
+     * @see UNumberFormatFields
+     */
+    void getAllFieldPositions(FieldPositionIterator &iterator, UErrorCode &status) const;
+
+    /**
+     * Export the first formatted number as a decimal number. This endpoint
+     * is useful for obtaining the exact number being printed after scaling
+     * and rounding have been applied by the number range formatting pipeline.
+     * 
+     * The syntax of the unformatted number is a "numeric string"
+     * as defined in the Decimal Arithmetic Specification, available at
+     * http://speleotrove.com/decimal
+     *
+     * @return A decimal representation of the first formatted number.
+     * @draft ICU 63
+     * @see NumberRangeFormatter
+     * @see #getSecondDecimal
+     */
+    UnicodeString getFirstDecimal(UErrorCode& status) const;
+
+    /**
+     * Export the second formatted number as a decimal number. This endpoint
+     * is useful for obtaining the exact number being printed after scaling
+     * and rounding have been applied by the number range formatting pipeline.
+     * 
+     * The syntax of the unformatted number is a "numeric string"
+     * as defined in the Decimal Arithmetic Specification, available at
+     * http://speleotrove.com/decimal
+     *
+     * @return A decimal representation of the second formatted number.
+     * @draft ICU 63
+     * @see NumberRangeFormatter
+     * @see #getFirstDecimal
+     */
+    UnicodeString getSecondDecimal(UErrorCode& status) const;
+
+    /**
+     * Returns whether the pair of numbers was successfully formatted as a range or whether an identity fallback was
+     * used. For example, if the first and second number were the same either before or after rounding occurred, an
+     * identity fallback was used.
+     *
+     * @return An indication the resulting identity situation in the formatted number range.
+     * @draft ICU 63
+     * @see UNumberRangeIdentityFallback
+     */
+    UNumberRangeIdentityResult getIdentityResult(UErrorCode& status) const;
+
+    /**
+     * Copying not supported; use move constructor instead.
+     */
+    FormattedNumberRange(const FormattedNumberRange&) = delete;
+
+    /**
+     * Copying not supported; use move assignment instead.
+     */
+    FormattedNumberRange& operator=(const FormattedNumberRange&) = delete;
+
+    /**
+     * Move constructor:
+     * Leaves the source FormattedNumberRange in an undefined state.
+     * @draft ICU 63
+     */
+    FormattedNumberRange(FormattedNumberRange&& src) U_NOEXCEPT;
+
+    /**
+     * Move assignment:
+     * Leaves the source FormattedNumberRange in an undefined state.
+     * @draft ICU 63
+     */
+    FormattedNumberRange& operator=(FormattedNumberRange&& src) U_NOEXCEPT;
+
+    /**
+     * Destruct an instance of FormattedNumberRange, cleaning up any memory it might own.
+     * @draft ICU 63
+     */
+    ~FormattedNumberRange();
+
+  private:
+    // Can't use LocalPointer because UFormattedNumberRangeData is forward-declared
+    const impl::UFormattedNumberRangeData *fResults;
+
+    // Error code for the terminal methods
+    UErrorCode fErrorCode;
+
+    /**
+     * Internal constructor from data type. Adopts the data pointer.
+     * @internal
+     */
+    explicit FormattedNumberRange(impl::UFormattedNumberRangeData *results)
+        : fResults(results), fErrorCode(U_ZERO_ERROR) {};
+
+    explicit FormattedNumberRange(UErrorCode errorCode)
+        : fResults(nullptr), fErrorCode(errorCode) {};
+
+    void getAllFieldPositionsImpl(FieldPositionIteratorHandler& fpih, UErrorCode& status) const;
+
+    // To give LocalizedNumberRangeFormatter format methods access to this class's constructor:
+    friend class LocalizedNumberRangeFormatter;
+};
+
+/**
+ * See the main description in numberrangeformatter.h for documentation and examples.
+ *
+ * @draft ICU 63
+ */
+class U_I18N_API NumberRangeFormatter final {
+  public:
+    /**
+     * Call this method at the beginning of a NumberRangeFormatter fluent chain in which the locale is not currently
+     * known at the call site.
+     *
+     * @return An {@link UnlocalizedNumberRangeFormatter}, to be used for chaining.
+     * @draft ICU 63
+     */
+    static UnlocalizedNumberRangeFormatter with();
+
+    /**
+     * Call this method at the beginning of a NumberRangeFormatter fluent chain in which the locale is known at the call
+     * site.
+     *
+     * @param locale
+     *            The locale from which to load formats and symbols for number range formatting.
+     * @return A {@link LocalizedNumberRangeFormatter}, to be used for chaining.
+     * @draft ICU 63
+     */
+    static LocalizedNumberRangeFormatter withLocale(const Locale &locale);
+
+    /**
+     * Use factory methods instead of the constructor to create a NumberFormatter.
+     */
+    NumberRangeFormatter() = delete;
+};
+
+}  // namespace number
+U_NAMESPACE_END
+
+#endif  // U_HIDE_DRAFT_API
+
+#endif // __NUMBERRANGEFORMATTER_H__
+
+#endif /* #if !UCONFIG_NO_FORMATTING */
index 80ce0c0..1e55491 100644 (file)
@@ -56,7 +56,6 @@ class StringEnumeration;
  * <p><strong>IMPORTANT:</strong> New users are strongly encouraged to see if
  * numberformatter.h fits their use case.  Although not deprecated, this header
  * is provided for backwards compatibility only.
- * <hr/>
  *
  * Abstract base class for all number formats.  Provides interface for
  * formatting and parsing a number.  Also provides methods for
@@ -710,7 +709,7 @@ public:
      * The default formatting style is locale dependent.
      * <p>
      * <strong>NOTE:</strong> New users are strongly encouraged to use
-     * {@link NumberFormatter} instead of NumberFormat.
+     * {@link icu::number::NumberFormatter} instead of NumberFormat.
      * @stable ICU 2.0
      */
     static NumberFormat* U_EXPORT2 createInstance(UErrorCode&);
@@ -721,7 +720,7 @@ public:
      * @param inLocale    the given locale.
      * <p>
      * <strong>NOTE:</strong> New users are strongly encouraged to use
-     * {@link NumberFormatter} instead of NumberFormat.
+     * {@link icu::number::NumberFormatter} instead of NumberFormat.
      * @stable ICU 2.0
      */
     static NumberFormat* U_EXPORT2 createInstance(const Locale& inLocale,
@@ -731,7 +730,7 @@ public:
      * Create a specific style NumberFormat for the specified locale.
      * <p>
      * <strong>NOTE:</strong> New users are strongly encouraged to use
-     * {@link NumberFormatter} instead of NumberFormat.
+     * {@link icu::number::NumberFormatter} instead of NumberFormat.
      * @param desiredLocale    the given locale.
      * @param style            the given style.
      * @param errorCode        Output param filled with success/failure status.
@@ -770,7 +769,7 @@ public:
      * Returns a currency format for the current default locale.
      * <p>
      * <strong>NOTE:</strong> New users are strongly encouraged to use
-     * {@link NumberFormatter} instead of NumberFormat.
+     * {@link icu::number::NumberFormatter} instead of NumberFormat.
      * @stable ICU 2.0
      */
     static NumberFormat* U_EXPORT2 createCurrencyInstance(UErrorCode&);
@@ -779,7 +778,7 @@ public:
      * Returns a currency format for the specified locale.
      * <p>
      * <strong>NOTE:</strong> New users are strongly encouraged to use
-     * {@link NumberFormatter} instead of NumberFormat.
+     * {@link icu::number::NumberFormatter} instead of NumberFormat.
      * @param inLocale    the given locale.
      * @stable ICU 2.0
      */
@@ -790,7 +789,7 @@ public:
      * Returns a percentage format for the current default locale.
      * <p>
      * <strong>NOTE:</strong> New users are strongly encouraged to use
-     * {@link NumberFormatter} instead of NumberFormat.
+     * {@link icu::number::NumberFormatter} instead of NumberFormat.
      * @stable ICU 2.0
      */
     static NumberFormat* U_EXPORT2 createPercentInstance(UErrorCode&);
@@ -799,7 +798,7 @@ public:
      * Returns a percentage format for the specified locale.
      * <p>
      * <strong>NOTE:</strong> New users are strongly encouraged to use
-     * {@link NumberFormatter} instead of NumberFormat.
+     * {@link icu::number::NumberFormatter} instead of NumberFormat.
      * @param inLocale    the given locale.
      * @stable ICU 2.0
      */
@@ -810,7 +809,7 @@ public:
      * Returns a scientific format for the current default locale.
      * <p>
      * <strong>NOTE:</strong> New users are strongly encouraged to use
-     * {@link NumberFormatter} instead of NumberFormat.
+     * {@link icu::number::NumberFormatter} instead of NumberFormat.
      * @stable ICU 2.0
      */
     static NumberFormat* U_EXPORT2 createScientificInstance(UErrorCode&);
@@ -819,7 +818,7 @@ public:
      * Returns a scientific format for the specified locale.
      * <p>
      * <strong>NOTE:</strong> New users are strongly encouraged to use
-     * {@link NumberFormatter} instead of NumberFormat.
+     * {@link icu::number::NumberFormatter} instead of NumberFormat.
      * @param inLocale    the given locale.
      * @stable ICU 2.0
      */
@@ -1028,14 +1027,14 @@ public:
      * Get the rounding mode. This will always return NumberFormat::ERoundingMode::kRoundUnnecessary
      * if the subclass does not support rounding. 
      * @return A rounding mode
-     * @draft ICU 60
+     * @stable ICU 60
      */
     virtual ERoundingMode getRoundingMode(void) const;
 
     /**
      * Set the rounding mode. If a subclass does not support rounding, this will do nothing.
      * @param roundingMode A rounding mode
-     * @draft ICU 60
+     * @stable ICU 60
      */
     virtual void setRoundingMode(ERoundingMode roundingMode);
 
index fd537c2..cb901b0 100644 (file)
@@ -520,15 +520,7 @@ public:
      */
      virtual UClassID getDynamicClassID() const;
 
-#if (defined(__xlC__) && (__xlC__ < 0x0C00)) || (U_PLATFORM == U_PF_OS390) || (U_PLATFORM ==U_PF_OS400)
-// Work around a compiler bug on xlC 11.1 on AIX 7.1 that would
-// prevent PluralSelectorAdapter from implementing private PluralSelector.
-// xlC error message:
-// 1540-0300 (S) The "private" member "class icu_49::PluralFormat::PluralSelector" cannot be accessed.
-public:
-#else
 private:
-#endif
      /**
       * @internal
       */
@@ -564,10 +556,6 @@ private:
         PluralRules* pluralRules;
     };
 
-#if defined(__xlC__)
-// End of xlC bug workaround, keep remaining definitions private.
-private:
-#endif
     Locale  locale;
     MessagePattern msgPattern;
     NumberFormat*  numberFormat;
index 03dea3f..daeed52 100644 (file)
@@ -118,7 +118,6 @@ class SharedPluralRules;
  * Examples are in the following table:
  * </p>
  * <table border='1' style="border-collapse:collapse">
- * <tbody>
  * <tr>
  * <th>n</th>
  * <th>i</th>
@@ -155,7 +154,6 @@ class SharedPluralRules;
  * <td align="right">23</td>
  * <td>2</td>
  * </tr>
- * </tbody>
  * </table>
  * <p>
  * The difference between 'in' and 'within' is that 'in' only includes integers in the specified range, while 'within'
@@ -499,6 +497,12 @@ private:
     UnicodeString   getRuleFromResource(const Locale& locale, UPluralType type, UErrorCode& status);
     RuleChain      *rulesForKeyword(const UnicodeString &keyword) const;
 
+    /**
+    * An internal status variable used to indicate that the object is in an 'invalid' state.
+    * Used by copy constructor, the assignment operator and the clone method.
+    */
+    UErrorCode mInternalStatus;
+
     friend class PluralRuleParser;
 };
 
index ab5a019..d6ba523 100644 (file)
@@ -313,7 +313,6 @@ enum URBNFRuleSetTag {
  *     <td>The rule for an IEEE 754 NaN (not a number).</td>
  *   </tr>
  *   <tr>
- *   <tr>
  *     <td><em>nothing</em></td>
  *     <td>If the rule's rule descriptor is left out, the base value is one plus the
  *     preceding rule's base value (or zero if this is the first rule in the list) in a normal
@@ -1013,14 +1012,14 @@ public:
     /**
      * Get the rounding mode.
      * @return A rounding mode
-     * @draft ICU 60
+     * @stable ICU 60
      */
     virtual ERoundingMode getRoundingMode(void) const;
 
     /**
      * Set the rounding mode.
      * @param roundingMode A rounding mode
-     * @draft ICU 60
+     * @stable ICU 60
      */
     virtual void setRoundingMode(ERoundingMode roundingMode);
 
@@ -1095,7 +1094,7 @@ private:
     void format(double number, NFRuleSet& rs, UnicodeString& toAppendTo, UErrorCode& status) const;
 
 private:
-    NFRuleSet **ruleSets;
+    NFRuleSet **fRuleSets;
     UnicodeString* ruleSetDescriptions;
     int32_t numRuleSets;
     NFRuleSet *defaultRuleSet;
@@ -1104,7 +1103,7 @@ private:
     DecimalFormatSymbols* decimalFormatSymbols;
     NFRule *defaultInfinityRule;
     NFRule *defaultNaNRule;
-    ERoundingMode roundingMode;
+    ERoundingMode fRoundingMode;
     UBool lenient;
     UnicodeString* lenientParseRules;
     LocalizationInfo* localizations;
index 80b2929..4014025 100644 (file)
@@ -192,7 +192,7 @@ private:
     char id[4];
     UnicodeString idStr;
     int32_t code;
-    URegionType type;
+    URegionType fType;
     Region *containingRegion;
     UVector *containedRegions;
     UVector *preferredValues;
index 09d9620..be06b10 100644 (file)
@@ -165,12 +165,20 @@ typedef enum UDateAbsoluteUnit {
      */
     UDAT_ABSOLUTE_NOW,
 
+#ifndef U_HIDE_DRAFT_API
+    /**
+     * Quarter
+     * @draft ICU 63
+     */
+    UDAT_ABSOLUTE_QUARTER,
+#endif // U_HIDE_DRAFT_API
+
 #ifndef U_HIDE_DEPRECATED_API
     /**
      * One more than the highest normal UDateAbsoluteUnit value.
      * @deprecated ICU 58 The numeric value may change over time, see ICU ticket #12420.
      */
-    UDAT_ABSOLUTE_UNIT_COUNT
+    UDAT_ABSOLUTE_UNIT_COUNT = UDAT_ABSOLUTE_NOW + 2
 #endif  // U_HIDE_DEPRECATED_API
 } UDateAbsoluteUnit;
 
@@ -328,7 +336,7 @@ public:
      * @param nfToAdopt Constructed object takes ownership of this pointer.
      *   It is an error for caller to delete this pointer or change its
      *   contents after calling this constructor.
-     * @status Any error is returned here.
+     * @param status Any error is returned here.
      * @stable ICU 53
      */
     RelativeDateTimeFormatter(
@@ -346,7 +354,7 @@ public:
      * @param style the format style. The UDAT_RELATIVE bit field has no effect.
      * @param capitalizationContext A value from UDisplayContext that pertains to
      * capitalization.
-     * @status Any error is returned here. 
+     * @param status Any error is returned here.
      * @stable ICU 54
      */
     RelativeDateTimeFormatter(
index 305412b..929c1b4 100644 (file)
@@ -1147,7 +1147,7 @@ public:
      * Overrides base class method and
      * This method clears per field NumberFormat instances
      * previously set by {@see adoptNumberFormat(const UnicodeString&, NumberFormat*, UErrorCode)}
-     * @param adoptNF the NumbeferFormat used
+     * @param formatToAdopt the NumbeferFormat used
      * @stable ICU 54
      */
     void adoptNumberFormat(NumberFormat *formatToAdopt);
@@ -1162,7 +1162,7 @@ public:
      * Per field NumberFormat can also be cleared in {@see DateFormat::setNumberFormat(const NumberFormat& newNumberFormat)}
      *
      * @param fields  the fields to override(like y)
-     * @param adoptNF the NumbeferFormat used
+     * @param formatToAdopt the NumbeferFormat used
      * @param status  Receives a status code, which will be U_ZERO_ERROR
      *                if the operation succeeds.
      * @stable ICU 54
index bccba54..6b48881 100644 (file)
 #include "unicode/utypes.h"
 
 /**
- * \file 
+ * \file
  * \brief C++ API: Tranforms text from one format to another.
  */
+
 #if !UCONFIG_NO_TRANSLITERATION
 
 #include "unicode/uobject.h"
@@ -31,7 +31,6 @@ U_NAMESPACE_BEGIN
 
 class UnicodeFilter;
 class UnicodeSet;
-class CompoundTransliterator;
 class TransliteratorParser;
 class NormalizationTransliterator;
 class TransliteratorIDParser;
@@ -77,8 +76,7 @@ class TransliteratorIDParser;
  * transliteration.  For example, given a string <code>input</code>
  * and a transliterator <code>t</code>, the call
  *
- * \htmlonly<blockquote>\endhtmlonly<code>String result = t.transliterate(input);
- * </code>\htmlonly</blockquote>\endhtmlonly
+ *     String result = t.transliterate(input);
  *
  * will transliterate it and return the result.  Other methods allow
  * the client to specify a substring to be transliterated and to use
@@ -98,22 +96,20 @@ class TransliteratorIDParser;
  * contents of the buffer may show text being modified as each new
  * character arrives.
  *
- * <p>Consider the simple <code>RuleBasedTransliterator</code>:
- *
- * \htmlonly<blockquote>\endhtmlonly<code>
- * th&gt;{theta}<br>
- * t&gt;{tau}
- * </code>\htmlonly</blockquote>\endhtmlonly
+ * <p>Consider the simple rule-based Transliterator:
+ * <pre>
+ *     th>{theta}
+ *     t>{tau}
+ * </pre>
  *
  * When the user types 't', nothing will happen, since the
  * transliterator is waiting to see if the next character is 'h'.  To
  * remedy this, we introduce the notion of a cursor, marked by a '|'
  * in the output string:
- *
- * \htmlonly<blockquote>\endhtmlonly<code>
- * t&gt;|{tau}<br>
- * {tau}h&gt;{theta}
- * </code>\htmlonly</blockquote>\endhtmlonly
+ * <pre>
+ *     t>|{tau}
+ *     {tau}h>{theta}
+ * </pre>
  *
  * Now when the user types 't', tau appears, and if the next character
  * is 'h', the tau changes to a theta.  This is accomplished by
@@ -135,7 +131,7 @@ class TransliteratorIDParser;
  * which the transliterator last stopped, either because it reached
  * the end, or because it required more characters to disambiguate
  * between possible inputs.  The <code>CURSOR</code> can also be
- * explicitly set by rules in a <code>RuleBasedTransliterator</code>.
+ * explicitly set by rules in a rule-based Transliterator.
  * Any characters before the <code>CURSOR</code> index are frozen;
  * future keyboard transliteration calls within this input sequence
  * will not change them.  New text is inserted at the
@@ -237,6 +233,255 @@ class TransliteratorIDParser;
  * if the performance of these methods can be improved over the
  * performance obtained by the default implementations in this class.
  *
+ * <p><b>Rule syntax</b>
+ *
+ * <p>A set of rules determines how to perform translations.
+ * Rules within a rule set are separated by semicolons (';').
+ * To include a literal semicolon, prefix it with a backslash ('\').
+ * Unicode Pattern_White_Space is ignored.
+ * If the first non-blank character on a line is '#',
+ * the entire line is ignored as a comment.
+ *
+ * <p>Each set of rules consists of two groups, one forward, and one
+ * reverse. This is a convention that is not enforced; rules for one
+ * direction may be omitted, with the result that translations in
+ * that direction will not modify the source text. In addition,
+ * bidirectional forward-reverse rules may be specified for
+ * symmetrical transformations.
+ *
+ * <p>Note: Another description of the Transliterator rule syntax is available in
+ * <a href="https://www.unicode.org/reports/tr35/tr35-general.html#Transform_Rules_Syntax">section
+ * Transform Rules Syntax of UTS #35: Unicode LDML</a>.
+ * The rules are shown there using arrow symbols ← and → and ↔.
+ * ICU supports both those and the equivalent ASCII symbols &lt; and &gt; and &lt;&gt;.
+ *
+ * <p>Rule statements take one of the following forms:
+ *
+ * <dl>
+ *     <dt><code>$alefmadda=\\u0622;</code></dt>
+ *     <dd><strong>Variable definition.</strong> The name on the
+ *         left is assigned the text on the right. In this example,
+ *         after this statement, instances of the left hand name,
+ *         &quot;<code>$alefmadda</code>&quot;, will be replaced by
+ *         the Unicode character U+0622. Variable names must begin
+ *         with a letter and consist only of letters, digits, and
+ *         underscores. Case is significant. Duplicate names cause
+ *         an exception to be thrown, that is, variables cannot be
+ *         redefined. The right hand side may contain well-formed
+ *         text of any length, including no text at all (&quot;<code>$empty=;</code>&quot;).
+ *         The right hand side may contain embedded <code>UnicodeSet</code>
+ *         patterns, for example, &quot;<code>$softvowel=[eiyEIY]</code>&quot;.</dd>
+ *     <dt><code>ai&gt;$alefmadda;</code></dt>
+ *     <dd><strong>Forward translation rule.</strong> This rule
+ *         states that the string on the left will be changed to the
+ *         string on the right when performing forward
+ *         transliteration.</dd>
+ *     <dt><code>ai&lt;$alefmadda;</code></dt>
+ *     <dd><strong>Reverse translation rule.</strong> This rule
+ *         states that the string on the right will be changed to
+ *         the string on the left when performing reverse
+ *         transliteration.</dd>
+ * </dl>
+ *
+ * <dl>
+ *     <dt><code>ai&lt;&gt;$alefmadda;</code></dt>
+ *     <dd><strong>Bidirectional translation rule.</strong> This
+ *         rule states that the string on the right will be changed
+ *         to the string on the left when performing forward
+ *         transliteration, and vice versa when performing reverse
+ *         transliteration.</dd>
+ * </dl>
+ *
+ * <p>Translation rules consist of a <em>match pattern</em> and an <em>output
+ * string</em>. The match pattern consists of literal characters,
+ * optionally preceded by context, and optionally followed by
+ * context. Context characters, like literal pattern characters,
+ * must be matched in the text being transliterated. However, unlike
+ * literal pattern characters, they are not replaced by the output
+ * text. For example, the pattern &quot;<code>abc{def}</code>&quot;
+ * indicates the characters &quot;<code>def</code>&quot; must be
+ * preceded by &quot;<code>abc</code>&quot; for a successful match.
+ * If there is a successful match, &quot;<code>def</code>&quot; will
+ * be replaced, but not &quot;<code>abc</code>&quot;. The final '<code>}</code>'
+ * is optional, so &quot;<code>abc{def</code>&quot; is equivalent to
+ * &quot;<code>abc{def}</code>&quot;. Another example is &quot;<code>{123}456</code>&quot;
+ * (or &quot;<code>123}456</code>&quot;) in which the literal
+ * pattern &quot;<code>123</code>&quot; must be followed by &quot;<code>456</code>&quot;.
+ *
+ * <p>The output string of a forward or reverse rule consists of
+ * characters to replace the literal pattern characters. If the
+ * output string contains the character '<code>|</code>', this is
+ * taken to indicate the location of the <em>cursor</em> after
+ * replacement. The cursor is the point in the text at which the
+ * next replacement, if any, will be applied. The cursor is usually
+ * placed within the replacement text; however, it can actually be
+ * placed into the precending or following context by using the
+ * special character '@'. Examples:
+ *
+ * <pre>
+ *     a {foo} z &gt; | @ bar; # foo -&gt; bar, move cursor before a
+ *     {foo} xyz &gt; bar @@|; #&nbsp;foo -&gt; bar, cursor between y and z
+ * </pre>
+ *
+ * <p><b>UnicodeSet</b>
+ *
+ * <p><code>UnicodeSet</code> patterns may appear anywhere that
+ * makes sense. They may appear in variable definitions.
+ * Contrariwise, <code>UnicodeSet</code> patterns may themselves
+ * contain variable references, such as &quot;<code>$a=[a-z];$not_a=[^$a]</code>&quot;,
+ * or &quot;<code>$range=a-z;$ll=[$range]</code>&quot;.
+ *
+ * <p><code>UnicodeSet</code> patterns may also be embedded directly
+ * into rule strings. Thus, the following two rules are equivalent:
+ *
+ * <pre>
+ *     $vowel=[aeiou]; $vowel&gt;'*'; # One way to do this
+ *     [aeiou]&gt;'*'; # Another way
+ * </pre>
+ *
+ * <p>See {@link UnicodeSet} for more documentation and examples.
+ *
+ * <p><b>Segments</b>
+ *
+ * <p>Segments of the input string can be matched and copied to the
+ * output string. This makes certain sets of rules simpler and more
+ * general, and makes reordering possible. For example:
+ *
+ * <pre>
+ *     ([a-z]) &gt; $1 $1; # double lowercase letters
+ *     ([:Lu:]) ([:Ll:]) &gt; $2 $1; # reverse order of Lu-Ll pairs
+ * </pre>
+ *
+ * <p>The segment of the input string to be copied is delimited by
+ * &quot;<code>(</code>&quot; and &quot;<code>)</code>&quot;. Up to
+ * nine segments may be defined. Segments may not overlap. In the
+ * output string, &quot;<code>$1</code>&quot; through &quot;<code>$9</code>&quot;
+ * represent the input string segments, in left-to-right order of
+ * definition.
+ *
+ * <p><b>Anchors</b>
+ *
+ * <p>Patterns can be anchored to the beginning or the end of the text. This is done with the
+ * special characters '<code>^</code>' and '<code>$</code>'. For example:
+ *
+ * <pre>
+ *   ^ a&nbsp;&nbsp; &gt; 'BEG_A'; &nbsp;&nbsp;# match 'a' at start of text
+ *   &nbsp; a&nbsp;&nbsp; &gt; 'A'; # match other instances of 'a'
+ *   &nbsp; z $ &gt; 'END_Z'; &nbsp;&nbsp;# match 'z' at end of text
+ *   &nbsp; z&nbsp;&nbsp; &gt; 'Z';&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # match other instances of 'z'
+ * </pre>
+ *
+ * <p>It is also possible to match the beginning or the end of the text using a <code>UnicodeSet</code>.
+ * This is done by including a virtual anchor character '<code>$</code>' at the end of the
+ * set pattern. Although this is usually the match chafacter for the end anchor, the set will
+ * match either the beginning or the end of the text, depending on its placement. For
+ * example:
+ *
+ * <pre>
+ *   $x = [a-z$]; &nbsp;&nbsp;# match 'a' through 'z' OR anchor
+ *   $x 1&nbsp;&nbsp;&nbsp; &gt; 2;&nbsp;&nbsp; # match '1' after a-z or at the start
+ *   &nbsp;&nbsp; 3 $x &gt; 4; &nbsp;&nbsp;# match '3' before a-z or at the end
+ * </pre>
+ *
+ * <p><b>Example</b>
+ *
+ * <p>The following example rules illustrate many of the features of
+ * the rule language.
+ *
+ * <table border="0" cellpadding="4">
+ *     <tr>
+ *         <td style="vertical-align: top;">Rule 1.</td>
+ *         <td style="vertical-align: top; write-space: nowrap;"><code>abc{def}&gt;x|y</code></td>
+ *     </tr>
+ *     <tr>
+ *         <td style="vertical-align: top;">Rule 2.</td>
+ *         <td style="vertical-align: top; write-space: nowrap;"><code>xyz&gt;r</code></td>
+ *     </tr>
+ *     <tr>
+ *         <td style="vertical-align: top;">Rule 3.</td>
+ *         <td style="vertical-align: top; write-space: nowrap;"><code>yz&gt;q</code></td>
+ *     </tr>
+ * </table>
+ *
+ * <p>Applying these rules to the string &quot;<code>adefabcdefz</code>&quot;
+ * yields the following results:
+ *
+ * <table border="0" cellpadding="4">
+ *     <tr>
+ *         <td style="vertical-align: top; write-space: nowrap;"><code>|adefabcdefz</code></td>
+ *         <td style="vertical-align: top;">Initial state, no rules match. Advance
+ *         cursor.</td>
+ *     </tr>
+ *     <tr>
+ *         <td style="vertical-align: top; write-space: nowrap;"><code>a|defabcdefz</code></td>
+ *         <td style="vertical-align: top;">Still no match. Rule 1 does not match
+ *         because the preceding context is not present.</td>
+ *     </tr>
+ *     <tr>
+ *         <td style="vertical-align: top; write-space: nowrap;"><code>ad|efabcdefz</code></td>
+ *         <td style="vertical-align: top;">Still no match. Keep advancing until
+ *         there is a match...</td>
+ *     </tr>
+ *     <tr>
+ *         <td style="vertical-align: top; write-space: nowrap;"><code>ade|fabcdefz</code></td>
+ *         <td style="vertical-align: top;">...</td>
+ *     </tr>
+ *     <tr>
+ *         <td style="vertical-align: top; write-space: nowrap;"><code>adef|abcdefz</code></td>
+ *         <td style="vertical-align: top;">...</td>
+ *     </tr>
+ *     <tr>
+ *         <td style="vertical-align: top; write-space: nowrap;"><code>adefa|bcdefz</code></td>
+ *         <td style="vertical-align: top;">...</td>
+ *     </tr>
+ *     <tr>
+ *         <td style="vertical-align: top; write-space: nowrap;"><code>adefab|cdefz</code></td>
+ *         <td style="vertical-align: top;">...</td>
+ *     </tr>
+ *     <tr>
+ *         <td style="vertical-align: top; write-space: nowrap;"><code>adefabc|defz</code></td>
+ *         <td style="vertical-align: top;">Rule 1 matches; replace &quot;<code>def</code>&quot;
+ *         with &quot;<code>xy</code>&quot; and back up the cursor
+ *         to before the '<code>y</code>'.</td>
+ *     </tr>
+ *     <tr>
+ *         <td style="vertical-align: top; write-space: nowrap;"><code>adefabcx|yz</code></td>
+ *         <td style="vertical-align: top;">Although &quot;<code>xyz</code>&quot; is
+ *         present, rule 2 does not match because the cursor is
+ *         before the '<code>y</code>', not before the '<code>x</code>'.
+ *         Rule 3 does match. Replace &quot;<code>yz</code>&quot;
+ *         with &quot;<code>q</code>&quot;.</td>
+ *     </tr>
+ *     <tr>
+ *         <td style="vertical-align: top; write-space: nowrap;"><code>adefabcxq|</code></td>
+ *         <td style="vertical-align: top;">The cursor is at the end;
+ *         transliteration is complete.</td>
+ *     </tr>
+ * </table>
+ *
+ * <p>The order of rules is significant. If multiple rules may match
+ * at some point, the first matching rule is applied.
+ *
+ * <p>Forward and reverse rules may have an empty output string.
+ * Otherwise, an empty left or right hand side of any statement is a
+ * syntax error.
+ *
+ * <p>Single quotes are used to quote any character other than a
+ * digit or letter. To specify a single quote itself, inside or
+ * outside of quotes, use two single quotes in a row. For example,
+ * the rule &quot;<code>'&gt;'&gt;o''clock</code>&quot; changes the
+ * string &quot;<code>&gt;</code>&quot; to the string &quot;<code>o'clock</code>&quot;.
+ *
+ * <p><b>Notes</b>
+ *
+ * <p>While a Transliterator is being built from rules, it checks that
+ * the rules are added in proper order. For example, if the rule
+ * &quot;a&gt;x&quot; is followed by the rule &quot;ab&gt;y&quot;,
+ * then the second rule will throw an exception. The reason is that
+ * the second rule can never be triggered, since the first rule
+ * always matches anything it matches. In other words, the first
+ * rule <em>masks</em> the second rule.
+ *
  * @author Alan Liu
  * @stable ICU 2.0
  */
@@ -499,9 +744,9 @@ public:
      * for details.
      * @param text the buffer holding transliterated and
      * untransliterated text
-     * @param index an array of three integers.  See {@link #transliterate(Replaceable&, UTransPosition&, const UnicodeString*, UErrorCode&) const }.
+     * @param index an array of three integers.
      * @param status    Output param to filled in with a success or an error.
-     * @see #transliterate(Replaceable, int[], String)
+     * @see #transliterate(Replaceable&, UTransPosition&, const UnicodeString&, UErrorCode &) const
      * @stable ICU 2.0
      */
     virtual void transliterate(Replaceable& text, UTransPosition& index,
@@ -632,7 +877,7 @@ public:
     /**
      * Transliterate a substring of text, as specified by index, taking filters
      * into account.  This method is for subclasses that need to delegate to
-     * another transliterator, such as CompoundTransliterator.
+     * another transliterator.
      * @param text the text to be transliterated
      * @param index the position indices
      * @param incremental if TRUE, then assume more characters may be inserted
@@ -846,17 +1091,19 @@ public:
 
     /**
      * Returns a <code>Transliterator</code> object constructed from
-     * the given rule string.  This will be a RuleBasedTransliterator,
+     * the given rule string.  This will be a rule-based Transliterator,
      * if the rule string contains only rules, or a
-     * CompoundTransliterator, if it contains ID blocks, or a
-     * NullTransliterator, if it contains ID blocks which parse as
+     * compound Transliterator, if it contains ID blocks, or a
+     * null Transliterator, if it contains ID blocks which parse as
      * empty for the given direction.
+     *
      * @param ID            the id for the transliterator.
      * @param rules         rules, separated by ';'
      * @param dir           either FORWARD or REVERSE.
-     * @param parseError    Struct to recieve information on position
+     * @param parseError    Struct to receive information on position
      *                      of error if an error is encountered
      * @param status        Output param set to success/failure code.
+     * @return a newly created Transliterator
      * @stable ICU 2.0
      */
     static Transliterator* U_EXPORT2 createFromRules(const UnicodeString& ID,
index 724ff4d..d2aa768 100644 (file)
@@ -237,10 +237,10 @@ typedef enum UTimeZoneFormatParseOption {
      */
     UTZFMT_PARSE_OPTION_ALL_STYLES  = 0x01,
      /**
-      * When parsing a time zone display name in UTZFMT_STYLE_SPECIFIC_SHORT,
+      * When parsing a time zone display name in \link UTZFMT_STYLE_SPECIFIC_SHORT \endlink,
       * look for the IANA tz database compatible zone abbreviations in addition
-      * to the localized names coming from the {@link TimeZoneNames} currently
-      * used by the {@link TimeZoneFormat}. 
+      * to the localized names coming from the icu::TimeZoneNames currently
+      * used by the icu::TimeZoneFormat.
       * @stable ICU 54
       */
     UTZFMT_PARSE_OPTION_TZ_DATABASE_ABBREVIATIONS = 0x02
index c765e78..fb7c387 100644 (file)
  * For example, subtracting 5 days from the date <code>September 12, 1996</code>
  * results in <code>September 7, 1996</code>.
  *
+ * <p>
+ * The Japanese calendar uses a combination of era name and year number.
+ * When an emperor of Japan abdicates and a new emperor ascends the throne,
+ * a new era is declared and year number is reset to 1. Even if the date of
+ * abdication is scheduled ahead of time, the new era name might not be
+ * announced until just before the date. In such case, ICU4C may include
+ * a start date of future era without actual era name, but not enabled
+ * by default. ICU4C users who want to test the behavior of the future era
+ * can enable the tentative era by:
+ * <ul>
+ * <li>Environment variable <code>ICU_ENABLE_TENTATIVE_ERA=true</code>.</li>
+ * </ul>
+ *
  * @stable ICU 2.0
  */
 
index ecabd9e..dbac48e 100644 (file)
@@ -1149,7 +1149,7 @@ ucol_getUCAVersion(const UCollator* coll, UVersionInfo info);
  * The recommended way to achieve "merged" sorting is by
  * concatenating strings with U+FFFE between them.
  * The concatenation has the same sort order as the merged sort keys,
- * but merge(getSortKey(str1), getSortKey(str2)) may differ from getSortKey(str1 + '\uFFFE' + str2).
+ * but merge(getSortKey(str1), getSortKey(str2)) may differ from getSortKey(str1 + '\\uFFFE' + str2).
  * Using strings with U+FFFE may yield shorter sort keys.
  *
  * For details about Sort Key Features see
@@ -1294,6 +1294,7 @@ U_STABLE uint32_t U_EXPORT2 ucol_getVariableTop(const UCollator *coll, UErrorCod
  * the top of one of the supported reordering groups,
  * and it must not be beyond the last of those groups.
  * See ucol_setMaxVariable().
+ * @param coll collator to be set
  * @param varTop primary weight, as returned by ucol_setVariableTop or ucol_getVariableTop
  * @param status error code
  * @see ucol_getVariableTop
index d015a23..903f3dd 100644 (file)
@@ -49,11 +49,11 @@ enum UGender {
  */
 typedef enum UGender UGender;
 
+struct UGenderInfo;
 /**
  * Opaque UGenderInfo object for use in C programs.
  * @stable ICU 50
  */
-struct UGenderInfo;
 typedef struct UGenderInfo UGenderInfo;
 
 /**
@@ -77,7 +77,7 @@ ugender_getInstance(const char *locale, UErrorCode *status);
  * @stable ICU 50
  */
 U_STABLE UGender U_EXPORT2
-ugender_getListGender(const UGenderInfo* genderinfo, const UGender *genders, int32_t size, UErrorCode *status);
+ugender_getListGender(const UGenderInfo* genderInfo, const UGender *genders, int32_t size, UErrorCode *status);
 
 #endif /* #if !UCONFIG_NO_FORMATTING */
 
similarity index 90%
rename from source/common/unicode/ulistformatter.h
rename to source/i18n/unicode/ulistformatter.h
index 9fe24f7..d794a89 100644 (file)
 struct UListFormatter;
 typedef struct UListFormatter UListFormatter;  /**< C typedef for struct UListFormatter. @stable ICU 55 */
 
+#ifndef U_HIDE_DRAFT_API
+/**
+ * FieldPosition and UFieldPosition selectors for format fields
+ * defined by ListFormatter.
+ * @draft ICU 63
+ */
+typedef enum UListFormatterField {
+    /**
+     * The literal text in the result which came from the resources.
+     * @draft ICU 63
+     */
+    ULISTFMT_LITERAL_FIELD,
+    /**
+     * The element text in the result which came from the input strings.
+     * @draft ICU 63
+     */
+    ULISTFMT_ELEMENT_FIELD
+} UListFormatterField;
+#endif // U_HIDE_DRAFT_API
+
 /**
  * Open a new UListFormatter object using the rules for a given locale.
  * @param locale
index 7181326..5926e0e 100644 (file)
@@ -91,7 +91,7 @@
  * </ul>
  *
  * <p>
- * This enum is similar to {@link com.ibm.icu.text.MeasureFormat.FormatWidth}.
+ * This enum is similar to {@link UMeasureFormatWidth}.
  *
  * @draft ICU 60
  */
@@ -190,10 +190,9 @@ typedef enum UNumberUnitWidth {
  * Note: This enum specifies the strategy for grouping sizes. To set which character to use as the
  * grouping separator, use the "symbols" setter.
  *
- * @draft ICU 61 -- TODO: This should be renamed to UNumberGroupingStrategy before promoting to stable,
- * for consistency with the other enums.
+ * @draft ICU 63
  */
-typedef enum UGroupingStrategy {
+typedef enum UNumberGroupingStrategy {
     /**
      * Do not display grouping separators in any locale.
      *
@@ -254,16 +253,28 @@ typedef enum UGroupingStrategy {
      *
      * @draft ICU 61
      */
-            UNUM_GROUPING_THOUSANDS,
+            UNUM_GROUPING_THOUSANDS
 
+#ifndef U_HIDE_INTERNAL_API
+    ,
     /**
-     * One more than the highest UGroupingStrategy value.
+     * One more than the highest UNumberGroupingStrategy value.
      *
      * @internal ICU 62: The numeric value may change over time; see ICU ticket #12420.
      */
             UNUM_GROUPING_COUNT
+#endif  /* U_HIDE_INTERNAL_API */
+
+} UNumberGroupingStrategy;
+
+#ifndef U_HIDE_DEPRECATED_API
+/**
+ * Old name for compatibility: will be removed in ICU 64.
+ * @deprecated ICU 63
+ */
+typedef UNumberGroupingStrategy UGroupingStrategy;
+#endif  /* U_HIDE_DEPRECATED_API */
 
-} UGroupingStrategy;
 #endif  /* U_HIDE_DRAFT_API */
 
 #ifndef U_HIDE_DRAFT_API
@@ -398,6 +409,8 @@ typedef enum UNumberDecimalSeparatorDisplay {
 #endif  /* U_HIDE_DRAFT_API */
 
 #ifndef U_HIDE_DRAFT_API
+
+struct UNumberFormatter;
 /**
  * C-compatible version of icu::number::LocalizedNumberFormatter.
  *
@@ -405,10 +418,9 @@ typedef enum UNumberDecimalSeparatorDisplay {
  *
  * @draft ICU 62
  */
-struct UNumberFormatter;
 typedef struct UNumberFormatter UNumberFormatter;
 
-
+struct UFormattedNumber;
 /**
  * C-compatible version of icu::number::FormattedNumber.
  *
@@ -416,7 +428,6 @@ typedef struct UNumberFormatter UNumberFormatter;
  *
  * @draft ICU 62
  */
-struct UFormattedNumber;
 typedef struct UFormattedNumber UFormattedNumber;
 
 
@@ -559,7 +570,8 @@ unumf_resultToString(const UFormattedNumber* uresult, UChar* buffer, int32_t buf
  *
  * NOTE: All fields of the UFieldPosition must be initialized before calling this method.
  *
- * @param fieldPosition
+ * @param uresult The object containing the formatted number.
+ * @param ufpos
  *            Input+output variable. On input, the "field" property determines which field to look up,
  *            and the "endIndex" property determines where to begin the search. On output, the
  *            "beginIndex" field is set to the beginning of the first occurrence of the field after the
@@ -580,7 +592,7 @@ unumf_resultNextFieldPosition(const UFormattedNumber* uresult, UFieldPosition* u
  * If you need information on only one field, use unumf_resultNextFieldPosition().
  *
  * @param uresult The object containing the formatted number.
- * @param fpositer
+ * @param ufpositer
  *         A pointer to a UFieldPositionIterator created by {@link #ufieldpositer_open}. Iteration
  *         information already present in the UFieldPositionIterator is deleted, and the iterator is reset
  *         to apply to the fields in the formatted string created by this function call. The field values
index ebfcdf7..3a7c311 100644 (file)
@@ -257,10 +257,9 @@ typedef enum {
      * match an e with the same diacritic or a plain e in the searched text.
      *
      * This option is similar to "asymmetric search" as described in
-     * <a href="http://www.unicode.org/reports/tr10/#Asymmetric_Search">
-     * UTS #10 Unicode Collation Algorithm</a, but also allows unmarked
-     * characters in the searched text to match marked or unmarked versions of
-     * that character in the pattern.
+     * [UTS #10 Unicode Collation Algorithm](http://www.unicode.org/reports/tr10/#Asymmetric_Search),
+     * but also allows unmarked characters in the searched text to match
+     * marked or unmarked versions of that character in the pattern.
      *
      * @stable ICU 4.4
      */
index 781a882..d15ba4b 100644 (file)
@@ -94,7 +94,6 @@
  * // ...
  * \endcode
  *
- * <p>
  * UTS 39 defines two strings to be <em>confusable</em> if they map to the same <em>skeleton string</em>. A skeleton can
  * be thought of as a "hash code". {@link uspoof_getSkeleton} computes the skeleton for a particular string, so
  * the following snippet is equivalent to the example above:
  * free(skel2);
  * \endcode
  *
- * <p>
  * If you need to check if a string is confusable with any string in a dictionary of many strings, rather than calling
  * {@link uspoof_areConfusable} many times in a loop, {@link uspoof_getSkeleton} can be used instead, as shown below:
  *
  * uspoof_close(sc);
  * \endcode
  *
- * <p>
  * <b>Note:</b> Since the Unicode confusables mapping table is frequently updated, confusable skeletons are <em>not</em>
  * guaranteed to be the same between ICU releases. We therefore recommend that you always compute confusable skeletons
  * at runtime and do not rely on creating a permanent, or difficult to update, database of skeletons.
  *
  * <h2>Spoof Detection</h2>
  *
- * <p>
  * The following snippet shows a minimal example of using <code>USpoofChecker</code> to perform spoof detection on a
  * string:
  *
  * uset_close(allowed);
  * \endcode
  *
- * <p>
  * As in the case for confusability checking, it is good practice to create one <code>USpoofChecker</code> instance at
  * startup, and call the cheaper {@link uspoof_check} online. We specify the set of
  * allowed characters to be those with type RECOMMENDED or INCLUSION, according to the recommendation in UTS 39.
  *
- * <p>
  * In addition to {@link uspoof_check}, the function {@link uspoof_checkUTF8} is exposed for UTF8-encoded char* strings,
  * and {@link uspoof_checkUnicodeString} is exposed for C++ programmers.
  *
- * <p>
  * If the {@link USPOOF_AUX_INFO} check is enabled, a limited amount of information on why a string failed the checks
  * is available in the returned bitmask.  For complete information, use the {@link uspoof_check2} class of functions
  * with a {@link USpoofCheckResult} parameter:
  * // Explicit cleanup not necessary.
  * \endcode
  *
- * <p>
  * The return value is a bitmask of the checks that failed. In this case, there was one check that failed:
  * {@link USPOOF_RESTRICTION_LEVEL}, corresponding to the fifth bit (16). The possible checks are:
  *
  * uspoof_close(sc);
  * \endcode
  *
- * <p>
  * Here is an example in C++ showing how to compute the restriction level of a string:
  *
  * \code{.cpp}
  * printf("Restriction level: %#010x (status: %s)\n", restrictionLevel, u_errorName(status));
  * \endcode
  *
- * <p>
  * The code '0x50000000' corresponds to the restriction level USPOOF_MINIMALLY_RESTRICTIVE.  Since
  * USPOOF_MINIMALLY_RESTRICTIVE is weaker than USPOOF_MODERATELY_RESTRICTIVE, the string fails the check.
  *
- * <p>
  * <b>Note:</b> The Restriction Level is the most powerful of the checks. The full logic is documented in
  * <a href="http://unicode.org/reports/tr39/#Restriction_Level_Detection">UTS 39</a>, but the basic idea is that strings
  * are restricted to contain characters from only a single script, <em>except</em> that most scripts are allowed to have
  *
  * <h2>Additional Information</h2>
  *
- * <p>
  * A <code>USpoofChecker</code> instance may be used repeatedly to perform checks on any number of identifiers.
  *
- * <p>
  * <b>Thread Safety:</b> The test functions for checking a single identifier, or for testing whether
  * two identifiers are possible confusable, are thread safe. They may called concurrently, from multiple threads,
  * using the same USpoofChecker instance.
  *
- * <p>
  * More generally, the standard ICU thread safety rules apply: functions that take a const USpoofChecker parameter are
  * thread safe. Those that take a non-const USpoofChecker are not thread safe..
  *
@@ -1219,14 +1205,21 @@ U_NAMESPACE_BEGIN
 
 /**
  * \class LocalUSpoofCheckResultPointer
- * "Smart pointer" class, closes a USpoofCheckResult via {@link uspoof_closeCheckResult}.
+ * "Smart pointer" class, closes a USpoofCheckResult via `uspoof_closeCheckResult()`.
  * For most methods see the LocalPointerBase base class.
  *
  * @see LocalPointerBase
  * @see LocalPointer
  * @stable ICU 58
  */
+
+/**
+ * \cond
+ * Note: Doxygen is giving a bogus warning on this U_DEFINE_LOCAL_OPEN_POINTER.
+ *       For now, suppress with a Doxygen cond
+ */
 U_DEFINE_LOCAL_OPEN_POINTER(LocalUSpoofCheckResultPointer, USpoofCheckResult, uspoof_closeCheckResult);
+/** \endcond */
 
 U_NAMESPACE_END
 
index 12f3689..9a189a3 100644 (file)
@@ -1654,8 +1654,8 @@ int32_t RegexCImpl::appendTail(RegularExpression    *regexp,
         } else if (UTEXT_USES_U16(m->fInputText)) {
             srcIdx = (int32_t)nativeIdx;
         } else {
-            UErrorCode status = U_ZERO_ERROR;
-            srcIdx = utext_extract(m->fInputText, 0, nativeIdx, NULL, 0, &status);
+            UErrorCode newStatus = U_ZERO_ERROR;
+            srcIdx = utext_extract(m->fInputText, 0, nativeIdx, NULL, 0, &newStatus);
         }
 
         for (;;) {
index 645db01..4f758ba 100644 (file)
@@ -498,7 +498,7 @@ inline void setShiftTable(int16_t   shift[], int16_t backshift[],
     for (count = 0; count < cesize; count ++) {
         // number of ces from right of array to the count
         int temp = defaultforward - count - 1;
-        shift[hashFromCE32(cetable[count])] = temp > 1 ? temp : 1;
+        shift[hashFromCE32(cetable[count])] = temp > 1 ? static_cast<int16_t>(temp) : 1;
     }
     shift[hashFromCE32(cetable[cesize])] = 1;
     // for ignorables we just shift by one. see test examples.
index 2985c73..0eee0e5 100644 (file)
@@ -20,7 +20,7 @@
 #include "unicode/uspoof.h"
 #include "unicode/uscript.h"
 #include "unicode/udata.h"
-
+#include "udataswp.h"
 #include "utrie2.h"
 
 #if !UCONFIG_NO_NORMALIZATION
index 6ddcf41..cb84c62 100644 (file)
@@ -135,7 +135,7 @@ static UnicodeString& appendAsciiDigits(int32_t number, uint8_t length, UnicodeS
             digits[i++] = number % 10;
             number /= 10;
         } while (number != 0);
-        length = i;
+        length = static_cast<uint8_t>(i);
     } else {
         // fixed digits
         for (i = 0; i < length; i++) {
index 0256204..b7139a8 100644 (file)
@@ -319,10 +319,10 @@ ZoneMeta::getCanonicalCLDRID(const UnicodeString &tzid, UErrorCode& status) {
                 id[len] = (char) 0; // Make sure it is null terminated.
 
                 // replace '/' with ':'
-                char *p = id;
-                while (*p++) {
-                    if (*p == '/') {
-                        *p = ':';
+                char *q = id;
+                while (*q++) {
+                    if (*q == '/') {
+                        *q = ':';
                     }
                 }
 
@@ -850,13 +850,13 @@ ZoneMeta::createCustomTimeZone(int32_t offset) {
         negative = TRUE;
         tmp = -offset;
     }
-    int32_t hour, min, sec;
+    uint8_t hour, min, sec;
 
     tmp /= 1000;
-    sec = tmp % 60;
+    sec = static_cast<uint8_t>(tmp % 60);
     tmp /= 60;
-    min = tmp % 60;
-    hour = tmp / 60;
+    min = static_cast<uint8_t>(tmp % 60);
+    hour = static_cast<uint8_t>(tmp / 60);
 
     UnicodeString zid;
     formatCustomID(hour, min, sec, negative, zid);
index 2144dbe..7e7b5cd 100644 (file)
@@ -2,7 +2,8 @@
 <Project DefaultTargets="Build" ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
   <!-- The following import will include the 'default' configuration options for VS projects. -->
   <Import Project="..\allinone\Build.Windows.ProjectConfiguration.props" />
-
+  <!-- The following import will include the library configuration options for VS projects. -->
+  <Import Project="..\allinone\Build.Windows.Library.ProjectConfiguration.props" />
   <PropertyGroup Label="Globals">
     <ProjectGuid>{C2B04507-2521-4801-BF0D-5FD79D6D518C}</ProjectGuid>
   </PropertyGroup>
@@ -76,7 +77,7 @@
       <CompileAs>Default</CompileAs>
     </ClCompile>
     <Link>
-      <OutputFile>..\..\bin\icuio62.dll</OutputFile>
+      <OutputFile>..\..\bin\icuio63.dll</OutputFile>
       <AdditionalDependencies>icuuc.lib;icuin.lib;%(AdditionalDependencies)</AdditionalDependencies>
       <AdditionalLibraryDirectories>..\..\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
       <ProgramDatabaseFile>.\..\..\lib\icuio.pdb</ProgramDatabaseFile>
       <CompileAs>Default</CompileAs>
     </ClCompile>
     <Link>
-      <OutputFile>..\..\bin\icuio62d.dll</OutputFile>
+      <OutputFile>..\..\bin\icuio63d.dll</OutputFile>
       <AdditionalDependencies>icuucd.lib;icuind.lib;%(AdditionalDependencies)</AdditionalDependencies>
       <AdditionalLibraryDirectories>..\..\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
       <GenerateDebugInformation>true</GenerateDebugInformation>
       <CompileAs>Default</CompileAs>
     </ClCompile>
     <Link>
-      <OutputFile>..\..\bin64\icuio62.dll</OutputFile>
+      <OutputFile>..\..\bin64\icuio63.dll</OutputFile>
       <AdditionalDependencies>icuuc.lib;icuin.lib;%(AdditionalDependencies)</AdditionalDependencies>
       <AdditionalLibraryDirectories>..\..\lib64;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
       <ProgramDatabaseFile>.\..\..\lib64\icuio.pdb</ProgramDatabaseFile>
       <CompileAs>Default</CompileAs>
     </ClCompile>
     <Link>
-      <OutputFile>..\..\bin64\icuio62d.dll</OutputFile>
+      <OutputFile>..\..\bin64\icuio63d.dll</OutputFile>
       <AdditionalDependencies>icuucd.lib;icuind.lib;%(AdditionalDependencies)</AdditionalDependencies>
       <AdditionalLibraryDirectories>..\..\lib64;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
       <GenerateDebugInformation>true</GenerateDebugInformation>
index 2b1a76f..0b6c18f 100644 (file)
@@ -140,7 +140,7 @@ ufmt_uto64(const UChar     *buffer,
 {
     const UChar     *limit;
     int32_t         count;
-    int64_t        result;
+    uint64_t        result;
     
     
     /* intialize parameters */
@@ -160,7 +160,7 @@ ufmt_uto64(const UChar     *buffer,
     }
     
     *len = count;
-    return result;
+    return static_cast<int64_t>(result);
 }
 
 #define NIBBLE_PER_BYTE 2
@@ -235,7 +235,7 @@ ufmt_defaultCPToUnicode(const char *s, int32_t sSize,
         return 0;
 
     if(sSize <= 0) {
-        sSize = uprv_strlen(s) + 1;
+        sSize = static_cast<int32_t>(uprv_strlen(s)) + 1;
     }
     
     /* perform the conversion in one swoop */
index d433707..3c9effa 100644 (file)
@@ -183,7 +183,7 @@ u_vfprintf(    UFILE        *f,
     else {
         pattern = buffer;
     }
-    u_charsToUChars(patternSpecification, pattern, size);
+    u_charsToUChars(patternSpecification, pattern, static_cast<int32_t>(size));
 
     /* do the work */
     count = u_vfprintf_u(f, pattern, ap);
index 948521a..51676ea 100644 (file)
@@ -123,7 +123,7 @@ operator>>(STD_ISTREAM& stream, UnicodeString& str)
             /* Was the character consumed? */
             if (us != uBuffer) {
                 /* Reminder: ibm-1390 & JISX0213 can output 2 Unicode code points */
-                int32_t uBuffSize = us-uBuffer;
+                int32_t uBuffSize = static_cast<int32_t>(us-uBuffer);
                 int32_t uBuffIdx = 0;
                 while (uBuffIdx < uBuffSize) {
                     U16_NEXT(uBuffer, uBuffIdx, uBuffSize, ch32);
index 0d9f08f..60972dc 100644 (file)
@@ -42,13 +42,11 @@ U_NAMESPACE_BEGIN
  *
  * Clients can use this to break a paragraph into lines, and to display the glyphs in each line.
  *
- * Note that {@link icu::LayoutEngine} is deprecated, but this class is not.
+ * Note that the ICU layout engine has been deprecated and removed.
  * You may use this class with the HarfBuzz icu-le-hb wrapper,
  *  see http://www.freedesktop.org/wiki/Software/HarfBuzz/
  *
  *  See http://userguide.icu-project.org/layoutengine for special build instructions.
- *
- * @see icu::LayoutEngine
  */
 class U_LAYOUTEX_API ParagraphLayout : public UObject
 {
index bfe8eb0..2bc31e5 100644 (file)
@@ -74,7 +74,7 @@
       <CompileAs>Default</CompileAs>
     </ClCompile>
     <Link>
-      <OutputFile>..\..\bin\iculx62.dll</OutputFile>
+      <OutputFile>..\..\bin\iculx63.dll</OutputFile>
       <AdditionalDependencies>icuuc.lib;%(AdditionalDependencies)</AdditionalDependencies>
       <AdditionalLibraryDirectories>.\..\..\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
       <ProgramDatabaseFile>.\..\..\lib\iculx.pdb</ProgramDatabaseFile>
       <CompileAs>Default</CompileAs>
     </ClCompile>
     <Link>
-      <OutputFile>..\..\bin\iculx62d.dll</OutputFile>
+      <OutputFile>..\..\bin\iculx63d.dll</OutputFile>
       <AdditionalDependencies>icuucd.lib;%(AdditionalDependencies)</AdditionalDependencies>
       <AdditionalLibraryDirectories>.\..\..\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
       <GenerateDebugInformation>true</GenerateDebugInformation>
       <CompileAs>Default</CompileAs>
     </ClCompile>
     <Link>
-      <OutputFile>..\..\bin64\iculx62.dll</OutputFile>
+      <OutputFile>..\..\bin64\iculx63.dll</OutputFile>
       <AdditionalDependencies>icuuc.lib;%(AdditionalDependencies)</AdditionalDependencies>
       <AdditionalLibraryDirectories>.\..\..\lib64;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
       <ProgramDatabaseFile>.\..\..\lib64\iculx.pdb</ProgramDatabaseFile>
       <CompileAs>Default</CompileAs>
     </ClCompile>
     <Link>
-      <OutputFile>..\..\bin64\iculx62d.dll</OutputFile>
+      <OutputFile>..\..\bin64\iculx63d.dll</OutputFile>
       <AdditionalDependencies>icuucd.lib;%(AdditionalDependencies)</AdditionalDependencies>
       <AdditionalLibraryDirectories>.\..\..\lib64;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
       <GenerateDebugInformation>true</GenerateDebugInformation>
index abe8832..77df3a0 100755 (executable)
@@ -265,8 +265,8 @@ case $platform in
         CXX=cl; export CXX
         RELEASE_CFLAGS='-Gy -MD'
         RELEASE_CXXFLAGS='-Gy -MD'
-        DEBUG_CFLAGS='-Zi -MDd'
-        DEBUG_CXXFLAGS='-Zi -MDd'
+        DEBUG_CFLAGS='-FS -Zi -MDd'
+        DEBUG_CXXFLAGS='-FS -Zi -MDd'
         DEBUG_LDFLAGS='-DEBUG'
         ;;
     Cygwin/MSVC2005)
@@ -324,8 +324,8 @@ case $platform in
         CXX=cl; export CXX
         RELEASE_CFLAGS='-Gy -MD'
         RELEASE_CXXFLAGS='-Gy -MD'
-        DEBUG_CFLAGS='-Zi -MDd'
-        DEBUG_CXXFLAGS='-Zi -MDd'
+        DEBUG_CFLAGS='-FS -Zi -MDd'
+        DEBUG_CXXFLAGS='-FS -Zi -MDd'
         DEBUG_LDFLAGS='-DEBUG'
         ;;
     *BSD)
index 0a80c67..c85a6c6 100644 (file)
-@echo off\r
-REM Copyright (C) 2016 and later: Unicode, Inc. and others.\r
-REM License & terms of use: http://www.unicode.org/copyright.html\r
-REM  ********************************************************************\r
-\r
-REM Don't add additional global environment variables, keep the variables local to this script.\r
-rem setlocal\r
-\r
-set ICU_ARCH=%1\r
-set ICU_DBRL=%2\r
-\r
-if "%1" == "" (\r
- echo Usage: %0 "x86 or x64"  "Debug or Release"\r
- exit /b 1\r
-)\r
-\r
-if "%2" == "" (\r
- echo Usage: %0 %1 "Debug or Release"\r
- exit /b 1\r
-)\r
-\r
-set ICU_ICUDIR="%~dp0"\..\..\..\r
-set ICU_SAMPLESDIR=%ICU_ICUDIR%\source\samples\r
-\r
-if "%ICU_ARCH%" == "x64" (\r
- set ICU_BINDIR=%~dp0..\..\..\bin64\r
-) else (\r
- set ICU_BINDIR=%~dp0..\..\..\bin\r
-)\r
-\r
-if not exist "%ICU_BINDIR%" (\r
- echo Error '%ICU_BINDIR%' does not exist!\r
- echo Have you built all of ICU yet ?\r
- goto :eof\r
-)\r
-\r
-echo Testing ICU samples in %ICU_ICUDIR%  arch=%ICU_ARCH% type=%ICU_DBRL%\r
-set PATH=%ICU_BINDIR%;%PATH%\r
-pushd %ICU_BINDIR%\r
-\r
-set SAMPLE_BREAK=%ICU_SAMPLESDIR%\break\%ICU_ARCH%\%ICU_DBRL%\break.exe\r
-set SAMPLE_CAL=%ICU_SAMPLESDIR%\cal\%ICU_ARCH%\%ICU_DBRL%\cal.exe\r
-set SAMPLE_CASE=%ICU_SAMPLESDIR%\case\%ICU_ARCH%\%ICU_DBRL%\case.exe\r
-set SAMPLE_CITER=%ICU_SAMPLESDIR%\citer\%ICU_ARCH%\%ICU_DBRL%\citer.exe\r
-set SAMPLE_COLL=%ICU_SAMPLESDIR%\coll\%ICU_ARCH%\%ICU_DBRL%\coll.exe\r
-set SAMPLE_CSDET=%ICU_SAMPLESDIR%\csdet\%ICU_ARCH%\%ICU_DBRL%\csdet.exe\r
-set SAMPLE_DATE=%ICU_SAMPLESDIR%\date\%ICU_ARCH%\%ICU_DBRL%\date.exe\r
-set SAMPLE_DATEFMT=%ICU_SAMPLESDIR%\datefmt\%ICU_ARCH%\%ICU_DBRL%\datefmt.exe\r
-set SAMPLE_DTITVFMT=%ICU_SAMPLESDIR%\dtitvfmtsample\%ICU_ARCH%\%ICU_DBRL%\dtitvfmtsample.exe\r
-set SAMPLE_DTPTNG=%ICU_SAMPLESDIR%\dtptngsample\%ICU_ARCH%\%ICU_DBRL%\dtptngsample.exe\r
-set SAMPLE_MSGFMT=%ICU_SAMPLESDIR%\msgfmt\%ICU_ARCH%\%ICU_DBRL%\msgfmt.exe\r
-set SAMPLE_NUMFMT=%ICU_SAMPLESDIR%\numfmt\%ICU_ARCH%\%ICU_DBRL%\numfmt.exe\r
-set SAMPLE_PLURFMTSAMPLE=%ICU_SAMPLESDIR%\plurfmtsample\%ICU_ARCH%\%ICU_DBRL%\plurfmtsample.exe\r
-set SAMPLE_PROPS=%ICU_SAMPLESDIR%\props\%ICU_ARCH%\%ICU_DBRL%\props.exe\r
-set SAMPLE_STRSRCH=%ICU_SAMPLESDIR%\strsrch\%ICU_ARCH%\%ICU_DBRL%\strsrch.exe\r
-set SAMPLE_TRANSLIT=%ICU_SAMPLESDIR%\translit\%ICU_ARCH%\%ICU_DBRL%\translit.exe\r
-set SAMPLE_UCITER8=%ICU_SAMPLESDIR%\uciter8\%ICU_ARCH%\%ICU_DBRL%\uciter8.exe\r
-set SAMPLE_UCNV=%ICU_SAMPLESDIR%\ucnv\%ICU_ARCH%\%ICU_DBRL%\ucnv.exe\r
-REM udata needs changes to the vcxproj to change the output locations for writer/reader.\r
-rem set SAMPLE_UDATA_WRITER=%ICU_SAMPLESDIR%\udata\%ICU_ARCH%\%ICU_DBRL%\writer.exe\r
-rem set SAMPLE_UDATA_READER=%ICU_SAMPLESDIR%\udata\%ICU_ARCH%\%ICU_DBRL%\reader.exe\r
-set SAMPLE_UFORTUNE=%ICU_SAMPLESDIR%\ufortune\%ICU_ARCH%\%ICU_DBRL%\ufortune.exe\r
-set SAMPLE_UGREP=%ICU_SAMPLESDIR%\ugrep\%ICU_ARCH%\%ICU_DBRL%\ugrep.exe\r
-REM There is also the 'resources' project in VS.\r
-set SAMPLE_URESB=%ICU_SAMPLESDIR%\uresb\%ICU_ARCH%\%ICU_DBRL%\uresb.exe\r
-set SAMPLE_USTRING=%ICU_SAMPLESDIR%\ustring\%ICU_ARCH%\%ICU_DBRL%\ustring.exe\r
-\r
-\r
-@set THT=break\r
-@echo.\r
-@echo ==== %THT% =========================================================================\r
-%SAMPLE_BREAK%\r
-if ERRORLEVEL 1 goto :SampleError\r
-\r
-@set THT=cal\r
-@echo.\r
-@echo ==== %THT% =========================================================================\r
-%SAMPLE_CAL%\r
-if ERRORLEVEL 1 goto :SampleError\r
-\r
-@set THT=case\r
-@echo.\r
-@echo ==== %THT% =========================================================================\r
-%SAMPLE_CASE%\r
-if ERRORLEVEL 1 goto :SampleError\r
-\r
-@set THT=citer\r
-@echo.\r
-@echo ==== %THT% =========================================================================\r
-%SAMPLE_CITER%\r
-if ERRORLEVEL 1 goto :SampleError\r
-\r
-@set THT=coll\r
-@echo.\r
-@echo ==== %THT% =========================================================================\r
-%SAMPLE_COLL%\r
-if ERRORLEVEL 1 goto :SampleError\r
-\r
-@set THT=csdet\r
-@echo.\r
-@echo ==== %THT% =========================================================================\r
-%SAMPLE_CSDET% %ICU_SAMPLESDIR%\csdet\readme.txt\r
-if ERRORLEVEL 1 goto :SampleError\r
-\r
-@set THT=date\r
-@echo.\r
-@echo ==== %THT% =========================================================================\r
-%SAMPLE_DATE%\r
-if ERRORLEVEL 1 goto :SampleError\r
-\r
-@set THT=datefmt\r
-@echo.\r
-@echo ==== %THT% =========================================================================\r
-%SAMPLE_DATEFMT%\r
-if ERRORLEVEL 1 goto :SampleError\r
-\r
-@set THT=dtitvfmtsample\r
-@echo.\r
-@echo ==== %THT% =========================================================================\r
-%SAMPLE_DTITVFMT%\r
-if ERRORLEVEL 1 goto :SampleError\r
-\r
-@set THT=dtptngsample\r
-@echo.\r
-@echo ==== %THT% =========================================================================\r
-pushd %ICU_SAMPLESDIR%\dtptngsample\%ICU_ARCH%\%ICU_DBRL%\r
-%SAMPLE_DTPTNG%\r
-popd\r
-if ERRORLEVEL 1 goto :SampleError\r
-\r
-@set THT=msgfmt\r
-@echo.\r
-@echo ==== %THT% =========================================================================\r
-%SAMPLE_MSGFMT% arg1 arg2\r
-if ERRORLEVEL 1 goto :SampleError\r
-\r
-@set THT=numfmt\r
-@echo.\r
-@echo ==== %THT% =========================================================================\r
-%SAMPLE_NUMFMT%\r
-if ERRORLEVEL 1 goto :SampleError\r
-\r
-@set THT=plurfmtsample\r
-@echo.\r
-@echo ==== %THT% =========================================================================\r
-%SAMPLE_PLURFMTSAMPLE%\r
-if ERRORLEVEL 1 goto :SampleError\r
-\r
-@set THT=props\r
-@echo.\r
-@echo ==== %THT% =========================================================================\r
-%SAMPLE_PROPS%\r
-if ERRORLEVEL 1 goto :SampleError\r
-\r
-@set THT=strsrch\r
-@echo.\r
-@echo ==== %THT% =========================================================================\r
-%SAMPLE_STRSRCH%\r
-if ERRORLEVEL 1 goto :SampleError\r
-\r
-@set THT=translit\r
-@echo.\r
-@echo ==== %THT% =========================================================================\r
-%SAMPLE_TRANSLIT%\r
-if ERRORLEVEL 1 goto :SampleError\r
-\r
-@set THT=citer8\r
-@echo.\r
-@echo ==== %THT% =========================================================================\r
-%SAMPLE_UCITER8%\r
-if ERRORLEVEL 1 goto :SampleError\r
-\r
-@set THT=ucnv\r
-@echo.\r
-@echo ==== %THT% =========================================================================\r
-pushd %ICU_SAMPLESDIR%\ucnv\r
-%SAMPLE_UCNV%\r
-popd\r
-if ERRORLEVEL 1 goto :SampleError\r
-\r
-REM TODO: udata needs changes to the vcxproj file to fix the output locations for writer/reader.\r
-@set THT=udata\r
-@echo.\r
-@echo ==== %THT% =========================================================================\r
-pushd %ICU_SAMPLESDIR%\udata\%ICU_ARCH%\%ICU_DBRL%\r
-@echo TODO: udata needs changes to the vcxproj file to fix the output locations for writer/reader.\r
-@echo Skipping %THT%\r
-rem %SAMPLE_UDATA_WRITER%\r
-rem %SAMPLE_UDATA_READER%\r
-popd\r
-if ERRORLEVEL 1 goto :SampleError\r
-\r
-@set THT=ufortune\r
-@echo.\r
-@echo ==== %THT% =========================================================================\r
-if "%ICU_ARCH%" == "x64" (\r
-    @echo The ufortune sample currently only runs on x86.\r
-    @echo Skipping %THT%.\r
-) else (\r
-    %SAMPLE_UFORTUNE%\r
-    if ERRORLEVEL 1 goto :SampleError\r
-)\r
-\r
-@set THT=ugrep\r
-@echo.\r
-@echo ==== %THT% =========================================================================\r
-echo Looking for "ICU" in '%ICU_SAMPLESDIR%\ugrep\readme.txt' with ugrep.exe \r
-%SAMPLE_UGREP% ICU %ICU_SAMPLESDIR%\ugrep\readme.txt\r
-if ERRORLEVEL 1 goto :SampleError\r
-\r
-@set THT=uresb\r
-@echo.\r
-@echo ==== %THT% =========================================================================\r
-pushd %ICU_SAMPLESDIR%\uresb\r
-%SAMPLE_URESB% en\r
-%SAMPLE_URESB% root\r
-%SAMPLE_URESB% sr\r
-popd\r
-if ERRORLEVEL 1 goto :SampleError\r
-\r
-@set THT=ustring\r
-@echo.\r
-@echo ==== %THT% =========================================================================\r
-%SAMPLE_USTRING%\r
-if ERRORLEVEL 1 goto :SampleError\r
-\r
-\r
-\r
-rem All done\r
-goto :QuitWithNoError\r
-\r
-:SampleError\r
- echo.\r
- echo ERROR: Sample program %THT% did not exit cleanly. Stopping execution.\r
- echo.\r
- goto :QuitWithError\r
-\r
-:QuitWithNoError\r
- echo.\r
- popd\r
- exit /b 0\r
-\r
-:QuitWithError\r
- echo.\r
- popd\r
- rem Exit with non-zero error code.\r
- exit /b 1\r
+@echo off
+REM Copyright (C) 2016 and later: Unicode, Inc. and others.
+REM License & terms of use: http://www.unicode.org/copyright.html
+REM  ********************************************************************
+
+REM Don't add additional global environment variables, keep the variables local to this script.
+rem setlocal
+
+set ICU_ARCH=%1
+set ICU_DBRL=%2
+
+if "%1" == "" (
+ echo Usage: %0 "x86 or x64"  "Debug or Release"
+ exit /b 1
+)
+
+if "%2" == "" (
+ echo Usage: %0 %1 "Debug or Release"
+ exit /b 1
+)
+
+set ICU_ICUDIR="%~dp0"\..\..\..
+set ICU_SAMPLESDIR=%ICU_ICUDIR%\source\samples
+
+if "%ICU_ARCH%" == "x64" (
+ set ICU_BINDIR=%~dp0..\..\..\bin64
+) else (
+ set ICU_BINDIR=%~dp0..\..\..\bin
+)
+
+if not exist "%ICU_BINDIR%" (
+ echo Error '%ICU_BINDIR%' does not exist!
+ echo Have you built all of ICU yet ?
+ goto :eof
+)
+
+echo Testing ICU samples in %ICU_ICUDIR%  arch=%ICU_ARCH% type=%ICU_DBRL%
+set PATH=%ICU_BINDIR%;%PATH%
+pushd %ICU_BINDIR%
+
+set SAMPLE_BREAK=%ICU_SAMPLESDIR%\break\%ICU_ARCH%\%ICU_DBRL%\break.exe
+set SAMPLE_CAL=%ICU_SAMPLESDIR%\cal\%ICU_ARCH%\%ICU_DBRL%\cal.exe
+set SAMPLE_CASE=%ICU_SAMPLESDIR%\case\%ICU_ARCH%\%ICU_DBRL%\case.exe
+set SAMPLE_CITER=%ICU_SAMPLESDIR%\citer\%ICU_ARCH%\%ICU_DBRL%\citer.exe
+set SAMPLE_COLL=%ICU_SAMPLESDIR%\coll\%ICU_ARCH%\%ICU_DBRL%\coll.exe
+set SAMPLE_CSDET=%ICU_SAMPLESDIR%\csdet\%ICU_ARCH%\%ICU_DBRL%\csdet.exe
+set SAMPLE_DATE=%ICU_SAMPLESDIR%\date\%ICU_ARCH%\%ICU_DBRL%\date.exe
+set SAMPLE_DATEFMT=%ICU_SAMPLESDIR%\datefmt\%ICU_ARCH%\%ICU_DBRL%\datefmt.exe
+set SAMPLE_DTITVFMT=%ICU_SAMPLESDIR%\dtitvfmtsample\%ICU_ARCH%\%ICU_DBRL%\dtitvfmtsample.exe
+set SAMPLE_DTPTNG=%ICU_SAMPLESDIR%\dtptngsample\%ICU_ARCH%\%ICU_DBRL%\dtptngsample.exe
+set SAMPLE_MSGFMT=%ICU_SAMPLESDIR%\msgfmt\%ICU_ARCH%\%ICU_DBRL%\msgfmt.exe
+set SAMPLE_NUMFMT=%ICU_SAMPLESDIR%\numfmt\%ICU_ARCH%\%ICU_DBRL%\numfmt.exe
+set SAMPLE_PLURFMTSAMPLE=%ICU_SAMPLESDIR%\plurfmtsample\%ICU_ARCH%\%ICU_DBRL%\plurfmtsample.exe
+set SAMPLE_PROPS=%ICU_SAMPLESDIR%\props\%ICU_ARCH%\%ICU_DBRL%\props.exe
+set SAMPLE_STRSRCH=%ICU_SAMPLESDIR%\strsrch\%ICU_ARCH%\%ICU_DBRL%\strsrch.exe
+set SAMPLE_TRANSLIT=%ICU_SAMPLESDIR%\translit\%ICU_ARCH%\%ICU_DBRL%\translit.exe
+set SAMPLE_UCITER8=%ICU_SAMPLESDIR%\uciter8\%ICU_ARCH%\%ICU_DBRL%\uciter8.exe
+set SAMPLE_UCNV=%ICU_SAMPLESDIR%\ucnv\%ICU_ARCH%\%ICU_DBRL%\ucnv.exe
+REM udata needs changes to the vcxproj to change the output locations for writer/reader.
+rem set SAMPLE_UDATA_WRITER=%ICU_SAMPLESDIR%\udata\%ICU_ARCH%\%ICU_DBRL%\writer.exe
+rem set SAMPLE_UDATA_READER=%ICU_SAMPLESDIR%\udata\%ICU_ARCH%\%ICU_DBRL%\reader.exe
+set SAMPLE_UFORTUNE=%ICU_SAMPLESDIR%\ufortune\%ICU_ARCH%\%ICU_DBRL%\ufortune.exe
+set SAMPLE_UGREP=%ICU_SAMPLESDIR%\ugrep\%ICU_ARCH%\%ICU_DBRL%\ugrep.exe
+REM There is also the 'resources' project in VS.
+set SAMPLE_URESB=%ICU_SAMPLESDIR%\uresb\%ICU_ARCH%\%ICU_DBRL%\uresb.exe
+set SAMPLE_USTRING=%ICU_SAMPLESDIR%\ustring\%ICU_ARCH%\%ICU_DBRL%\ustring.exe
+
+
+@set THT=break
+@echo.
+@echo ==== %THT% =========================================================================
+%SAMPLE_BREAK%
+if ERRORLEVEL 1 goto :SampleError
+
+@set THT=cal
+@echo.
+@echo ==== %THT% =========================================================================
+%SAMPLE_CAL%
+if ERRORLEVEL 1 goto :SampleError
+
+@set THT=case
+@echo.
+@echo ==== %THT% =========================================================================
+%SAMPLE_CASE%
+if ERRORLEVEL 1 goto :SampleError
+
+@set THT=citer
+@echo.
+@echo ==== %THT% =========================================================================
+%SAMPLE_CITER%
+if ERRORLEVEL 1 goto :SampleError
+
+@set THT=coll
+@echo.
+@echo ==== %THT% =========================================================================
+%SAMPLE_COLL%
+if ERRORLEVEL 1 goto :SampleError
+
+@set THT=csdet
+@echo.
+@echo ==== %THT% =========================================================================
+%SAMPLE_CSDET% %ICU_SAMPLESDIR%\csdet\readme.txt
+if ERRORLEVEL 1 goto :SampleError
+
+@set THT=date
+@echo.
+@echo ==== %THT% =========================================================================
+%SAMPLE_DATE%
+if ERRORLEVEL 1 goto :SampleError
+
+@set THT=datefmt
+@echo.
+@echo ==== %THT% =========================================================================
+%SAMPLE_DATEFMT%
+if ERRORLEVEL 1 goto :SampleError
+
+@set THT=dtitvfmtsample
+@echo.
+@echo ==== %THT% =========================================================================
+%SAMPLE_DTITVFMT%
+if ERRORLEVEL 1 goto :SampleError
+
+@set THT=dtptngsample
+@echo.
+@echo ==== %THT% =========================================================================
+pushd %ICU_SAMPLESDIR%\dtptngsample\%ICU_ARCH%\%ICU_DBRL%
+%SAMPLE_DTPTNG%
+popd
+if ERRORLEVEL 1 goto :SampleError
+
+@set THT=msgfmt
+@echo.
+@echo ==== %THT% =========================================================================
+%SAMPLE_MSGFMT% arg1 arg2
+if ERRORLEVEL 1 goto :SampleError
+
+@set THT=numfmt
+@echo.
+@echo ==== %THT% =========================================================================
+%SAMPLE_NUMFMT%
+if ERRORLEVEL 1 goto :SampleError
+
+@set THT=plurfmtsample
+@echo.
+@echo ==== %THT% =========================================================================
+%SAMPLE_PLURFMTSAMPLE%
+if ERRORLEVEL 1 goto :SampleError
+
+@set THT=props
+@echo.
+@echo ==== %THT% =========================================================================
+%SAMPLE_PROPS%
+if ERRORLEVEL 1 goto :SampleError
+
+@set THT=strsrch
+@echo.
+@echo ==== %THT% =========================================================================
+%SAMPLE_STRSRCH%
+if ERRORLEVEL 1 goto :SampleError
+
+@set THT=translit
+@echo.
+@echo ==== %THT% =========================================================================
+%SAMPLE_TRANSLIT%
+if ERRORLEVEL 1 goto :SampleError
+
+@set THT=citer8
+@echo.
+@echo ==== %THT% =========================================================================
+%SAMPLE_UCITER8%
+if ERRORLEVEL 1 goto :SampleError
+
+@set THT=ucnv
+@echo.
+@echo ==== %THT% =========================================================================
+pushd %ICU_SAMPLESDIR%\ucnv
+%SAMPLE_UCNV%
+popd
+if ERRORLEVEL 1 goto :SampleError
+
+REM TODO: udata needs changes to the vcxproj file to fix the output locations for writer/reader.
+@set THT=udata
+@echo.
+@echo ==== %THT% =========================================================================
+pushd %ICU_SAMPLESDIR%\udata\%ICU_ARCH%\%ICU_DBRL%
+@echo TODO: udata needs changes to the vcxproj file to fix the output locations for writer/reader.
+@echo Skipping %THT%
+rem %SAMPLE_UDATA_WRITER%
+rem %SAMPLE_UDATA_READER%
+popd
+if ERRORLEVEL 1 goto :SampleError
+
+@set THT=ufortune
+@echo.
+@echo ==== %THT% =========================================================================
+if "%ICU_ARCH%" == "x64" (
+    @echo The ufortune sample currently only runs on x86.
+    @echo Skipping %THT%.
+) else (
+    %SAMPLE_UFORTUNE%
+    if ERRORLEVEL 1 goto :SampleError
+)
+
+@set THT=ugrep
+@echo.
+@echo ==== %THT% =========================================================================
+echo Looking for "ICU" in '%ICU_SAMPLESDIR%\ugrep\readme.txt' with ugrep.exe 
+%SAMPLE_UGREP% ICU %ICU_SAMPLESDIR%\ugrep\readme.txt
+if ERRORLEVEL 1 goto :SampleError
+
+@set THT=uresb
+@echo.
+@echo ==== %THT% =========================================================================
+pushd %ICU_SAMPLESDIR%\uresb
+%SAMPLE_URESB% en
+%SAMPLE_URESB% root
+%SAMPLE_URESB% sr
+popd
+if ERRORLEVEL 1 goto :SampleError
+
+@set THT=ustring
+@echo.
+@echo ==== %THT% =========================================================================
+%SAMPLE_USTRING%
+if ERRORLEVEL 1 goto :SampleError
+
+
+
+rem All done
+goto :QuitWithNoError
+
+:SampleError
+ echo.
+ echo ERROR: Sample program %THT% did not exit cleanly. Stopping execution.
+ echo.
+ goto :QuitWithError
+
+:QuitWithNoError
+ echo.
+ popd
+ exit /b 0
+
+:QuitWithError
+ echo.
+ popd
+ rem Exit with non-zero error code.
+ exit /b 1
index 156a341..400fe2c 100644 (file)
@@ -48,8 +48,8 @@ int main(int argc, char **argv)
 /* Protos */
 static void usage(void);
 static void version(void);
-static void date(UDate when, const UChar *tz, UDateFormatStyle style, const char *format, UErrorCode *status);
-static UDate getWhen(const char *millis, const char *seconds, const char *format, UDateFormatStyle style, const char *parse, const UChar *tz, UErrorCode *status);
+static void date(UDate when, const UChar *tz, UDateFormatStyle style, const char *format, const char *locale, UErrorCode *status);
+static UDate getWhen(const char *millis, const char *seconds, const char *format, const char *locale, UDateFormatStyle style, const char *parse, const UChar *tz, UErrorCode *status);
 
 UConverter *cnv = NULL;
 
@@ -74,6 +74,7 @@ main(int argc,
   UDateFormatStyle style = UDAT_DEFAULT;
   UErrorCode status = U_ZERO_ERROR;
   const char *format = NULL;
+  const char *locale = NULL;
   char *parse = NULL;
   char *seconds = NULL;
   char *millis = NULL;
@@ -132,6 +133,12 @@ main(int argc,
          parse = argv[optInd];
       }
     }
+    else if (strcmp(arg, "-L") == 0) {
+      if (optInd + 1 < argc) {
+         optInd++;
+         locale = argv[optInd];
+      }
+    }
     /* POSIX.1 says all arguments after -- are not options */
     else if(strcmp(arg, "--") == 0) {
       /* skip the -- */
@@ -162,13 +169,13 @@ main(int argc,
   }
 
   /* get the 'when' (or now) */
-  when = getWhen(millis, seconds, format, style, parse, tz, &status);
+  when = getWhen(millis, seconds, format, locale, style, parse, tz, &status);
   if(parse != NULL) {
     format = FORMAT_MILLIS; /* output in millis */
   }
 
   /* print the date */
-  date(when, tz, style, format, &status);
+  date(when, tz, style, format, locale, &status);
 
   ucnv_close(cnv);
 
@@ -194,6 +201,7 @@ usage()
   puts("  -r <seconds>      Use <seconds> as the time (Epoch 1970) rather than now.");
   puts("  -R <millis>       Use <millis> as the time (Epoch 1970) rather than now.");
   puts("  -P <string>       Parse <string> as the time, output in millis format.");
+  puts("  -L <string>       Use the locale <string> instead of the default ICU locale.");
 }
 
 /* Version information */
@@ -245,6 +253,7 @@ date(UDate when,
      const UChar *tz,
      UDateFormatStyle style,
      const char *format,
+     const char *locale,
      UErrorCode *status )
 {
   UChar *s = 0;
@@ -264,7 +273,7 @@ date(UDate when,
     }
   }
 
-  fmt = udat_open(style, style, 0, tz, -1,NULL,0, status);
+  fmt = udat_open(style, style, locale, tz, -1,NULL,0, status);
   if ( format != NULL ) {
     charsToUCharsDefault(uFormat,sizeof(uFormat)/sizeof(uFormat[0]),format,-1,status);
     udat_applyPattern(fmt,FALSE,uFormat,-1);
@@ -292,7 +301,7 @@ date(UDate when,
   free(s);
 }
 
-static UDate getWhen(const char *millis, const char *seconds, const char *format, 
+static UDate getWhen(const char *millis, const char *seconds, const char *format, const char *locale,
                      UDateFormatStyle style, const char *parse, const UChar *tz, UErrorCode *status) {
   UDateFormat *fmt = NULL; 
   UChar uFormat[100];
@@ -319,7 +328,7 @@ static UDate getWhen(const char *millis, const char *seconds, const char *format
       }
     }
 
-    fmt = udat_open(style, style, 0, tz, -1,NULL,0, status);
+    fmt = udat_open(style, style, locale, tz, -1,NULL,0, status);
     if ( format != NULL ) {
       charsToUCharsDefault(uFormat,sizeof(uFormat)/sizeof(uFormat[0]), format,-1,status);
       udat_applyPattern(fmt,FALSE,uFormat,-1);
index aff344d..9af0c4c 100644 (file)
@@ -2,7 +2,8 @@
 <Project DefaultTargets="Build" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
   <!-- The following import will include the 'default' configuration options for VS projects. -->
   <Import Project="..\allinone\Build.Windows.ProjectConfiguration.props" />
-
+  <!-- The following import will include the library configuration options for VS projects. -->
+  <Import Project="..\allinone\Build.Windows.Library.ProjectConfiguration.props" />
   <PropertyGroup Label="Globals">
     <ProjectGuid>{203EC78A-0531-43F0-A636-285439BDE025}</ProjectGuid>
   </PropertyGroup>
@@ -97,7 +98,7 @@
       <ProgramDataBaseFileName>.\x86\Release/</ProgramDataBaseFileName>
     </ClCompile>
     <Link>
-      <OutputFile>..\..\bin\icudt62.dll</OutputFile>
+      <OutputFile>..\..\bin\icudt63.dll</OutputFile>
       <IgnoreAllDefaultLibraries>true</IgnoreAllDefaultLibraries>
       <ProgramDatabaseFile>.\x86\Release\icudt.pdb</ProgramDatabaseFile>
       <DataExecutionPrevention>
       <ProgramDataBaseFileName>.\x86\Debug/</ProgramDataBaseFileName>
     </ClCompile>
     <Link>
-      <OutputFile>..\..\bin\icudt62.dll</OutputFile>
+      <OutputFile>..\..\bin\icudt63.dll</OutputFile>
       <ProgramDatabaseFile>.\x86\Debug/icudt.pdb</ProgramDatabaseFile>
       <DataExecutionPrevention>
       </DataExecutionPrevention>
       <ProgramDataBaseFileName>.\x64\Release/</ProgramDataBaseFileName>
     </ClCompile>
     <Link>
-      <OutputFile>..\..\bin64\icudt62.dll</OutputFile>
+      <OutputFile>..\..\bin64\icudt63.dll</OutputFile>
       <IgnoreAllDefaultLibraries>true</IgnoreAllDefaultLibraries>
       <ProgramDatabaseFile>.\x64\Release\icudt.pdb</ProgramDatabaseFile>
       <ImportLibrary>..\..\lib64\icudt.lib</ImportLibrary>
       <ProgramDataBaseFileName>.\x64\Debug/</ProgramDataBaseFileName>
     </ClCompile>
     <Link>
-      <OutputFile>..\..\bin64\icudt62.dll</OutputFile>
+      <OutputFile>..\..\bin64\icudt63.dll</OutputFile>
       <ProgramDatabaseFile>.\x64\Debug/icudt.pdb</ProgramDatabaseFile>
       <ImportLibrary>..\..\lib64\icudt.lib</ImportLibrary>
     </Link>
index 7ce9277..7bb5b22 100644 (file)
@@ -88,7 +88,7 @@ xcheck-recursive check-recursive check-exhaustive-recursive:
        @$(MKINSTALLDIRS) $(STATUS_TMP)
        @mystatus=$(STATUS_FULL)/status.$$$$.deleteme ; \
        $(RMV) "$$mystatus".* ; \
-       @goods=; \
+       goods=; \
        bads=; \
        target=`echo $@ | sed s/-recursive//`; \
        list='$(SUBDIRS)'; for subdir in $$list; do \
@@ -137,8 +137,8 @@ $(STATUS_FULL)/status.$(STATUS_NUM).deleteme.%: pcheck_setup
 
 # print out status
 pcheck: $(STATUS_FILES)
-       @goods= ; \
-       bads= ; \
+       @goods=; \
+       bads=; \
        echo "----------------------------------------"; \
        for subdir in $(SUBDIRS); do \
          if [ -s "$(MYSTATUS_R).$$subdir" ]; then \
index e7bf69e..208fb78 100644 (file)
@@ -48,7 +48,7 @@ cnmdptst.o cnormtst.o cnumtst.o crelativedateformattest.o crestst.o creststn.o c
 cucdapi.o cucdtst.o custrtst.o cstrcase.o cutiltst.o nucnvtst.o nccbtst.o bocu1tst.o \
 cbiditst.o cbididat.o eurocreg.o udatatst.o utf16tst.o utransts.o \
 ncnvfbts.o ncnvtst.o putiltst.o cstrtest.o udatpg_test.o utf8tst.o \
-stdnmtst.o usrchtst.o custrtrn.o sorttest.o trietest.o trie2test.o usettest.o \
+stdnmtst.o usrchtst.o custrtrn.o sorttest.o trietest.o trie2test.o ucptrietest.o usettest.o \
 uenumtst.o utmstest.o currtest.o \
 idnatest.o nfsprep.o spreptst.o sprpdata.o \
 hpmufn.o tracetst.o reapits.o uregiontest.o ulistfmttest.o\
index 191f065..1c307d3 100644 (file)
@@ -93,6 +93,8 @@ static void TestFCDCrash(void);
 
 static void TestJ5298(void);
 
+static void TestBadKey(void);
+
 const UCollationResult results[] = {
     UCOL_LESS,
     UCOL_LESS, /*UCOL_GREATER,*/
@@ -210,6 +212,7 @@ void addAllCollTest(TestNode** root)
     addTest(root, &TestJitterbug1098, "tscoll/callcoll/TestJitterbug1098");
     addTest(root, &TestFCDCrash, "tscoll/callcoll/TestFCDCrash");
     addTest(root, &TestJ5298, "tscoll/callcoll/TestJ5298");
+    addTest(root, &TestBadKey, "tscoll/callcoll/TestBadKey");
 }
 
 UBool hasCollationElements(const char *locName) {
@@ -413,7 +416,7 @@ static void doTestVariant(UCollator* myCollation, const UChar source[], const UC
     ucol_getSortKey(myCollation, target, -1,   sortKey2a, sortklen2+1);
 
     /* Check that sort key generated with null terminated string is identical  */
-    /*  to that generted with a length specified.                              */
+    /*  to that generated with a length specified.                              */
     if (uprv_strcmp((const char *)sortKey1, (const char *)sortKey1a) != 0 ||
         uprv_strcmp((const char *)sortKey2, (const char *)sortKey2a) != 0 ) {
         log_err("Sort Keys from null terminated and explicit length strings differ.\n");
@@ -421,8 +424,8 @@ static void doTestVariant(UCollator* myCollation, const UChar source[], const UC
 
     /*memcmp(sortKey1, sortKey2,sortklenmax);*/
     temp= uprv_strcmp((const char *)sortKey1, (const char *)sortKey2);
-    gSortklen1 = uprv_strlen((const char *)sortKey1)+1;
-    gSortklen2 = uprv_strlen((const char *)sortKey2)+1;
+    gSortklen1 = (int)uprv_strlen((const char *)sortKey1)+1;
+    gSortklen2 = (int)uprv_strlen((const char *)sortKey2)+1;
     if(sortklen1 != gSortklen1){
         log_err("SortKey length does not match Expected: %i Got: %i\n",sortklen1, gSortklen1);
         log_verbose("Generated sortkey: %s\n", sortKeyToString(myCollation, sortKey1, buffer, &len));
@@ -742,7 +745,7 @@ static void TestTertiary()
     UErrorCode status=U_ZERO_ERROR;
     static const char str[]="& C < ch, cH, Ch, CH & Five, 5 & Four, 4 & one, 1 & Ampersand; '&' & Two, 2 ";
     UChar rules[sizeof(str)];
-    len = strlen(str);
+    len = (int32_t)strlen(str);
     u_uastrcpy(rules, str);
 
     myCollation=ucol_openRules(rules, len, UCOL_OFF, UCOL_DEFAULT_STRENGTH, NULL, &status);
@@ -767,7 +770,7 @@ static void TestPrimary( )
     UErrorCode status=U_ZERO_ERROR;
     static const char str[]="& C < ch, cH, Ch, CH & Five, 5 & Four, 4 & one, 1 & Ampersand; '&' & Two, 2 ";   
     UChar rules[sizeof(str)];
-    len = strlen(str);
+    len = (int32_t)strlen(str);
     u_uastrcpy(rules, str);
 
     myCollation=ucol_openRules(rules, len, UCOL_OFF, UCOL_DEFAULT_STRENGTH,NULL, &status);
@@ -794,7 +797,7 @@ static void TestSecondary()
     UErrorCode status=U_ZERO_ERROR;
     static const char str[]="& C < ch, cH, Ch, CH & Five, 5 & Four, 4 & one, 1 & Ampersand; '&' & Two, 2 ";
     UChar rules[sizeof(str)];
-    len = strlen(str);
+    len = (int32_t)strlen(str);
     u_uastrcpy(rules, str);
 
     myCollation=ucol_openRules(rules, len, UCOL_OFF, UCOL_DEFAULT_STRENGTH,NULL, &status);
@@ -819,7 +822,7 @@ static void TestIdentical()
     UErrorCode status=U_ZERO_ERROR;
     static const char str[]="& C < ch, cH, Ch, CH & Five, 5 & Four, 4 & one, 1 & Ampersand; '&' & Two, 2 ";
     UChar rules[sizeof(str)];
-    len = strlen(str);
+    len = (int32_t)strlen(str);
     u_uastrcpy(rules, str);
 
     myCollation=ucol_openRules(rules, len, UCOL_OFF, UCOL_IDENTICAL, NULL,&status);
@@ -843,7 +846,7 @@ static void TestExtra()
     UErrorCode status = U_ZERO_ERROR;
     static const char str[]="& C < ch, cH, Ch, CH & Five, 5 & Four, 4 & one, 1 & Ampersand; '&' & Two, 2 ";
     UChar rules[sizeof(str)];
-    len = strlen(str);
+    len = (int32_t)strlen(str);
     u_uastrcpy(rules, str);
 
     myCollation=ucol_openRules(rules, len, UCOL_OFF, UCOL_DEFAULT_STRENGTH,NULL, &status);
@@ -1099,7 +1102,7 @@ static void TestSurrogates(void)
 {
     static const char       str[]          = 
                               "&z<'\\uD800\\uDC00'<'\\uD800\\uDC0A\\u0308'<A";
-          int         len          = strlen(str);
+          int         len          = (int)strlen(str);
           int         rlen         = 0;
           UChar      rules[sizeof(str)];
           UCollator  *myCollation;
@@ -1343,4 +1346,36 @@ static void TestJ5298(void)
     uenum_close(values);
     log_verbose("\n");
 }
+
+static const char* badKeyLocales[] = {
+       "@calendar=japanese;collation=search", // ucol_open OK
+       "@calendar=japanese", // ucol_open OK
+       "en@calendar=x", // ucol_open OK
+       "ja@calendar=x", // ucol_open OK
+       "en@collation=x", // ucol_open OK
+       "ja@collation=x", // ucol_open OK
+       "ja@collation=private-kana", // ucol_open fails, verify it does not crash
+       "en@collation=\x80", // (x80 undef in ASCII,EBCDIC) ucol_open fails, verify it does not crash
+       NULL
+};
+
+// Mainly this is to check that we don't have a crash, but we check
+// for correct NULL return and FAILURE/SUCCESS status as a bonus.
+static void TestBadKey(void)
+{
+    const char* badLoc;
+    const char** badLocsPtr = badKeyLocales;
+    while ((badLoc = *badLocsPtr++) != NULL) {
+        UErrorCode status = U_ZERO_ERROR;
+        UCollator* uc = ucol_open(badLoc, &status);
+        if ( U_SUCCESS(status) ) {
+            if (uc == NULL) {
+                log_err("ucol_open sets SUCCESS but returns NULL, locale: %s\n", badLoc);
+            }
+            ucol_close(uc);
+        } else if (uc != NULL) {
+            log_err("ucol_open sets FAILURE but returns non-NULL, locale: %s\n", badLoc);
+        }
+    }
+}
 #endif /* #if !UCONFIG_NO_COLLATION */
index fa78413..92e6c1a 100644 (file)
@@ -784,15 +784,18 @@ static const int32_t heTestOffs_heFwd[] = {  1,  5,  7,  9, 12, 14,     19,
 /*static const int32_t heTestOffs_enRev[] = { 22, 19, 17, 14, 12,  9,  7,  5,  1,  0 };*/
 static const int32_t heTestOffs_heRev[] = {     19,     14, 12,  9,  7,  5,  1,  0 };
 
-/* Finnish line break tailoring, for cldrbug 3029 */
+/* Finnish line break tailoring, for cldrbug 3029.
+ * As of ICU 63, Finnish tailoring moved to root, Finnish and English should be the same. */
 static const UChar fiTest[] = { /* 00 */ 0x0020, 0x002D, 0x0031, 0x0032, 0x0020,
                                 /* 05 */ 0x0061, 0x002D, 0x006B, 0x0020,
                                 /* 09 */ 0x0061, 0x0300, 0x2010, 0x006B, 0x0020,
                                 /* 14 */ 0x0061, 0x0020, 0x002D, 0x006B, 0x0020,
                                 /* 19 */ 0x0061, 0x0300, 0x0020, 0x2010, 0x006B, 0x0020, 0 };
-static const int32_t fiTestOffs_enFwd[] =  {  1,  5,  7,  9, 12, 14, 16, 17, 19, 22, 23, 25 };
+//static const int32_t fiTestOffs_enFwd[] =  {  1,  5,  7,  9, 12, 14, 16, 17, 19, 22, 23, 25 };
+static const int32_t fiTestOffs_enFwd[] =  {  1,  5,  7,  9, 12, 14, 16,     19, 22,     25 };
 static const int32_t fiTestOffs_fiFwd[] =  {  1,  5,  7,  9, 12, 14, 16,     19, 22,     25 };
-static const int32_t fiTestOffs_enRev[] =  { 23, 22, 19, 17, 16, 14, 12,  9,  7,  5,  1,  0 };
+//static const int32_t fiTestOffs_enRev[] =  { 23, 22, 19, 17, 16, 14, 12,  9,  7,  5,  1,  0 };
+static const int32_t fiTestOffs_enRev[] =  {     22, 19,     16, 14, 12,  9,  7,  5,  1,  0 };
 static const int32_t fiTestOffs_fiRev[] =  {     22, 19,     16, 14, 12,  9,  7,  5,  1,  0 };
 
 /* Khmer dictionary-based work break, for ICU ticket #8329 */
index 143e917..6388eb8 100644 (file)
     <ClCompile Include="sorttest.c" />
     <ClCompile Include="trie2test.c" />
     <ClCompile Include="trietest.c" />
+    <ClCompile Include="ucptrietest.c" />
     <ClCompile Include="uenumtst.c" />
     <ClCompile Include="bocu1tst.c" />
     <ClCompile Include="ccapitst.c" />
   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
   <ImportGroup Label="ExtensionTargets">
   </ImportGroup>
-</Project>
\ No newline at end of file
+</Project>
index be69d72..ff185c6 100644 (file)
     <ClCompile Include="trietest.c">
       <Filter>collections</Filter>
     </ClCompile>
+    <ClCompile Include="ucptrietest.c">
+      <Filter>collections</Filter>
+    </ClCompile>
     <ClCompile Include="uenumtst.c">
       <Filter>collections</Filter>
     </ClCompile>
       <Filter>sprep &amp; idna</Filter>
     </ClInclude>
   </ItemGroup>
-</Project>
\ No newline at end of file
+</Project>
index 68f339c..a544de9 100644 (file)
@@ -484,7 +484,7 @@ testLCID(UResourceBundle *currentBundle,
             log_verbose("WARNING: %-5s resolves to %s (0x%.4x)\n",
                 localeName, lcidStringC, expectedLCID);
         }
-        else {
+        else if (!(strcmp(localeName, "ku") == 0 && log_knownIssue("20181", "ICU-20181 Fix LCID mapping for ckb vs ku"))) {
             log_err("ERROR:   %-5s has 0x%.4x and the number resolves wrongfully to %s\n",
                 localeName, expectedLCID, lcidStringC);
         }
index 0c9ce42..63e7269 100644 (file)
@@ -226,6 +226,7 @@ void addLocaleTest(TestNode** root)
     TESTCASE(TestKeywordVariants);
     TESTCASE(TestKeywordVariantParsing);
     TESTCASE(TestCanonicalization);
+    TESTCASE(TestCanonicalizationBuffer);
     TESTCASE(TestKeywordSet);
     TESTCASE(TestKeywordSetError);
     TESTCASE(TestDisplayKeywords);
@@ -251,6 +252,8 @@ void addLocaleTest(TestNode** root)
     TESTCASE(TestLikelySubtags);
     TESTCASE(TestToLanguageTag);
     TESTCASE(TestForLanguageTag);
+    TESTCASE(TestInvalidLanguageTag);
+    TESTCASE(TestLangAndRegionCanonicalize);
     TESTCASE(TestTrailingNull);
     TESTCASE(TestUnicodeDefines);
     TESTCASE(TestEnglishExemplarCharacters);
@@ -2250,6 +2253,42 @@ static void TestCanonicalization(void)
     }
 }
 
+static void TestCanonicalizationBuffer(void)
+{
+    UErrorCode status = U_ZERO_ERROR;
+    char buffer[256];
+
+    // ULOC_FULLNAME_CAPACITY == 157 (uloc.h)
+    static const char name[] =
+        "zh@x"
+        "=foo-bar-baz-foo-bar-baz-foo-bar-baz-foo-bar-baz"
+        "-foo-bar-baz-foo-bar-baz-foo-bar-baz-foo-bar-baz"
+        "-foo-bar-baz-foo-bar-baz-foo-bar-baz-foo-bar-baz"
+        "-foo-barz"
+    ;
+    static const size_t len = sizeof name - 1;  // Without NUL terminator.
+
+    int32_t reslen = uloc_canonicalize(name, buffer, len, &status);
+
+    if (U_FAILURE(status)) {
+        log_err("FAIL: uloc_canonicalize(%s) => %s, expected !U_FAILURE()\n",
+                name, u_errorName(status));
+        return;
+    }
+
+    if (reslen != len) {
+        log_err("FAIL: uloc_canonicalize(%s) => \"%i\", expected \"%u\"\n",
+                name, reslen, len);
+        return;
+    }
+
+    if (uprv_strncmp(name, buffer, len) != 0) {
+        log_err("FAIL: uloc_canonicalize(%s) => \"%.*s\", expected \"%s\"\n",
+                name, reslen, buffer, name);
+        return;
+    }
+}
+
 static void TestDisplayKeywords(void)
 {
     int32_t i;
@@ -5998,6 +6037,7 @@ static const struct {
     {"art-lojban",          "jbo",                  FULL_LENGTH},
     {"zh-hakka",            "hak",                  FULL_LENGTH},
     {"zh-cmn-CH",           "cmn_CH",               FULL_LENGTH},
+    {"zh-cmn-CH-u-co-pinyin", "cmn_CH@collation=pinyin", FULL_LENGTH},
     {"xxx-yy",              "xxx_YY",               FULL_LENGTH},
     {"fr-234",              "fr_234",               FULL_LENGTH},
     {"i-default",           "en@x=i-default",       FULL_LENGTH},
@@ -6030,6 +6070,9 @@ static const struct {
     {"ja-u-ijkl-efgh-abcd-ca-japanese-xx-yyy-zzz-kn",   "ja@attribute=abcd-efgh-ijkl;calendar=japanese;colnumeric=yes;xx=yyy-zzz",  FULL_LENGTH},
     {"de-u-xc-xphonebk-co-phonebk-ca-buddhist-mo-very-lo-extensi-xd-that-de-should-vc-probably-xz-killthebuffer",
      "de@calendar=buddhist;collation=phonebook;de=should;lo=extensi;mo=very;vc=probably;xc=xphonebk;xd=that;xz=yes", 91},
+    {"de-1901-1901", "de__1901", 7},
+    {"de-DE-1901-1901", "de_DE_1901", 10},
+    {"en-a-bbb-a-ccc", "en@a=bbb", 8},
     /* #12761 */
     {"en-a-bar-u-baz",      "en@a=bar;attribute=baz",   FULL_LENGTH},
     {"en-a-bar-u-baz-x-u-foo",  "en@a=bar;attribute=baz;x=u-foo",   FULL_LENGTH},
@@ -6042,7 +6085,25 @@ static const struct {
     {"und-Latn-DE-u-em-emoji", "_Latn_DE@em=emoji", FULL_LENGTH},
     {"und-Zzzz-DE-u-em-emoji", "_Zzzz_DE@em=emoji", FULL_LENGTH},
     {"und-DE-u-em-emoji", "_DE@em=emoji", FULL_LENGTH},
-    {NULL,          NULL,           0}
+    // #20098
+    {"hant-cmn-cn", "hant", 4},
+    {"zh-cmn-TW", "cmn_TW", FULL_LENGTH},
+    {"zh-x_t-ab", "zh", 2},
+    {"zh-hans-cn-u-ca-x_t-u", "zh_Hans_CN@calendar=yes",  15},
+    /* #20140 dupe keys in U-extension */
+    {"zh-u-ca-chinese-ca-gregory", "zh@calendar=chinese", FULL_LENGTH},
+    {"zh-u-ca-gregory-co-pinyin-ca-chinese", "zh@calendar=gregorian;collation=pinyin", FULL_LENGTH},
+    {"de-latn-DE-1901-u-co-phonebk-co-pinyin-ca-gregory", "de_Latn_DE_1901@calendar=gregorian;collation=phonebook", FULL_LENGTH},
+    {"th-u-kf-nu-thai-kf-false", "th@colcasefirst=yes;numbers=thai", FULL_LENGTH},
+    /* #9562 IANA language tag data update */
+    {"en-gb-oed", "en_GB_OXENDICT", FULL_LENGTH},
+    {"i-navajo", "nv", FULL_LENGTH},
+    {"i-navajo-a-foo", "", 0},
+    {"i-navajo-latn-us", "", 0},
+    {"sgn-br", "bzs", FULL_LENGTH},
+    {"sgn-br-u-co-phonebk", "bzs@collation=phonebook", FULL_LENGTH},
+    {"ja-latn-hepburn-heploc", "ja_Latn__ALALC97", FULL_LENGTH},
+    {"ja-latn-hepburn-heploc-u-ca-japanese", "ja_Latn__ALALC97@calendar=japanese", FULL_LENGTH},
 };
 
 static void TestForLanguageTag(void) {
@@ -6052,7 +6113,7 @@ static void TestForLanguageTag(void) {
     int32_t parsedLen;
     int32_t expParsedLen;
 
-    for (i = 0; langtag_to_locale[i].bcpID != NULL; i++) {
+    for (i = 0; i < UPRV_LENGTHOF(langtag_to_locale); i++) {
         status = U_ZERO_ERROR;
         locale[0] = 0;
         expParsedLen = langtag_to_locale[i].len;
@@ -6076,6 +6137,72 @@ static void TestForLanguageTag(void) {
     }
 }
 
+/* See https://unicode-org.atlassian.net/browse/ICU-20149 .
+ * Depending on the resolution of that bug, this test may have
+ * to be revised.
+ */
+static void TestInvalidLanguageTag(void) {
+    static const char* invalid_lang_tags[] = {
+        "zh-u-foo-foo-co-pinyin", /* duplicate attribute in U extension */
+        "zh-cmn-hans-u-foo-foo-co-pinyin", /* duplicate attribute in U extension */
+#if 0
+        /*
+         * These do not lead to an error. Instead, parsing stops at the 1st
+         * invalid subtag.
+         */
+        "de-DE-1901-1901", /* duplicate variant */
+        "en-a-bbb-a-ccc", /* duplicate extension */
+#endif
+        NULL
+    };
+    char locale[256];
+    for (const char** tag = invalid_lang_tags; *tag != NULL; tag++) {
+        UErrorCode status = U_ZERO_ERROR;
+        uloc_forLanguageTag(*tag, locale, sizeof(locale), NULL, &status);
+        if (status != U_ILLEGAL_ARGUMENT_ERROR) {
+            log_err("Error returned by uloc_forLanguageTag for input language tag [%s] : %s - expected error:  %s\n",
+                    *tag, u_errorName(status), u_errorName(U_ILLEGAL_ARGUMENT_ERROR));
+        }
+    }
+}
+
+static const struct {
+    const char  *input;
+    const char  *canonical;
+} langtag_to_canonical[] = {
+    {"de-DD", "de-DE"},
+    {"de-DD-u-co-phonebk", "de-DE-u-co-phonebk"},
+    {"jw-id", "jv-ID"},
+    {"jw-id-u-ca-islamic-civil", "jv-ID-u-ca-islamic-civil"},
+    {"mo-md", "ro-MD"},
+    {"my-bu-u-nu-mymr", "my-MM-u-nu-mymr"},
+    {"yuu-ru", "yug-RU"},
+};
+
+
+static void TestLangAndRegionCanonicalize(void) {
+    char locale[256];
+    char canonical[256];
+    int32_t i;
+    UErrorCode status;
+    for (i = 0; i < UPRV_LENGTHOF(langtag_to_canonical); i++) {
+        status = U_ZERO_ERROR;
+        const char* input = langtag_to_canonical[i].input;
+        uloc_forLanguageTag(input, locale, sizeof(locale), NULL, &status);
+        uloc_toLanguageTag(locale, canonical, sizeof(canonical), TRUE, &status);
+        if (U_FAILURE(status)) {
+            log_err_status(status, "Error returned by uloc_forLanguageTag or uloc_toLanguageTag "
+                           "for language tag [%s] - error: %s\n", input, u_errorName(status));
+        } else {
+            const char* expected_canonical = langtag_to_canonical[i].canonical;
+            if (uprv_strcmp(expected_canonical, canonical) != 0) {
+                log_data_err("input language tag [%s] is canonicalized to [%s] - expected: [%s]\n",
+                    input, canonical, expected_canonical);
+            }
+        }
+    }
+}
+
 static void TestToUnicodeLocaleKey(void)
 {
     /* $IN specifies the result should be the input pointer itself */
index b757328..411ff5c 100644 (file)
@@ -84,6 +84,7 @@ static  void TestDisplayNames(void);
  static void doTestDisplayNames(const char* inLocale, int32_t compareIndex);
 
  static void TestCanonicalization(void);
+ static void TestCanonicalizationBuffer(void);
 
  static void TestDisplayKeywords(void);
 
@@ -123,7 +124,9 @@ static void TestLikelySubtags(void);
  * lanuage tag
  */
 static void TestForLanguageTag(void);
+static void TestInvalidLanguageTag(void);
 static void TestToLanguageTag(void);
+static void TestLangAndRegionCanonicalize(void);
 
 static void TestToUnicodeLocaleKey(void);
 static void TestToLegacyKey(void);
index 55e701c..85ffd63 100644 (file)
@@ -475,7 +475,7 @@ static void TestCurrencyPreEuro(void)
     const char* result[]={
         "\\u20A7\\u00A02", "2\\u00A0F",            "IEP\\u00A01.50",                      "1,50\\u00A0mk",   "2\\u00A0F",         "ITL\\u00A02",
         "1$50\\u00A0\\u200B", "\\u00F6S\\u00A01,50",  "1,50\\u00A0\\u0394\\u03C1\\u03C7", "2\\u00A0\\u20A7", "1,50\\u00A0FB",     "IEP\\u00A01.50",
-        "1,50\\u00A0BEF",   "1,50\\u00A0DM",        "1,50\\u00A0BEF",                    "\\u20A7\\u00A02", "1,50\\u00A0F",      "2\\u00A0\\u20A7",
+        "BEF\\u00A01,50",   "1,50\\u00A0DM",        "1,50\\u00A0BEF",                    "\\u20A7\\u00A02", "1,50\\u00A0F",      "2\\u00A0\\u20A7",
         "NLG\\u00A01,50"
     };
 
@@ -546,8 +546,8 @@ static void TestCurrencyObject(void)
     };
 
     const char* result[]={
-        "1\\u00A0234,56\\u00A0\\u20AC",
-        "1\\u00A0235\\u00A0JPY",
+        "1\\u202F234,56\\u00A0\\u20AC",
+        "1\\u202F235\\u00A0JPY",
     };
 
     log_verbose("\nTesting the number format with different currency codes\n");
index 4e18cfa..059bd72 100644 (file)
@@ -61,6 +61,8 @@ static void TestPropertyNames(void);
 static void TestPropertyValues(void);
 static void TestConsistency(void);
 static void TestCaseFolding(void);
+static void TestBinaryCharacterPropertiesAPI(void);
+static void TestIntCharacterPropertiesAPI(void);
 
 /* internal methods used */
 static int32_t MakeProp(char* str);
@@ -196,6 +198,10 @@ void addUnicodeTest(TestNode** root)
     addTest(root, &TestPropertyValues, "tsutil/cucdtst/TestPropertyValues");
     addTest(root, &TestConsistency, "tsutil/cucdtst/TestConsistency");
     addTest(root, &TestCaseFolding, "tsutil/cucdtst/TestCaseFolding");
+    addTest(root, &TestBinaryCharacterPropertiesAPI,
+            "tsutil/cucdtst/TestBinaryCharacterPropertiesAPI");
+    addTest(root, &TestIntCharacterPropertiesAPI,
+            "tsutil/cucdtst/TestIntCharacterPropertiesAPI");
 }
 
 /*==================================================== */
@@ -3522,3 +3528,41 @@ TestCaseFolding() {
 
     uset_close(data.notSeen);
 }
+
+static void TestBinaryCharacterPropertiesAPI() {
+    // API test only. See intltest/ucdtest.cpp for functional test.
+    UErrorCode errorCode = U_ZERO_ERROR;
+    const USet *set = u_getBinaryPropertySet(-1, &errorCode);
+    if (U_SUCCESS(errorCode)) {
+        log_err("u_getBinaryPropertySet(-1) did not fail\n");
+    }
+    errorCode = U_ZERO_ERROR;
+    set = u_getBinaryPropertySet(UCHAR_BINARY_LIMIT, &errorCode);
+    if (U_SUCCESS(errorCode)) {
+        log_err("u_getBinaryPropertySet(UCHAR_BINARY_LIMIT) did not fail\n");
+    }
+    errorCode = U_ZERO_ERROR;
+    set = u_getBinaryPropertySet(UCHAR_WHITE_SPACE, &errorCode);
+    if (!uset_contains(set, 0x20) || uset_contains(set, 0x61)) {
+        log_err("u_getBinaryPropertySet(UCHAR_WHITE_SPACE) wrong contents\n");
+    }
+}
+
+static void TestIntCharacterPropertiesAPI() {
+    // API test only. See intltest/ucdtest.cpp for functional test.
+    UErrorCode errorCode = U_ZERO_ERROR;
+    const UCPMap *map = u_getIntPropertyMap(UCHAR_INT_START - 1, &errorCode);
+    if (U_SUCCESS(errorCode)) {
+        log_err("u_getIntPropertyMap(UCHAR_INT_START - 1) did not fail\n");
+    }
+    errorCode = U_ZERO_ERROR;
+    map = u_getIntPropertyMap(UCHAR_INT_LIMIT, &errorCode);
+    if (U_SUCCESS(errorCode)) {
+        log_err("u_getIntPropertyMap(UCHAR_INT_LIMIT) did not fail\n");
+    }
+    errorCode = U_ZERO_ERROR;
+    map = u_getIntPropertyMap(UCHAR_GENERAL_CATEGORY, &errorCode);
+    if (ucpmap_get(map, 0x20) != U_SPACE_SEPARATOR || ucpmap_get(map, 0x23456) != U_OTHER_LETTER) {
+        log_err("u_getIntPropertyMap(UCHAR_GENERAL_CATEGORY) wrong contents\n");
+    }
+}
index aa52970..5f43c48 100644 (file)
@@ -27,6 +27,7 @@ void addHashtableTest(TestNode** root);
 void addCStringTest(TestNode** root);
 void addTrieTest(TestNode** root);
 void addTrie2Test(TestNode** root);
+void addUCPTrieTest(TestNode** root);
 void addEnumerationTest(TestNode** root);
 void addPosixTest(TestNode** root);
 void addSortTest(TestNode** root);
@@ -38,6 +39,7 @@ void addUtility(TestNode** root)
     addCStringTest(root);
     addTrieTest(root);
     addTrie2Test(root);
+    addUCPTrieTest(root);
     addLocaleTest(root);
     addCLDRTest(root);
     addUnicodeTest(root);
index 9444159..aa7e7c6 100644 (file)
@@ -421,7 +421,7 @@ testTrieUTF8(const char *testName,
         prevCP=c;
         --c;                                    /* end of the range */
         U8_APPEND_UNSAFE(s, length, c);
-        if(U_IS_SURROGATE(prevCP)) {
+        if(U_IS_SURROGATE(c)) {
             // A surrogate byte sequence counts as 3 single-byte errors.
             values[countValues++]=errorValue;
             values[countValues++]=errorValue;
@@ -1287,31 +1287,6 @@ GrowDataArrayTest(void) {
 
 /* versions 1 and 2 --------------------------------------------------------- */
 
-static void
-GetVersionTest(void) {
-    uint32_t data[4];
-    if( /* version 1 */
-        (data[0]=0x54726965, 1!=utrie2_getVersion(data, sizeof(data), FALSE)) ||
-        (data[0]=0x54726965, 1!=utrie2_getVersion(data, sizeof(data), TRUE)) ||
-        (data[0]=0x65697254, 0!=utrie2_getVersion(data, sizeof(data), FALSE)) ||
-        (data[0]=0x65697254, 1!=utrie2_getVersion(data, sizeof(data), TRUE)) ||
-        /* version 2 */
-        (data[0]=0x54726932, 2!=utrie2_getVersion(data, sizeof(data), FALSE)) ||
-        (data[0]=0x54726932, 2!=utrie2_getVersion(data, sizeof(data), TRUE)) ||
-        (data[0]=0x32697254, 0!=utrie2_getVersion(data, sizeof(data), FALSE)) ||
-        (data[0]=0x32697254, 2!=utrie2_getVersion(data, sizeof(data), TRUE)) ||
-        /* illegal arguments */
-        (data[0]=0x54726932, 0!=utrie2_getVersion(NULL, sizeof(data), FALSE)) ||
-        (data[0]=0x54726932, 0!=utrie2_getVersion(data, 3, FALSE)) ||
-        (data[0]=0x54726932, 0!=utrie2_getVersion((char *)data+1, sizeof(data), FALSE)) ||
-        /* unknown signature values */
-        (data[0]=0x11223344, 0!=utrie2_getVersion(data, sizeof(data), FALSE)) ||
-        (data[0]=0x54726933, 0!=utrie2_getVersion(data, sizeof(data), FALSE))
-    ) {
-        log_err("error: utrie2_getVersion() is not working as expected\n");
-    }
-}
-
 static UNewTrie *
 makeNewTrie1WithRanges(const char *testName,
                        const SetRange setRanges[], int32_t countSetRanges,
@@ -1455,6 +1430,5 @@ addTrie2Test(TestNode** root) {
     addTest(root, &DummyTrieTest, "tsutil/trie2test/DummyTrieTest");
     addTest(root, &FreeBlocksTest, "tsutil/trie2test/FreeBlocksTest");
     addTest(root, &GrowDataArrayTest, "tsutil/trie2test/GrowDataArrayTest");
-    addTest(root, &GetVersionTest, "tsutil/trie2test/GetVersionTest");
     addTest(root, &Trie12ConversionTest, "tsutil/trie2test/Trie12ConversionTest");
 }
diff --git a/source/test/cintltst/ucptrietest.c b/source/test/cintltst/ucptrietest.c
new file mode 100644 (file)
index 0000000..299ef90
--- /dev/null
@@ -0,0 +1,1577 @@
+// © 2017 and later: Unicode, Inc. and others.
+// License & terms of use: http://www.unicode.org/copyright.html
+
+// ucptrietest.c (modified from trie2test.c)
+// created: 2017dec29 Markus W. Scherer
+
+#include <stdio.h>
+#include "unicode/utypes.h"
+#include "unicode/ucptrie.h"
+#include "unicode/umutablecptrie.h"
+#include "unicode/utf.h"
+#include "unicode/utf16.h"
+#include "unicode/utf8.h"
+#include "uassert.h"
+#include "ucptrie_impl.h"
+#include "utrie.h"
+#include "cstring.h"
+#include "cmemory.h"
+#include "udataswp.h"
+#include "cintltst.h"
+
+void addUCPTrieTest(TestNode** root);
+
+/* Values for setting possibly overlapping, out-of-order ranges of values */
+typedef struct SetRange {
+    UChar32 start, limit;
+    uint32_t value;
+} SetRange;
+
+/*
+ * Values for testing:
+ * value is set from the previous boundary's limit to before
+ * this boundary's limit
+ *
+ * There must be an entry with limit 0 and the intialValue.
+ * It may be preceded by an entry with negative limit and the errorValue.
+ */
+typedef struct CheckRange {
+    UChar32 limit;
+    uint32_t value;
+} CheckRange;
+
+static int32_t
+skipSpecialValues(const CheckRange checkRanges[], int32_t countCheckRanges) {
+    int32_t i;
+    for(i=0; i<countCheckRanges && checkRanges[i].limit<=0; ++i) {}
+    return i;
+}
+
+static int32_t
+getSpecialValues(const CheckRange checkRanges[], int32_t countCheckRanges,
+                 uint32_t *pInitialValue, uint32_t *pErrorValue) {
+    int32_t i=0;
+    if(i<countCheckRanges && checkRanges[i].limit<0) {
+        *pErrorValue=checkRanges[i++].value;
+    } else {
+        *pErrorValue=0xad;
+    }
+    if(i<countCheckRanges && checkRanges[i].limit==0) {
+        *pInitialValue=checkRanges[i++].value;
+    } else {
+        *pInitialValue=0;
+    }
+    return i;
+}
+
+/* ucptrie_enum() callback, modifies a value */
+static uint32_t U_CALLCONV
+testFilter(const void *context, uint32_t value) {
+    return value ^ 0x5555;
+}
+
+static UBool
+doCheckRange(const char *name, const char *variant,
+             UChar32 start, UChar32 end, uint32_t value,
+             UChar32 expEnd, uint32_t expValue) {
+    if (end < 0) {
+        if (expEnd >= 0) {
+            log_err("error: %s getRanges (%s) fails to deliver range [U+%04lx..U+%04lx].0x%lx\n",
+                    name, variant, (long)start, (long)expEnd, (long)expValue);
+        }
+        return FALSE;
+    }
+    if (expEnd < 0) {
+        log_err("error: %s getRanges (%s) delivers unexpected range [U+%04lx..U+%04lx].0x%lx\n",
+                name, variant, (long)start, (long)end, (long)value);
+        return FALSE;
+    }
+    if (end != expEnd || value != expValue) {
+        log_err("error: %s getRanges (%s) delivers wrong range [U+%04lx..U+%04lx].0x%lx "
+                "instead of [U+%04lx..U+%04lx].0x%lx\n",
+                name, variant, (long)start, (long)end, (long)value,
+                (long)start, (long)expEnd, (long)expValue);
+        return FALSE;
+    }
+    return TRUE;
+}
+
+// Test iteration starting from various UTF-8/16 and trie structure boundaries.
+// Also test starting partway through lead & trail surrogates for fixed-surrogate-value options,
+// and partway through supplementary code points.
+static UChar32 iterStarts[] = {
+    0, 0x7f, 0x80, 0x7ff, 0x800, 0xfff, 0x1000,
+    0xd7ff, 0xd800, 0xd888, 0xdddd, 0xdfff, 0xe000,
+    0xffff, 0x10000, 0x12345, 0x10ffff, 0x110000
+};
+
+static void
+testTrieGetRanges(const char *testName, const UCPTrie *trie, const UMutableCPTrie *mutableTrie,
+                  UCPMapRangeOption option, uint32_t surrValue,
+                  const CheckRange checkRanges[], int32_t countCheckRanges) {
+    const char *const typeName = trie == NULL ? "mutableTrie" : "trie";
+    const char *const optionName = option == UCPMAP_RANGE_NORMAL ? "normal" :
+        option == UCPMAP_RANGE_FIXED_LEAD_SURROGATES ? "fixedLeadSurr" : "fixedAllSurr";
+    char name[80];
+    int32_t s;
+    for (s = 0; s < UPRV_LENGTHOF(iterStarts); ++s) {
+        UChar32 start = iterStarts[s];
+        int32_t i, i0;
+        UChar32 end, expEnd;
+        uint32_t value, expValue;
+        // No need to go from each iteration start to the very end.
+        int32_t innerLoopCount;
+
+        sprintf(name, "%s/%s(%s) min=U+%04lx", typeName, optionName, testName, (long)start);
+
+        // Skip over special values and low ranges.
+        for (i = 0; i < countCheckRanges && checkRanges[i].limit <= start; ++i) {}
+        i0 = i;
+        // without value handler
+        for (innerLoopCount = 0;; ++i, start = end + 1) {
+            if (i < countCheckRanges) {
+                expEnd = checkRanges[i].limit - 1;
+                expValue = checkRanges[i].value;
+            } else {
+                expEnd = -1;
+                expValue = value = 0x5005;
+            }
+            end = trie != NULL ?
+                ucptrie_getRange(trie, start, option, surrValue, NULL, NULL, &value) :
+                umutablecptrie_getRange(mutableTrie, start, option, surrValue, NULL, NULL, &value);
+            if (!doCheckRange(name, "without value handler", start, end, value, expEnd, expValue)) {
+                break;
+            }
+            if (s != 0 && ++innerLoopCount == 5) { break; }
+        }
+        // with value handler
+        for (i = i0, start = iterStarts[s], innerLoopCount = 0;; ++i, start = end + 1) {
+            if (i < countCheckRanges) {
+                expEnd = checkRanges[i].limit - 1;
+                expValue = checkRanges[i].value ^ 0x5555;
+            } else {
+                expEnd = -1;
+                expValue = value = 0x5005;
+            }
+            end = trie != NULL ?
+                ucptrie_getRange(trie, start, option, surrValue ^ 0x5555, testFilter, NULL, &value) :
+                umutablecptrie_getRange(mutableTrie, start, option, surrValue ^ 0x5555,
+                                        testFilter, NULL, &value);
+            if (!doCheckRange(name, "with value handler", start, end, value, expEnd, expValue)) {
+                break;
+            }
+            if (s != 0 && ++innerLoopCount == 5) { break; }
+        }
+        // without value
+        for (i = i0, start = iterStarts[s], innerLoopCount = 0;; ++i, start = end + 1) {
+            if (i < countCheckRanges) {
+                expEnd = checkRanges[i].limit - 1;
+            } else {
+                expEnd = -1;
+            }
+            end = trie != NULL ?
+                ucptrie_getRange(trie, start, option, surrValue, NULL, NULL, NULL) :
+                umutablecptrie_getRange(mutableTrie, start, option, surrValue, NULL, NULL, NULL);
+            if (!doCheckRange(name, "without value", start, end, 0, expEnd, 0)) {
+                break;
+            }
+            if (s != 0 && ++innerLoopCount == 5) { break; }
+        }
+    }
+}
+
+static void
+testTrieGetters(const char *testName, const UCPTrie *trie,
+                UCPTrieType type, UCPTrieValueWidth valueWidth,
+                const CheckRange checkRanges[], int32_t countCheckRanges) {
+    uint32_t initialValue, errorValue;
+    uint32_t value, value2;
+    UChar32 start, limit;
+    int32_t i, countSpecials;
+    int32_t countErrors=0;
+
+    const char *const typeName = "trie";
+
+    countSpecials=getSpecialValues(checkRanges, countCheckRanges, &initialValue, &errorValue);
+
+    start=0;
+    for(i=countSpecials; i<countCheckRanges; ++i) {
+        limit=checkRanges[i].limit;
+        value=checkRanges[i].value;
+
+        while(start<limit) {
+            if (start <= 0x7f) {
+                if (valueWidth == UCPTRIE_VALUE_BITS_16) {
+                    value2 = UCPTRIE_ASCII_GET(trie, UCPTRIE_16, start);
+                } else if (valueWidth == UCPTRIE_VALUE_BITS_32) {
+                    value2 = UCPTRIE_ASCII_GET(trie, UCPTRIE_32, start);
+                } else {
+                    value2 = UCPTRIE_ASCII_GET(trie, UCPTRIE_8, start);
+                }
+                if (value != value2) {
+                    log_err("error: %s(%s).fromASCII(U+%04lx)==0x%lx instead of 0x%lx\n",
+                            typeName, testName, (long)start, (long)value2, (long)value);
+                    ++countErrors;
+                }
+            }
+            if (type == UCPTRIE_TYPE_FAST) {
+                if(start<=0xffff) {
+                    if(valueWidth==UCPTRIE_VALUE_BITS_16) {
+                        value2=UCPTRIE_FAST_BMP_GET(trie, UCPTRIE_16, start);
+                    } else if(valueWidth==UCPTRIE_VALUE_BITS_32) {
+                        value2=UCPTRIE_FAST_BMP_GET(trie, UCPTRIE_32, start);
+                    } else {
+                        value2=UCPTRIE_FAST_BMP_GET(trie, UCPTRIE_8, start);
+                    }
+                    if(value!=value2) {
+                        log_err("error: %s(%s).fromBMP(U+%04lx)==0x%lx instead of 0x%lx\n",
+                                typeName, testName, (long)start, (long)value2, (long)value);
+                        ++countErrors;
+                    }
+                } else {
+                    if(valueWidth==UCPTRIE_VALUE_BITS_16) {
+                        value2 = UCPTRIE_FAST_SUPP_GET(trie, UCPTRIE_16, start);
+                    } else if(valueWidth==UCPTRIE_VALUE_BITS_32) {
+                        value2 = UCPTRIE_FAST_SUPP_GET(trie, UCPTRIE_32, start);
+                    } else {
+                        value2 = UCPTRIE_FAST_SUPP_GET(trie, UCPTRIE_8, start);
+                    }
+                    if(value!=value2) {
+                        log_err("error: %s(%s).fromSupp(U+%04lx)==0x%lx instead of 0x%lx\n",
+                                typeName, testName, (long)start, (long)value2, (long)value);
+                        ++countErrors;
+                    }
+                }
+                if(valueWidth==UCPTRIE_VALUE_BITS_16) {
+                    value2 = UCPTRIE_FAST_GET(trie, UCPTRIE_16, start);
+                } else if(valueWidth==UCPTRIE_VALUE_BITS_32) {
+                    value2 = UCPTRIE_FAST_GET(trie, UCPTRIE_32, start);
+                } else {
+                    value2 = UCPTRIE_FAST_GET(trie, UCPTRIE_8, start);
+                }
+            } else {
+                if(valueWidth==UCPTRIE_VALUE_BITS_16) {
+                    value2 = UCPTRIE_SMALL_GET(trie, UCPTRIE_16, start);
+                } else if(valueWidth==UCPTRIE_VALUE_BITS_32) {
+                    value2 = UCPTRIE_SMALL_GET(trie, UCPTRIE_32, start);
+                } else {
+                    value2 = UCPTRIE_SMALL_GET(trie, UCPTRIE_8, start);
+                }
+            }
+            if(value!=value2) {
+                log_err("error: %s(%s).get(U+%04lx)==0x%lx instead of 0x%lx\n",
+                        typeName, testName, (long)start, (long)value2, (long)value);
+                ++countErrors;
+            }
+            value2=ucptrie_get(trie, start);
+            if(value!=value2) {
+                log_err("error: %s(%s).get(U+%04lx)==0x%lx instead of 0x%lx\n",
+                        typeName, testName, (long)start, (long)value2, (long)value);
+                ++countErrors;
+            }
+            ++start;
+            if(countErrors>10) {
+                return;
+            }
+        }
+    }
+
+    /* test linear ASCII range from the data array pointer (access to "internal" field) */
+    start=0;
+    for(i=countSpecials; i<countCheckRanges && start<=0x7f; ++i) {
+        limit=checkRanges[i].limit;
+        value=checkRanges[i].value;
+
+        while(start<limit && start<=0x7f) {
+            if(valueWidth==UCPTRIE_VALUE_BITS_16) {
+                value2=trie->data.ptr16[start];
+            } else if(valueWidth==UCPTRIE_VALUE_BITS_32) {
+                value2=trie->data.ptr32[start];
+            } else {
+                value2=trie->data.ptr8[start];
+            }
+            if(value!=value2) {
+                log_err("error: %s(%s).asciiData[U+%04lx]==0x%lx instead of 0x%lx\n",
+                        typeName, testName, (long)start, (long)value2, (long)value);
+                ++countErrors;
+            }
+            ++start;
+            if(countErrors>10) {
+                return;
+            }
+        }
+    }
+
+    /* test errorValue */
+    if (type == UCPTRIE_TYPE_FAST) {
+        if(valueWidth==UCPTRIE_VALUE_BITS_16) {
+            value = UCPTRIE_FAST_GET(trie, UCPTRIE_16, -1);
+            value2 = UCPTRIE_FAST_GET(trie, UCPTRIE_16, 0x110000);
+        } else if(valueWidth==UCPTRIE_VALUE_BITS_32) {
+            value = UCPTRIE_FAST_GET(trie, UCPTRIE_32, -1);
+            value2 = UCPTRIE_FAST_GET(trie, UCPTRIE_32, 0x110000);
+        } else {
+            value = UCPTRIE_FAST_GET(trie, UCPTRIE_8, -1);
+            value2 = UCPTRIE_FAST_GET(trie, UCPTRIE_8, 0x110000);
+        }
+    } else {
+        if(valueWidth==UCPTRIE_VALUE_BITS_16) {
+            value = UCPTRIE_SMALL_GET(trie, UCPTRIE_16, -1);
+            value2 = UCPTRIE_SMALL_GET(trie, UCPTRIE_16, 0x110000);
+        } else if(valueWidth==UCPTRIE_VALUE_BITS_32) {
+            value = UCPTRIE_SMALL_GET(trie, UCPTRIE_32, -1);
+            value2 = UCPTRIE_SMALL_GET(trie, UCPTRIE_32, 0x110000);
+        } else {
+            value = UCPTRIE_SMALL_GET(trie, UCPTRIE_8, -1);
+            value2 = UCPTRIE_SMALL_GET(trie, UCPTRIE_8, 0x110000);
+        }
+    }
+    if(value!=errorValue || value2!=errorValue) {
+        log_err("error: %s(%s).get(out of range) != errorValue\n",
+                typeName, testName);
+    }
+    value=ucptrie_get(trie, -1);
+    value2=ucptrie_get(trie, 0x110000);
+    if(value!=errorValue || value2!=errorValue) {
+        log_err("error: %s(%s).get(out of range) != errorValue\n",
+                typeName, testName);
+    }
+}
+
+static void
+testBuilderGetters(const char *testName, const UMutableCPTrie *mutableTrie,
+                   const CheckRange checkRanges[], int32_t countCheckRanges) {
+    uint32_t initialValue, errorValue;
+    uint32_t value, value2;
+    UChar32 start, limit;
+    int32_t i, countSpecials;
+    int32_t countErrors=0;
+
+    const char *const typeName = "mutableTrie";
+
+    countSpecials=getSpecialValues(checkRanges, countCheckRanges, &initialValue, &errorValue);
+
+    start=0;
+    for(i=countSpecials; i<countCheckRanges; ++i) {
+        limit=checkRanges[i].limit;
+        value=checkRanges[i].value;
+
+        while(start<limit) {
+            value2=umutablecptrie_get(mutableTrie, start);
+            if(value!=value2) {
+                log_err("error: %s(%s).get(U+%04lx)==0x%lx instead of 0x%lx\n",
+                        typeName, testName, (long)start, (long)value2, (long)value);
+                ++countErrors;
+            }
+            ++start;
+            if(countErrors>10) {
+                return;
+            }
+        }
+    }
+
+    /* test errorValue */
+    value=umutablecptrie_get(mutableTrie, -1);
+    value2=umutablecptrie_get(mutableTrie, 0x110000);
+    if(value!=errorValue || value2!=errorValue) {
+        log_err("error: %s(%s).get(out of range) != errorValue\n",
+                typeName, testName);
+    }
+}
+
+#define ACCIDENTAL_SURROGATE_PAIR(s, length, cp) (length > 0 && U16_IS_LEAD(s[length-1]) && U_IS_TRAIL(cp))
+
+static void
+testTrieUTF16(const char *testName,
+              const UCPTrie *trie, UCPTrieValueWidth valueWidth,
+              const CheckRange checkRanges[], int32_t countCheckRanges) {
+    UChar s[30000];
+    uint32_t values[16000];
+
+    const UChar *p, *limit;
+
+    uint32_t errorValue = ucptrie_get(trie, -1);
+    uint32_t value, expected;
+    UChar32 prevCP, c, c2;
+    int32_t i, length, sIndex, countValues;
+
+    /* write a string */
+    prevCP=0;
+    length=countValues=0;
+    for(i=skipSpecialValues(checkRanges, countCheckRanges); i<countCheckRanges; ++i) {
+        value=checkRanges[i].value;
+        /* write three code points */
+        if(!ACCIDENTAL_SURROGATE_PAIR(s, length, prevCP)) {
+            U16_APPEND_UNSAFE(s, length, prevCP);   /* start of the range */
+            values[countValues++]=value;
+        }
+        U_ASSERT(length < UPRV_LENGTHOF(s) && countValues < UPRV_LENGTHOF(values));
+        c=checkRanges[i].limit;
+        prevCP=(prevCP+c)/2;                    /* middle of the range */
+        if(!ACCIDENTAL_SURROGATE_PAIR(s, length, prevCP)) {
+            U16_APPEND_UNSAFE(s, length, prevCP);
+            values[countValues++]=value;
+        }
+        prevCP=c;
+        --c;                                    /* end of the range */
+        if(!ACCIDENTAL_SURROGATE_PAIR(s, length, c)) {
+            U16_APPEND_UNSAFE(s, length, c);
+            values[countValues++]=value;
+        }
+    }
+    limit=s+length;
+    if(length>UPRV_LENGTHOF(s)) {
+        log_err("UTF-16 test string length %d > capacity %d\n", (int)length, (int)UPRV_LENGTHOF(s));
+        return;
+    }
+    if(countValues>UPRV_LENGTHOF(values)) {
+        log_err("UTF-16 test values length %d > capacity %d\n", (int)countValues, (int)UPRV_LENGTHOF(values));
+        return;
+    }
+
+    /* try forward */
+    p=s;
+    i=0;
+    while(p<limit) {
+        sIndex=(int32_t)(p-s);
+        U16_NEXT(s, sIndex, length, c2);
+        c=0x33;
+        if(valueWidth==UCPTRIE_VALUE_BITS_16) {
+            UCPTRIE_FAST_U16_NEXT(trie, UCPTRIE_16, p, limit, c, value);
+        } else if(valueWidth==UCPTRIE_VALUE_BITS_32) {
+            UCPTRIE_FAST_U16_NEXT(trie, UCPTRIE_32, p, limit, c, value);
+        } else {
+            UCPTRIE_FAST_U16_NEXT(trie, UCPTRIE_8, p, limit, c, value);
+        }
+        expected = U_IS_SURROGATE(c) ? errorValue : values[i];
+        if(value!=expected) {
+            log_err("error: wrong value from UCPTRIE_NEXT(%s)(U+%04lx): 0x%lx instead of 0x%lx\n",
+                    testName, (long)c, (long)value, (long)expected);
+        }
+        if(c!=c2) {
+            log_err("error: wrong code point from UCPTRIE_NEXT(%s): U+%04lx != U+%04lx\n",
+                    testName, (long)c, (long)c2);
+            continue;
+        }
+        ++i;
+    }
+
+    /* try backward */
+    p=limit;
+    i=countValues;
+    while(s<p) {
+        --i;
+        sIndex=(int32_t)(p-s);
+        U16_PREV(s, 0, sIndex, c2);
+        c=0x33;
+        if(valueWidth==UCPTRIE_VALUE_BITS_16) {
+            UCPTRIE_FAST_U16_PREV(trie, UCPTRIE_16, s, p, c, value);
+        } else if(valueWidth==UCPTRIE_VALUE_BITS_32) {
+            UCPTRIE_FAST_U16_PREV(trie, UCPTRIE_32, s, p, c, value);
+        } else {
+            UCPTRIE_FAST_U16_PREV(trie, UCPTRIE_8, s, p, c, value);
+        }
+        expected = U_IS_SURROGATE(c) ? errorValue : values[i];
+        if(value!=expected) {
+            log_err("error: wrong value from UCPTRIE_PREV(%s)(U+%04lx): 0x%lx instead of 0x%lx\n",
+                    testName, (long)c, (long)value, (long)expected);
+        }
+        if(c!=c2) {
+            log_err("error: wrong code point from UCPTRIE_PREV(%s): U+%04lx != U+%04lx\n",
+                    testName, c, c2);
+        }
+    }
+}
+
+static void
+testTrieUTF8(const char *testName,
+             const UCPTrie *trie, UCPTrieValueWidth valueWidth,
+             const CheckRange checkRanges[], int32_t countCheckRanges) {
+    // Note: The byte sequence comments refer to the original UTF-8 definition.
+    // Starting with ICU 60, any sequence that is not a prefix of a valid one
+    // is treated as multiple single-byte errors.
+    // For testing, we only rely on U8_... and UCPTrie UTF-8 macros
+    // iterating consistently.
+    static const uint8_t illegal[]={
+        0xc0, 0x80,                         /* non-shortest U+0000 */
+        0xc1, 0xbf,                         /* non-shortest U+007f */
+        0xc2,                               /* truncated */
+        0xe0, 0x90, 0x80,                   /* non-shortest U+0400 */
+        0xe0, 0xa0,                         /* truncated */
+        0xed, 0xa0, 0x80,                   /* lead surrogate U+d800 */
+        0xed, 0xbf, 0xbf,                   /* trail surrogate U+dfff */
+        0xf0, 0x8f, 0xbf, 0xbf,             /* non-shortest U+ffff */
+        0xf0, 0x90, 0x80,                   /* truncated */
+        0xf4, 0x90, 0x80, 0x80,             /* beyond-Unicode U+110000 */
+        0xf8, 0x80, 0x80, 0x80,             /* truncated */
+        0xf8, 0x80, 0x80, 0x80, 0x80,       /* 5-byte UTF-8 */
+        0xfd, 0xbf, 0xbf, 0xbf, 0xbf,       /* truncated */
+        0xfd, 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, /* 6-byte UTF-8 */
+        0xfe,
+        0xff
+    };
+    uint8_t s[60000];
+    uint32_t values[16000];
+
+    const uint8_t *p, *limit;
+
+    uint32_t initialValue, errorValue;
+    uint32_t value, expectedBytes, actualBytes;
+    UChar32 prevCP, c;
+    int32_t i, countSpecials, length, countValues;
+    int32_t prev8, i8;
+
+    countSpecials=getSpecialValues(checkRanges, countCheckRanges, &initialValue, &errorValue);
+
+    /* write a string */
+    prevCP=0;
+    length=countValues=0;
+    /* first a couple of trail bytes in lead position */
+    s[length++]=0x80;
+    values[countValues++]=errorValue;
+    s[length++]=0xbf;
+    values[countValues++]=errorValue;
+    prev8=i8=0;
+    for(i=countSpecials; i<countCheckRanges; ++i) {
+        value=checkRanges[i].value;
+        /* write three legal (or surrogate) code points */
+        U8_APPEND_UNSAFE(s, length, prevCP);    /* start of the range */
+        if(U_IS_SURROGATE(prevCP)) {
+            // A surrogate byte sequence counts as 3 single-byte errors.
+            values[countValues++]=errorValue;
+            values[countValues++]=errorValue;
+            values[countValues++]=errorValue;
+        } else {
+            values[countValues++]=value;
+        }
+        U_ASSERT(length < UPRV_LENGTHOF(s) && countValues < UPRV_LENGTHOF(values));
+        c=checkRanges[i].limit;
+        prevCP=(prevCP+c)/2;                    /* middle of the range */
+        U8_APPEND_UNSAFE(s, length, prevCP);
+        if(U_IS_SURROGATE(prevCP)) {
+            // A surrogate byte sequence counts as 3 single-byte errors.
+            values[countValues++]=errorValue;
+            values[countValues++]=errorValue;
+            values[countValues++]=errorValue;
+        } else {
+            values[countValues++]=value;
+        }
+        prevCP=c;
+        --c;                                    /* end of the range */
+        U8_APPEND_UNSAFE(s, length, c);
+        if(U_IS_SURROGATE(c)) {
+            // A surrogate byte sequence counts as 3 single-byte errors.
+            values[countValues++]=errorValue;
+            values[countValues++]=errorValue;
+            values[countValues++]=errorValue;
+        } else {
+            values[countValues++]=value;
+        }
+        /* write an illegal byte sequence */
+        if(i8<sizeof(illegal)) {
+            U8_FWD_1(illegal, i8, sizeof(illegal));
+            while(prev8<i8) {
+                s[length++]=illegal[prev8++];
+            }
+            values[countValues++]=errorValue;
+        }
+    }
+    /* write the remaining illegal byte sequences */
+    while(i8<sizeof(illegal)) {
+        U8_FWD_1(illegal, i8, sizeof(illegal));
+        while(prev8<i8) {
+            s[length++]=illegal[prev8++];
+        }
+        values[countValues++]=errorValue;
+    }
+    limit=s+length;
+    if(length>UPRV_LENGTHOF(s)) {
+        log_err("UTF-8 test string length %d > capacity %d\n", (int)length, (int)UPRV_LENGTHOF(s));
+        return;
+    }
+    if(countValues>UPRV_LENGTHOF(values)) {
+        log_err("UTF-8 test values length %d > capacity %d\n", (int)countValues, (int)UPRV_LENGTHOF(values));
+        return;
+    }
+
+    /* try forward */
+    p=s;
+    i=0;
+    while(p<limit) {
+        prev8=i8=(int32_t)(p-s);
+        U8_NEXT(s, i8, length, c);
+        if(valueWidth==UCPTRIE_VALUE_BITS_16) {
+            UCPTRIE_FAST_U8_NEXT(trie, UCPTRIE_16, p, limit, value);
+        } else if(valueWidth==UCPTRIE_VALUE_BITS_32) {
+            UCPTRIE_FAST_U8_NEXT(trie, UCPTRIE_32, p, limit, value);
+        } else {
+            UCPTRIE_FAST_U8_NEXT(trie, UCPTRIE_8, p, limit, value);
+        }
+        expectedBytes=0;
+        if(value!=values[i] || i8!=(p-s)) {
+            int32_t k=prev8;
+            while(k<i8) {
+                expectedBytes=(expectedBytes<<8)|s[k++];
+            }
+        }
+        if(i8==(p-s)) {
+            actualBytes=expectedBytes;
+        } else {
+            actualBytes=0;
+            int32_t k=prev8;
+            while(k<(p-s)) {
+                actualBytes=(actualBytes<<8)|s[k++];
+            }
+        }
+        if(value!=values[i]) {
+            log_err("error: wrong value from UCPTRIE_FAST_U8_NEXT(%s)(from %d %lx->U+%04lx) (read %d bytes): "
+                    "0x%lx instead of 0x%lx (from bytes %lx)\n",
+                    testName, (int)prev8, (unsigned long)actualBytes, (long)c, (int)((p-s)-prev8),
+                    (long)value, (long)values[i], (unsigned long)expectedBytes);
+        }
+        if(i8!=(p-s)) {
+            log_err("error: wrong end index from UCPTRIE_FAST_U8_NEXT(%s)(from %d %lx->U+%04lx): "
+                    "%ld != %ld (bytes %lx)\n",
+                    testName, (int)prev8, (unsigned long)actualBytes, (long)c,
+                    (long)(p-s), (long)i8, (unsigned long)expectedBytes);
+            break;
+        }
+        ++i;
+    }
+
+    /* try backward */
+    p=limit;
+    i=countValues;
+    while(s<p) {
+        --i;
+        prev8=i8=(int32_t)(p-s);
+        U8_PREV(s, 0, i8, c);
+        if(valueWidth==UCPTRIE_VALUE_BITS_16) {
+            UCPTRIE_FAST_U8_PREV(trie, UCPTRIE_16, s, p, value);
+        } else if(valueWidth==UCPTRIE_VALUE_BITS_32) {
+            UCPTRIE_FAST_U8_PREV(trie, UCPTRIE_32, s, p, value);
+        } else {
+            UCPTRIE_FAST_U8_PREV(trie, UCPTRIE_8, s, p, value);
+        }
+        expectedBytes=0;
+        if(value!=values[i] || i8!=(p-s)) {
+            int32_t k=i8;
+            while(k<prev8) {
+                expectedBytes=(expectedBytes<<8)|s[k++];
+            }
+        }
+        if(i8==(p-s)) {
+            actualBytes=expectedBytes;
+        } else {
+            actualBytes=0;
+            int32_t k=(int32_t)(p-s);
+            while(k<prev8) {
+                actualBytes=(actualBytes<<8)|s[k++];
+            }
+        }
+        if(value!=values[i]) {
+            log_err("error: wrong value from UCPTRIE_FAST_U8_PREV(%s)(from %d %lx->U+%04lx) (read %d bytes): "
+                    "0x%lx instead of 0x%lx (from bytes %lx)\n",
+                    testName, (int)prev8, (unsigned long)actualBytes, (long)c, (int)(prev8-(p-s)),
+                    (long)value, (long)values[i], (unsigned long)expectedBytes);
+        }
+        if(i8!=(p-s)) {
+            log_err("error: wrong end index from UCPTRIE_FAST_U8_PREV(%s)(from %d %lx->U+%04lx): "
+                    "%ld != %ld (bytes %lx)\n",
+                    testName, (int)prev8, (unsigned long)actualBytes, (long)c,
+                    (long)(p-s), (long)i8, (unsigned long)expectedBytes);
+            break;
+        }
+    }
+}
+
+static void
+testTrie(const char *testName, const UCPTrie *trie,
+         UCPTrieType type, UCPTrieValueWidth valueWidth,
+         const CheckRange checkRanges[], int32_t countCheckRanges) {
+    testTrieGetters(testName, trie, type, valueWidth, checkRanges, countCheckRanges);
+    testTrieGetRanges(testName, trie, NULL, UCPMAP_RANGE_NORMAL, 0, checkRanges, countCheckRanges);
+    if (type == UCPTRIE_TYPE_FAST) {
+        testTrieUTF16(testName, trie, valueWidth, checkRanges, countCheckRanges);
+        testTrieUTF8(testName, trie, valueWidth, checkRanges, countCheckRanges);
+    }
+}
+
+static void
+testBuilder(const char *testName, const UMutableCPTrie *mutableTrie,
+            const CheckRange checkRanges[], int32_t countCheckRanges) {
+    testBuilderGetters(testName, mutableTrie, checkRanges, countCheckRanges);
+    testTrieGetRanges(testName, NULL, mutableTrie, UCPMAP_RANGE_NORMAL, 0, checkRanges, countCheckRanges);
+}
+
+static uint32_t storage[120000];
+static uint32_t swapped[120000];
+
+static void
+testTrieSerialize(const char *testName, UMutableCPTrie *mutableTrie,
+                  UCPTrieType type, UCPTrieValueWidth valueWidth, UBool withSwap,
+                  const CheckRange checkRanges[], int32_t countCheckRanges) {
+    UCPTrie *trie;
+    int32_t length1, length2, length3;
+    UErrorCode errorCode;
+
+    /* clone the trie so that the caller can reuse the original */
+    errorCode=U_ZERO_ERROR;
+    mutableTrie = umutablecptrie_clone(mutableTrie, &errorCode);
+    if(U_FAILURE(errorCode)) {
+        log_err("error: umutablecptrie_clone(%s) failed - %s\n",
+                testName, u_errorName(errorCode));
+        return;
+    }
+
+    /*
+     * This is not a loop, but simply a block that we can exit with "break"
+     * when something goes wrong.
+     */
+    do {
+        errorCode=U_ZERO_ERROR;
+        trie = umutablecptrie_buildImmutable(mutableTrie, type, valueWidth, &errorCode);
+        if (U_FAILURE(errorCode)) {
+            log_err("error: umutablecptrie_buildImmutable(%s) failed: %s\n",
+                    testName, u_errorName(errorCode));
+            break;
+        }
+        errorCode=U_ZERO_ERROR;
+        length1=ucptrie_toBinary(trie, NULL, 0, &errorCode);
+        if(errorCode!=U_BUFFER_OVERFLOW_ERROR) {
+            log_err("error: ucptrie_toBinary(%s) preflighting set %s != U_BUFFER_OVERFLOW_ERROR\n",
+                    testName, u_errorName(errorCode));
+            break;
+        }
+        errorCode=U_ZERO_ERROR;
+        length2=ucptrie_toBinary(trie, storage, sizeof(storage), &errorCode);
+        if(errorCode==U_BUFFER_OVERFLOW_ERROR) {
+            log_err("error: ucptrie_toBinary(%s) needs more memory\n", testName);
+            break;
+        }
+        if(U_FAILURE(errorCode)) {
+            log_err("error: ucptrie_toBinary(%s) failed: %s\n", testName, u_errorName(errorCode));
+            break;
+        }
+        if(length1!=length2) {
+            log_err("error: trie serialization (%s) lengths different: "
+                    "preflight vs. serialize\n", testName);
+            break;
+        }
+
+        testTrie(testName, trie, type, valueWidth, checkRanges, countCheckRanges);
+        ucptrie_close(trie);
+        trie=NULL;
+
+        if(withSwap) {
+            int32_t swappedLength;
+
+            UDataSwapper *ds;
+
+            /* swap to opposite-endian */
+            uprv_memset(swapped, 0x55, length2);
+            ds=udata_openSwapper(U_IS_BIG_ENDIAN, U_CHARSET_FAMILY,
+                                 !U_IS_BIG_ENDIAN, U_CHARSET_FAMILY, &errorCode);
+            swappedLength=ucptrie_swap(ds, storage, -1, NULL, &errorCode);
+            if(U_FAILURE(errorCode) || swappedLength!=length2) {
+                log_err("error: ucptrie_swap(%s to OE preflighting) failed (%s) "
+                        "or before/after lengths different\n",
+                        testName, u_errorName(errorCode));
+                udata_closeSwapper(ds);
+                break;
+            }
+            swappedLength=ucptrie_swap(ds, storage, length2, swapped, &errorCode);
+            udata_closeSwapper(ds);
+            if(U_FAILURE(errorCode) || swappedLength!=length2) {
+                log_err("error: ucptrie_swap(%s to OE) failed (%s) or before/after lengths different\n",
+                        testName, u_errorName(errorCode));
+                break;
+            }
+
+            /* swap back to platform-endian */
+            uprv_memset(storage, 0xaa, length2);
+            ds=udata_openSwapper(!U_IS_BIG_ENDIAN, U_CHARSET_FAMILY,
+                                 U_IS_BIG_ENDIAN, U_CHARSET_FAMILY, &errorCode);
+            swappedLength=ucptrie_swap(ds, swapped, -1, NULL, &errorCode);
+            if(U_FAILURE(errorCode) || swappedLength!=length2) {
+                log_err("error: ucptrie_swap(%s to PE preflighting) failed (%s) "
+                        "or before/after lengths different\n",
+                        testName, u_errorName(errorCode));
+                udata_closeSwapper(ds);
+                break;
+            }
+            swappedLength=ucptrie_swap(ds, swapped, length2, storage, &errorCode);
+            udata_closeSwapper(ds);
+            if(U_FAILURE(errorCode) || swappedLength!=length2) {
+                log_err("error: ucptrie_swap(%s to PE) failed (%s) or before/after lengths different\n",
+                        testName, u_errorName(errorCode));
+                break;
+            }
+        }
+
+        trie = ucptrie_openFromBinary(type, valueWidth, storage, length2, &length3, &errorCode);
+        if(U_FAILURE(errorCode)) {
+            log_err("error: ucptrie_openFromBinary(%s) failed, %s\n", testName, u_errorName(errorCode));
+            break;
+        }
+        if(type != ucptrie_getType(trie)) {
+            log_err("error: trie serialization (%s) did not preserve trie type\n", testName);
+            break;
+        }
+        if(valueWidth != ucptrie_getValueWidth(trie)) {
+            log_err("error: trie serialization (%s) did not preserve data value width\n", testName);
+            break;
+        }
+        if(length2!=length3) {
+            log_err("error: trie serialization (%s) lengths different: "
+                    "serialize vs. unserialize\n", testName);
+            break;
+        }
+        /* overwrite the storage that is not supposed to be needed */
+        uprv_memset((char *)storage+length3, 0xfa, (int32_t)(sizeof(storage)-length3));
+
+        {
+            errorCode=U_ZERO_ERROR;
+            UCPTrie *any = ucptrie_openFromBinary(UCPTRIE_TYPE_ANY, UCPTRIE_VALUE_BITS_ANY,
+                                                  storage, length3, NULL, &errorCode);
+            if (U_SUCCESS(errorCode)) {
+                if (type != ucptrie_getType(any)) {
+                    log_err("error: ucptrie_openFromBinary("
+                            "UCPTRIE_TYPE_ANY, UCPTRIE_VALUE_BITS_ANY).getType() wrong\n");
+                }
+                if (valueWidth != ucptrie_getValueWidth(any)) {
+                    log_err("error: ucptrie_openFromBinary("
+                            "UCPTRIE_TYPE_ANY, UCPTRIE_VALUE_BITS_ANY).getValueWidth() wrong\n");
+                }
+                ucptrie_close(any);
+            } else {
+                log_err("error: ucptrie_openFromBinary("
+                        "UCPTRIE_TYPE_ANY, UCPTRIE_VALUE_BITS_ANY) failed - %s\n",
+                        u_errorName(errorCode));
+            }
+        }
+
+        errorCode=U_ZERO_ERROR;
+        testTrie(testName, trie, type, valueWidth, checkRanges, countCheckRanges);
+        {
+            /* make a mutable trie from an immutable one */
+            uint32_t value, value2;
+            UMutableCPTrie *mutable2 = umutablecptrie_fromUCPTrie(trie, &errorCode);
+            if(U_FAILURE(errorCode)) {
+                log_err("error: umutablecptrie_fromUCPTrie(unserialized %s) failed - %s\n",
+                        testName, u_errorName(errorCode));
+                break;
+            }
+
+            value=umutablecptrie_get(mutable2, 0xa1);
+            umutablecptrie_set(mutable2, 0xa1, 789, &errorCode);
+            value2=umutablecptrie_get(mutable2, 0xa1);
+            umutablecptrie_set(mutable2, 0xa1, value, &errorCode);
+            if(U_FAILURE(errorCode) || value2!=789) {
+                log_err("error: modifying a mutableTrie-from-UCPTrie (%s) failed - %s\n",
+                        testName, u_errorName(errorCode));
+            }
+            testBuilder(testName, mutable2, checkRanges, countCheckRanges);
+            umutablecptrie_close(mutable2);
+        }
+    } while(0);
+
+    umutablecptrie_close(mutableTrie);
+    ucptrie_close(trie);
+}
+
+static UMutableCPTrie *
+testTrieSerializeAllValueWidth(const char *testName,
+                               UMutableCPTrie *mutableTrie, UBool withClone,
+                               const CheckRange checkRanges[], int32_t countCheckRanges) {
+    char name[40];
+    uint32_t oredValues = 0;
+    int32_t i;
+    for (i = 0; i < countCheckRanges; ++i) {
+        oredValues |= checkRanges[i].value;
+    }
+
+    testBuilder(testName, mutableTrie, checkRanges, countCheckRanges);
+
+    if (oredValues <= 0xffff) {
+        uprv_strcpy(name, testName);
+        uprv_strcat(name, ".16");
+        testTrieSerialize(name, mutableTrie,
+                          UCPTRIE_TYPE_FAST, UCPTRIE_VALUE_BITS_16, withClone,
+                          checkRanges, countCheckRanges);
+    }
+
+    uprv_strcpy(name, testName);
+    uprv_strcat(name, ".32");
+    testTrieSerialize(name, mutableTrie,
+                      UCPTRIE_TYPE_FAST, UCPTRIE_VALUE_BITS_32, withClone,
+                      checkRanges, countCheckRanges);
+
+    if (oredValues <= 0xff) {
+        uprv_strcpy(name, testName);
+        uprv_strcat(name, ".8");
+        testTrieSerialize(name, mutableTrie,
+                          UCPTRIE_TYPE_FAST, UCPTRIE_VALUE_BITS_8, withClone,
+                          checkRanges, countCheckRanges);
+    }
+
+    if (oredValues <= 0xffff) {
+        uprv_strcpy(name, testName);
+        uprv_strcat(name, ".small16");
+        testTrieSerialize(name, mutableTrie,
+                          UCPTRIE_TYPE_SMALL, UCPTRIE_VALUE_BITS_16, withClone,
+                          checkRanges, countCheckRanges);
+    }
+
+    return mutableTrie;
+}
+
+static UMutableCPTrie *
+makeTrieWithRanges(const char *testName, UBool withClone,
+                   const SetRange setRanges[], int32_t countSetRanges,
+                   const CheckRange checkRanges[], int32_t countCheckRanges) {
+    UMutableCPTrie *mutableTrie;
+    uint32_t initialValue, errorValue;
+    uint32_t value;
+    UChar32 start, limit;
+    int32_t i;
+    UErrorCode errorCode;
+
+    log_verbose("\ntesting Trie '%s'\n", testName);
+    errorCode=U_ZERO_ERROR;
+    getSpecialValues(checkRanges, countCheckRanges, &initialValue, &errorValue);
+    mutableTrie = umutablecptrie_open(initialValue, errorValue, &errorCode);
+    if(U_FAILURE(errorCode)) {
+        log_err("error: umutablecptrie_open(%s) failed: %s\n", testName, u_errorName(errorCode));
+        return NULL;
+    }
+
+    /* set values from setRanges[] */
+    for(i=0; i<countSetRanges; ++i) {
+        if(withClone && i==countSetRanges/2) {
+            /* switch to a clone in the middle of setting values */
+            UMutableCPTrie *clone = umutablecptrie_clone(mutableTrie, &errorCode);
+            if(U_FAILURE(errorCode)) {
+                log_err("error: umutablecptrie_clone(%s) failed - %s\n",
+                        testName, u_errorName(errorCode));
+                errorCode=U_ZERO_ERROR;  /* continue with the original */
+            } else {
+                umutablecptrie_close(mutableTrie);
+                mutableTrie = clone;
+            }
+        }
+        start=setRanges[i].start;
+        limit=setRanges[i].limit;
+        value=setRanges[i].value;
+        if ((limit - start) == 1) {
+            umutablecptrie_set(mutableTrie, start, value, &errorCode);
+        } else {
+            umutablecptrie_setRange(mutableTrie, start, limit-1, value, &errorCode);
+        }
+    }
+
+    if(U_SUCCESS(errorCode)) {
+        return mutableTrie;
+    } else {
+        log_err("error: setting values into a mutable trie (%s) failed - %s\n",
+                testName, u_errorName(errorCode));
+        umutablecptrie_close(mutableTrie);
+        return NULL;
+    }
+}
+
+static void
+testTrieRanges(const char *testName, UBool withClone,
+               const SetRange setRanges[], int32_t countSetRanges,
+               const CheckRange checkRanges[], int32_t countCheckRanges) {
+    UMutableCPTrie *mutableTrie = makeTrieWithRanges(
+        testName, withClone, setRanges, countSetRanges, checkRanges, countCheckRanges);
+    if (mutableTrie != NULL) {
+        mutableTrie = testTrieSerializeAllValueWidth(testName, mutableTrie, withClone,
+                                                     checkRanges, countCheckRanges);
+        umutablecptrie_close(mutableTrie);
+    }
+}
+
+/* test data ----------------------------------------------------------------*/
+
+/* set consecutive ranges, even with value 0 */
+static const SetRange
+setRanges1[]={
+    { 0,        0x40,     0    },
+    { 0x40,     0xe7,     0x34 },
+    { 0xe7,     0x3400,   0    },
+    { 0x3400,   0x9fa6,   0x61 },
+    { 0x9fa6,   0xda9e,   0x31 },
+    { 0xdada,   0xeeee,   0xff },
+    { 0xeeee,   0x11111,  1    },
+    { 0x11111,  0x44444,  0x61 },
+    { 0x44444,  0x60003,  0    },
+    { 0xf0003,  0xf0004,  0xf  },
+    { 0xf0004,  0xf0006,  0x10 },
+    { 0xf0006,  0xf0007,  0x11 },
+    { 0xf0007,  0xf0040,  0x12 },
+    { 0xf0040,  0x110000, 0    }
+};
+
+static const CheckRange
+checkRanges1[]={
+    { 0,        0 },
+    { 0x40,     0 },
+    { 0xe7,     0x34 },
+    { 0x3400,   0 },
+    { 0x9fa6,   0x61 },
+    { 0xda9e,   0x31 },
+    { 0xdada,   0 },
+    { 0xeeee,   0xff },
+    { 0x11111,  1 },
+    { 0x44444,  0x61 },
+    { 0xf0003,  0 },
+    { 0xf0004,  0xf },
+    { 0xf0006,  0x10 },
+    { 0xf0007,  0x11 },
+    { 0xf0040,  0x12 },
+    { 0x110000, 0 }
+};
+
+/* set some interesting overlapping ranges */
+static const SetRange
+setRanges2[]={
+    { 0x21,     0x7f,     0x5555 },
+    { 0x2f800,  0x2fedc,  0x7a   },
+    { 0x72,     0xdd,     3      },
+    { 0xdd,     0xde,     4      },
+    { 0x201,    0x240,    6      },  /* 3 consecutive blocks with the same pattern but */
+    { 0x241,    0x280,    6      },  /* discontiguous value ranges, testing iteration */
+    { 0x281,    0x2c0,    6      },
+    { 0x2f987,  0x2fa98,  5      },
+    { 0x2f777,  0x2f883,  0      },
+    { 0x2fedc,  0x2ffaa,  1      },
+    { 0x2ffaa,  0x2ffab,  2      },
+    { 0x2ffbb,  0x2ffc0,  7      }
+};
+
+static const CheckRange
+checkRanges2[]={
+    { 0,        0 },
+    { 0x21,     0 },
+    { 0x72,     0x5555 },
+    { 0xdd,     3 },
+    { 0xde,     4 },
+    { 0x201,    0 },
+    { 0x240,    6 },
+    { 0x241,    0 },
+    { 0x280,    6 },
+    { 0x281,    0 },
+    { 0x2c0,    6 },
+    { 0x2f883,  0 },
+    { 0x2f987,  0x7a },
+    { 0x2fa98,  5 },
+    { 0x2fedc,  0x7a },
+    { 0x2ffaa,  1 },
+    { 0x2ffab,  2 },
+    { 0x2ffbb,  0 },
+    { 0x2ffc0,  7 },
+    { 0x110000, 0 }
+};
+
+/* use a non-zero initial value */
+static const SetRange
+setRanges3[]={
+    { 0x31,     0xa4,     1 },
+    { 0x3400,   0x6789,   2 },
+    { 0x8000,   0x89ab,   9 },
+    { 0x9000,   0xa000,   4 },
+    { 0xabcd,   0xbcde,   3 },
+    { 0x55555,  0x110000, 6 },  /* highStart<U+ffff with non-initialValue */
+    { 0xcccc,   0x55555,  6 }
+};
+
+static const CheckRange
+checkRanges3[]={
+    { 0,        9 },  /* non-zero initialValue */
+    { 0x31,     9 },
+    { 0xa4,     1 },
+    { 0x3400,   9 },
+    { 0x6789,   2 },
+    { 0x9000,   9 },
+    { 0xa000,   4 },
+    { 0xabcd,   9 },
+    { 0xbcde,   3 },
+    { 0xcccc,   9 },
+    { 0x110000, 6 }
+};
+
+/* empty or single-value tries, testing highStart==0 */
+static const SetRange
+setRangesEmpty[]={
+    { 0,        0,        0 },  /* need some values for it to compile */
+};
+
+static const CheckRange
+checkRangesEmpty[]={
+    { 0,        3 },
+    { 0x110000, 3 }
+};
+
+static const SetRange
+setRangesSingleValue[]={
+    { 0,        0x110000, 5 },
+};
+
+static const CheckRange
+checkRangesSingleValue[]={
+    { 0,        3 },
+    { 0x110000, 5 }
+};
+
+static void
+TrieTestSet1(void) {
+    testTrieRanges("set1", FALSE,
+        setRanges1, UPRV_LENGTHOF(setRanges1),
+        checkRanges1, UPRV_LENGTHOF(checkRanges1));
+}
+
+static void
+TrieTestSet2Overlap(void) {
+    testTrieRanges("set2-overlap", FALSE,
+        setRanges2, UPRV_LENGTHOF(setRanges2),
+        checkRanges2, UPRV_LENGTHOF(checkRanges2));
+}
+
+static void
+TrieTestSet3Initial9(void) {
+    testTrieRanges("set3-initial-9", FALSE,
+        setRanges3, UPRV_LENGTHOF(setRanges3),
+        checkRanges3, UPRV_LENGTHOF(checkRanges3));
+}
+
+static void
+TrieTestSetEmpty(void) {
+    testTrieRanges("set-empty", FALSE,
+        setRangesEmpty, 0,
+        checkRangesEmpty, UPRV_LENGTHOF(checkRangesEmpty));
+}
+
+static void
+TrieTestSetSingleValue(void) {
+    testTrieRanges("set-single-value", FALSE,
+        setRangesSingleValue, UPRV_LENGTHOF(setRangesSingleValue),
+        checkRangesSingleValue, UPRV_LENGTHOF(checkRangesSingleValue));
+}
+
+static void
+TrieTestSet2OverlapWithClone(void) {
+    testTrieRanges("set2-overlap.withClone", TRUE,
+        setRanges2, UPRV_LENGTHOF(setRanges2),
+        checkRanges2, UPRV_LENGTHOF(checkRanges2));
+}
+
+/* test mutable-trie memory management -------------------------------------- */
+
+static void
+FreeBlocksTest(void) {
+    static const CheckRange
+    checkRanges[]={
+        { 0,        1 },
+        { 0x740,    1 },
+        { 0x780,    2 },
+        { 0x880,    3 },
+        { 0x110000, 1 }
+    };
+    static const char *const testName="free-blocks";
+
+    UMutableCPTrie *mutableTrie;
+    int32_t i;
+    UErrorCode errorCode;
+
+    errorCode=U_ZERO_ERROR;
+    mutableTrie=umutablecptrie_open(1, 0xad, &errorCode);
+    if(U_FAILURE(errorCode)) {
+        log_err("error: umutablecptrie_open(%s) failed: %s\n", testName, u_errorName(errorCode));
+        return;
+    }
+
+    /*
+     * Repeatedly set overlapping same-value ranges to stress the free-data-block management.
+     * If it fails, it will overflow the data array.
+     */
+    for(i=0; i<(0x120000>>4)/2; ++i) {  // 4=UCPTRIE_SHIFT_3
+        umutablecptrie_setRange(mutableTrie, 0x740, 0x840-1, 1, &errorCode);
+        umutablecptrie_setRange(mutableTrie, 0x780, 0x880-1, 1, &errorCode);
+        umutablecptrie_setRange(mutableTrie, 0x740, 0x840-1, 2, &errorCode);
+        umutablecptrie_setRange(mutableTrie, 0x780, 0x880-1, 3, &errorCode);
+    }
+    /* make blocks that will be free during compaction */
+    umutablecptrie_setRange(mutableTrie, 0x1000, 0x3000-1, 2, &errorCode);
+    umutablecptrie_setRange(mutableTrie, 0x2000, 0x4000-1, 3, &errorCode);
+    umutablecptrie_setRange(mutableTrie, 0x1000, 0x4000-1, 1, &errorCode);
+    if(U_FAILURE(errorCode)) {
+        log_err("error: setting lots of ranges into a mutable trie (%s) failed - %s\n",
+                testName, u_errorName(errorCode));
+        umutablecptrie_close(mutableTrie);
+        return;
+    }
+
+    mutableTrie = testTrieSerializeAllValueWidth(testName, mutableTrie, FALSE,
+                                                 checkRanges, UPRV_LENGTHOF(checkRanges));
+    umutablecptrie_close(mutableTrie);
+}
+
+static void
+GrowDataArrayTest(void) {
+    static const CheckRange
+    checkRanges[]={
+        { 0,        1 },
+        { 0x720,    2 },
+        { 0x7a0,    3 },
+        { 0x8a0,    4 },
+        { 0x110000, 5 }
+    };
+    static const char *const testName="grow-data";
+
+    UMutableCPTrie *mutableTrie;
+    int32_t i;
+    UErrorCode errorCode;
+
+    errorCode=U_ZERO_ERROR;
+    mutableTrie=umutablecptrie_open(1, 0xad, &errorCode);
+    if(U_FAILURE(errorCode)) {
+        log_err("error: umutablecptrie_open(%s) failed: %s\n", testName, u_errorName(errorCode));
+        return;
+    }
+
+    /*
+     * Use umutablecptrie_set() not umutablecptrie_setRange() to write non-initialValue-data.
+     * Should grow/reallocate the data array to a sufficient length.
+     */
+    for(i=0; i<0x1000; ++i) {
+        umutablecptrie_set(mutableTrie, i, 2, &errorCode);
+    }
+    for(i=0x720; i<0x1100; ++i) { /* some overlap */
+        umutablecptrie_set(mutableTrie, i, 3, &errorCode);
+    }
+    for(i=0x7a0; i<0x900; ++i) {
+        umutablecptrie_set(mutableTrie, i, 4, &errorCode);
+    }
+    for(i=0x8a0; i<0x110000; ++i) {
+        umutablecptrie_set(mutableTrie, i, 5, &errorCode);
+    }
+    if(U_FAILURE(errorCode)) {
+        log_err("error: setting lots of values into a mutable trie (%s) failed - %s\n",
+                testName, u_errorName(errorCode));
+        umutablecptrie_close(mutableTrie);
+        return;
+    }
+
+    mutableTrie = testTrieSerializeAllValueWidth(testName, mutableTrie, FALSE,
+                                                 checkRanges, UPRV_LENGTHOF(checkRanges));
+    umutablecptrie_close(mutableTrie);
+}
+
+static void
+ManyAllSameBlocksTest(void) {
+    static const char *const testName="many-all-same";
+
+    UMutableCPTrie *mutableTrie;
+    int32_t i;
+    UErrorCode errorCode;
+    CheckRange checkRanges[(0x110000 >> 12) + 1];
+
+    errorCode = U_ZERO_ERROR;
+    mutableTrie = umutablecptrie_open(0xff33, 0xad, &errorCode);
+    if (U_FAILURE(errorCode)) {
+        log_err("error: umutablecptrie_open(%s) failed: %s\n", testName, u_errorName(errorCode));
+        return;
+    }
+    checkRanges[0].limit = 0;
+    checkRanges[0].value = 0xff33;  // initialValue
+
+    // Many all-same-value blocks.
+    for (i = 0; i < 0x110000; i += 0x1000) {
+        uint32_t value = i >> 12;
+        umutablecptrie_setRange(mutableTrie, i, i + 0xfff, value, &errorCode);
+        checkRanges[value + 1].limit = i + 0x1000;
+        checkRanges[value + 1].value = value;
+    }
+    for (i = 0; i < 0x110000; i += 0x1000) {
+        uint32_t expected = i >> 12;
+        uint32_t v0 = umutablecptrie_get(mutableTrie, i);
+        uint32_t vfff = umutablecptrie_get(mutableTrie, i + 0xfff);
+        if (v0 != expected || vfff != expected) {
+            log_err("error: UMutableCPTrie U+%04lx unexpected value\n", (long)i);
+        }
+    }
+
+    mutableTrie = testTrieSerializeAllValueWidth(testName, mutableTrie, FALSE,
+                                                 checkRanges, UPRV_LENGTHOF(checkRanges));
+    umutablecptrie_close(mutableTrie);
+}
+
+static void
+MuchDataTest(void) {
+    static const char *const testName="much-data";
+
+    UMutableCPTrie *mutableTrie;
+    int32_t r, c;
+    UErrorCode errorCode = U_ZERO_ERROR;
+    CheckRange checkRanges[(0x10000 >> 6) + (0x10240 >> 4) + 10];
+
+    mutableTrie = umutablecptrie_open(0xff33, 0xad, &errorCode);
+    if (U_FAILURE(errorCode)) {
+        log_err("error: umutablecptrie_open(%s) failed: %s\n", testName, u_errorName(errorCode));
+        return;
+    }
+    checkRanges[0].limit = 0;
+    checkRanges[0].value = 0xff33;  // initialValue
+    r = 1;
+
+    // Add much data that does not compact well,
+    // to get more than 128k data values after compaction.
+    for (c = 0; c < 0x10000; c += 0x40) {
+        uint32_t value = c >> 4;
+        umutablecptrie_setRange(mutableTrie, c, c + 0x3f, value, &errorCode);
+        checkRanges[r].limit = c + 0x40;
+        checkRanges[r++].value = value;
+    }
+    checkRanges[r].limit = 0x20000;
+    checkRanges[r++].value = 0xff33;
+    for (c = 0x20000; c < 0x30230; c += 0x10) {
+        uint32_t value = c >> 4;
+        umutablecptrie_setRange(mutableTrie, c, c + 0xf, value, &errorCode);
+        checkRanges[r].limit = c + 0x10;
+        checkRanges[r++].value = value;
+    }
+    umutablecptrie_setRange(mutableTrie, 0x30230, 0x30233, 0x3023, &errorCode);
+    checkRanges[r].limit = 0x30234;
+    checkRanges[r++].value = 0x3023;
+    umutablecptrie_setRange(mutableTrie, 0x30234, 0xdffff, 0x5005, &errorCode);
+    checkRanges[r].limit = 0xe0000;
+    checkRanges[r++].value = 0x5005;
+    umutablecptrie_setRange(mutableTrie, 0xe0000, 0x10ffff, 0x9009, &errorCode);
+    checkRanges[r].limit = 0x110000;
+    checkRanges[r++].value = 0x9009;
+    if (U_FAILURE(errorCode)) {
+        log_err("error: setting lots of values into a mutable trie (%s) failed - %s\n",
+                testName, u_errorName(errorCode));
+        umutablecptrie_close(mutableTrie);
+        return;
+    }
+    U_ASSERT(r <= UPRV_LENGTHOF(checkRanges));
+
+    testBuilder(testName, mutableTrie, checkRanges, r);
+    testTrieSerialize("much-data.16", mutableTrie,
+                      UCPTRIE_TYPE_FAST, UCPTRIE_VALUE_BITS_16, FALSE, checkRanges, r);
+    umutablecptrie_close(mutableTrie);
+}
+
+static void testGetRangesFixedSurr(const char *testName, const UMutableCPTrie *mutableTrie,
+                                   UCPMapRangeOption option,
+                                   const CheckRange checkRanges[], int32_t countCheckRanges) {
+    testTrieGetRanges(testName, NULL, mutableTrie, option, 5, checkRanges, countCheckRanges);
+    UErrorCode errorCode = U_ZERO_ERROR;
+    UMutableCPTrie *clone = umutablecptrie_clone(mutableTrie, &errorCode);
+    UCPTrie *trie;
+    if (U_FAILURE(errorCode)) {
+        log_err("error: umutablecptrie_clone(%s) failed: %s\n", testName, u_errorName(errorCode));
+        return;
+    }
+    trie = umutablecptrie_buildImmutable(clone, UCPTRIE_TYPE_FAST, UCPTRIE_VALUE_BITS_16, &errorCode);
+    umutablecptrie_close(clone);
+    if (U_FAILURE(errorCode)) {
+        log_err("error: umutablecptrie_buildImmutable(%s) failed: %s\n", testName, u_errorName(errorCode));
+        return;
+    }
+    testTrieGetRanges(testName, trie, NULL, option, 5, checkRanges, countCheckRanges);
+    ucptrie_close(trie);
+}
+
+static void
+TrieTestGetRangesFixedSurr(void) {
+    static const SetRange
+    setRangesFixedSurr[]={
+        { 0xd000, 0xd7ff, 5 },
+        { 0xd7ff, 0xe001, 3 },
+        { 0xe001, 0xf900, 5 },
+    };
+
+    static const CheckRange
+    checkRangesFixedLeadSurr1[]={
+        { 0,      0 },
+        { 0xd000, 0 },
+        { 0xd7ff, 5 },
+        { 0xd800, 3 },
+        { 0xdc00, 5 },
+        { 0xe001, 3 },
+        { 0xf900, 5 },
+        { 0x110000, 0 }
+    };
+
+    static const CheckRange
+    checkRangesFixedAllSurr1[]={
+        { 0,      0 },
+        { 0xd000, 0 },
+        { 0xd7ff, 5 },
+        { 0xd800, 3 },
+        { 0xe000, 5 },
+        { 0xe001, 3 },
+        { 0xf900, 5 },
+        { 0x110000, 0 }
+    };
+
+    static const CheckRange
+    checkRangesFixedLeadSurr3[]={
+        { 0,      0 },
+        { 0xd000, 0 },
+        { 0xdc00, 5 },
+        { 0xe001, 3 },
+        { 0xf900, 5 },
+        { 0x110000, 0 }
+    };
+
+    static const CheckRange
+    checkRangesFixedAllSurr3[]={
+        { 0,      0 },
+        { 0xd000, 0 },
+        { 0xe000, 5 },
+        { 0xe001, 3 },
+        { 0xf900, 5 },
+        { 0x110000, 0 }
+    };
+
+    static const CheckRange
+    checkRangesFixedSurr4[]={
+        { 0,      0 },
+        { 0xd000, 0 },
+        { 0xf900, 5 },
+        { 0x110000, 0 }
+    };
+
+    UMutableCPTrie *mutableTrie = makeTrieWithRanges(
+        "fixedSurr", FALSE, setRangesFixedSurr, UPRV_LENGTHOF(setRangesFixedSurr),
+        checkRangesFixedLeadSurr1, UPRV_LENGTHOF(checkRangesFixedLeadSurr1));
+    UErrorCode errorCode = U_ZERO_ERROR;
+    if (mutableTrie == NULL) {
+        return;
+    }
+    testGetRangesFixedSurr("fixedLeadSurr1", mutableTrie, UCPMAP_RANGE_FIXED_LEAD_SURROGATES,
+                           checkRangesFixedLeadSurr1, UPRV_LENGTHOF(checkRangesFixedLeadSurr1));
+    testGetRangesFixedSurr("fixedAllSurr1", mutableTrie, UCPMAP_RANGE_FIXED_ALL_SURROGATES,
+                           checkRangesFixedAllSurr1, UPRV_LENGTHOF(checkRangesFixedAllSurr1));
+    // Setting a range in the middle of lead surrogates makes no difference.
+    umutablecptrie_setRange(mutableTrie, 0xd844, 0xd899, 5, &errorCode);
+    if (U_FAILURE(errorCode)) {
+        log_err("error: umutablecptrie_setRange(fixedSurr2) failed: %s\n", u_errorName(errorCode));
+        umutablecptrie_close(mutableTrie);
+        return;
+    }
+    testGetRangesFixedSurr("fixedLeadSurr2", mutableTrie, UCPMAP_RANGE_FIXED_LEAD_SURROGATES,
+                           checkRangesFixedLeadSurr1, UPRV_LENGTHOF(checkRangesFixedLeadSurr1));
+    // Bridge the gap before the lead surrogates.
+    umutablecptrie_set(mutableTrie, 0xd7ff, 5, &errorCode);
+    if (U_FAILURE(errorCode)) {
+        log_err("error: umutablecptrie_set(fixedSurr3) failed: %s\n", u_errorName(errorCode));
+        umutablecptrie_close(mutableTrie);
+        return;
+    }
+    testGetRangesFixedSurr("fixedLeadSurr3", mutableTrie, UCPMAP_RANGE_FIXED_LEAD_SURROGATES,
+                           checkRangesFixedLeadSurr3, UPRV_LENGTHOF(checkRangesFixedLeadSurr3));
+    testGetRangesFixedSurr("fixedAllSurr3", mutableTrie, UCPMAP_RANGE_FIXED_ALL_SURROGATES,
+                           checkRangesFixedAllSurr3, UPRV_LENGTHOF(checkRangesFixedAllSurr3));
+    // Bridge the gap after the trail surrogates.
+    umutablecptrie_set(mutableTrie, 0xe000, 5, &errorCode);
+    if (U_FAILURE(errorCode)) {
+        log_err("error: umutablecptrie_set(fixedSurr4) failed: %s\n", u_errorName(errorCode));
+        umutablecptrie_close(mutableTrie);
+        return;
+    }
+    testGetRangesFixedSurr("fixedSurr4", mutableTrie, UCPMAP_RANGE_FIXED_ALL_SURROGATES,
+                           checkRangesFixedSurr4, UPRV_LENGTHOF(checkRangesFixedSurr4));
+    umutablecptrie_close(mutableTrie);
+}
+
+static void TestSmallNullBlockMatchesFast(void) {
+    // The initial builder+getRange code had a bug:
+    // When there is no null data block in the fast-index range,
+    // but a fast-range data block starts with enough values to match a small data block,
+    // then getRange() got confused.
+    // The builder must prevent this.
+    static const SetRange setRanges[] = {
+        { 0, 0x880, 1 },
+        // U+0880..U+088F map to initial value 0, potential match for small null data block.
+        { 0x890, 0x1040, 2 },
+        // U+1040..U+1050 map to 0.
+        // First small null data block in a small-type trie.
+        // In a fast-type trie, it is ok to match a small null data block at U+1041
+        // but not at U+1040.
+        { 0x1051, 0x10000, 3 },
+        // No fast data block (block length 64) filled with 0 regardless of trie type.
+        // Need more blocks filled with 0 than the largest range above,
+        // and need a highStart above that so that it actually counts.
+        { 0x20000, 0x110000, 9 }
+    };
+
+    static const CheckRange checkRanges[] = {
+        { 0x0880, 1 },
+        { 0x0890, 0 },
+        { 0x1040, 2 },
+        { 0x1051, 0 },
+        { 0x10000, 3 },
+        { 0x20000, 0 },
+        { 0x110000, 9 }
+    };
+
+    testTrieRanges("small0-in-fast", FALSE,
+        setRanges, UPRV_LENGTHOF(setRanges),
+        checkRanges, UPRV_LENGTHOF(checkRanges));
+}
+
+static void ShortAllSameBlocksTest(void) {
+    static const char *const testName = "short-all-same";
+    // Many all-same-value blocks but only of the small block length used in the mutable trie.
+    // The builder code needs to turn a group of short ALL_SAME blocks below fastLimit
+    // into a MIXED block, and reserve data array capacity for that.
+    UErrorCode errorCode = U_ZERO_ERROR;
+    UMutableCPTrie *mutableTrie = umutablecptrie_open(0, 0xad, &errorCode);
+    CheckRange checkRanges[0x101];
+    int32_t i;
+    if (U_FAILURE(errorCode)) {
+        log_err("error: umutablecptrie_open(%s) failed: %s\n", testName, u_errorName(errorCode));
+        return;
+    }
+    for (i = 0; i < 0x1000; i += 0x10) {
+        uint32_t value = i >> 4;
+        umutablecptrie_setRange(mutableTrie, i, i + 0xf, value, &errorCode);
+        checkRanges[value].limit = i + 0x10;
+        checkRanges[value].value = value;
+    }
+    checkRanges[0x100].limit = 0x110000;
+    checkRanges[0x100].value = 0;
+    if (U_FAILURE(errorCode)) {
+        log_err("error: setting values into a mutable trie (%s) failed - %s\n",
+                testName, u_errorName(errorCode));
+        umutablecptrie_close(mutableTrie);
+        return;
+    }
+
+    mutableTrie = testTrieSerializeAllValueWidth(testName, mutableTrie, FALSE,
+                                                 checkRanges, UPRV_LENGTHOF(checkRanges));
+    umutablecptrie_close(mutableTrie);
+}
+
+void
+addUCPTrieTest(TestNode** root) {
+    addTest(root, &TrieTestSet1, "tsutil/ucptrietest/TrieTestSet1");
+    addTest(root, &TrieTestSet2Overlap, "tsutil/ucptrietest/TrieTestSet2Overlap");
+    addTest(root, &TrieTestSet3Initial9, "tsutil/ucptrietest/TrieTestSet3Initial9");
+    addTest(root, &TrieTestSetEmpty, "tsutil/ucptrietest/TrieTestSetEmpty");
+    addTest(root, &TrieTestSetSingleValue, "tsutil/ucptrietest/TrieTestSetSingleValue");
+    addTest(root, &TrieTestSet2OverlapWithClone, "tsutil/ucptrietest/TrieTestSet2OverlapWithClone");
+    addTest(root, &FreeBlocksTest, "tsutil/ucptrietest/FreeBlocksTest");
+    addTest(root, &GrowDataArrayTest, "tsutil/ucptrietest/GrowDataArrayTest");
+    addTest(root, &ManyAllSameBlocksTest, "tsutil/ucptrietest/ManyAllSameBlocksTest");
+    addTest(root, &MuchDataTest, "tsutil/ucptrietest/MuchDataTest");
+    addTest(root, &TrieTestGetRangesFixedSurr, "tsutil/ucptrietest/TrieTestGetRangesFixedSurr");
+    addTest(root, &TestSmallNullBlockMatchesFast, "tsutil/ucptrietest/TestSmallNullBlockMatchesFast");
+    addTest(root, &ShortAllSameBlocksTest, "tsutil/ucptrietest/ShortAllSameBlocksTest");
+}
index fb8690d..93e2f19 100644 (file)
@@ -316,7 +316,7 @@ static KnownRegion knownRegions[] = {
     { "TA" ,  -1, "QO",  URGN_TERRITORY, "009" },
     { "TC" , 796, "029", URGN_TERRITORY, "019" },
     { "TD" , 148, "017", URGN_TERRITORY, "002" },
-    { "TF" , 260, "145", URGN_TERRITORY, "142" },
+    { "TF" , 260, "014", URGN_TERRITORY, "002" },
     { "TG" , 768, "011", URGN_TERRITORY, "002" },
     { "TH" , 764, "035", URGN_TERRITORY, "142" },
     { "TJ" , 762, "143", URGN_TERRITORY, "142" },
index 87bbc8c..f4e7a7d 100755 (executable)
@@ -1,4 +1,4 @@
-#! /usr/bin/python
+#! /usr/bin/python -B
 # -*- coding: utf-8 -*-
 #
 # Copyright (C) 2016 and later: Unicode, Inc. and others.
index 55783ee..1d05d39 100644 (file)
@@ -160,11 +160,9 @@ library: common
     static_unicode_sets
     uiter edits
     ucasemap ucasemap_titlecase_brkiter script_runs
-    uprops ubidi_props ucase uscript uscript_props
+    uprops ubidi_props ucase uscript uscript_props characterproperties
     ubidi ushape ubiditransform
-    listformatter
     resourcebundle service_registration resbund_cnv ures_cnv icudataver ucat
-    loclikely
     currency
     locale_display_names2
     conversion converter_selector ucnv_set ucnvdisp
@@ -175,7 +173,7 @@ library: common
     ucharstriebuilder ucharstrieiterator
     bytestriebuilder bytestrieiterator
     hashtable uhash uvector uvector32 uvector64 ulist
-    propsvec utrie2 utrie2_builder
+    propsvec utrie2 utrie2_builder ucptrie umutablecptrie utrie_swap
     sort
     uinit utypes errorcode
     icuplug
@@ -207,7 +205,7 @@ group: breakiterator
   deps
     resourcebundle service_registration
     schriter utext uniset_core uniset_props
-    uhash ustack utrie
+    uhash ustack utrie2_builder
     ucharstrie bytestrie
     ucharstriebuilder  # for filteredbrk.o
     normlzr  # for dictbe.o, should switch to Normalizer2
@@ -257,7 +255,7 @@ group: stringprep
   deps
     unorm  # could change to use filterednormalizer2 directly for Unicode 3.2 normalization
     normalizer2
-    ubidi_props
+    ubidi_props utrie
 
 group: canonical_iterator
     caniter.o
@@ -275,7 +273,8 @@ group: normalizer2
   deps
     uniset_core
     bytestream bytesinkutil  # for UTF-8 output
-    utrie2_builder  # for building CanonIterData & FCD
+    umutablecptrie  # for building CanonIterData & FCD
+    utrie_swap  # TODO(ICU-20170): move unorm2_swap() to a separate file
     uvector  # for building CanonIterData
     uhash  # for the instance cache
     udata
@@ -308,7 +307,7 @@ group: uniset_closure
 group: uniset_props
     uniset_props.o ruleiter.o
   deps
-    uniset_core uprops unistr_case
+    uniset_core uprops unistr_case characterproperties
     parsepos
     resourcebundle
     propname unames
@@ -383,7 +382,7 @@ group: cstr
 group: uscript
     uscript.o  # uscript_getCode() accepts a locale ID and loads its script code data
   deps
-    propname loclikely
+    propname resourcebundle
 
 group: uscript_props  # script metadata properties
     uscript_props.o
@@ -399,6 +398,12 @@ group: uprops
     unistr_case ustring_case  # only for case folding
     ucase
 
+group: characterproperties
+    characterproperties.o
+  deps
+    uprops
+    uniset_core
+
 group: propname
     propname.o
   deps
@@ -525,7 +530,7 @@ group: uinit
 group: converter_selector
     ucnvsel.o
   deps
-    conversion propsvec utrie2_builder uset ucnv_set
+    conversion propsvec utrie2_builder utrie_swap uset ucnv_set
 
 group: ucnvdisp  # ucnv_getDisplayName()
     ucnvdisp.o
@@ -560,11 +565,6 @@ group: service_registration
     locale_display_names resourcebundle
     hashtable uvector
 
-group: listformatter
-    listformatter.o ulistformatter.o
-  deps
-    resourcebundle simpleformatter
-
 group: ucat  # message-catalog-like API
     ucat.o
   deps
@@ -583,7 +583,7 @@ group: locale_display_names2
 group: currency
     ucurr.o
   deps
-    loclikely resourcebundle ulist ustring_case_locale
+    resourcebundle ulist ustring_case_locale
     stdlib_qsort  # for ucurr.o (which does not use ICU's uarrsort.o)
     static_unicode_sets usetiter
 
@@ -592,11 +592,6 @@ group: icudataver  # u_getDataVersion()
   deps
     resourcebundle
 
-group: loclikely
-    loclikely.o
-  deps
-    resourcebundle uscript_props propname
-
 group: locresdata
     # This was intended to collect locale functions that load resource bundle data.
     # See the resourcebundle group about what else loads data.
@@ -631,9 +626,12 @@ group: resourcebundle
     locid.o locmap.o wintz.o
     # Do we need class LocaleBased? http://bugs.icu-project.org/trac/ticket/8608
     locbased.o
+    loclikely.o
   deps
     udata ucol_swp
     sort stringenumeration uhash uvector
+    uscript_props propname
+    bytesinkutil
 
 group: udata
     udata.o ucmndata.o udatamem.o
@@ -688,20 +686,34 @@ group: propsvec
   deps
     sort utrie2_builder
 
+group: utrie_swap
+    utrie_swap.o
+  deps
+    udata
+
+group: umutablecptrie
+    umutablecptrie.o
+  deps
+    ucptrie
+
+group: ucptrie
+    ucptrie.o
+  deps
+    platform
+
 group: utrie2_builder
     utrie2_builder.o
   deps
     platform
     utrie2
     utrie  # for utrie2_fromUTrie()
-    ucol_swp  # for utrie_swap()
 
-group: utrie2
+group: utrie2  # Try to switch users to ucptrie.
     utrie2.o
   deps
     platform
 
-group: utrie  # Callers should use utrie2 instead.
+group: utrie  # Callers should use ucptrie instead.
     utrie.o
   deps
     platform
@@ -770,7 +782,7 @@ group: icuplug
 group: ucol_swp
     ucol_swp.o
   deps
-    utrie2  # Format version 4 uses UTrie2.
+    utrie_swap
 
 group: errorcode  # ErrorCode base class
     errorcode.o
@@ -815,6 +827,7 @@ library: i18n
     region localedata genderinfo charset_detector spoof_detection
     alphabetic_index collation collation_builder string_search
     dayperiodrules
+    listformatter
     formatting formattable_cnv regex regex_cnv translit
     double_conversion number_representation numberformatter numberparser
     universal_time_scale
@@ -832,7 +845,6 @@ group: localedata
   deps
     uniset_props resourcebundle
     uset_props  # TODO: change to using C++ UnicodeSet, remove this dependency
-    loclikely
 
 group: genderinfo
     gender.o
@@ -871,7 +883,7 @@ group: collation
     ucol_res.o ucol_sit.o ucoleitr.o
   deps
     bytestream normalizer2 resourcebundle service_registration unifiedcache
-    ucharstrieiterator uiter ulist uset usetiter uvector32 uvector64
+    ucharstrieiterator uiter ulist uset usetiter uvector32 uvector64 utrie2
     uclean_i18n propname
 
 group: collation_builder
@@ -890,6 +902,11 @@ group: dayperiodrules
   deps
     resourcebundle uclean_i18n
 
+group: listformatter
+    listformatter.o ulistformatter.o
+  deps
+    resourcebundle simpleformatter format uclean_i18n
+
 group: double_conversion
     double-conversion.o double-conversion-bignum.o double-conversion-bignum-dtoa.o
     double-conversion-cached-powers.o double-conversion-diy-fp.o
@@ -918,6 +935,7 @@ group: numberformatter
     number_patternmodifier.o number_patternstring.o number_rounding.o
     number_scientific.o number_skeletons.o
     currpinf.o dcfmtsym.o numsys.o
+    numrange_fluent.o numrange_impl.o
     # pluralrules
     standardplural.o plurrule.o
   deps
@@ -953,6 +971,7 @@ group: formatting
     # dateformat
     astro.o buddhcal.o calendar.o cecal.o chnsecal.o coptccal.o dangical.o ethpccal.o
     gregocal.o gregoimp.o hebrwcal.o indiancal.o islamcal.o japancal.o persncal.o taiwncal.o
+    erarules.o  # mostly for Japanese eras
     ucal.o
     basictz.o olsontz.o rbtz.o simpletz.o timezone.o tzrule.o tztrans.o
     vtzone.o vzone.o wintzimpl.o zonemeta.o zrule.o ztrans.o
@@ -965,6 +984,7 @@ group: formatting
     choicfmt.o msgfmt.o plurfmt.o selfmt.o umsg.o
   deps
     decnumber formattable format units numberformatter numberparser
+    listformatter
     dayperiodrules
     collation collation_builder  # for rbnf
     common
index 2a542e7..231c681 100755 (executable)
@@ -1,4 +1,4 @@
-#! /usr/bin/python
+#! /usr/bin/python -B
 # -*- coding: utf-8 -*-
 #
 # Copyright (C) 2016 and later: Unicode, Inc. and others.
index afe1ff1..2084d61 100644 (file)
@@ -68,6 +68,7 @@ normalizer2.h
 normlzr.h
 nounit.h
 numberformatter.h
+numberrangeformatter.h
 numfmt.h
 numsys.h
 parsepos.h
index c2b38c6..ad47ad0 100644 (file)
@@ -66,7 +66,7 @@ numbertest_affixutils.o numbertest_api.o numbertest_decimalquantity.o \
 numbertest_modifiers.o numbertest_patternmodifier.o numbertest_patternstring.o \
 numbertest_stringbuilder.o numbertest_stringsegment.o \
 numbertest_parse.o numbertest_doubleconversion.o numbertest_skeletons.o \
-static_unisets_test.o numfmtdatadriventest.o
+static_unisets_test.o numfmtdatadriventest.o numbertest_range.o erarulestest.o
 
 DEPS = $(OBJECTS:.o=.d)
 
index da52263..fc64851 100644 (file)
@@ -1411,6 +1411,11 @@ void CalendarRegressionTest::test4118384()
 
     delete cal;
     cal = Calendar::createInstance(Locale("th_TH@calendar=buddhist"),status);
+    if(U_FAILURE(status)) {
+      dataerrln("Error creating calendar %s", u_errorName(status));
+      delete cal;
+      return;
+    }    
     // test deprecated functions
     if (cal->getLeastMaximum(Calendar::HOUR) != 11 ||
         cal->getMaximum(Calendar::HOUR) != 11) {
@@ -1425,6 +1430,11 @@ void CalendarRegressionTest::test4118384()
     delete cal;
     // test deprecated functions
     cal = Calendar::createInstance(Locale("ja_JP@calendar=japanese"),status);
+    if(U_FAILURE(status)) {
+      dataerrln("Error creating calendar %s", u_errorName(status));
+      delete cal;
+      return;
+    }    
     if (cal->getLeastMaximum(Calendar::HOUR) != 11 ||
         cal->getMaximum(Calendar::HOUR) != 11) {
         errln("Fail: Japanese:[deprecated functions] maximum of HOUR field should be 11\n");
index 2ee46ab..c38ae58 100644 (file)
@@ -119,15 +119,15 @@ static ExpectedResult kSwahiliShort[] = {
   {1234.0, "elfu\\u00a01.2"},
   {12345.0, "elfu\\u00a012"},
   {123456.0, "elfu\\u00a0120"},
-  {1234567.0, "M1.2"},
-  {12345678.0, "M12"},
-  {123456789.0, "M120"},
-  {1.23456789E9, "B1.2"},
-  {1.23456789E10, "B12"},
-  {1.23456789E11, "B120"},
-  {1.23456789E12, "T1.2"},
-  {1.23456789E13, "T12"},
-  {1.23456789E15, "T1200"}};
+  {1234567.0, "1.2M"},
+  {12345678.0, "12M"},
+  {123456789.0, "120M"},
+  {1.23456789E9, "1.2B"},
+  {1.23456789E10, "12B"},
+  {1.23456789E11, "120B"},
+  {1.23456789E12, "1.2T"},
+  {1.23456789E13, "12T"},
+  {1.23456789E15, "1200T"}};
 
 static ExpectedResult kCsShort[] = {
   {1000.0, "1\\u00a0tis."},
@@ -154,15 +154,15 @@ static ExpectedResult kSwahiliShortNegative[] = {
   {-1234.0, "elfu\\u00a0-1.2"},
   {-12345.0, "elfu\\u00a0-12"},
   {-123456.0, "elfu\\u00a0-120"},
-  {-1234567.0, "M-1.2"},
-  {-12345678.0, "M-12"},
-  {-123456789.0, "M-120"},
-  {-1.23456789E9, "B-1.2"},
-  {-1.23456789E10, "B-12"},
-  {-1.23456789E11, "B-120"},
-  {-1.23456789E12, "T-1.2"},
-  {-1.23456789E13, "T-12"},
-  {-1.23456789E15, "T-1200"}};
+  {-1234567.0, "-1.2M"},
+  {-12345678.0, "-12M"},
+  {-123456789.0, "-120M"},
+  {-1.23456789E9, "-1.2B"},
+  {-1.23456789E10, "-12B"},
+  {-1.23456789E11, "-120B"},
+  {-1.23456789E12, "-1.2T"},
+  {-1.23456789E13, "-12T"},
+  {-1.23456789E15, "-1200T"}};
 
 static ExpectedResult kArabicLong[] = {
   {-5300.0, "\\u061C-\\u0665\\u066B\\u0663 \\u0623\\u0644\\u0641"}};
@@ -487,10 +487,10 @@ void CompactDecimalFormatTest::TestBug12975() {
     LocalPointer<CompactDecimalFormat> cdf(CompactDecimalFormat::createInstance(locale, UNUM_SHORT, status));
     if (assertSuccess("", status, true, __FILE__, __LINE__)) {
         UnicodeString resultCdf;
-        cdf->format(120000, resultCdf);
+        cdf->format(12000, resultCdf);
         LocalPointer<DecimalFormat> df((DecimalFormat*) DecimalFormat::createInstance(locale, status));
         UnicodeString resultDefault;
-        df->format(120000, resultDefault);
+        df->format(12000, resultDefault);
         assertEquals("CompactDecimalFormat should use default pattern when compact pattern is unavailable",
                      resultDefault, resultCdf);
     }
index e723619..1733f1a 100644 (file)
@@ -20,6 +20,7 @@
 #if !UCONFIG_NO_TRANSLITERATION
 
 #include "unicode/translit.h"
+#include "cpdtrans.h"
 #include "intltest.h"
 
 /**
index f578b22..c5b9631 100644 (file)
@@ -942,10 +942,10 @@ void DateIntervalFormatTest::testFormat() {
 
         "de", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "EEEEdMMM", "Samstag, 10. \\u2013 Dienstag, 20. Nov.",
 
-        "de", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "EdMy", "Sa., 10.11.2007 \\u2013 Di., 20.11.2007",
+        "de", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "EdMy", "Sa., 10. \\u2013 Di., 20.11.2007",
 
 
-        "de", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "dM", "10.11. \\u2013 20.11.",
+        "de", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "dM", "10.\\u201320.11.",
 
         "de", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "My", "11.2007",
 
diff --git a/source/test/intltest/erarulestest.cpp b/source/test/intltest/erarulestest.cpp
new file mode 100644 (file)
index 0000000..b550361
--- /dev/null
@@ -0,0 +1,130 @@
+// © 2018 and later: Unicode, Inc. and others.
+// License & terms of use: http://www.unicode.org/copyright.html
+
+#include "unicode/utypes.h"
+
+#if !UCONFIG_NO_FORMATTING
+
+#include "unicode/calendar.h"
+#include "unicode/localpointer.h"
+#include "unicode/unistr.h"
+#include "erarules.h"
+#include "erarulestest.h"
+
+void EraRulesTest::runIndexedTest(int32_t index, UBool exec, const char* &name, char* /*par*/)
+{
+    if (exec) {
+        logln("TestSuite EraRulesTest");
+    }
+    TESTCASE_AUTO_BEGIN;
+    TESTCASE_AUTO(testAPIs);
+    TESTCASE_AUTO(testJapanese);
+    TESTCASE_AUTO_END;
+}
+
+void EraRulesTest::testAPIs() {
+    const char * calTypes[] = {
+        "gregorian",
+        //"iso8601",
+        "buddhist",
+        "chinese",
+        "coptic",
+        "dangi",
+        "ethiopic",
+        "ethiopic-amete-alem",
+        "hebrew",
+        "indian",
+        "islamic",
+        "islamic-civil",
+        "islamic-rgsa",
+        "islamic-tbla",
+        "islamic-umalqura",
+        "japanese",
+        "persian",
+        "roc",
+        //"unknown",
+        NULL
+    };
+
+    for (int32_t i = 0; calTypes[i] != NULL; i++) {
+        UErrorCode status = U_ZERO_ERROR;
+        const char *calId = calTypes[i];
+
+        LocalPointer<EraRules> rules1(EraRules::createInstance(calId, FALSE, status));
+        if (U_FAILURE(status)) {
+            errln(UnicodeString("Era rules for ") + calId + " is not available.");
+            continue;
+        }
+
+        LocalPointer<EraRules> rules2(EraRules::createInstance(calId, TRUE, status));
+        if (U_FAILURE(status)) {
+            errln(UnicodeString("Era rules for ") + calId + " (including tentative eras) is not available.");
+            continue;
+        }
+
+        int32_t numEras1 = rules1->getNumberOfEras();
+        if (numEras1 <= 0) {
+            errln(UnicodeString("Number of era rules for ") + calId + " is " + numEras1);
+        }
+
+        int32_t numEras2 = rules2->getNumberOfEras();
+        if (numEras2 < numEras1) {
+            errln(UnicodeString("Number of era including tentative eras is fewer than one without tentative eras in calendar: ")
+                    + calId);
+        }
+
+        LocalPointer<Calendar> cal(Calendar::createInstance("en", status));
+        if (U_FAILURE(status)) {
+            errln("Failed to create a Calendar instance.");
+            continue;
+        }
+        int32_t currentIdx = rules1->getCurrentEraIndex();
+        int32_t currentYear = cal->get(UCAL_YEAR, status);
+        int32_t idx = rules1->getEraIndex(
+                currentYear, cal->get(UCAL_MONTH, status) + 1,
+                cal->get(UCAL_DATE, status), status);
+        if (U_FAILURE(status)) {
+            errln("Error while getting index of era.");
+            continue;
+        }
+        if (idx != currentIdx) {
+            errln(UnicodeString("Current era index:") + currentIdx + " is different from era index of now:" + idx
+                    + " in calendar:" + calId);
+        }
+
+        int32_t eraStartYear = rules1->getStartYear(currentIdx, status);
+        if (U_FAILURE(status)) {
+            errln(UnicodeString("Failed to get the start year of era index: ") + currentIdx + " in calendar: " + calId);
+        }
+        if (currentYear < eraStartYear) {
+            errln(UnicodeString("Current era's start year is after the current year in calendar:") + calId);
+        }
+    }
+}
+
+void EraRulesTest::testJapanese() {
+    const int32_t HEISEI = 235; // ICU4C does not define constants for eras
+
+    UErrorCode status = U_ZERO_ERROR;
+    LocalPointer<EraRules> rules(EraRules::createInstance("japanese", TRUE, status));
+    if (U_FAILURE(status)) {
+        errln("Failed to get era rules for Japanese calendar.");
+        return;
+    }
+    // Rules should have an era after Heisei
+    int32_t numRules = rules->getNumberOfEras();
+    if (numRules <= HEISEI) {
+        errln("Era after Heisei is not available.");
+        return;
+    }
+    int postHeiseiStartYear = rules->getStartYear(HEISEI + 1, status);
+    if (U_FAILURE(status)) {
+        errln("Failed to get the start year of era after Heisei.");
+    }
+    if (postHeiseiStartYear != 2019) {
+        errln(UnicodeString("Era after Heisei should start in 2019, but got ") + postHeiseiStartYear);
+    }
+}
+
+#endif /* #if !UCONFIG_NO_FORMATTING */
+
diff --git a/source/test/intltest/erarulestest.h b/source/test/intltest/erarulestest.h
new file mode 100644 (file)
index 0000000..28116af
--- /dev/null
@@ -0,0 +1,23 @@
+// © 2018 and later: Unicode, Inc. and others.
+// License & terms of use: http://www.unicode.org/copyright.html
+
+#ifndef ERARULESTEST_H_
+#define ERARULESTEST_H_
+
+#include "unicode/utypes.h"
+
+#if !UCONFIG_NO_FORMATTING
+
+#include "intltest.h"
+
+class EraRulesTest : public IntlTest {
+public:
+    void runIndexedTest(int32_t index, UBool exec, const char* &name, char* par = NULL);
+
+private:
+    void testAPIs();
+    void testJapanese();
+};
+
+#endif /* #if !UCONFIG_NO_FORMATTING */
+#endif /* ERARULESTEST_H_ */
index 0d7bae4..50e0e2e 100644 (file)
@@ -2,7 +2,6 @@
 <Project DefaultTargets="Build" ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
   <!-- The following import will include the 'default' configuration options for VS projects. -->
   <Import Project="..\..\allinone\Build.Windows.ProjectConfiguration.props" />
-
   <PropertyGroup Label="Globals">
     <ProjectGuid>{73632960-B3A6-464D-83A3-4B43365F19B8}</ProjectGuid>
     <RootNamespace>intltest</RootNamespace>
     <ClCompile Include="colldata.cpp">
       <DisableLanguageExtensions>false</DisableLanguageExtensions>
     </ClCompile>
+    <ClCompile Include="erarulestest.cpp" />
     <ClCompile Include="numfmtspectest.cpp" />
     <ClCompile Include="regiontst.cpp" />
     <ClCompile Include="ucharstrietest.cpp" />
     <ClCompile Include="numbertest_parse.cpp" />
     <ClCompile Include="numbertest_doubleconversion.cpp" />
     <ClCompile Include="numbertest_skeletons.cpp" />
+    <ClCompile Include="numbertest_range.cpp" />
     <ClCompile Include="numfmtst.cpp" />
     <ClCompile Include="numfmtdatadriventest.cpp" />
     <ClCompile Include="numrgts.cpp" />
   </ItemGroup>
   <ItemGroup>
     <ClInclude Include="colldata.h" />
+    <ClInclude Include="erarulestest.h" />
     <ClInclude Include="itrbbi.h" />
     <ClInclude Include="rbbiapts.h" />
     <ClInclude Include="rbbitst.h" />
index 4fea442..f1b740d 100644 (file)
@@ -72,7 +72,7 @@
     </ClCompile>
     <ClCompile Include="rbbimonkeytest.cpp">
       <Filter>break iteration</Filter>
-      </ClCompile>
+    </ClCompile>
     <ClCompile Include="itspoof.cpp">
       <Filter>spoof detection</Filter>
     </ClCompile>
     <ClCompile Include="numbertest_skeletons.cpp">
       <Filter>formatting</Filter>
     </ClCompile>
+    <ClCompile Include="numbertest_range.cpp">
+      <Filter>formatting</Filter>
+    </ClCompile>
     <ClCompile Include="numfmtst.cpp">
       <Filter>formatting</Filter>
     </ClCompile>
     <ClCompile Include="ucharstrietest.cpp">
       <Filter>data &amp; memory</Filter>
     </ClCompile>
+    <ClCompile Include="erarulestest.cpp">
+      <Filter>formatting</Filter>
+    </ClCompile>
   </ItemGroup>
   <ItemGroup>
     <ClInclude Include="itrbbi.h">
     <ClInclude Include="listformattertest.h">
       <Filter>formatting</Filter>
     </ClInclude>
+    <ClInclude Include="erarulestest.h">
+      <Filter>formatting</Filter>
+    </ClInclude>
   </ItemGroup>
-</Project>
+</Project>
\ No newline at end of file
index cea3249..d450922 100644 (file)
@@ -60,6 +60,7 @@
 #include "listformattertest.h"  // ListFormatterTest
 #include "regiontst.h"      // RegionTest
 #include "numbertest.h"     // NumberTest
+#include "erarulestest.h"   // EraRulesTest
 
 extern IntlTest *createCompactDecimalFormatTest();
 extern IntlTest *createGenderInfoTest();
@@ -215,6 +216,7 @@ void IntlTestFormat::runIndexedTest( int32_t index, UBool exec, const char* &nam
           break;
         TESTCLASS(50,NumberFormatDataDrivenTest);
         TESTCLASS(51,NumberTest);
+        TESTCLASS(52,EraRulesTest);
         default: name = ""; break; //needed to end loop
     }
     if (exec) {
index 7b2995f..4d34661 100644 (file)
@@ -300,7 +300,7 @@ void ErrorCodeTest::TestIcuTestErrorCode() {
     helper.test = this;
 
     // Test destructor message
-    helper.expectedErrln = u"AAA failure: U_ILLEGAL_PAD_POSITION";
+    helper.expectedErrln = u"AAA destructor: expected success but got error: U_ILLEGAL_PAD_POSITION";
     helper.expectedDataErr = FALSE;
     helper.seenError = FALSE;
     {
@@ -310,7 +310,7 @@ void ErrorCodeTest::TestIcuTestErrorCode() {
     assertTrue("Should have seen an error", helper.seenError);
 
     // Test destructor message with scope
-    helper.expectedErrln = u"BBB failure: U_ILLEGAL_PAD_POSITION scope: foo";
+    helper.expectedErrln = u"BBB destructor: expected success but got error: U_ILLEGAL_PAD_POSITION scope: foo";
     helper.expectedDataErr = FALSE;
     helper.seenError = FALSE;
     {
@@ -321,7 +321,7 @@ void ErrorCodeTest::TestIcuTestErrorCode() {
     assertTrue("Should have seen an error", helper.seenError);
 
     // Check errIfFailure message with scope
-    helper.expectedErrln = u"CCC failure: U_ILLEGAL_PAD_POSITION scope: foo";
+    helper.expectedErrln = u"CCC expected success but got error: U_ILLEGAL_PAD_POSITION scope: foo";
     helper.expectedDataErr = FALSE;
     helper.seenError = FALSE;
     {
@@ -331,14 +331,14 @@ void ErrorCodeTest::TestIcuTestErrorCode() {
         testStatus.errIfFailureAndReset();
         assertTrue("Should have seen an error", helper.seenError);
         helper.seenError = FALSE;
-        helper.expectedErrln = u"CCC failure: U_ILLEGAL_CHAR_FOUND scope: foo - 5.4300";
+        helper.expectedErrln = u"CCC expected success but got error: U_ILLEGAL_CHAR_FOUND scope: foo - 5.4300";
         testStatus.set(U_ILLEGAL_CHAR_FOUND);
         testStatus.errIfFailureAndReset("%6.4f", 5.43);
         assertTrue("Should have seen an error", helper.seenError);
     }
 
     // Check errDataIfFailure message without scope
-    helper.expectedErrln = u"DDD failure: U_ILLEGAL_PAD_POSITION";
+    helper.expectedErrln = u"DDD data: expected success but got error: U_ILLEGAL_PAD_POSITION";
     helper.expectedDataErr = TRUE;
     helper.seenError = FALSE;
     {
@@ -347,11 +347,33 @@ void ErrorCodeTest::TestIcuTestErrorCode() {
         testStatus.errDataIfFailureAndReset();
         assertTrue("Should have seen an error", helper.seenError);
         helper.seenError = FALSE;
-        helper.expectedErrln = u"DDD failure: U_ILLEGAL_CHAR_FOUND - 5.4300";
+        helper.expectedErrln = u"DDD data: expected success but got error: U_ILLEGAL_CHAR_FOUND - 5.4300";
         testStatus.set(U_ILLEGAL_CHAR_FOUND);
         testStatus.errDataIfFailureAndReset("%6.4f", 5.43);
         assertTrue("Should have seen an error", helper.seenError);
     }
+
+    // Check expectFailure
+    helper.expectedErrln = u"EEE expected: U_ILLEGAL_CHAR_FOUND but got error: U_ILLEGAL_PAD_POSITION";
+    helper.expectedDataErr = FALSE;
+    helper.seenError = FALSE;
+    {
+        IcuTestErrorCode testStatus(helper, "EEE");
+        testStatus.set(U_ILLEGAL_PAD_POSITION);
+        testStatus.expectErrorAndReset(U_ILLEGAL_PAD_POSITION);
+        assertFalse("Should NOT have seen an error", helper.seenError);
+        testStatus.set(U_ILLEGAL_PAD_POSITION);
+        testStatus.expectErrorAndReset(U_ILLEGAL_CHAR_FOUND);
+        assertTrue("Should have seen an error", helper.seenError);
+        helper.seenError = FALSE;
+        helper.expectedErrln = u"EEE expected: U_ILLEGAL_CHAR_FOUND but got error: U_ZERO_ERROR scope: scopety scope - 5.4300";
+        testStatus.setScope("scopety scope");
+        testStatus.set(U_ILLEGAL_PAD_POSITION);
+        testStatus.expectErrorAndReset(U_ILLEGAL_PAD_POSITION, "%6.4f", 5.43);
+        assertFalse("Should NOT have seen an error", helper.seenError);
+        testStatus.expectErrorAndReset(U_ILLEGAL_CHAR_FOUND, "%6.4f", 5.43);
+        assertTrue("Should have seen an error", helper.seenError);
+    }
 }
 
 
index af49baa..4cd1c14 100644 (file)
 */
 
 #include "listformattertest.h"
+#include "unicode/ulistformatter.h"
 #include <string.h>
 
+#if !UCONFIG_NO_FORMATTING
+
+namespace {
+const char* attrString(int32_t attrId) {
+  switch (attrId) {
+    case ULISTFMT_LITERAL_FIELD: return "literal";
+    case ULISTFMT_ELEMENT_FIELD: return "element";
+    default: return "xxx";
+  }
+}
+}  // namespace
+
+void ListFormatterTest::ExpectPositions(FieldPositionIterator& iter,
+                                        int32_t *values, int32_t tupleCount) {
+    UBool found[10];
+    FieldPosition fp;
+    if (tupleCount > 10) {
+      assertTrue("internal error, tupleCount too large", FALSE);
+    } else {
+        for (int i = 0; i < tupleCount; ++i) {
+            found[i] = FALSE;
+        }
+    }
+    while (iter.next(fp)) {
+        UBool ok = FALSE;
+        int32_t id = fp.getField();
+        int32_t start = fp.getBeginIndex();
+        int32_t limit = fp.getEndIndex();
+        char buf[128];
+        sprintf(buf, "%24s %3d %3d %3d", attrString(id), id, start, limit);
+        logln(buf);
+        for (int i = 0; i < tupleCount; ++i) {
+            if (found[i]) {
+                continue;
+            }
+            if (values[i*3] == id && values[i*3+1] == start && values[i*3+2] == limit) {
+                found[i] = ok = TRUE;
+                break;
+            }
+        }
+        assertTrue((UnicodeString)"found [" + attrString(id) + "," + start + "," + limit + "]", ok);
+    }
+    // check that all were found
+    UBool ok = TRUE;
+    for (int i = 0; i < tupleCount; ++i) {
+        if (!found[i]) {
+            ok = FALSE;
+            assertTrue((UnicodeString) "missing [" + attrString(values[i*3]) + "," + values[i*3+1] +
+                       "," + values[i*3+2] + "]", found[i]);
+        }
+    }
+    assertTrue("no expected values were missing", ok);
+}
+
 ListFormatterTest::ListFormatterTest() :
         prefix("Prefix: ", -1, US_INV),
         one("Alice", -1, US_INV), two("Bob", -1, US_INV),
@@ -26,9 +81,9 @@ ListFormatterTest::ListFormatterTest() :
 }
 
 void ListFormatterTest::CheckFormatting(const ListFormatter* formatter, UnicodeString data[], int32_t dataSize,
-                                        const UnicodeString& expected_result) {
+                                        const UnicodeString& expected_result, const char* testName) {
     UnicodeString actualResult(prefix);
-    UErrorCode errorCode = U_ZERO_ERROR;
+    IcuTestErrorCode errorCode(*this, testName);
     formatter->format(data, dataSize, actualResult, errorCode);
     UnicodeString expectedStringWithPrefix = prefix + expected_result;
     if (expectedStringWithPrefix != actualResult) {
@@ -37,29 +92,29 @@ void ListFormatterTest::CheckFormatting(const ListFormatter* formatter, UnicodeS
 }
 
 void ListFormatterTest::CheckFourCases(const char* locale_string, UnicodeString one, UnicodeString two,
-        UnicodeString three, UnicodeString four, UnicodeString results[4]) {
-    UErrorCode errorCode = U_ZERO_ERROR;
+        UnicodeString three, UnicodeString four, UnicodeString results[4], const char* testName) {
+    IcuTestErrorCode errorCode(*this, testName);
     LocalPointer<ListFormatter> formatter(ListFormatter::createInstance(Locale(locale_string), errorCode));
     if (U_FAILURE(errorCode)) {
         dataerrln("ListFormatter::createInstance(Locale(\"%s\"), errorCode) failed in CheckFourCases: %s", locale_string, u_errorName(errorCode));
         return;
     }
     UnicodeString input1[] = {one};
-    CheckFormatting(formatter.getAlias(), input1, 1, results[0]);
+    CheckFormatting(formatter.getAlias(), input1, 1, results[0], testName);
 
     UnicodeString input2[] = {one, two};
-    CheckFormatting(formatter.getAlias(), input2, 2, results[1]);
+    CheckFormatting(formatter.getAlias(), input2, 2, results[1], testName);
 
     UnicodeString input3[] = {one, two, three};
-    CheckFormatting(formatter.getAlias(), input3, 3, results[2]);
+    CheckFormatting(formatter.getAlias(), input3, 3, results[2], testName);
 
     UnicodeString input4[] = {one, two, three, four};
-    CheckFormatting(formatter.getAlias(), input4, 4, results[3]);
+    CheckFormatting(formatter.getAlias(), input4, 4, results[3], testName);
 }
 
 UBool ListFormatterTest::RecordFourCases(const Locale& locale, UnicodeString one, UnicodeString two,
-        UnicodeString three, UnicodeString four, UnicodeString results[4])  {
-    UErrorCode errorCode = U_ZERO_ERROR;
+        UnicodeString three, UnicodeString four, UnicodeString results[4], const char* testName)  {
+    IcuTestErrorCode errorCode(*this, testName);
     LocalPointer<ListFormatter> formatter(ListFormatter::createInstance(locale, errorCode));
     if (U_FAILURE(errorCode)) {
         dataerrln("ListFormatter::createInstance(\"%s\", errorCode) failed in RecordFourCases: %s", locale.getName(), u_errorName(errorCode));
@@ -88,14 +143,14 @@ void ListFormatterTest::TestRoot() {
         one + ", " + two + ", " + three + ", " + four
     };
 
-    CheckFourCases("", one, two, three, four, results);
+    CheckFourCases("", one, two, three, four, results, "TestRoot()");
 }
 
 // Bogus locale should fallback to root.
 void ListFormatterTest::TestBogus() {
     UnicodeString results[4];
-    if (RecordFourCases(Locale::getDefault(), one, two, three, four, results)) {
-      CheckFourCases("ex_PY", one, two, three, four, results);
+    if (RecordFourCases(Locale::getDefault(), one, two, three, four, results, "TestBogus()")) {
+      CheckFourCases("ex_PY", one, two, three, four, results, "TestBogus()");
     }
 }
 
@@ -109,11 +164,11 @@ void ListFormatterTest::TestEnglish() {
         one + ", " + two + ", " + three + ", and " + four
     };
 
-    CheckFourCases("en", one, two, three, four, results);
+    CheckFourCases("en", one, two, three, four, results, "TestEnglish()");
 }
 
 void ListFormatterTest::Test9946() {
-    UErrorCode errorCode = U_ZERO_ERROR;
+    IcuTestErrorCode errorCode(*this, "Test9946()");
     LocalPointer<ListFormatter> formatter(ListFormatter::createInstance(Locale("en"), errorCode));
     if (U_FAILURE(errorCode)) {
         dataerrln(
@@ -144,7 +199,7 @@ void ListFormatterTest::TestEnglishUS() {
         one + ", " + two + ", " + three + ", and " + four
     };
 
-    CheckFourCases("en_US", one, two, three, four, results);
+    CheckFourCases("en_US", one, two, three, four, results, "TestEnglishUS()");
 }
 
 // Tests resource loading and inheritance when region sublocale
@@ -158,7 +213,231 @@ void ListFormatterTest::TestEnglishGB() {
         one + ", " + two + ", " + three + " and " + four
     };
 
-    CheckFourCases("en_GB", one, two, three, four, results);
+    CheckFourCases("en_GB", one, two, three, four, results, "TestEnglishGB()");
+}
+
+void ListFormatterTest::TestFieldPositionIteratorWontCrash() {
+    IcuTestErrorCode errorCode(*this, "TestFieldPositionIteratorWontCrash()");
+    LocalPointer<ListFormatter> formatter(
+        ListFormatter::createInstance(Locale("en"), errorCode));
+    if (U_FAILURE(errorCode)) {
+        dataerrln(
+            "ListFormatter::createInstance(Locale(\"en\"), errorCode) failed in "
+            "TestFieldPositionIteratorWontCrash: %s",
+            u_errorName(errorCode));
+        return;
+    }
+    UnicodeString data[3] = {"a", "bbb", "cc"};
+    UnicodeString actualResult;
+     // make sure NULL as FieldPositionIterator won't caused crash.
+    formatter->format(data, 3, actualResult, nullptr, errorCode);
+    if (U_FAILURE(errorCode)) {
+        dataerrln(
+            "ListFormatter::format(data, 3, nullptr, errorCode) "
+            "failed in TestFieldPositionIteratorWontCrash: %s",
+            u_errorName(errorCode));
+        return;
+    }
+}
+
+void ListFormatterTest::RunTestFieldPositionIteratorWithFormatter(
+        ListFormatter* formatter,
+        UnicodeString data[], int32_t n, int32_t expected[], int32_t tupleCount,
+        UnicodeString& appendTo, const char16_t *expectedFormatted,
+        const char* testName) {
+    IcuTestErrorCode errorCode(*this, testName);
+    FieldPositionIterator iter;
+    formatter->format(data, n, appendTo, &iter, errorCode);
+    if (U_FAILURE(errorCode)) {
+        dataerrln(
+            "ListFormatter::format(data, %d, &iter, errorCode) "
+            "failed in %s: %s", n, testName, u_errorName(errorCode));
+        return;
+    }
+    if (appendTo != expectedFormatted) {
+        errln(UnicodeString("Expected: |") + expectedFormatted +  "|, Actual: |" + appendTo + "|");
+    }
+    ExpectPositions(iter, expected, tupleCount);
+}
+
+void ListFormatterTest::RunTestFieldPositionIteratorWithNItemsPatternShift(
+        UnicodeString data[], int32_t n, int32_t expected[], int32_t tupleCount,
+        UnicodeString& appendTo, const char16_t *expectedFormatted,
+        const char* testName) {
+    IcuTestErrorCode errorCode(*this, testName);
+    LocalPointer<ListFormatter> formatter(
+        ListFormatter::createInstance(Locale("ur", "IN"), "unit-narrow", errorCode));
+    if (U_FAILURE(errorCode)) {
+        dataerrln(
+            "ListFormatter::createInstance(Locale(\"ur\", \"IN\"), \"unit-narrow\", errorCode) failed in "
+            "%s: %s", testName, u_errorName(errorCode));
+        return;
+    }
+    RunTestFieldPositionIteratorWithFormatter(
+        formatter.getAlias(),
+        data, n, expected, tupleCount, appendTo, expectedFormatted, testName);
+}
+
+void ListFormatterTest::RunTestFieldPositionIteratorWithNItems(
+        UnicodeString data[], int32_t n, int32_t expected[], int32_t tupleCount,
+        UnicodeString& appendTo, const char16_t *expectedFormatted,
+        const char* testName) {
+    IcuTestErrorCode errorCode(*this, testName);
+    LocalPointer<ListFormatter> formatter(
+        ListFormatter::createInstance(Locale("en"), errorCode));
+    if (U_FAILURE(errorCode)) {
+        dataerrln(
+            "ListFormatter::createInstance(Locale(\"en\"), errorCode) failed in "
+            "%s: %s", testName, u_errorName(errorCode));
+        return;
+    }
+    RunTestFieldPositionIteratorWithFormatter(
+        formatter.getAlias(),
+        data, n, expected, tupleCount, appendTo, expectedFormatted, testName);
+}
+
+void ListFormatterTest::TestFieldPositionIteratorWith3ItemsAndDataBefore() {
+    //  0         1         2
+    //  0123456789012345678901234567
+    // "Hello World: a, bbb, and cc"
+    UnicodeString data[3] = {"a", "bbb", "cc"};
+    int32_t expected[] = {
+        ULISTFMT_ELEMENT_FIELD, 13, 14,
+        ULISTFMT_LITERAL_FIELD, 14, 16,
+        ULISTFMT_ELEMENT_FIELD, 16, 19,
+        ULISTFMT_LITERAL_FIELD, 19, 25,
+        ULISTFMT_ELEMENT_FIELD, 25, 27
+    };
+    int32_t tupleCount = sizeof(expected)/(3 * sizeof(*expected));
+    UnicodeString appendTo(u"Hello World: ");
+    RunTestFieldPositionIteratorWithNItems(
+        data, 3, expected, tupleCount, appendTo,
+        u"Hello World: a, bbb, and cc",
+        "TestFieldPositionIteratorWith3ItemsAndDataBefore");
+}
+
+void ListFormatterTest::TestFieldPositionIteratorWith3Items() {
+    //  0         1
+    //  012345678901234
+    // "a, bbb, and cc"
+    UnicodeString data[3] = {"a", "bbb", "cc"};
+    int32_t expected[] = {
+        ULISTFMT_ELEMENT_FIELD, 0, 1,
+        ULISTFMT_LITERAL_FIELD, 1, 3,
+        ULISTFMT_ELEMENT_FIELD, 3, 6,
+        ULISTFMT_LITERAL_FIELD, 6, 12,
+        ULISTFMT_ELEMENT_FIELD, 12, 14
+    };
+    int32_t tupleCount = sizeof(expected)/(3 * sizeof(*expected));
+    UnicodeString appendTo;
+    RunTestFieldPositionIteratorWithNItems(
+        data, 3, expected, tupleCount, appendTo,
+        u"a, bbb, and cc",
+        "TestFieldPositionIteratorWith3Items");
+}
+
+void ListFormatterTest::TestFieldPositionIteratorWith3ItemsPatternShift() {
+    //  0         1
+    //  012345678901234
+    // "cc bbb a"
+    UnicodeString data[3] = {"a", "bbb", "cc"};
+    int32_t expected[] = {
+        ULISTFMT_ELEMENT_FIELD, 7, 8,
+        ULISTFMT_LITERAL_FIELD, 6, 7,
+        ULISTFMT_ELEMENT_FIELD, 3, 6,
+        ULISTFMT_LITERAL_FIELD, 2, 3,
+        ULISTFMT_ELEMENT_FIELD, 0, 2
+    };
+    int32_t tupleCount = sizeof(expected)/(3 * sizeof(*expected));
+    UnicodeString appendTo;
+    RunTestFieldPositionIteratorWithNItemsPatternShift(
+        data, 3, expected, tupleCount, appendTo,
+        u"cc bbb a",
+        "TestFieldPositionIteratorWith3ItemsPatternShift");
+}
+
+void ListFormatterTest::TestFieldPositionIteratorWith2ItemsAndDataBefore() {
+    //  0         1
+    //  0123456789012345
+    // "Foo: bbb and cc"
+    UnicodeString data[2] = {"bbb", "cc"};
+    int32_t expected[] = {
+        ULISTFMT_ELEMENT_FIELD, 5, 8,
+        ULISTFMT_LITERAL_FIELD, 8, 13,
+        ULISTFMT_ELEMENT_FIELD, 13, 15
+    };
+    int32_t tupleCount = sizeof(expected)/(3 * sizeof(*expected));
+    UnicodeString appendTo("Foo: ");
+    RunTestFieldPositionIteratorWithNItems(
+        data, 2, expected, tupleCount, appendTo,
+        u"Foo: bbb and cc",
+        "TestFieldPositionIteratorWith2ItemsAndDataBefore");
+}
+
+void ListFormatterTest::TestFieldPositionIteratorWith2Items() {
+    //  0         1
+    //  01234567890
+    // "bbb and cc"
+    UnicodeString data[2] = {"bbb", "cc"};
+    int32_t expected[] = {
+        ULISTFMT_ELEMENT_FIELD, 0, 3,
+        ULISTFMT_LITERAL_FIELD, 3, 8,
+        ULISTFMT_ELEMENT_FIELD, 8, 10
+    };
+    int32_t tupleCount = sizeof(expected)/(3 * sizeof(*expected));
+    UnicodeString appendTo;
+    RunTestFieldPositionIteratorWithNItems(
+        data, 2, expected, tupleCount, appendTo,
+        u"bbb and cc",
+        "TestFieldPositionIteratorWith2Items");
+}
+
+void ListFormatterTest::TestFieldPositionIteratorWith2ItemsPatternShift() {
+    //  0         1
+    //  01234567890
+    // "cc bbb"
+    UnicodeString data[2] = {"bbb", "cc"};
+    int32_t expected[] = {
+        ULISTFMT_ELEMENT_FIELD, 3, 6,
+        ULISTFMT_LITERAL_FIELD, 2, 3,
+        ULISTFMT_ELEMENT_FIELD, 0, 2
+    };
+    int32_t tupleCount = sizeof(expected)/(3 * sizeof(*expected));
+    UnicodeString appendTo;
+    RunTestFieldPositionIteratorWithNItemsPatternShift(
+        data, 2, expected, tupleCount, appendTo,
+        u"cc bbb",
+        "TestFieldPositionIteratorWith2ItemsPatternShift");
+}
+
+void ListFormatterTest::TestFieldPositionIteratorWith1ItemAndDataBefore() {
+    //  012345678
+    // "Hello cc"
+    UnicodeString data[1] = {"cc"};
+    int32_t expected[] = {
+        ULISTFMT_ELEMENT_FIELD, 6, 8
+    };
+    int32_t tupleCount = sizeof(expected)/(3 * sizeof(*expected));
+    UnicodeString appendTo("Hello ");
+    RunTestFieldPositionIteratorWithNItems(
+        data, 1, expected, tupleCount, appendTo,
+        u"Hello cc",
+        "TestFieldPositionIteratorWith1ItemAndDataBefore");
+}
+
+void ListFormatterTest::TestFieldPositionIteratorWith1Item() {
+    //  012
+    // "cc"
+    UnicodeString data[1] = {"cc"};
+    int32_t expected[] = {
+        ULISTFMT_ELEMENT_FIELD, 0, 2
+    };
+    int32_t tupleCount = sizeof(expected)/(3 * sizeof(*expected));
+    UnicodeString appendTo;
+    RunTestFieldPositionIteratorWithNItems(
+        data, 1, expected, tupleCount, appendTo,
+        u"cc",
+        "TestFieldPositionIteratorWith1Item");
 }
 
 // Tests resource loading and inheritance when region sublocale
@@ -172,7 +451,7 @@ void ListFormatterTest::TestNynorsk() {
         one + ", " + two + ", " + three + " og " + four
     };
 
-    CheckFourCases("nn", one, two, three, four, results);
+    CheckFourCases("nn", one, two, three, four, results, "TestNynorsk()");
 }
 
 // Tests resource loading and inheritance when region sublocale
@@ -188,7 +467,7 @@ void ListFormatterTest::TestChineseTradHK() {
         one + comma_string + two + comma_string + three + and_string + four
     };
 
-    CheckFourCases("zh_Hant_HK", one, two, three, four, results);
+    CheckFourCases("zh_Hant_HK", one, two, three, four, results, "TestChineseTradHK()");
 }
 
 // Formatting in Russian.
@@ -202,7 +481,7 @@ void ListFormatterTest::TestRussian() {
         one + ", " + two + ", " + three + and_string + four
     };
 
-    CheckFourCases("ru", one, two, three, four, results);
+    CheckFourCases("ru", one, two, three, four, results, "TestRussian()");
 }
 
 // Formatting in Malayalam.
@@ -219,7 +498,7 @@ void ListFormatterTest::TestMalayalam() {
         one + ", " + two + ", " + three + ", " + four + total_string
     };
 
-    CheckFourCases("ml", one, two, three, four, results);
+    CheckFourCases("ml", one, two, three, four, results, "TestMalayalam()");
 }
 
 // Formatting in Zulu.
@@ -232,7 +511,7 @@ void ListFormatterTest::TestZulu() {
         one + ", " + two + ", " + three + ", ne-" + four
     };
 
-    CheckFourCases("zu", one, two, three, four, results);
+    CheckFourCases("zu", one, two, three, four, results, "TestZulu()");
 }
 
 void ListFormatterTest::TestOutOfOrderPatterns() {
@@ -243,22 +522,22 @@ void ListFormatterTest::TestOutOfOrderPatterns() {
         four + " in the last after " + three + " after " + two + " after the first " + one
     };
 
-    UErrorCode errorCode = U_ZERO_ERROR;
+    IcuTestErrorCode errorCode(*this, "TestOutOfOrderPatterns()");
     ListFormatData data("{1} after {0}", "{1} after the first {0}",
                         "{1} after {0}", "{1} in the last after {0}");
     ListFormatter formatter(data, errorCode);
 
     UnicodeString input1[] = {one};
-    CheckFormatting(&formatter, input1, 1, results[0]);
+    CheckFormatting(&formatter, input1, 1, results[0], "TestOutOfOrderPatterns()");
 
     UnicodeString input2[] = {one, two};
-    CheckFormatting(&formatter, input2, 2, results[1]);
+    CheckFormatting(&formatter, input2, 2, results[1], "TestOutOfOrderPatterns()");
 
     UnicodeString input3[] = {one, two, three};
-    CheckFormatting(&formatter, input3, 3, results[2]);
+    CheckFormatting(&formatter, input3, 3, results[2], "TestOutOfOrderPatterns()");
 
     UnicodeString input4[] = {one, two, three, four};
-    CheckFormatting(&formatter, input4, 4, results[3]);
+    CheckFormatting(&formatter, input4, 4, results[3], "TestOutOfOrderPatterns()");
 }
 
 void ListFormatterTest::runIndexedTest(int32_t index, UBool exec,
@@ -276,7 +555,35 @@ void ListFormatterTest::runIndexedTest(int32_t index, UBool exec,
         case 9: name = "TestEnglishGB"; if (exec) TestEnglishGB(); break;
         case 10: name = "TestNynorsk"; if (exec) TestNynorsk(); break;
         case 11: name = "TestChineseTradHK"; if (exec) TestChineseTradHK(); break;
-
+        case 12: name = "TestFieldPositionIteratorWontCrash";
+                 if (exec) TestFieldPositionIteratorWontCrash();
+                 break;
+        case 13: name = "TestFieldPositionIteratorWith1Item";
+                 if (exec) TestFieldPositionIteratorWith1Item();
+                 break;
+        case 14: name = "TestFieldPositionIteratorWith1ItemAndDataBefore";
+                 if (exec) TestFieldPositionIteratorWith1ItemAndDataBefore();
+                 break;
+        case 15: name = "TestFieldPositionIteratorWith2Items";
+                 if (exec) TestFieldPositionIteratorWith2Items();
+                 break;
+        case 16: name = "TestFieldPositionIteratorWith2ItemsAndDataBefore";
+                 if (exec) TestFieldPositionIteratorWith2ItemsAndDataBefore();
+                 break;
+        case 17: name = "TestFieldPositionIteratorWith2ItemsPatternShift";
+                 if (exec) TestFieldPositionIteratorWith2ItemsPatternShift();
+                 break;
+        case 18: name = "TestFieldPositionIteratorWith3Items";
+                 if (exec) TestFieldPositionIteratorWith3Items();
+                 break;
+        case 19: name = "TestFieldPositionIteratorWith3ItemsAndDataBefore";
+                 if (exec) TestFieldPositionIteratorWith3ItemsAndDataBefore();
+                 break;
+        case 20: name = "TestFieldPositionIteratorWith3ItemsPatternShift";
+                 if (exec) TestFieldPositionIteratorWith3ItemsPatternShift();
+                 break;
         default: name = ""; break;
     }
 }
+
+#endif /* #if !UCONFIG_NO_FORMATTING */
index a59a7e0..61aad7c 100644 (file)
@@ -19,6 +19,7 @@
 #ifndef __LISTFORMATTERTEST_H__
 #define __LISTFORMATTERTEST_H__
 
+#include "unicode/fpositer.h"
 #include "unicode/listformatter.h"
 #include "intltest.h"
 
@@ -41,23 +42,68 @@ class ListFormatterTest : public IntlTest {
     void TestZulu();
     void TestOutOfOrderPatterns();
     void Test9946();
+    void TestFieldPositionIteratorWontCrash();
+    void TestFieldPositionIteratorWith1Item();
+    void TestFieldPositionIteratorWith2Items();
+    void TestFieldPositionIteratorWith3Items();
+    void TestFieldPositionIteratorWith1ItemAndDataBefore();
+    void TestFieldPositionIteratorWith2ItemsAndDataBefore();
+    void TestFieldPositionIteratorWith3ItemsAndDataBefore();
+    void TestFieldPositionIteratorWith2ItemsPatternShift();
+    void TestFieldPositionIteratorWith3ItemsPatternShift();
 
   private:
-    void CheckFormatting(const ListFormatter* formatter, UnicodeString data[], int32_t data_size, const UnicodeString& expected_result);
+    void CheckFormatting(
+        const ListFormatter* formatter,
+        UnicodeString data[],
+        int32_t data_size,
+        const UnicodeString& expected_result,
+        const char* testName);
+    void ExpectPositions(
+        FieldPositionIterator& iter,
+        int32_t *values,
+        int32_t tupleCount);
+    void RunTestFieldPositionIteratorWithNItems(
+        UnicodeString *data,
+        int32_t n,
+        int32_t *values,
+        int32_t tupleCount,
+        UnicodeString& appendTo,
+        const char16_t *expectedFormatted,
+        const char* testName);
+    void RunTestFieldPositionIteratorWithNItemsPatternShift(
+        UnicodeString *data,
+        int32_t n,
+        int32_t *values,
+        int32_t tupleCount,
+        UnicodeString& appendTo,
+        const char16_t *expectedFormatted,
+        const char* testName);
+    void RunTestFieldPositionIteratorWithFormatter(
+        ListFormatter* formatter,
+        UnicodeString *data,
+        int32_t n,
+        int32_t *values,
+        int32_t tupleCount,
+        UnicodeString& appendTo,
+        const char16_t *expectedFormatted,
+        const char* testName);
     void CheckFourCases(
         const char* locale_string,
         UnicodeString one,
         UnicodeString two,
         UnicodeString three,
         UnicodeString four,
-        UnicodeString results[4]);
+        UnicodeString results[4],
+        const char* testName);
     UBool RecordFourCases(
         const Locale& locale,
         UnicodeString one,
         UnicodeString two,
         UnicodeString three,
         UnicodeString four,
-        UnicodeString results[4]);
+        UnicodeString results[4],
+        const char* testName);
 
   private:
     // Reused test data.
index 9994e81..c467472 100644 (file)
@@ -6,7 +6,12 @@
  * others. All Rights Reserved.
  ********************************************************************/
 
+#include <iterator>
+#include <set>
+#include <utility>
+
 #include "loctest.h"
+#include "unicode/localpointer.h"
 #include "unicode/decimfmt.h"
 #include "unicode/ucurr.h"
 #include "unicode/smpdtfmt.h"
@@ -15,6 +20,7 @@
 #include "unicode/brkiter.h"
 #include "unicode/coll.h"
 #include "unicode/ustring.h"
+#include "unicode/std_string.h"
 #include "charstr.h"
 #include "cmemory.h"
 #include "cstring.h"
@@ -219,9 +225,18 @@ void LocaleTest::runIndexedTest( int32_t index, UBool exec, const char* &name, c
 #endif
     TESTCASE_AUTO(TestSetIsBogus);
     TESTCASE_AUTO(TestParallelAPIValues);
+    TESTCASE_AUTO(TestAddLikelySubtags);
+    TESTCASE_AUTO(TestMinimizeSubtags);
     TESTCASE_AUTO(TestKeywordVariants);
+    TESTCASE_AUTO(TestCreateUnicodeKeywords);
     TESTCASE_AUTO(TestKeywordVariantParsing);
+    TESTCASE_AUTO(TestCreateKeywordSet);
+    TESTCASE_AUTO(TestCreateUnicodeKeywordSet);
+    TESTCASE_AUTO(TestGetKeywordValueStdString);
+    TESTCASE_AUTO(TestGetUnicodeKeywordValueStdString);
     TESTCASE_AUTO(TestSetKeywordValue);
+    TESTCASE_AUTO(TestSetKeywordValueStringPiece);
+    TESTCASE_AUTO(TestSetUnicodeKeywordValueStringPiece);
     TESTCASE_AUTO(TestGetBaseName);
 #if !UCONFIG_NO_FILE_IO
     TESTCASE_AUTO(TestGetLocale);
@@ -233,6 +248,11 @@ void LocaleTest::runIndexedTest( int32_t index, UBool exec, const char* &name, c
     TESTCASE_AUTO(TestIsRightToLeft);
     TESTCASE_AUTO(TestBug13277);
     TESTCASE_AUTO(TestBug13554);
+    TESTCASE_AUTO(TestForLanguageTag);
+    TESTCASE_AUTO(TestToLanguageTag);
+    TESTCASE_AUTO(TestMoveAssign);
+    TESTCASE_AUTO(TestMoveCtor);
+    TESTCASE_AUTO(TestBug13417VeryLongLanguageTag);
     TESTCASE_AUTO_END;
 }
 
@@ -1136,7 +1156,7 @@ LocaleTest::TestThaiCurrencyFormat()
     UErrorCode status = U_ZERO_ERROR;
     DecimalFormat *thaiCurrency = (DecimalFormat*)NumberFormat::createCurrencyInstance(
                     Locale("th", "TH"), status);
-    UnicodeString posPrefix("THB", 3, US_INV);  // per cldrbug 7618
+    UnicodeString posPrefix(u"\u0E3F");
     UnicodeString temp;
 
     if(U_FAILURE(status) || !thaiCurrency)
@@ -1145,7 +1165,7 @@ LocaleTest::TestThaiCurrencyFormat()
         return;
     }
     if (thaiCurrency->getPositivePrefix(temp) != posPrefix)
-        errln("Thai currency prefix wrong: expected THB, got \"" +
+        errln("Thai currency prefix wrong: expected Baht sign, got \"" +
                         thaiCurrency->getPositivePrefix(temp) + "\"");
     if (thaiCurrency->getPositiveSuffix(temp) != "")
         errln("Thai currency suffix wrong: expected \"\", got \"" +
@@ -1599,6 +1619,34 @@ LocaleTest::TestSetIsBogus() {
 
 
 void
+LocaleTest::TestAddLikelySubtags() {
+    IcuTestErrorCode status(*this, "TestAddLikelySubtags()");
+
+    static const Locale min("sv");
+    static const Locale max("sv_Latn_SE");
+
+    Locale result(min);
+    result.addLikelySubtags(status);
+    status.errIfFailureAndReset("\"%s\"", min.getName());
+    assertEquals("addLikelySubtags", max.getName(), result.getName());
+}
+
+
+void
+LocaleTest::TestMinimizeSubtags() {
+    IcuTestErrorCode status(*this, "TestMinimizeSubtags()");
+
+    static const Locale max("zh_Hant_TW");
+    static const Locale min("zh_TW");
+
+    Locale result(max);
+    result.minimizeSubtags(status);
+    status.errIfFailureAndReset("\"%s\"", max.getName());
+    assertEquals("minimizeSubtags", min.getName(), result.getName());
+}
+
+
+void
 LocaleTest::TestKeywordVariants(void) {
     static const struct {
         const char *localeID;
@@ -1705,6 +1753,63 @@ LocaleTest::TestKeywordVariants(void) {
 
 }
 
+
+void
+LocaleTest::TestCreateUnicodeKeywords(void) {
+    IcuTestErrorCode status(*this, "TestCreateUnicodeKeywords()");
+
+    static const Locale l("de@calendar=buddhist;collation=phonebook");
+
+    LocalPointer<StringEnumeration> keys(l.createUnicodeKeywords(status));
+    status.errIfFailureAndReset("\"%s\"", l.getName());
+
+    const char* key;
+    int32_t resultLength;
+
+    key = keys->next(&resultLength, status);
+    status.errIfFailureAndReset("key #1");
+    assertEquals("resultLength", 2, resultLength);
+    assertTrue("key != nullptr", key != nullptr);
+    if (key != nullptr) {
+        assertEquals("calendar", "ca", key);
+    }
+
+    key = keys->next(&resultLength, status);
+    status.errIfFailureAndReset("key #2");
+    assertEquals("resultLength", 2, resultLength);
+    assertTrue("key != nullptr", key != nullptr);
+    if (key != nullptr) {
+        assertEquals("collation", "co", key);
+    }
+
+    key = keys->next(&resultLength, status);
+    status.errIfFailureAndReset("end of keys");
+    assertEquals("resultLength", 0, resultLength);
+    assertTrue("key == nullptr", key == nullptr);
+
+    const UnicodeString* skey;
+    keys->reset(status);  // KeywordEnumeration::reset() never touches status.
+
+    skey = keys->snext(status);
+    status.errIfFailureAndReset("skey #1");
+    assertTrue("skey != nullptr", skey != nullptr);
+    if (skey != nullptr) {
+        assertEquals("calendar", "ca", *skey);
+    }
+
+    skey = keys->snext(status);
+    status.errIfFailureAndReset("skey #2");
+    assertTrue("skey != nullptr", skey != nullptr);
+    if (skey != nullptr) {
+        assertEquals("collation", "co", *skey);
+    }
+
+    skey = keys->snext(status);
+    status.errIfFailureAndReset("end of keys");
+    assertTrue("skey == nullptr", skey == nullptr);
+}
+
+
 void
 LocaleTest::TestKeywordVariantParsing(void) {
     static const struct {
@@ -1737,6 +1842,74 @@ LocaleTest::TestKeywordVariantParsing(void) {
 }
 
 void
+LocaleTest::TestCreateKeywordSet(void) {
+    IcuTestErrorCode status(*this, "TestCreateKeywordSet()");
+
+    static const Locale l("de@calendar=buddhist;collation=phonebook");
+
+    std::set<std::string> result;
+    l.getKeywords<std::string>(
+            std::insert_iterator<decltype(result)>(result, result.begin()),
+            status);
+    status.errIfFailureAndReset("\"%s\"", l.getName());
+
+    assertEquals("set::size()", 2, result.size());
+    assertTrue("set::find(\"calendar\")",
+               result.find("calendar") != result.end());
+    assertTrue("set::find(\"collation\")",
+               result.find("collation") != result.end());
+}
+
+void
+LocaleTest::TestCreateUnicodeKeywordSet(void) {
+    IcuTestErrorCode status(*this, "TestCreateUnicodeKeywordSet()");
+
+    static const Locale l("de@calendar=buddhist;collation=phonebook");
+
+    std::set<std::string> result;
+    l.getUnicodeKeywords<std::string>(
+            std::insert_iterator<decltype(result)>(result, result.begin()),
+            status);
+    status.errIfFailureAndReset("\"%s\"", l.getName());
+
+    assertEquals("set::size()", 2, result.size());
+    assertTrue("set::find(\"ca\")",
+               result.find("ca") != result.end());
+    assertTrue("set::find(\"co\")",
+               result.find("co") != result.end());
+}
+
+void
+LocaleTest::TestGetKeywordValueStdString(void) {
+    IcuTestErrorCode status(*this, "TestGetKeywordValueStdString()");
+
+    static const char tag[] = "fa-u-nu-latn";
+    static const char keyword[] = "numbers";
+    static const char expected[] = "latn";
+
+    Locale l = Locale::forLanguageTag(tag, status);
+    status.errIfFailureAndReset("\"%s\"", tag);
+
+    std::string result = l.getKeywordValue<std::string>(keyword, status);
+    status.errIfFailureAndReset("\"%s\"", keyword);
+    assertEquals(keyword, expected, result.c_str());
+}
+
+void
+LocaleTest::TestGetUnicodeKeywordValueStdString(void) {
+    IcuTestErrorCode status(*this, "TestGetUnicodeKeywordValueStdString()");
+
+    static const char keyword[] = "co";
+    static const char expected[] = "phonebk";
+
+    static const Locale l("de@calendar=buddhist;collation=phonebook");
+
+    std::string result = l.getUnicodeKeywordValue<std::string>(keyword, status);
+    status.errIfFailureAndReset("\"%s\"", keyword);
+    assertEquals(keyword, expected, result.c_str());
+}
+
+void
 LocaleTest::TestSetKeywordValue(void) {
     static const struct {
         const char *keyword;
@@ -1772,6 +1945,33 @@ LocaleTest::TestSetKeywordValue(void) {
 }
 
 void
+LocaleTest::TestSetKeywordValueStringPiece(void) {
+    IcuTestErrorCode status(*this, "TestSetKeywordValueStringPiece()");
+    Locale l(Locale::getGerman());
+
+    l.setKeywordValue(StringPiece("collation"), StringPiece("phonebook"), status);
+    l.setKeywordValue(StringPiece("calendarxxx", 8), StringPiece("buddhistxxx", 8), status);
+
+    static const char expected[] = "de@calendar=buddhist;collation=phonebook";
+    assertEquals("", expected, l.getName());
+}
+
+void
+LocaleTest::TestSetUnicodeKeywordValueStringPiece(void) {
+    IcuTestErrorCode status(*this, "TestSetUnicodeKeywordValueStringPiece()");
+    Locale l(Locale::getGerman());
+
+    l.setUnicodeKeywordValue(StringPiece("co"), StringPiece("phonebk"), status);
+    status.errIfFailureAndReset();
+
+    l.setUnicodeKeywordValue(StringPiece("caxxx", 2), StringPiece("buddhistxxx", 8), status);
+    status.errIfFailureAndReset();
+
+    static const char expected[] = "de@calendar=buddhist;collation=phonebook";
+    assertEquals("", expected, l.getName());
+}
+
+void
 LocaleTest::TestGetBaseName(void) {
     static const struct {
         const char *localeID;
@@ -2748,4 +2948,209 @@ void LocaleTest::TestBug13554() {
     }
 }
 
+void LocaleTest::TestForLanguageTag() {
+    IcuTestErrorCode status(*this, "TestForLanguageTag()");
+
+    static const char tag_en[] = "en-US";
+    static const char tag_oed[] = "en-GB-oed";
+    static const char tag_af[] = "af-t-ar-i0-handwrit-u-ca-coptic-x-foo";
+    static const char tag_ill[] = "!";
+    static const char tag_no_nul[] = { 'e', 'n', '-', 'G', 'B' };
+
+    static const Locale loc_en("en_US");
+    static const Locale loc_oed("en_GB_OXENDICT");
+    static const Locale loc_af("af@calendar=coptic;t=ar-i0-handwrit;x=foo");
+    static const Locale loc_null("");
+    static const Locale loc_gb("en_GB");
+
+    Locale result_en = Locale::forLanguageTag(tag_en, status);
+    status.errIfFailureAndReset("\"%s\"", tag_en);
+    assertEquals(tag_en, loc_en.getName(), result_en.getName());
+
+    Locale result_oed = Locale::forLanguageTag(tag_oed, status);
+    status.errIfFailureAndReset("\"%s\"", tag_oed);
+    assertEquals(tag_oed, loc_oed.getName(), result_oed.getName());
+
+    Locale result_af = Locale::forLanguageTag(tag_af, status);
+    status.errIfFailureAndReset("\"%s\"", tag_af);
+    assertEquals(tag_af, loc_af.getName(), result_af.getName());
+
+    Locale result_ill = Locale::forLanguageTag(tag_ill, status);
+    assertEquals(tag_ill, U_ILLEGAL_ARGUMENT_ERROR, status.reset());
+    assertTrue(result_ill.getName(), result_ill.isBogus());
+
+    Locale result_null = Locale::forLanguageTag(nullptr, status);
+    status.errIfFailureAndReset("nullptr");
+    assertEquals("nullptr", loc_null.getName(), result_null.getName());
+
+    StringPiece sp_substr(tag_oed, 5);  // "en-GB", no NUL.
+    Locale result_substr = Locale::forLanguageTag(sp_substr, status);
+    status.errIfFailureAndReset("\"%.*s\"", sp_substr.size(), sp_substr.data());
+    assertEquals(CharString(sp_substr, status).data(),
+            loc_gb.getName(), result_substr.getName());
+
+    StringPiece sp_no_nul(tag_no_nul, sizeof tag_no_nul);  // "en-GB", no NUL.
+    Locale result_no_nul = Locale::forLanguageTag(sp_no_nul, status);
+    status.errIfFailureAndReset("\"%.*s\"", sp_no_nul.size(), sp_no_nul.data());
+    assertEquals(CharString(sp_no_nul, status).data(),
+            loc_gb.getName(), result_no_nul.getName());
+}
+
+void LocaleTest::TestToLanguageTag() {
+    IcuTestErrorCode status(*this, "TestToLanguageTag()");
+
+    static const Locale loc_c("C");
+    static const Locale loc_en("en_US");
+    static const Locale loc_af("af@calendar=coptic;t=ar-i0-handwrit;x=foo");
+    static const Locale loc_empty("");
+    static const Locale loc_ill("!");
+
+    static const char tag_c[] = "en-US-u-va-posix";
+    static const char tag_en[] = "en-US";
+    static const char tag_af[] = "af-t-ar-i0-handwrit-u-ca-coptic-x-foo";
+    static const char tag_und[] = "und";
+
+    std::string result;
+    StringByteSink<std::string> sink(&result);
+    loc_c.toLanguageTag(sink, status);
+    status.errIfFailureAndReset("\"%s\"", loc_c.getName());
+    assertEquals(loc_c.getName(), tag_c, result.c_str());
+
+    std::string result_c = loc_c.toLanguageTag<std::string>(status);
+    status.errIfFailureAndReset("\"%s\"", loc_c.getName());
+    assertEquals(loc_c.getName(), tag_c, result_c.c_str());
+
+    std::string result_en = loc_en.toLanguageTag<std::string>(status);
+    status.errIfFailureAndReset("\"%s\"", loc_en.getName());
+    assertEquals(loc_en.getName(), tag_en, result_en.c_str());
+
+    std::string result_af = loc_af.toLanguageTag<std::string>(status);
+    status.errIfFailureAndReset("\"%s\"", loc_af.getName());
+    assertEquals(loc_af.getName(), tag_af, result_af.c_str());
+
+    std::string result_empty = loc_empty.toLanguageTag<std::string>(status);
+    status.errIfFailureAndReset("\"%s\"", loc_empty.getName());
+    assertEquals(loc_empty.getName(), tag_und, result_empty.c_str());
+
+    std::string result_ill = loc_ill.toLanguageTag<std::string>(status);
+    status.errIfFailureAndReset("\"%s\"", loc_ill.getName());
+    assertEquals(loc_ill.getName(), tag_und, result_ill.c_str());
+
+    Locale loc_bogus;
+    loc_bogus.setToBogus();
+    std::string result_bogus = loc_bogus.toLanguageTag<std::string>(status);
+    assertEquals("bogus", U_ILLEGAL_ARGUMENT_ERROR, status.reset());
+    assertTrue(result_bogus.c_str(), result_bogus.empty());
+}
+
+void LocaleTest::TestMoveAssign() {
+    // ULOC_FULLNAME_CAPACITY == 157 (uloc.h)
+    Locale l1("de@collation=phonebook;x="
+              "aaaaabbbbbcccccdddddeeeeefffffggggghhhhh"
+              "aaaaabbbbbcccccdddddeeeeefffffggggghhhhh"
+              "aaaaabbbbbcccccdddddeeeeefffffggggghhhhh"
+              "aaaaabbbbbzz");
+
+    Locale l2;
+    {
+        Locale l3(l1);
+        assertTrue("l1 == l3", l1 == l3);
+        l2 = std::move(l3);
+        assertTrue("l1 == l2", l1 == l2);
+        assertTrue("l2 != l3", l2.getName() != l3.getName());
+    }
+
+    // This should remain true also after l3 has been destructed.
+    assertTrue("l1 == l2, again", l1 == l2);
+
+    Locale l4("de@collation=phonebook");
+
+    Locale l5;
+    {
+        Locale l6(l4);
+        assertTrue("l4 == l6", l4 == l6);
+        l5 = std::move(l6);
+        assertTrue("l4 == l5", l4 == l5);
+        assertTrue("l5 != l6", l5.getName() != l6.getName());
+    }
+
+    // This should remain true also after l6 has been destructed.
+    assertTrue("l4 == l5, again", l4 == l5);
+
+    Locale l7("vo_Cyrl_AQ_EURO");
+
+    Locale l8;
+    {
+        Locale l9(l7);
+        assertTrue("l7 == l9", l7 == l9);
+        l8 = std::move(l9);
+        assertTrue("l7 == l8", l7 == l8);
+        assertTrue("l8 != l9", l8.getName() != l9.getName());
+    }
+
+    // This should remain true also after l9 has been destructed.
+    assertTrue("l7 == l8, again", l7 == l8);
+
+    assertEquals("language", l7.getLanguage(), l8.getLanguage());
+    assertEquals("script", l7.getScript(), l8.getScript());
+    assertEquals("country", l7.getCountry(), l8.getCountry());
+    assertEquals("variant", l7.getVariant(), l8.getVariant());
+    assertEquals("bogus", l7.isBogus(), l8.isBogus());
+}
+
+void LocaleTest::TestMoveCtor() {
+    // ULOC_FULLNAME_CAPACITY == 157 (uloc.h)
+    Locale l1("de@collation=phonebook;x="
+              "aaaaabbbbbcccccdddddeeeeefffffggggghhhhh"
+              "aaaaabbbbbcccccdddddeeeeefffffggggghhhhh"
+              "aaaaabbbbbcccccdddddeeeeefffffggggghhhhh"
+              "aaaaabbbbbzz");
+
+    Locale l3(l1);
+    assertTrue("l1 == l3", l1 == l3);
+    Locale l2(std::move(l3));
+    assertTrue("l1 == l2", l1 == l2);
+    assertTrue("l2 != l3", l2.getName() != l3.getName());
+
+    Locale l4("de@collation=phonebook");
+
+    Locale l6(l4);
+    assertTrue("l4 == l6", l4 == l6);
+    Locale l5(std::move(l6));
+    assertTrue("l4 == l5", l4 == l5);
+    assertTrue("l5 != l6", l5.getName() != l6.getName());
+
+    Locale l7("vo_Cyrl_AQ_EURO");
+
+    Locale l9(l7);
+    assertTrue("l7 == l9", l7 == l9);
+    Locale l8(std::move(l9));
+    assertTrue("l7 == l8", l7 == l8);
+    assertTrue("l8 != l9", l8.getName() != l9.getName());
+
+    assertEquals("language", l7.getLanguage(), l8.getLanguage());
+    assertEquals("script", l7.getScript(), l8.getScript());
+    assertEquals("country", l7.getCountry(), l8.getCountry());
+    assertEquals("variant", l7.getVariant(), l8.getVariant());
+    assertEquals("bogus", l7.isBogus(), l8.isBogus());
+}
+
+void LocaleTest::TestBug13417VeryLongLanguageTag() {
+    IcuTestErrorCode status(*this, "TestBug13417VeryLongLanguageTag()");
+
+    static const char tag[] =
+        "zh-x"
+        "-foo-bar-baz-foo-bar-baz-foo-bar-baz-foo-bar-baz"
+        "-foo-bar-baz-foo-bar-baz-foo-bar-baz-foo-bar-baz"
+        "-foo-bar-baz-foo-bar-baz-foo-bar-baz-foo-bar-baz"
+        "-foo-bar-baz-fxx"
+    ;
 
+    Locale l = Locale::forLanguageTag(tag, status);
+    status.errIfFailureAndReset("\"%s\"", tag);
+    assertTrue("!l.isBogus()", !l.isBogus());
+
+    std::string result = l.toLanguageTag<std::string>(status);
+    status.errIfFailureAndReset("\"%s\"", l.getName());
+    assertEquals("equals", tag, result.c_str());
+}
index 344e881..2a83be5 100644 (file)
@@ -72,14 +72,21 @@ public:
     
     void TestVariantParsing(void);
 
-   /* Test getting keyword enumeratin */
+   /* Test getting keyword enumeration */
    void TestKeywordVariants(void);
+   void TestCreateUnicodeKeywords(void);
 
    /* Test getting keyword values */
    void TestKeywordVariantParsing(void);
+   void TestCreateKeywordSet(void);
+   void TestCreateUnicodeKeywordSet(void);
+   void TestGetKeywordValueStdString(void);
+   void TestGetUnicodeKeywordValueStdString(void);
 
    /* Test setting keyword values */
    void TestSetKeywordValue(void);
+   void TestSetKeywordValueStringPiece(void);
+   void TestSetUnicodeKeywordValueStringPiece(void);
 
    /* Test getting the locale base name */
    void TestGetBaseName(void);
@@ -108,6 +115,17 @@ public:
     void TestBug13277();
     void TestBug13554();
 
+    void TestAddLikelySubtags();
+    void TestMinimizeSubtags();
+
+    void TestForLanguageTag();
+    void TestToLanguageTag();
+
+    void TestMoveAssign();
+    void TestMoveCtor();
+
+    void TestBug13417VeryLongLanguageTag();
+
 private:
     void _checklocs(const char* label,
                     const char* req,
index 8d7ec81..a0599ba 100644 (file)
@@ -50,6 +50,7 @@ private:
     void TestCompatible57();
     void TestCompatible58();
     void TestCompatible59();
+    void TestCompatible63();
     void TestGetAvailable();
     void TestExamplesInDocs();
     void TestFormatPeriodEn();
@@ -147,6 +148,7 @@ void MeasureFormatTest::runIndexedTest(
     TESTCASE_AUTO(TestCompatible57);
     TESTCASE_AUTO(TestCompatible58);
     TESTCASE_AUTO(TestCompatible59);
+    TESTCASE_AUTO(TestCompatible63);
     TESTCASE_AUTO(TestGetAvailable);
     TESTCASE_AUTO(TestExamplesInDocs);
     TESTCASE_AUTO(TestFormatPeriodEn);
@@ -1042,6 +1044,151 @@ void MeasureFormatTest::TestCompatible59() {
 // Note that TestCompatible60(), TestCompatible61(), TestCompatible62()
 // would be the same as TestCompatible59(), no need to add them.
 
+void MeasureFormatTest::TestCompatible63() {
+    UErrorCode status = U_ZERO_ERROR;
+    LocalPointer<MeasureUnit> measureUnit;
+    measureUnit.adoptInstead(MeasureUnit::createGForce(status));
+    measureUnit.adoptInstead(MeasureUnit::createMeterPerSecondSquared(status));
+    measureUnit.adoptInstead(MeasureUnit::createArcMinute(status));
+    measureUnit.adoptInstead(MeasureUnit::createArcSecond(status));
+    measureUnit.adoptInstead(MeasureUnit::createDegree(status));
+    measureUnit.adoptInstead(MeasureUnit::createRadian(status));
+    measureUnit.adoptInstead(MeasureUnit::createRevolutionAngle(status));
+    measureUnit.adoptInstead(MeasureUnit::createAcre(status));
+    measureUnit.adoptInstead(MeasureUnit::createHectare(status));
+    measureUnit.adoptInstead(MeasureUnit::createSquareCentimeter(status));
+    measureUnit.adoptInstead(MeasureUnit::createSquareFoot(status));
+    measureUnit.adoptInstead(MeasureUnit::createSquareInch(status));
+    measureUnit.adoptInstead(MeasureUnit::createSquareKilometer(status));
+    measureUnit.adoptInstead(MeasureUnit::createSquareMeter(status));
+    measureUnit.adoptInstead(MeasureUnit::createSquareMile(status));
+    measureUnit.adoptInstead(MeasureUnit::createSquareYard(status));
+    measureUnit.adoptInstead(MeasureUnit::createKarat(status));
+    measureUnit.adoptInstead(MeasureUnit::createMilligramPerDeciliter(status));
+    measureUnit.adoptInstead(MeasureUnit::createMillimolePerLiter(status));
+    measureUnit.adoptInstead(MeasureUnit::createPartPerMillion(status));
+    measureUnit.adoptInstead(MeasureUnit::createPercent(status));
+    measureUnit.adoptInstead(MeasureUnit::createPermille(status));
+    measureUnit.adoptInstead(MeasureUnit::createLiterPer100Kilometers(status));
+    measureUnit.adoptInstead(MeasureUnit::createLiterPerKilometer(status));
+    measureUnit.adoptInstead(MeasureUnit::createMilePerGallon(status));
+    measureUnit.adoptInstead(MeasureUnit::createMilePerGallonImperial(status));
+    measureUnit.adoptInstead(MeasureUnit::createBit(status));
+    measureUnit.adoptInstead(MeasureUnit::createByte(status));
+    measureUnit.adoptInstead(MeasureUnit::createGigabit(status));
+    measureUnit.adoptInstead(MeasureUnit::createGigabyte(status));
+    measureUnit.adoptInstead(MeasureUnit::createKilobit(status));
+    measureUnit.adoptInstead(MeasureUnit::createKilobyte(status));
+    measureUnit.adoptInstead(MeasureUnit::createMegabit(status));
+    measureUnit.adoptInstead(MeasureUnit::createMegabyte(status));
+    measureUnit.adoptInstead(MeasureUnit::createPetabyte(status));
+    measureUnit.adoptInstead(MeasureUnit::createTerabit(status));
+    measureUnit.adoptInstead(MeasureUnit::createTerabyte(status));
+    measureUnit.adoptInstead(MeasureUnit::createCentury(status));
+    measureUnit.adoptInstead(MeasureUnit::createDay(status));
+    measureUnit.adoptInstead(MeasureUnit::createHour(status));
+    measureUnit.adoptInstead(MeasureUnit::createMicrosecond(status));
+    measureUnit.adoptInstead(MeasureUnit::createMillisecond(status));
+    measureUnit.adoptInstead(MeasureUnit::createMinute(status));
+    measureUnit.adoptInstead(MeasureUnit::createMonth(status));
+    measureUnit.adoptInstead(MeasureUnit::createNanosecond(status));
+    measureUnit.adoptInstead(MeasureUnit::createSecond(status));
+    measureUnit.adoptInstead(MeasureUnit::createWeek(status));
+    measureUnit.adoptInstead(MeasureUnit::createYear(status));
+    measureUnit.adoptInstead(MeasureUnit::createAmpere(status));
+    measureUnit.adoptInstead(MeasureUnit::createMilliampere(status));
+    measureUnit.adoptInstead(MeasureUnit::createOhm(status));
+    measureUnit.adoptInstead(MeasureUnit::createVolt(status));
+    measureUnit.adoptInstead(MeasureUnit::createCalorie(status));
+    measureUnit.adoptInstead(MeasureUnit::createFoodcalorie(status));
+    measureUnit.adoptInstead(MeasureUnit::createJoule(status));
+    measureUnit.adoptInstead(MeasureUnit::createKilocalorie(status));
+    measureUnit.adoptInstead(MeasureUnit::createKilojoule(status));
+    measureUnit.adoptInstead(MeasureUnit::createKilowattHour(status));
+    measureUnit.adoptInstead(MeasureUnit::createGigahertz(status));
+    measureUnit.adoptInstead(MeasureUnit::createHertz(status));
+    measureUnit.adoptInstead(MeasureUnit::createKilohertz(status));
+    measureUnit.adoptInstead(MeasureUnit::createMegahertz(status));
+    measureUnit.adoptInstead(MeasureUnit::createAstronomicalUnit(status));
+    measureUnit.adoptInstead(MeasureUnit::createCentimeter(status));
+    measureUnit.adoptInstead(MeasureUnit::createDecimeter(status));
+    measureUnit.adoptInstead(MeasureUnit::createFathom(status));
+    measureUnit.adoptInstead(MeasureUnit::createFoot(status));
+    measureUnit.adoptInstead(MeasureUnit::createFurlong(status));
+    measureUnit.adoptInstead(MeasureUnit::createInch(status));
+    measureUnit.adoptInstead(MeasureUnit::createKilometer(status));
+    measureUnit.adoptInstead(MeasureUnit::createLightYear(status));
+    measureUnit.adoptInstead(MeasureUnit::createMeter(status));
+    measureUnit.adoptInstead(MeasureUnit::createMicrometer(status));
+    measureUnit.adoptInstead(MeasureUnit::createMile(status));
+    measureUnit.adoptInstead(MeasureUnit::createMileScandinavian(status));
+    measureUnit.adoptInstead(MeasureUnit::createMillimeter(status));
+    measureUnit.adoptInstead(MeasureUnit::createNanometer(status));
+    measureUnit.adoptInstead(MeasureUnit::createNauticalMile(status));
+    measureUnit.adoptInstead(MeasureUnit::createParsec(status));
+    measureUnit.adoptInstead(MeasureUnit::createPicometer(status));
+    measureUnit.adoptInstead(MeasureUnit::createPoint(status));
+    measureUnit.adoptInstead(MeasureUnit::createYard(status));
+    measureUnit.adoptInstead(MeasureUnit::createLux(status));
+    measureUnit.adoptInstead(MeasureUnit::createCarat(status));
+    measureUnit.adoptInstead(MeasureUnit::createGram(status));
+    measureUnit.adoptInstead(MeasureUnit::createKilogram(status));
+    measureUnit.adoptInstead(MeasureUnit::createMetricTon(status));
+    measureUnit.adoptInstead(MeasureUnit::createMicrogram(status));
+    measureUnit.adoptInstead(MeasureUnit::createMilligram(status));
+    measureUnit.adoptInstead(MeasureUnit::createOunce(status));
+    measureUnit.adoptInstead(MeasureUnit::createOunceTroy(status));
+    measureUnit.adoptInstead(MeasureUnit::createPound(status));
+    measureUnit.adoptInstead(MeasureUnit::createStone(status));
+    measureUnit.adoptInstead(MeasureUnit::createTon(status));
+    measureUnit.adoptInstead(MeasureUnit::createGigawatt(status));
+    measureUnit.adoptInstead(MeasureUnit::createHorsepower(status));
+    measureUnit.adoptInstead(MeasureUnit::createKilowatt(status));
+    measureUnit.adoptInstead(MeasureUnit::createMegawatt(status));
+    measureUnit.adoptInstead(MeasureUnit::createMilliwatt(status));
+    measureUnit.adoptInstead(MeasureUnit::createWatt(status));
+    measureUnit.adoptInstead(MeasureUnit::createAtmosphere(status));
+    measureUnit.adoptInstead(MeasureUnit::createHectopascal(status));
+    measureUnit.adoptInstead(MeasureUnit::createInchHg(status));
+    measureUnit.adoptInstead(MeasureUnit::createMillibar(status));
+    measureUnit.adoptInstead(MeasureUnit::createMillimeterOfMercury(status));
+    measureUnit.adoptInstead(MeasureUnit::createPoundPerSquareInch(status));
+    measureUnit.adoptInstead(MeasureUnit::createKilometerPerHour(status));
+    measureUnit.adoptInstead(MeasureUnit::createKnot(status));
+    measureUnit.adoptInstead(MeasureUnit::createMeterPerSecond(status));
+    measureUnit.adoptInstead(MeasureUnit::createMilePerHour(status));
+    measureUnit.adoptInstead(MeasureUnit::createCelsius(status));
+    measureUnit.adoptInstead(MeasureUnit::createFahrenheit(status));
+    measureUnit.adoptInstead(MeasureUnit::createGenericTemperature(status));
+    measureUnit.adoptInstead(MeasureUnit::createKelvin(status));
+    measureUnit.adoptInstead(MeasureUnit::createAcreFoot(status));
+    measureUnit.adoptInstead(MeasureUnit::createBushel(status));
+    measureUnit.adoptInstead(MeasureUnit::createCentiliter(status));
+    measureUnit.adoptInstead(MeasureUnit::createCubicCentimeter(status));
+    measureUnit.adoptInstead(MeasureUnit::createCubicFoot(status));
+    measureUnit.adoptInstead(MeasureUnit::createCubicInch(status));
+    measureUnit.adoptInstead(MeasureUnit::createCubicKilometer(status));
+    measureUnit.adoptInstead(MeasureUnit::createCubicMeter(status));
+    measureUnit.adoptInstead(MeasureUnit::createCubicMile(status));
+    measureUnit.adoptInstead(MeasureUnit::createCubicYard(status));
+    measureUnit.adoptInstead(MeasureUnit::createCup(status));
+    measureUnit.adoptInstead(MeasureUnit::createCupMetric(status));
+    measureUnit.adoptInstead(MeasureUnit::createDeciliter(status));
+    measureUnit.adoptInstead(MeasureUnit::createFluidOunce(status));
+    measureUnit.adoptInstead(MeasureUnit::createGallon(status));
+    measureUnit.adoptInstead(MeasureUnit::createGallonImperial(status));
+    measureUnit.adoptInstead(MeasureUnit::createHectoliter(status));
+    measureUnit.adoptInstead(MeasureUnit::createLiter(status));
+    measureUnit.adoptInstead(MeasureUnit::createMegaliter(status));
+    measureUnit.adoptInstead(MeasureUnit::createMilliliter(status));
+    measureUnit.adoptInstead(MeasureUnit::createPint(status));
+    measureUnit.adoptInstead(MeasureUnit::createPintMetric(status));
+    measureUnit.adoptInstead(MeasureUnit::createQuart(status));
+    measureUnit.adoptInstead(MeasureUnit::createTablespoon(status));
+    measureUnit.adoptInstead(MeasureUnit::createTeaspoon(status));
+    assertSuccess("", status);
+}
+
 void MeasureFormatTest::TestBasic() {
     UErrorCode status = U_ZERO_ERROR;
     MeasureUnit *ptr1 = MeasureUnit::createArcMinute(status);
@@ -1166,39 +1313,39 @@ void MeasureFormatTest::TestExamplesInDocs() {
             fmtFr,
             &measureC,
             1,
-            "23 \\u00B0C");
+            "23\\u202F\\u00B0C");
     verifyFormatWithPrefix(
             "Celsius",
             fmtFr,
             "Prefix: ",
             &measureC,
             1,
-            "Prefix: 23 \\u00B0C");
+            "Prefix: 23\\u202F\\u00B0C");
     verifyFormat(
             "Fahrenheit",
             fmtFr,
             &measureF,
             1,
-            "70 \\u00B0F");
+            "70\\u202F\\u00B0F");
     verifyFormat(
             "Feet and inches",
             fmtFrFull,
             feetAndInches,
             UPRV_LENGTHOF(feetAndInches),
-            "70 pieds et 5,3 pouces");
+            "70 pieds et 5,3\\u00A0pouces");
     verifyFormatWithPrefix(
             "Feet and inches",
             fmtFrFull,
             "Prefix: ",
             feetAndInches,
             UPRV_LENGTHOF(feetAndInches),
-            "Prefix: 70 pieds et 5,3 pouces");
+            "Prefix: 70 pieds et 5,3\\u00A0pouces");
     verifyFormat(
             "Foot and inch",
             fmtFrFull,
             footAndInch,
             UPRV_LENGTHOF(footAndInch),
-            "1 pied et 1 pouce");
+            "1\\u00A0pied et 1\\u00A0pouce");
     verifyFormat(
             "Foot and inch narrow",
             fmtFrNarrow,
@@ -1799,11 +1946,11 @@ void MeasureFormatTest::TestManyLocaleDurations() {
     helperTestManyLocaleDurations("es", UMEASFMT_WIDTH_NUMERIC, measures, UPRV_LENGTHOF(measures), "5:37");
     helperTestManyLocaleDurations("fi", UMEASFMT_WIDTH_NARROW,  measures, UPRV_LENGTHOF(measures), "5t 37min");
     helperTestManyLocaleDurations("fi", UMEASFMT_WIDTH_NUMERIC, measures, UPRV_LENGTHOF(measures), "5.37");
-    helperTestManyLocaleDurations("fr", UMEASFMT_WIDTH_NARROW,  measures, UPRV_LENGTHOF(measures), "5h 37 min");
+    helperTestManyLocaleDurations("fr", UMEASFMT_WIDTH_NARROW,  measures, UPRV_LENGTHOF(measures), "5h 37\\u202Fmin");
     helperTestManyLocaleDurations("fr", UMEASFMT_WIDTH_NUMERIC, measures, UPRV_LENGTHOF(measures), "5:37");
     helperTestManyLocaleDurations("is", UMEASFMT_WIDTH_NARROW,  measures, UPRV_LENGTHOF(measures), "5 klst. og 37 m\\u00EDn.");
     helperTestManyLocaleDurations("is", UMEASFMT_WIDTH_NUMERIC, measures, UPRV_LENGTHOF(measures), "5:37");
-    helperTestManyLocaleDurations("ja", UMEASFMT_WIDTH_NARROW,  measures, UPRV_LENGTHOF(measures), "5\\u6642\\u959337\\u5206");
+    helperTestManyLocaleDurations("ja", UMEASFMT_WIDTH_NARROW,  measures, UPRV_LENGTHOF(measures), "5h37m");
     helperTestManyLocaleDurations("ja", UMEASFMT_WIDTH_NUMERIC, measures, UPRV_LENGTHOF(measures), "5:37");
     helperTestManyLocaleDurations("nb", UMEASFMT_WIDTH_NARROW,  measures, UPRV_LENGTHOF(measures), "5t, 37m");
     helperTestManyLocaleDurations("nb", UMEASFMT_WIDTH_NUMERIC, measures, UPRV_LENGTHOF(measures), "5:37");
@@ -1857,9 +2004,14 @@ void MeasureFormatTest::TestGram() {
 }
 
 void MeasureFormatTest::TestCurrencies() {
-    UChar USD[4];
+    UChar USD[4] = {};
     u_uastrcpy(USD, "USD");
     UErrorCode status = U_ZERO_ERROR;
+    CurrencyUnit USD_unit(USD, status);
+    assertEquals("Currency Unit", USD, USD_unit.getISOCurrency());
+    if (!assertSuccess("Error creating CurrencyUnit", status)) {
+        return;
+    }
     CurrencyAmount USD_1(1.0, USD, status);
     assertEquals("Currency Code", USD, USD_1.getISOCurrency());
     CurrencyAmount USD_2(2.0, USD, status);
index 8984fdc..49c2d44 100644 (file)
@@ -11,6 +11,8 @@
 #include "number_affixutils.h"
 #include "numparse_stringsegment.h"
 #include "unicode/locid.h"
+#include "unicode/numberformatter.h"
+#include "unicode/numberrangeformatter.h"
 
 using namespace icu::number;
 using namespace icu::number::impl;
@@ -244,6 +246,54 @@ class NumberSkeletonTest : public IntlTest {
     void expectedErrorSkeleton(const char16_t** cases, int32_t casesLen);
 };
 
+class NumberRangeFormatterTest : public IntlTest {
+  public:
+    NumberRangeFormatterTest();
+    NumberRangeFormatterTest(UErrorCode &status);
+
+    void testSanity();
+    void testBasic();
+    void testCollapse();
+    void testIdentity();
+    void testDifferentFormatters();
+    void testPlurals();
+    void testCopyMove();
+
+    void runIndexedTest(int32_t index, UBool exec, const char *&name, char *par = 0);
+
+  private:
+    CurrencyUnit USD;
+    CurrencyUnit GBP;
+    CurrencyUnit PTE;
+
+    MeasureUnit METER;
+    MeasureUnit KILOMETER;
+    MeasureUnit FAHRENHEIT;
+    MeasureUnit KELVIN;
+
+    void assertFormatRange(
+      const char16_t* message,
+      const UnlocalizedNumberRangeFormatter& f,
+      Locale locale,
+      const char16_t* expected_10_50,
+      const char16_t* expected_49_51,
+      const char16_t* expected_50_50,
+      const char16_t* expected_00_30,
+      const char16_t* expected_00_00,
+      const char16_t* expected_30_3K,
+      const char16_t* expected_30K_50K,
+      const char16_t* expected_49K_51K,
+      const char16_t* expected_50K_50K,
+      const char16_t* expected_50K_50M);
+    
+    void assertFormattedRangeEquals(
+      const char16_t* message,
+      const LocalizedNumberRangeFormatter& l,
+      double first,
+      double second,
+      const char16_t* expected);
+};
+
 
 // NOTE: This macro is identical to the one in itformat.cpp
 #define TESTCLASS(id, TestClass)          \
@@ -276,6 +326,7 @@ class NumberTest : public IntlTest {
         TESTCLASS(8, StringSegmentTest);
         TESTCLASS(9, NumberParserTest);
         TESTCLASS(10, NumberSkeletonTest);
+        TESTCLASS(11, NumberRangeFormatterTest);
         default: name = ""; break; // needed to end loop
         }
     }
index 59c0d20..54f5e63 100644 (file)
@@ -17,6 +17,7 @@
 #include "unicode/utypes.h"
 
 // Horrible workaround for the lack of a status code in the constructor...
+// (Also affects numbertest_range.cpp)
 UErrorCode globalNumberFormatterApiTestStatus = U_ZERO_ERROR;
 
 NumberFormatterApiTest::NumberFormatterApiTest()
@@ -402,6 +403,22 @@ void NumberFormatterApiTest::notationCompact() {
             9990000,
             u"10M");
 
+    assertFormatSingle(
+            u"Compact in zh-Hant-HK",
+            u"compact-short",
+            NumberFormatter::with().notation(Notation::compactShort()),
+            Locale("zh-Hant-HK"),
+            1e7,
+            u"10M");
+
+    assertFormatSingle(
+            u"Compact in zh-Hant",
+            u"compact-short",
+            NumberFormatter::with().notation(Notation::compactShort()),
+            Locale("zh-Hant"),
+            1e7,
+            u"1000\u842C");
+
     // NOTE: There is no API for compact custom data in C++
     // and thus no "Compact Somali No Figure" test
 }
@@ -1553,8 +1570,8 @@ void NumberFormatterApiTest::symbols() {
             nullptr,
             NumberFormatter::with().symbols(FRENCH_SYMBOLS),
             Locale::getJapan(),
-            u"87 650",
-            u"8 765",
+            u"87\u202F650",
+            u"8\u202F765",
             u"876,5",
             u"87,65",
             u"8,765",
@@ -1591,8 +1608,8 @@ void NumberFormatterApiTest::symbols() {
             u"numbering-system/mathsanb",
             NumberFormatter::with().adoptSymbols(new NumberingSystem(MATHSANB)),
             Locale::getFrench(),
-            u"𝟴𝟳 𝟲𝟱𝟬",
-            u"𝟴 𝟳𝟲𝟱",
+            u"𝟴𝟳\u202F𝟲𝟱𝟬",
+            u"𝟴\u202F𝟳𝟲𝟱",
             u"𝟴𝟳𝟲,𝟱",
             u"𝟴𝟳,𝟲𝟱",
             u"𝟴,𝟳𝟲𝟱",
@@ -2045,7 +2062,7 @@ void NumberFormatterApiTest::locale() {
     UErrorCode status = U_ZERO_ERROR;
     UnicodeString actual = NumberFormatter::withLocale(Locale::getFrench()).formatInt(1234, status)
             .toString();
-    assertEquals("Locale withLocale()", u"1 234", actual);
+    assertEquals("Locale withLocale()", u"1\u202f234", actual);
 }
 
 void NumberFormatterApiTest::formatTypes() {
@@ -2371,8 +2388,15 @@ void NumberFormatterApiTest::copyMove() {
     assertTrue("[constructor] Source should be reset after move", l1.getCompiled() == nullptr);
 
     // Reset l1 and l2 to check for macro-props copying for behavior testing
+    // Make the test more interesting: also warm them up with a compiled formatter.
     l1 = NumberFormatter::withLocale("en");
+    l1.formatInt(1, status);
+    l1.formatInt(1, status);
+    l1.formatInt(1, status);
     l2 = NumberFormatter::withLocale("en");
+    l2.formatInt(1, status);
+    l2.formatInt(1, status);
+    l2.formatInt(1, status);
 
     // Copy assignment
     l1 = l3;
index 6d8f199..52f4f49 100644 (file)
@@ -162,12 +162,12 @@ void ModifiersTest::assertModifierEquals(const Modifier &mod, NumberStringBuilde
                                          UErrorCode &status) {
     int32_t oldCount = sb.codePointCount();
     mod.apply(sb, 0, sb.length(), status);
-    assertEquals("Prefix length", expectedPrefixLength, mod.getPrefixLength(status));
+    assertEquals("Prefix length", expectedPrefixLength, mod.getPrefixLength());
     assertEquals("Strong", expectedStrong, mod.isStrong());
     if (dynamic_cast<const CurrencySpacingEnabledModifier*>(&mod) == nullptr) {
         // i.e., if mod is not a CurrencySpacingEnabledModifier
         assertEquals("Code point count equals actual code point count",
-                sb.codePointCount() - oldCount, mod.getCodePointCount(status));
+                sb.codePointCount() - oldCount, mod.getCodePointCount());
     }
 
     UnicodeString debugString;
index e3071b3..3a0fda8 100644 (file)
@@ -170,14 +170,14 @@ void PatternModifierTest::testMutableEqualsImmutable() {
 UnicodeString PatternModifierTest::getPrefix(const MutablePatternModifier &mod, UErrorCode &status) {
     NumberStringBuilder nsb;
     mod.apply(nsb, 0, 0, status);
-    int32_t prefixLength = mod.getPrefixLength(status);
+    int32_t prefixLength = mod.getPrefixLength();
     return UnicodeString(nsb.toUnicodeString(), 0, prefixLength);
 }
 
 UnicodeString PatternModifierTest::getSuffix(const MutablePatternModifier &mod, UErrorCode &status) {
     NumberStringBuilder nsb;
     mod.apply(nsb, 0, 0, status);
-    int32_t prefixLength = mod.getPrefixLength(status);
+    int32_t prefixLength = mod.getPrefixLength();
     return UnicodeString(nsb.toUnicodeString(), prefixLength, nsb.length() - prefixLength);
 }
 
diff --git a/source/test/intltest/numbertest_range.cpp b/source/test/intltest/numbertest_range.cpp
new file mode 100644 (file)
index 0000000..5718646
--- /dev/null
@@ -0,0 +1,809 @@
+// © 2018 and later: Unicode, Inc. and others.
+// License & terms of use: http://www.unicode.org/copyright.html
+
+#include "unicode/utypes.h"
+
+#if !UCONFIG_NO_FORMATTING
+
+#include "numbertest.h"
+#include "unicode/numberrangeformatter.h"
+
+#include <cmath>
+#include <numparse_affixes.h>
+
+// Horrible workaround for the lack of a status code in the constructor...
+// (Also affects numbertest_api.cpp)
+UErrorCode globalNumberRangeFormatterTestStatus = U_ZERO_ERROR;
+
+NumberRangeFormatterTest::NumberRangeFormatterTest()
+        : NumberRangeFormatterTest(globalNumberRangeFormatterTestStatus) {
+}
+
+NumberRangeFormatterTest::NumberRangeFormatterTest(UErrorCode& status)
+        : USD(u"USD", status),
+          GBP(u"GBP", status),
+          PTE(u"PTE", status) {
+
+    // Check for error on the first MeasureUnit in case there is no data
+    LocalPointer<MeasureUnit> unit(MeasureUnit::createMeter(status));
+    if (U_FAILURE(status)) {
+        dataerrln("%s %d status = %s", __FILE__, __LINE__, u_errorName(status));
+        return;
+    }
+    METER = *unit;
+
+    KILOMETER = *LocalPointer<MeasureUnit>(MeasureUnit::createKilometer(status));
+    FAHRENHEIT = *LocalPointer<MeasureUnit>(MeasureUnit::createFahrenheit(status));
+    KELVIN = *LocalPointer<MeasureUnit>(MeasureUnit::createKelvin(status));
+}
+
+void NumberRangeFormatterTest::runIndexedTest(int32_t index, UBool exec, const char*& name, char*) {
+    if (exec) {
+        logln("TestSuite NumberRangeFormatterTest: ");
+    }
+    TESTCASE_AUTO_BEGIN;
+        TESTCASE_AUTO(testSanity);
+        TESTCASE_AUTO(testBasic);
+        TESTCASE_AUTO(testCollapse);
+        TESTCASE_AUTO(testIdentity);
+        TESTCASE_AUTO(testDifferentFormatters);
+        TESTCASE_AUTO(testPlurals);
+        TESTCASE_AUTO(testCopyMove);
+    TESTCASE_AUTO_END;
+}
+
+void NumberRangeFormatterTest::testSanity() {
+    IcuTestErrorCode status(*this, "testSanity");
+    LocalizedNumberRangeFormatter lnrf1 = NumberRangeFormatter::withLocale("en-us");
+    LocalizedNumberRangeFormatter lnrf2 = NumberRangeFormatter::with().locale("en-us");
+    assertEquals("Formatters should have same behavior 1",
+        lnrf1.formatFormattableRange(4, 6, status).toString(status),
+        lnrf2.formatFormattableRange(4, 6, status).toString(status));
+}
+
+void NumberRangeFormatterTest::testBasic() {
+    assertFormatRange(
+        u"Basic",
+        NumberRangeFormatter::with(),
+        Locale("en-us"),
+        u"1–5",
+        u"~5",
+        u"~5",
+        u"0–3",
+        u"~0",
+        u"3–3,000",
+        u"3,000–5,000",
+        u"4,999–5,001",
+        u"~5,000",
+        u"5,000–5,000,000");
+
+    assertFormatRange(
+        u"Basic with units",
+        NumberRangeFormatter::with()
+            .numberFormatterBoth(NumberFormatter::with().unit(METER)),
+        Locale("en-us"),
+        u"1–5 m",
+        u"~5 m",
+        u"~5 m",
+        u"0–3 m",
+        u"~0 m",
+        u"3–3,000 m",
+        u"3,000–5,000 m",
+        u"4,999–5,001 m",
+        u"~5,000 m",
+        u"5,000–5,000,000 m");
+
+    assertFormatRange(
+        u"Basic with different units",
+        NumberRangeFormatter::with()
+            .numberFormatterFirst(NumberFormatter::with().unit(METER))
+            .numberFormatterSecond(NumberFormatter::with().unit(KILOMETER)),
+        Locale("en-us"),
+        u"1 m – 5 km",
+        u"5 m – 5 km",
+        u"5 m – 5 km",
+        u"0 m – 3 km",
+        u"0 m – 0 km",
+        u"3 m – 3,000 km",
+        u"3,000 m – 5,000 km",
+        u"4,999 m – 5,001 km",
+        u"5,000 m – 5,000 km",
+        u"5,000 m – 5,000,000 km");
+
+    assertFormatRange(
+        u"Basic long unit",
+        NumberRangeFormatter::with()
+            .numberFormatterBoth(NumberFormatter::with().unit(METER).unitWidth(UNUM_UNIT_WIDTH_FULL_NAME)),
+        Locale("en-us"),
+        u"1–5 meters",
+        u"~5 meters",
+        u"~5 meters",
+        u"0–3 meters",
+        u"~0 meters",
+        u"3–3,000 meters",
+        u"3,000–5,000 meters",
+        u"4,999–5,001 meters",
+        u"~5,000 meters",
+        u"5,000–5,000,000 meters");
+
+    assertFormatRange(
+        u"Non-English locale and unit",
+        NumberRangeFormatter::with()
+            .numberFormatterBoth(NumberFormatter::with().unit(FAHRENHEIT).unitWidth(UNUM_UNIT_WIDTH_FULL_NAME)),
+        Locale("fr-FR"),
+        u"1–5\u00A0degrés Fahrenheit",
+        u"≈5\u00A0degrés Fahrenheit",
+        u"≈5\u00A0degrés Fahrenheit",
+        u"0–3\u00A0degrés Fahrenheit",
+        u"≈0\u00A0degré Fahrenheit",
+        u"3–3\u202F000\u00A0degrés Fahrenheit",
+        u"3\u202F000–5\u202F000\u00A0degrés Fahrenheit",
+        u"4\u202F999–5\u202F001\u00A0degrés Fahrenheit",
+        u"≈5\u202F000\u00A0degrés Fahrenheit",
+        u"5\u202F000–5\u202F000\u202F000\u00A0degrés Fahrenheit");
+
+    assertFormatRange(
+        u"Locale with custom range separator",
+        NumberRangeFormatter::with(),
+        Locale("ja"),
+        u"1~5",
+        u"約 5",
+        u"約 5",
+        u"0~3",
+        u"約 0",
+        u"3~3,000",
+        u"3,000~5,000",
+        u"4,999~5,001",
+        u"約 5,000",
+        u"5,000~5,000,000");
+
+    assertFormatRange(
+        u"Locale that already has spaces around range separator",
+        NumberRangeFormatter::with()
+            .collapse(UNUM_RANGE_COLLAPSE_NONE)
+            .numberFormatterBoth(NumberFormatter::with().unit(KELVIN)),
+        Locale("hr"),
+        u"1 K – 5 K",
+        u"~5 K",
+        u"~5 K",
+        u"0 K – 3 K",
+        u"~0 K",
+        u"3 K – 3.000 K",
+        u"3.000 K – 5.000 K",
+        u"4.999 K – 5.001 K",
+        u"~5.000 K",
+        u"5.000 K – 5.000.000 K");
+
+    assertFormatRange(
+        u"Locale with custom numbering system and no plural ranges data",
+        NumberRangeFormatter::with(),
+        Locale("shn@numbers=beng"),
+        // 012459 = ০১৩৪৫৯
+        u"১–৫",
+        u"~৫",
+        u"~৫",
+        u"০–৩",
+        u"~০",
+        u"৩–৩,০০০",
+        u"৩,০০০–৫,০০০",
+        u"৪,৯৯৯–৫,০০১",
+        u"~৫,০০০",
+        u"৫,০০০–৫,০০০,০০০");
+
+    assertFormatRange(
+        u"Portuguese currency",
+        NumberRangeFormatter::with()
+            .numberFormatterBoth(NumberFormatter::with().unit(PTE)),
+        Locale("pt-PT"),
+        u"1$00 - 5$00 \u200B",
+        u"~5$00 \u200B",
+        u"~5$00 \u200B",
+        u"0$00 - 3$00 \u200B",
+        u"~0$00 \u200B",
+        u"3$00 - 3000$00 \u200B",
+        u"3000$00 - 5000$00 \u200B",
+        u"4999$00 - 5001$00 \u200B",
+        u"~5000$00 \u200B",
+        u"5000$00 - 5,000,000$00 \u200B");
+}
+
+void NumberRangeFormatterTest::testCollapse() {
+    assertFormatRange(
+        u"Default collapse on currency (default rounding)",
+        NumberRangeFormatter::with()
+            .numberFormatterBoth(NumberFormatter::with().unit(USD)),
+        Locale("en-us"),
+        u"$1.00 – $5.00",
+        u"~$5.00",
+        u"~$5.00",
+        u"$0.00 – $3.00",
+        u"~$0.00",
+        u"$3.00 – $3,000.00",
+        u"$3,000.00 – $5,000.00",
+        u"$4,999.00 – $5,001.00",
+        u"~$5,000.00",
+        u"$5,000.00 – $5,000,000.00");
+
+    assertFormatRange(
+        u"Default collapse on currency",
+        NumberRangeFormatter::with()
+            .numberFormatterBoth(NumberFormatter::with().unit(USD).precision(Precision::integer())),
+        Locale("en-us"),
+        u"$1 – $5",
+        u"~$5",
+        u"~$5",
+        u"$0 – $3",
+        u"~$0",
+        u"$3 – $3,000",
+        u"$3,000 – $5,000",
+        u"$4,999 – $5,001",
+        u"~$5,000",
+        u"$5,000 – $5,000,000");
+
+    assertFormatRange(
+        u"No collapse on currency",
+        NumberRangeFormatter::with()
+            .collapse(UNUM_RANGE_COLLAPSE_NONE)
+            .numberFormatterBoth(NumberFormatter::with().unit(USD).precision(Precision::integer())),
+        Locale("en-us"),
+        u"$1 – $5",
+        u"~$5",
+        u"~$5",
+        u"$0 – $3",
+        u"~$0",
+        u"$3 – $3,000",
+        u"$3,000 – $5,000",
+        u"$4,999 – $5,001",
+        u"~$5,000",
+        u"$5,000 – $5,000,000");
+
+    assertFormatRange(
+        u"Unit collapse on currency",
+        NumberRangeFormatter::with()
+            .collapse(UNUM_RANGE_COLLAPSE_UNIT)
+            .numberFormatterBoth(NumberFormatter::with().unit(USD).precision(Precision::integer())),
+        Locale("en-us"),
+        u"$1–5",
+        u"~$5",
+        u"~$5",
+        u"$0–3",
+        u"~$0",
+        u"$3–3,000",
+        u"$3,000–5,000",
+        u"$4,999–5,001",
+        u"~$5,000",
+        u"$5,000–5,000,000");
+
+    assertFormatRange(
+        u"All collapse on currency",
+        NumberRangeFormatter::with()
+            .collapse(UNUM_RANGE_COLLAPSE_ALL)
+            .numberFormatterBoth(NumberFormatter::with().unit(USD).precision(Precision::integer())),
+        Locale("en-us"),
+        u"$1–5",
+        u"~$5",
+        u"~$5",
+        u"$0–3",
+        u"~$0",
+        u"$3–3,000",
+        u"$3,000–5,000",
+        u"$4,999–5,001",
+        u"~$5,000",
+        u"$5,000–5,000,000");
+
+    assertFormatRange(
+        u"Default collapse on currency ISO code",
+        NumberRangeFormatter::with()
+            .numberFormatterBoth(NumberFormatter::with()
+                .unit(GBP)
+                .unitWidth(UNUM_UNIT_WIDTH_ISO_CODE)
+                .precision(Precision::integer())),
+        Locale("en-us"),
+        u"GBP 1–5",
+        u"~GBP 5",  // TODO: Fix this at some point
+        u"~GBP 5",
+        u"GBP 0–3",
+        u"~GBP 0",
+        u"GBP 3–3,000",
+        u"GBP 3,000–5,000",
+        u"GBP 4,999–5,001",
+        u"~GBP 5,000",
+        u"GBP 5,000–5,000,000");
+
+    assertFormatRange(
+        u"No collapse on currency ISO code",
+        NumberRangeFormatter::with()
+            .collapse(UNUM_RANGE_COLLAPSE_NONE)
+            .numberFormatterBoth(NumberFormatter::with()
+                .unit(GBP)
+                .unitWidth(UNUM_UNIT_WIDTH_ISO_CODE)
+                .precision(Precision::integer())),
+        Locale("en-us"),
+        u"GBP 1 – GBP 5",
+        u"~GBP 5",  // TODO: Fix this at some point
+        u"~GBP 5",
+        u"GBP 0 – GBP 3",
+        u"~GBP 0",
+        u"GBP 3 – GBP 3,000",
+        u"GBP 3,000 – GBP 5,000",
+        u"GBP 4,999 – GBP 5,001",
+        u"~GBP 5,000",
+        u"GBP 5,000 – GBP 5,000,000");
+
+    assertFormatRange(
+        u"Unit collapse on currency ISO code",
+        NumberRangeFormatter::with()
+            .collapse(UNUM_RANGE_COLLAPSE_UNIT)
+            .numberFormatterBoth(NumberFormatter::with()
+                .unit(GBP)
+                .unitWidth(UNUM_UNIT_WIDTH_ISO_CODE)
+                .precision(Precision::integer())),
+        Locale("en-us"),
+        u"GBP 1–5",
+        u"~GBP 5",  // TODO: Fix this at some point
+        u"~GBP 5",
+        u"GBP 0–3",
+        u"~GBP 0",
+        u"GBP 3–3,000",
+        u"GBP 3,000–5,000",
+        u"GBP 4,999–5,001",
+        u"~GBP 5,000",
+        u"GBP 5,000–5,000,000");
+
+    assertFormatRange(
+        u"All collapse on currency ISO code",
+        NumberRangeFormatter::with()
+            .collapse(UNUM_RANGE_COLLAPSE_ALL)
+            .numberFormatterBoth(NumberFormatter::with()
+                .unit(GBP)
+                .unitWidth(UNUM_UNIT_WIDTH_ISO_CODE)
+                .precision(Precision::integer())),
+        Locale("en-us"),
+        u"GBP 1–5",
+        u"~GBP 5",  // TODO: Fix this at some point
+        u"~GBP 5",
+        u"GBP 0–3",
+        u"~GBP 0",
+        u"GBP 3–3,000",
+        u"GBP 3,000–5,000",
+        u"GBP 4,999–5,001",
+        u"~GBP 5,000",
+        u"GBP 5,000–5,000,000");
+
+    // Default collapse on measurement unit is in testBasic()
+
+    assertFormatRange(
+        u"No collapse on measurement unit",
+        NumberRangeFormatter::with()
+            .collapse(UNUM_RANGE_COLLAPSE_NONE)
+            .numberFormatterBoth(NumberFormatter::with().unit(METER)),
+        Locale("en-us"),
+        u"1 m – 5 m",
+        u"~5 m",
+        u"~5 m",
+        u"0 m – 3 m",
+        u"~0 m",
+        u"3 m – 3,000 m",
+        u"3,000 m – 5,000 m",
+        u"4,999 m – 5,001 m",
+        u"~5,000 m",
+        u"5,000 m – 5,000,000 m");
+
+    assertFormatRange(
+        u"Unit collapse on measurement unit",
+        NumberRangeFormatter::with()
+            .collapse(UNUM_RANGE_COLLAPSE_UNIT)
+            .numberFormatterBoth(NumberFormatter::with().unit(METER)),
+        Locale("en-us"),
+        u"1–5 m",
+        u"~5 m",
+        u"~5 m",
+        u"0–3 m",
+        u"~0 m",
+        u"3–3,000 m",
+        u"3,000–5,000 m",
+        u"4,999–5,001 m",
+        u"~5,000 m",
+        u"5,000–5,000,000 m");
+
+    assertFormatRange(
+        u"All collapse on measurement unit",
+        NumberRangeFormatter::with()
+            .collapse(UNUM_RANGE_COLLAPSE_ALL)
+            .numberFormatterBoth(NumberFormatter::with().unit(METER)),
+        Locale("en-us"),
+        u"1–5 m",
+        u"~5 m",
+        u"~5 m",
+        u"0–3 m",
+        u"~0 m",
+        u"3–3,000 m",
+        u"3,000–5,000 m",
+        u"4,999–5,001 m",
+        u"~5,000 m",
+        u"5,000–5,000,000 m");
+
+    assertFormatRange(
+        u"Default collapse, long-form compact notation",
+        NumberRangeFormatter::with()
+            .numberFormatterBoth(NumberFormatter::with().notation(Notation::compactLong())),
+        Locale("de-CH"),
+        u"1–5",
+        u"≈5",
+        u"≈5",
+        u"0–3",
+        u"≈0",
+        u"3–3 Tausend",
+        u"3–5 Tausend",
+        u"≈5 Tausend",
+        u"≈5 Tausend",
+        u"5 Tausend – 5 Millionen");
+
+    assertFormatRange(
+        u"Unit collapse, long-form compact notation",
+        NumberRangeFormatter::with()
+            .collapse(UNUM_RANGE_COLLAPSE_UNIT)
+            .numberFormatterBoth(NumberFormatter::with().notation(Notation::compactLong())),
+        Locale("de-CH"),
+        u"1–5",
+        u"≈5",
+        u"≈5",
+        u"0–3",
+        u"≈0",
+        u"3–3 Tausend",
+        u"3 Tausend – 5 Tausend",
+        u"≈5 Tausend",
+        u"≈5 Tausend",
+        u"5 Tausend – 5 Millionen");
+
+    assertFormatRange(
+        u"Default collapse on measurement unit with compact-short notation",
+        NumberRangeFormatter::with()
+            .numberFormatterBoth(NumberFormatter::with().notation(Notation::compactShort()).unit(METER)),
+        Locale("en-us"),
+        u"1–5 m",
+        u"~5 m",
+        u"~5 m",
+        u"0–3 m",
+        u"~0 m",
+        u"3–3K m",
+        u"3K – 5K m",
+        u"~5K m",
+        u"~5K m",
+        u"5K – 5M m");
+
+    assertFormatRange(
+        u"No collapse on measurement unit with compact-short notation",
+        NumberRangeFormatter::with()
+            .collapse(UNUM_RANGE_COLLAPSE_NONE)
+            .numberFormatterBoth(NumberFormatter::with().notation(Notation::compactShort()).unit(METER)),
+        Locale("en-us"),
+        u"1 m – 5 m",
+        u"~5 m",
+        u"~5 m",
+        u"0 m – 3 m",
+        u"~0 m",
+        u"3 m – 3K m",
+        u"3K m – 5K m",
+        u"~5K m",
+        u"~5K m",
+        u"5K m – 5M m");
+
+    assertFormatRange(
+        u"Unit collapse on measurement unit with compact-short notation",
+        NumberRangeFormatter::with()
+            .collapse(UNUM_RANGE_COLLAPSE_UNIT)
+            .numberFormatterBoth(NumberFormatter::with().notation(Notation::compactShort()).unit(METER)),
+        Locale("en-us"),
+        u"1–5 m",
+        u"~5 m",
+        u"~5 m",
+        u"0–3 m",
+        u"~0 m",
+        u"3–3K m",
+        u"3K – 5K m",
+        u"~5K m",
+        u"~5K m",
+        u"5K – 5M m");
+
+    assertFormatRange(
+        u"All collapse on measurement unit with compact-short notation",
+        NumberRangeFormatter::with()
+            .collapse(UNUM_RANGE_COLLAPSE_ALL)
+            .numberFormatterBoth(NumberFormatter::with().notation(Notation::compactShort()).unit(METER)),
+        Locale("en-us"),
+        u"1–5 m",
+        u"~5 m",
+        u"~5 m",
+        u"0–3 m",
+        u"~0 m",
+        u"3–3K m",
+        u"3–5K m",  // this one is the key use case for ALL
+        u"~5K m",
+        u"~5K m",
+        u"5K – 5M m");
+
+    assertFormatRange(
+        u"No collapse on scientific notation",
+        NumberRangeFormatter::with()
+            .collapse(UNUM_RANGE_COLLAPSE_NONE)
+            .numberFormatterBoth(NumberFormatter::with().notation(Notation::scientific())),
+        Locale("en-us"),
+        u"1E0 – 5E0",
+        u"~5E0",
+        u"~5E0",
+        u"0E0 – 3E0",
+        u"~0E0",
+        u"3E0 – 3E3",
+        u"3E3 – 5E3",
+        u"4.999E3 – 5.001E3",
+        u"~5E3",
+        u"5E3 – 5E6");
+
+    assertFormatRange(
+        u"All collapse on scientific notation",
+        NumberRangeFormatter::with()
+            .collapse(UNUM_RANGE_COLLAPSE_ALL)
+            .numberFormatterBoth(NumberFormatter::with().notation(Notation::scientific())),
+        Locale("en-us"),
+        u"1–5E0",
+        u"~5E0",
+        u"~5E0",
+        u"0–3E0",
+        u"~0E0",
+        u"3E0 – 3E3",
+        u"3–5E3",
+        u"4.999–5.001E3",
+        u"~5E3",
+        u"5E3 – 5E6");
+
+    // TODO: Test compact currency?
+    // The code is not smart enough to differentiate the notation from the unit.
+}
+
+void NumberRangeFormatterTest::testIdentity() {
+    assertFormatRange(
+        u"Identity fallback Range",
+        NumberRangeFormatter::with().identityFallback(UNUM_IDENTITY_FALLBACK_RANGE),
+        Locale("en-us"),
+        u"1–5",
+        u"5–5",
+        u"5–5",
+        u"0–3",
+        u"0–0",
+        u"3–3,000",
+        u"3,000–5,000",
+        u"4,999–5,001",
+        u"5,000–5,000",
+        u"5,000–5,000,000");
+
+    assertFormatRange(
+        u"Identity fallback Approximately or Single Value",
+        NumberRangeFormatter::with().identityFallback(UNUM_IDENTITY_FALLBACK_APPROXIMATELY_OR_SINGLE_VALUE),
+        Locale("en-us"),
+        u"1–5",
+        u"~5",
+        u"5",
+        u"0–3",
+        u"0",
+        u"3–3,000",
+        u"3,000–5,000",
+        u"4,999–5,001",
+        u"5,000",
+        u"5,000–5,000,000");
+
+    assertFormatRange(
+        u"Identity fallback Single Value",
+        NumberRangeFormatter::with().identityFallback(UNUM_IDENTITY_FALLBACK_SINGLE_VALUE),
+        Locale("en-us"),
+        u"1–5",
+        u"5",
+        u"5",
+        u"0–3",
+        u"0",
+        u"3–3,000",
+        u"3,000–5,000",
+        u"4,999–5,001",
+        u"5,000",
+        u"5,000–5,000,000");
+
+    assertFormatRange(
+        u"Identity fallback Approximately or Single Value with compact notation",
+        NumberRangeFormatter::with()
+            .identityFallback(UNUM_IDENTITY_FALLBACK_APPROXIMATELY_OR_SINGLE_VALUE)
+            .numberFormatterBoth(NumberFormatter::with().notation(Notation::compactShort())),
+        Locale("en-us"),
+        u"1–5",
+        u"~5",
+        u"5",
+        u"0–3",
+        u"0",
+        u"3–3K",
+        u"3K – 5K",
+        u"~5K",
+        u"5K",
+        u"5K – 5M");
+
+    assertFormatRange(
+        u"Approximately in middle of unit string",
+        NumberRangeFormatter::with().numberFormatterBoth(
+            NumberFormatter::with().unit(FAHRENHEIT).unitWidth(UNUM_UNIT_WIDTH_FULL_NAME)),
+        Locale("zh-Hant"),
+        u"華氏 1-5 度",
+        u"華氏 ~5 度",
+        u"華氏 ~5 度",
+        u"華氏 0-3 度",
+        u"華氏 ~0 度",
+        u"華氏 3-3,000 度",
+        u"華氏 3,000-5,000 度",
+        u"華氏 4,999-5,001 度",
+        u"華氏 ~5,000 度",
+        u"華氏 5,000-5,000,000 度");
+}
+
+void NumberRangeFormatterTest::testDifferentFormatters() {
+    assertFormatRange(
+        u"Different rounding rules",
+        NumberRangeFormatter::with()
+            .numberFormatterFirst(NumberFormatter::with().precision(Precision::integer()))
+            .numberFormatterSecond(NumberFormatter::with().precision(Precision::fixedDigits(2))),
+        Locale("en-us"),
+        u"1–5.0",
+        u"5–5.0",
+        u"5–5.0",
+        u"0–3.0",
+        u"0–0.0",
+        u"3–3,000",
+        u"3,000–5,000",
+        u"4,999–5,000",
+        u"5,000–5,000",  // TODO: Should this one be ~5,000?
+        u"5,000–5,000,000");
+}
+
+void NumberRangeFormatterTest::testPlurals() {
+    IcuTestErrorCode status(*this, "testPlurals");
+
+    // Locale sl has interesting plural forms:
+    // GBP{
+    //     one{"britanski funt"}
+    //     two{"britanska funta"}
+    //     few{"britanski funti"}
+    //     other{"britanskih funtov"}
+    // }
+    Locale locale("sl");
+
+    UnlocalizedNumberFormatter unf = NumberFormatter::with()
+        .unit(GBP)
+        .unitWidth(UNUM_UNIT_WIDTH_FULL_NAME)
+        .precision(Precision::integer());
+    LocalizedNumberFormatter lnf = unf.locale(locale);
+
+    // For comparison, run the non-range version of the formatter
+    assertEquals(Int64ToUnicodeString(1), u"1 britanski funt", lnf.formatDouble(1, status).toString(status));
+    assertEquals(Int64ToUnicodeString(2), u"2 britanska funta", lnf.formatDouble(2, status).toString(status));
+    assertEquals(Int64ToUnicodeString(3), u"3 britanski funti", lnf.formatDouble(3, status).toString(status));
+    assertEquals(Int64ToUnicodeString(5), u"5 britanskih funtov", lnf.formatDouble(5, status).toString(status));
+    if (status.errIfFailureAndReset()) { return; }
+
+    LocalizedNumberRangeFormatter lnrf = NumberRangeFormatter::with()
+        .numberFormatterBoth(unf)
+        .identityFallback(UNUM_IDENTITY_FALLBACK_RANGE)
+        .locale(locale);
+
+    struct TestCase {
+        double first;
+        double second;
+        const char16_t* expected;
+    } cases[] = {
+        {1, 1, u"1–1 britanski funti"}, // one + one -> few
+        {1, 2, u"1–2 britanska funta"}, // one + two -> two
+        {1, 3, u"1–3 britanski funti"}, // one + few -> few
+        {1, 5, u"1–5 britanskih funtov"}, // one + other -> other
+        {2, 1, u"2–1 britanski funti"}, // two + one -> few
+        {2, 2, u"2–2 britanska funta"}, // two + two -> two
+        {2, 3, u"2–3 britanski funti"}, // two + few -> few
+        {2, 5, u"2–5 britanskih funtov"}, // two + other -> other
+        {3, 1, u"3–1 britanski funti"}, // few + one -> few
+        {3, 2, u"3–2 britanska funta"}, // few + two -> two
+        {3, 3, u"3–3 britanski funti"}, // few + few -> few
+        {3, 5, u"3–5 britanskih funtov"}, // few + other -> other
+        {5, 1, u"5–1 britanski funti"}, // other + one -> few
+        {5, 2, u"5–2 britanska funta"}, // other + two -> two
+        {5, 3, u"5–3 britanski funti"}, // other + few -> few
+        {5, 5, u"5–5 britanskih funtov"}, // other + other -> other
+    };
+    for (auto& cas : cases) {
+        UnicodeString message = Int64ToUnicodeString(cas.first);
+        message += u" ";
+        message += Int64ToUnicodeString(cas.second);
+        status.setScope(message);
+        UnicodeString actual = lnrf.formatFormattableRange(cas.first, cas.second, status).toString(status);
+        assertEquals(message, cas.expected, actual);
+        status.errIfFailureAndReset();
+    }
+}
+
+void NumberRangeFormatterTest::testCopyMove() {
+    IcuTestErrorCode status(*this, "testCopyMove");
+
+    // Default constructors
+    LocalizedNumberRangeFormatter l1;
+    assertEquals("Initial behavior", u"1–5", l1.formatFormattableRange(1, 5, status).toString(status));
+    if (status.errDataIfFailureAndReset()) { return; }
+
+    // Setup
+    l1 = NumberRangeFormatter::withLocale("fr-FR")
+        .numberFormatterBoth(NumberFormatter::with().unit(USD));
+    assertEquals("Currency behavior", u"1,00–5,00 $US", l1.formatFormattableRange(1, 5, status).toString(status));
+
+    // Copy constructor
+    LocalizedNumberRangeFormatter l2 = l1;
+    assertEquals("Copy constructor", u"1,00–5,00 $US", l2.formatFormattableRange(1, 5, status).toString(status));
+
+    // Move constructor
+    LocalizedNumberRangeFormatter l3 = std::move(l1);
+    assertEquals("Move constructor", u"1,00–5,00 $US", l3.formatFormattableRange(1, 5, status).toString(status));
+
+    // Reset objects for assignment tests
+    l1 = NumberRangeFormatter::withLocale("en-us");
+    l2 = NumberRangeFormatter::withLocale("en-us");
+    assertEquals("Rest behavior, l1", u"1–5", l1.formatFormattableRange(1, 5, status).toString(status));
+    assertEquals("Rest behavior, l2", u"1–5", l2.formatFormattableRange(1, 5, status).toString(status));
+
+    // Copy assignment
+    l1 = l3;
+    assertEquals("Copy constructor", u"1,00–5,00 $US", l1.formatFormattableRange(1, 5, status).toString(status));
+
+    // Move assignment
+    l2 = std::move(l3);
+    assertEquals("Copy constructor", u"1,00–5,00 $US", l2.formatFormattableRange(1, 5, status).toString(status));
+
+    // FormattedNumberRange
+    FormattedNumberRange result = l1.formatFormattableRange(1, 5, status);
+    assertEquals("FormattedNumberRange move constructor", u"1,00–5,00 $US", result.toString(status));
+    result = l1.formatFormattableRange(3, 6, status);
+    assertEquals("FormattedNumberRange move assignment", u"3,00–6,00 $US", result.toString(status));
+}
+
+void  NumberRangeFormatterTest::assertFormatRange(
+      const char16_t* message,
+      const UnlocalizedNumberRangeFormatter& f,
+      Locale locale,
+      const char16_t* expected_10_50,
+      const char16_t* expected_49_51,
+      const char16_t* expected_50_50,
+      const char16_t* expected_00_30,
+      const char16_t* expected_00_00,
+      const char16_t* expected_30_3K,
+      const char16_t* expected_30K_50K,
+      const char16_t* expected_49K_51K,
+      const char16_t* expected_50K_50K,
+      const char16_t* expected_50K_50M) {
+    LocalizedNumberRangeFormatter l = f.locale(locale);
+    assertFormattedRangeEquals(message, l, 1, 5, expected_10_50);
+    assertFormattedRangeEquals(message, l, 4.9999999, 5.0000001, expected_49_51);
+    assertFormattedRangeEquals(message, l, 5, 5, expected_50_50);
+    assertFormattedRangeEquals(message, l, 0, 3, expected_00_30);
+    assertFormattedRangeEquals(message, l, 0, 0, expected_00_00);
+    assertFormattedRangeEquals(message, l, 3, 3000, expected_30_3K);
+    assertFormattedRangeEquals(message, l, 3000, 5000, expected_30K_50K);
+    assertFormattedRangeEquals(message, l, 4999, 5001, expected_49K_51K);
+    assertFormattedRangeEquals(message, l, 5000, 5000, expected_50K_50K);
+    assertFormattedRangeEquals(message, l, 5e3, 5e6, expected_50K_50M);
+}
+
+void NumberRangeFormatterTest::assertFormattedRangeEquals(
+      const char16_t* message,
+      const LocalizedNumberRangeFormatter& l,
+      double first,
+      double second,
+      const char16_t* expected) {
+    IcuTestErrorCode status(*this, "assertFormattedRangeEquals");
+    UnicodeString fullMessage = UnicodeString(message) + u": " + DoubleToUnicodeString(first) + u", " + DoubleToUnicodeString(second);
+    status.setScope(fullMessage);
+    UnicodeString actual = l.formatFormattableRange(first, second, status).toString(status);
+    assertEquals(fullMessage, expected, actual);
+}
+
+
+#endif
index 82ee94e..7d59678 100644 (file)
@@ -89,14 +89,14 @@ void NumberFormatSpecificationTest::runIndexedTest(
 }
 
 void NumberFormatSpecificationTest::TestBasicPatterns() {
-    assertPatternFr("1 234,57", 1234.567, "#,##0.##", TRUE);
+    assertPatternFr("1\\u202F234,57", 1234.567, "#,##0.##", TRUE);
     assertPatternFr("1234,57", 1234.567, "0.##", TRUE);
     assertPatternFr("1235", 1234.567, "0", TRUE);
-    assertPatternFr("1 234,567", 1234.567, "#,##0.###", TRUE);
+    assertPatternFr("1\\u202F234,567", 1234.567, "#,##0.###", TRUE);
     assertPatternFr("1234,567", 1234.567, "###0.#####", TRUE);
     assertPatternFr("1234,5670", 1234.567, "###0.0000#", TRUE);
     assertPatternFr("01234,5670", 1234.567, "00000.0000", TRUE);
-    assertPatternFr("1 234,57 \\u20ac", 1234.567, "#,##0.00 \\u00a4", TRUE);
+    assertPatternFr("1\\u202F234,57 \\u20ac", 1234.567, "#,##0.00 \\u00a4", TRUE);
 }
 
 void NumberFormatSpecificationTest::TestNfSetters() {
@@ -107,8 +107,8 @@ void NumberFormatSpecificationTest::TestNfSetters() {
     }
     nf->setMaximumIntegerDigits(5);
     nf->setMinimumIntegerDigits(4);
-    assertEquals("", "34 567,89", format(1234567.89, *nf), TRUE);
-    assertEquals("", "0 034,56", format(34.56, *nf), TRUE);
+    assertEquals("", u"34\u202F567,89", format(1234567.89, *nf), TRUE);
+    assertEquals("", u"0\u202F034,56", format(34.56, *nf), TRUE);
 }
 
 void NumberFormatSpecificationTest::TestRounding() {
@@ -121,20 +121,20 @@ void NumberFormatSpecificationTest::TestRounding() {
     assertPatternFr("8", 10.0, "4", TRUE);
     assertPatternFr("99,90", 99.0, "2.70", TRUE);
     assertPatternFr("273,00", 272.0, "2.73", TRUE);
-    assertPatternFr("1 03,60", 104.0, "#,#3.70", TRUE);
+    assertPatternFr("1\\u202F03,60", 104.0, "#,#3.70", TRUE);
 }
 
 void NumberFormatSpecificationTest::TestSignificantDigits() {
     assertPatternFr("1230", 1234.0, "@@@", TRUE);
-    assertPatternFr("1 234", 1234.0, "@,@@@", TRUE);
-    assertPatternFr("1 235 000", 1234567.0, "@,@@@", TRUE);
-    assertPatternFr("1 234 567", 1234567.0, "@@@@,@@@", TRUE);
-    assertPatternFr("12 34 567,00", 1234567.0, "@@@@,@@,@@@", TRUE);
-    assertPatternFr("12 34 567,0", 1234567.0, "@@@@,@@,@@#", TRUE);
-    assertPatternFr("12 34 567", 1234567.0, "@@@@,@@,@##", TRUE);
-    assertPatternFr("12 34 567", 1234567.001, "@@@@,@@,@##", TRUE);
-    assertPatternFr("12 34 567", 1234567.001, "@@@@,@@,###", TRUE);
-    assertPatternFr("1 200", 1234.0, "#,#@@", TRUE);
+    assertPatternFr("1\\u202F234", 1234.0, "@,@@@", TRUE);
+    assertPatternFr("1\\u202F235\\u202F000", 1234567.0, "@,@@@", TRUE);
+    assertPatternFr("1\\u202F234\\u202F567", 1234567.0, "@@@@,@@@", TRUE);
+    assertPatternFr("12\\u202F34\\u202F567,00", 1234567.0, "@@@@,@@,@@@", TRUE);
+    assertPatternFr("12\\u202F34\\u202F567,0", 1234567.0, "@@@@,@@,@@#", TRUE);
+    assertPatternFr("12\\u202F34\\u202F567", 1234567.0, "@@@@,@@,@##", TRUE);
+    assertPatternFr("12\\u202F34\\u202F567", 1234567.001, "@@@@,@@,@##", TRUE);
+    assertPatternFr("12\\u202F34\\u202F567", 1234567.001, "@@@@,@@,###", TRUE);
+    assertPatternFr("1\\u202F200", 1234.0, "#,#@@", TRUE);
 }
 
 void NumberFormatSpecificationTest::TestScientificNotation() {
@@ -161,8 +161,8 @@ void NumberFormatSpecificationTest::TestPercent() {
     assertPatternFr("p%p57,3", 0.573, "p%p0.0", TRUE);
     assertPatternFr("p%p0,6", 0.573, "p'%'p0.0", TRUE);
     assertPatternFr("%3,260", 0.0326, "%@@@@", TRUE);
-    assertPatternFr("%1 540", 15.43, "%#,@@@", TRUE);
-    assertPatternFr("%1 656,4", 16.55, "%#,##4.1", TRUE);
+    assertPatternFr("%1\\u202F540", 15.43, "%#,@@@", TRUE);
+    assertPatternFr("%1\\u202F656,4", 16.55, "%#,##4.1", TRUE);
     assertPatternFr("%16,3E3", 162.55, "%##0.00E0", TRUE);
 }
 
@@ -172,18 +172,18 @@ void NumberFormatSpecificationTest::TestPerMilli() {
     assertPatternFr("p\\u2030p573,0", 0.573, "p\\u2030p0.0", TRUE);
     assertPatternFr("p\\u2030p0,6", 0.573, "p'\\u2030'p0.0", TRUE);
     assertPatternFr("\\u203032,60", 0.0326, "\\u2030@@@@", TRUE);
-    assertPatternFr("\\u203015 400", 15.43, "\\u2030#,@@@", TRUE);
-    assertPatternFr("\\u203016 551,7", 16.55, "\\u2030#,##4.1", TRUE);
+    assertPatternFr("\\u203015\\u202F400", 15.43, "\\u2030#,@@@", TRUE);
+    assertPatternFr("\\u203016\\u202F551,7", 16.55, "\\u2030#,##4.1", TRUE);
     assertPatternFr("\\u2030163E3", 162.55, "\\u2030##0.00E0", TRUE);
 }
 
 void NumberFormatSpecificationTest::TestPadding() {
-    assertPatternFr("$***1 234", 1234, "$**####,##0", TRUE);
-    assertPatternFr("xxx$1 234", 1234, "*x$####,##0", TRUE);
-    assertPatternFr("1 234xxx$", 1234, "####,##0*x$", TRUE);
-    assertPatternFr("1 234$xxx", 1234, "####,##0$*x", TRUE);
-    assertPatternFr("ne1 234nx", -1234, "####,##0$*x;ne#n", TRUE);
-    assertPatternFr("n1 234*xx", -1234, "####,##0$*x;n#'*'", TRUE);
+    assertPatternFr("$***1\\u202F234", 1234, "$**####,##0", TRUE);
+    assertPatternFr("xxx$1\\u202F234", 1234, "*x$####,##0", TRUE);
+    assertPatternFr("1\\u202F234xxx$", 1234, "####,##0*x$", TRUE);
+    assertPatternFr("1\\u202F234$xxx", 1234, "####,##0$*x", TRUE);
+    assertPatternFr("ne1\\u202F234nx", -1234, "####,##0$*x;ne#n", TRUE);
+    assertPatternFr("n1\\u202F234*xx", -1234, "####,##0$*x;n#'*'", TRUE);
     assertPatternFr("yyyy%432,6", 4.33, "*y%4.2######",  TRUE);
     if (!logKnownIssue("11025")) {
         assertPatternFr("EUR *433,00", 433.0, "\\u00a4\\u00a4 **####0.00");
index b718429..3435593 100644 (file)
@@ -202,6 +202,7 @@ void NumberFormatTest::runIndexedTest( int32_t index, UBool exec, const char* &n
   TESTCASE_AUTO(Test11645_ApplyPatternEquality);
   TESTCASE_AUTO(Test12567);
   TESTCASE_AUTO(Test11626_CustomizeCurrencyPluralInfo);
+  TESTCASE_AUTO(Test20073_StrictPercentParseErrorIndex);
   TESTCASE_AUTO(Test13056_GroupingSize);
   TESTCASE_AUTO(Test11025_CurrencyPadding);
   TESTCASE_AUTO(Test11648_ExpDecFormatMalPattern);
@@ -215,7 +216,9 @@ void NumberFormatTest::runIndexedTest( int32_t index, UBool exec, const char* &n
   TESTCASE_AUTO(Test13763_FieldPositionIteratorOffset);
   TESTCASE_AUTO(Test13777_ParseLongNameNonCurrencyMode);
   TESTCASE_AUTO(Test13804_EmptyStringsWhenParsing);
+  TESTCASE_AUTO(Test20037_ScientificIntegerOverflow);
   TESTCASE_AUTO(Test13840_ParseLongStringCrash);
+  TESTCASE_AUTO(Test13850_EmptyStringCurrency);
   TESTCASE_AUTO_END;
 }
 
@@ -971,19 +974,19 @@ void NumberFormatTest::TestCurrencyObject() {
         return;
     }
 
-    expectCurrency(*fmt, null, 1234.56, CharsToUnicodeString("1 234,56 \\u20AC"));
+    expectCurrency(*fmt, null, 1234.56, CharsToUnicodeString("1\\u202F234,56 \\u20AC"));
 
     expectCurrency(*fmt, Locale::getJapan(),
-                   1234.56, CharsToUnicodeString("1 235 JPY")); // Yen
+                   1234.56, CharsToUnicodeString("1\\u202F235 JPY")); // Yen
 
     expectCurrency(*fmt, Locale("fr", "CH", ""),
-                   1234.56, "1 234,56 CHF"); // no more 0.05 rounding here, see cldrbug 5548
+                   1234.56, CharsToUnicodeString("1\\u202F234,56 CHF")); // no more 0.05 rounding here, see cldrbug 5548
 
     expectCurrency(*fmt, Locale::getUS(),
-                   1234.56, "1 234,56 $US");
+                   1234.56, CharsToUnicodeString("1\\u202F234,56 $US"));
 
     expectCurrency(*fmt, Locale::getFrance(),
-                   1234.56, CharsToUnicodeString("1 234,56 \\u20AC")); // Euro
+                   1234.56, CharsToUnicodeString("1\\u202F234,56 \\u20AC")); // Euro
 
     delete fmt;
 }
@@ -3561,7 +3564,7 @@ void NumberFormatTest::TestMismatchedCurrencyFormatFail() {
             u"\u00A4#,##0.00",
             df->toPattern(pattern));
     // Should round-trip on the correct currency format:
-    expect2(*df, 1.23, u"XXX\u00A01.23");
+    expect2(*df, 1.23, u"\u00A41.23");
     df->setCurrency(u"EUR", status);
     expect2(*df, 1.23, u"\u20AC1.23");
     // Should parse with currency in the wrong place in lenient mode
@@ -3860,6 +3863,7 @@ NumberFormatTest::TestParseCurrencyInUCurr() {
         "1.00 US DOLLAR",  // case in-sensitive
         "$1.00",
         "USD1.00",
+        "usd1.00", // case in-sensitive: #13696
         "US dollar1.00",
         "US dollars1.00",
         "$1.00",
@@ -5875,7 +5879,6 @@ NumberFormatTest::TestParseCurrencyInUCurr() {
 
     const char* WRONG_DATA[] = {
         // Following are missing one last char in the currency name
-        "usd1.00", // case sensitive
         "1.00 Nicaraguan Cordob",
         "1.00 Namibian Dolla",
         "1.00 Namibian dolla",
@@ -7366,6 +7369,35 @@ void NumberFormatTest::TestSignificantDigits(void) {
         }
         result.remove();
     }
+
+    // Test for ICU-20063
+    {
+        DecimalFormat df({"en-us", status}, status);
+        df.setSignificantDigitsUsed(TRUE);
+        expect(df, 9.87654321, u"9.87654");
+        df.setMaximumSignificantDigits(3);
+        expect(df, 9.87654321, u"9.88");
+        // setSignificantDigitsUsed with maxSig only
+        df.setSignificantDigitsUsed(TRUE);
+        expect(df, 9.87654321, u"9.88");
+        df.setMinimumSignificantDigits(2);
+        expect(df, 9, u"9.0");
+        // setSignificantDigitsUsed with both minSig and maxSig
+        df.setSignificantDigitsUsed(TRUE);
+        expect(df, 9, u"9.0");
+        // setSignificantDigitsUsed to false: should revert to fraction rounding
+        df.setSignificantDigitsUsed(FALSE);
+        expect(df, 9.87654321, u"9.876543");
+        expect(df, 9, u"9");
+        df.setSignificantDigitsUsed(TRUE);
+        df.setMinimumSignificantDigits(2);
+        expect(df, 9.87654321, u"9.87654");
+        expect(df, 9, u"9.0");
+        // setSignificantDigitsUsed with minSig only
+        df.setSignificantDigitsUsed(TRUE);
+        expect(df, 9.87654321, u"9.87654");
+        expect(df, 9, u"9.0");
+    }
 }
 
 void NumberFormatTest::TestShowZero() {
@@ -7894,22 +7926,22 @@ void NumberFormatTest::TestCurrencyUsage() {
 
     // compare the Currency and Currency Cash Digits
     // Note that as of CLDR 26:
-    // * TWD switches from 0 decimals to 2; PKR still has 0, so change test to that
+    // * TWD and PKR switched from 0 decimals to 2; ISK still has 0, so change test to that
     // * CAD rounds to .05 in cash mode only
     // 1st time for getter/setter, 2nd time for factory method
-    Locale enUS_PKR("en_US@currency=PKR");
+    Locale enUS_ISK("en_US@currency=ISK");
 
     for(int i=0; i<2; i++){
         status = U_ZERO_ERROR;
         if(i == 0){
-            fmt = (DecimalFormat *) NumberFormat::createInstance(enUS_PKR, UNUM_CURRENCY, status);
-            if (assertSuccess("en_US@currency=PKR/CURRENCY", status, TRUE) == FALSE) {
+            fmt = (DecimalFormat *) NumberFormat::createInstance(enUS_ISK, UNUM_CURRENCY, status);
+            if (assertSuccess("en_US@currency=ISK/CURRENCY", status, TRUE) == FALSE) {
                 continue;
             }
 
             UnicodeString original;
             fmt->format(agent,original);
-            assertEquals("Test Currency Usage 1", u"PKR\u00A0124", original);
+            assertEquals("Test Currency Usage 1", u"ISK\u00A0124", original);
 
             // test the getter here
             UCurrencyUsage curUsage = fmt->getCurrencyUsage();
@@ -7917,8 +7949,8 @@ void NumberFormatTest::TestCurrencyUsage() {
 
             fmt->setCurrencyUsage(UCURR_USAGE_CASH, &status);
         }else{
-            fmt = (DecimalFormat *) NumberFormat::createInstance(enUS_PKR, UNUM_CASH_CURRENCY, status);
-            if (assertSuccess("en_US@currency=PKR/CASH", status, TRUE) == FALSE) {
+            fmt = (DecimalFormat *) NumberFormat::createInstance(enUS_ISK, UNUM_CASH_CURRENCY, status);
+            if (assertSuccess("en_US@currency=ISK/CASH", status, TRUE) == FALSE) {
                 continue;
             }
         }
@@ -7929,7 +7961,7 @@ void NumberFormatTest::TestCurrencyUsage() {
 
         UnicodeString cash_currency;
         fmt->format(agent,cash_currency);
-        assertEquals("Test Currency Usage 2", u"PKR\u00A0124", cash_currency);
+        assertEquals("Test Currency Usage 2", u"ISK\u00A0124", cash_currency);
         delete fmt;
     }
 
@@ -7989,7 +8021,7 @@ void NumberFormatTest::TestCurrencyUsage() {
 
         UnicodeString PKR_changed;
         fmt->format(agent, PKR_changed);
-        assertEquals("Test Currency Usage 6", u"PKR\u00A0124", PKR_changed);
+        assertEquals("Test Currency Usage 6", u"PKR\u00A0123.57", PKR_changed);
         delete fmt;
     }
 }
@@ -8911,6 +8943,21 @@ void NumberFormatTest::Test11626_CustomizeCurrencyPluralInfo() {
     assertEquals("Plural other", u"99 америчких долара", df.format(99, result.remove(), errorCode));
 }
 
+void NumberFormatTest::Test20073_StrictPercentParseErrorIndex() {
+    IcuTestErrorCode status(*this, "Test20073_StrictPercentParseErrorIndex");
+    ParsePosition parsePosition(0);
+    DecimalFormat df(u"0%", {"en-us", status}, status);
+    if (U_FAILURE(status)) {
+        dataerrln("Unable to create DecimalFormat instance.");
+        return;
+    }
+    df.setLenient(FALSE);
+    Formattable result;
+    df.parse(u"%2%", result, parsePosition);
+    assertEquals("", 0, parsePosition.getIndex());
+    assertEquals("", 0, parsePosition.getErrorIndex());
+}
+
 void NumberFormatTest::Test13056_GroupingSize() {
     UErrorCode status = U_ZERO_ERROR;
     DecimalFormat df(u"#,##0", status);
@@ -9155,6 +9202,32 @@ void NumberFormatTest::Test13804_EmptyStringsWhenParsing() {
     }
 }
 
+void NumberFormatTest::Test20037_ScientificIntegerOverflow() {
+    IcuTestErrorCode status(*this, "Test20037_ScientificIntegerOverflow");
+
+    LocalPointer<NumberFormat> nf(NumberFormat::createInstance(status));
+    if (U_FAILURE(status)) {
+        dataerrln("Unable to create NumberFormat instance.");
+        return;
+    }
+    Formattable result;
+
+    // Test overflow of exponent
+    nf->parse(u"1E-2147483648", result, status);
+    StringPiece sp = result.getDecimalNumber(status);
+    assertEquals(u"Should snap to zero",
+                 u"0",
+                 {sp.data(), sp.length(), US_INV});
+
+    // Test edge case overflow of exponent
+    result = Formattable();
+    nf->parse(u"1E-2147483647E-1", result, status);
+    sp = result.getDecimalNumber(status);
+    assertEquals(u"Should not overflow and should parse only the first exponent",
+                 u"1E-2147483647",
+                 {sp.data(), sp.length(), US_INV});
+}
+
 void NumberFormatTest::Test13840_ParseLongStringCrash() {
     IcuTestErrorCode status(*this, "Test13840_ParseLongStringCrash");
 
@@ -9185,4 +9258,43 @@ void NumberFormatTest::Test13840_ParseLongStringCrash() {
     assertEquals("Should round-trip without crashing", expectedUString, actualUString);
 }
 
+void NumberFormatTest::Test13850_EmptyStringCurrency() {
+    IcuTestErrorCode status(*this, "Test13840_EmptyStringCurrency");
+
+    struct TestCase {
+        const char16_t* currencyArg;
+        UErrorCode expectedError;
+    } cases[] = {
+        {u"", U_ZERO_ERROR},
+        {u"U", U_ILLEGAL_ARGUMENT_ERROR},
+        {u"Us", U_ILLEGAL_ARGUMENT_ERROR},
+        {nullptr, U_ZERO_ERROR},
+        {u"U$D", U_INVARIANT_CONVERSION_ERROR},
+        {u"Xxx", U_ZERO_ERROR}
+    };
+    for (const auto& cas : cases) {
+        UnicodeString message(u"with currency arg: ");
+        if (cas.currencyArg == nullptr) {
+            message += u"nullptr";
+        } else {
+            message += UnicodeString(cas.currencyArg);
+        }
+        status.setScope(message);
+        LocalPointer<NumberFormat> nf(NumberFormat::createCurrencyInstance("en-US", status), status);
+        if (status.errIfFailureAndReset()) { return; }
+        UnicodeString actual;
+        nf->format(1, actual, status);
+        status.errIfFailureAndReset();
+        assertEquals(u"Should format with US currency " + message, u"$1.00", actual);
+        nf->setCurrency(cas.currencyArg, status);
+        if (status.expectErrorAndReset(cas.expectedError)) {
+            // If an error occurred, do not check formatting.
+            continue;
+        }
+        nf->format(1, actual.remove(), status);
+        assertEquals(u"Should unset the currency " + message, u"\u00A41.00", actual);
+        status.errIfFailureAndReset();
+    }
+}
+
 #endif /* #if !UCONFIG_NO_FORMATTING */
index b51e752..9d25538 100644 (file)
@@ -266,6 +266,7 @@ class NumberFormatTest: public CalendarTimeZoneTest {
     void Test11645_ApplyPatternEquality();
     void Test12567();
     void Test11626_CustomizeCurrencyPluralInfo();
+    void Test20073_StrictPercentParseErrorIndex();
     void Test13056_GroupingSize();
     void Test11025_CurrencyPadding();
     void Test11648_ExpDecFormatMalPattern();
@@ -279,7 +280,9 @@ class NumberFormatTest: public CalendarTimeZoneTest {
     void Test13763_FieldPositionIteratorOffset();
     void Test13777_ParseLongNameNonCurrencyMode();
     void Test13804_EmptyStringsWhenParsing();
+    void Test20037_ScientificIntegerOverflow();
     void Test13840_ParseLongStringCrash();
+    void Test13850_EmptyStringCurrency();
 
  private:
     UBool testFormattableAsUFormattable(const char *file, int line, Formattable &f);
index 4827045..2cfc4ee 100644 (file)
@@ -11,6 +11,7 @@
 
 #include "numrgts.h"
 
+#include <cmath>   // std::signbit
 #include <float.h> // DBL_MIN, DBL_MAX
 #include <stdio.h>
 
@@ -548,8 +549,8 @@ void NumberFormatRegressionTest::Test4086575(void)
     // nbsp = \u00a0
     //nf->applyLocalizedPattern("#\u00a0###,00;(#\u00a0###,00)");
     UChar patChars[] = {
-             0x23, 0x00a0, 0x23, 0x23, 0x23, 0x2c, 0x30, 0x30, 0x3b, 
-        0x28, 0x23, 0x00a0, 0x23, 0x23, 0x23, 0x2c, 0x30, 0x30, 0x29
+             0x23, 0x202f, 0x23, 0x23, 0x23, 0x2c, 0x30, 0x30, 0x3b, 
+        0x28, 0x23, 0x202f, 0x23, 0x23, 0x23, 0x2c, 0x30, 0x30, 0x29
     };
     UnicodeString pat(patChars, 19, 19);
     nf->applyLocalizedPattern(pat, status);
@@ -560,7 +561,7 @@ void NumberFormatRegressionTest::Test4086575(void)
     buffer = nf->format((int32_t)1234, buffer, pos);
     //if (buffer != UnicodeString("1\u00a0234,00"))
     UChar c[] = {
-        0x31, 0x00a0, 0x32, 0x33, 0x34, 0x2c, 0x30, 0x30
+        0x31, 0x202f, 0x32, 0x33, 0x34, 0x2c, 0x30, 0x30
     };
     UnicodeString cc(c, 8, 8);
     if (buffer != cc)
@@ -569,7 +570,7 @@ void NumberFormatRegressionTest::Test4086575(void)
     buffer.remove();
     buffer = nf->format((int32_t)-1234, buffer, pos);
     UChar c1[] = {
-        0x28, 0x31, 0x00a0, 0x32, 0x33, 0x34, 0x2c, 0x30, 0x30, 0x29
+        0x28, 0x31, 0x202f, 0x32, 0x33, 0x34, 0x2c, 0x30, 0x30, 0x29
     };
     UnicodeString cc1(c1, 10, 10);
     if (buffer != cc1)
@@ -898,18 +899,18 @@ void NumberFormatRegressionTest::Test4070798 (void)
     UnicodeString tempString;
     
     /* User error :
-    String expectedDefault = "-5\u00a0789,987";
-    String expectedCurrency = "5\u00a0789,98\u00a0F";
-    String expectedPercent = "-578\u00a0998%";
+    String expectedDefault = "-5\u202f789,987";
+    String expectedCurrency = "5\u202f789,98\u00a0F";
+    String expectedPercent = "-578\u202f998%";
     */
     UChar chars1 [] = {
-        0x2d, 0x35, 0x00a0, 0x37, 0x38, 0x39, 0x2c, 0x39, 0x38, 0x38
+        0x2d, 0x35, 0x202f, 0x37, 0x38, 0x39, 0x2c, 0x39, 0x38, 0x38
     };
     UChar chars2 [] = {
-        0x35, 0x00a0, 0x37, 0x38, 0x39, 0x2c, 0x39, 0x39, 0x00a0, 0x46
+        0x35, 0x202f, 0x37, 0x38, 0x39, 0x2c, 0x39, 0x39, 0x00a0, 0x46
     };
     UChar chars3 [] = {
-        0x2d, 0x35, 0x37, 0x38, 0x00a0, 0x39, 0x39, 0x39, 0x00a0, 0x25
+        0x2d, 0x35, 0x37, 0x38, 0x202f, 0x39, 0x39, 0x39, 0x00a0, 0x25
     };
     UnicodeString expectedDefault(chars1, 10, 10);
     UnicodeString expectedCurrency(chars2, 10, 10);
@@ -2142,8 +2143,9 @@ NumberFormatRegressionTest::Test4162852(void)
 {
     UErrorCode status = U_ZERO_ERROR;
     for(int32_t i=0; i < 2; ++i) {
-        NumberFormat *f = (i == 0) ? NumberFormat::createInstance(status)
-            : NumberFormat::createPercentInstance(status);
+        LocalPointer<NumberFormat> f(
+            ((i == 0) ? NumberFormat::createInstance(status) : NumberFormat::createPercentInstance(status)),
+            status);
         if(U_FAILURE(status)) {
             dataerrln("Couldn't create number format - %s", u_errorName(status));
             return;
@@ -2154,20 +2156,19 @@ NumberFormatRegressionTest::Test4162852(void)
         f->format(d, s);
         Formattable n;
         f->parse(s, n, status);
-        if(U_FAILURE(status))
+        if(U_FAILURE(status)) {
             errln("Couldn't parse!");
+            return;
+        }
         double e = n.getDouble();
-        logln(UnicodeString("") +
-              d + " -> " +
-              '"' + s + '"' + " -> " + e);
+        logln("%f -> \"%s\" -> %f", d, CStr(s)(), e);
 #if (U_PLATFORM == U_PF_OS390 && !defined(IEEE_754)) || U_PLATFORM == U_PF_OS400
         if (e != 0.0) {
 #else
-        if (e != 0.0 || 1.0/e > 0.0) {
+        if (e != 0.0 || (std::signbit(e) == false)) {
 #endif
-            logln("Failed to parse negative zero");
+            errln("Failed to parse negative zero");
         }
-        delete f;
     }
 }
 
index f4fb701..2a45ae6 100644 (file)
@@ -184,6 +184,14 @@ void BreakRules::addRule(const UnicodeString &name, const UnicodeString &definit
     }
     fSetRefsMatcher->appendTail(thisRule->fExpandedRule);
 
+    // If rule begins with a '^' rule chaining is disallowed.
+    // Strip off the '^' from the rule expression, and set the flag.
+    if (thisRule->fExpandedRule.charAt(0) == u'^') {
+        thisRule->fInitialMatchOnly = true;
+        thisRule->fExpandedRule.remove(0, 1);
+        thisRule->fExpandedRule.trim();
+    }
+
     // Replace the divide sign (\u00f7) with a regular expression named capture.
     // When running the rules, a match that includes this group means we found a break position.
 
@@ -442,6 +450,8 @@ void MonkeyTestData::set(BreakRules *rules, IntlTest::icu_rand &rand, UErrorCode
                                              // ICU always reports a break there.
                                              // The reference rules do not have a means to do so.
     int32_t strIdx = 0;
+    bool    initialMatch = true;             // True at start of text, and immediately after each boundary,
+                                             // for control over rule chaining.
     while (strIdx < fString.length()) {
         BreakRule *matchingRule = NULL;
         UBool      hasBreak = FALSE;
@@ -451,6 +461,10 @@ void MonkeyTestData::set(BreakRules *rules, IntlTest::icu_rand &rand, UErrorCode
         int32_t breakGroup = 0;
         for (ruleNum=0; ruleNum<rules->fBreakRules.size(); ruleNum++) {
             BreakRule *rule = static_cast<BreakRule *>(rules->fBreakRules.elementAt(ruleNum));
+            if (rule->fInitialMatchOnly && !initialMatch) {
+                // Skip checking this '^' rule. (No rule chaining)
+                continue;
+            }
             rule->fRuleMatcher->reset();
             if (rule->fRuleMatcher->lookingAt(strIdx, status)) {
                 // A candidate rule match, check further to see if we take it or continue to check other rules.
@@ -512,10 +526,12 @@ void MonkeyTestData::set(BreakRules *rules, IntlTest::icu_rand &rand, UErrorCode
             // which may differ from end of the match. The matching rule may have included
             // context following the boundary that needs to be looked at again.
             strIdx = matchingRule->fRuleMatcher->end(breakGroup, status);
+            initialMatch = true;
         } else {
             // Original rule didn't specify a break.
             // Continue applying rules starting on the last code point of this match.
             strIdx = fString.moveIndex32(matchEnd, -1);
+            initialMatch = false;
             if (strIdx == matchStart) {
                 // Match was only one code point, no progress if we continue.
                 // Shouldn't get here, case is filtered out at top of loop.
index 2ddc2bd..54d23fc 100644 (file)
@@ -102,6 +102,7 @@ class BreakRule: public UObject {
     UnicodeString    fRule;                            // Rule expression, excluding the name, as written in user source.
     UnicodeString    fExpandedRule;                    // Rule expression after expanding the set definitions.
     LocalPointer<RegexMatcher>  fRuleMatcher;          // Regular expression that matches the rule.
+    bool             fInitialMatchOnly = false;        // True if rule begins with '^', meaning no chaining.
 };
 
 
index 5463dad..048e2bb 100644 (file)
@@ -1283,35 +1283,40 @@ void RBBITest::TestUnicodeFiles() {
 
 
 // Check for test cases from the Unicode test data files that are known to fail
-// and should be skipped because ICU is not yet able to fully implement the spec.
-// See ticket #7270.
+// and should be skipped as known issues because ICU does not fully implement
+// the Unicode specifications, or because ICU includes tailorings that differ from
+// the Unicode standard.
+//
+// Test cases are identified by the test data sequence, which tends to be more stable
+// across Unicode versions than the test file line numbers.
+//
+// The test case with ticket "10666" is a dummy, included as an example.
 
 UBool RBBITest::testCaseIsKnownIssue(const UnicodeString &testCase, const char *fileName) {
     static struct TestCase {
+        const char *fTicketNum;
         const char *fFileName;
         const UChar *fString;
-    } badTestCases[] = {                                // Line Numbers from Unicode 7.0.0 file.
-        {"LineBreakTest.txt", u"\u200B\u0020}"},        // Line 5198
-        {"LineBreakTest.txt", u"\u200B\u0020)"},        // Line 5202
-        {"LineBreakTest.txt", u"\u200B\u0020!"},        // Line 5214
-        {"LineBreakTest.txt", u"\u200B\u0020,"},        // Line 5246
-        {"LineBreakTest.txt", u"\u200B\u0020/"},        // Line 5298
-        {"LineBreakTest.txt", u"\u200B\u0020\u2060"},   // Line 5302
-                                                        // Line Numbers from pre-release verion of GraphemeBreakTest-10.0.0.txt
-        {"GraphemeBreakTest.txt", u"\u200D\u2640"},     // Line 656, old GB 11 test ZWJ x GAZ
-        {"GraphemeBreakTest.txt", u"\u200D\U0001F466"}, // Line 658, old GB 11 test ZWJ x EBG
-        {"GraphemeBreakTest.txt", u"\u200D\U0001F466\U0001F3FB"}, // Line 842, old GB 11 test ZWJ x EBG x EModifier
-
-                                                        // Line Numbers from pre-release verion of WordBreakTest-10.0.0.txt
-        {"WordBreakTest.txt", u"\u200D\u261D"},         // Line 1356, ZWJ x EmojiNRK
-        {"WordBreakTest.txt", u"\u200D\U0001F3FB"},     // Line 1358, ZWJ x EmojiNRK
+    } badTestCases[] = {
+        {"10666", "GraphemeBreakTest.txt", u"\u0020\u0020\u0033"},    // Fake example, for illustration.
+        // Issue 8151, move the Finnish tailoring of the line break of hyphens to root.
+        // This probably ultimately wants to be resolved by updating UAX-14, but in the mean time
+        // ICU is out of sync with Unicode.
+        {"8151",  "LineBreakTest.txt", u"-#"},
+        {"8151",  "LineBreakTest.txt", u"\u002d\u0308\u0023"},
+        {"8151",  "LineBreakTest.txt", u"\u002d\u00a7"},
+        {"8151",  "LineBreakTest.txt", u"\u002d\u0308\u00a7"},
+        {"8151",  "LineBreakTest.txt", u"\u002d\U00050005"},
+        {"8151",  "LineBreakTest.txt", u"\u002d\u0308\U00050005"},
+        {"8151",  "LineBreakTest.txt", u"\u002d\u0e01"},
+        {"8151",  "LineBreakTest.txt", u"\u002d\u0308\u0e01"},
     };
 
     for (int n=0; n<UPRV_LENGTHOF(badTestCases); n++) {
         const TestCase &badCase = badTestCases[n];
         if (!strcmp(fileName, badCase.fFileName) &&
                 testCase == UnicodeString(badCase.fString)) {
-            return logKnownIssue("7270");
+            return logKnownIssue(badCase.fTicketNum);
         }
     }
     return FALSE;
@@ -2523,6 +2528,7 @@ private:
     UnicodeSet  *fB2;
     UnicodeSet  *fBA;
     UnicodeSet  *fBB;
+    UnicodeSet  *fHH;
     UnicodeSet  *fHY;
     UnicodeSet  *fH2;
     UnicodeSet  *fH3;
@@ -2550,7 +2556,7 @@ private:
     UnicodeSet  *fXX;
     UnicodeSet  *fEB;
     UnicodeSet  *fEM;
-    UnicodeSet  *fZJ;
+    UnicodeSet  *fZWJ;
 
     BreakIterator        *fCharBI;
     const UnicodeString  *fText;
@@ -2587,6 +2593,7 @@ RBBILineMonkey::RBBILineMonkey() :
     fB2    = new UnicodeSet(UNICODE_STRING_SIMPLE("[\\p{Line_break=B2}]"), status);
     fBA    = new UnicodeSet(UNICODE_STRING_SIMPLE("[\\p{Line_break=BA}]"), status);
     fBB    = new UnicodeSet(UNICODE_STRING_SIMPLE("[\\p{Line_break=BB}]"), status);
+    fHH    = new UnicodeSet();
     fHY    = new UnicodeSet(UNICODE_STRING_SIMPLE("[\\p{Line_break=HY}]"), status);
     fH2    = new UnicodeSet(UNICODE_STRING_SIMPLE("[\\p{Line_break=H2}]"), status);
     fH3    = new UnicodeSet(UNICODE_STRING_SIMPLE("[\\p{Line_break=H3}]"), status);
@@ -2615,7 +2622,7 @@ RBBILineMonkey::RBBILineMonkey() :
     fXX    = new UnicodeSet(UNICODE_STRING_SIMPLE("[\\p{Line_break=XX}]"), status);
     fEB    = new UnicodeSet(UNICODE_STRING_SIMPLE("[\\p{Line_break=EB}]"), status);
     fEM    = new UnicodeSet(UNICODE_STRING_SIMPLE("[\\p{Line_break=EM}]"), status);
-    fZJ    = new UnicodeSet(UNICODE_STRING_SIMPLE("[\\p{Line_break=ZWJ}]"), status);
+    fZWJ    = new UnicodeSet(UNICODE_STRING_SIMPLE("[\\p{Line_break=ZWJ}]"), status);
 
     if (U_FAILURE(status)) {
         deferredStatus = status;
@@ -2627,7 +2634,9 @@ RBBILineMonkey::RBBILineMonkey() :
     fAL->addAll(*fSG);     // Default behavior for SG is identical to AL.
 
     fNS->addAll(*fCJ);     // Default behavior for CJ is identical to NS.
-    fCM->addAll(*fZJ);     // ZWJ behaves as a CM.
+    fCM->addAll(*fZWJ);    // ZWJ behaves as a CM.
+
+    fHH->add(u'\u2010');   // Hyphen, '‐'
 
     fSets->addElement(fBK, status);
     fSets->addElement(fCR, status);
@@ -2669,7 +2678,7 @@ RBBILineMonkey::RBBILineMonkey() :
     fSets->addElement(fSG, status);
     fSets->addElement(fEB, status);
     fSets->addElement(fEM, status);
-    fSets->addElement(fZJ, status);
+    fSets->addElement(fZWJ, status);
 
 
     const char *rules =
@@ -2853,7 +2862,13 @@ int32_t RBBILineMonkey::next(int32_t startPos) {
         }
 
         // LB 8  Break after zero width space
-        if (fZW->contains(prevChar)) {
+        //       ZW SP* ÷
+        //       Scan backwards from prevChar for SP* ZW
+        tPos = prevPos;
+        while (tPos>0 && fSP->contains(fText->char32At(tPos))) {
+            tPos = fText->moveIndex32(tPos, -1);
+        }
+        if (fZW->contains(fText->char32At(tPos))) {
             break;
         }
 
@@ -2890,7 +2905,7 @@ int32_t RBBILineMonkey::next(int32_t startPos) {
         {
             int32_t prevIdx = fText->moveIndex32(pos, -1);
             UChar32 prevC = fText->char32At(prevIdx);
-            if (fZJ->contains(prevC)) {
+            if (fZWJ->contains(prevC)) {
                 continue;
             }
         }
@@ -3025,6 +3040,15 @@ int32_t RBBILineMonkey::next(int32_t startPos) {
             break;
         }
 
+        // LB 20.09  Don't break between Hyphens and letters if a break precedes the hyphen.
+        //           Formerly this was a Finnish tailoring.
+        //           Moved to root in ICU 63. This is an ICU customization, not in UAX-14.
+        //    ^($HY | $HH) $AL;
+        if (fAL->contains(thisChar) && (fHY->contains(prevChar) || fHH->contains(prevChar)) &&
+                prevPosX2 == -1) {
+            continue;
+        }
+
         // LB 21
         if (fBA->contains(thisChar) ||
             fHY->contains(thisChar) ||
@@ -3148,12 +3172,16 @@ int32_t RBBILineMonkey::next(int32_t startPos) {
             continue;
         }
 
-        // LB30a    RI RI <break> RI
-        //             RI    x    RI
+        // LB30a    RI RI  ÷  RI
+        //             RI  x  RI
         if (fRI->contains(prevCharX2) && fRI->contains(prevChar) && fRI->contains(thisChar)) {
             break;
         }
         if (fRI->contains(prevChar) && fRI->contains(thisChar)) {
+            // Two Regional Indicators have been paired.
+            // Over-write the trailing one (thisChar) to prevent it from forming another pair with a
+            // following RI. This is a hack.
+            thisChar = -1;
             continue;
         }
 
@@ -3192,6 +3220,7 @@ RBBILineMonkey::~RBBILineMonkey() {
     delete fB2;
     delete fBA;
     delete fBB;
+    delete fHH;
     delete fHY;
     delete fH2;
     delete fH3;
@@ -3220,7 +3249,7 @@ RBBILineMonkey::~RBBILineMonkey() {
     delete fXX;
     delete fEB;
     delete fEM;
-    delete fZJ;
+    delete fZWJ;
 
     delete fCharBI;
     delete fNumberMatcher;
index 20d62f3..d8a6723 100644 (file)
@@ -290,7 +290,7 @@ static KnownRegion knownRegions[] = {
     { "TA" ,  -1, "QO",  URGN_TERRITORY, "009" },
     { "TC" , 796, "029", URGN_TERRITORY, "019" },
     { "TD" , 148, "017", URGN_TERRITORY, "002" },
-    { "TF" , 260, "145", URGN_TERRITORY, "142" },
+    { "TF" , 260, "014", URGN_TERRITORY, "002" },
     { "TG" , 768, "011", URGN_TERRITORY, "002" },
     { "TH" , 764, "035", URGN_TERRITORY, "142" },
     { "TJ" , 762, "143", URGN_TERRITORY, "142" },
index c0765dd..4481f42 100644 (file)
 *
 *******************************************************************************
 */
+#include <memory>
 #include <stdio.h>
 #include <stdlib.h>
+#include <vector>
 
 #include "intltest.h"
 
@@ -24,6 +26,7 @@
 
 static const char *DirectionStr(UDateDirection direction);
 static const char *RelativeUnitStr(UDateRelativeUnit unit);
+static const char *RelativeDateTimeUnitStr(URelativeDateTimeUnit unit);
 static const char *AbsoluteUnitStr(UDateAbsoluteUnit unit);
 
 typedef struct WithQuantityExpected {
@@ -244,6 +247,7 @@ static WithoutQuantityExpected kEnglishNoQuantity[] = {
         {UDAT_DIRECTION_NEXT, UDAT_ABSOLUTE_DAY, "tomorrow"},
         {UDAT_DIRECTION_NEXT, UDAT_ABSOLUTE_WEEK, "next week"},
         {UDAT_DIRECTION_NEXT, UDAT_ABSOLUTE_MONTH, "next month"},
+        {UDAT_DIRECTION_NEXT, UDAT_ABSOLUTE_QUARTER, "next quarter"},
         {UDAT_DIRECTION_NEXT, UDAT_ABSOLUTE_YEAR, "next year"},
         {UDAT_DIRECTION_NEXT, UDAT_ABSOLUTE_MONDAY, "next Monday"},
         {UDAT_DIRECTION_NEXT, UDAT_ABSOLUTE_TUESDAY, "next Tuesday"},
@@ -258,6 +262,7 @@ static WithoutQuantityExpected kEnglishNoQuantity[] = {
         {UDAT_DIRECTION_LAST, UDAT_ABSOLUTE_DAY, "yesterday"},
         {UDAT_DIRECTION_LAST, UDAT_ABSOLUTE_WEEK, "last week"},
         {UDAT_DIRECTION_LAST, UDAT_ABSOLUTE_MONTH, "last month"},
+        {UDAT_DIRECTION_LAST, UDAT_ABSOLUTE_QUARTER, "last quarter"},
         {UDAT_DIRECTION_LAST, UDAT_ABSOLUTE_YEAR, "last year"},
         {UDAT_DIRECTION_LAST, UDAT_ABSOLUTE_MONDAY, "last Monday"},
         {UDAT_DIRECTION_LAST, UDAT_ABSOLUTE_TUESDAY, "last Tuesday"},
@@ -270,6 +275,7 @@ static WithoutQuantityExpected kEnglishNoQuantity[] = {
         {UDAT_DIRECTION_THIS, UDAT_ABSOLUTE_DAY, "today"},
         {UDAT_DIRECTION_THIS, UDAT_ABSOLUTE_WEEK, "this week"},
         {UDAT_DIRECTION_THIS, UDAT_ABSOLUTE_MONTH, "this month"},
+        {UDAT_DIRECTION_THIS, UDAT_ABSOLUTE_QUARTER, "this quarter"},
         {UDAT_DIRECTION_THIS, UDAT_ABSOLUTE_YEAR, "this year"},
         {UDAT_DIRECTION_THIS, UDAT_ABSOLUTE_MONDAY, "this Monday"},
         {UDAT_DIRECTION_THIS, UDAT_ABSOLUTE_TUESDAY, "this Tuesday"},
@@ -282,6 +288,7 @@ static WithoutQuantityExpected kEnglishNoQuantity[] = {
         {UDAT_DIRECTION_PLAIN, UDAT_ABSOLUTE_DAY, "day"},
         {UDAT_DIRECTION_PLAIN, UDAT_ABSOLUTE_WEEK, "week"},
         {UDAT_DIRECTION_PLAIN, UDAT_ABSOLUTE_MONTH, "month"},
+        {UDAT_DIRECTION_PLAIN, UDAT_ABSOLUTE_QUARTER, "quarter"},
         {UDAT_DIRECTION_PLAIN, UDAT_ABSOLUTE_YEAR, "year"},
         {UDAT_DIRECTION_PLAIN, UDAT_ABSOLUTE_MONDAY, "Monday"},
         {UDAT_DIRECTION_PLAIN, UDAT_ABSOLUTE_TUESDAY, "Tuesday"},
@@ -300,6 +307,7 @@ static WithoutQuantityExpected kEnglishNoQuantityCaps[] = {
         {UDAT_DIRECTION_NEXT, UDAT_ABSOLUTE_DAY, "Tomorrow"},
         {UDAT_DIRECTION_NEXT, UDAT_ABSOLUTE_WEEK, "Next week"},
         {UDAT_DIRECTION_NEXT, UDAT_ABSOLUTE_MONTH, "Next month"},
+        {UDAT_DIRECTION_NEXT, UDAT_ABSOLUTE_QUARTER, "Next quarter"},
         {UDAT_DIRECTION_NEXT, UDAT_ABSOLUTE_YEAR, "Next year"},
         {UDAT_DIRECTION_NEXT, UDAT_ABSOLUTE_MONDAY, "Next Monday"},
         {UDAT_DIRECTION_NEXT, UDAT_ABSOLUTE_TUESDAY, "Next Tuesday"},
@@ -314,6 +322,7 @@ static WithoutQuantityExpected kEnglishNoQuantityCaps[] = {
         {UDAT_DIRECTION_LAST, UDAT_ABSOLUTE_DAY, "Yesterday"},
         {UDAT_DIRECTION_LAST, UDAT_ABSOLUTE_WEEK, "Last week"},
         {UDAT_DIRECTION_LAST, UDAT_ABSOLUTE_MONTH, "Last month"},
+        {UDAT_DIRECTION_LAST, UDAT_ABSOLUTE_QUARTER, "Last quarter"},
         {UDAT_DIRECTION_LAST, UDAT_ABSOLUTE_YEAR, "Last year"},
         {UDAT_DIRECTION_LAST, UDAT_ABSOLUTE_MONDAY, "Last Monday"},
         {UDAT_DIRECTION_LAST, UDAT_ABSOLUTE_TUESDAY, "Last Tuesday"},
@@ -326,6 +335,7 @@ static WithoutQuantityExpected kEnglishNoQuantityCaps[] = {
         {UDAT_DIRECTION_THIS, UDAT_ABSOLUTE_DAY, "Today"},
         {UDAT_DIRECTION_THIS, UDAT_ABSOLUTE_WEEK, "This week"},
         {UDAT_DIRECTION_THIS, UDAT_ABSOLUTE_MONTH, "This month"},
+        {UDAT_DIRECTION_THIS, UDAT_ABSOLUTE_QUARTER, "This quarter"},
         {UDAT_DIRECTION_THIS, UDAT_ABSOLUTE_YEAR, "This year"},
         {UDAT_DIRECTION_THIS, UDAT_ABSOLUTE_MONDAY, "This Monday"},
         {UDAT_DIRECTION_THIS, UDAT_ABSOLUTE_TUESDAY, "This Tuesday"},
@@ -338,6 +348,7 @@ static WithoutQuantityExpected kEnglishNoQuantityCaps[] = {
         {UDAT_DIRECTION_PLAIN, UDAT_ABSOLUTE_DAY, "Day"},
         {UDAT_DIRECTION_PLAIN, UDAT_ABSOLUTE_WEEK, "Week"},
         {UDAT_DIRECTION_PLAIN, UDAT_ABSOLUTE_MONTH, "Month"},
+        {UDAT_DIRECTION_PLAIN, UDAT_ABSOLUTE_QUARTER, "Quarter"},
         {UDAT_DIRECTION_PLAIN, UDAT_ABSOLUTE_YEAR, "Year"},
         {UDAT_DIRECTION_PLAIN, UDAT_ABSOLUTE_MONDAY, "Monday"},
         {UDAT_DIRECTION_PLAIN, UDAT_ABSOLUTE_TUESDAY, "Tuesday"},
@@ -356,6 +367,7 @@ static WithoutQuantityExpected kEnglishNoQuantityShort[] = {
         {UDAT_DIRECTION_NEXT, UDAT_ABSOLUTE_DAY, "tomorrow"},
         {UDAT_DIRECTION_NEXT, UDAT_ABSOLUTE_WEEK, "next wk."},
         {UDAT_DIRECTION_NEXT, UDAT_ABSOLUTE_MONTH, "next mo."},
+        {UDAT_DIRECTION_NEXT, UDAT_ABSOLUTE_QUARTER, "next qtr."},
         {UDAT_DIRECTION_NEXT, UDAT_ABSOLUTE_YEAR, "next yr."},
         {UDAT_DIRECTION_NEXT, UDAT_ABSOLUTE_MONDAY, "next Mon."},
         {UDAT_DIRECTION_NEXT, UDAT_ABSOLUTE_TUESDAY, "next Tue."},
@@ -370,6 +382,7 @@ static WithoutQuantityExpected kEnglishNoQuantityShort[] = {
         {UDAT_DIRECTION_LAST, UDAT_ABSOLUTE_DAY, "yesterday"},
         {UDAT_DIRECTION_LAST, UDAT_ABSOLUTE_WEEK, "last wk."},
         {UDAT_DIRECTION_LAST, UDAT_ABSOLUTE_MONTH, "last mo."},
+        {UDAT_DIRECTION_LAST, UDAT_ABSOLUTE_QUARTER, "last qtr."},
         {UDAT_DIRECTION_LAST, UDAT_ABSOLUTE_YEAR, "last yr."},
         {UDAT_DIRECTION_LAST, UDAT_ABSOLUTE_MONDAY, "last Mon."},
         {UDAT_DIRECTION_LAST, UDAT_ABSOLUTE_TUESDAY, "last Tue."},
@@ -382,6 +395,7 @@ static WithoutQuantityExpected kEnglishNoQuantityShort[] = {
         {UDAT_DIRECTION_THIS, UDAT_ABSOLUTE_DAY, "today"},
         {UDAT_DIRECTION_THIS, UDAT_ABSOLUTE_WEEK, "this wk."},
         {UDAT_DIRECTION_THIS, UDAT_ABSOLUTE_MONTH, "this mo."},
+        {UDAT_DIRECTION_THIS, UDAT_ABSOLUTE_QUARTER, "this qtr."},
         {UDAT_DIRECTION_THIS, UDAT_ABSOLUTE_YEAR, "this yr."},
         {UDAT_DIRECTION_THIS, UDAT_ABSOLUTE_MONDAY, "this Mon."},
         {UDAT_DIRECTION_THIS, UDAT_ABSOLUTE_TUESDAY, "this Tue."},
@@ -394,6 +408,7 @@ static WithoutQuantityExpected kEnglishNoQuantityShort[] = {
         {UDAT_DIRECTION_PLAIN, UDAT_ABSOLUTE_DAY, "day"},
         {UDAT_DIRECTION_PLAIN, UDAT_ABSOLUTE_WEEK, "wk."},
         {UDAT_DIRECTION_PLAIN, UDAT_ABSOLUTE_MONTH, "mo."},
+        {UDAT_DIRECTION_PLAIN, UDAT_ABSOLUTE_QUARTER, "qtr."},
         {UDAT_DIRECTION_PLAIN, UDAT_ABSOLUTE_YEAR, "yr."},
         {UDAT_DIRECTION_PLAIN, UDAT_ABSOLUTE_MONDAY, "Mo"},
         {UDAT_DIRECTION_PLAIN, UDAT_ABSOLUTE_TUESDAY, "Tu"},
@@ -412,6 +427,7 @@ static WithoutQuantityExpected kEnglishNoQuantityNarrow[] = {
         {UDAT_DIRECTION_NEXT, UDAT_ABSOLUTE_DAY, "tomorrow"},
         {UDAT_DIRECTION_NEXT, UDAT_ABSOLUTE_WEEK, "next wk."},
         {UDAT_DIRECTION_NEXT, UDAT_ABSOLUTE_MONTH, "next mo."},
+        {UDAT_DIRECTION_NEXT, UDAT_ABSOLUTE_QUARTER, "next qtr."},
         {UDAT_DIRECTION_NEXT, UDAT_ABSOLUTE_YEAR, "next yr."},
         {UDAT_DIRECTION_NEXT, UDAT_ABSOLUTE_MONDAY, "next M"},
         {UDAT_DIRECTION_NEXT, UDAT_ABSOLUTE_TUESDAY, "next Tu"},
@@ -426,6 +442,7 @@ static WithoutQuantityExpected kEnglishNoQuantityNarrow[] = {
         {UDAT_DIRECTION_LAST, UDAT_ABSOLUTE_DAY, "yesterday"},
         {UDAT_DIRECTION_LAST, UDAT_ABSOLUTE_WEEK, "last wk."},
         {UDAT_DIRECTION_LAST, UDAT_ABSOLUTE_MONTH, "last mo."},
+        {UDAT_DIRECTION_LAST, UDAT_ABSOLUTE_QUARTER, "last qtr."},
         {UDAT_DIRECTION_LAST, UDAT_ABSOLUTE_YEAR, "last yr."},
         {UDAT_DIRECTION_LAST, UDAT_ABSOLUTE_MONDAY, "last M"},
         {UDAT_DIRECTION_LAST, UDAT_ABSOLUTE_TUESDAY, "last Tu"},
@@ -438,6 +455,7 @@ static WithoutQuantityExpected kEnglishNoQuantityNarrow[] = {
         {UDAT_DIRECTION_THIS, UDAT_ABSOLUTE_DAY, "today"},
         {UDAT_DIRECTION_THIS, UDAT_ABSOLUTE_WEEK, "this wk."},
         {UDAT_DIRECTION_THIS, UDAT_ABSOLUTE_MONTH, "this mo."},
+        {UDAT_DIRECTION_THIS, UDAT_ABSOLUTE_QUARTER, "this qtr."},
         {UDAT_DIRECTION_THIS, UDAT_ABSOLUTE_YEAR, "this yr."},
         {UDAT_DIRECTION_THIS, UDAT_ABSOLUTE_MONDAY, "this M"},
         {UDAT_DIRECTION_THIS, UDAT_ABSOLUTE_TUESDAY, "this Tu"},
@@ -450,6 +468,7 @@ static WithoutQuantityExpected kEnglishNoQuantityNarrow[] = {
         {UDAT_DIRECTION_PLAIN, UDAT_ABSOLUTE_DAY, "day"},
         {UDAT_DIRECTION_PLAIN, UDAT_ABSOLUTE_WEEK, "wk."},
         {UDAT_DIRECTION_PLAIN, UDAT_ABSOLUTE_MONTH, "mo."},
+        {UDAT_DIRECTION_PLAIN, UDAT_ABSOLUTE_QUARTER, "qtr."},
         {UDAT_DIRECTION_PLAIN, UDAT_ABSOLUTE_YEAR, "yr."},
         {UDAT_DIRECTION_PLAIN, UDAT_ABSOLUTE_MONDAY, "M"},
         {UDAT_DIRECTION_PLAIN, UDAT_ABSOLUTE_TUESDAY, "T"},
@@ -467,6 +486,261 @@ static WithoutQuantityExpected kSpanishNoQuantity[] = {
         {UDAT_DIRECTION_LAST_2, UDAT_ABSOLUTE_DAY, "anteayer"}
 };
 
+typedef struct WithQuantityExpectedRelativeDateTimeUnit {
+    double value;
+    URelativeDateTimeUnit unit;
+    const char *expected;
+} WithQuantityExpectedRelativeDateTimeUnit;
+
+static WithQuantityExpectedRelativeDateTimeUnit kEnglishFormatNumeric[] = {
+        {0.0, UDAT_REL_UNIT_SECOND, "in 0 seconds"},
+        {0.5, UDAT_REL_UNIT_SECOND, "in 0.5 seconds"},
+        {1.0, UDAT_REL_UNIT_SECOND, "in 1 second"},
+        {2.0, UDAT_REL_UNIT_SECOND, "in 2 seconds"},
+        {0.0, UDAT_REL_UNIT_MINUTE, "in 0 minutes"},
+        {0.5, UDAT_REL_UNIT_MINUTE, "in 0.5 minutes"},
+        {1.0, UDAT_REL_UNIT_MINUTE, "in 1 minute"},
+        {2.0, UDAT_REL_UNIT_MINUTE, "in 2 minutes"},
+        {0.0, UDAT_REL_UNIT_HOUR, "in 0 hours"},
+        {0.5, UDAT_REL_UNIT_HOUR, "in 0.5 hours"},
+        {1.0, UDAT_REL_UNIT_HOUR, "in 1 hour"},
+        {2.0, UDAT_REL_UNIT_HOUR, "in 2 hours"},
+        {0.0, UDAT_REL_UNIT_DAY, "in 0 days"},
+        {0.5, UDAT_REL_UNIT_DAY, "in 0.5 days"},
+        {1.0, UDAT_REL_UNIT_DAY, "in 1 day"},
+        {2.0, UDAT_REL_UNIT_DAY, "in 2 days"},
+        {0.0, UDAT_REL_UNIT_WEEK, "in 0 weeks"},
+        {0.5, UDAT_REL_UNIT_WEEK, "in 0.5 weeks"},
+        {1.0, UDAT_REL_UNIT_WEEK, "in 1 week"},
+        {2.0, UDAT_REL_UNIT_WEEK, "in 2 weeks"},
+        {0.0, UDAT_REL_UNIT_MONTH, "in 0 months"},
+        {0.5, UDAT_REL_UNIT_MONTH, "in 0.5 months"},
+        {1.0, UDAT_REL_UNIT_MONTH, "in 1 month"},
+        {2.0, UDAT_REL_UNIT_MONTH, "in 2 months"},
+        {0.0, UDAT_REL_UNIT_QUARTER, "in 0 quarters"},
+        {0.5, UDAT_REL_UNIT_QUARTER, "in 0.5 quarters"},
+        {1.0, UDAT_REL_UNIT_QUARTER, "in 1 quarter"},
+        {2.0, UDAT_REL_UNIT_QUARTER, "in 2 quarters"},
+        {0.0, UDAT_REL_UNIT_YEAR, "in 0 years"},
+        {0.5, UDAT_REL_UNIT_YEAR, "in 0.5 years"},
+        {1.0, UDAT_REL_UNIT_YEAR, "in 1 year"},
+        {2.0, UDAT_REL_UNIT_YEAR, "in 2 years"},
+        {0.0, UDAT_REL_UNIT_SUNDAY, "in 0 Sundays"},
+        {0.5, UDAT_REL_UNIT_SUNDAY, "in 0.5 Sundays"},
+        {1.0, UDAT_REL_UNIT_SUNDAY, "in 1 Sunday"},
+        {2.0, UDAT_REL_UNIT_SUNDAY, "in 2 Sundays"},
+        {0.0, UDAT_REL_UNIT_MONDAY, "in 0 Mondays"},
+        {0.5, UDAT_REL_UNIT_MONDAY, "in 0.5 Mondays"},
+        {1.0, UDAT_REL_UNIT_MONDAY, "in 1 Monday"},
+        {2.0, UDAT_REL_UNIT_MONDAY, "in 2 Mondays"},
+        {0.0, UDAT_REL_UNIT_TUESDAY, "in 0 Tuesdays"},
+        {0.5, UDAT_REL_UNIT_TUESDAY, "in 0.5 Tuesdays"},
+        {1.0, UDAT_REL_UNIT_TUESDAY, "in 1 Tuesday"},
+        {2.0, UDAT_REL_UNIT_TUESDAY, "in 2 Tuesdays"},
+        {0.0, UDAT_REL_UNIT_WEDNESDAY, "in 0 Wednesdays"},
+        {0.5, UDAT_REL_UNIT_WEDNESDAY, "in 0.5 Wednesdays"},
+        {1.0, UDAT_REL_UNIT_WEDNESDAY, "in 1 Wednesday"},
+        {2.0, UDAT_REL_UNIT_WEDNESDAY, "in 2 Wednesdays"},
+        {0.0, UDAT_REL_UNIT_THURSDAY, "in 0 Thursdays"},
+        {0.5, UDAT_REL_UNIT_THURSDAY, "in 0.5 Thursdays"},
+        {1.0, UDAT_REL_UNIT_THURSDAY, "in 1 Thursday"},
+        {2.0, UDAT_REL_UNIT_THURSDAY, "in 2 Thursdays"},
+        {0.0, UDAT_REL_UNIT_FRIDAY, "in 0 Fridays"},
+        {0.5, UDAT_REL_UNIT_FRIDAY, "in 0.5 Fridays"},
+        {1.0, UDAT_REL_UNIT_FRIDAY, "in 1 Friday"},
+        {2.0, UDAT_REL_UNIT_FRIDAY, "in 2 Fridays"},
+        {0.0, UDAT_REL_UNIT_SATURDAY, "in 0 Saturdays"},
+        {0.5, UDAT_REL_UNIT_SATURDAY, "in 0.5 Saturdays"},
+        {1.0, UDAT_REL_UNIT_SATURDAY, "in 1 Saturday"},
+        {2.0, UDAT_REL_UNIT_SATURDAY, "in 2 Saturdays"},
+
+        {-0.0, UDAT_REL_UNIT_SECOND, "0 seconds ago"},
+        {-0.5, UDAT_REL_UNIT_SECOND, "0.5 seconds ago"},
+        {-1.0, UDAT_REL_UNIT_SECOND, "1 second ago"},
+        {-2.0, UDAT_REL_UNIT_SECOND, "2 seconds ago"},
+        {-0.0, UDAT_REL_UNIT_MINUTE, "0 minutes ago"},
+        {-0.5, UDAT_REL_UNIT_MINUTE, "0.5 minutes ago"},
+        {-1.0, UDAT_REL_UNIT_MINUTE, "1 minute ago"},
+        {-2.0, UDAT_REL_UNIT_MINUTE, "2 minutes ago"},
+        {-0.0, UDAT_REL_UNIT_HOUR, "0 hours ago"},
+        {-0.5, UDAT_REL_UNIT_HOUR, "0.5 hours ago"},
+        {-1.0, UDAT_REL_UNIT_HOUR, "1 hour ago"},
+        {-2.0, UDAT_REL_UNIT_HOUR, "2 hours ago"},
+        {-0.0, UDAT_REL_UNIT_DAY, "0 days ago"},
+        {-0.5, UDAT_REL_UNIT_DAY, "0.5 days ago"},
+        {-1.0, UDAT_REL_UNIT_DAY, "1 day ago"},
+        {-2.0, UDAT_REL_UNIT_DAY, "2 days ago"},
+        {-0.0, UDAT_REL_UNIT_WEEK, "0 weeks ago"},
+        {-0.5, UDAT_REL_UNIT_WEEK, "0.5 weeks ago"},
+        {-1.0, UDAT_REL_UNIT_WEEK, "1 week ago"},
+        {-2.0, UDAT_REL_UNIT_WEEK, "2 weeks ago"},
+        {-0.0, UDAT_REL_UNIT_MONTH, "0 months ago"},
+        {-0.5, UDAT_REL_UNIT_MONTH, "0.5 months ago"},
+        {-1.0, UDAT_REL_UNIT_MONTH, "1 month ago"},
+        {-2.0, UDAT_REL_UNIT_MONTH, "2 months ago"},
+        {-0.0, UDAT_REL_UNIT_QUARTER, "0 quarters ago"},
+        {-0.5, UDAT_REL_UNIT_QUARTER, "0.5 quarters ago"},
+        {-1.0, UDAT_REL_UNIT_QUARTER, "1 quarter ago"},
+        {-2.0, UDAT_REL_UNIT_QUARTER, "2 quarters ago"},
+        {-0.0, UDAT_REL_UNIT_YEAR, "0 years ago"},
+        {-0.5, UDAT_REL_UNIT_YEAR, "0.5 years ago"},
+        {-1.0, UDAT_REL_UNIT_YEAR, "1 year ago"},
+        {-2.0, UDAT_REL_UNIT_YEAR, "2 years ago"},
+        {-0.0, UDAT_REL_UNIT_SUNDAY, "0 Sundays ago"},
+        {-0.5, UDAT_REL_UNIT_SUNDAY, "0.5 Sundays ago"},
+        {-1.0, UDAT_REL_UNIT_SUNDAY, "1 Sunday ago"},
+        {-2.0, UDAT_REL_UNIT_SUNDAY, "2 Sundays ago"},
+        {-0.0, UDAT_REL_UNIT_MONDAY, "0 Mondays ago"},
+        {-0.5, UDAT_REL_UNIT_MONDAY, "0.5 Mondays ago"},
+        {-1.0, UDAT_REL_UNIT_MONDAY, "1 Monday ago"},
+        {-2.0, UDAT_REL_UNIT_MONDAY, "2 Mondays ago"},
+        {-0.0, UDAT_REL_UNIT_TUESDAY, "0 Tuesdays ago"},
+        {-0.5, UDAT_REL_UNIT_TUESDAY, "0.5 Tuesdays ago"},
+        {-1.0, UDAT_REL_UNIT_TUESDAY, "1 Tuesday ago"},
+        {-2.0, UDAT_REL_UNIT_TUESDAY, "2 Tuesdays ago"},
+        {-0.0, UDAT_REL_UNIT_WEDNESDAY, "0 Wednesdays ago"},
+        {-0.5, UDAT_REL_UNIT_WEDNESDAY, "0.5 Wednesdays ago"},
+        {-1.0, UDAT_REL_UNIT_WEDNESDAY, "1 Wednesday ago"},
+        {-2.0, UDAT_REL_UNIT_WEDNESDAY, "2 Wednesdays ago"},
+        {-0.0, UDAT_REL_UNIT_THURSDAY, "0 Thursdays ago"},
+        {-0.5, UDAT_REL_UNIT_THURSDAY, "0.5 Thursdays ago"},
+        {-1.0, UDAT_REL_UNIT_THURSDAY, "1 Thursday ago"},
+        {-2.0, UDAT_REL_UNIT_THURSDAY, "2 Thursdays ago"},
+        {-0.0, UDAT_REL_UNIT_FRIDAY, "0 Fridays ago"},
+        {-0.5, UDAT_REL_UNIT_FRIDAY, "0.5 Fridays ago"},
+        {-1.0, UDAT_REL_UNIT_FRIDAY, "1 Friday ago"},
+        {-2.0, UDAT_REL_UNIT_FRIDAY, "2 Fridays ago"},
+        {-0.0, UDAT_REL_UNIT_SATURDAY, "0 Saturdays ago"},
+        {-0.5, UDAT_REL_UNIT_SATURDAY, "0.5 Saturdays ago"},
+        {-1.0, UDAT_REL_UNIT_SATURDAY, "1 Saturday ago"},
+        {-2.0, UDAT_REL_UNIT_SATURDAY, "2 Saturdays ago"}
+};
+
+static WithQuantityExpectedRelativeDateTimeUnit kEnglishFormat[] = {
+        {0.0, UDAT_REL_UNIT_SECOND, "now"},
+        {0.5, UDAT_REL_UNIT_SECOND, "in 0.5 seconds"},
+        {1.0, UDAT_REL_UNIT_SECOND, "in 1 second"},
+        {2.0, UDAT_REL_UNIT_SECOND, "in 2 seconds"},
+        {0.0, UDAT_REL_UNIT_MINUTE, "in 0 minutes"},
+        {0.5, UDAT_REL_UNIT_MINUTE, "in 0.5 minutes"},
+        {1.0, UDAT_REL_UNIT_MINUTE, "in 1 minute"},
+        {2.0, UDAT_REL_UNIT_MINUTE, "in 2 minutes"},
+        {0.0, UDAT_REL_UNIT_HOUR, "in 0 hours"},
+        {0.5, UDAT_REL_UNIT_HOUR, "in 0.5 hours"},
+        {1.0, UDAT_REL_UNIT_HOUR, "in 1 hour"},
+        {2.0, UDAT_REL_UNIT_HOUR, "in 2 hours"},
+        {0.0, UDAT_REL_UNIT_DAY, "today"},
+        {0.5, UDAT_REL_UNIT_DAY, "in 0.5 days"},
+        {1.0, UDAT_REL_UNIT_DAY, "tomorrow"},
+        {2.0, UDAT_REL_UNIT_DAY, "in 2 days"},
+        {0.0, UDAT_REL_UNIT_WEEK, "this week"},
+        {0.5, UDAT_REL_UNIT_WEEK, "in 0.5 weeks"},
+        {1.0, UDAT_REL_UNIT_WEEK, "next week"},
+        {2.0, UDAT_REL_UNIT_WEEK, "in 2 weeks"},
+        {0.0, UDAT_REL_UNIT_MONTH, "this month"},
+        {0.5, UDAT_REL_UNIT_MONTH, "in 0.5 months"},
+        {1.0, UDAT_REL_UNIT_MONTH, "next month"},
+        {2.0, UDAT_REL_UNIT_MONTH, "in 2 months"},
+        {0.0, UDAT_REL_UNIT_QUARTER, "this quarter"},
+        {0.5, UDAT_REL_UNIT_QUARTER, "in 0.5 quarters"},
+        {1.0, UDAT_REL_UNIT_QUARTER, "next quarter"},
+        {2.0, UDAT_REL_UNIT_QUARTER, "in 2 quarters"},
+        {0.0, UDAT_REL_UNIT_YEAR, "this year"},
+        {0.5, UDAT_REL_UNIT_YEAR, "in 0.5 years"},
+        {1.0, UDAT_REL_UNIT_YEAR, "next year"},
+        {2.0, UDAT_REL_UNIT_YEAR, "in 2 years"},
+        {0.0, UDAT_REL_UNIT_SUNDAY, "this Sunday"},
+        {0.5, UDAT_REL_UNIT_SUNDAY, "in 0.5 Sundays"},
+        {1.0, UDAT_REL_UNIT_SUNDAY, "next Sunday"},
+        {2.0, UDAT_REL_UNIT_SUNDAY, "in 2 Sundays"},
+        {0.0, UDAT_REL_UNIT_MONDAY, "this Monday"},
+        {0.5, UDAT_REL_UNIT_MONDAY, "in 0.5 Mondays"},
+        {1.0, UDAT_REL_UNIT_MONDAY, "next Monday"},
+        {2.0, UDAT_REL_UNIT_MONDAY, "in 2 Mondays"},
+        {0.0, UDAT_REL_UNIT_TUESDAY, "this Tuesday"},
+        {0.5, UDAT_REL_UNIT_TUESDAY, "in 0.5 Tuesdays"},
+        {1.0, UDAT_REL_UNIT_TUESDAY, "next Tuesday"},
+        {2.0, UDAT_REL_UNIT_TUESDAY, "in 2 Tuesdays"},
+        {0.0, UDAT_REL_UNIT_WEDNESDAY, "this Wednesday"},
+        {0.5, UDAT_REL_UNIT_WEDNESDAY, "in 0.5 Wednesdays"},
+        {1.0, UDAT_REL_UNIT_WEDNESDAY, "next Wednesday"},
+        {2.0, UDAT_REL_UNIT_WEDNESDAY, "in 2 Wednesdays"},
+        {0.0, UDAT_REL_UNIT_THURSDAY, "this Thursday"},
+        {0.5, UDAT_REL_UNIT_THURSDAY, "in 0.5 Thursdays"},
+        {1.0, UDAT_REL_UNIT_THURSDAY, "next Thursday"},
+        {2.0, UDAT_REL_UNIT_THURSDAY, "in 2 Thursdays"},
+        {0.0, UDAT_REL_UNIT_FRIDAY, "this Friday"},
+        {0.5, UDAT_REL_UNIT_FRIDAY, "in 0.5 Fridays"},
+        {1.0, UDAT_REL_UNIT_FRIDAY, "next Friday"},
+        {2.0, UDAT_REL_UNIT_FRIDAY, "in 2 Fridays"},
+        {0.0, UDAT_REL_UNIT_SATURDAY, "this Saturday"},
+        {0.5, UDAT_REL_UNIT_SATURDAY, "in 0.5 Saturdays"},
+        {1.0, UDAT_REL_UNIT_SATURDAY, "next Saturday"},
+        {2.0, UDAT_REL_UNIT_SATURDAY, "in 2 Saturdays"},
+
+        {-0.0, UDAT_REL_UNIT_SECOND, "now"},
+        {-0.5, UDAT_REL_UNIT_SECOND, "0.5 seconds ago"},
+        {-1.0, UDAT_REL_UNIT_SECOND, "1 second ago"},
+        {-2.0, UDAT_REL_UNIT_SECOND, "2 seconds ago"},
+        {-0.0, UDAT_REL_UNIT_MINUTE, "0 minutes ago"},
+        {-0.5, UDAT_REL_UNIT_MINUTE, "0.5 minutes ago"},
+        {-1.0, UDAT_REL_UNIT_MINUTE, "1 minute ago"},
+        {-2.0, UDAT_REL_UNIT_MINUTE, "2 minutes ago"},
+        {-0.0, UDAT_REL_UNIT_HOUR, "0 hours ago"},
+        {-0.5, UDAT_REL_UNIT_HOUR, "0.5 hours ago"},
+        {-1.0, UDAT_REL_UNIT_HOUR, "1 hour ago"},
+        {-2.0, UDAT_REL_UNIT_HOUR, "2 hours ago"},
+        {-0.0, UDAT_REL_UNIT_DAY, "today"},
+        {-0.5, UDAT_REL_UNIT_DAY, "0.5 days ago"},
+        {-1.0, UDAT_REL_UNIT_DAY, "yesterday"},
+        {-2.0, UDAT_REL_UNIT_DAY, "2 days ago"},
+        {-0.0, UDAT_REL_UNIT_WEEK, "this week"},
+        {-0.5, UDAT_REL_UNIT_WEEK, "0.5 weeks ago"},
+        {-1.0, UDAT_REL_UNIT_WEEK, "last week"},
+        {-2.0, UDAT_REL_UNIT_WEEK, "2 weeks ago"},
+        {-0.0, UDAT_REL_UNIT_MONTH, "this month"},
+        {-0.5, UDAT_REL_UNIT_MONTH, "0.5 months ago"},
+        {-1.0, UDAT_REL_UNIT_MONTH, "last month"},
+        {-2.0, UDAT_REL_UNIT_MONTH, "2 months ago"},
+        {-0.0, UDAT_REL_UNIT_QUARTER, "this quarter"},
+        {-0.5, UDAT_REL_UNIT_QUARTER, "0.5 quarters ago"},
+        {-1.0, UDAT_REL_UNIT_QUARTER, "last quarter"},
+        {-2.0, UDAT_REL_UNIT_QUARTER, "2 quarters ago"},
+        {-0.0, UDAT_REL_UNIT_YEAR, "this year"},
+        {-0.5, UDAT_REL_UNIT_YEAR, "0.5 years ago"},
+        {-1.0, UDAT_REL_UNIT_YEAR, "last year"},
+        {-2.0, UDAT_REL_UNIT_YEAR, "2 years ago"},
+        {-0.0, UDAT_REL_UNIT_SUNDAY, "this Sunday"},
+        {-0.5, UDAT_REL_UNIT_SUNDAY, "0.5 Sundays ago"},
+        {-1.0, UDAT_REL_UNIT_SUNDAY, "last Sunday"},
+        {-2.0, UDAT_REL_UNIT_SUNDAY, "2 Sundays ago"},
+        {-0.0, UDAT_REL_UNIT_MONDAY, "this Monday"},
+        {-0.5, UDAT_REL_UNIT_MONDAY, "0.5 Mondays ago"},
+        {-1.0, UDAT_REL_UNIT_MONDAY, "last Monday"},
+        {-2.0, UDAT_REL_UNIT_MONDAY, "2 Mondays ago"},
+        {-0.0, UDAT_REL_UNIT_TUESDAY, "this Tuesday"},
+        {-0.5, UDAT_REL_UNIT_TUESDAY, "0.5 Tuesdays ago"},
+        {-1.0, UDAT_REL_UNIT_TUESDAY, "last Tuesday"},
+        {-2.0, UDAT_REL_UNIT_TUESDAY, "2 Tuesdays ago"},
+        {-0.0, UDAT_REL_UNIT_WEDNESDAY, "this Wednesday"},
+        {-0.5, UDAT_REL_UNIT_WEDNESDAY, "0.5 Wednesdays ago"},
+        {-1.0, UDAT_REL_UNIT_WEDNESDAY, "last Wednesday"},
+        {-2.0, UDAT_REL_UNIT_WEDNESDAY, "2 Wednesdays ago"},
+        {-0.0, UDAT_REL_UNIT_THURSDAY, "this Thursday"},
+        {-0.5, UDAT_REL_UNIT_THURSDAY, "0.5 Thursdays ago"},
+        {-1.0, UDAT_REL_UNIT_THURSDAY, "last Thursday"},
+        {-2.0, UDAT_REL_UNIT_THURSDAY, "2 Thursdays ago"},
+        {-0.0, UDAT_REL_UNIT_FRIDAY, "this Friday"},
+        {-0.5, UDAT_REL_UNIT_FRIDAY, "0.5 Fridays ago"},
+        {-1.0, UDAT_REL_UNIT_FRIDAY, "last Friday"},
+        {-2.0, UDAT_REL_UNIT_FRIDAY, "2 Fridays ago"},
+        {-0.0, UDAT_REL_UNIT_SATURDAY, "this Saturday"},
+        {-0.5, UDAT_REL_UNIT_SATURDAY, "0.5 Saturdays ago"},
+        {-1.0, UDAT_REL_UNIT_SATURDAY, "last Saturday"},
+        {-2.0, UDAT_REL_UNIT_SATURDAY, "2 Saturdays ago"}
+};
+
+
 class RelativeDateTimeFormatterTest : public IntlTest {
 public:
     RelativeDateTimeFormatterTest() {
@@ -491,12 +765,20 @@ private:
     void TestGetters();
     void TestCombineDateAndTime();
     void TestBadDisplayContext();
+    void TestFormat();
+    void TestFormatNumeric();
+    void TestLocales();
     void RunTest(
             const Locale& locale,
             const WithQuantityExpected* expectedResults,
             int32_t expectedResultLength);
     void RunTest(
             const Locale& locale,
+            const WithQuantityExpectedRelativeDateTimeUnit* expectedResults,
+            int32_t expectedResultLength,
+            bool numeric);
+    void RunTest(
+            const Locale& locale,
             UDateRelativeDateTimeFormatterStyle style,
             const WithQuantityExpected* expectedResults,
             int32_t expectedResultLength);
@@ -516,6 +798,12 @@ private:
             const char *description);
     void RunTest(
             const RelativeDateTimeFormatter& fmt,
+            const WithQuantityExpectedRelativeDateTimeUnit* expectedResults,
+            int32_t expectedResultLength,
+            const char *description,
+            bool numeric);
+    void RunTest(
+            const RelativeDateTimeFormatter& fmt,
             const WithoutQuantityExpected* expectedResults,
             int32_t expectedResultLength,
             const char *description);
@@ -525,6 +813,11 @@ private:
             const char* description);
     void CheckExpectedResult(
             const RelativeDateTimeFormatter& fmt,
+            const WithQuantityExpectedRelativeDateTimeUnit& expectedResults,
+            const char* description,
+            bool numeric);
+    void CheckExpectedResult(
+            const RelativeDateTimeFormatter& fmt,
             const WithoutQuantityExpected& expectedResult,
             const char* description);
     void VerifyIllegalArgument(
@@ -562,6 +855,9 @@ void RelativeDateTimeFormatterTest::runIndexedTest(
     TESTCASE_AUTO(TestCombineDateAndTime);
     TESTCASE_AUTO(TestBadDisplayContext);
     TESTCASE_AUTO(TestSidewaysDataLoading);
+    TESTCASE_AUTO(TestFormat);
+    TESTCASE_AUTO(TestFormatNumeric);
+    TESTCASE_AUTO(TestLocales);
     TESTCASE_AUTO_END;
 }
 
@@ -767,6 +1063,21 @@ void RelativeDateTimeFormatterTest::RunTest(
 
 void RelativeDateTimeFormatterTest::RunTest(
         const Locale& locale,
+        const WithQuantityExpectedRelativeDateTimeUnit* expectedResults,
+        int32_t expectedResultLength,
+        bool numeric) {
+    UErrorCode status = U_ZERO_ERROR;
+    RelativeDateTimeFormatter fmt(locale, status);
+    if (U_FAILURE(status)) {
+        dataerrln("Unable to create format object - %s", u_errorName(status));
+        return;
+    }
+    RunTest(fmt, expectedResults, expectedResultLength, locale.getName(), numeric);
+}
+
+
+void RelativeDateTimeFormatterTest::RunTest(
+        const Locale& locale,
         UDateRelativeDateTimeFormatterStyle style,
         const WithQuantityExpected* expectedResults,
         int32_t expectedResultLength) {
@@ -820,6 +1131,17 @@ void RelativeDateTimeFormatterTest::RunTest(
 
 void RelativeDateTimeFormatterTest::RunTest(
         const RelativeDateTimeFormatter& fmt,
+        const WithQuantityExpectedRelativeDateTimeUnit* expectedResults,
+        int32_t expectedResultLength,
+        const char *description,
+        bool numeric) {
+    for (int32_t i = 0; i < expectedResultLength; ++i) {
+        CheckExpectedResult(fmt, expectedResults[i], description, numeric);
+    }
+}
+
+void RelativeDateTimeFormatterTest::RunTest(
+        const RelativeDateTimeFormatter& fmt,
         const WithoutQuantityExpected* expectedResults,
         int32_t expectedResultLength,
         const char *description) {
@@ -854,6 +1176,34 @@ void RelativeDateTimeFormatterTest::CheckExpectedResult(
 
 void RelativeDateTimeFormatterTest::CheckExpectedResult(
         const RelativeDateTimeFormatter& fmt,
+        const WithQuantityExpectedRelativeDateTimeUnit& expectedResult,
+        const char* description,
+        bool numeric) {
+    UErrorCode status = U_ZERO_ERROR;
+    UnicodeString actual;
+    if (numeric) {
+      fmt.formatNumeric(expectedResult.value, expectedResult.unit, actual, status);
+    } else {
+      fmt.format(expectedResult.value, expectedResult.unit, actual, status);
+    }
+    UnicodeString expected(expectedResult.expected, -1, US_INV);
+    expected = expected.unescape();
+    char buffer[256];
+    sprintf(
+            buffer,
+            "%s, %f, %s",
+            description,
+            expectedResult.value,
+            RelativeDateTimeUnitStr(expectedResult.unit));
+    if (actual != expected) {
+        errln(UnicodeString("Fail: Expected: ") + expected
+                + ", Got: " + actual
+                + ", For: " + buffer);
+    }
+}
+
+void RelativeDateTimeFormatterTest::CheckExpectedResult(
+        const RelativeDateTimeFormatter& fmt,
         const WithoutQuantityExpected& expectedResult,
         const char* description) {
     UErrorCode status = U_ZERO_ERROR;
@@ -942,6 +1292,27 @@ void RelativeDateTimeFormatterTest::TestSidewaysDataLoading(void) {
     assertEquals("next year: ", expected, actual);
 }
 
+void RelativeDateTimeFormatterTest::TestFormatNumeric() {
+    RunTest("en", kEnglishFormatNumeric, UPRV_LENGTHOF(kEnglishFormatNumeric), true);
+}
+
+void RelativeDateTimeFormatterTest::TestFormat() {
+    RunTest("en", kEnglishFormat, UPRV_LENGTHOF(kEnglishFormat), false);
+}
+
+void RelativeDateTimeFormatterTest::TestLocales() {
+    int32_t numLocales = 0;
+    const Locale *availableLocales = Locale::getAvailableLocales(numLocales);
+    std::vector<std::unique_ptr<RelativeDateTimeFormatter>> allFormatters;
+    for (int localeIdx=0; localeIdx<numLocales; localeIdx++) {
+        const Locale &loc = availableLocales[localeIdx];
+        UErrorCode status = U_ZERO_ERROR;
+        std::unique_ptr<RelativeDateTimeFormatter> rdtf(new RelativeDateTimeFormatter(loc, status));
+        allFormatters.push_back(std::move(rdtf));
+        assertSuccess(loc.getName(), status);
+    }
+}
+
 static const char *kLast2 = "Last_2";
 static const char *kLast = "Last";
 static const char *kThis = "This";
@@ -955,7 +1326,15 @@ static const char *kHours = "Hours";
 static const char *kDays = "Days";
 static const char *kWeeks = "Weeks";
 static const char *kMonths = "Months";
+static const char *kQuarters = "Quarters";
 static const char *kYears = "Years";
+static const char *kSundays = "Sundays";
+static const char *kMondays = "Mondays";
+static const char *kTuesdays = "Tuesdays";
+static const char *kWednesdays = "Wednesdays";
+static const char *kThursdays = "Thursdays";
+static const char *kFridays = "Fridays";
+static const char *kSaturdays = "Saturdays";
 
 static const char *kSunday = "Sunday";
 static const char *kMonday = "Monday";
@@ -967,6 +1346,7 @@ static const char *kSaturday = "Saturday";
 static const char *kDay = "Day";
 static const char *kWeek = "Week";
 static const char *kMonth = "Month";
+static const char *kQuarter = "Quarter";
 static const char *kYear = "Year";
 static const char *kNow = "Now";
 
@@ -1016,6 +1396,45 @@ static const char *RelativeUnitStr(
     return kUndefined;
 }
 
+static const char *RelativeDateTimeUnitStr(
+        URelativeDateTimeUnit  unit) {
+    switch (unit) {
+        case UDAT_REL_UNIT_SECOND:
+            return kSeconds;
+        case UDAT_REL_UNIT_MINUTE:
+            return kMinutes;
+        case UDAT_REL_UNIT_HOUR:
+            return kHours;
+        case UDAT_REL_UNIT_DAY:
+            return kDays;
+        case UDAT_REL_UNIT_WEEK:
+            return kWeeks;
+        case UDAT_REL_UNIT_MONTH:
+            return kMonths;
+        case UDAT_REL_UNIT_QUARTER:
+            return kQuarters;
+        case UDAT_REL_UNIT_YEAR:
+            return kYears;
+        case UDAT_REL_UNIT_SUNDAY:
+            return kSundays;
+        case UDAT_REL_UNIT_MONDAY:
+            return kMondays;
+        case UDAT_REL_UNIT_TUESDAY:
+            return kTuesdays;
+        case UDAT_REL_UNIT_WEDNESDAY:
+            return kWednesdays;
+        case UDAT_REL_UNIT_THURSDAY:
+            return kThursdays;
+        case UDAT_REL_UNIT_FRIDAY:
+            return kFridays;
+        case UDAT_REL_UNIT_SATURDAY:
+            return kSaturdays;
+        default:
+            return kUndefined;
+    }
+    return kUndefined;
+}
+
 static const char *AbsoluteUnitStr(
         UDateAbsoluteUnit unit) {
     switch (unit) {
@@ -1039,6 +1458,8 @@ static const char *AbsoluteUnitStr(
             return kWeek;
         case UDAT_ABSOLUTE_MONTH:
             return kMonth;
+        case UDAT_ABSOLUTE_QUARTER:
+            return kQuarter;
         case UDAT_ABSOLUTE_YEAR:
             return kYear;
         case UDAT_ABSOLUTE_NOW:
index fe983da..3fb0584 100644 (file)
@@ -68,6 +68,7 @@ public:
     void TestBug13127();
     void TestInPlaceTitle();
     void TestCaseMapEditsIteratorDocs();
+    void TestCaseMapGreekExtended();
 
 private:
     void assertGreekUpper(const char16_t *s, const char16_t *expected);
@@ -113,6 +114,7 @@ StringCaseTest::runIndexedTest(int32_t index, UBool exec, const char *&name, cha
     TESTCASE_AUTO(TestInPlaceTitle);
 #endif
     TESTCASE_AUTO(TestCaseMapEditsIteratorDocs);
+    TESTCASE_AUTO(TestCaseMapGreekExtended);
     TESTCASE_AUTO_END;
 }
 
@@ -1685,4 +1687,17 @@ void StringCaseTest::TestCaseMapEditsIteratorDocs() {
     }
 }
 
+void StringCaseTest::TestCaseMapGreekExtended() {
+    // Ticket 13851
+    UnicodeString s(u"\u1F80\u1F88\u1FFC");
+    UnicodeString result(s);
+    result.toLower(Locale::getRoot());
+    assertEquals(u"lower", u"\u1F80\u1F80\u1FF3", result);
+#if !UCONFIG_NO_BREAK_ITERATION
+    result = s;
+    result.toTitle(nullptr, Locale::getRoot());
+    assertEquals(u"title", u"\u1F88\u1F80\u1FF3", result);
+#endif
+}
+
 //#endif
index 3a16c28..7249001 100644 (file)
@@ -991,8 +991,8 @@ void TestMessageFormat::testSetLocale()
     // {sfb} to get $, would need Locale::US, not Locale::ENGLISH
     // Just use unlocalized currency symbol.
     //UnicodeString compareStrEng = "At <time> on Aug 8, 1997, you made a deposit of $456.83.";
-    UnicodeString compareStrEng = "At <time> on Aug 8, 1997, you made a deposit of XXX";
-    compareStrEng += (UChar) 0x00a0;
+    UnicodeString compareStrEng = "At <time> on Aug 8, 1997, you made a deposit of ";
+    compareStrEng += (UChar) 0x00a4;
     compareStrEng += "456.83.";
     // {sfb} to get DM, would need Locale::GERMANY, not Locale::GERMAN
     // Just use unlocalized currency symbol.
@@ -1014,13 +1014,15 @@ void TestMessageFormat::testSetLocale()
 
     logln(result);
     if (result != compareStrEng) {
-        dataerrln("***  MSG format err. - %s", u_errorName(err));
+        char bbuf[96];
+        result.extract(0, result.length(), bbuf, sizeof(bbuf));
+        dataerrln("***  MSG format err. - %s; result was %s", u_errorName(err), bbuf);
     }
 
     msg.setLocale(Locale::getEnglish());
     UBool getLocale_ok = TRUE;
     if (msg.getLocale() != Locale::getEnglish()) {
-        errln("*** MSG getLocal err.");
+        errln("*** MSG getLocale err.");
         getLocale_ok = FALSE;
     }
 
index eb7b882..0c8219a 100644 (file)
@@ -13,6 +13,7 @@
 #include "umutex.h"
 #include "cmemory.h"
 #include "cstring.h"
+#include "indiancal.h"
 #include "uparse.h"
 #include "unicode/localpointer.h"
 #include "unicode/resbund.h"
@@ -81,6 +82,9 @@ void MultithreadTest::runIndexedTest( int32_t index, UBool exec,
 #if !UCONFIG_NO_TRANSLITERATION
     TESTCASE_AUTO(TestBreakTranslit);
     TESTCASE_AUTO(TestIncDec);
+#if !UCONFIG_NO_FORMATTING
+    TESTCASE_AUTO(Test20104);
+#endif /* #if !UCONFIG_NO_FORMATTING */
 #endif /* #if !UCONFIG_NO_TRANSLITERATION */
     TESTCASE_AUTO_END
 }
@@ -629,9 +633,9 @@ public:
                 FormatThreadTestData( 1.0, CharsToUnicodeString("100\\u00a0%")),
                 FormatThreadTestData( 0.26, CharsToUnicodeString("26\\u00a0%")),
                 FormatThreadTestData(
-                   16384.99, CharsToUnicodeString("1\\u00a0638\\u00a0499\\u00a0%")), // U+00a0 = NBSP
+                   16384.99, CharsToUnicodeString("1\\u202F638\\u202F499\\u00a0%")), // U+202F = NNBSP
                 FormatThreadTestData(
-                    81890.23, CharsToUnicodeString("8\\u00a0189\\u00a0023\\u00a0%")),
+                    81890.23, CharsToUnicodeString("8\\u202F189\\u202F023\\u00a0%")),
         };
         int32_t kPercentFormatTestDataLength = UPRV_LENGTHOF(kPercentFormatTestData);
         int32_t iteration;
@@ -1548,5 +1552,36 @@ void MultithreadTest::TestIncDec()
     assertEquals("TestIncDec", NUM_THREADS, gIncDecCounter);
 }
 
+#if !UCONFIG_NO_FORMATTING
+static Calendar  *gSharedCalendar = {};
+
+class Test20104Thread : public SimpleThread {
+public:
+    Test20104Thread() { };
+    virtual void run();
+};
+
+void Test20104Thread::run() {
+    gSharedCalendar->defaultCenturyStartYear();
+}
+
+void MultithreadTest::Test20104() {
+    UErrorCode status = U_ZERO_ERROR;
+    Locale loc("hi_IN");
+    gSharedCalendar = new IndianCalendar(loc, status);
+    assertSuccess("Test20104", status);
+
+    static constexpr int NUM_THREADS = 4;
+    Test20104Thread threads[NUM_THREADS];
+    for (auto &thread:threads) {
+        thread.start();
+    }
+    for (auto &thread:threads) {
+        thread.join();
+    }
+    delete gSharedCalendar;
+    // Note: failure is reported by Thread Sanitizer. Test itself succeeds.
+}
+#endif /* !UCONFIG_NO_FORMATTING */
 
 #endif /* !UCONFIG_NO_TRANSLITERATION */
index b2517e2..565080a 100644 (file)
@@ -53,6 +53,7 @@ public:
     void TestUnifiedCache();
     void TestBreakTranslit();
     void TestIncDec();
+    void Test20104();
 };
 
 #endif
index 45e9db8..741211b 100644 (file)
@@ -633,6 +633,29 @@ BasicNormalizerTest::TestPreviousNext(const UChar *src, int32_t srcLength,
                                       const char *moves,
                                       UNormalizationMode mode,
                                       const char *name) {
+    // Sanity check non-iterative normalization.
+    {
+        IcuTestErrorCode errorCode(*this, "TestPreviousNext");
+        UnicodeString result;
+        Normalizer::normalize(UnicodeString(src, srcLength), mode, 0, result, errorCode);
+        if (errorCode.isFailure()) {
+            dataerrln("error: non-iterative normalization of %s failed: %s",
+                      name, errorCode.errorName());
+            errorCode.reset();
+            return;
+        }
+        // UnicodeString::fromUTF32(expect, expectLength)
+        // would turn unpaired surrogates into U+FFFD.
+        for (int32_t i = 0, j = 0; i < result.length(); ++j) {
+            UChar32 c = result.char32At(i);
+            if (c != expect[j]) {
+                errln("error: non-iterative normalization of %s did not yield the expected result",
+                      name);
+            }
+            i += U16_LENGTH(c);
+        }
+    }
+
     // iterators
     Normalizer iter(src, srcLength, mode);
 
@@ -1432,9 +1455,14 @@ struct StringPair { const char *input, *expected; };
 void
 BasicNormalizerTest::TestCustomComp() {
     static const StringPair pairs[]={
-        { "\\uD801\\uE000\\uDFFE", "" },
-        { "\\uD800\\uD801\\uE000\\uDFFE\\uDFFF", "\\uD7FF\\uFFFF" },
-        { "\\uD800\\uD801\\uDFFE\\uDFFF", "\\uD7FF\\U000107FE\\uFFFF" },
+        // ICU 63 normalization with UCPTrie requires inert surrogate code points.
+        // { "\\uD801\\uE000\\uDFFE", "" },
+        // { "\\uD800\\uD801\\uE000\\uDFFE\\uDFFF", "\\uD7FF\\uFFFF" },
+        // { "\\uD800\\uD801\\uDFFE\\uDFFF", "\\uD7FF\\U000107FE\\uFFFF" },
+        { "\\uD801\\uE000\\uDFFE", "\\uD801\\uDFFE" },
+        { "\\uD800\\uD801\\uE000\\uDFFE\\uDFFF", "\\uD800\\uD801\\uDFFE\\uDFFF" },
+        { "\\uD800\\uD801\\uDFFE\\uDFFF", "\\uD800\\U000107FE\\uDFFF" },
+
         { "\\uE001\\U000110B9\\u0345\\u0308\\u0327", "\\uE002\\U000110B9\\u0327\\u0345" },
         { "\\uE010\\U000F0011\\uE012", "\\uE011\\uE012" },
         { "\\uE010\\U000F0011\\U000F0011\\uE012", "\\uE011\\U000F0010" },
@@ -1462,9 +1490,14 @@ BasicNormalizerTest::TestCustomComp() {
 void
 BasicNormalizerTest::TestCustomFCC() {
     static const StringPair pairs[]={
-        { "\\uD801\\uE000\\uDFFE", "" },
-        { "\\uD800\\uD801\\uE000\\uDFFE\\uDFFF", "\\uD7FF\\uFFFF" },
-        { "\\uD800\\uD801\\uDFFE\\uDFFF", "\\uD7FF\\U000107FE\\uFFFF" },
+        // ICU 63 normalization with UCPTrie requires inert surrogate code points.
+        // { "\\uD801\\uE000\\uDFFE", "" },
+        // { "\\uD800\\uD801\\uE000\\uDFFE\\uDFFF", "\\uD7FF\\uFFFF" },
+        // { "\\uD800\\uD801\\uDFFE\\uDFFF", "\\uD7FF\\U000107FE\\uFFFF" },
+        { "\\uD801\\uE000\\uDFFE", "\\uD801\\uDFFE" },
+        { "\\uD800\\uD801\\uE000\\uDFFE\\uDFFF", "\\uD800\\uD801\\uDFFE\\uDFFF" },
+        { "\\uD800\\uD801\\uDFFE\\uDFFF", "\\uD800\\U000107FE\\uDFFF" },
+
         // The following expected result is different from CustomComp
         // because of only-contiguous composition.
         { "\\uE001\\U000110B9\\u0345\\u0308\\u0327", "\\uE001\\U000110B9\\u0327\\u0308\\u0345" },
index 43c7a27..6b784b7 100644 (file)
@@ -7,13 +7,16 @@
 
 #include "unicode/ustring.h"
 #include "unicode/uchar.h"
+#include "unicode/ucpmap.h"
 #include "unicode/uniset.h"
 #include "unicode/putil.h"
 #include "unicode/uscript.h"
+#include "unicode/uset.h"
 #include "cstring.h"
 #include "hash.h"
 #include "patternprops.h"
 #include "normalizer2impl.h"
+#include "testutil.h"
 #include "uparse.h"
 #include "ucdtest.h"
 
@@ -62,8 +65,15 @@ void UnicodeTest::runIndexedTest( int32_t index, UBool exec, const char* &name,
     TESTCASE_AUTO(TestScriptMetadata);
     TESTCASE_AUTO(TestBidiPairedBracketType);
     TESTCASE_AUTO(TestEmojiProperties);
+    TESTCASE_AUTO(TestIndicPositionalCategory);
+    TESTCASE_AUTO(TestIndicSyllabicCategory);
+    TESTCASE_AUTO(TestVerticalOrientation);
     TESTCASE_AUTO(TestDefaultScriptExtensions);
     TESTCASE_AUTO(TestInvalidCodePointFolding);
+#if !UCONFIG_NO_NORMALIZATION
+    TESTCASE_AUTO(TestBinaryCharacterProperties);
+    TESTCASE_AUTO(TestIntCharacterProperties);
+#endif
     TESTCASE_AUTO_END;
 }
 
@@ -535,6 +545,50 @@ void UnicodeTest::TestEmojiProperties() {
                u_hasBinaryProperty(0xA9, UCHAR_EXTENDED_PICTOGRAPHIC));
 }
 
+void UnicodeTest::TestIndicPositionalCategory() {
+    IcuTestErrorCode errorCode(*this, "TestIndicPositionalCategory()");
+    UnicodeSet na(u"[:InPC=NA:]", errorCode);
+    assertTrue("mostly NA", 1000000 <= na.size() && na.size() <= UCHAR_MAX_VALUE - 500);
+    UnicodeSet vol(u"[:InPC=Visual_Order_Left:]", errorCode);
+    assertTrue("some Visual_Order_Left", 19 <= vol.size() && vol.size() <= 100);
+    assertEquals("U+08FF: NA", U_INPC_NA,
+                 u_getIntPropertyValue(0x08FF, UCHAR_INDIC_POSITIONAL_CATEGORY));
+    assertEquals("U+0900: Top", U_INPC_TOP,
+                 u_getIntPropertyValue(0x0900, UCHAR_INDIC_POSITIONAL_CATEGORY));
+    assertEquals("U+10A06: Overstruck", U_INPC_OVERSTRUCK,
+                 u_getIntPropertyValue(0x10A06, UCHAR_INDIC_POSITIONAL_CATEGORY));
+}
+
+void UnicodeTest::TestIndicSyllabicCategory() {
+    IcuTestErrorCode errorCode(*this, "TestIndicSyllabicCategory()");
+    UnicodeSet other(u"[:InSC=Other:]", errorCode);
+    assertTrue("mostly Other", 1000000 <= other.size() && other.size() <= UCHAR_MAX_VALUE - 500);
+    UnicodeSet ava(u"[:InSC=Avagraha:]", errorCode);
+    assertTrue("some Avagraha", 16 <= ava.size() && ava.size() <= 100);
+    assertEquals("U+08FF: Other", U_INSC_OTHER,
+                 u_getIntPropertyValue(0x08FF, UCHAR_INDIC_SYLLABIC_CATEGORY));
+    assertEquals("U+0900: Bindu", U_INSC_BINDU,
+                 u_getIntPropertyValue(0x0900, UCHAR_INDIC_SYLLABIC_CATEGORY));
+    assertEquals("U+11065: Brahmi_Joining_Number", U_INSC_BRAHMI_JOINING_NUMBER,
+                 u_getIntPropertyValue(0x11065, UCHAR_INDIC_SYLLABIC_CATEGORY));
+}
+
+void UnicodeTest::TestVerticalOrientation() {
+    IcuTestErrorCode errorCode(*this, "TestVerticalOrientation()");
+    UnicodeSet r(u"[:vo=R:]", errorCode);
+    assertTrue("mostly R", 0xc0000 <= r.size() && r.size() <= 0xd0000);
+    UnicodeSet u(u"[:vo=U:]", errorCode);
+    assertTrue("much U", 0x40000 <= u.size() && u.size() <= 0x50000);
+    UnicodeSet tu(u"[:vo=Tu:]", errorCode);
+    assertTrue("some Tu", 147 <= tu.size() && tu.size() <= 300);
+    assertEquals("U+0E01: Rotated", U_VO_ROTATED,
+                 u_getIntPropertyValue(0x0E01, UCHAR_VERTICAL_ORIENTATION));
+    assertEquals("U+3008: Transformed_Rotated", U_VO_TRANSFORMED_ROTATED,
+                 u_getIntPropertyValue(0x3008, UCHAR_VERTICAL_ORIENTATION));
+    assertEquals("U+33333: Upright", U_VO_UPRIGHT,
+                 u_getIntPropertyValue(0x33333, UCHAR_VERTICAL_ORIENTATION));
+}
+
 void UnicodeTest::TestDefaultScriptExtensions() {
     // Block 3000..303F CJK Symbols and Punctuation defaults to scx=Bopo Hang Hani Hira Kana Yiii
     // but some of its characters revert to scx=<script> which is usually Common.
@@ -568,3 +622,77 @@ void UnicodeTest::TestInvalidCodePointFolding(void) {
                 cp, u_foldCase(cp, U_FOLD_CASE_EXCLUDE_SPECIAL_I));
     }
 }
+
+void UnicodeTest::TestBinaryCharacterProperties() {
+#if !UCONFIG_NO_NORMALIZATION
+    IcuTestErrorCode errorCode(*this, "TestBinaryCharacterProperties()");
+    // Spot-check getBinaryPropertySet() vs. hasBinaryProperty().
+    for (int32_t prop = 0; prop < UCHAR_BINARY_LIMIT; ++prop) {
+        const USet *uset = u_getBinaryPropertySet((UProperty)prop, errorCode);
+        if (errorCode.errIfFailureAndReset("u_getBinaryPropertySet(%d)", (int)prop)) {
+            continue;
+        }
+        const UnicodeSet &set = *UnicodeSet::fromUSet(uset);
+        int32_t size = set.size();
+        if (size == 0) {
+            assertFalse(UnicodeString("!hasBinaryProperty(U+0020, ") + prop + u")",
+                u_hasBinaryProperty(0x20, (UProperty)prop));
+            assertFalse(UnicodeString("!hasBinaryProperty(U+0061, ") + prop + u")",
+                u_hasBinaryProperty(0x61, (UProperty)prop));
+            assertFalse(UnicodeString("!hasBinaryProperty(U+4E00, ") + prop + u")",
+                u_hasBinaryProperty(0x4e00, (UProperty)prop));
+        } else {
+            UChar32 c = set.charAt(0);
+            if (c > 0) {
+                assertFalse(
+                    UnicodeString("!hasBinaryProperty(") + TestUtility::hex(c - 1) +
+                        u", " + prop + u")",
+                    u_hasBinaryProperty(c - 1, (UProperty)prop));
+            }
+            assertTrue(
+                UnicodeString("hasBinaryProperty(") + TestUtility::hex(c) +
+                    u", " + prop + u")",
+                u_hasBinaryProperty(c, (UProperty)prop));
+            c = set.charAt(size - 1);
+            assertTrue(
+                UnicodeString("hasBinaryProperty(") + TestUtility::hex(c) +
+                    u", " + prop + u")",
+                u_hasBinaryProperty(c, (UProperty)prop));
+            if (c < 0x10ffff) {
+                assertFalse(
+                    UnicodeString("!hasBinaryProperty(") + TestUtility::hex(c + 1) +
+                        u", " + prop + u")",
+                    u_hasBinaryProperty(c + 1, (UProperty)prop));
+            }
+        }
+    }
+#endif
+}
+
+void UnicodeTest::TestIntCharacterProperties() {
+#if !UCONFIG_NO_NORMALIZATION
+    IcuTestErrorCode errorCode(*this, "TestIntCharacterProperties()");
+    // Spot-check getIntPropertyMap() vs. getIntPropertyValue().
+    for (int32_t prop = UCHAR_INT_START; prop < UCHAR_INT_LIMIT; ++prop) {
+        const UCPMap *map = u_getIntPropertyMap((UProperty)prop, errorCode);
+        if (errorCode.errIfFailureAndReset("u_getIntPropertyMap(%d)", (int)prop)) {
+            continue;
+        }
+        uint32_t value;
+        UChar32 end = ucpmap_getRange(map, 0, UCPMAP_RANGE_NORMAL, 0, nullptr, nullptr, &value);
+        assertTrue("int property first range", end >= 0);
+        UChar32 c = end / 2;
+        assertEquals(UnicodeString("int property first range value at ") + TestUtility::hex(c),
+            u_getIntPropertyValue(c, (UProperty)prop), value);
+        end = ucpmap_getRange(map, 0x5000, UCPMAP_RANGE_NORMAL, 0, nullptr, nullptr, &value);
+        assertTrue("int property later range", end >= 0);
+        assertEquals(UnicodeString("int property later range value at ") + TestUtility::hex(end),
+            u_getIntPropertyValue(end, (UProperty)prop), value);
+        // ucpmap_get() API coverage
+        // TODO: move to cucdtst.c
+        assertEquals(
+            "int property upcmap_get(U+0061)",
+            u_getIntPropertyValue(0x61, (UProperty)prop), ucpmap_get(map, 0x61));
+    }
+#endif
+}
index 8a7ae3f..2ed1395 100644 (file)
@@ -41,8 +41,13 @@ public:
     void TestScriptMetadata();
     void TestBidiPairedBracketType();
     void TestEmojiProperties();
+    void TestIndicPositionalCategory();
+    void TestIndicSyllabicCategory();
+    void TestVerticalOrientation();
     void TestDefaultScriptExtensions();
     void TestInvalidCodePointFolding();
+    void TestBinaryCharacterProperties();
+    void TestIntCharacterProperties();
 
 private:
 
index 4b7cb7a..57d72fb 100644 (file)
@@ -64,6 +64,7 @@ void UnicodeStringTest::runIndexedTest( int32_t index, UBool exec, const char* &
     TESTCASE_AUTO(TestUInt16Pointers);
     TESTCASE_AUTO(TestWCharPointers);
     TESTCASE_AUTO(TestNullPointers);
+    TESTCASE_AUTO(TestUnicodeStringInsertAppendToSelf);
     TESTCASE_AUTO_END;
 }
 
@@ -1123,27 +1124,25 @@ UnicodeStringTest::TestMiscellaneous()
         errln("UnicodeString(u[-1]).getTerminatedBuffer() returns a bad buffer");
     }
 
-    test1=UNICODE_STRING("la", 2);
-    test1.append(UNICODE_STRING(" lila", 5).getTerminatedBuffer(), 0, -1);
-    if(test1!=UNICODE_STRING("la lila", 7)) {
-        errln("UnicodeString::append(const UChar *, start, length) failed");
-    }
+    // NOTE: Some compilers will optimize u"la" to point to the same static memory
+    // as u" lila", offset by 3 code units
+    test1=UnicodeString(TRUE, u"la", 2);
+    test1.append(UnicodeString(TRUE, u" lila", 5).getTerminatedBuffer(), 0, -1);
+    assertEquals("UnicodeString::append(const UChar *, start, length) failed",
+        u"la lila", test1);
 
-    test1.insert(3, UNICODE_STRING("dudum ", 6), 0, INT32_MAX);
-    if(test1!=UNICODE_STRING("la dudum lila", 13)) {
-        errln("UnicodeString::insert(start, const UniStr &, start, length) failed");
-    }
+    test1.insert(3, UnicodeString(TRUE, u"dudum ", 6), 0, INT32_MAX);
+    assertEquals("UnicodeString::insert(start, const UniStr &, start, length) failed",
+        u"la dudum lila", test1);
 
     static const UChar ucs[]={ 0x68, 0x6d, 0x20, 0 };
     test1.insert(9, ucs, -1);
-    if(test1!=UNICODE_STRING("la dudum hm lila", 16)) {
-        errln("UnicodeString::insert(start, const UChar *, length) failed");
-    }
+    assertEquals("UnicodeString::insert(start, const UChar *, length) failed",
+        u"la dudum hm lila", test1);
 
     test1.replace(9, 2, (UChar)0x2b);
-    if(test1!=UNICODE_STRING("la dudum + lila", 15)) {
-        errln("UnicodeString::replace(start, length, UChar) failed");
-    }
+    assertEquals("UnicodeString::replace(start, length, UChar) failed",
+        u"la dudum + lila", test1);
 
     if(test1.hasMetaData() || UnicodeString().hasMetaData()) {
         errln("UnicodeString::hasMetaData() returns TRUE");
@@ -2248,3 +2247,59 @@ UnicodeStringTest::TestNullPointers() {
     UnicodeString(u"def").extract(nullptr, 0, errorCode);
     assertEquals("buffer overflow extracting to nullptr", U_BUFFER_OVERFLOW_ERROR, errorCode);
 }
+
+void UnicodeStringTest::TestUnicodeStringInsertAppendToSelf() {
+    IcuTestErrorCode status(*this, "TestUnicodeStringAppendToSelf");
+
+    // Test append operation
+    UnicodeString str(u"foo ");
+    str.append(str);
+    str.append(str);
+    str.append(str);
+    assertEquals("", u"foo foo foo foo foo foo foo foo ", str);
+
+    // Test append operation with readonly alias to start
+    str = UnicodeString(TRUE, u"foo ", 4);
+    str.append(str);
+    str.append(str);
+    str.append(str);
+    assertEquals("", u"foo foo foo foo foo foo foo foo ", str);
+
+    // Test append operation with aliased substring
+    str = u"abcde";
+    UnicodeString sub = str.tempSubString(1, 2);
+    str.append(sub);
+    assertEquals("", u"abcdebc", str);
+
+    // Test append operation with double-aliased substring
+    str = UnicodeString(TRUE, u"abcde", 5);
+    sub = str.tempSubString(1, 2);
+    str.append(sub);
+    assertEquals("", u"abcdebc", str);
+
+    // Test insert operation
+    str = u"a-*b";
+    str.insert(2, str);
+    str.insert(4, str);
+    str.insert(8, str);
+    assertEquals("", u"a-a-a-a-a-a-a-a-*b*b*b*b*b*b*b*b", str);
+
+    // Test insert operation with readonly alias to start
+    str = UnicodeString(TRUE, u"a-*b", 4);
+    str.insert(2, str);
+    str.insert(4, str);
+    str.insert(8, str);
+    assertEquals("", u"a-a-a-a-a-a-a-a-*b*b*b*b*b*b*b*b", str);
+
+    // Test insert operation with aliased substring
+    str = u"abcde";
+    sub = str.tempSubString(1, 3);
+    str.insert(2, sub);
+    assertEquals("", u"abbcdcde", str);
+
+    // Test insert operation with double-aliased substring
+    str = UnicodeString(TRUE, u"abcde", 5);
+    sub = str.tempSubString(1, 3);
+    str.insert(2, sub);
+    assertEquals("", u"abbcdcde", str);
+}
index 4ba348c..218befd 100644 (file)
@@ -96,6 +96,7 @@ public:
     void TestUInt16Pointers();
     void TestWCharPointers();
     void TestNullPointers();
+    void TestUnicodeStringInsertAppendToSelf();
 };
 
 #endif
index 12646e6..1c667e1 100644 (file)
@@ -731,7 +731,7 @@ static void TestfgetsNewLineHandling(void) {
 static void TestLineCount(const char *prefixLine, const char *line, int32_t numRepititions) {
     UChar buffer[64];
     UChar expectedBuffer[64];
-    int32_t lineLen = strlen(line);
+    int32_t lineLen = (int32_t)strlen(line);
     UChar *returnedUCharBuffer;
     int32_t repetitions;
     UFILE *myFile = NULL;
index 6bc549a..186d10e 100644 (file)
@@ -178,18 +178,18 @@ char* DataDrivenLogger::fgTestDataPath = NULL;
 static int64_t
 uto64(const UChar     *buffer)
 {
-    int64_t result = 0;
+    uint64_t result = 0;
     /* iterate through buffer */
     while(*buffer) {
         /* read the next digit */
-        result *= 16;
+        result *= 16u;
         if (!u_isxdigit(*buffer)) {
             log_err("\\u%04X is not a valid hex digit for this test\n", (UChar)*buffer);
         }
         result += *buffer - 0x0030 - (*buffer >= 0x0041 ? (*buffer >= 0x0061 ? 39 : 7) : 0);
         buffer++;
     }
-    return result;
+    return (int64_t)result;
 }
 #endif
 
index be32143..b82e79d 100644 (file)
@@ -193,7 +193,7 @@ static void TestTranslitFileOut(void)
         return;
     }
 
-    len=fread(ubuf, sizeof(UChar), u_strlen(compare), infile);
+    len= (int)fread(ubuf, sizeof(UChar), u_strlen(compare), infile);
     log_verbose("Read %d UChars\n", len);
     if(len != u_strlen(compare))
     {
index 1655c78..bc63e82 100644 (file)
@@ -17,17 +17,20 @@ include $(top_builddir)/icudefs.mk
 subdir = test/perf/normperf
 
 ## Extra files to remove for 'make clean'
-CLEANFILES = *~ $(DEPS)
+CLEANFILES = *~ $(DEPS) $(SIMPLE_DEPS)
 
 ## Target information
 TARGET = normperf
+SIMPLE = simplenormperf
 
 CPPFLAGS += -I$(top_srcdir)/common -I$(top_srcdir)/tools/toolutil -I$(top_srcdir)/tools/ctestfw
 LIBS = $(LIBCTESTFW) $(LIBICUI18N) $(LIBICUUC) $(LIBICUTOOLUTIL) $(DEFAULT_LIBS) $(LIB_M)
 
 OBJECTS = normperf.o
+SIMPLE_OBJ = simplenormperf.o
 
 DEPS = $(OBJECTS:.o=.d)
+SIMPLE_DEPS = $(SIMPLE_OBJ:.o=.d)
 
 ## List of phony targets
 .PHONY : all all-local install install-local clean clean-local \
@@ -44,7 +47,7 @@ distclean : distclean-local
 dist: dist-local
 check: all check-local
 
-all-local: $(TARGET)
+all-local: $(TARGET) $(SIMPLE)
 
 install-local:
 
@@ -52,7 +55,7 @@ dist-local:
 
 clean-local:
        test -z "$(CLEANFILES)" || $(RMV) $(CLEANFILES)
-       $(RMV) $(OBJECTS) $(TARGET)
+       $(RMV) $(OBJECTS) $(SIMPLE_OBJ) $(TARGET) $(SIMPLE)
 
 distclean-local: clean-local
        $(RMV) Makefile
@@ -67,16 +70,21 @@ $(TARGET) : $(OBJECTS)
        $(LINK.cc) -o $@ $^ $(LIBS)
        $(POST_BUILD_STEP)
 
+$(SIMPLE) : $(SIMPLE_OBJ)
+       $(LINK.cc) -o $@ $^ $(LIBS)
+       $(POST_BUILD_STEP)
+
 invoke:
        ICU_DATA=$${ICU_DATA:-$(top_builddir)/data/} TZ=PST8PDT $(INVOKE) $(INVOCATION)
 
 ifeq (,$(MAKECMDGOALS))
 -include $(DEPS)
+-include $(SIMPLE_DEPS)
 else
 ifneq ($(patsubst %clean,,$(MAKECMDGOALS)),)
 ifneq ($(patsubst %install,,$(MAKECMDGOALS)),)
 -include $(DEPS)
+-include $(SIMPLE_DEPS)
 endif
 endif
 endif
-
diff --git a/source/test/perf/normperf/simplenormperf.cpp b/source/test/perf/normperf/simplenormperf.cpp
new file mode 100644 (file)
index 0000000..b6865ba
--- /dev/null
@@ -0,0 +1,352 @@
+// © 2018 and later: Unicode, Inc. and others.
+// License & terms of use: http://www.unicode.org/copyright.html
+
+// simplenormperf.cpp
+// created: 2018mar15 Markus W. Scherer
+
+#include <stdio.h>
+#include <string>
+
+#include "unicode/utypes.h"
+#include "unicode/bytestream.h"
+#include "unicode/normalizer2.h"
+#include "unicode/stringpiece.h"
+#include "unicode/unistr.h"
+#include "unicode/utf8.h"
+#include "unicode/utimer.h"
+#include "cmemory.h"
+
+using icu::Normalizer2;
+using icu::UnicodeString;
+
+namespace {
+
+// Strings with commonly occurring BMP characters.
+class CommonChars {
+public:
+    static UnicodeString getMixed(int32_t minLength) {
+        return extend(UnicodeString(latin1).append(japanese).append(arabic), minLength);
+    }
+    static UnicodeString getLatin1(int32_t minLength) { return extend(latin1, minLength); }
+    static UnicodeString getLowercaseLatin1(int32_t minLength) { return extend(lowercaseLatin1, minLength); }
+    static UnicodeString getASCII(int32_t minLength) { return extend(ascii, minLength); }
+    static UnicodeString getJapanese(int32_t minLength) { return extend(japanese, minLength); }
+
+    // Returns an array of UTF-8 offsets, one per code point.
+    // Assumes all BMP characters.
+    static int32_t *toUTF8WithOffsets(const UnicodeString &s16, std::string &s8, int32_t &numCodePoints) {
+        s8.clear();
+        s8.reserve(s16.length());
+        s16.toUTF8String(s8);
+        const char *s = s8.data();
+        int32_t length = s8.length();
+        int32_t *offsets = new int32_t[length + 1];
+        int32_t numCP = 0;
+        for (int32_t i = 0; i < length;) {
+            offsets[numCP++] = i;
+            U8_FWD_1(s, i, length);
+        }
+        offsets[numCP] = length;
+        numCodePoints = numCP;
+        return offsets;
+    }
+
+private:
+    static UnicodeString extend(const UnicodeString &s, int32_t minLength) {
+        UnicodeString result(s);
+        while (result.length() < minLength) {
+            UnicodeString twice = result + result;
+            result = std::move(twice);
+        }
+        return result;
+    }
+
+    static const UChar *const latin1;
+    static const UChar *const lowercaseLatin1;
+    static const UChar *const ascii;
+    static const UChar *const japanese;
+    static const UChar *const arabic;
+};
+
+const UChar *const CommonChars::latin1 =
+      // Goethe’s Bergschloß in normal sentence case.
+      u"Da droben auf jenem Berge, da steht ein altes Schloß, "
+      u"wo hinter Toren und Türen sonst lauerten Ritter und Roß.\n"
+      u"Verbrannt sind Türen und Tore, und überall ist es so still; "
+      u"das alte verfallne Gemäuer durchklettr ich, wie ich nur will.\n"
+      u"Hierneben lag ein Keller, so voll von köstlichem Wein; "
+      u"nun steiget nicht mehr mit Krügen die Kellnerin heiter hinein.\n"
+      u"Sie setzt den Gästen im Saale nicht mehr die Becher umher, "
+      u"sie füllt zum Heiligen Mahle dem Pfaffen das Fläschchen nicht mehr.\n"
+      u"Sie reicht dem lüsternen Knappen nicht mehr auf dem Gange den Trank, "
+      u"und nimmt für flüchtige Gabe nicht mehr den flüchtigen Dank.\n"
+      u"Denn alle Balken und Decken, sie sind schon lange verbrannt, "
+      u"und Trepp und Gang und Kapelle in Schutt und Trümmer verwandt.\n"
+      u"Doch als mit Zither und Flasche nach diesen felsigen Höhn "
+      u"ich an dem heitersten Tage mein Liebchen steigen gesehn,\n"
+      u"da drängte sich frohes Behagen hervor aus verödeter Ruh, "
+      u"da gings wie in alten Tagen recht feierlich wieder zu.\n"
+      u"Als wären für stattliche Gäste die weitesten Räume bereit, "
+      u"als käm ein Pärchen gegangen aus jener tüchtigen Zeit.\n"
+      u"Als stünd in seiner Kapelle der würdige Pfaffe schon da "
+      u"und fragte: Wollt ihr einander? Wir aber lächelten: Ja!\n"
+      u"Und tief bewegten Gesänge des Herzens innigsten Grund, "
+      u"Es zeugte, statt der Menge, der Echo schallender Mund.\n"
+      u"Und als sich gegen Abend im stillen alles verlor,"
+      u"da blickte die glühende Sonne zum schroffen Gipfel empor.\n"
+      u"Und Knapp und Kellnerin glänzen als Herren weit und breit; "
+      u"sie nimmt sich zum Kredenzen und er zum Danke sich Zeit.\n";
+
+const UChar *const CommonChars::lowercaseLatin1 =
+      // Goethe’s Bergschloß in all lowercase
+      u"da droben auf jenem berge, da steht ein altes schloß, "
+      u"wo hinter toren und türen sonst lauerten ritter und roß.\n"
+      u"verbrannt sind türen und tore, und überall ist es so still; "
+      u"das alte verfallne gemäuer durchklettr ich, wie ich nur will.\n"
+      u"hierneben lag ein keller, so voll von köstlichem wein; "
+      u"nun steiget nicht mehr mit krügen die kellnerin heiter hinein.\n"
+      u"sie setzt den gästen im saale nicht mehr die becher umher, "
+      u"sie füllt zum heiligen mahle dem pfaffen das fläschchen nicht mehr.\n"
+      u"sie reicht dem lüsternen knappen nicht mehr auf dem gange den trank, "
+      u"und nimmt für flüchtige gabe nicht mehr den flüchtigen dank.\n"
+      u"denn alle balken und decken, sie sind schon lange verbrannt, "
+      u"und trepp und gang und kapelle in schutt und trümmer verwandt.\n"
+      u"doch als mit zither und flasche nach diesen felsigen höhn "
+      u"ich an dem heitersten tage mein liebchen steigen gesehn,\n"
+      u"da drängte sich frohes behagen hervor aus verödeter ruh, "
+      u"da gings wie in alten tagen recht feierlich wieder zu.\n"
+      u"als wären für stattliche gäste die weitesten räume bereit, "
+      u"als käm ein pärchen gegangen aus jener tüchtigen zeit.\n"
+      u"als stünd in seiner kapelle der würdige pfaffe schon da "
+      u"und fragte: wollt ihr einander? wir aber lächelten: ja!\n"
+      u"und tief bewegten gesänge des herzens innigsten grund, "
+      u"es zeugte, statt der menge, der echo schallender mund.\n"
+      u"und als sich gegen abend im stillen alles verlor,"
+      u"da blickte die glühende sonne zum schroffen gipfel empor.\n"
+      u"und knapp und kellnerin glänzen als herren weit und breit; "
+      u"sie nimmt sich zum kredenzen und er zum danke sich zeit.\n";
+
+const UChar *const CommonChars::ascii =
+      // Goethe’s Bergschloß in normal sentence case but ASCII-fied
+      u"Da droben auf jenem Berge, da steht ein altes Schloss, "
+      u"wo hinter Toren und Tueren sonst lauerten Ritter und Ross.\n"
+      u"Verbrannt sind Tueren und Tore, und ueberall ist es so still; "
+      u"das alte verfallne Gemaeuer durchklettr ich, wie ich nur will.\n"
+      u"Hierneben lag ein Keller, so voll von koestlichem Wein; "
+      u"nun steiget nicht mehr mit Kruegen die Kellnerin heiter hinein.\n"
+      u"Sie setzt den Gaesten im Saale nicht mehr die Becher umher, "
+      u"sie fuellt zum Heiligen Mahle dem Pfaffen das Flaeschchen nicht mehr.\n"
+      u"Sie reicht dem luesternen Knappen nicht mehr auf dem Gange den Trank, "
+      u"und nimmt fuer fluechtige Gabe nicht mehr den fluechtigen Dank.\n"
+      u"Denn alle Balken und Decken, sie sind schon lange verbrannt, "
+      u"und Trepp und Gang und Kapelle in Schutt und Truemmer verwandt.\n"
+      u"Doch als mit Zither und Flasche nach diesen felsigen Hoehn "
+      u"ich an dem heitersten Tage mein Liebchen steigen gesehn,\n"
+      u"da draengte sich frohes Behagen hervor aus veroedeter Ruh, "
+      u"da gings wie in alten Tagen recht feierlich wieder zu.\n"
+      u"Als waeren fuer stattliche Gaeste die weitesten Raeume bereit, "
+      u"als kaem ein Paerchen gegangen aus jener tuechtigen Zeit.\n"
+      u"Als stuend in seiner Kapelle der wuerdige Pfaffe schon da "
+      u"und fragte: Wollt ihr einander? Wir aber laechelten: Ja!\n"
+      u"Und tief bewegten Gesaenge des Herzens innigsten Grund, "
+      u"Es zeugte, statt der Menge, der Echo schallender Mund.\n"
+      u"Und als sich gegen Abend im stillen alles verlor,"
+      u"da blickte die gluehende Sonne zum schroffen Gipfel empor.\n"
+      u"Und Knapp und Kellnerin glaenzen als Herren weit und breit; "
+      u"sie nimmt sich zum Kredenzen und er zum Danke sich Zeit.\n";
+
+const UChar *const CommonChars::japanese =
+      // Ame ni mo makezu = Be not Defeated by the Rain, by Kenji Miyazawa.
+      u"雨にもまけず風にもまけず雪にも夏の暑さにもまけぬ"
+      u"丈夫なからだをもち慾はなく決して瞋らず"
+      u"いつもしずかにわらっている一日に玄米四合と"
+      u"味噌と少しの野菜をたべあらゆることを"
+      u"じぶんをかんじょうにいれずによくみききしわかり"
+      u"そしてわすれず野原の松の林の蔭の"
+      u"小さな萱ぶきの小屋にいて東に病気のこどもあれば"
+      u"行って看病してやり西につかれた母あれば"
+      u"行ってその稲の束を負い南に死にそうな人あれば"
+      u"行ってこわがらなくてもいいといい"
+      u"北にけんかやそしょうがあれば"
+      u"つまらないからやめろといいひでりのときはなみだをながし"
+      u"さむさのなつはおろおろあるきみんなにでくのぼうとよばれ"
+      u"ほめられもせずくにもされずそういうものにわたしはなりたい";
+
+const UChar *const CommonChars::arabic =
+      // Some Arabic for variety. "What is Unicode?"
+      // http://www.unicode.org/standard/translations/arabic.html
+      u"تتعامل الحواسيب بالأسام مع الأرقام فقط، "
+      u"و تخزن الحروف و المحارف "
+      u"الأخرى بتخصيص رقم لكل واحد "
+      u"منها. قبل اختراع يونيكود كان هناك ";
+
+// TODO: class BenchmarkPerCodePoint?
+
+class Operation {
+public:
+    Operation() {}
+    virtual ~Operation();
+    virtual double call(int32_t iterations, int32_t pieceLength) = 0;
+
+protected:
+    UTimer startTime;
+};
+
+Operation::~Operation() {}
+
+const int32_t kLengths[] = { 5, 12, 30, 100, 1000, 10000 };
+
+int32_t getMaxLength() { return kLengths[UPRV_LENGTHOF(kLengths) - 1]; }
+
+// Returns seconds per code point.
+double measure(Operation &op, int32_t pieceLength) {
+    // Increase the number of iterations until we use at least one second.
+    int32_t iterations = 1;
+    for (;;) {
+        double seconds = op.call(iterations, pieceLength);
+        if (seconds >= 1) {
+            if (iterations > 1) {
+                return seconds / (iterations * pieceLength);
+            } else {
+                // Run it once more, to avoid measuring only the warm-up.
+                return op.call(1, pieceLength) / (iterations * pieceLength);
+            }
+        }
+        if (seconds < 0.01) {
+            iterations *= 10;
+        } else if (seconds < 0.55) {
+            iterations *= 1.1 / seconds;
+        } else {
+            iterations *= 2;
+        }
+    }
+}
+
+void benchmark(const char *name, Operation &op) {
+    for (int32_t i = 0; i < UPRV_LENGTHOF(kLengths); ++i) {
+        int32_t pieceLength = kLengths[i];
+        double secPerCp = measure(op, pieceLength);
+        printf("%s  %6d  %12f ns/cp\n", name, (int)pieceLength, secPerCp * 1000000000);
+    }
+    puts("");
+}
+
+class NormalizeUTF16 : public Operation {
+public:
+    NormalizeUTF16(const Normalizer2 &n2, const UnicodeString &text) :
+            norm2(n2), src(text), s(src.getBuffer()) {}
+    virtual ~NormalizeUTF16();
+    virtual double call(int32_t iterations, int32_t pieceLength);
+
+private:
+    const Normalizer2 &norm2;
+    UnicodeString src;
+    const UChar *s;
+    UnicodeString dest;
+};
+
+NormalizeUTF16::~NormalizeUTF16() {}
+
+// Assumes all BMP characters.
+double NormalizeUTF16::call(int32_t iterations, int32_t pieceLength) {
+    int32_t start = 0;
+    int32_t limit = src.length() - pieceLength;
+    UnicodeString piece;
+    UErrorCode errorCode = U_ZERO_ERROR;
+    utimer_getTime(&startTime);
+    for (int32_t i = 0; i < iterations; ++i) {
+        piece.setTo(FALSE, s + start, pieceLength);
+        norm2.normalize(piece, dest, errorCode);
+        start = (start + pieceLength) % limit;
+    }
+    return utimer_getElapsedSeconds(&startTime);
+}
+
+class NormalizeUTF8 : public Operation {
+public:
+    NormalizeUTF8(const Normalizer2 &n2, const UnicodeString &text) : norm2(n2), sink(&dest) {
+        offsets = CommonChars::toUTF8WithOffsets(text, src, numCodePoints);
+        s = src.data();
+    }
+    virtual ~NormalizeUTF8();
+    virtual double call(int32_t iterations, int32_t pieceLength);
+
+private:
+    const Normalizer2 &norm2;
+    std::string src;
+    const char *s;
+    int32_t *offsets;
+    int32_t numCodePoints;
+    std::string dest;
+    icu::StringByteSink<std::string> sink;
+};
+
+NormalizeUTF8::~NormalizeUTF8() {
+    delete[] offsets;
+}
+
+double NormalizeUTF8::call(int32_t iterations, int32_t pieceLength) {
+    int32_t start = 0;
+    int32_t limit = numCodePoints - pieceLength;
+    UErrorCode errorCode = U_ZERO_ERROR;
+    utimer_getTime(&startTime);
+    for (int32_t i = 0; i < iterations; ++i) {
+        int32_t start8 = offsets[start];
+        int32_t limit8 = offsets[start + pieceLength];
+        icu::StringPiece piece(s + start8, limit8 - start8);
+        norm2.normalizeUTF8(0, piece, sink, nullptr, errorCode);
+        start = (start + pieceLength) % limit;
+    }
+    return utimer_getElapsedSeconds(&startTime);
+}
+
+}  // namespace
+
+extern int main(int /*argc*/, const char * /*argv*/[]) {
+    // More than the longest piece length so that we read from different parts of the string
+    // for that piece length.
+    int32_t maxLength = getMaxLength() * 10;
+    UErrorCode errorCode = U_ZERO_ERROR;
+    const Normalizer2 *nfc = Normalizer2::getNFCInstance(errorCode);
+    const Normalizer2 *nfkc_cf = Normalizer2::getNFKCCasefoldInstance(errorCode);
+    if (U_FAILURE(errorCode)) {
+        fprintf(stderr,
+                "simplenormperf: failed to get Normalizer2 instances - %s\n",
+                u_errorName(errorCode));
+    }
+    {
+        // Base line: Should remain in the fast loop without trie lookups.
+        NormalizeUTF16 op(*nfc, CommonChars::getLatin1(maxLength));
+        benchmark("NFC/UTF-16/latin1", op);
+    }
+    {
+        // Base line 2: Read UTF-8, trie lookups, but should have nothing to do.
+        NormalizeUTF8 op(*nfc, CommonChars::getJapanese(maxLength));
+        benchmark("NFC/UTF-8/japanese", op);
+    }
+    {
+        NormalizeUTF16 op(*nfkc_cf, CommonChars::getMixed(maxLength));
+        benchmark("NFKC_CF/UTF-16/mixed", op);
+    }
+    {
+        NormalizeUTF16 op(*nfkc_cf, CommonChars::getLowercaseLatin1(maxLength));
+        benchmark("NFKC_CF/UTF-16/lowercaseLatin1", op);
+    }
+    {
+        NormalizeUTF16 op(*nfkc_cf, CommonChars::getJapanese(maxLength));
+        benchmark("NFKC_CF/UTF-16/japanese", op);
+    }
+    {
+        NormalizeUTF8 op(*nfkc_cf, CommonChars::getMixed(maxLength));
+        benchmark("NFKC_CF/UTF-8/mixed", op);
+    }
+    {
+        NormalizeUTF8 op(*nfkc_cf, CommonChars::getLowercaseLatin1(maxLength));
+        benchmark("NFKC_CF/UTF-8/lowercaseLatin1", op);
+    }
+    {
+        NormalizeUTF8 op(*nfkc_cf, CommonChars::getJapanese(maxLength));
+        benchmark("NFKC_CF/UTF-8/japanese", op);
+    }
+    return 0;
+}
index 31d27b9..3e0324b 100644 (file)
@@ -19,13 +19,14 @@ locale = en;
 AI = [:LineBreak =  Ambiguous:];
 AL = [:LineBreak =  Alphabetic:];
 BA = [:LineBreak =  Break_After:];
+HH = [\u2010];      # \u2010 is HYPHEN, default line break is BA.
 BB = [:LineBreak =  Break_Before:];
 BK = [:LineBreak =  Mandatory_Break:];
 B2 = [:LineBreak =  Break_Both:];
 CB = [:LineBreak =  Contingent_Break:];
 CJ = [:LineBreak =  Conditional_Japanese_Starter:];
 CL = [:LineBreak =  Close_Punctuation:];
-CM = [:LineBreak =  Combining_Mark:];
+CMS = [:LineBreak =  Combining_Mark:];
 CP = [:LineBreak =  Close_Parenthesis:];
 CR = [:LineBreak =  Carriage_Return:];
 EB = [:LineBreak =  EB:];
@@ -66,7 +67,7 @@ dictionary = SA;
 
 # By LB9, a ZWJ also behaves as a CM. Including it in the definition of CM avoids having to explicitly
 #         list it in the numerous rules that use CM.
-CM = [CM ZWJ];
+CM = [CMS ZWJ];
 
 LB4:        BK ÷;
 LB5:        CR LF;
@@ -86,14 +87,16 @@ LB15:        QU CM* SP* OP;
 LB16:        (CL | CP)CM* SP* NS;
 LB17:        B2 CM* SP* B2;
 
+# LB8, break after ZW SP*, precedes LB7 because they will both match the sequences like ZW SP,
+# and LB8 should take precedence.
+
+LB8:        ZW SP* ÷ [^ZW SP BK CR LF NL];
+
+# LB7 Do not break before spaces or zero width space.
+
 LB7.1:      [^ZW SP] CM* [SP ZW];
 LB7.2:      [ZW SP] [SP ZW];
 
-# LB8, ICU differs from UAX-14,
-#    ICU:    ZW ÷;
-#    UAX 14: ZW SP* ÷;
-LB8:        ZW ÷;
-
 # LB8a
 #      ZWJ x
 #      Don't match a CM on the right - let other rules pick up CM sequences, where
@@ -142,6 +145,9 @@ LB20.2:      . CM* ÷ CB;
 LB20.3:      CB CM* ZWJ [^CM];
 LB20.4:      CB CM* ÷;
 
+# LB 20.09    Don't break between Hyphens and Letters when there is a break preceding the hyphen.
+LB20.09:     ^(HY | HH) CM* AL;
+
 # Note: Rule 21a must come before 21 to prevent 21.1 from matching HL BA, then
 #       not picking up the continuing match after the BA from 21a.
 LB21a:       HL CM* (HY | BA) CM* [^CM CB];
@@ -188,8 +194,8 @@ LB30.1:      (AL | CM | HL | NU) CM* OP;
 LB30.2:      CP CM* (AL | HL | NU);
 
 # LB30a  keep pairs of RI together.
-LB30a.1:     RI CM* RI              ÷ [^BK CR LF NL SP ZW WJ CL CP EX IS SY GL QU BA HY NS CM];
-LB30a.2:     RI CM* RI CM* [CM-ZWJ] ÷ [^BK CR LF NL SP ZW WJ CL CP EX IS SY GL QU BA HY NS CM];
+LB30a.1:     RI CM* RI         ÷ [^BK CR LF NL SP ZW WJ CL CP EX IS SY GL QU BA HY NS CM];
+LB30a.2:     RI CM* RI CM* CMS ÷ [^BK CR LF NL SP ZW WJ CL CP EX IS SY GL QU BA HY NS CM];
 LB30a.3:     RI CM* RI CM* [BK CR LF NL SP ZW WJ GL CL CP EX IS SY QU BA HY NS ZWJ]?;
 
 # LB30b Do not break between Emoji Base and Emoji Modifier
index 00552fe..8395192 100644 (file)
@@ -26,13 +26,14 @@ locale = en@lb=loose;
 AI = [:LineBreak =  Ambiguous:];
 AL = [:LineBreak =  Alphabetic:];
 BA = [:LineBreak =  Break_After:];
+HH = [\u2010];      # \u2010 is HYPHEN, default line break is BA.
 BB = [:LineBreak =  Break_Before:];
 BK = [:LineBreak =  Mandatory_Break:];
 B2 = [:LineBreak =  Break_Both:];
 CB = [:LineBreak =  Contingent_Break:];
 CJ = [:LineBreak =  Conditional_Japanese_Starter:];
 CL = [:LineBreak =  Close_Punctuation:];
-CM = [:LineBreak =  Combining_Mark:];
+CMS = [:LineBreak =  Combining_Mark:];
 CP = [:LineBreak =  Close_Parenthesis:];
 CR = [:LineBreak =  Carriage_Return:];
 EB = [:LineBreak =  EB:];
@@ -74,7 +75,7 @@ dictionary = SA;
 
 # By LB9, a ZWJ also behaves as a CM. Including it in the definition of CM avoids having to explicitly
 #         list it in the numerous rules that use CM.
-CM = [CM ZWJ];
+CM = [CMS ZWJ];
 
 LB4:        BK ÷;
 LB5:        CR LF;
@@ -94,14 +95,16 @@ LB15:        QU CM* SP* OP;
 LB16:        (CL | CP)CM* SP* NS;
 LB17:        B2 CM* SP* B2;
 
+# LB8, break after ZW SP*, precedes LB7 because they will both match the sequences like ZW SP,
+# and LB8 should take precedence.
+
+LB8:        ZW SP* ÷ [^ZW SP BK CR LF NL];
+
+# LB7 Do not break before spaces or zero width space.
+
 LB7.1:      [^ZW SP] CM* [SP ZW];
 LB7.2:      [ZW SP] [SP ZW];
 
-# LB8, ICU differs from UAX-14,
-#    ICU:    ZW ÷;
-#    UAX 14: ZW SP* ÷;
-LB8:        ZW ÷;
-
 # LB8a
 #      ZWJ x
 #      Don't match a CM on the right - let other rules pick up CM sequences, where
@@ -123,7 +126,7 @@ LB12:        GL CM* [^CM];
 
 LB12a:       [^SP BA HY] CM* GL;
 
-# LB 13 ICU Tailoring, matches tailoring exmaple 8 from UAX 14.
+# LB 13 ICU Tailoring, matches tailoring example 8 from UAX 14.
 #
 #   LB13.1   [^SP] CM* [CL CP EX IS SY]    # original UAX 14 rule.
 #   LB13.2   SP    CM* [CL CP EX IS SY]
@@ -150,6 +153,9 @@ LB20.2:      . CM* ÷ CB;
 LB20.3:      CB CM* ZWJ [^CM];
 LB20.4:      CB CM* ÷;
 
+# LB 20.09    Don't break between Hyphens and Letters when there is a break preceding the hyphen.
+LB20.09:     ^(HY | HH) CM* AL;
+
 # Note: Rule 21a must come before 21 to prevent 21.1 from matching HL BA, then
 #       not picking up the continuing match after the BA from 21a.
 LB21a:       HL CM* (HY | BA) CM* [^CM CB];
@@ -174,7 +180,7 @@ LB23a.2:     (ID | EB | EM) CM* PO;
 LB24.2:      (PR | PO) CM* (AL | HL);
 LB24.3:      (AL | HL | CM) CM* (PR | PO);
 
-# Numbers. Equivalent to Tailoring example 8 from UAx 14.
+# Numbers. Equivalent to Tailoring example 8 from UAX 14.
 LB25:        ((PR | PO)CM*)? ((OP | HY)CM*)? NU (CM*(NU | SY | IS))* (CM*(CL | CP))? (CM*(PR | PO))?;
 
 LB26.1:      JL CM* (JL | JV | H2 | H3);
@@ -196,8 +202,8 @@ LB30.1:      (AL | CM | HL | NU) CM* OP;
 LB30.2:      CP CM* (AL | HL | NU);
 
 # LB30a  keep pairs of RI together.
-LB30a.1:     RI CM* RI              ÷ [^BK CR LF NL SP ZW WJ CL CP EX IS SY GL QU BA HY NS CM];
-LB30a.2:     RI CM* RI CM* [CM-ZWJ] ÷ [^BK CR LF NL SP ZW WJ CL CP EX IS SY GL QU BA HY NS CM];
+LB30a.1:     RI CM* RI         ÷ [^BK CR LF NL SP ZW WJ CL CP EX IS SY GL QU BA HY NS CM];
+LB30a.2:     RI CM* RI CM* CMS ÷ [^BK CR LF NL SP ZW WJ CL CP EX IS SY GL QU BA HY NS CM];
 LB30a.3:     RI CM* RI CM* [BK CR LF NL SP ZW WJ GL CL CP EX IS SY QU BA HY NS ZWJ]?;
 
 # LB30b Do not break between Emoji Base and Emoji Modifier
index 59c21fd..d674327 100644 (file)
@@ -37,16 +37,17 @@ locale = ja@lb=loose;
 
 
 AI = [:LineBreak =  Ambiguous:];
-AL = [[:LineBreak =  Alphabetic:]];
+AL = [:LineBreak =  Alphabetic:];
 BAX = [\u2010 \u2013];
 BA = [[:LineBreak =  Break_After:] - BAX];
+HH = [\u2010];      # \u2010 is HYPHEN, default line break is BA.
 BB = [:LineBreak =  Break_Before:];
 BK = [:LineBreak =  Mandatory_Break:];
 B2 = [:LineBreak =  Break_Both:];
 CB = [:LineBreak =  Contingent_Break:];
 CJ = [:LineBreak =  Conditional_Japanese_Starter:];
 CL = [:LineBreak =  Close_Punctuation:];
-CM = [:LineBreak =  Combining_Mark:];
+CMS = [:LineBreak =  Combining_Mark:];
 CP = [:LineBreak =  Close_Parenthesis:];
 CR = [:LineBreak =  Carriage_Return:];
 EB = [:LineBreak =  EB:];
@@ -91,7 +92,7 @@ dictionary = SA;
 
 # By LB9, a ZWJ also behaves as a CM. Including it in the definition of CM avoids having to explicitly
 #         list it in the numerous rules that use CM.
-CM = [CM ZWJ];
+CM = [CMS ZWJ];
 
 LB4:        BK ÷;
 LB5:        CR LF;
@@ -111,14 +112,16 @@ LB15:        QU CM* SP* OP;
 LB16:        (CL | CP)CM* SP* NS;
 LB17:        B2 CM* SP* B2;
 
+# LB8, break after ZW SP*, precedes LB7 because they will both match the sequences like ZW SP,
+# and LB8 should take precedence.
+
+LB8:        ZW SP* ÷ [^ZW SP BK CR LF NL];
+
+# LB7 Do not break before spaces or zero width space.
+
 LB7.1:      [^ZW SP] CM* [SP ZW];
 LB7.2:      [ZW SP] [SP ZW];
 
-# LB8, ICU differs from UAX-14,
-#    ICU:    ZW ÷;
-#    UAX 14: ZW SP* ÷;
-LB8:        ZW ÷;
-
 # LB8a
 #      ZWJ x
 #      Don't match a CM on the right - let other rules pick up CM sequences, where
@@ -167,6 +170,9 @@ LB20.2:      . CM* ÷ CB;
 LB20.3:      CB CM* ZWJ [^CM];
 LB20.4:      CB CM* ÷;
 
+# LB 20.09    Don't break between Hyphens and Letters when there is a break preceding the hyphen.
+LB20.09:     ^(HY | HH) CM* AL;
+
 # Note: Rule 21a must come before 21 to prevent 21.1 from matching HL BA, then
 #       not picking up the continuing match after the BA from 21a.
 # LB 21a Don't break after Hebrew + Hyphen
@@ -217,8 +223,8 @@ LB30.1:      (AL | CM | HL | NU) CM* OP;
 LB30.2:      CP CM* (AL | HL | NU);
 
 # LB30a  keep pairs of RI together.
-LB30a.1:     RI CM* RI              ÷ [^BK CR LF NL SP ZW WJ CL CP EX IS SY GL QU BA HY NS CM];
-LB30a.2:     RI CM* RI CM* [CM-ZWJ] ÷ [^BK CR LF NL SP ZW WJ CL CP EX IS SY GL QU BA HY NS CM];
+LB30a.1:     RI CM* RI         ÷ [^BK CR LF NL SP ZW WJ CL CP EX IS SY GL QU BA HY NS CM];
+LB30a.2:     RI CM* RI CM* CMS ÷ [^BK CR LF NL SP ZW WJ CL CP EX IS SY GL QU BA HY NS CM];
 LB30a.3:     RI CM* RI CM* [BK CR LF NL SP ZW WJ GL CL CP EX IS SY QU BA HY NS ZWJ]?;
 
 # LB30b Do not break between Emoji Base and Emoji Modifier
index 7cf2613..7f5b91c 100644 (file)
@@ -33,13 +33,14 @@ locale = en@lb=normal;
 AI = [:LineBreak =  Ambiguous:];
 AL = [:LineBreak =  Alphabetic:];
 BA = [:LineBreak =  Break_After:];
+HH = [\u2010];      # \u2010 is HYPHEN, default line break is BA.
 BB = [:LineBreak =  Break_Before:];
 BK = [:LineBreak =  Mandatory_Break:];
 B2 = [:LineBreak =  Break_Both:];
 CB = [:LineBreak =  Contingent_Break:];
 CJ = [:LineBreak =  Conditional_Japanese_Starter:];
 CL = [:LineBreak =  Close_Punctuation:];
-CM = [:LineBreak =  Combining_Mark:];
+CMS = [:LineBreak =  Combining_Mark:];
 CP = [:LineBreak =  Close_Parenthesis:];
 CR = [:LineBreak =  Carriage_Return:];
 EB = [:LineBreak =  EB:];
@@ -80,7 +81,7 @@ dictionary = SA;
 
 # By LB9, a ZWJ also behaves as a CM. Including it in the definition of CM avoids having to explicitly
 #         list it in the numerous rules that use CM.
-CM = [CM ZWJ];
+CM = [CMS ZWJ];
 
 LB4:        BK ÷;
 LB5:        CR LF;
@@ -100,14 +101,16 @@ LB15:        QU CM* SP* OP;
 LB16:        (CL | CP)CM* SP* NS;
 LB17:        B2 CM* SP* B2;
 
+# LB8, break after ZW SP*, precedes LB7 because they will both match the sequences like ZW SP,
+# and LB8 should take precedence.
+
+LB8:        ZW SP* ÷ [^ZW SP BK CR LF NL];
+
+# LB7 Do not break before spaces or zero width space.
+
 LB7.1:      [^ZW SP] CM* [SP ZW];
 LB7.2:      [ZW SP] [SP ZW];
 
-# LB8, ICU differs from UAX-14,
-#    ICU:    ZW ÷;
-#    UAX 14: ZW SP* ÷;
-LB8:        ZW ÷;
-
 # LB8a
 #      ZWJ x
 #      Don't match a CM on the right - let other rules pick up CM sequences, where
@@ -156,6 +159,9 @@ LB20.2:      . CM* ÷ CB;
 LB20.3:      CB CM* ZWJ [^CM];
 LB20.4:      CB CM* ÷;
 
+# LB 20.09    Don't break between Hyphens and Letters when there is a break preceding the hyphen.
+LB20.09:     ^(HY | HH) CM* AL;
+
 # Note: Rule 21a must come before 21 to prevent 21.1 from matching HL BA, then
 #       not picking up the continuing match after the BA from 21a.
 LB21a:       HL CM* (HY | BA) CM* [^CM CB];
@@ -202,8 +208,8 @@ LB30.1:      (AL | CM | HL | NU) CM* OP;
 LB30.2:      CP CM* (AL | HL | NU);
 
 # LB30a  keep pairs of RI together.
-LB30a.1:     RI CM* RI              ÷ [^BK CR LF NL SP ZW WJ CL CP EX IS SY GL QU BA HY NS CM];
-LB30a.2:     RI CM* RI CM* [CM-ZWJ] ÷ [^BK CR LF NL SP ZW WJ CL CP EX IS SY GL QU BA HY NS CM];
+LB30a.1:     RI CM* RI         ÷ [^BK CR LF NL SP ZW WJ CL CP EX IS SY GL QU BA HY NS CM];
+LB30a.2:     RI CM* RI CM* CMS ÷ [^BK CR LF NL SP ZW WJ CL CP EX IS SY GL QU BA HY NS CM];
 LB30a.3:     RI CM* RI CM* [BK CR LF NL SP ZW WJ GL CL CP EX IS SY QU BA HY NS ZWJ]?;
 
 # LB30b Do not break between Emoji Base and Emoji Modifier
index 3af4a58..cf90751 100644 (file)
@@ -34,13 +34,14 @@ AI = [:LineBreak =  Ambiguous:];
 AL = [:LineBreak =  Alphabetic:];
 BAX = [\u2010 \u2013];
 BA = [[:LineBreak =  Break_After:] - BAX];
+HH = [\u2010];      # \u2010 is HYPHEN, default line break is BA.
 BB = [:LineBreak =  Break_Before:];
 BK = [:LineBreak =  Mandatory_Break:];
 B2 = [:LineBreak =  Break_Both:];
 CB = [:LineBreak =  Contingent_Break:];
 CJ = [:LineBreak =  Conditional_Japanese_Starter:];
 CL = [:LineBreak =  Close_Punctuation:];
-CM = [:LineBreak =  Combining_Mark:];
+CMS = [:LineBreak =  Combining_Mark:];
 CP = [:LineBreak =  Close_Parenthesis:];
 CR = [:LineBreak =  Carriage_Return:];
 EB = [:LineBreak =  EB:];
@@ -82,7 +83,7 @@ dictionary = SA;
 
 # By LB9, a ZWJ also behaves as a CM. Including it in the definition of CM avoids having to explicitly
 #         list it in the numerous rules that use CM.
-CM = [CM ZWJ];
+CM = [CMS ZWJ];
 
 LB4:        BK ÷;
 LB5:        CR LF;
@@ -105,14 +106,16 @@ LB15:        QU CM* SP* OP;
 LB16:        (CL | CP)CM* SP* NS;
 LB17:        B2 CM* SP* B2;
 
+# LB8, break after ZW SP*, precedes LB7 because they will both match the sequences like ZW SP,
+# and LB8 should take precedence.
+
+LB8:        ZW SP* ÷ [^ZW SP BK CR LF NL];
+
+# LB7 Do not break before spaces or zero width space.
+
 LB7.1:      [^ZW SP] CM* [SP ZW];
 LB7.2:      [ZW SP] [SP ZW];
 
-# LB8, ICU differs from UAX-14,
-#    ICU:    ZW ÷;
-#    UAX 14: ZW SP* ÷;
-LB8:        ZW ÷;
-
 # LB8a
 #      ZWJ x
 #      Don't match a CM on the right - let other rules pick up CM sequences, where
@@ -161,6 +164,9 @@ LB20.2:      . CM* ÷ CB;
 LB20.3:      CB CM* ZWJ [^CM];
 LB20.4:      CB CM* ÷;
 
+# LB 20.09    Don't break between Hyphens and Letters when there is a break preceding the hyphen.
+LB20.09:     ^(HY | HH) CM* AL;
+
 # Note: Rule 21a must come before 21 to prevent 21.1 from matching HL BA, then
 #       not picking up the continuing match after the BA from 21a.
 # TODO: For CJ tailorings (with BAX) does this rule want to include BAX? If so,
@@ -211,8 +217,8 @@ LB30.1:      (AL | CM | HL | NU) CM* OP;
 LB30.2:      CP CM* (AL | HL | NU);
 
 # LB30a  keep pairs of RI together.
-LB30a.1:     RI CM* RI              ÷ [^BK CR LF NL SP ZW WJ CL CP EX IS SY GL QU BA HY NS CM];
-LB30a.2:     RI CM* RI CM* [CM-ZWJ] ÷ [^BK CR LF NL SP ZW WJ CL CP EX IS SY GL QU BA HY NS CM];
+LB30a.1:     RI CM* RI         ÷ [^BK CR LF NL SP ZW WJ CL CP EX IS SY GL QU BA HY NS CM];
+LB30a.2:     RI CM* RI CM* CMS ÷ [^BK CR LF NL SP ZW WJ CL CP EX IS SY GL QU BA HY NS CM];
 LB30a.3:     RI CM* RI CM* [BK CR LF NL SP ZW WJ GL CL CP EX IS SY QU BA HY NS ZWJ]?;
 
 # LB30b Do not break between Emoji Base and Emoji Modifier
index c0364e2..18bacec 100644 (file)
@@ -187,21 +187,21 @@ format:table(nofallback) {
                     "",
                     "DATE=RELATIVE_SHORT",
                     "RELATIVE_ADD:DATE=1", // one day from now
-                    "Għada"
+                    "għada"
                },
                {
                     "mt_MT@calendar=gregorian",         
                     "",
                     "DATE=RELATIVE_SHORT",
                     "RELATIVE_MILLIS=0", // today
-                    "Illum"
+                    "illum"
                },
                {
                     "mt_MT@calendar=gregorian",         
                     "",
                     "DATE=RELATIVE_SHORT",
                     "RELATIVE_ADD:DATE=-1", // one day before now
-                    "Ilbieraħ"
+                    "lbieraħ"
                },
                {
                     "ru",
index a953ce0..6ff99a8 100644 (file)
@@ -32,15 +32,16 @@ test basic patterns
 set locale fr_FR
 set format 1234.567
 begin
-pattern        output
-#,##0.##       1\u00a0234,57
+pattern        output  breaks
+// K does not use \u202f narrow space
+#,##0.##       1\u202f234,57   K
 0.##   1234,57
 0      1235
-#,##0.###      1\u00a0234,567
+#,##0.###      1\u202f234,567  K
 ###0.######    1234,567
 ###0.0000#     1234,5670
 00000.0000     01234,5670
-#,##0.00 \u00a4        1\u00a0234,57 \u20ac
+#,##0.00 \u00a4        1\u202f234,57 \u20ac    K
 'tick''bitten '0.00    tick'bitten 1234,57
 'tick' 'bitten '0.00   tick bitten 1234,57
 
@@ -151,7 +152,7 @@ pattern     format  output  breaks
 4      10.0    8       K
 2.70   99.0    99,90   K
 2.73   272.0   273,00  K
-#,#3.70        104.0   1\u00a003,60    K
+#,#3.70        104.0   1\u202f03,60    K
 
 test significant digits
 set locale en
@@ -212,9 +213,9 @@ pattern     format  output  breaks
 p%p0.0 0.573   p%p57,3
 p'%'p0.0       0.573   p%p0,6
 %@@@@  0.0326  %3,260  K
-%#,@@@ 15.43   %1\u00a0540     K
+%#,@@@ 15.43   %1\u202f540     K
 // JDK does not support rounding increments
-%#,##4.1       16.55   %1\u00a0656,4   K
+%#,##4.1       16.55   %1\u202f656,4   K
 // JDK gives %16,255E3
 %##0.00E0      162.55  %16,3E3 K
 
@@ -227,8 +228,8 @@ pattern     format  output  breaks
 p\u2030p0.0    0.573   p\u2030p573,0
 p'\u2030'p0.0  0.573   p\u2030p0,6
 \u2030@@@@     0.0326  \u203032,60     K
-\u2030#,@@@    15.43   \u203015\u00a0400       K
-\u2030#,##4.1  16.55   \u203016\u00a0551,7     K
+\u2030#,@@@    15.43   \u203015\u202f400       K
+\u2030#,##4.1  16.55   \u203016\u202f551,7     K
 // JDK gives \u2030162,55E3
 \u2030##0.00E0 162.55  \u2030163E3     K
 
@@ -237,13 +238,13 @@ set locale fr_FR
 begin
 pattern        format  output  breaks
 // JDK does not seem to support padding
-$**####,##0    1234    $***1\u00a0234  K
-*x$####,##0    1234    xxx$1\u00a0234  K
-####,##0*x$    1234    1\u00a0234xxx$  K
-####,##0$*x    1234    1\u00a0234$xxx  K
+$**####,##0    1234    $***1\u202f234  K
+*x$####,##0    1234    xxx$1\u202f234  K
+####,##0*x$    1234    1\u202f234xxx$  K
+####,##0$*x    1234    1\u202f234$xxx  K
 // JDK doesn't seem to handle suffixes correctly dropping the 'nx' entirely
-####,##0$*x;ne#n       -1234   ne1\u00a0234nx  K
-####,##0$*x;n#'*'      -1234   n1\u00a0234*xx  K
+####,##0$*x;ne#n       -1234   ne1\u202f234nx  K
+####,##0$*x;n#'*'      -1234   n1\u202f234*xx  K
 *y%4.2######   4.33    yyyy%432,6      K
 // In J ICU adds padding as if 'EUR' is only 2 chars (2 * 0xa4)
 \u00a4\u00a4 **####0.00        433.0   EUR *433,00     HK
@@ -266,10 +267,10 @@ set format 1234.567
 begin
 pattern        currency        output  breaks
 // JDK gives shows EUR instead of the euro symbol in this case
-#,##0.00 \u00a4        EUR     1\u00a0234,57 \u20ac    K
+#,##0.00 \u00a4        EUR     1\u202f234,57 \u20ac    K
 // JDK gives 1\u00A0234,57. JDK doesn't seem to correct rounding
 // based on currency.
-#,##0.00 \u00a4        JPY     1\u00a0235 JPY  K
+#,##0.00 \u00a4        JPY     1\u202f235 JPY  K
 
 test prefixes and suffixes
 set locale en
@@ -353,6 +354,15 @@ minIntegerDigits   maxIntegerDigits        minFractionDigits       maxFractionDigits       output  bre
 // JDK fails here because it tries to use 9 + 6 = 15 sig digits.
 2      9       1       6       29.979246E7     K
 
+test ticket 20058
+set locale en
+begin
+pattern        format  output  breaks
+#00.0##E0      0       0.0E0   K
+#00.0##E0      1.2     1.2E0   K
+#00.0E0        0       0.0E0   K
+#00.0E0        1.2     1.2E0   K
+
 test significant digits scientific
 set locale en
 set pattern #E0
@@ -1668,7 +1678,32 @@ pattern  lenient parse   output  breaks
 0E0'.'x        1       5E3.x   5000
 0E0'.'x        0       5E3.x   5000
 
-test parse lowercase currency
+test parse() lowercase currency
+set locale en
+set pattern ¤¤0
+set currency USD
+begin
+parse  output  breaks
+USD123 123
+USD 123        123     HK
+usd123 123     K
+usd 123        123     HK
+Usd123 123     K
+Usd 123        123     HK
+// US$ is not used for US dollars in en-US
+US$123 fail    H
+us$123 fail
+Us$123 fail
+123 US dollars 123     K
+123 US DOLLARS 123     K
+123 us dollars 123     K
+// Foreign currencies are not accepted in .parse()
+GBP123 fail
+gbp123 fail
+British pounds 123     fail
+british POUNDS 123     fail
+
+test parseCurrency() lowercase currency
 set locale en
 set pattern ¤¤0
 set currency USD
@@ -1676,17 +1711,20 @@ begin
 parse  output  outputCurrency  breaks
 USD123 123     USD
 USD 123        123     USD     H
-// C does not currently accept case-insensitive ISO codes
-usd123 123     USD     C
-usd 123        123     USD     CH
-Usd123 123     USD     C
-Usd 123        123     USD     CH
+usd123 123     USD
+usd 123        123     USD     H
+Usd123 123     USD
+Usd 123        123     USD     H
 US$123 123     USD     C
 us$123 fail    fail
 Us$123 fail    fail
 123 US dollars 123     USD
 123 US DOLLARS 123     USD
 123 us dollars 123     USD
+GBP123 123     GBP
+gbp123 123     GBP     C
+British pounds 123     123     GBP     H
+british POUNDS 123     123     GBP     H
 
 
 
index 887f6e5..63ba172 100644 (file)
 <data><0>より<400>詳しい<400>こと<400>を<400>お<400>知<400>り<400>に<400>なり<400>たい<400>方<400>は<400>、<0>Glossary<200>,<0> <0>\
 Technical<200> <0>Introduction<200> <0>および<400> <0>Useful<200> <0>Resources<200>を<400>ご<400>参照<400>くだ<400>さい<400>。<0></data>
 
+#
+# Bug ICU-13334  Report of different boundaries between Windows and Linux.
+#
+<data><0>丙酮<400></data>
 
 ########################################################################################
 #
@@ -764,6 +768,16 @@ Calls to xxx will return an implementor of this interface.  \u2029•</data>
 <line>
 <data>•</data>
 
+# Bug #13664 Mixed Thai & English text had different boundaries between forward & reverse.
+#
+<line>
+<data>•Northern •Thailand •is •a •mountainous •area. •Parallel •mountain •ranges •extend •from •the •\
+Daen •Lao •Range •(ทิว•เขา•แดน•ลาว), •in •the •southern •region •of •the •Shan •Hills, •in •a •\
+north/•south •direction, •the •Dawna •Range •(ทิว•เขา•ดอย•มอน•กุ•จู) •forming •the •western •border •of •Thailand •\
+between •Mae •Hong •Son •and •the •Salween •River, •the •Thanon •Thong •Chai •Range •(เทือก•เขา•ถนน•ธงชัย), •\
+the •Khun •Tan •Range •(ดอย•ขุน•ตาน), •the •Phi •Pan •Nam •Range •(ทิว•เขา•ผี•ปัน•น้ำ), •as •well •as •the •western •\
+part •of •the •Luang •Prabang •Range •(ทิว•เขา•หลวง•พระ•บาง).•</data>
+
 
 ########################################################################################
 #
@@ -1072,23 +1086,21 @@ Bangkok)•</data>
 # Finnish line breaking
 #
 # These rules deal with hyphens when there is a space on the leading side.
-# There should be a break opportunity between the space and the hyphen, and not after the hyphen.
+# When followed by a letter, there should be a break opportunity between
+# the space and the hyphen, and not after the hyphen.
 # See CLDR ticket 3029.
 # See ICU ticket 8151
+# As of ICU 63, the Finnish tailoring behavior is moved to root.
 
 <locale root>
 <line>
-<data>•abc •- •def    •abc •-def    •abc- •def   •abc-•def•</data>   # With ASCII hyphen
-<data>•abc •‐ •def    •abc •‐def    •abc‐ •def   •abc‐•def•</data>   # With Unicode u2010 hyphen
+<data>•abc •- •def    •abc •-def    •abc- •def   •abc-•def•</data>   # With ASCII hyphen
+<data>•abc •‐ •def    •abc •‐def    •abc‐ •def   •abc‐•def•</data>   # With Unicode u2010 hyphen
 
 <locale fi>
 <line>
-# TODO: problems with Finnish line break rules cause these two lines to fail.
-#<data>•abc •- •def    •abc •-def    •abc- •def   •abc-•def•</data>   # With ASCII hyphen
-#<data>•abc •‐ •def    •abc •‐def    •abc‐ •def   •abc‐•def•</data>   # With Unicode u2010 hyphen
-
-<data>•abc •- •def    •abc •-def    •abc- •def   •</data>   # With ASCII hyphen
-<data>•abc •‐ •def    •abc •‐def    •abc‐ •def   •</data>   # With Unicode u2010 hyphen
+<data>•abc •- •def    •abc •-def    •abc- •def   •abc-•def•</data>   # With ASCII hyphen
+<data>•abc •‐ •def    •abc •‐def    •abc‐ •def   •abc‐•def•</data>   # With Unicode u2010 hyphen
 
 # Test for #10176 (in fi)
 <line>
index 977a7b3..ee7bdf2 100644 (file)
 "abc"                  Z3       "abc abc <0>abc</0> xyz"
 "abc"                  z4       "abc abc abc xyz"
 
+# Bug #13844  Verify that non-standard Java property names are recognized.
+"[\p{IsAlphabetic}]"            " <0>A</0>"
+"[\P{IsAlphabetic}]"            "A<0> </0>"
+"[\p{IsIdeographic}]"           "A<0>〆</0>"
+"[\P{IsIdeographic}]"           "〆<0>A</0>"
+"[\p{IsLetter}]"                " <0>A</0>"
+"[\P{IsLetter}]"                "A<0> </0>"
+"[\p{Letter}]"                  " <0>A</0>"
+"[\p{IsLowercase}]"             "A<0>a</0>"
+"[\P{IsLowercase}]"             "a<0>A</0>"
+"[\p{IsUppercase}]"             "a<0>A</0>"
+"[\P{IsUppercase}]"             "A<0>a</0>"
+"[\p{IsTitlecase}]"             "D<0>Dz</0>"
+"[\P{IsTitlecase}]"             "Dz<0>D</0>"
+"[\p{IsPunctuation}]"           " <0>&</0>"
+"[\P{IsPunctuation}]"           "&<0> </0>"
+"[\p{IsControl}]"               " <0>\x{82}</0>"
+"[\P{IsControl}]"               "\x{82}<0> </0>"
+"[\p{IsWhite_Space}]"           "x<0> </0>"
+"[\P{IsWhite_Space}]"           " <0>x</0>"
+"[\p{IsDigit}]"                 " <0>4</0>"
+"[\P{IsDigit}]"                 "4<0> </0>"
+"[\p{IsHex_Digit}]"             " <0>F</0>"
+"[\P{IsHex_Digit}]"             "F<0> </0>"
+"[\p{IsJoin_Control}]"          " <0>\x{200d}</0>"
+"[\P{IsJoin_Control}]"          "\x{200d}<0> </0>"
+"[\p{IsNoncharacter_Code_Point}]"     "A<0>\x{5fffe}</0>"
+"[\p{IsAssigned}]"              "\x{10ffff}<0>a</0>"
+"[\P{IsAssigned}]"              "a<0>\x{10ffff}</0>"
+
+"[\p{InBasic Latin}]"           "〆<0>A</0>"
+"[\p{InBasicLatin}]"            "〆<0>A</0>"
+"[\p{InBasic-Latin}]"           "〆<0>A</0>"    # ICU accepts '-'; Java does not.
+"[\p{InBasic_Latin}]"           "〆<0>A</0>"
+"[\p{Inbasiclatin}]"            "〆<0>A</0>"
+"[\p{inbasiclatin}]"       E    "〆<0>A</0>"    # "In" must be cased as shown. Property name part is case insensitive.
+"[\p{InCombining_Marks_for_Symbols}]"    "a<0>\x{20DD}</0>"    # COMBINING ENCLOSING CIRCLE
+
+"[\p{all}]*"                    "<0>\x{00}abc\x{10ffff}</0>"
+"[\p{javaBadProperty}]"    E    "whatever"
+"[\p{IsBadProperty}]"      E    "whatever"
+"[\p{InBadBlock}]"         E    "whatever"
+"[\p{In}]"                 E    "whatever"
+"[\p{Is}]"                 E    "whatever"
+"[\p{java}]"                    "x<0>ꦉ</0>"      # Note: "java" is a valid script code.
+
+"[\p{javaLowerCase}]+"             "A<0>a</0>"
+"[\p{javaLowerCase}]+"     i       "<0>Aa</0>"
+"[\P{javaLowerCase}]+"             "<0>A</0>a"
+"[\P{javaLowerCase}]+"     i       "Aa"          # No Match because case fold of the set happens first, then negation.
+                                                 #  JDK is not case insensitive w named properties, even though
+                                                 #  the insensitive match flag is set. A JDK bug?
+
+"[a-z]+"                   i       "<0>Aa</0>"   # Matches JDK behavior.
+"[^a-z]+"                  i       "Aa"          # (no match) which is JDK behavior. Case fold first, then negation.
+
 #  Random debugging, Temporary
 #
 
index b6c10ee..4918596 100644 (file)
@@ -13,8 +13,8 @@
 root
 {
     Version { 44.0 }
-    ExpectCLDRVersionAtLeast { 33.1 } // 'base' cldr version. Allow up to version =.=.* of this
-    CurrentCLDRVersion { 33.1 } // Current CLDR version as of the test update. Warn if not an exact match.
+    ExpectCLDRVersionAtLeast { 34.0 } // 'base' cldr version. Allow up to version =.=.* of this
+    CurrentCLDRVersion { 34.0 } // Current CLDR version as of the test update. Warn if not an exact match.
 
     ShortLanguage { xxx }
 
index a49de07..d3182ed 100644 (file)
@@ -6081,7 +6081,9 @@ structLocale:table(nofallback){
     NumberElements{
         arab{
             miscPatterns{
+                approximately{""}
                 atLeast{""}
+                atMost{""}
                 range{""}
             }
             patterns{
@@ -6408,7 +6410,9 @@ structLocale:table(nofallback){
         }
         arabext{
             miscPatterns{
+                approximately{""}
                 atLeast{""}
+                atMost{""}
                 range{""}
             }
             patterns{
@@ -6735,7 +6739,9 @@ structLocale:table(nofallback){
         }
         bali{
             miscPatterns{
+                approximately{""}
                 atLeast{""}
+                atMost{""}
                 range{""}
             }
             patterns{
@@ -7062,7 +7068,9 @@ structLocale:table(nofallback){
         }
         beng{
             miscPatterns{
+                approximately{""}
                 atLeast{""}
+                atMost{""}
                 range{""}
             }
             patterns{
@@ -7389,7 +7397,9 @@ structLocale:table(nofallback){
         }
         brah{
             miscPatterns{
+                approximately{""}
                 atLeast{""}
+                atMost{""}
                 range{""}
             }
             patterns{
@@ -7716,7 +7726,9 @@ structLocale:table(nofallback){
         }
         cakm{
             miscPatterns{
+                approximately{""}
                 atLeast{""}
+                atMost{""}
                 range{""}
             }
             patterns{
@@ -8043,7 +8055,9 @@ structLocale:table(nofallback){
         }
         cham{
             miscPatterns{
+                approximately{""}
                 atLeast{""}
+                atMost{""}
                 range{""}
             }
             patterns{
@@ -8372,7 +8386,9 @@ structLocale:table(nofallback){
         default_latn{""}
         deva{
             miscPatterns{
+                approximately{""}
                 atLeast{""}
+                atMost{""}
                 range{""}
             }
             patterns{
@@ -8700,7 +8716,338 @@ structLocale:table(nofallback){
         finance{""}
         fullwide{
             miscPatterns{
+                approximately{""}
                 atLeast{""}
+                atMost{""}
+                range{""}
+            }
+            patterns{
+                accountingFormat{""}
+                currencyFormat{""}
+                decimalFormat{""}
+                percentFormat{""}
+                scientificFormat{""}
+            }
+            patternsLong{
+                decimalFormat{
+                    1000{
+                        zero{""}
+                        one{""}
+                        two{""}
+                        few{""}
+                        many{""}
+                        other{""}
+                    }
+                    10000{
+                        zero{""}
+                        one{""}
+                        two{""}
+                        few{""}
+                        many{""}
+                        other{""}
+                    }
+                    100000{
+                        zero{""}
+                        one{""}
+                        two{""}
+                        few{""}
+                        many{""}
+                        other{""}
+                    }
+                    1000000{
+                        zero{""}
+                        one{""}
+                        two{""}
+                        few{""}
+                        many{""}
+                        other{""}
+                    }
+                    10000000{
+                        zero{""}
+                        one{""}
+                        two{""}
+                        few{""}
+                        many{""}
+                        other{""}
+                    }
+                    100000000{
+                        zero{""}
+                        one{""}
+                        two{""}
+                        few{""}
+                        many{""}
+                        other{""}
+                    }
+                    1000000000{
+                        zero{""}
+                        one{""}
+                        two{""}
+                        few{""}
+                        many{""}
+                        other{""}
+                    }
+                    10000000000{
+                        zero{""}
+                        one{""}
+                        two{""}
+                        few{""}
+                        many{""}
+                        other{""}
+                    }
+                    100000000000{
+                        zero{""}
+                        one{""}
+                        two{""}
+                        few{""}
+                        many{""}
+                        other{""}
+                    }
+                    1000000000000{
+                        zero{""}
+                        one{""}
+                        two{""}
+                        few{""}
+                        many{""}
+                        other{""}
+                    }
+                    10000000000000{
+                        zero{""}
+                        one{""}
+                        two{""}
+                        few{""}
+                        many{""}
+                        other{""}
+                    }
+                    100000000000000{
+                        zero{""}
+                        one{""}
+                        two{""}
+                        few{""}
+                        many{""}
+                        other{""}
+                    }
+                }
+            }
+            patternsShort{
+                currencyFormat{
+                    1000{
+                        zero{""}
+                        one{""}
+                        two{""}
+                        few{""}
+                        many{""}
+                        other{""}
+                    }
+                    10000{
+                        zero{""}
+                        one{""}
+                        two{""}
+                        few{""}
+                        many{""}
+                        other{""}
+                    }
+                    100000{
+                        zero{""}
+                        one{""}
+                        two{""}
+                        few{""}
+                        many{""}
+                        other{""}
+                    }
+                    1000000{
+                        zero{""}
+                        one{""}
+                        two{""}
+                        few{""}
+                        many{""}
+                        other{""}
+                    }
+                    10000000{
+                        zero{""}
+                        one{""}
+                        two{""}
+                        few{""}
+                        many{""}
+                        other{""}
+                    }
+                    100000000{
+                        zero{""}
+                        one{""}
+                        two{""}
+                        few{""}
+                        many{""}
+                        other{""}
+                    }
+                    1000000000{
+                        zero{""}
+                        one{""}
+                        two{""}
+                        few{""}
+                        many{""}
+                        other{""}
+                    }
+                    10000000000{
+                        zero{""}
+                        one{""}
+                        two{""}
+                        few{""}
+                        many{""}
+                        other{""}
+                    }
+                    100000000000{
+                        zero{""}
+                        one{""}
+                        two{""}
+                        few{""}
+                        many{""}
+                        other{""}
+                    }
+                    1000000000000{
+                        zero{""}
+                        one{""}
+                        two{""}
+                        few{""}
+                        many{""}
+                        other{""}
+                    }
+                    10000000000000{
+                        zero{""}
+                        one{""}
+                        two{""}
+                        few{""}
+                        many{""}
+                        other{""}
+                    }
+                    100000000000000{
+                        zero{""}
+                        one{""}
+                        two{""}
+                        few{""}
+                        many{""}
+                        other{""}
+                    }
+                }
+                decimalFormat{
+                    1000{
+                        zero{""}
+                        one{""}
+                        two{""}
+                        few{""}
+                        many{""}
+                        other{""}
+                    }
+                    10000{
+                        zero{""}
+                        one{""}
+                        two{""}
+                        few{""}
+                        many{""}
+                        other{""}
+                    }
+                    100000{
+                        zero{""}
+                        one{""}
+                        two{""}
+                        few{""}
+                        many{""}
+                        other{""}
+                    }
+                    1000000{
+                        zero{""}
+                        one{""}
+                        two{""}
+                        few{""}
+                        many{""}
+                        other{""}
+                    }
+                    10000000{
+                        zero{""}
+                        one{""}
+                        two{""}
+                        few{""}
+                        many{""}
+                        other{""}
+                    }
+                    100000000{
+                        zero{""}
+                        one{""}
+                        two{""}
+                        few{""}
+                        many{""}
+                        other{""}
+                    }
+                    1000000000{
+                        zero{""}
+                        one{""}
+                        two{""}
+                        few{""}
+                        many{""}
+                        other{""}
+                    }
+                    10000000000{
+                        zero{""}
+                        one{""}
+                        two{""}
+                        few{""}
+                        many{""}
+                        other{""}
+                    }
+                    100000000000{
+                        zero{""}
+                        one{""}
+                        two{""}
+                        few{""}
+                        many{""}
+                        other{""}
+                    }
+                    1000000000000{
+                        zero{""}
+                        one{""}
+                        two{""}
+                        few{""}
+                        many{""}
+                        other{""}
+                    }
+                    10000000000000{
+                        zero{""}
+                        one{""}
+                        two{""}
+                        few{""}
+                        many{""}
+                        other{""}
+                    }
+                    100000000000000{
+                        zero{""}
+                        one{""}
+                        two{""}
+                        few{""}
+                        many{""}
+                        other{""}
+                    }
+                }
+            }
+            symbols{
+                decimal{""}
+                exponential{""}
+                group{""}
+                infinity{""}
+                list{""}
+                minusSign{""}
+                nan{""}
+                perMille{""}
+                percentSign{""}
+                plusSign{""}
+                currencyDecimal{""}
+                currencyGroup{""}
+                superscriptingExponent{""}
+                timeSeparator{""}
+            }
+        }
+        gong{
+            miscPatterns{
+                approximately{""}
+                atLeast{""}
+                atMost{""}
                 range{""}
             }
             patterns{
@@ -9027,7 +9374,338 @@ structLocale:table(nofallback){
         }
         gonm{
             miscPatterns{
+                approximately{""}
+                atLeast{""}
+                atMost{""}
+                range{""}
+            }
+            patterns{
+                accountingFormat{""}
+                currencyFormat{""}
+                decimalFormat{""}
+                percentFormat{""}
+                scientificFormat{""}
+            }
+            patternsLong{
+                decimalFormat{
+                    1000{
+                        zero{""}
+                        one{""}
+                        two{""}
+                        few{""}
+                        many{""}
+                        other{""}
+                    }
+                    10000{
+                        zero{""}
+                        one{""}
+                        two{""}
+                        few{""}
+                        many{""}
+                        other{""}
+                    }
+                    100000{
+                        zero{""}
+                        one{""}
+                        two{""}
+                        few{""}
+                        many{""}
+                        other{""}
+                    }
+                    1000000{
+                        zero{""}
+                        one{""}
+                        two{""}
+                        few{""}
+                        many{""}
+                        other{""}
+                    }
+                    10000000{
+                        zero{""}
+                        one{""}
+                        two{""}
+                        few{""}
+                        many{""}
+                        other{""}
+                    }
+                    100000000{
+                        zero{""}
+                        one{""}
+                        two{""}
+                        few{""}
+                        many{""}
+                        other{""}
+                    }
+                    1000000000{
+                        zero{""}
+                        one{""}
+                        two{""}
+                        few{""}
+                        many{""}
+                        other{""}
+                    }
+                    10000000000{
+                        zero{""}
+                        one{""}
+                        two{""}
+                        few{""}
+                        many{""}
+                        other{""}
+                    }
+                    100000000000{
+                        zero{""}
+                        one{""}
+                        two{""}
+                        few{""}
+                        many{""}
+                        other{""}
+                    }
+                    1000000000000{
+                        zero{""}
+                        one{""}
+                        two{""}
+                        few{""}
+                        many{""}
+                        other{""}
+                    }
+                    10000000000000{
+                        zero{""}
+                        one{""}
+                        two{""}
+                        few{""}
+                        many{""}
+                        other{""}
+                    }
+                    100000000000000{
+                        zero{""}
+                        one{""}
+                        two{""}
+                        few{""}
+                        many{""}
+                        other{""}
+                    }
+                }
+            }
+            patternsShort{
+                currencyFormat{
+                    1000{
+                        zero{""}
+                        one{""}
+                        two{""}
+                        few{""}
+                        many{""}
+                        other{""}
+                    }
+                    10000{
+                        zero{""}
+                        one{""}
+                        two{""}
+                        few{""}
+                        many{""}
+                        other{""}
+                    }
+                    100000{
+                        zero{""}
+                        one{""}
+                        two{""}
+                        few{""}
+                        many{""}
+                        other{""}
+                    }
+                    1000000{
+                        zero{""}
+                        one{""}
+                        two{""}
+                        few{""}
+                        many{""}
+                        other{""}
+                    }
+                    10000000{
+                        zero{""}
+                        one{""}
+                        two{""}
+                        few{""}
+                        many{""}
+                        other{""}
+                    }
+                    100000000{
+                        zero{""}
+                        one{""}
+                        two{""}
+                        few{""}
+                        many{""}
+                        other{""}
+                    }
+                    1000000000{
+                        zero{""}
+                        one{""}
+                        two{""}
+                        few{""}
+                        many{""}
+                        other{""}
+                    }
+                    10000000000{
+                        zero{""}
+                        one{""}
+                        two{""}
+                        few{""}
+                        many{""}
+                        other{""}
+                    }
+                    100000000000{
+                        zero{""}
+                        one{""}
+                        two{""}
+                        few{""}
+                        many{""}
+                        other{""}
+                    }
+                    1000000000000{
+                        zero{""}
+                        one{""}
+                        two{""}
+                        few{""}
+                        many{""}
+                        other{""}
+                    }
+                    10000000000000{
+                        zero{""}
+                        one{""}
+                        two{""}
+                        few{""}
+                        many{""}
+                        other{""}
+                    }
+                    100000000000000{
+                        zero{""}
+                        one{""}
+                        two{""}
+                        few{""}
+                        many{""}
+                        other{""}
+                    }
+                }
+                decimalFormat{
+                    1000{
+                        zero{""}
+                        one{""}
+                        two{""}
+                        few{""}
+                        many{""}
+                        other{""}
+                    }
+                    10000{
+                        zero{""}
+                        one{""}
+                        two{""}
+                        few{""}
+                        many{""}
+                        other{""}
+                    }
+                    100000{
+                        zero{""}
+                        one{""}
+                        two{""}
+                        few{""}
+                        many{""}
+                        other{""}
+                    }
+                    1000000{
+                        zero{""}
+                        one{""}
+                        two{""}
+                        few{""}
+                        many{""}
+                        other{""}
+                    }
+                    10000000{
+                        zero{""}
+                        one{""}
+                        two{""}
+                        few{""}
+                        many{""}
+                        other{""}
+                    }
+                    100000000{
+                        zero{""}
+                        one{""}
+                        two{""}
+                        few{""}
+                        many{""}
+                        other{""}
+                    }
+                    1000000000{
+                        zero{""}
+                        one{""}
+                        two{""}
+                        few{""}
+                        many{""}
+                        other{""}
+                    }
+                    10000000000{
+                        zero{""}
+                        one{""}
+                        two{""}
+                        few{""}
+                        many{""}
+                        other{""}
+                    }
+                    100000000000{
+                        zero{""}
+                        one{""}
+                        two{""}
+                        few{""}
+                        many{""}
+                        other{""}
+                    }
+                    1000000000000{
+                        zero{""}
+                        one{""}
+                        two{""}
+                        few{""}
+                        many{""}
+                        other{""}
+                    }
+                    10000000000000{
+                        zero{""}
+                        one{""}
+                        two{""}
+                        few{""}
+                        many{""}
+                        other{""}
+                    }
+                    100000000000000{
+                        zero{""}
+                        one{""}
+                        two{""}
+                        few{""}
+                        many{""}
+                        other{""}
+                    }
+                }
+            }
+            symbols{
+                decimal{""}
+                exponential{""}
+                group{""}
+                infinity{""}
+                list{""}
+                minusSign{""}
+                nan{""}
+                perMille{""}
+                percentSign{""}
+                plusSign{""}
+                currencyDecimal{""}
+                currencyGroup{""}
+                superscriptingExponent{""}
+                timeSeparator{""}
+            }
+        }
+        gujr{
+            miscPatterns{
+                approximately{""}
                 atLeast{""}
+                atMost{""}
                 range{""}
             }
             patterns{
@@ -9352,9 +10030,11 @@ structLocale:table(nofallback){
                 timeSeparator{""}
             }
         }
-        gujr{
+        guru{
             miscPatterns{
+                approximately{""}
                 atLeast{""}
+                atMost{""}
                 range{""}
             }
             patterns{
@@ -9679,9 +10359,11 @@ structLocale:table(nofallback){
                 timeSeparator{""}
             }
         }
-        guru{
+        hanidec{
             miscPatterns{
+                approximately{""}
                 atLeast{""}
+                atMost{""}
                 range{""}
             }
             patterns{
@@ -10006,9 +10688,11 @@ structLocale:table(nofallback){
                 timeSeparator{""}
             }
         }
-        hanidec{
+        java{
             miscPatterns{
+                approximately{""}
                 atLeast{""}
+                atMost{""}
                 range{""}
             }
             patterns{
@@ -10333,9 +11017,11 @@ structLocale:table(nofallback){
                 timeSeparator{""}
             }
         }
-        java{
+        kali{
             miscPatterns{
+                approximately{""}
                 atLeast{""}
+                atMost{""}
                 range{""}
             }
             patterns{
@@ -10660,12 +11346,14 @@ structLocale:table(nofallback){
                 timeSeparator{""}
             }
         }
-        kali{
+        khmr{
             miscPatterns{
+                approximately{""}
                 atLeast{""}
+                atMost{""}
                 range{""}
             }
-            patterns{
+           patterns{
                 accountingFormat{""}
                 currencyFormat{""}
                 decimalFormat{""}
@@ -10987,12 +11675,14 @@ structLocale:table(nofallback){
                 timeSeparator{""}
             }
         }
-        khmr{
-             miscPatterns{
+        knda{
+            miscPatterns{
+                approximately{""}
                 atLeast{""}
+                atMost{""}
                 range{""}
             }
-           patterns{
+            patterns{
                 accountingFormat{""}
                 currencyFormat{""}
                 decimalFormat{""}
@@ -11314,9 +12004,11 @@ structLocale:table(nofallback){
                 timeSeparator{""}
             }
         }
-        knda{
+        lana{
             miscPatterns{
+                approximately{""}
                 atLeast{""}
+                atMost{""}
                 range{""}
             }
             patterns{
@@ -11641,9 +12333,11 @@ structLocale:table(nofallback){
                 timeSeparator{""}
             }
         }
-        lana{
+        lanatham{
             miscPatterns{
+                approximately{""}
                 atLeast{""}
+                atMost{""}
                 range{""}
             }
             patterns{
@@ -11968,9 +12662,11 @@ structLocale:table(nofallback){
                 timeSeparator{""}
             }
         }
-        lanatham{
+        laoo{
             miscPatterns{
+                approximately{""}
                 atLeast{""}
+                atMost{""}
                 range{""}
             }
             patterns{
@@ -12295,9 +12991,11 @@ structLocale:table(nofallback){
                 timeSeparator{""}
             }
         }
-        laoo{
+        latn{
             miscPatterns{
+                approximately{""}
                 atLeast{""}
+                atMost{""}
                 range{""}
             }
             patterns{
@@ -12622,9 +13320,11 @@ structLocale:table(nofallback){
                 timeSeparator{""}
             }
         }
-        latn{
+        lepc{
             miscPatterns{
+                approximately{""}
                 atLeast{""}
+                atMost{""}
                 range{""}
             }
             patterns{
@@ -12949,9 +13649,11 @@ structLocale:table(nofallback){
                 timeSeparator{""}
             }
         }
-        lepc{
+        limb{
             miscPatterns{
+                approximately{""}
                 atLeast{""}
+                atMost{""}
                 range{""}
             }
             patterns{
@@ -13276,9 +13978,29 @@ structLocale:table(nofallback){
                 timeSeparator{""}
             }
         }
-        limb{
+        minimalPairs{
+            ordinal{
+                zero{""}
+                one{""}
+                two{""}
+                few{""}
+                many{""}
+                other{""}
+            }
+            plural{
+                zero{""}
+                one{""}
+                two{""}
+                few{""}
+                many{""}
+                other{""}
+            }
+        }
+        mlym{
             miscPatterns{
+                approximately{""}
                 atLeast{""}
+                atMost{""}
                 range{""}
             }
             patterns{
@@ -13603,27 +14325,11 @@ structLocale:table(nofallback){
                 timeSeparator{""}
             }
         }
-        minimalPairs{
-            ordinal{
-                zero{""}
-                one{""}
-                two{""}
-                few{""}
-                many{""}
-                other{""}
-            }
-            plural{
-                zero{""}
-                one{""}
-                two{""}
-                few{""}
-                many{""}
-                other{""}
-            }
-        }
-        mlym{
+        mong{
             miscPatterns{
+                approximately{""}
                 atLeast{""}
+                atMost{""}
                 range{""}
             }
             patterns{
@@ -13948,9 +14654,11 @@ structLocale:table(nofallback){
                 timeSeparator{""}
             }
         }
-        mong{
+        mtei{
             miscPatterns{
+                approximately{""}
                 atLeast{""}
+                atMost{""}
                 range{""}
             }
             patterns{
@@ -14275,9 +14983,11 @@ structLocale:table(nofallback){
                 timeSeparator{""}
             }
         }
-        mtei{
+        mymr{
             miscPatterns{
+                approximately{""}
                 atLeast{""}
+                atMost{""}
                 range{""}
             }
             patterns{
@@ -14602,9 +15312,11 @@ structLocale:table(nofallback){
                 timeSeparator{""}
             }
         }
-        mymr{
+        mymrshan{
             miscPatterns{
+                approximately{""}
                 atLeast{""}
+                atMost{""}
                 range{""}
             }
             patterns{
@@ -14929,9 +15641,13 @@ structLocale:table(nofallback){
                 timeSeparator{""}
             }
         }
-        mymrshan{
+        minimumGroupingDigits{""}
+        native{""}
+        nkoo{
             miscPatterns{
+                approximately{""}
                 atLeast{""}
+                atMost{""}
                 range{""}
             }
             patterns{
@@ -15256,11 +15972,11 @@ structLocale:table(nofallback){
                 timeSeparator{""}
             }
         }
-        minimumGroupingDigits{""}
-        native{""}
-        nkoo{
+        olck{
             miscPatterns{
+                approximately{""}
                 atLeast{""}
+                atMost{""}
                 range{""}
             }
             patterns{
@@ -15585,9 +16301,11 @@ structLocale:table(nofallback){
                 timeSeparator{""}
             }
         }
-        olck{
+        orya{
             miscPatterns{
+                approximately{""}
                 atLeast{""}
+                atMost{""}
                 range{""}
             }
             patterns{
@@ -15912,9 +16630,11 @@ structLocale:table(nofallback){
                 timeSeparator{""}
             }
         }
-        orya{
+        osma{
             miscPatterns{
+                approximately{""}
                 atLeast{""}
+                atMost{""}
                 range{""}
             }
             patterns{
@@ -16239,9 +16959,11 @@ structLocale:table(nofallback){
                 timeSeparator{""}
             }
         }
-        osma{
+        rohg{
             miscPatterns{
+                approximately{""}
                 atLeast{""}
+                atMost{""}
                 range{""}
             }
             patterns{
@@ -16568,7 +17290,9 @@ structLocale:table(nofallback){
         }
         saur{
             miscPatterns{
+                approximately{""}
                 atLeast{""}
+                atMost{""}
                 range{""}
             }
             patterns{
@@ -16895,7 +17619,9 @@ structLocale:table(nofallback){
         }
         shrd{
             miscPatterns{
+                approximately{""}
                 atLeast{""}
+                atMost{""}
                 range{""}
             }
             patterns{
@@ -17222,7 +17948,9 @@ structLocale:table(nofallback){
         }
         sora{
             miscPatterns{
+                approximately{""}
                 atLeast{""}
+                atMost{""}
                 range{""}
             }
             patterns{
@@ -17549,7 +18277,9 @@ structLocale:table(nofallback){
         }
         sund{
             miscPatterns{
+                approximately{""}
                 atLeast{""}
+                atMost{""}
                 range{""}
             }
             patterns{
@@ -17876,7 +18606,9 @@ structLocale:table(nofallback){
         }
         takr{
             miscPatterns{
+                approximately{""}
                 atLeast{""}
+                atMost{""}
                 range{""}
             }
             patterns{
@@ -18203,7 +18935,9 @@ structLocale:table(nofallback){
         }
         talu{
             miscPatterns{
+                approximately{""}
                 atLeast{""}
+                atMost{""}
                 range{""}
             }
             patterns{
@@ -18530,7 +19264,9 @@ structLocale:table(nofallback){
         }
         tamldec{
             miscPatterns{
+                approximately{""}
                 atLeast{""}
+                atMost{""}
                 range{""}
             }
             patterns{
@@ -18857,7 +19593,9 @@ structLocale:table(nofallback){
         }
         telu{
             miscPatterns{
+                approximately{""}
                 atLeast{""}
+                atMost{""}
                 range{""}
             }
             patterns{
@@ -19184,7 +19922,9 @@ structLocale:table(nofallback){
         }
         thai{
             miscPatterns{
+                approximately{""}
                 atLeast{""}
+                atMost{""}
                 range{""}
             }
             patterns{
@@ -19511,7 +20251,9 @@ structLocale:table(nofallback){
         }
         tibt{
             miscPatterns{
+                approximately{""}
                 atLeast{""}
+                atMost{""}
                 range{""}
             }
             patterns{
@@ -19839,7 +20581,9 @@ structLocale:table(nofallback){
         traditional{""}
         vaii{
             miscPatterns{
+                approximately{""}
                 atLeast{""}
+                atMost{""}
                 range{""}
             }
             patterns{
@@ -23696,6 +24440,44 @@ structLocale:table(nofallback){
                 }
             }
             intervalFormats{
+                Gy{
+                    G{""}
+                    y{""}
+                }
+                GyM{
+                    G{""}
+                    M{""}
+                    y{""}
+                }
+                GyMEd{
+                    G{""}
+                    M{""}
+                    d{""}
+                    y{""}
+                }
+                GyMMM{
+                    G{""}
+                    M{""}
+                    y{""}
+                }
+                GyMMMEd{
+                    G{""}
+                    M{""}
+                    d{""}
+                    y{""}
+                }
+                GyMMMd{
+                    G{""}
+                    M{""}
+                    d{""}
+                    y{""}
+                }
+                GyMd{
+                    G{""}
+                    M{""}
+                    d{""}
+                    y{""}
+                }
                 H{
                     H{""}
                 }
@@ -24140,6 +24922,44 @@ structLocale:table(nofallback){
                 }
             }
             intervalFormats{
+                Gy{
+                    G{""}
+                    y{""}
+                }
+                GyM{
+                    G{""}
+                    M{""}
+                    y{""}
+                }
+                GyMEd{
+                    G{""}
+                    M{""}
+                    d{""}
+                    y{""}
+                }
+                GyMMM{
+                    G{""}
+                    M{""}
+                    y{""}
+                }
+                GyMMMEd{
+                    G{""}
+                    M{""}
+                    d{""}
+                    y{""}
+                }
+                GyMMMd{
+                    G{""}
+                    M{""}
+                    d{""}
+                    y{""}
+                }
+                GyMd{
+                    G{""}
+                    M{""}
+                    d{""}
+                    y{""}
+                }
                 H{
                     H{""}
                 }
@@ -25805,6 +26625,7 @@ structLocale:table(nofallback){
                     "",
                     "",
                     "",
+                    "",
                 }
                 wide{
                     "",
@@ -26043,6 +26864,7 @@ structLocale:table(nofallback){
                     "",
                     "",
                     "",
+                    "",
                 }
                 narrow{
                     "",
@@ -26281,6 +27103,7 @@ structLocale:table(nofallback){
                     "",
                     "",
                     "",
+                    "",
                 }
             }
             intervalFormats{
@@ -26611,12 +27434,30 @@ structLocale:table(nofallback){
             middle{""}
             start{""}
         }
+        or-narrow{
+            2{""}
+            end{""}
+            middle{""}
+            start{""}
+        }
+        or-short{
+            2{""}
+            end{""}
+            middle{""}
+            start{""}
+        }
         standard{
             2{""}
             end{""}
             middle{""}
             start{""}
         }
+        standard-narrow{
+            2{""}
+            end{""}
+            middle{""}
+            start{""}
+        }
         standard-short{
             2{""}
             end{""}
@@ -26671,6 +27512,11 @@ structLocale:table(nofallback){
                 "",
                 "",
                 "",
+                "",
+                "",
+                "",
+                "",
+                "",
             }
         }
         number{
index 0e2ae11..55994d4 100644 (file)
 0360..0361:234
 0362:233
 0363..036F:230
-D802:2  # surrogates with non-zero combining classes
-D803:3
-D804:4
+# ICU 63 normalization with UCPTrie requires inert surrogate code points.
+# D802:2  # surrogates with non-zero combining classes
+# D803:3
+# D804:4
 110B9:9
 110BA:7
 
@@ -58,10 +59,11 @@ D804:4
 00C4=0041 0308
 00C5=0041 030A
 00C7=0043 0327
-D800>D7FF  # surrogates with mappings, and mappings to empty strings
-D801>
-DFFE>
-DFFF>FFFF
+# ICU 63 normalization with UCPTrie requires inert surrogate code points.
+# D800>D7FF  # surrogates with mappings, and mappings to empty strings
+# D801>
+# DFFE>
+# DFFF>FFFF
 E000>
 E001=61 338  # composition with trail<=33FF and composite>7FFF
 E002=E001 308  # recursive mapping needs reordering
index 4367f1f..baabf4f 100644 (file)
@@ -75,7 +75,7 @@
       <CompileAs>Default</CompileAs>
     </ClCompile>
     <Link>
-      <OutputFile>..\..\..\bin\icutest62.dll</OutputFile>
+      <OutputFile>..\..\..\bin\icutest63.dll</OutputFile>
       <AdditionalDependencies>icuuc.lib;icutu.lib;%(AdditionalDependencies)</AdditionalDependencies>
       <AdditionalLibraryDirectories>..\..\..\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
       <ProgramDatabaseFile>.\..\..\..\lib\icutest.pdb</ProgramDatabaseFile>
       <CompileAs>Default</CompileAs>
     </ClCompile>
     <Link>
-      <OutputFile>..\..\..\bin\icutest62d.dll</OutputFile>
+      <OutputFile>..\..\..\bin\icutest63d.dll</OutputFile>
       <AdditionalDependencies>icuucd.lib;icutud.lib;%(AdditionalDependencies)</AdditionalDependencies>
       <AdditionalLibraryDirectories>..\..\..\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
       <GenerateDebugInformation>true</GenerateDebugInformation>
       <CompileAs>Default</CompileAs>
     </ClCompile>
     <Link>
-      <OutputFile>..\..\..\bin64\icutest62.dll</OutputFile>
+      <OutputFile>..\..\..\bin64\icutest63.dll</OutputFile>
       <AdditionalDependencies>icuuc.lib;icutu.lib;%(AdditionalDependencies)</AdditionalDependencies>
       <AdditionalLibraryDirectories>..\..\..\lib64;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
       <ProgramDatabaseFile>.\..\..\..\lib64\icutest.pdb</ProgramDatabaseFile>
       <CompileAs>Default</CompileAs>
     </ClCompile>
     <Link>
-      <OutputFile>..\..\..\bin64\icutest62d.dll</OutputFile>
+      <OutputFile>..\..\..\bin64\icutest63d.dll</OutputFile>
       <AdditionalDependencies>icuucd.lib;icutud.lib;%(AdditionalDependencies)</AdditionalDependencies>
       <AdditionalLibraryDirectories>..\..\..\lib64;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
       <GenerateDebugInformation>true</GenerateDebugInformation>
index 797803c..f4580b1 100644 (file)
@@ -21,13 +21,13 @@ TestLog::~TestLog() {}
 IcuTestErrorCode::~IcuTestErrorCode() {
     // Safe because our errlog() does not throw exceptions.
     if(isFailure()) {
-        errlog(FALSE, nullptr);
+        errlog(FALSE, u"destructor: expected success", nullptr);
     }
 }
 
 UBool IcuTestErrorCode::errIfFailureAndReset() {
     if(isFailure()) {
-        errlog(FALSE, nullptr);
+        errlog(FALSE, u"expected success", nullptr);
         reset();
         return TRUE;
     } else {
@@ -43,7 +43,7 @@ UBool IcuTestErrorCode::errIfFailureAndReset(const char *fmt, ...) {
         va_start(ap, fmt);
         vsprintf(buffer, fmt, ap);
         va_end(ap);
-        errlog(FALSE, buffer);
+        errlog(FALSE, u"expected success", buffer);
         reset();
         return TRUE;
     } else {
@@ -54,7 +54,7 @@ UBool IcuTestErrorCode::errIfFailureAndReset(const char *fmt, ...) {
 
 UBool IcuTestErrorCode::errDataIfFailureAndReset() {
     if(isFailure()) {
-        errlog(TRUE, nullptr);
+        errlog(TRUE, u"data: expected success", nullptr);
         reset();
         return TRUE;
     } else {
@@ -70,7 +70,7 @@ UBool IcuTestErrorCode::errDataIfFailureAndReset(const char *fmt, ...) {
         va_start(ap, fmt);
         vsprintf(buffer, fmt, ap);
         va_end(ap);
-        errlog(TRUE, buffer);
+        errlog(TRUE, u"data: expected success", buffer);
         reset();
         return TRUE;
     } else {
@@ -79,6 +79,29 @@ UBool IcuTestErrorCode::errDataIfFailureAndReset(const char *fmt, ...) {
     }
 }
 
+UBool IcuTestErrorCode::expectErrorAndReset(UErrorCode expectedError) {
+    if(get() != expectedError) {
+        errlog(FALSE, UnicodeString(u"expected: ") + u_errorName(expectedError), nullptr);
+    }
+    UBool retval = isFailure();
+    reset();
+    return retval;
+}
+
+UBool IcuTestErrorCode::expectErrorAndReset(UErrorCode expectedError, const char *fmt, ...) {
+    if(get() != expectedError) {
+        char buffer[4000];
+        va_list ap;
+        va_start(ap, fmt);
+        vsprintf(buffer, fmt, ap);
+        va_end(ap);
+        errlog(FALSE, UnicodeString(u"expected: ") + u_errorName(expectedError), buffer);
+    }
+    UBool retval = isFailure();
+    reset();
+    return retval;
+}
+
 void IcuTestErrorCode::setScope(const char* message) {
     scopeMessage.remove().append({ message, -1, US_INV });
 }
@@ -88,12 +111,13 @@ void IcuTestErrorCode::setScope(const UnicodeString& message) {
 }
 
 void IcuTestErrorCode::handleFailure() const {
-    errlog(FALSE, nullptr);
+    errlog(FALSE, u"(handleFailure)", nullptr);
 }
 
-void IcuTestErrorCode::errlog(UBool dataErr, const char* extraMessage) const {
+void IcuTestErrorCode::errlog(UBool dataErr, const UnicodeString& mainMessage, const char* extraMessage) const {
     UnicodeString msg(testName, -1, US_INV);
-    msg.append(u" failure: ").append(UnicodeString(errorName(), -1, US_INV));
+    msg.append(u' ').append(mainMessage);
+    msg.append(u" but got error: ").append(UnicodeString(errorName(), -1, US_INV));
 
     if (!scopeMessage.isEmpty()) {
         msg.append(u" scope: ").append(scopeMessage);
index 11b1c6e..9db35b9 100644 (file)
@@ -41,6 +41,8 @@ public:
     UBool errIfFailureAndReset(const char *fmt, ...);
     UBool errDataIfFailureAndReset();
     UBool errDataIfFailureAndReset(const char *fmt, ...);
+    UBool expectErrorAndReset(UErrorCode expectedError);
+    UBool expectErrorAndReset(UErrorCode expectedError, const char *fmt, ...);
 
     /** Sets an additional message string to be appended to failure output. */
     void setScope(const char* message);
@@ -54,7 +56,7 @@ private:
     const char *const testName;
     UnicodeString scopeMessage;
 
-    void errlog(UBool dataErr, const char* extraMessage) const;
+    void errlog(UBool dataErr, const UnicodeString& mainMessage, const char* extraMessage) const;
 };
 
 #endif
index c4098c8..1ac9ad3 100644 (file)
@@ -319,7 +319,7 @@ int  main(int argc, char **argv) {
         return NULL;
     }
 
-    long t = fread(result, 1, fileSize, file);
+    long t = static_cast<long>(fread(result, 1, fileSize, file));
     if (t != fileSize)  {
         delete [] result;
         fclose(file);
index 8d2a04c..04ad747 100644 (file)
@@ -965,7 +965,7 @@ createNormalizedAliasStrings(char *normalizedStrings, const char *origStringBloc
         if (currStrLen > 0) {
             int32_t normStrLen;
             ucnv_io_stripForCompare(normalizedStrings, origStringBlock);
-            normStrLen = uprv_strlen(normalizedStrings);
+            normStrLen = (int32_t)uprv_strlen(normalizedStrings);
             if (normStrLen > 0) {
                 uprv_memset(normalizedStrings + normStrLen, 0, currStrSize - normStrLen);
             }
index 2d24d61..bce5336 100644 (file)
@@ -266,6 +266,11 @@ void parseFile(std::ifstream &f, Normalizer2DataBuilder &builder) {
             fprintf(stderr, "gennorm2 error: parsing code point range from %s\n", line);
             exit(errorCode.reset());
         }
+        if (endCP >= 0xd800 && startCP <= 0xdfff) {
+                fprintf(stderr, "gennorm2 error: value or mapping for surrogate code points: %s\n",
+                        line);
+                exit(U_ILLEGAL_ARGUMENT_ERROR);
+        }
         delimiter=u_skipWhitespace(delimiter);
         if(*delimiter==':') {
             const char *s=u_skipWhitespace(delimiter+1);
index 7b8920d..1d38885 100644 (file)
@@ -29,7 +29,9 @@
 #include "unicode/errorcode.h"
 #include "unicode/localpointer.h"
 #include "unicode/putil.h"
+#include "unicode/ucptrie.h"
 #include "unicode/udata.h"
+#include "unicode/umutablecptrie.h"
 #include "unicode/uniset.h"
 #include "unicode/unistr.h"
 #include "unicode/usetiter.h"
@@ -41,7 +43,6 @@
 #include "norms.h"
 #include "toolutil.h"
 #include "unewdata.h"
-#include "utrie2.h"
 #include "uvectr32.h"
 #include "writesrc.h"
 
@@ -58,8 +59,8 @@ static UDataInfo dataInfo={
     0,
 
     { 0x4e, 0x72, 0x6d, 0x32 }, /* dataFormat="Nrm2" */
-    { 3, 0, 0, 0 },             /* formatVersion */
-    { 10, 0, 0, 0 }             /* dataVersion (Unicode version) */
+    { 4, 0, 0, 0 },             /* formatVersion */
+    { 11, 0, 0, 0 }             /* dataVersion (Unicode version) */
 };
 
 U_NAMESPACE_BEGIN
@@ -94,14 +95,14 @@ const HangulIterator::Range HangulIterator::ranges[4]={
 Normalizer2DataBuilder::Normalizer2DataBuilder(UErrorCode &errorCode) :
         norms(errorCode),
         phase(0), overrideHandling(OVERRIDE_PREVIOUS), optimization(OPTIMIZE_NORMAL),
-        norm16Trie(nullptr), norm16TrieLength(0) {
+        norm16TrieBytes(nullptr), norm16TrieLength(0) {
     memset(unicodeVersion, 0, sizeof(unicodeVersion));
     memset(indexes, 0, sizeof(indexes));
     memset(smallFCD, 0, sizeof(smallFCD));
 }
 
 Normalizer2DataBuilder::~Normalizer2DataBuilder() {
-    utrie2_close(norm16Trie);
+    delete[] norm16TrieBytes;
 }
 
 void
@@ -407,11 +408,13 @@ void Normalizer2DataBuilder::postProcess(Norm &norm) {
 
 class Norm16Writer : public Norms::Enumerator {
 public:
-    Norm16Writer(Norms &n, Normalizer2DataBuilder &b) : Norms::Enumerator(n), builder(b) {}
+    Norm16Writer(UMutableCPTrie *trie, Norms &n, Normalizer2DataBuilder &b) :
+            Norms::Enumerator(n), builder(b), norm16Trie(trie) {}
     void rangeHandler(UChar32 start, UChar32 end, Norm &norm) U_OVERRIDE {
-        builder.writeNorm16(start, end, norm);
+        builder.writeNorm16(norm16Trie, start, end, norm);
     }
     Normalizer2DataBuilder &builder;
+    UMutableCPTrie *norm16Trie;
 };
 
 void Normalizer2DataBuilder::setSmallFCD(UChar32 c) {
@@ -419,7 +422,7 @@ void Normalizer2DataBuilder::setSmallFCD(UChar32 c) {
     smallFCD[lead>>8]|=(uint8_t)1<<((lead>>5)&7);
 }
 
-void Normalizer2DataBuilder::writeNorm16(UChar32 start, UChar32 end, Norm &norm) {
+void Normalizer2DataBuilder::writeNorm16(UMutableCPTrie *norm16Trie, UChar32 start, UChar32 end, Norm &norm) {
     if((norm.leadCC|norm.trailCC)!=0) {
         for(UChar32 c=start; c<=end; ++c) {
             setSmallFCD(c);
@@ -484,7 +487,7 @@ void Normalizer2DataBuilder::writeNorm16(UChar32 start, UChar32 end, Norm &norm)
         norm16|=Normalizer2Impl::HAS_COMP_BOUNDARY_AFTER;
     }
     IcuToolErrorCode errorCode("gennorm2/writeNorm16()");
-    utrie2_setRange32(norm16Trie, start, end, (uint32_t)norm16, TRUE, errorCode);
+    umutablecptrie_setRange(norm16Trie, start, end, (uint32_t)norm16, errorCode);
 
     // Set the minimum code points for real data lookups in the quick check loops.
     UBool isDecompNo=
@@ -502,13 +505,13 @@ void Normalizer2DataBuilder::writeNorm16(UChar32 start, UChar32 end, Norm &norm)
     }
 }
 
-void Normalizer2DataBuilder::setHangulData() {
+void Normalizer2DataBuilder::setHangulData(UMutableCPTrie *norm16Trie) {
     HangulIterator hi;
     const HangulIterator::Range *range;
     // Check that none of the Hangul/Jamo code points have data.
     while((range=hi.nextRange())!=NULL) {
         for(UChar32 c=range->start; c<=range->end; ++c) {
-            if(utrie2_get32(norm16Trie, c)>Normalizer2Impl::INERT) {
+            if(umutablecptrie_get(norm16Trie, c)>Normalizer2Impl::INERT) {
                 fprintf(stderr,
                         "gennorm2 error: "
                         "illegal mapping/composition/ccc data for Hangul or Jamo U+%04lX\n",
@@ -524,13 +527,13 @@ void Normalizer2DataBuilder::setHangulData() {
     if(Hangul::JAMO_V_BASE<indexes[Normalizer2Impl::IX_MIN_COMP_NO_MAYBE_CP]) {
         indexes[Normalizer2Impl::IX_MIN_COMP_NO_MAYBE_CP]=Hangul::JAMO_V_BASE;
     }
-    utrie2_setRange32(norm16Trie, Hangul::JAMO_L_BASE, Hangul::JAMO_L_END,
-                      Normalizer2Impl::JAMO_L, TRUE, errorCode);
-    utrie2_setRange32(norm16Trie, Hangul::JAMO_V_BASE, Hangul::JAMO_V_END,
-                      Normalizer2Impl::JAMO_VT, TRUE, errorCode);
+    umutablecptrie_setRange(norm16Trie, Hangul::JAMO_L_BASE, Hangul::JAMO_L_END,
+                            Normalizer2Impl::JAMO_L, errorCode);
+    umutablecptrie_setRange(norm16Trie, Hangul::JAMO_V_BASE, Hangul::JAMO_V_END,
+                            Normalizer2Impl::JAMO_VT, errorCode);
     // JAMO_T_BASE+1: not U+11A7
-    utrie2_setRange32(norm16Trie, Hangul::JAMO_T_BASE+1, Hangul::JAMO_T_END,
-                      Normalizer2Impl::JAMO_VT, TRUE, errorCode);
+    umutablecptrie_setRange(norm16Trie, Hangul::JAMO_T_BASE+1, Hangul::JAMO_T_END,
+                            Normalizer2Impl::JAMO_VT, errorCode);
 
     // Hangul LV encoded as minYesNo
     uint32_t lv=indexes[Normalizer2Impl::IX_MIN_YES_NO];
@@ -542,49 +545,16 @@ void Normalizer2DataBuilder::setHangulData() {
     }
     // Set the first LV, then write all other Hangul syllables as LVT,
     // then overwrite the remaining LV.
-    // The UTrie2 should be able to compact this into 7 32-item blocks
-    // because JAMO_T_COUNT is 28 and the UTrie2 granularity is 4.
-    // (7*32=8*28 smallest common multiple)
-    utrie2_set32(norm16Trie, Hangul::HANGUL_BASE, lv, errorCode);
-    utrie2_setRange32(norm16Trie, Hangul::HANGUL_BASE+1, Hangul::HANGUL_END,
-                      lvt, TRUE, errorCode);
+    umutablecptrie_set(norm16Trie, Hangul::HANGUL_BASE, lv, errorCode);
+    umutablecptrie_setRange(norm16Trie, Hangul::HANGUL_BASE+1, Hangul::HANGUL_END, lvt, errorCode);
     UChar32 c=Hangul::HANGUL_BASE;
     while((c+=Hangul::JAMO_T_COUNT)<=Hangul::HANGUL_END) {
-        utrie2_set32(norm16Trie, c, lv, errorCode);
+        umutablecptrie_set(norm16Trie, c, lv, errorCode);
     }
     errorCode.assertSuccess();
 }
 
-namespace {
-
-struct Norm16Summary {
-    uint32_t maxNorm16;
-    // ANDing values yields 0 bits where any value has a 0.
-    // Used for worst-case HAS_COMP_BOUNDARY_AFTER.
-    uint32_t andedNorm16;
-};
-
-}  // namespace
-
-U_CDECL_BEGIN
-
-static UBool U_CALLCONV
-enumRangeMaxValue(const void *context, UChar32 /*start*/, UChar32 /*end*/, uint32_t value) {
-    Norm16Summary *p=(Norm16Summary *)context;
-    if(value>p->maxNorm16) {
-        p->maxNorm16=value;
-    }
-    p->andedNorm16&=value;
-    return TRUE;
-}
-
-U_CDECL_END
-
-void Normalizer2DataBuilder::processData() {
-    IcuToolErrorCode errorCode("gennorm2/processData()");
-    norm16Trie=utrie2_open(Normalizer2Impl::INERT, Normalizer2Impl::INERT, errorCode);
-    errorCode.assertSuccess();
-
+LocalUCPTriePointer Normalizer2DataBuilder::processData() {
     // Build composition lists before recursive decomposition,
     // so that we still have the raw, pair-wise mappings.
     CompositionBuilder compBuilder(norms);
@@ -652,13 +622,19 @@ void Normalizer2DataBuilder::processData() {
     indexes[Normalizer2Impl::IX_MIN_COMP_NO_MAYBE_CP]=0x110000;
     indexes[Normalizer2Impl::IX_MIN_LCCC_CP]=0x110000;
 
+    IcuToolErrorCode errorCode("gennorm2/processData()");
+    UMutableCPTrie *norm16Trie = umutablecptrie_open(
+        Normalizer2Impl::INERT, Normalizer2Impl::INERT, errorCode);
+    errorCode.assertSuccess();
+
     // Map each code point to its norm16 value,
     // including the properties that fit directly,
     // and the offset to the "extra data" if necessary.
-    Norm16Writer norm16Writer(norms, *this);
+    Norm16Writer norm16Writer(norm16Trie, norms, *this);
     norms.enumRanges(norm16Writer);
+    // TODO: iterate via getRange() instead of callback?
 
-    setHangulData();
+    setHangulData(norm16Trie);
 
     // Look for the "worst" norm16 value of any supplementary code point
     // corresponding to a lead surrogate, and set it as that surrogate's value.
@@ -670,22 +646,63 @@ void Normalizer2DataBuilder::processData() {
     // and select the best value that only breaks the composition and/or decomposition
     // inner loops if necessary.
     // However, that seems like overkill for an optimization for supplementary characters.
-    for(UChar lead=0xd800; lead<0xdc00; ++lead) {
-        uint32_t surrogateCPNorm16=utrie2_get32(norm16Trie, lead);
-        Norm16Summary summary={ surrogateCPNorm16, surrogateCPNorm16 };
-        utrie2_enumForLeadSurrogate(norm16Trie, lead, NULL, enumRangeMaxValue, &summary);
-        uint32_t norm16=summary.maxNorm16;
-        if(norm16>=(uint32_t)indexes[Normalizer2Impl::IX_LIMIT_NO_NO] &&
-                norm16>(uint32_t)indexes[Normalizer2Impl::IX_MIN_NO_NO]) {
-            // Set noNo ("worst" value) if it got into "less-bad" maybeYes or ccc!=0.
-            // Otherwise it might end up at something like JAMO_VT which stays in
-            // the inner decomposition quick check loop.
-            norm16=(uint32_t)indexes[Normalizer2Impl::IX_LIMIT_NO_NO]-1;
+    //
+    // First check that surrogate code *points* are inert.
+    // The parser should have rejected values/mappings for them.
+    uint32_t value;
+    UChar32 end = umutablecptrie_getRange(norm16Trie, 0xd800, UCPMAP_RANGE_NORMAL, 0,
+                                          nullptr, nullptr, &value);
+    if (value != Normalizer2Impl::INERT || end < 0xdfff) {
+        fprintf(stderr,
+                "gennorm2 error: not all surrogate code points are inert: U+d800..U+%04x=%lx\n",
+                (int)end, (long)value);
+        exit(U_INTERNAL_PROGRAM_ERROR);
+    }
+    uint32_t maxNorm16 = 0;
+    // ANDing values yields 0 bits where any value has a 0.
+    // Used for worst-case HAS_COMP_BOUNDARY_AFTER.
+    uint32_t andedNorm16 = 0;
+    end = 0;
+    for (UChar32 start = 0x10000;;) {
+        if (start > end) {
+            end = umutablecptrie_getRange(norm16Trie, start, UCPMAP_RANGE_NORMAL, 0,
+                                          nullptr, nullptr, &value);
+            if (end < 0) { break; }
+        }
+        if ((start & 0x3ff) == 0) {
+            // Data for a new lead surrogate.
+            maxNorm16 = andedNorm16 = value;
+        } else {
+            if (value > maxNorm16) {
+                maxNorm16 = value;
+            }
+            andedNorm16 &= value;
+        }
+        // Intersect each range with the code points for one lead surrogate.
+        UChar32 leadEnd = start | 0x3ff;
+        if (leadEnd <= end) {
+            // End of the supplementary block for a lead surrogate.
+            if (maxNorm16 >= (uint32_t)indexes[Normalizer2Impl::IX_LIMIT_NO_NO]) {
+                // Set noNo ("worst" value) if it got into "less-bad" maybeYes or ccc!=0.
+                // Otherwise it might end up at something like JAMO_VT which stays in
+                // the inner decomposition quick check loop.
+                maxNorm16 = (uint32_t)indexes[Normalizer2Impl::IX_LIMIT_NO_NO];
+            }
+            maxNorm16 =
+                (maxNorm16 & ~Normalizer2Impl::HAS_COMP_BOUNDARY_AFTER)|
+                (andedNorm16 & Normalizer2Impl::HAS_COMP_BOUNDARY_AFTER);
+            if (maxNorm16 != Normalizer2Impl::INERT) {
+                umutablecptrie_set(norm16Trie, U16_LEAD(start), maxNorm16, errorCode);
+            }
+            if (value == Normalizer2Impl::INERT) {
+                // Potentially skip inert supplementary blocks for several lead surrogates.
+                start = (end + 1) & ~0x3ff;
+            } else {
+                start = leadEnd + 1;
+            }
+        } else {
+            start = end + 1;
         }
-        norm16=
-            (norm16&~Normalizer2Impl::HAS_COMP_BOUNDARY_AFTER)|
-            (summary.andedNorm16&Normalizer2Impl::HAS_COMP_BOUNDARY_AFTER);
-        utrie2_set32ForLeadSurrogateCodeUnit(norm16Trie, lead, norm16, errorCode);
     }
 
     // Adjust supplementary minimum code points to break quick check loops at their lead surrogates.
@@ -705,14 +722,19 @@ void Normalizer2DataBuilder::processData() {
         indexes[Normalizer2Impl::IX_MIN_LCCC_CP]=U16_LEAD(minCP);
     }
 
-    utrie2_freeze(norm16Trie, UTRIE2_16_VALUE_BITS, errorCode);
-    norm16TrieLength=utrie2_serialize(norm16Trie, NULL, 0, errorCode);
+    LocalUCPTriePointer builtTrie(
+        umutablecptrie_buildImmutable(norm16Trie, UCPTRIE_TYPE_FAST, UCPTRIE_VALUE_BITS_16, errorCode));
+    norm16TrieLength=ucptrie_toBinary(builtTrie.getAlias(), nullptr, 0, errorCode);
     if(errorCode.get()!=U_BUFFER_OVERFLOW_ERROR) {
-        fprintf(stderr, "gennorm2 error: unable to freeze/serialize the normalization trie - %s\n",
+        fprintf(stderr, "gennorm2 error: unable to build/serialize the normalization trie - %s\n",
                 errorCode.errorName());
         exit(errorCode.reset());
     }
+    umutablecptrie_close(norm16Trie);
     errorCode.reset();
+    norm16TrieBytes=new uint8_t[norm16TrieLength];
+    ucptrie_toBinary(builtTrie.getAlias(), norm16TrieBytes, norm16TrieLength, errorCode);
+    errorCode.assertSuccess();
 
     int32_t offset=(int32_t)sizeof(indexes);
     indexes[Normalizer2Impl::IX_NORM_TRIE_OFFSET]=offset;
@@ -750,16 +772,13 @@ void Normalizer2DataBuilder::processData() {
         u_versionFromString(unicodeVersion, U_UNICODE_VERSION);
     }
     memcpy(dataInfo.dataVersion, unicodeVersion, 4);
+    return builtTrie;
 }
 
 void Normalizer2DataBuilder::writeBinaryFile(const char *filename) {
     processData();
 
     IcuToolErrorCode errorCode("gennorm2/writeBinaryFile()");
-    LocalArray<uint8_t> norm16TrieBytes(new uint8_t[norm16TrieLength]);
-    utrie2_serialize(norm16Trie, norm16TrieBytes.getAlias(), norm16TrieLength, errorCode);
-    errorCode.assertSuccess();
-
     UNewDataMemory *pData=
         udata_create(NULL, NULL, filename, &dataInfo,
                      haveCopyright ? U_COPYRIGHT_STRING : NULL, errorCode);
@@ -769,7 +788,7 @@ void Normalizer2DataBuilder::writeBinaryFile(const char *filename) {
         exit(errorCode.reset());
     }
     udata_writeBlock(pData, indexes, sizeof(indexes));
-    udata_writeBlock(pData, norm16TrieBytes.getAlias(), norm16TrieLength);
+    udata_writeBlock(pData, norm16TrieBytes, norm16TrieLength);
     udata_writeUString(pData, toUCharPtr(extraData.getBuffer()), extraData.length());
     udata_writeBlock(pData, smallFCD, sizeof(smallFCD));
     int32_t writtenSize=udata_finish(pData, errorCode);
@@ -787,7 +806,7 @@ void Normalizer2DataBuilder::writeBinaryFile(const char *filename) {
 
 void
 Normalizer2DataBuilder::writeCSourceFile(const char *filename) {
-    processData();
+    LocalUCPTriePointer norm16Trie = processData();
 
     IcuToolErrorCode errorCode("gennorm2/writeCSourceFile()");
     const char *basename=findBasename(filename);
@@ -797,54 +816,33 @@ Normalizer2DataBuilder::writeCSourceFile(const char *filename) {
     if(extension!=NULL) {
         dataName.truncate((int32_t)(extension-basename));
     }
+    const char *name=dataName.data();
     errorCode.assertSuccess();
 
-    LocalArray<uint8_t> norm16TrieBytes(new uint8_t[norm16TrieLength]);
-    utrie2_serialize(norm16Trie, norm16TrieBytes.getAlias(), norm16TrieLength, errorCode);
-    errorCode.assertSuccess();
-
-    FILE *f=usrc_create(path.data(), basename, "icu/source/tools/gennorm2/n2builder.cpp");
+    FILE *f=usrc_create(path.data(), basename, 2016, "icu/source/tools/gennorm2/n2builder.cpp");
     if(f==NULL) {
         fprintf(stderr, "gennorm2/writeCSourceFile() error: unable to create the output file %s\n",
                 filename);
         exit(U_FILE_ACCESS_ERROR);
-        return;
     }
     fputs("#ifdef INCLUDED_FROM_NORMALIZER2_CPP\n\n", f);
+
     char line[100];
-    sprintf(line, "static const UVersionInfo %s_formatVersion={", dataName.data());
+    sprintf(line, "static const UVersionInfo %s_formatVersion={", name);
     usrc_writeArray(f, line, dataInfo.formatVersion, 8, 4, "};\n");
-    sprintf(line, "static const UVersionInfo %s_dataVersion={", dataName.data());
+    sprintf(line, "static const UVersionInfo %s_dataVersion={", name);
     usrc_writeArray(f, line, dataInfo.dataVersion, 8, 4, "};\n\n");
-    sprintf(line, "static const int32_t %s_indexes[Normalizer2Impl::IX_COUNT]={\n",
-            dataName.data());
-    usrc_writeArray(f,
-        line,
-        indexes, 32, Normalizer2Impl::IX_COUNT,
-        "\n};\n\n");
-    sprintf(line, "static const uint16_t %s_trieIndex[%%ld]={\n", dataName.data());
-    usrc_writeUTrie2Arrays(f,
-        line, NULL,
-        norm16Trie,
-        "\n};\n\n");
-    sprintf(line, "static const uint16_t %s_extraData[%%ld]={\n", dataName.data());
-    usrc_writeArray(f,
-        line,
-        extraData.getBuffer(), 16, extraData.length(),
-        "\n};\n\n");
-    sprintf(line, "static const uint8_t %s_smallFCD[%%ld]={\n", dataName.data());
-    usrc_writeArray(f,
-        line,
-        smallFCD, 8, sizeof(smallFCD),
-        "\n};\n\n");
-    sprintf(line, "static const UTrie2 %s_trie={\n", dataName.data());
-    char line2[100];
-    sprintf(line2, "%s_trieIndex", dataName.data());
-    usrc_writeUTrie2Struct(f,
-        line,
-        norm16Trie, line2, NULL,
-        "};\n");
-    fputs("\n#endif  // INCLUDED_FROM_NORMALIZER2_CPP\n", f);
+    sprintf(line, "static const int32_t %s_indexes[Normalizer2Impl::IX_COUNT]={\n", name);
+    usrc_writeArray(f, line, indexes, 32, Normalizer2Impl::IX_COUNT, "\n};\n\n");
+
+    usrc_writeUCPTrie(f, name, norm16Trie.getAlias());
+
+    sprintf(line, "static const uint16_t %s_extraData[%%ld]={\n", name);
+    usrc_writeArray(f, line, extraData.getBuffer(), 16, extraData.length(), "\n};\n\n");
+    sprintf(line, "static const uint8_t %s_smallFCD[%%ld]={\n", name);
+    usrc_writeArray(f, line, smallFCD, 8, sizeof(smallFCD), "\n};\n\n");
+
+    fputs("#endif  // INCLUDED_FROM_NORMALIZER2_CPP\n", f);
     fclose(f);
 }
 
index 61b36be..77b4fef 100644 (file)
 #if !UCONFIG_NO_NORMALIZATION
 
 #include "unicode/errorcode.h"
+#include "unicode/umutablecptrie.h"
 #include "unicode/unistr.h"
 #include "normalizer2impl.h"  // for IX_COUNT
 #include "toolutil.h"
-#include "utrie2.h"
 #include "norms.h"
 
 U_NAMESPACE_BEGIN
@@ -95,9 +95,9 @@ private:
         return indexes[Normalizer2Impl::IX_MIN_MAYBE_YES]-
             ((2*Normalizer2Impl::MAX_DELTA+1)<<Normalizer2Impl::DELTA_SHIFT);
     }
-    void writeNorm16(UChar32 start, UChar32 end, Norm &norm);
-    void setHangulData();
-    void processData();
+    void writeNorm16(UMutableCPTrie *norm16Trie, UChar32 start, UChar32 end, Norm &norm);
+    void setHangulData(UMutableCPTrie *norm16Trie);
+    LocalUCPTriePointer processData();
 
     Norms norms;
 
@@ -107,7 +107,7 @@ private:
     Optimization optimization;
 
     int32_t indexes[Normalizer2Impl::IX_COUNT];
-    UTrie2 *norm16Trie;
+    uint8_t *norm16TrieBytes;
     int32_t norm16TrieLength;
     UnicodeString extraData;
     uint8_t smallFCD[0x100];
index f0fb291..96692f2 100644 (file)
 #include <stdio.h>
 #include <stdlib.h>
 #include "unicode/errorcode.h"
+#include "unicode/umutablecptrie.h"
 #include "unicode/unistr.h"
 #include "unicode/utf16.h"
 #include "normalizer2impl.h"
 #include "norms.h"
 #include "toolutil.h"
-#include "utrie2.h"
 #include "uvectr32.h"
 
 U_NAMESPACE_BEGIN
@@ -67,7 +67,7 @@ UChar32 Norm::combine(UChar32 trail) const {
 }
 
 Norms::Norms(UErrorCode &errorCode) {
-    normTrie=utrie2_open(0, 0, &errorCode);
+    normTrie = umutablecptrie_open(0, 0, &errorCode);
     normMem=utm_open("gennorm2 normalization structs", 10000, 0x110100, sizeof(Norm));
     // Default "inert" Norm struct at index 0. Practically immutable.
     norms=allocNorm();
@@ -75,7 +75,7 @@ Norms::Norms(UErrorCode &errorCode) {
 }
 
 Norms::~Norms() {
-    utrie2_close(normTrie);
+    umutablecptrie_close(normTrie);
     int32_t normsLength=utm_countItems(normMem);
     for(int32_t i=1; i<normsLength; ++i) {
         delete norms[i].mapping;
@@ -92,7 +92,7 @@ Norm *Norms::allocNorm() {
 }
 
 Norm *Norms::getNorm(UChar32 c) {
-    uint32_t i=utrie2_get32(normTrie, c);
+    uint32_t i = umutablecptrie_get(normTrie, c);
     if(i==0) {
         return nullptr;
     }
@@ -100,7 +100,7 @@ Norm *Norms::getNorm(UChar32 c) {
 }
 
 const Norm *Norms::getNorm(UChar32 c) const {
-    uint32_t i=utrie2_get32(normTrie, c);
+    uint32_t i = umutablecptrie_get(normTrie, c);
     if(i==0) {
         return nullptr;
     }
@@ -108,18 +108,18 @@ const Norm *Norms::getNorm(UChar32 c) const {
 }
 
 const Norm &Norms::getNormRef(UChar32 c) const {
-    return norms[utrie2_get32(normTrie, c)];
+    return norms[umutablecptrie_get(normTrie, c)];
 }
 
 Norm *Norms::createNorm(UChar32 c) {
-    uint32_t i=utrie2_get32(normTrie, c);
+    uint32_t i=umutablecptrie_get(normTrie, c);
     if(i!=0) {
         return norms+i;
     } else {
         /* allocate Norm */
         Norm *p=allocNorm();
         IcuToolErrorCode errorCode("gennorm2/createNorm()");
-        utrie2_set32(normTrie, c, (uint32_t)(p-norms), errorCode);
+        umutablecptrie_set(normTrie, c, (uint32_t)(p - norms), errorCode);
         return p;
     }
 }
@@ -153,28 +153,20 @@ UBool Norms::combinesWithCCBetween(const Norm &norm, uint8_t lowCC, int32_t high
     return FALSE;
 }
 
-U_CDECL_BEGIN
-
-static UBool U_CALLCONV
-enumRangeHandler(const void *context, UChar32 start, UChar32 end, uint32_t value) {
-    return ((Norms::Enumerator *)context)->rangeHandler(start, end, value);
-}
-
-U_CDECL_END
-
 void Norms::enumRanges(Enumerator &e) {
-    utrie2_enum(normTrie, nullptr, enumRangeHandler, &e);
+    UChar32 start = 0, end;
+    uint32_t i;
+    while ((end = umutablecptrie_getRange(normTrie, start, UCPMAP_RANGE_NORMAL, 0,
+                                          nullptr, nullptr, &i)) >= 0) {
+        if (i > 0) {
+            e.rangeHandler(start, end, norms[i]);
+        }
+        start = end + 1;
+    }
 }
 
 Norms::Enumerator::~Enumerator() {}
 
-UBool Norms::Enumerator::rangeHandler(UChar32 start, UChar32 end, uint32_t value) {
-    if(value!=0) {
-        rangeHandler(start, end, norms.getNormRefByIndex(value));
-    }
-    return TRUE;
-}
-
 void CompositionBuilder::rangeHandler(UChar32 start, UChar32 end, Norm &norm) {
     if(norm.mappingType!=Norm::ROUND_TRIP) { return; }
     if(start!=end) {
index 4bf6e76..5684e65 100644 (file)
 #if !UCONFIG_NO_NORMALIZATION
 
 #include "unicode/errorcode.h"
+#include "unicode/umutablecptrie.h"
 #include "unicode/uniset.h"
 #include "unicode/unistr.h"
 #include "unicode/utf16.h"
 #include "normalizer2impl.h"
 #include "toolutil.h"
-#include "utrie2.h"
 #include "uvectr32.h"
 
 U_NAMESPACE_BEGIN
@@ -176,8 +176,6 @@ public:
         virtual ~Enumerator();
         /** Called for enumerated value!=0. */
         virtual void rangeHandler(UChar32 start, UChar32 end, Norm &norm) = 0;
-        /** @internal Public only for C callback. */
-        UBool rangeHandler(UChar32 start, UChar32 end, uint32_t value);
     protected:
         Norms &norms;
     };
@@ -190,7 +188,7 @@ private:
     Norms(const Norms &other) = delete;
     Norms &operator=(const Norms &other) = delete;
 
-    UTrie2 *normTrie;
+    UMutableCPTrie *normTrie;
     UToolMemory *normMem;
     Norm *norms;
 };
index 465c099..44eb0c0 100644 (file)
@@ -1018,6 +1018,11 @@ addCollation(ParseState* state, TableResource  *result, const char *collationTyp
             icu::CollationInfo::printReorderRanges(
                     *t->data, t->settings->reorderCodes, t->settings->reorderCodesLength);
         }
+#if 0  // debugging output
+    } else {
+        printf("%s~%s collation tailoring part sizes:\n", state->filename, collationType);
+        icu::CollationInfo::printSizes(totalSize, indexes);
+#endif
     }
     struct SResource *collationBin = bin_open(state->bundle, "%%CollationBin", totalSize, dest, NULL, NULL, status);
     result->add(collationBin, line, *status);
index 2e04bbc..0493347 100644 (file)
@@ -1395,7 +1395,7 @@ SRBRoot::compactKeys(UErrorCode &errorCode) {
                 int32_t offset;
                 suffix = keys + map[j].oldpos;
                 for (suffixLimit = suffix; *suffixLimit != 0; ++suffixLimit) {}
-                offset = (int32_t)(keyLimit - key) - (suffixLimit - suffix);
+                offset = static_cast<int32_t>((keyLimit - key) - (suffixLimit - suffix));
                 if (offset < 0) {
                     break;  /* suffix cannot be longer than the original */
                 }
index 8859a27..f85b96a 100755 (executable)
@@ -106,6 +106,9 @@ print HEADER <<"EndOfHeaderComment";
 
 #if !U_DISABLE_RENAMING
 
+// Disable Renaming for Visual Studio's IntelliSense feature, so that 'Go-to-Definition' (F12) will work.
+#if !(defined(_MSC_VER) && defined(__INTELLISENSE__))
+
 /* We need the U_ICU_ENTRY_POINT_RENAME definition. There's a default one in unicode/uvernum.h we can use, but we will give
    the platform a chance to define it first.
    Normally (if utypes.h or umachine.h was included first) this will not be necessary as it will already be defined.
@@ -236,8 +239,15 @@ foreach(sort keys(%CFuncs)) {
 #    print HEADER "#define $_ $_$U_ICU_VERSION_SUFFIX\n";
 }
 
-print HEADER "\n#endif\n";
-print HEADER "\n#endif\n";
+
+print HEADER <<"EndOfHeaderFooter";
+
+#endif /* !(defined(_MSC_VER) && defined(__INTELLISENSE__)) */
+#endif /* U_DISABLE_RENAMING */
+#endif /* URENAME_H */
+
+EndOfHeaderFooter
+
 
 close HEADER;
 
index e346637..a9c9efa 100644 (file)
@@ -355,7 +355,7 @@ strprepProfileLineFn(void *context,
     if (*s == '@') {
         /* special directive */
         s++;
-        length = fields[0][1] - s;
+        length = (int32_t)(fields[0][1] - s);
         if (length >= NORMALIZE_DIRECTIVE_LEN
             && uprv_strncmp(s, NORMALIZE_DIRECTIVE, NORMALIZE_DIRECTIVE_LEN) == 0) {
             options[NORMALIZE].doesOccur = TRUE;
diff --git a/source/tools/icu-file-utf8-check.py b/source/tools/icu-file-utf8-check.py
new file mode 100755 (executable)
index 0000000..41b5a7b
--- /dev/null
@@ -0,0 +1,104 @@
+#! /usr/bin/python -B
+
+# Copyright (C) 2016 and later: Unicode, Inc. and others.
+# License & terms of use: http://www.unicode.org/copyright.html
+
+# Copyright (C) 2009-2011, International Business Machines Corporation, Google and Others.
+# All rights reserved.
+
+#
+#  Script to check that ICU source files contain only valid UTF-8 encoded text,
+#  and that all files except '.txt' files do not contain a Byte Order Mark (BOM).
+#
+#  THIS SCRIPT DOES NOT WORK ON WINDOWS
+#     It only works correctly on platforms where the native line ending is a plain \n
+#
+#  usage:
+#     icu-file-utf8-check.py  [options]
+#
+#  options:
+#     -h | --help    Print a usage line and exit.
+#
+#  The tool operates recursively on the directory from which it is run.
+#  Only files from the ICU github repository are checked.
+#  No changes are made to the repository; only the working copy will be altered.
+
+import sys
+import os
+import os.path
+import re
+import getopt
+
+
+def runCommand(cmd):
+    output_file = os.popen(cmd);
+    output_text = output_file.read();
+    exit_status = output_file.close();
+    if exit_status:
+        print >>sys.stderr, '"', cmd, '" failed.  Exiting.'
+        sys.exit(exit_status)
+    return output_text
+
+
+def usage():
+    print "usage: " + sys.argv[0] + " [-h | --help]"
+
+    
+#
+#  File check.         Check source code files for UTF-8 and all except text files for not containing a BOM
+#    file_name:        name of a text file.
+#    is_source:        Flag, set to True if file is a source code file (.c, .cpp, .h, .java).
+#
+def check_file(file_name, is_source):
+    f = open(file_name, 'r')
+    bytes = f.read()
+    f.close()
+
+    if is_source:
+        try:
+            bytes.decode("UTF-8")
+        except UnicodeDecodeError:
+            print "Error: %s is a source code file but contains non-utf-8 bytes." % file_name
+    
+    if ord(bytes[0]) == 0xef:
+        if not (file_name.endswith(".txt") or file_name.endswith(".sln")
+                    or file_name.endswith(".targets")
+                    or ".vcxproj" in file_name):
+            print "Warning: file %s contains a UTF-8 BOM: " % file_name
+
+    return
+
+def main(argv):
+    try:
+        opts, args = getopt.getopt(argv, "h", ("help"))
+    except getopt.GetoptError:
+        print "unrecognized option: " + argv[0]
+        usage()
+        sys.exit(2)
+    for opt, arg in opts:
+        if opt in ("-h", "--help"):
+            usage()
+            sys.exit()
+    if args:
+        print "unexpected command line argument"
+        usage()
+        sys.exit()
+
+    output = runCommand("git ls-files ");
+    file_list = output.splitlines()
+
+    source_file_re = re.compile(".*((?:\\.c$)|(?:\\.cpp$)|(?:\\.h$)|(?:\\.java$))")
+    
+    for f in file_list:
+        if os.path.isdir(f):
+            print "Skipping dir " + f
+            continue
+        if not os.path.isfile(f):
+            print "Repository file not in working copy: " + f
+            continue;
+
+        source_file = source_file_re.match(f)
+        check_file(f, source_file)
+
+if __name__ == "__main__":
+    main(sys.argv[1:])
diff --git a/source/tools/icu-svnprops-check.py b/source/tools/icu-svnprops-check.py
deleted file mode 100755 (executable)
index b0e86b3..0000000
+++ /dev/null
@@ -1,189 +0,0 @@
-#! /usr/bin/python
-
-# Copyright (C) 2016 and later: Unicode, Inc. and others.
-# License & terms of use: http://www.unicode.org/copyright.html
-
-# Copyright (C) 2009-2011, International Business Machines Corporation, Google and Others.
-# All rights reserved.
-
-#
-#  Script to check and fix svn property settings for ICU source files.
-#  Also check for the correct line endings on files with svn:eol-style = native
-#
-#  THIS SCRIPT DOES NOT WORK ON WINDOWS
-#     It only works correctly on platforms where the native line ending is a plain \n
-#
-#  usage:
-#     icu-svnprops-check.py  [options]
-#
-#  options:
-#     -f | --fix     Fix any problems that are found
-#     -h | --help    Print a usage line and exit.
-#
-#  The tool operates recursively on the directory from which it is run.
-#  Only files from the svn repository are checked.
-#  No changes are made to the repository; only the working copy will be altered.
-
-import sys
-import os
-import os.path
-import re
-import getopt
-
-
-# file_types:  The parsed form of the svn auto-props specification.
-#              A list of file types - .cc, .cpp, .txt, etc.
-#              each element is a [type, proplist]
-#              "type" is a regular expression string that will match a file name
-#              prop list is another list, one element per property.
-#              Each property item is a two element list, [prop name, prop value]
-file_types = list()
-
-def parse_auto_props():
-    aprops = svn_auto_props.splitlines()
-    for propline in aprops:
-        if re.match("\s*(#.*)?$", propline):         # Match comment and blank lines
-            continue
-        if re.match("\s*\[auto-props\]", propline):  # Match the [auto-props] line.
-            continue
-        if not re.match("\s*[^\s]+\s*=", propline):  # minimal syntax check for <file-type> =
-            print "Bad line from autoprops definitions: " + propline
-            continue
-        file_type, string_proplist = propline.split("=", 1)
-
-        #transform the file type expression from autoprops into a normal regular expression.
-        #  e.g.  "*.cpp"  ==>  ".*\.cpp$"
-        file_type = file_type.strip()
-        file_type = file_type.replace(".", "\.")
-        file_type = file_type.replace("*", ".*")
-        file_type = file_type + "$"
-
-        # example string_proplist at this point: " svn:eol-style=native;svn:executable"
-        # split on ';' into a list of properties.  The negative lookahead and lookbehind
-        # in the split regexp are to prevent matching on ';;', which is an escaped ';'
-        # within a property value.
-        string_proplist = re.split("(?<!;);(?!;)", string_proplist)
-        proplist = list()
-        for prop in string_proplist:
-            if prop.find("=") >= 0:
-                prop_name, prop_val = prop.split("=", 1)
-            else:
-                # properties with no explicit value, e.g. svn:executable
-                prop_name, prop_val = prop, ""
-            prop_name = prop_name.strip()
-            prop_val = prop_val.strip()
-            # unescape any ";;" in a property value, e.g. the mime-type from
-            #    *.java = svn:eol-style=native;svn:mime-type=text/plain;;charset=utf-8
-            prop_val = prop_val.replace(";;", ";");
-            # If the prop value "is quoted", remove the quotes.
-            # See svn:keywords for an example of a quoted prop value.
-            match = re.match('^"(.+)"$', prop_val)
-            if match:
-                prop_val = match.group(1)
-            proplist.append((prop_name, prop_val))
-
-        file_types.append((file_type, proplist))
-    # print file_types
-
-        
-def runCommand(cmd):
-    output_file = os.popen(cmd);
-    output_text = output_file.read();
-    exit_status = output_file.close();
-    if exit_status:
-        print >>sys.stderr, '"', cmd, '" failed.  Exiting.'
-        sys.exit(exit_status)
-    return output_text
-
-svn_auto_props = runCommand("svn propget svn:auto-props http://source.icu-project.org/repos/icu")
-
-def usage():
-    print "usage: " + sys.argv[0] + " [-f | --fix] [-h | --help]"
-
-    
-#
-#  UTF-8 file check.   For text files with svn:mime-type=text/anything, check the specified charset
-#    file_name:        name of a text file.
-#    base_mime_type:   svn:mime-type property from the auto-props settings for this file type.
-#    actual_mime_type: existing svn:mime-type property value for the file.
-#    return:           The correct svn:mime-type property value,
-#                         either the original, if it looks OK, otherwise the value from auto-props
-#
-def check_utf8(file_name, base_mime_type, actual_mime_type):
-
-    f = open(file_name, 'r')
-    bytes = f.read()
-    f.close()
-    file_is_utf8 = True
-    try:
-        bytes.decode("UTF-8")
-    except UnicodeDecodeError:
-        file_is_utf8 = False
-
-    if not file_is_utf8 and actual_mime_type.find("utf-8") >= 0:
-        print "Error: %s is not valid utf-8, but has a utf-8 mime type." % file_name
-        return actual_mime_type
-
-    if file_is_utf8 and actual_mime_type.find("charset") >=0 and actual_mime_type.find("utf-8") < 0:
-        print "Warning: %s is valid utf-8, but has a mime-type of %s." % (file_name, actual_mime_type)
-
-    if ord(bytes[0]) == 0xef:
-        if not file_name.endswith(".txt"):
-            print "Warning: file %s contains a UTF-8 BOM: " % file_name
-
-    # If the file already has a charset in its mime-type, don't make any change.
-
-    if actual_mime_type.find("charset=") >= 0:
-        return actual_mime_type;
-
-    return base_mime_type
-
-
-def main(argv):
-    fix_problems = False;
-    try:
-        opts, args = getopt.getopt(argv, "fh", ("fix", "help"))
-    except getopt.GetoptError:
-        print "unrecognized option: " + argv[0]
-        usage()
-        sys.exit(2)
-    for opt, arg in opts:
-        if opt in ("-h", "--help"):
-            usage()
-            sys.exit()
-        if opt in ("-f", "--fix"):
-            fix_problems = True
-    if args:
-        print "unexpected command line argument"
-        usage()
-        sys.exit()
-
-    parse_auto_props()
-    output = runCommand("svn ls -R ");
-    file_list = output.splitlines()
-
-    for f in file_list:
-        if os.path.isdir(f):
-            # print "Skipping dir " + f
-            continue
-        if not os.path.isfile(f):
-            print "Repository file not in working copy: " + f
-            continue;
-
-        for file_pattern, props in file_types:
-            if re.match(file_pattern, f):
-                # print "doing " + f
-                for propname, propval in props:
-                    actual_propval = runCommand("svn propget --strict " + propname + " " + f)
-                    #print propname + ": " + actual_propval
-                    if propname == "svn:mime-type" and propval.find("text/") == 0:
-                        # check for UTF-8 text files, should have svn:mime-type=text/something; charset=utf8
-                        propval = check_utf8(f, propval, actual_propval)
-                    if not (propval == actual_propval or (propval == "" and actual_propval == "*")):
-                        print "svn propset %s '%s' %s" % (propname, propval, f)
-                        if fix_problems:
-                            os.system("svn propset %s '%s' %s" % (propname, propval, f))
-
-
-if __name__ == "__main__":
-    main(sys.argv[1:])
index ffcf459..b2cd0ab 100644 (file)
@@ -511,7 +511,7 @@ main(int argc, char* argv[]) {
 static int runCommand(const char* command, UBool specialHandling) {
     char *cmd = NULL;
     char cmdBuffer[SMALL_BUFFER_MAX_SIZE];
-    int32_t len = strlen(command);
+    int32_t len = static_cast<int32_t>(strlen(command));
 
     if (len == 0) {
         return 0;
@@ -904,7 +904,8 @@ static void createFileNames(UPKGOptions *o, const char mode, const char *version
         if (IN_DLL_MODE(mode)) {
             sprintf(libFileNames[LIB_FILE], "%s", libName);
         } else {
-            sprintf(libFileNames[LIB_FILE], "%s%s",
+            sprintf(libFileNames[LIB_FILE], "%s%s%s",
+                    (strstr(libName, "icudt") ? "lib" : ""),
                     pkgDataFlags[LIBPREFIX],
                     libName);
         }
@@ -1020,7 +1021,7 @@ static int32_t pkg_createSymLinks(const char *targetDir, UBool specialHandling)
     char name2[SMALL_BUFFER_MAX_SIZE]; /* file name to symlink */
     const char* FILE_EXTENSION_SEP = uprv_strlen(pkgDataFlags[SO_EXT]) == 0 ? "" : ".";
 
-#if !defined(USING_CYGWIN) && U_PLATFORM != U_PF_MINGW
+#if U_PLATFORM != U_PF_CYGWIN
     /* No symbolic link to make. */
     if (uprv_strlen(libFileNames[LIB_FILE_VERSION]) == 0 || uprv_strlen(libFileNames[LIB_FILE_VERSION_MAJOR]) == 0 ||
         uprv_strcmp(libFileNames[LIB_FILE_VERSION], libFileNames[LIB_FILE_VERSION_MAJOR]) == 0) {
@@ -1225,7 +1226,7 @@ static int32_t pkg_installFileMode(const char *installDir, const char *srcDir, c
     if (f != NULL) {
         for(;;) {
             if (T_FileStream_readLine(f, buffer, SMALL_BUFFER_MAX_SIZE) != NULL) {
-                bufferLength = uprv_strlen(buffer);
+                bufferLength = static_cast<int32_t>(uprv_strlen(buffer));
                 /* Remove new line character. */
                 if (bufferLength > 0) {
                     buffer[bufferLength-1] = 0;
index 2653747..a926848 100644 (file)
@@ -104,14 +104,14 @@ T_FileStream_tmpfile()
 U_CAPI int32_t U_EXPORT2
 T_FileStream_read(FileStream* fileStream, void* addr, int32_t len)
 {
-    return fread(addr, 1, len, (FILE*)fileStream);
+    return static_cast<int32_t>(fread(addr, 1, len, (FILE*)fileStream));
 }
 
 U_CAPI int32_t U_EXPORT2
 T_FileStream_write(FileStream* fileStream, const void* addr, int32_t len)
 {
 
-    return fwrite(addr, 1, len, (FILE*)fileStream);
+    return static_cast<int32_t>(fwrite(addr, 1, len, (FILE*)fileStream));
 }
 
 U_CAPI void U_EXPORT2
index 176a791..6e88c94 100644 (file)
@@ -134,7 +134,7 @@ static int32_t whichFileModTimeIsLater(const char *file1, const char *file2) {
 /* Swap the file separater character given with the new one in the file path. */
 U_CAPI void U_EXPORT2
 swapFileSepChar(char *filePath, const char oldFileSepChar, const char newFileSepChar) {
-    for (int32_t i = 0, length = uprv_strlen(filePath); i < length; i++) {
+    for (int32_t i = 0, length = static_cast<int32_t>(uprv_strlen(filePath)); i < length; i++) {
         filePath[i] = (filePath[i] == oldFileSepChar ) ? newFileSepChar : filePath[i];
     }
 }
index d96c6dd..f4e428a 100644 (file)
@@ -610,7 +610,7 @@ Package::readPackage(const char *filename) {
             memcpy(prefix, s, ++prefixLength);  // include the /
         } else {
             // Use the package basename as prefix.
-            int32_t inPkgNameLength=strlen(inPkgName);
+            int32_t inPkgNameLength= static_cast<int32_t>(strlen(inPkgName));
             memcpy(prefix, inPkgName, inPkgNameLength);
             prefixLength=inPkgNameLength;
 
@@ -1043,7 +1043,7 @@ Package::addItem(const char *name, uint8_t *data, int32_t length, UBool isDataOw
         memset(items+idx, 0, sizeof(Item));
 
         // copy the item's name
-        items[idx].name=allocString(TRUE, strlen(name));
+        items[idx].name=allocString(TRUE, static_cast<int32_t>(strlen(name)));
         strcpy(items[idx].name, name);
         pathToTree(items[idx].name);
     } else {
index f3f333a..e8850cb 100644 (file)
@@ -243,7 +243,7 @@ uprops_swap(const UDataSwapper *ds,
          * swap the main properties UTrie
          * PT serialized properties trie, see utrie.h (byte size: 4*(i0-16))
          */
-        utrie2_swapAnyVersion(ds,
+        utrie_swapAnyVersion(ds,
             inData32+UPROPS_INDEX_COUNT,
             4*(dataIndexes[UPROPS_PROPS32_INDEX]-UPROPS_INDEX_COUNT),
             outData32+UPROPS_INDEX_COUNT,
@@ -274,7 +274,7 @@ uprops_swap(const UDataSwapper *ds,
          * swap the additional UTrie
          * i3 additionalTrieIndex; -- 32-bit unit index to the additional trie for more properties
          */
-        utrie2_swapAnyVersion(ds,
+        utrie_swapAnyVersion(ds,
             inData32+dataIndexes[UPROPS_ADDITIONAL_TRIE_INDEX],
             4*(dataIndexes[UPROPS_ADDITIONAL_VECTORS_INDEX]-dataIndexes[UPROPS_ADDITIONAL_TRIE_INDEX]),
             outData32+dataIndexes[UPROPS_ADDITIONAL_TRIE_INDEX],
@@ -336,7 +336,7 @@ ucase_swap(const UDataSwapper *ds,
         ((pInfo->formatVersion[0]==1 &&
           pInfo->formatVersion[2]==UTRIE_SHIFT &&
           pInfo->formatVersion[3]==UTRIE_INDEX_SHIFT) ||
-         2<=pInfo->formatVersion[0] || pInfo->formatVersion[0]<=4)
+         (2<=pInfo->formatVersion[0] && pInfo->formatVersion[0]<=4))
     )) {
         udata_printError(ds, "ucase_swap(): data format %02x.%02x.%02x.%02x (format version %02x) is not recognized as case mapping data\n",
                          pInfo->dataFormat[0], pInfo->dataFormat[1],
@@ -391,7 +391,7 @@ ucase_swap(const UDataSwapper *ds,
 
         /* swap the UTrie */
         count=indexes[UCASE_IX_TRIE_SIZE];
-        utrie2_swapAnyVersion(ds, inBytes+offset, count, outBytes+offset, pErrorCode);
+        utrie_swapAnyVersion(ds, inBytes+offset, count, outBytes+offset, pErrorCode);
         offset+=count;
 
         /* swap the uint16_t exceptions[] and unfold[] */
@@ -493,7 +493,7 @@ ubidi_swap(const UDataSwapper *ds,
 
         /* swap the UTrie */
         count=indexes[UBIDI_IX_TRIE_SIZE];
-        utrie2_swapAnyVersion(ds, inBytes+offset, count, outBytes+offset, pErrorCode);
+        utrie_swapAnyVersion(ds, inBytes+offset, count, outBytes+offset, pErrorCode);
         offset+=count;
 
         /* swap the uint32_t mirrors[] */
index c360493..bf379f2 100644 (file)
@@ -71,7 +71,7 @@
       <CompileAs>Default</CompileAs>
     </ClCompile>
     <Link>
-      <OutputFile>..\..\..\bin\icutu62.dll</OutputFile>
+      <OutputFile>..\..\..\bin\icutu63.dll</OutputFile>
       <AdditionalDependencies>icuuc.lib;icuin.lib;%(AdditionalDependencies)</AdditionalDependencies>
       <AdditionalLibraryDirectories>..\..\..\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
       <ProgramDatabaseFile>.\..\..\..\lib\icutu.pdb</ProgramDatabaseFile>
@@ -97,7 +97,7 @@
       <CompileAs>Default</CompileAs>
     </ClCompile>
     <Link>
-      <OutputFile>..\..\..\bin\icutu62d.dll</OutputFile>
+      <OutputFile>..\..\..\bin\icutu63d.dll</OutputFile>
       <AdditionalDependencies>icuucd.lib;icuind.lib;%(AdditionalDependencies)</AdditionalDependencies>
       <AdditionalLibraryDirectories>..\..\..\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
       <ProgramDatabaseFile>.\..\..\..\lib\icutud.pdb</ProgramDatabaseFile>
       <CompileAs>Default</CompileAs>
     </ClCompile>
     <Link>
-      <OutputFile>..\..\..\bin64\icutu62.dll</OutputFile>
+      <OutputFile>..\..\..\bin64\icutu63.dll</OutputFile>
       <AdditionalDependencies>icuuc.lib;icuin.lib;%(AdditionalDependencies)</AdditionalDependencies>
       <AdditionalLibraryDirectories>..\..\..\lib64;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
       <ProgramDatabaseFile>.\..\..\..\lib64\icutu.pdb</ProgramDatabaseFile>
       <CompileAs>Default</CompileAs>
     </ClCompile>
     <Link>
-      <OutputFile>..\..\..\bin64\icutu62d.dll</OutputFile>
+      <OutputFile>..\..\..\bin64\icutu63d.dll</OutputFile>
       <AdditionalDependencies>icuucd.lib;icuind.lib;%(AdditionalDependencies)</AdditionalDependencies>
       <AdditionalLibraryDirectories>..\..\..\lib64;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
       <ProgramDatabaseFile>.\..\..\..\lib64\icutud.pdb</ProgramDatabaseFile>
index dcc80eb..285f68a 100644 (file)
@@ -400,7 +400,7 @@ U_CAPI  int32_t
 paramStatic(const USystemParams *param, char *target, int32_t targetCapacity, UErrorCode *status) {
   if(param->paramStr==NULL) return paramEmpty(param,target,targetCapacity,status);
   if(U_FAILURE(*status))return 0;
-  int32_t len = uprv_strlen(param->paramStr);
+  int32_t len = static_cast<int32_t>(uprv_strlen(param->paramStr));
   if(target!=NULL) {
     uprv_strncpy(target,param->paramStr,uprv_min(len,targetCapacity));
   }
@@ -412,14 +412,14 @@ static const char *nullString = "(null)";
 static int32_t stringToStringBuffer(char *target, int32_t targetCapacity, const char *str, UErrorCode *status) {
   if(str==NULL) str=nullString;
 
-  int32_t len = uprv_strlen(str);
+  int32_t len = static_cast<int32_t>(uprv_strlen(str));
   if (U_SUCCESS(*status)) {
     if(target!=NULL) {
       uprv_strncpy(target,str,uprv_min(len,targetCapacity));
     }
   } else {
     const char *s = u_errorName(*status);
-    len = uprv_strlen(s);
+    len = static_cast<int32_t>(uprv_strlen(s));
     if(target!=NULL) {
       uprv_strncpy(target,s,uprv_min(len,targetCapacity));
     }
index 84c9d52..32b615c 100644 (file)
@@ -61,17 +61,17 @@ udata_create(const char *dir, const char *type, const char *name,
     length = 0;                                        /* Start with nothing */
     if(dir != NULL  && *dir !=0)       /* Add directory length if one was given */
     {
-       length += strlen(dir);
+       length += static_cast<int32_t>(strlen(dir));
        
        /* Add 1 if dir doesn't end with path sep */
         if (dir[strlen(dir) - 1]!= U_FILE_SEP_CHAR) {
             length++;
         }
        }
-    length += strlen(name);            /* Add the filename length */
+    length += static_cast<int32_t>(strlen(name));              /* Add the filename length */
 
     if(type != NULL  && *type !=0) { /* Add directory length if  given */
-        length += strlen(type);
+        length += static_cast<int32_t>(strlen(type));
     }
 
         
index edff1f9..10b4ad2 100644 (file)
 #include <time.h>
 #include "unicode/utypes.h"
 #include "unicode/putil.h"
+#include "unicode/ucptrie.h"
 #include "utrie2.h"
 #include "cstring.h"
 #include "writesrc.h"
 
 static FILE *
 usrc_createWithHeader(const char *path, const char *filename,
-                      const char *generator, const char *header) {
+                      const char *header, const char *generator) {
     char buffer[1024];
     const char *p;
     char *q;
@@ -71,20 +72,34 @@ usrc_createWithHeader(const char *path, const char *filename,
 }
 
 U_CAPI FILE * U_EXPORT2
-usrc_create(const char *path, const char *filename, const char *generator) {
-    // TODO: Add parameter for the first year this file was generated, not before 2016.
-    static const char *header=
-        "// © 2016 and later: Unicode, Inc. and others.\n"
-        "// License & terms of use: http://www.unicode.org/copyright.html\n"
-        "//\n"
-        "// Copyright (C) 1999-2016, International Business Machines\n"
-        "// Corporation and others.  All Rights Reserved.\n"
-        "//\n"
-        "// file name: %s\n"
-        "//\n"
-        "// machine-generated by: %s\n"
-        "\n\n";
-    return usrc_createWithHeader(path, filename, generator, header);
+usrc_create(const char *path, const char *filename, int32_t copyrightYear, const char *generator) {
+    const char *header;
+    char buffer[200];
+    if(copyrightYear<=2016) {
+        header=
+            "// © 2016 and later: Unicode, Inc. and others.\n"
+            "// License & terms of use: http://www.unicode.org/copyright.html\n"
+            "//\n"
+            "// Copyright (C) 1999-2016, International Business Machines\n"
+            "// Corporation and others.  All Rights Reserved.\n"
+            "//\n"
+            "// file name: %s\n"
+            "//\n"
+            "// machine-generated by: %s\n"
+            "\n\n";
+    } else {
+        sprintf(buffer,
+                "// © %d and later: Unicode, Inc. and others.\n"
+                "// License & terms of use: http://www.unicode.org/copyright.html\n"
+                "//\n"
+                "// file name: %%s\n"
+                "//\n"
+                "// machine-generated by: %%s\n"
+                "\n\n",
+                (int)copyrightYear);
+        header=buffer;
+    }
+    return usrc_createWithHeader(path, filename, header, generator);
 }
 
 U_CAPI FILE * U_EXPORT2
@@ -100,7 +115,7 @@ usrc_createTextData(const char *path, const char *filename, const char *generato
         "#\n"
         "# machine-generated by: %s\n"
         "\n\n";
-    return usrc_createWithHeader(path, filename, generator, header);
+    return usrc_createWithHeader(path, filename, header, generator);
 }
 
 U_CAPI void U_EXPORT2
@@ -229,6 +244,68 @@ usrc_writeUTrie2Struct(FILE *f,
 }
 
 U_CAPI void U_EXPORT2
+usrc_writeUCPTrieArrays(FILE *f,
+                        const char *indexPrefix, const char *dataPrefix,
+                        const UCPTrie *pTrie,
+                        const char *postfix) {
+    usrc_writeArray(f, indexPrefix, pTrie->index, 16, pTrie->indexLength, postfix);
+    int32_t width=
+        pTrie->valueWidth==UCPTRIE_VALUE_BITS_16 ? 16 :
+        pTrie->valueWidth==UCPTRIE_VALUE_BITS_32 ? 32 :
+        pTrie->valueWidth==UCPTRIE_VALUE_BITS_8 ? 8 : 0;
+    usrc_writeArray(f, dataPrefix, pTrie->data.ptr0, width, pTrie->dataLength, postfix);
+}
+
+U_CAPI void U_EXPORT2
+usrc_writeUCPTrieStruct(FILE *f,
+                        const char *prefix,
+                        const UCPTrie *pTrie,
+                        const char *indexName, const char *dataName,
+                        const char *postfix) {
+    if(prefix!=NULL) {
+        fputs(prefix, f);
+    }
+    fprintf(
+        f,
+        "    %s,\n"             // index
+        "    { %s },\n",        // data (union)
+        indexName,
+        dataName);
+    fprintf(
+        f,
+        "    %ld, %ld,\n"       // indexLength, dataLength
+        "    0x%lx, 0x%x,\n"    // highStart, shifted12HighStart
+        "    %d, %d,\n"         // type, valueWidth
+        "    0, 0,\n"           // reserved32, reserved16
+        "    0x%x, 0x%lx,\n"    // index3NullOffset, dataNullOffset
+        "    0x%lx,\n",         // nullValue
+        (long)pTrie->indexLength, (long)pTrie->dataLength,
+        (long)pTrie->highStart, pTrie->shifted12HighStart,
+        pTrie->type, pTrie->valueWidth,
+        pTrie->index3NullOffset, (long)pTrie->dataNullOffset,
+        (long)pTrie->nullValue);
+    if(postfix!=NULL) {
+        fputs(postfix, f);
+    }
+}
+
+U_CAPI void U_EXPORT2
+usrc_writeUCPTrie(FILE *f, const char *name, const UCPTrie *pTrie) {
+    int32_t width=
+        pTrie->valueWidth==UCPTRIE_VALUE_BITS_16 ? 16 :
+        pTrie->valueWidth==UCPTRIE_VALUE_BITS_32 ? 32 :
+        pTrie->valueWidth==UCPTRIE_VALUE_BITS_8 ? 8 : 0;
+    char line[100], line2[100], line3[100];
+    sprintf(line, "static const uint16_t %s_trieIndex[%%ld]={\n", name);
+    sprintf(line2, "static const uint%d_t %s_trieData[%%ld]={\n", (int)width, name);
+    usrc_writeUCPTrieArrays(f, line, line2, pTrie, "\n};\n\n");
+    sprintf(line, "static const UCPTrie %s_trie={\n", name);
+    sprintf(line2, "%s_trieIndex", name);
+    sprintf(line3, "%s_trieData", name);
+    usrc_writeUCPTrieStruct(f, line, pTrie, line2, line3, "};\n\n");
+}
+
+U_CAPI void U_EXPORT2
 usrc_writeArrayOfMostlyInvChars(FILE *f,
                                 const char *prefix,
                                 const char *p, int32_t length,
index fdcf1f9..35ba256 100644 (file)
@@ -23,6 +23,7 @@
 
 #include <stdio.h>
 #include "unicode/utypes.h"
+#include "unicode/ucptrie.h"
 #include "utrie2.h"
 
 /**
@@ -30,7 +31,7 @@
  * Writes a C/Java-style comment with the generator name.
  */
 U_CAPI FILE * U_EXPORT2
-usrc_create(const char *path, const char *filename, const char *generator);
+usrc_create(const char *path, const char *filename, int32_t copyrightYear, const char *generator);
 
 /**
  * Creates a source text file and writes a header comment with the ICU copyright.
@@ -76,6 +77,33 @@ usrc_writeUTrie2Struct(FILE *f,
                        const char *postfix);
 
 /**
+ * Calls usrc_writeArray() for the index and data arrays of a UCPTrie.
+ */
+U_CAPI void U_EXPORT2
+usrc_writeUCPTrieArrays(FILE *f,
+                        const char *indexPrefix, const char *dataPrefix,
+                        const UCPTrie *pTrie,
+                        const char *postfix);
+
+/**
+ * Writes the UCPTrie struct values.
+ * The {} and declaration etc. need to be included in prefix/postfix or
+ * printed before and after the array contents.
+ */
+U_CAPI void U_EXPORT2
+usrc_writeUCPTrieStruct(FILE *f,
+                        const char *prefix,
+                        const UCPTrie *pTrie,
+                        const char *indexName, const char *dataName,
+                        const char *postfix);
+
+/**
+ * Writes the UCPTrie arrays and struct values.
+ */
+U_CAPI void U_EXPORT2
+usrc_writeUCPTrie(FILE *f, const char *name, const UCPTrie *pTrie);
+
+/**
  * Writes the contents of an array of mostly invariant characters.
  * Characters 0..0x1f are printed as numbers,
  * others as characters with single quotes: '%c'.